/* Shared hero styles: facility / plan / access */
:is(.p-page-facility, .p-page-plan, .p-page-access) {
	overflow: hidden;
}

:is(.p-page-facility__hero, .p-page-plan__hero, .p-page-access__hero) {
	padding: 0 var(--fluid-gutter) 0;
}

:is(.p-page-facility__hero-inner, .p-page-plan__hero-inner, .p-page-access__hero-inner) {
	position: relative;
	display: flex;
	flex-direction: column;
}

:is(
	.p-page-facility__hero .l-container.p-page-facility__hero-inner,
	.p-page-plan__hero .l-container.p-page-plan__hero-inner,
	.p-page-access__hero .l-container.p-page-access__hero-inner
) {
	width: 100%;
	max-width: 1296px;
	margin-inline: auto;
}

:is(.p-page-facility__hero-heading, .p-page-plan__hero-heading, .p-page-access__hero-heading) {
	position: relative;
	top: -85px;
	z-index: 1;
	display: flex;
	flex-direction: column;
	gap: 8px;
	max-width: 520px;
	color: #2b4f5e;
}

:is(.p-page-facility__hero-script, .p-page-plan__hero-script, .p-page-access__hero-script) {
	margin: 0;
	font-family: "Caveat Brush", cursive;
	font-size: 56px;
	font-weight: 400;
	line-height: 1.04;
}

:is(.p-page-facility__hero-title, .p-page-plan__hero-title, .p-page-access__hero-title) {
	margin: 0;
	color: #2b4f5e;
	font-size: 72px;
	font-weight: 700;
	letter-spacing: 0.03em;
	line-height: 1.36;
}

:is(.p-page-facility__hero-visual-wrap, .p-page-plan__hero-visual-wrap, .p-page-access__hero-visual-wrap) {
	width: min(100%, 912px);
	margin-inline: auto;
}

:is(.p-page-facility__hero-visual, .p-page-plan__hero-visual, .p-page-access__hero-visual) {
	position: relative;
	margin: 0;
	overflow: hidden;
	border-radius: 0 0 24px 24px;
}

:is(.p-page-facility__hero-visual img, .p-page-plan__hero-visual img, .p-page-access__hero-visual img) {
	display: block;
	width: 100%;
	aspect-ratio: 912 / 456;
	object-fit: cover;
}

:is(.p-page-facility__hero-bottom, .p-page-plan__hero-bottom, .p-page-access__hero-bottom) {
	position: relative;
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	top: -18px;
	min-height: 238px;
}

:is(.p-page-facility__hero-wave, .p-page-plan__hero-wave, .p-page-access__hero-wave) {
	position: absolute;
	right: calc(50% - 50vw);
	bottom: 125px;
	left: calc(50% - 50vw);
	height: 65px;
	pointer-events: none;
}

:is(.p-page-facility__hero-wave svg, .p-page-plan__hero-wave svg, .p-page-access__hero-wave svg) {
	display: block;
	width: 100%;
	height: 100%;
}

:is(.p-page-facility__hero-wave path, .p-page-plan__hero-wave path, .p-page-access__hero-wave path) {
	fill: none;
	stroke: #5fa8b5;
	stroke-width: 1.2;
}

:is(.p-page-facility__hero-reservation, .p-page-plan__hero-reservation, .p-page-access__hero-reservation) {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
}

:is(.p-page-facility__hero-speech-wrap, .p-page-plan__hero-speech-wrap, .p-page-access__hero-speech-wrap) {
	display: flex;
	flex-direction: column;
	align-items: center;
}

:is(.p-page-facility__hero-speech, .p-page-plan__hero-speech, .p-page-access__hero-speech) {
	margin: 0 0 -1px;
	color: #2b4f5e;
	font-size: 13.6px;
	font-weight: 500;
	letter-spacing: 0.27px;
	line-height: 1.44;
	text-align: center;
}

:is(.p-page-facility__hero-speech-wrap, .p-page-plan__hero-speech-wrap, .p-page-access__hero-speech-wrap)::after {
	display: block;
	width: 192px;
	height: 44px;
	margin-top: 2px;
	background: url("../../img/icons/bubble-frame-dark.svg") center / 100% 100% no-repeat;
	content: "";
}

:is(.p-page-facility__hero-reservation-btn, .p-page-plan__hero-reservation-btn, .p-page-access__hero-reservation-btn) {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 16px;
	width: 192px;
	height: 192px;
	margin-top: 16px;
	border-radius: 50%;
	background-color: #ff904c;
	color: #181818;
	text-align: center;
	box-shadow: 0 12px 30px rgba(15, 18, 22, 0.25);
	transition:
		transform 0.26s cubic-bezier(0.22, 1, 0.36, 1),
		box-shadow 0.26s cubic-bezier(0.22, 1, 0.36, 1);
}

