/* ============================================================================================
	FEATURED FITNESS MENU / PATTERN
============================================================================================ */
.hightime-spa-menu-container {
	position: relative;
	z-index: 1;
}
.hightime-spa-menu-list {
	display: grid;
	grid-template-columns: repeat(1, 1fr);
	gap: 1em;
	margin: 2em auto 0 !important
}
.hightime-spa-menu-item {
	box-shadow: 0px 20px 40px rgba(0,0,0,.1);
	background: var(--wp--preset--color--white)
}
.hightime-spa-menu-item-image {
	aspect-ratio: 16/9
}
@media screen and (min-width: 768px) {
	.hightime-spa-menu-item {
		display: flex
	}
	.hightime-spa-menu-item-image {
		width: 40%;
		aspect-ratio: 4/3;
		max-width: 300px
	}
}
@media screen and (min-width: 1400px) {
	.hightime-spa-menu-list {
		grid-template-columns: repeat(2, 1fr)
	}
	.hightime-spa-menu-item {
		box-shadow: 0px 20px 40px rgba(0,0,0,.1);
		background: var(--wp--preset--color--white)
	}
	.hightime-spa-menu-item:nth-of-type(even) {
		animation-delay: .1s;
	}
}
.hightime-spa-menu-item-content {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-flow: column;
	justify-content: space-between;
	padding: 1em 3%
}
.hightime-spa-menu-item-image img {
	width: 100%;
	height: 100%
}

.hightime-spa-menu-item-heading-en {
	font-weight: bold;
	line-height: 1.2
}
.hightime-spa-menu-item-price {
	font-weight: bold;
	letter-spacing: 1px
}
.hightime-spa-menu-item-content .wp-block-buttons {
	margin-top: .6em
}

/* heading */
.hightime-spa-menu-heading {
	position: relative;
	z-index: 1;
	padding: 0 .5em;
	font-size: clamp(40px, 8vw, 90px);
	text-align: right
}

/* ============================================================================================
	詳細モーダル — モーダルは body 直下へ fixed（JS）
	背面スクロール: body の position:fixed はテーマ/Lenis と相性が悪いため使わない。
	html overflow:hidden + Lenis stop + スクロールバー分 body padding のみ。
============================================================================================ */

html.hightime-spa-menu-scroll-locked {
	overflow: hidden;
}

html.hightime-spa-menu-scroll-locked body {
	padding-right: var(--hightime-spa-scrollbar, 0px);
	box-sizing: border-box;
}

.hightime-spa-menu-modal {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	max-height: none;
	margin: 0;
	z-index: 100100;
	align-items: center;
	justify-content: center;
	padding: max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));
	box-sizing: border-box;
	overflow: hidden;
	overflow: clip;
	pointer-events: none;
	overscroll-behavior: contain;
}
.hightime-spa-menu-modal.is-open {
	display: flex;
	pointer-events: auto;
}
/* 全画面オーバーレイ（疑似要素） */
.hightime-spa-menu-modal.is-open::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	background: rgba(0, 0, 0, .55);
	cursor: pointer;
}
.hightime-spa-menu-modal__sheet {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 800px;
	max-height: min(90vh, calc(100vh - 2rem));
	margin: 0 !important;
	padding: clamp(1.25rem, 4vw, 2rem) clamp(1.25rem, 4vw, 2.25rem);
	overflow-x: hidden;
	overflow-y: auto;
	background: var(--wp--preset--color--white, #fff);
	box-shadow: 0 24px 80px rgba(0, 0, 0, .28);
	box-sizing: border-box;
	cursor: default;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
}
@supports (height: 100dvh) {
	.hightime-spa-menu-modal__sheet {
		max-height: min(90dvh, calc(100dvh - 2rem));
	}
}
.hightime-spa-menu-modal__title {
	margin-top: 0;
	margin-bottom: .75rem;
}
.hightime-spa-menu-modal__text {
	margin-top: 0;
	margin-bottom: 1.25rem;
	line-height: 1.75;
}
.hightime-spa-menu-modal__sheet .wp-block-buttons {
	margin-bottom: 0;
}
.hightime-spa-menu-modal-close .wp-block-button__link {
	background-color: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
	border: 1px solid currentColor;
}
.hightime-spa-menu-modal-close .wp-block-button__link:hover,
.hightime-spa-menu-modal-close .wp-block-button__link:focus {
	background-color: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}
.hightime-sidenote p {
	display: inline-block
}

/* body spa */
.hightime-spa-body-menu-container {
	box-shadow: 0px 20px 40px rgba(0,0,0,.1)
}
.hightime-spa-body-menu-list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 1em
}
.hightime-spa-body-menu-item {
	margin: 0 !important;
	box-shadow: 0px 20px 40px rgba(0,0,0,.1);
	background: var(--wp--preset--color--white)
}

/* oil */
.hightime-spa-oil-body-menu-list {
	display: flex;
	flex-flow: column;
	gap: 1em
}
.hightime-oil-left {
	aspect-ratio: 16/9
}
.hightime-oil-right {
	flex: 1;
	min-width: 0;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1em;
	margin-top: 0 !important
}
.hightime-oil-left .hightime-spa-body-menu-item {
	height: 100%
}
@media screen and (min-width: 414px) {
	.hightime-oil-right {
		grid-template-columns: repeat(auto-fit, minmax(200px, 1fr))
	}
}
@media screen and (min-width: 1200px) {
	.hightime-spa-oil-body-menu-list {
		flex-flow: row;
	}
	.hightime-oil-left {
		width: 40%;
		aspect-ratio: unset
	}
}

/* corp block */
.hightime-corp-block {
	box-shadow: 0px 20px 40px rgba(0,0,0,.1)
}
.hightime-corp-image {
	width: 100%
}
.hightime-corp-content {
	flex: 1;
	min-width: 0
}
.hightime-corp-content a {
	text-decoration: none
}
@media screen and (min-width: 768px) {
	.hightime-corp-image {
		width: 40%;
		max-width: 400px
	}
}