:is(.p-page-facility__hero-reservation-ring, .p-page-plan__hero-reservation-ring, .p-page-access__hero-reservation-ring) {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	pointer-events: none;
}

:is(.p-page-facility__hero-reservation-btn, .p-page-plan__hero-reservation-btn, .p-page-access__hero-reservation-btn):hover,
:is(.p-page-facility__hero-reservation-btn, .p-page-plan__hero-reservation-btn, .p-page-access__hero-reservation-btn):focus-visible {
	transform: translateY(-3px);
	box-shadow: 0 16px 34px rgba(15, 18, 22, 0.3);
}

:is(.p-page-facility__hero-reservation-icon, .p-page-plan__hero-reservation-icon, .p-page-access__hero-reservation-icon),
:is(.p-page-facility__hero-reservation-label, .p-page-plan__hero-reservation-label, .p-page-access__hero-reservation-label) {
	position: relative;
	z-index: 1;
}

:is(.p-page-facility__hero-reservation-icon, .p-page-plan__hero-reservation-icon, .p-page-access__hero-reservation-icon) {
	width: 48px;
	height: 48px;
}

:is(.p-page-facility__hero-reservation-icon img, .p-page-plan__hero-reservation-icon img, .p-page-access__hero-reservation-icon img) {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

:is(.p-page-facility__hero-reservation-label, .p-page-plan__hero-reservation-label, .p-page-access__hero-reservation-label) {
	color: #181818;
	font-size: 18.4px;
	font-weight: 500;
	letter-spacing: 1.84px;
	line-height: 1.28;
}

@media (max-width: 1200px) {
	:is(.p-page-plan__hero-visual-wrap, .p-page-access__hero-visual-wrap) {
		width: min(100%, 860px);
	}

	:is(.p-page-plan__hero-bottom, .p-page-access__hero-bottom) {
		padding-right: 0;
	}

	:is(.p-page-facility__hero-title, .p-page-plan__hero-title, .p-page-access__hero-title) {
		font-size: 64px;
	}
}

@media (max-width: 1024px) {
	:is(.p-page-facility__hero-script, .p-page-plan__hero-script, .p-page-access__hero-script) {
		font-size: 48px;
	}

	:is(.p-page-facility__hero-title, .p-page-plan__hero-title, .p-page-access__hero-title) {
		font-size: 56px;
	}

	:is(.p-page-facility__hero-bottom, .p-page-plan__hero-bottom, .p-page-access__hero-bottom) {
		min-height: 236px;
	}

	:is(.p-page-facility__hero-reservation-btn, .p-page-plan__hero-reservation-btn, .p-page-access__hero-reservation-btn) {
		width: 160px;
		height: 160px;
	}

	:is(.p-page-facility__hero-reservation-icon, .p-page-plan__hero-reservation-icon, .p-page-access__hero-reservation-icon) {
		width: 40px;
		height: 40px;
	}

	:is(.p-page-facility__hero-reservation-label, .p-page-plan__hero-reservation-label, .p-page-access__hero-reservation-label) {
		font-size: 16px;
	}

	:is(.p-page-facility__hero-speech-wrap, .p-page-plan__hero-speech-wrap, .p-page-access__hero-speech-wrap)::after {
		width: 168px;
	}
}

@media (max-width: 768px) {
	:is(.p-page-facility__hero, .p-page-plan__hero, .p-page-access__hero) {
		padding: 0 var(--fluid-gutter) 48px;
	}

	:is(.p-page-facility__hero-inner, .p-page-plan__hero-inner, .p-page-access__hero-inner) {
		gap: 24px;
	}

	:is(.p-page-facility__hero-script, .p-page-plan__hero-script, .p-page-access__hero-script) {
		font-size: 40px;
	}

	:is(.p-page-facility__hero-heading, .p-page-plan__hero-heading, .p-page-access__hero-heading) {
		top: 0;
	}

	:is(.p-page-facility__hero-title, .p-page-plan__hero-title, .p-page-access__hero-title) {
		font-size: clamp(36px, 10.2vw, 48px);
		letter-spacing: 0.02em;
		line-height: 1.24;
	}

	:is(.p-page-facility__hero-bottom, .p-page-plan__hero-bottom, .p-page-access__hero-bottom) {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		gap: 20px;
		top: 0;
		min-height: 0;
	}

	:is(.p-page-facility__hero-wave, .p-page-plan__hero-wave, .p-page-access__hero-wave) {
		bottom: 29px;
		height: 17px;
	}

	:is(.p-page-facility__hero-visual-wrap, .p-page-plan__hero-visual-wrap, .p-page-access__hero-visual-wrap) {
		width: 100%;
	}

	:is(.p-page-facility__hero-visual, .p-page-plan__hero-visual, .p-page-access__hero-visual) {
		border-radius: 0 0 15px 15px;
	}

	:is(.p-page-facility__hero-reservation, .p-page-plan__hero-reservation, .p-page-access__hero-reservation) {
		align-self: flex-end;
		padding-right: 0;
	}

	:is(.p-page-facility__hero-reservation-btn, .p-page-plan__hero-reservation-btn, .p-page-access__hero-reservation-btn) {
		width: 140px;
		height: 140px;
		margin-top: 12px;
	}

	:is(.p-page-facility__hero-reservation-label, .p-page-plan__hero-reservation-label, .p-page-access__hero-reservation-label) {
		font-size: 15px;
	}

	:is(.p-page-facility__hero-speech, .p-page-plan__hero-speech, .p-page-access__hero-speech) {
		font-size: 12.5px;
	}

	:is(.p-page-facility__hero-speech-wrap, .p-page-plan__hero-speech-wrap, .p-page-access__hero-speech-wrap)::after {
		width: 152px;
		height: 36px;
	}
}

@media (max-width: 480px) {
	:is(.p-page-facility__hero-reservation-btn, .p-page-plan__hero-reservation-btn, .p-page-access__hero-reservation-btn) {
		width: 110px;
		height: 110px;
	}

	:is(.p-page-facility__hero-reservation-icon, .p-page-plan__hero-reservation-icon, .p-page-access__hero-reservation-icon) {
		width: 30px;
		height: 30px;
	}

	:is(.p-page-facility__hero-reservation-label, .p-page-plan__hero-reservation-label, .p-page-access__hero-reservation-label) {
		font-size: 13px;
		letter-spacing: 0.03em;
		line-height: 1.2;
	}
}

:is(
	.page-template-page-facility,
	.page-template-page-plan,
	.page-template-page-access,
	.page-template-page-facility-php,
	.page-template-page-plan-php,
	.page-template-page-access-php
) .l-container.p-page-layout__content,
:is(.p-page-layout.p-page-facility, .p-page-layout.p-page-plan, .p-page-layout.p-page-access) .l-container.p-page-layout__content,
:is(.p-page-facility, .p-page-plan, .p-page-access) .p-page-layout__content {
	width: min(calc(100% - (2 * var(--fluid-gutter))), 1296px) !important;
	margin-inline: auto !important;
	padding-inline: 0 !important;
}

:is(.page-template-page-facility, .page-template-page-plan, .page-template-page-access) .p-page-layout__body {
	padding-top: 32px;
}

:is(.page-template-page-facility, .page-template-page-plan, .page-template-page-access) .l-site-header {
	position: absolute;
	border-bottom: 0;
	background: transparent;
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
}

:is(.page-template-page-facility, .page-template-page-plan, .page-template-page-access) .l-site-header__inner {
	align-items: center;
	padding-top: 40px;
	padding-bottom: 0;
}

:is(.page-template-page-facility, .page-template-page-plan, .page-template-page-access) .l-site-header__logo {
	width: min(240px, 36vw);
}

:is(.page-template-page-facility, .page-template-page-plan, .page-template-page-access) .l-site-header__nav-frame {
	border: 1px solid rgba(43, 79, 94, 0.24);
	border-radius: 24px;
	padding: 16px 24px;
	background: #fff;
	color: #2b4f5e;
	box-shadow: none;
}

:is(.page-template-page-facility, .page-template-page-plan, .page-template-page-access) .l-site-header__menu a {
	color: #2b4f5e;
	font-size: 14.4px;
	font-weight: 500;
	letter-spacing: 0.29px;
}

:is(.page-template-page-facility, .page-template-page-plan, .page-template-page-access) .l-site-header__menu .current-menu-item > a,
:is(.page-template-page-facility, .page-template-page-plan, .page-template-page-access) .l-site-header__menu .current_page_item > a {
	color: #2b4f5e;
	opacity: 1;
}

@media (max-width: 1024px) {
	:is(.page-template-page-facility, .page-template-page-plan, .page-template-page-access) .p-page-layout__body {
		padding-top: 34px;
	}
}

@media (max-width: 768px) {
	:is(.page-template-page-facility, .page-template-page-plan, .page-template-page-access) .p-page-layout__body {
		padding-top: 24px;
	}

	:is(.page-template-page-facility, .page-template-page-plan, .page-template-page-access) .l-site-header__inner {
		padding-top: 16px;
	}

	:is(.page-template-page-facility, .page-template-page-plan, .page-template-page-access) .l-site-header__toggle {
		border-color: var(--color-border);
		background-color: #fff;
	}

	:is(.page-template-page-facility, .page-template-page-plan, .page-template-page-access) .l-site-header__toggle-line {
		background-color: #1d2a35;
	}
}
