@charset "utf-8";

/* Reset
----------------------------------------------------------------- */
*, ::before, ::after {
	box-sizing: border-box;
	border-style: solid;
	border-width: 0;
}
html {
	line-height: 1.15;
	-webkit-text-size-adjust: 100%;
	-webkit-tap-highlight-color: transparent;
}
body {
	margin: 0;
}
main {
	display: block;
}
p, table, blockquote, address, pre, iframe, form, figure, dl {
	margin: 0;
}
h1, h2, h3, h4, h5, h6 {
	font-size: inherit;
	font-weight: inherit;
	margin: 0;
}
ul, ol {
	margin: 0;
	padding: 0;
	list-style: none;
}
dt {
	font-weight: bold;
}
dd {
	margin-left: 0;
}
hr {
	box-sizing: content-box;
	height: 0;
	overflow: visible;
	border-top-width: 1px;
	margin: 0;
	clear: both;
	color: inherit;
}
pre {
	font-family: monospace, monospace;
	font-size: inherit;
}
address {
	font-style: inherit;
}
a {
	background-color: transparent;
	text-decoration: none;
	color: inherit;
}
abbr[title] {
	text-decoration: underline dotted;
}
b, strong {
	font-weight: bolder;
}
code, kbd, samp {
	font-family: monospace, monospace;
	font-size: inherit;
}
small {
	font-size: 80%;
}
sub, sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}
sub {
	bottom: -0.25em;
}
sup {
	top: -0.5em;
}
svg, img, embed, object, iframe {
	vertical-align: bottom;
}
button, input, optgroup, select, textarea {
	-webkit-appearance: none;
	appearance: none;
	vertical-align: middle;
	color: inherit;
	font: inherit;
	background: transparent;
	padding: 0;
	margin: 0;
	border-radius: 0;
	text-align: inherit;
	text-transform: inherit;
}
[type="checkbox"] {
	-webkit-appearance: checkbox;
	appearance: checkbox;
}
[type="radio"] {
	-webkit-appearance: radio;
	appearance: radio;
}
button, [type="button"], [type="reset"], [type="submit"] {
	cursor: pointer;
}
button:disabled, [type="button"]:disabled, [type="reset"]:disabled, [type="submit"]:disabled {
	cursor: default;
	background-color: #E8E3D3;
}
:-moz-focusring {
	outline: auto;
}
select:disabled {
	opacity: inherit;
}
option {
	padding: 0;
}
fieldset {
	margin: 0;
	padding: 0;
	min-width: 0;
}
legend {
	padding: 0;
}
progress {
	vertical-align: baseline;
}
textarea {
	overflow: auto;
}
[type="search"] {
	outline-offset: -2px;
}
[type="search"]::-webkit-search-decoration {
	-webkit-appearance: none;
}
::-webkit-file-upload-button {
	-webkit-appearance: button;
	font: inherit;
}
label[for] {
	cursor: pointer;
}
details {
	display: block;
}
summary {
	display: list-item;
}
[contenteditable]:focus {
	outline: auto;
}
table {
	border-color: inherit;
	border-collapse: collapse;
}
caption {
	text-align: left;
}
td, th {
	vertical-align: top;
	padding: 0;
}
th {
	text-align: left;
	font-weight: 700;
}


/* Base
----------------------------------------------------------------- */
html {
	height: 100%;
	line-height: 1.75;
}
body {
	overflow-x: hidden;
	position: relative;
	min-height: 100%;
	-webkit-text-size-adjust: 100%;
	color: #212121;
	font-family: "Times New Roman", Times, serif;
	letter-spacing: 0.05em;
}
body.is-drawer-open {
	overflow: hidden;
	position: fixed;
	width: 100%;
	height: 100%;
}
img {
	max-width: 100%;
	height: auto;
}
a {
	color: #212121;
	text-decoration: none;
	transition: all 0.3s ease;
}
@media (min-width: 960px) {
	a img {
		transition: opacity 0.3s ease;
	}
	a:hover img {
		opacity: 0.8;
	}
	a[href^='tel'] {
		pointer-events: none;
		cursor: text;
	}
}

/* Common Variables
----------------------------------------------------------------- */
:root {
	--color-cream: #F9F8F6;
	--color-gold: #B19B5D;
	--color-black: #212121;
	--color-white: #FFFFFF;
	--font-normal: "Times New Roman", Times, serif;
}

/* Header
----------------------------------------------------------------- */
.header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	z-index: 102;
	transform: translateY(0);
	opacity: 1;
	transition: transform 0.3s ease, opacity 0.3s ease;
}
body.is-header-scroll .header {
	position: absolute;
	background-color: transparent;
}
body.is-header-visible .header {
	background-color: var(--color-white);
}
body.is-header-visible .header:not(:has(.is-open))::after {
	position: absolute;
	bottom: 0;
	left: 0;
	width: calc(100% - 64px);
	height: 1px;
	background: linear-gradient(90deg,rgba(248, 241, 220, 1) 0%, rgba(243, 236, 213, 1) 55%, rgba(177, 156, 98, 1) 100%);
	transition: opacity 0.3s ease;
	content: '';
}
.header__inner {
	display: flex;
	align-items: center;
	height: 90px;
}
.header__logo {
	margin-left: 7.37913vw;
}
body.is-header-scroll .header__logo {
	display: none;
}
.header__logo img {
	display: block;
	height: 58px;
}
.header__nav {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	overflow-y: auto;
	position: fixed;
	top: 90px;
	left: 0;
	z-index: -1;
	width: 100%;
	height: calc(100svh - 90px);
	padding: 40px 0 60px;
	background: #fff;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.3s ease, visibility 0.3s ease;
}
.header__nav.is-open {
	opacity: 1;
	z-index: 99;
	pointer-events: auto;
}
.header__nav-list {
	display: flex;
	flex-direction: column;
	width: 83.71501vw;
	margin-left: auto;
}
.header__nav-item {
	position: relative;
}
.header__nav-item::after {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 2px;
	background: linear-gradient(to right, #F8F1DC, #F3ECD5, #B19C62);
	content: '';
}
.header__nav-item a {
	display: flex;
	align-items: center;
	padding: 2rem 8.65139vw 2rem 0;
	color: #000;
	font-size: 1.25rem;
	transition: color 0.2s ease;
}
.header__nav-item a::after {
	width: 28px;
	height: 28px;
	margin-left: auto;
	background: url(../images/icon-arrow.svg) no-repeat center / cover;
	content: '';
}
.reservation__btn-link {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 83.71501vw;
	max-width: 425px;
	height: 56px;
	margin-top: 4rem;
	background: url(../images/bg-btn.png) no-repeat center / cover;
	border: 1px solid #937946;
	color: var(--color-white);
	font-size: min(5.33334vw, 1.5rem);
	letter-spacing: 0.1em;
}
.header__lang {
	display: flex;
	align-items: center;
	gap: 4px;
	margin-left: auto;
	margin-right: min(10.17811vw, 2.5rem);
	opacity: 0;
}
body.is-header-visible .header__lang {
	opacity: 1;
}
.header__lang-item + .header__lang-item::before {
	display: inline-block;
	width: 7px;
	height: 12px;
	margin-right: 4px;
	background: url(../images/txt-slush.svg) no-repeat center / cover;
	content: '';
}
body.is-header-scroll .header__lang-item + .header__lang-item::before {
	background-image: url(../images/txt-slush-wh.svg);
}
.header__lang-item a {
	display: inline-flex;
	align-items: center;
	opacity: 0.5;
}
.header__lang-item.current a {
	opacity: 1
}
.header__lang-item svg path {
	fill: #212121;
}
body.is-header-scroll .header__lang-item svg path {
	fill: #ffffff;
}
.header__hamburger {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 90px;
	background: linear-gradient(to right, #B3A47C, #B3A47C, #E0D6B6);
	box-shadow: 0 3px 24px rgba(0, 0, 0, 0.07);
	border: none;
	padding: 0;
	opacity: 0;
}
body.is-header-visible .header__hamburger {
	opacity: 1;
}
.header__hamburger-line {
	display: block;
	position: relative;
	width: 38px;
	height: 2px;
	background-color: var(--color-white);
	transition: opacity 0.3s ease;
}
.header__hamburger-line::before,
.header__hamburger-line::after {
	position: absolute;
	left: 0;
	width: 38px;
	height: 2px;
	background-color: var(--color-white);
	content: '';
	transition: transform 0.3s ease;
}
.header__hamburger-line::before {
	top: -8px;
}
.header__hamburger-line::after {
	top: 8px;
}
.header__hamburger[aria-expanded="true"] .header__hamburger-line {
	background-color: transparent;
}
.header__hamburger[aria-expanded="true"] .header__hamburger-line::before {
	top: 0;
	transform: rotate(25deg);
}
.header__hamburger[aria-expanded="true"] .header__hamburger-line::after {
	top: 0;
	transform: rotate(-25deg);
}
body.is-header-hidden .header {
	transform: translateY(-100%);
	opacity: 0;
}

/* Common Styles
----------------------------------------------------------------- */
.section-separator {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 40px 0;
}
.section-separator::before {
	content: '';
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 80%;
	max-width: 400px;
	height: 1px;
	background-color: var(--color-gold);
	opacity: 0.3;
}
.section-separator__icon {
	position: relative;
	z-index: 1;
	width: 60px;
	height: 60px;
	background-color: var(--color-cream);
	padding: 10px;
}

/* Hero Section
----------------------------------------------------------------- */
.hero {
	position: relative;
	z-index: 100;
	min-height: 100svh;
	overflow: hidden;
}
.hero__slider {
	position: absolute !important;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 0;
}
.hero__slider .swiper-wrapper {
	width: 100%;
	height: 100%;
}
.hero__slider .swiper-slide {
	position: relative;
	width: 100%;
	height: 100%;
	overflow: hidden;
}
.hero__slider .swiper-slide::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.9));
	z-index: 1;
	pointer-events: none;
}
.swiper-slide-active .swiper-img,
.swiper-slide-duplicate-active .swiper-img,
.swiper-slide-prev .swiper-img {
	position: relative;
	height: 100%;
	animation: zoomUp 10s linear 0s normal both;
}
.swiper-slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 35% 50%;
}
@keyframes zoomUp {
	0% {
		transform: scale(1);
	}
	100% {
		transform: scale(1.1);
	}
}
.hero__content {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	position: relative;
	z-index: 2;
	width: 100%;
	height: 100svh;
	text-align: center;
}
.hero__catch {
	width: 100%;
	margin-bottom: auto;
	padding: 1em;
	background: url(../images/bg-catch.png) no-repeat center / cover;
	color: var(--color-white);
	font-size: min(4vw, 0.9375rem);
	line-height: 1.4;
}
.hero__logo img {
	width: auto;
	height: 46.94835vh;
}
.hero__btn,
.scene__btn {
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	overflow: hidden;
	width: 83.71501vw;
	max-width: 425px;
	height: 56px;
	margin-top: 7.04225vh;
	margin-bottom: auto;
	background: url(../images/bg-btn.png) no-repeat center / cover;
	border: 1px solid #937946;
	color: var(--color-white);
	font-size: min(5.33334vw, 1.5rem);
	letter-spacing: 0.1em;
}
.scene__btn {
	margin: 64px auto 0;
}
.hero__btn::before,
.scene__btn::before {
	position: absolute;
	top: 0;
	left: -60%;
	width: 50%;
	height: 100%;
	background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, .3) 100%);
	transform: skewX(-25deg);
	transition: .5s;
	content: '';
}
.hero__btn:hover,
.scene__btn:hover {
	filter: brightness(1.1);
}
.hero__btn:hover::before,
.scene__btn:hover::before {
	animation: flash 0.75s;
}
@keyframes flash {
	100% {
			left: 120%;
	}
}

/* Lead Section
----------------------------------------------------------------- */
.lead {
	position: relative;
	padding: 64px 7.888045vw;
}
.lead::before {
	position: absolute;
	top: -26px;
	left: calc(50% - 22.5px);
	z-index: 101;
	width: 45px;
	height: 53px;
	background: url(../images/img-kumiko.svg) no-repeat center / cover;
	content: '';
}
.lead .sp-none {
	display: none;
}

/* About Section
----------------------------------------------------------------- */
.about {
	position: relative;
	background: url(../images/bg-kumiko.png) repeat center top / 69px auto;
	padding: 4rem 0 6rem;
}
.about::before {
	position: absolute;
	top: -26px;
	left: calc(50% - 22.5px);
	z-index: 101;
	width: 45px;
	height: 53px;
	background: url(../images/img-kumiko.svg) no-repeat center / cover;
	content: '';
}
.about__title {
	display: flex;
	flex-direction: column;
	width: 84.22391vw;
	max-width: 1280px;
	margin: 0 auto 3rem;
}
.about__title-en {
	color: var(--color-gold);
	font-size: 2.5rem;
}
.about__title-jp {
	color: var(--color-black);
	font-size: 1.6875rem;
}
.about__content {
	display: flex;
	flex-direction: column;
}
.about__text {
	width: 84.22391vw;
	max-width: 1280px;
	margin: 0 auto 4rem;
	color: var(--color-black);
	font-size: 1.125rem;
	line-height: 1.75;
}
.about__text h3 {
	margin-bottom: 3rem;
	font-weight: 700;
	font-family: var(--font-normal);
	font-size: 1.25rem;
}
.about__text p {
	margin-bottom: 1.75em;
	font-family: var(--font-normal);
	font-size: 1.125rem;
}
.about__text strong {
	font-weight: 700;
	font-size: 1.25rem;
}
.about__text p:last-child {
	margin-bottom: 0;
}
.about__image {
	width: 100%;
}
.about__image img {
	width: 100%;
	height: auto;
	display: block;
}

/* Scene Section
----------------------------------------------------------------- */
.scene {
	position: relative;
	background-color: var(--color-cream);
	padding: 64px 0;
}
.scene::before {
	position: absolute;
	top: -27px;
	left: calc(50% - 22.5px);
	z-index: 1;
	width: 45px;
	height: 53px;
	background: url(../images/img-kumiko.svg) no-repeat center / cover;
	content: '';
}
.scene__inner {
	max-width: 1540px;
	margin: 0 auto;
}
.scene__title {
	text-align: center;
	color: var(--color-black);
	font-size: 1.75rem;
	margin-bottom: 3rem;
}
.scene__gallery {
	display: flex;
	flex-direction: column;
	gap: 2px;
	max-width: 600px;
	margin: 0 auto;
}

@media (min-width: 980px) {
	.scene__gallery {
		flex-direction: row;
		gap: 8px;
	}
}

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

/* Story Section
----------------------------------------------------------------- */
.story {
	position: relative;
	background-color: var(--color-white);
	padding: 4rem 0 6rem;
}
.story::before {
	position: absolute;
	top: 0;
	left: 0;
	width: 50%;
	height: 0;
	padding-top: 29%;
	background: url(../images/bg-triangle.png) no-repeat center / cover;
	content: '';
}
.story::after {
	position: absolute;
	bottom: 0;
	left: 50%;
	width: 50%;
	height: 0;
	padding-top: 29%;
	background: url(../images/bg-triangle.png) no-repeat center / cover;
	transform: rotate(180deg);
	content: '';
}
.story__title {
	display: flex;
	flex-direction: column;
	position: relative;
	z-index: 1;
	width: 84.22391vw;
	max-width: 1320px;
	margin: 0 auto 2rem;
}
.story__title-en {
	color: var(--color-gold);
	font-size: 2rem;
}
.story__title-jp {
	color: var(--color-black);
	font-size: 1.6875rem;
}
.story__subtitle {
	width: 84.22391vw;
	max-width: 1320px;
	margin: 0 auto 2.5rem;
	color: var(--color-black);
	font-size: 1.375rem;
	line-height: 1.72;
}
.story__text {
	position: relative;
	z-index: 1;
	width: 84.22391vw;
	max-width: 1320px;
	margin: 2.5rem auto 0;
	font-size: 1.125rem;
	line-height: 1.75;
}
.story__text h3 {
	margin-bottom: 2rem;
	font-size: 1.5rem;
	line-height: 1.72;
}
.story__image {
	position: relative;
	z-index: 1;
	width: 100%;
}
.story__image img {
	width: 100%;
	height: auto;
	display: block;
}

/* Access Section
----------------------------------------------------------------- */
.access {
	position: relative;
	padding: 28px 7.888045vw 12px;
	background-color: var(--color-cream);
}
.access::before {
	position: absolute;
	top: -26px;
	left: calc(50% - 22.5px);
	z-index: 1;
	width: 45px;
	height: 53px;
	background: url(../images/img-kumiko.svg) no-repeat center / cover;
	content: '';
}
.access::after {
	position: absolute;
	bottom: -20px;
	left: calc(50% - 30px);
	width: 60px;
	height: 1px;
	background-color: var(--color-gold);
	content: '';
}
.access__inner {
	max-width: 600px;
	margin: 0 auto;
}
.access__title {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin-bottom: 2.5rem;
}
.access__title-en {
	color: var(--color-gold);
	font-size: 2.25rem;
}
.access__title-jp {
	color: var(--color-black);
	font-size: 1.0625rem;
}
.access__info {
	display: flex;
	flex-direction: column;
	gap: 24px;
	margin-bottom: 30px;
}
.access__item-title {
	position: relative;
	padding-left: 64px;
	border-bottom: 1px solid rgba(0, 0, 0, 0.12);
	font-size: 1.25rem;
}
.access__icon {
	position: absolute;
	bottom: 0;
	left: 0;
}
.access__item.train .access__icon {
	width: 27px;
	height: 33px;
	margin-left: 7px;
}
.access__item.car .access__icon {
	width: 41px;
	height: 21px;
}
.access__text {
	margin-top: 1.2em;
	font-size: 1rem;
}
.access__map {
	overflow: hidden;
}
.access__map-inner {
	overflow: hidden;
	position: relative;
	width: 100%;
	height: 0;
	padding-top: 91.18541%;
	filter: grayscale(1);
}
.access__map-inner iframe {
	position: absolute;
	top: -50%;
	left: 0;
	width: 100%;
	height: 200%;
}
.access__image {
	margin-top: 1rem;
}
.access__image-inner {
	position: relative;
	width: 100%;
	height: 0;
	padding-top: 91.18541%;
}
.access__image-inner img {
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.access__map-link,
.access__image-link {
	position: relative;
	padding-left: 20px;
	color: #9A8C7C;
	font-size: 0.9375rem;
}
.access__map-link::before,
.access__image-link::before {
	position: absolute;
	top: 0;
	left: 0;
	width: 12px;
	height: 12px;
	background: url(../images/icon-window.svg) no-repeat center / cover;
	content: '';
}
.access__guide {
	margin-top: 2rem;
	font-size: min(6.10687vw, 1.5rem);
	line-height: 1.6;
	text-align: center;
}

@media (min-width: 768px) {
	.access__content {
		display: flex;
		gap: 24px;
		margin-top: 4rem;
	}
	.access__map,
	.access__image {
		flex: 1;
		margin-top: 0;
	}
}

/* Instagram Section
----------------------------------------------------------------- */
.instagram {
	position: relative;
	background-color: var(--color-white);
	padding: 28px 0 64px;
}
.instagram::before {
	position: absolute;
	top: -26px;
	left: calc(50% - 22.5px);
	z-index: 1;
	width: 45px;
	height: 53px;
	background: url(../images/img-kumiko.svg) no-repeat center / cover;
	content: '';
}
.instagram__title {
	font-size: 1.25rem;
	text-align: center;
}
.instagram__gallery {
	display: flex;
	overflow: hidden;
	margin-top: 30px;
}
.instagram__list {
	display: flex;
	gap: 2px;
	width: 1248px;
}
.instagram__item {
	width: 100%;
}
.instagram__item img {
	width: 100%;
	height: auto;
	display: block;
}
.instagram__text {
	text-align: center;
	color: var(--color-black);
	font-size: 14px;
	line-height: 2;
}
#sb_instagram #sbi_images {
	padding: 0;
}
#sb_instagram {
	width: 500vw;
	height: 50vw;
	animation: scroll-left 100s infinite linear .5s both;
}
#sb_instagram #sbi_images {
	width: 500vw;
}
#sb_instagram .sbi_photo {
	height: 50vw !important;
}
/* CSSアニメーション */
@keyframes scroll-left {
	from {
		transform: translateX(0);
	}
	to {
		transform: translateX(-100%);
	}
}
@media (max-width: 480px) {
	#sb_instagram,
	#sb_instagram.sbi_width_resp {
		width: 800vw !important;
		height: 80vw;
	}
	#sb_instagram #sbi_images {
		width: 800vw;
	}
	#sb_instagram .sbi_photo {
		height: 80vw !important;
	}
}
@media (min-width: 1024px) {
	#sb_instagram,
	#sb_instagram.sbi_width_resp {
		width: 200vw !important;
		height: 20vw;
	}
	#sb_instagram #sbi_images {
		width: 200vw;
	}
	#sb_instagram .sbi_photo {
		height: 20vw !important;
	}
}

/* Page
----------------------------------------------------------------- */
.page-content {
	background: url(../images/bg-kumiko.png) repeat center top / 69px auto;
	padding: 80px 0;
}
.page-content__inner {
	width: 84.22391vw;
	max-width: 1320px;
	margin: 0 auto;
}
.contact .page-content__inner,
.terms .page-content__inner,
.privacy .page-content__inner {
	max-width: 960px;
}
.page-content h2.wp-block-heading {
	margin-bottom: 2.5rem;
	color: var(--color-gold);
	font-size: 1.6875rem;
	text-align: center;
}
.terms .page-content h2.wp-block-heading,
.privacy .page-content h2.wp-block-heading {
	margin-top: 3rem;
	margin-bottom: 1rem;
	color: var(--color-black);
	font-size: 1.25rem;
	text-align: left;
}
.terms .page-content h3.wp-block-heading,
.privacy .page-content h3.wp-block-heading {
	margin-top: 1rem;
	margin-bottom: 0.5rem;
	color: var(--color-black);
	font-size: 1.125rem;
	text-align: left;
}
.terms .page-content p + p,
.privacy .page-content p + p {
	margin-top: 1em;
}
.terms .page-content ol.wp-block-list,
.privacy .page-content ol.wp-block-list {
	list-style: decimal;
	margin-top: 1em;
	margin-left: 1.5em;
}
.page-content .wp-block-buttons.is-content-justification-center {
	justify-content: center;
	margin-top: 2.5rem;
}
.page-content .wp-block-buttons.is-back .wp-block-button__link {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 83.71501vw;
	max-width: 425px;
	height: 56px;
	margin-bottom: auto;
	background: url(../images/bg-btn.png) no-repeat center / cover;
	border: 1px solid #937946;
	border-radius: 0;
	color: var(--color-white);
	font-size: min(4.58015vw, 1.125rem);
}

/* Experience Page
----------------------------------------------------------------- */
.page-hero {
	padding-top: 120px;
	padding-bottom: 28px;
	background-color: var(--color-white);
}
.page-hero__inner {
	width: 84.22391vw;
	max-width: 1320px;
	margin: 0 auto;
}
.page-hero__label-en {
	color: var(--color-gold);
	font-size: 2.25rem;
}
.page-hero__label-en:first-letter {
	text-transform: uppercase;
}
.page-hero__title-jp {
	font-size: 1.6875rem;
}

.exp-intro {
	background: url(../images/bg-kumiko.png) repeat center top / 69px auto;
	padding: 78px 0 0;
}
.exp-intro__inner {
	width: 84.22391vw;
	max-width: 1120px;
	margin: 0 auto;
}
.exp-intro__title {
	margin-bottom: 2.5rem;
	color: var(--color-gold);
	font-size: 1.75rem;
	text-align: center;
}
.exp-intro__lead {
	margin-bottom: 1.5rem;
	font-size: 1.125rem;
}
.exp-intro__text {
	font-size: 0.9375rem;
	line-height: 1.8;
}
.exp-intro__photos {
	display: flex;
	flex-direction: column;
	gap: 2px;
	margin-top: 2.5rem;
	margin-bottom: -5.5rem
}
.exp-intro__photo img {
	display: block;
	width: 100%;
	height: auto;
}

.exp-menu {
	padding: 9.5rem 0 56px;
	background-color: #fff;
}
.exp-menu__inner {
	width: 84.22391vw;
	max-width: 1320px;
	margin: 0 auto;
	text-align: center;
}
.exp-menu__list {
	display: flex;
	flex-direction: column;
	gap: 36px;
	max-width: 346px;
	margin: 0 auto;
}
.exp-menu__link {
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	width: 100%;
	height: 67px;
	padding: 0.75rem 1rem;
	border: 1px solid var(--color-gold);
	background-color: #fff;
	color: #937946;
	font-size: 1rem;
}
.exp-menu__link::after {
	position: absolute;
	top: 50%;
	right: calc(50% - 5em);
	border-top: 12px solid #937946;
	border-right: 6px solid transparent;
	border-left: 6px solid transparent;
	transform: translateY(-50%);
	content: '';
}
.exp-menu__link:hover {
	background-color: var(--color-gold);
	color: var(--color-white);
}
.exp-menu__link:hover::after {
	border-top-color: var(--color-white);
}
.reservation-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	overflow: hidden;
	width: 83.71501vw;
	max-width: 346px;
	height: 80px;
	margin: 0 auto;
	background: url(../images/bg-btn.png) no-repeat center / cover;
	border: 1px solid #937946;
	color: var(--color-white);
	font-size: 1.25rem;
}
.reservation-btn::before {
	position: absolute;
	top: 0;
	left: -60%;
	width: 50%;
	height: 100%;
	background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, .3) 100%);
	transform: skewX(-25deg);
	transition: .5s;
	content: '';
}
.reservation-btn:hover {
	filter: brightness(1.1);
}
.reservation-btn:hover::before {
	animation: flash 0.75s;
}

.exp-plans {
	position: relative;
	padding: 64px 0 100px;
	background-color: var(--color-cream);
}
.exp-plans__inner {
	width: 84.22391vw;
	max-width: 1320px;
	margin: 0 auto;
}
.exp-section__title {
	margin-bottom: 1.25rem;
	font-size: 1.5rem;
}

.exp-plan {
	padding: 24px 0 32px;
}
.exp-plan__title {
	position: relative;
	color: #9A8C7C;
	font-size: 1.375rem;
	text-align: center;
}
.exp-plan__title::before {
	position: absolute;
	top: 50%;
	left: 0;
	width: 100%;
	height: 1px;
	background: #BEA65B;
	content: '';
}
.exp-plan__title span {
	display: inline-block;
	position: relative;
	z-index: 1;
	padding: 0 2em;
	background: var(--color-cream);
}
.slider-thumbnail {
	display: flex !important;
	align-items: center;
	justify-content: center;
	margin-top: 2rem;
}
.slider-thumbnail:not(.swiper-initialized) {
	display: none !important;
}
.slider-thumbnail .swiper-wrapper {
	justify-content: center;
	gap: 24px;
}
.slider-thumbnail .swiper-slide {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 50px !important;
	height: 60px !important;
	background: url(../images/bg-item-on.svg) no-repeat center / cover;
	color: var(--color-white);
	font-size: 0.75rem;
	line-height: 1.2;
}
.slider-thumbnail .swiper-slide-thumb-active {
	background-image: url(../images/bg-item-off.svg);
}
.slider-thumbnail .swiper-slide span {
	font-size: 1.5rem;
}
.exp-plans__list-container {
	position: relative;
}
.exp-plans__plan .swiper-button-next {
	right: calc(-0.91723vw - 14px) !important;
}
.exp-plans__plan .swiper-button-prev {
	left: calc(-0.91723vw - 14px) !important;
	transform: rotate(180deg);
}
.exp-plans__plan .swiper-button-next,
.exp-plans__plan .swiper-button-prev {
	top: calc(87px + 26.029625vw) !important;
	margin-top: 0 !important;
	width: 28px;
	height: 28px;
	background: url(../images/icon-arrow.svg) no-repeat center / cover;
}
.swiper-button-next svg,
.swiper-button-prev svg {
	display: none;
}
.exp-plan__head {
	position: relative;
}
.exp-plan__icon {
	position: absolute;
	bottom: -37px;
	left: calc(7.185% - 22.5px);
}
.exp-plan__icon-number {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 45px;
	height: 54px;
	background: url(../images/bg-item.png) no-repeat center / cover;
	color: var(--color-white);
	font-size: 0.5625rem;
	line-height: 1;
}
.exp-plan__icon-number span {
	font-size: 1.125rem;
}
.exp-plan__titles {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin-bottom: 0.5rem;
}
.exp-plan__title-en {
	font-size: 1.25rem;
	color: #9A8C7C;
}
.exp-plan__title-jp {
	font-size: 1.25rem;
}
.exp-plan__body {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}
.exp-plan__image {
	width: 85.625%;
	margin: 0 auto;
}
.exp-plan__image img {
	display: block;
	width: 100%;
	height: auto;
}
.exp-plan__text {
	margin-bottom: 1.5rem;
	font-size: 1rem;
}
.exp-plan__spec {
	display: flex;
	flex-wrap: wrap;
	font-size: 1rem;
}
.exp-plan__spec dt {
	width: 7em;
	padding: 0.5em 1em;
	border-top: 1px solid #C2C2C2;
	font-weight: normal;
}
.exp-plan__spec dt:first-of-type {
	padding-top: 0.5625em;
	padding-bottom: 0.5625em;

}
.exp-plan__spec dd {
	width: calc(100% - 7em);
	padding: 0.5em 0;
	border-top: 1px solid #C2C2C2;
}
.exp-plan__spec dd:first-of-type {
	font-size: 1.125rem;
}
.exp-plan__spec dd .difficulty-1::after {
	content: '★☆☆☆☆';
}
.exp-plan__spec dd .difficulty-2::after {
	content: '★★☆☆☆';
}
.exp-plan__spec dd .difficulty-3::after {
	content: '★★★☆☆';
}
.exp-plan__spec dd .difficulty-4::after {
	content: '★★★★☆';
}
.exp-plan__spec dd .difficulty-5::after {
	content: '★★★★★';
}
.exp-plan__spec dd span {
	display: block;
	padding-top: 4px;
	font-size: 0.875rem;
}
.exp-plans__cta {
	margin-top: 16px;
	text-align: center;
}

.exp-flow {
	position: relative;
	padding: 64px 0 40px;
	background-color: #fff;
}
.exp-flow::after {
	position: absolute;
	top: -26px;
	left: calc(50% - 22.5px);
	width: 45px;
	height: 53px;
	background: url(../images/img-kumiko.svg) no-repeat center / cover;
	content: '';
}
.exp-flow__inner {
	width: 84.22391vw;
	max-width: 1320px;
	margin: 0 auto;
}
.exp-flow__list {
	display: flex;
	flex-direction: column;
	gap: 12px;
	counter-reset: my-counter;
}
.exp-flow__item {
	position: relative;
	padding-left: 26px;
}
.exp-flow__item::before {
	display: flex;
	align-items: center;
	justify-content: center;
	position: absolute;
	top: 2px;
	left: 0;
	width: 20px;
	height: 20px;
	background: linear-gradient(to bottom, #C4B077, #B19B5D);
	color: var(--color-white);
	border-radius: 50%;
	font-size: 0.875rem;
	counter-increment: my-counter;
	content: counter(my-counter);
}
.exp-flow__step-text {
	font-size: 1rem;
	line-height: 1.6;
}
.exp-flow__step-note {
	color: #A20100;
	font-size: 0.875rem;
	line-height: 1.6;
}
.exp-flow__note {
	margin-top: 40px;
	padding: 1.5em;
	background: #F5F5F0;
	font-size: 0.9375rem;
}

.exp-notes {
	padding: 40px 0;
}
.exp-notes__inner {
	width: 84.22391vw;
	max-width: 1320px;
	margin: 0 auto;
}
.exp-notes__list {
	display: flex;
	flex-direction: column;
	border-bottom: 1px solid #9A8C7C;
}
.exp-note {
	padding: 20px 0;
	border-top: 1px solid #9A8C7C;
}
.exp-note__title {
	margin-bottom: 0.5rem;
	font-weight: 700;
	font-family: var(--font-normal);
	font-size: 1.125rem;
}
.exp-note__text {
	font-size: 0.9375rem;
}
.exp-note__text + .exp-note__text {
	margin-top: 0.5em;
}
.exp-note__text a {
	text-decoration: underline;
}

.exp-section__title {
	position: relative;
	margin-bottom: 2.5rem;
	padding-bottom: 10px;
	font-size: 1.6875rem;
	text-align: center;
}
.exp-section__title::after {
	position: absolute;
	bottom: 0;
	left: calc(50% - 28px);
	width: 56px;
	height: 1px;
	background: #836324;
	content: '';
}
.exp-faq {
	padding: 40px 0 80px;
	background-color: #fff;
}
.exp-faq__inner {
	width: 84.22391vw;
	max-width: 1320px;
	margin: 0 auto;
}
.exp-faq .wp-block-columns {
	gap: 0;
	width: 100%;
	margin-bottom: 0;
}
.exp-faq .wp-block-heading {
	padding: 16px 0;
	border-top: 3px double #9A8C7C;
	font-weight: 700;
	font-family: var(--font-normal);
	font-size: 1.125rem;
	color: var(--color-gold);
	text-align: left;
	vertical-align: top;
}
.exp-faq .schema-faq-question {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 4px;
	width: 100%;
	padding: 16px 40px 16px 12px;
	background: transparent;
	border: 0;
	border-top: 1px solid #9A8C7C;
	font-weight: normal;
	font-size: 1rem;
	line-height: 1.8;
	letter-spacing: 0.04em;
	text-align: left;
}
.exp-faq .schema-faq-question::before {
	position: absolute;
	top: 26px;
	right: 12px;
	width: 14px;
	height: 8px;
	background: url(../images/icon-faq.svg) no-repeat center / cover;
	transition: transform 0.3s ease;
	content: '';
}
.exp-faq .schema-faq-section:has(.is-open) .schema-faq-question::before {
	transform: rotate(180deg);
}
.exp-faq .schema-faq-answer {
	overflow: hidden;
	max-height: 0;
	opacity: 0;
	padding: 0 16px;
	font-size: 0.9375rem;
	line-height: 1.8;
	letter-spacing: 0.04em;
	background-color: #F5F5F0;
	transition: max-height 0.3s ease, opacity 0.3s ease, padding-top 0.3s ease, padding-bottom 0.3s ease;
}
.exp-faq .schema-faq-answer.is-open {
	max-height: 500px;
	opacity: 1;
	padding-top: 16px;
	padding-bottom: 16px;
}
.exp-faq .schema-faq-answer a {
	text-decoration: underline;
}
@media (min-width: 782px) {
	.exp-faq .wp-block-columns {
		flex-wrap: wrap !important;
	}
	.exp-faq .wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column {
		flex-basis: inherit;
		flex-grow: 1;
	}
}

/* Contact Page
----------------------------------------------------------------- */
.contact-form {
	margin-top: 40px;
}
.contact-form dt {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	margin-top: 16px;
	font-weight: 500;
}
.contact-form dt .required {
	display: inline-flex;
	align-items: center;
	margin-left: 0.75em;
	padding: 2px 4px 4px;
	border: 1px solid #937946;
	border-radius: 3px;
	background: #FFF;
	color: #937946;
	font-size: 0.6875rem;
	line-height: 1;
}
.contact-form dt .note {
	display: block;
	margin-top: 8px;
	margin-bottom: 10px;
	font-size: 0.875rem;
	line-height: 1.6;
	letter-spacing: 0.04em;
}
.contact-form dd {
	margin-top: 4px;
}
.wpcf7-form .wpcf7-spinner {
	display: none;
	width: 100%;
	margin-top: 10px;
}
input[type="text"],
input[type="tel"],
input[type="email"],
input[type="date"],
select {
	width: 100%;
	padding: 10px 15px;
	border-radius: 3px;
	border: 1px solid #C2C2C2;
	background-color: #FFF;
	font-weight: normal;
	font-size: 1rem;
	font-family: "Zen Kaku Gothic New", sans-serif;
}
::placeholder {
	color: #C2C2C2;
}
textarea {
	width: 100%;
	height: 210px;
	padding: 10px 15px;
	border-radius: 3px;
	border: 1px solid #C2C2C2;
	background-color: #FFF;
	font-weight: normal;
	font-size: 1rem;
	font-family: "Zen Kaku Gothic New", sans-serif;
}
input:focus,
textarea:focus {
	z-index: 10;
	outline: 0;
	border: 1px solid var(--color-gold);
}
input[type="submit"],
input[type="button"],
input[type="reset"] {
	display: flex;
	justify-content: center;
	align-items: center;
	width: auto;
	min-width: 280px;
	height: 52px;
	padding: 0 20px;
	border: none;
	background-color: var(--color-gold);
	color: #FFF;
	text-align: center;
	transition: all 0.2s ease;
}
input[type="button"] {
	background-color: var(--color-gold);
}
input[type="button"].back_button {
	background-color: #707070;
}
input[type="submit"]:hover,
input[type="button"]:hover,
input[type="reset"]:hover {
	opacity: 0.8;
}
input[type="submit"]:hover::before,
input[type="button"]:hover::before,
input[type="reset"]:hover::before {
	animation: flash 0.75s;
}
input[type="checkbox"] {
	opacity: 0;
	position: absolute;
}
.wpcf7-list-item-label,
.checkbox-group label {
	cursor: pointer;
	display: flex;
	position: relative;
}
.wpcf7-list-item-label::before,
.checkbox-group label::before {
	background: #fff;
	border: 1px solid #9A8C7C;
	content: '';
	width: 20px;
	height: 20px;
	margin-bottom: auto;
	margin-right: .5em;
	margin-top: auto;
	transition: background-color .3s;
}
input[type="checkbox"]:checked + .wpcf7-list-item-label::after,
.checkbox-group input[type="checkbox"]:checked + label::after {
	content: "";
	display: block;
	width: 10px;
	height: 7px;
	border-top: 2px solid #937946;
	border-right: 2px solid #937946;
	transform: rotate(135deg);
	position: absolute;
	left: 5px;
	top: 7px;
}
.wpcf7-not-valid-tip {
	color: #EA0829;
	font-weight: normal;
}
.wpcf7-response-output {
	margin-top: 1rem;
}
.wpcf7-not-valid-tip {
	overflow: visible;
	white-space: nowrap;
}
.wpcf7-list-item {
	margin-left: 0;
}
.wpcf7-acceptance {
	display: block;
	font-size: 0.875rem;
	text-align: center;
}
.wpcf7-acceptance a {
	margin-left: 0.5em;
	text-decoration: underline;
}
.form-notice {
	margin-top: 40px;
}
.form-button {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin-top: 40px;
	text-align: center;
}
@media (min-width: 768px) {
	.contact form > p {
		line-height: 1.94;
	}
	.contact-form {
		display: flex;
		flex-wrap: wrap;
		align-items: flex-start;
		gap: 48px 16px;
		width: 640px;
		margin: 64px auto 0;
	}
	.contact-form dt {
		width: 220px;
	}
	.contact-form dd {
		width: 404px;
		margin-top: 0;
	}
	.wpcf7-acceptance {
		margin-top: -24px;
		text-align: left;
	}
	.form-notice {
		font-size: 0.875rem;
		text-align: center;
	}
}

/* Information Section
----------------------------------------------------------------- */
.information {
	background-color: var(--color-cream);
	padding: 3.5rem 7.888045vw;
	text-align: center;
}
.information__inner {
	display: flex;
	flex-direction: column;
	align-items: center;
}
.information__text {
	font-size: 0.9375rem;
}
.information__text a {
	text-decoration: underline;
}
.information__title {
	margin-bottom: 0.5rem;
	font-size: 1.25rem;
	line-height: 1.6;
}
.information__tel a {
	font-size: 1.75rem;
	text-decoration: none;
}
.information__address {
	margin-bottom: 1.5rem;
	font-size: 0.9375rem;
}

/* Footer
----------------------------------------------------------------- */
.footer {
	position: relative;
	background-color: var(--color-white);
	padding: 60px 7.888045vw 10px;
}
.footer__nav {
	margin-bottom: 4rem;
}
.footer__nav-list {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
}
.footer__nav-item a {
	display: inline-flex;
	padding: 4px;
	font-size: 1.25rem;
}
.footer__logo {
	display: flex;
	justify-content: center;
	margin-bottom: 24px;
}
.footer__logo img {
	width: 193px;
	height: auto;
}
.footer__sns {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 15px;
	margin-bottom: 4rem;
}
.footer__sns-item {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
}
.footer__sns-item img {
	width: 100%;
	height: auto;
}
.footer__links {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	gap: 16px;
	margin-bottom: 3rem;
}
.footer__link {
	color: #888;
	font-size: 0.875rem;
}
.footer__separator {
	color: #999;
	font-size: 12px;
}
.footer__copyright {
	color: #909090;
	font-size: 0.6875rem;
	text-align: center;
}

@media (min-width: 768px) {
	.footer__nav-list {
		flex-direction: row;
		justify-content: center;
	}
}

@media (min-width: 640px) and (max-width: 979px) {
	.exp-plans__inner {
		max-width: 540px;
	}
	.exp-plan__icon {
		bottom: -36px;
		left: calc(7.185% - 30px);
	}
	.exp-plan__icon-number {
		width: 60px;
		height: 72px;
		font-size: 1rem;
	}
	.exp-plan__icon-number span {
		font-size: 2rem;
	}
	.exp-plans__plan .swiper-button-next,
	.exp-plans__plan .swiper-button-prev {
		top: 240px !important;
	}
}

@media (min-width: 980px) {
	.exp-plans {
		padding-top: 100px;
	}
	.exp-plans__plan + .exp-plans__plan {
		margin-top: 90px;
	}
	.exp-plan__title {
		width: 520px;
		margin: 0 auto 2rem;
		font-size: 2rem;
	}

	.slider-thumbnail,
	.exp-plans__plan .swiper-button-next,
	.exp-plans__plan .swiper-button-prev {
		display: none !important;
	}
	.exp-plans__list.swiper {
		overflow: visible !important;
	}
	.exp-plans__list .swiper-wrapper {
		flex-wrap: wrap;
		gap: 10%;
	}
	.exp-plan {
		width: 45% !important;
	}
	.exp-plan__icon {
		bottom: -36px;
		left: -30px;
	}
	.exp-plan__icon-number {
		width: 60px;
		height: 72px;
		font-size: 1rem;
	}
	.exp-plan__icon-number span {
		font-size: 2.25rem;
	}
	.exp-plan__titles {
		line-height: 1.4;
	}
	.exp-plan__title-jp {
		font-size: 1.5rem;
	}
	.exp-plan__title-en {
		font-size: 1.25rem;
	}
	.exp-plan__image {
		width: 100%;
	}
	.exp-plans__cta {
		margin-top: 100px;
	}
}

/* Desktop Styles
----------------------------------------------------------------- */
@media (min-width: 980px) {
	/* Header */
	.header {
		transform: translateY(0);
		opacity: 1;
	}
	body.is-header-visible .header:not(:has(.is-open))::after {
		position: absolute;
		bottom: 0;
		left: 0;
		width: 100%;
		height: 2px;
		background: transparent linear-gradient(90deg, #B49F67 0%, #F8F1DC 0%, #F3ECD5 56%, #B19C62 100%) 0% 0% no-repeat padding-box;
		content: '';
	}
	.header__inner {
		align-items: center;
		justify-content: space-between;
		height: 138px;
	}
	.header__log {
		margin-left: 4.42708vw;
	}
	.header__logo img {
		height: 106px;
	}
	.header__nav {
		overflow: visible;
		opacity: 1;
		position: static;
		z-index: 10;
		width: auto;
		height: auto;
		padding: 0;
		margin-left: auto;
		background: transparent;
		pointer-events: auto;
	}
	.header__nav-list {
		flex-direction: row;
		width: auto;
		gap: clamp(1.5rem, 2.5vw, 3rem);
	}
	.header__nav-item::after {
		display: none;
	}
	.header__nav-item a {
		display: block;
		padding: 0;
	}
	body.is-header-scroll .header__nav-item a {
		color: #fff;
	}
	.header__nav-item a:hover {
		opacity: 0.8;
	}
	body.home.is-header-scroll .header__lang {
		opacity: 1;
	}
	.reservation__btn {
		display: none;
	}
	.header__lang {
		margin-left: 4.16666vw;
		margin-right: 3.38541vw;
	}
	.header__hamburger {
		display: none;
	}

	/* Hero Section */
	.hero {
		min-height: 100vh;
	}
	@keyframes zoomUp {
		0% {
			transform: scale(1);
		}
		100% {
			transform: scale(1.05);
		}
	}
	@media (orientation: portrait){
		.hero {
			min-height: 1080px;
		}
		.hero__content {
			height: 100%;
			min-height: 1080px;
		}
	}
	.hero__catch {
		display: flex;
		justify-content: center;
		align-items: center;
		position: absolute;
		top: 0;
		left: 8.33333vw;
		width: fit-content;
		height: 100%;
		font-size: min(2.5641025vh, 1.4375rem);
		writing-mode: vertical-rl;
		text-align: left;
	}
	.hero__catch .sp-only {
		display: none;
	}
	.hero__catch span {
		display: inline-block;
		transform: rotate(-90deg);
	}
	.hero__logo {
		margin-top: auto;
	}
	.hero__logo img {
		height: 520px;
		max-height: 53.06122vh;
	}
	.hero__b.hero__btn,
	.scene__btn {
		height: 67px;
	}
	.hero__btn-text {
		font-size: 20px;
	}

	.lead {
		padding: 80px 1.5rem;
	}
	.lead::before,
	.exp-flow::after {
		top: -31px;
		left: calc(50% - 26px);
		width: 52px;
		height: 62px;
	}
	.lead__text {
		font-size: 1.125rem;
		text-align: center;
	}
	.lead .sp-none {
		display: block;
	}

	/* About Section */
	.about {
		padding: 100px 0;
	}
	.about::before {
		top: -42.5px;
		left: calc(50% - 36px);
		width: 72px;
		height: 85px;
	}
	.about__title {
		margin-bottom: 60px;
	}
	.about__title-en {
		font-size: 3.5rem;
		line-height: 1.2;
	}
	.about__content {
		flex-direction: row;
		align-items: flex-start;
		gap: 60px;
		width: 84.22391vw;
		max-width: 1280px;
		margin: 0 auto;
	}
	.about__text {
		flex: 1;
		margin-bottom: 0;
		font-size: 1rem;
	}
	.about__text h3 {
		font-size: 1.25rem;
		line-height: 1.8;
	}
	.about__text p {
		font-size: 1.125rem;
	}
	.about__image {
		flex: 1;
	}

	/* Scene Section */
	.scene {
		padding: 100px 40px;
	}
	.scene::before {
		top: -31px;
		left: calc(50% - 26px);
		width: 52px;
		height: 62px;
	}
	.scene__title {
		font-size: 2rem;
	}
	.scene__gallery {
		flex-direction: row;
		gap: min(1.5rem, 2vw);
		max-width: inherit;
	}
	.scene__item {
		flex: 1;
	}

	/* Story Section */
	.story {
		padding: 180px 0 140px;
	}
	.story::before {
		left: 0;
		width: 441px;
		padding-top: 256px;
		background-size: contain;
	}
	.story::after {
		right: 0;
		left: inherit;
		width: 441px;
		padding-top: 256px;
		background-size: contain;
	}
	.story__title {
		position: absolute;
		left: 7.888045vw;
		width: auto;
		writing-mode: vertical-rl;
		flex-direction: column;
		margin-bottom: 0;
	}
	.story__title-en {
		font-size: 3.5rem;
		letter-spacing: 0.1em;
	}
	.story__title-jp {
		font-size: 1.6875rem;
		letter-spacing: 0.14em;
	}
	.story__inner {
		position: relative;
		max-width: 1320px;
		margin: 0 auto;
	}
	.story__content {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 60px;
		align-items: start;
	}
	.story__text {
		width: auto;
		margin-right: 7.888045vw;
		margin-left: 25vw;
	}
	.story__text h3 {
		font-size: 1.5rem;
	}
	.story__image {
		grid-column: 1;
		grid-row: 1 / 3;
		width: auto;
		margin-left: 25vw;
	}

	/* Access Section */
	.access {
		padding: 88px 0 24px;
	}
	.access::before {
		top: -31px;
		left: calc(50% - 26px);
		width: 52px;
		height: 62px;
	}
	.access::after {
		bottom: -24px;
	}
	.access__inner {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		width: 84.22391vw;
		max-width: 1320px;
		margin: 0 auto;
	}
	.access__title {
		width: 100%;
	}
	.access__title-en {
		font-size: 3.5rem;
	}
	.access__title-jp {
		font-size: 1.6875rem;
	}
	.access__info {
		gap: 40px;
		max-width: 480px;
	}
	.access__text {
		padding-right: 1em;
		padding-left: 64px;
	}
	.access__content {
		width: calc(100% - 500px);
		margin-top: 0;
	}
	.access__map {
		flex: 1;
	}
	.access__image {
		flex: 1;
		margin-top: 0;
	}
	.access__map-link,
	.access__image-link {
		font-size: 1rem;
	}
	.access__map-link:hover,
	.access__image-link:hover {
		opacity: 0.8;
	}
	.access__guide {
		width: 100%;
		margin-top: 3rem;
	}

	/* Instagram Section */
	.instagram {
		padding: 40px 0 80px;
	}
	.instagram::before {
		top: -31px;
		left: calc(50% - 26px);
		width: 52px;
		height: 62px;
	}
	.instagram__title {
		font-size: 1.75rem;
	}
	.instagram__list {
		width: 100%;
	}
	#sb_instagram {
		width: 200vw;
		height: 20vw;
		animation: scroll-left 100s infinite linear .5s both;
	}
	#sb_instagram #sbi_images {
		width: 200vw;
	}
	#sb_instagram .sbi_photo {
		height: 20vw !important;
	}
	
	/* Page */
	.page-content {
		padding: 80px 0 120px;
		font-size: 1.125rem;
	}
	.page-content h2.wp-block-heading {
		font-size: 2rem;
	}
	.page-content h2.wp-block-heading .sp-only {
		display: none;
	}
	.terms .page-content h2.wp-block-heading,
	.privacy .page-content h2.wp-block-heading {
		margin-top: 4rem;
		font-size: 1.625rem;
	}
	.terms .page-content h3.wp-block-heading,
	.privacy .page-content h3.wp-block-heading {
		font-size: 1.25rem;
	}
		
	/* Experience Page */
	.page-hero {
		padding-top: 200px;
		padding-bottom: 40px;
	}
	.page-hero__label-en {
		font-size: 3.5rem;
	}
	.page-hero__title-jp {
		font-size: 1.75rem;
	}
	.exp-intro__title {
		font-size: 2rem;
	}
	.sp-only {
		display: none;
	}
	.exp-intro__lead {
		font-size: 1.125rem;
		line-height: 1.94;
		text-align: center;
	}
	.exp-intro__photos {
		flex-direction: row;
		gap: 24px;
		margin-bottom: -160px;
	}
	.exp-menu {
		padding-top: 254px;
		padding-bottom: 100px;
	}
	.exp-menu__list {
		flex-wrap: wrap;
		flex-direction: row;
		justify-content: center;
		gap: 80px 4.13732%;
		max-width: inherit;
	}
	.exp-menu__item {
		width: 30.57512%;
	}
	.exp-menu__item:last-child {
		width: 100%;
	}
	.reservation-btn {
		max-width: 674px;
		height: 96px;
	}

	.exp-flow {
		padding-bottom: 50px;
	}
	.exp-flow__inner {
		max-width: 652px;
		margin: 0 auto;
	}
	.exp-flow__list {
		gap: 24px;
	}
	.exp-flow__item {
		flex: 1;
		padding-left: 58px;
	}
	.exp-flow__item::before {
		width: 28px;
		height: 28px;
		font-size: 0.9375rem;
	}
	.exp-flow__step-text {
		font-size: 1.125rem;
	}
	.exp-flow__step-note {
		margin-top: 0.5em;
	}
	.exp-flow__note {
		margin-top: 60px;
	}

	.exp-notes {
		padding: 50px 0;
	}
	.exp-notes__list {
		max-width: 1080px;
		margin: 0 auto;
	}
	.exp-note {
		position: relative;
		padding: 30px 0 30px 260px;
	}
	.exp-note__title {
		position: absolute;
		top: 30px;
		left: 28px;
		width: 260px;
	}
	.exp-note__text {
		width: calc(100% - 28px);
	}
	.exp-note__text {
		font-size: 1rem;
	}

	.exp-faq {
		padding: 90px 0 120px;
	}
	.exp-faq .wp-block-columns {
		max-width: 1080px;
		margin: 0 auto;
	}
	.exp-faq .wp-block-columns:last-of-type {
		border-bottom: 1px solid #9A8C7C;
	}
	.exp-faq .wp-block-column {
		display: table-cell;
		vertical-align: top;
		padding: 16px 0 0;
		border: 0;
		border-top: 1px solid #9A8C7C;
	}
	.exp-faq .wp-block-column:has(.wp-block-heading) {
		width: 250px;
		padding-top: 28px;
		padding-left: 20px;
	}
	.exp-faq .wp-block-column:has(.schema-faq) {
		width: calc(100% - 250px);
		color: var(--color-black);
		font-weight: normal;
		font-size: 1rem;
	}
	.exp-faq .wp-block-heading {
		padding: 0;
		border-top: 0;
		color: var(--color-black);
		font-weight: normal;
		font-size: 1rem;
	}
	.exp-faq .schema-faq-question {
		cursor: pointer;
	}
	.exp-faq .schema-faq .schema-faq-section:first-of-type .schema-faq-question {
		border-top: 0;
	}
	.exp-faq .schema-faq-answer.is-open {
		padding-right: 16px;
		padding-left: 16px;
		font-size: 1rem;
	}
	.exp-faq .schema-faq-answer.is-open.is-open {
		padding: 16px;
	}

	/* Contact Section */
	.information {
		padding: 80px 0 68px;
	}
	.information__text {
		font-size: 1rem;
		text-align: center;
	}
	.information__title {
		font-size: 1.5rem;
	}
	.information__title br {
		display: none;
	}
	.information__tel a {
		font-size: 1.5rem;
	}

	/* Footer */
	.footer {
		padding: 40px 28px 10px;
	}
	.footer__nav-list {
		gap: 30px;
	}
	.footer__nav-item a {
		font-size: 1.25rem;
	}
	.footer__nav-item a:hover {
		opacity: 0.8;
	}
	.footer__logo img {
		width: 250px;
	}
	.footer__sns {
		margin-bottom: 10px;
	}
	.footer__links {
		position: absolute;
		bottom: 10px;
		left: 28px;
		justify-content: flex-start;
		gap: 20px;
		margin-bottom: 0;
	}
	.footer__link {
		font-size: 0.8125rem;
	}
	.footer__link:hover {
		opacity: 0.8;
	}
}

@media (min-width: 980px) and (max-width: 1279px) {
	.header__inner {
		height: 120px;
	}
	.header__logo {
		margin-left: 4.42708vw;
	}
	.header__logo img {
		width: 16.171875vw;
		max-width: 207px;
		height: auto;
	}
	.header__nav-item a,
	.footer__nav-item a {
		font-size: clamp(1.125rem, 1.484375vw, 1.1875rem);
	}
	.header__lang {
		margin-left: min(4.16666vw, 40px);
	}
	.hero__catch {
		left: min(6.25vw, 80px);
	}
	.about {
		padding-top: min(10.20408vw, 120px);
	}
	.about__content {
		width: calc( 100% - 2 * 1.5rem );
		gap: min(3.90625vw, 60px);
	}
	.about__title,
	.exp-plans__inner {
		width: calc( 100% - 2 * 1.5rem );
	}
	.about__image {
		margin-right: -1.5rem;
	}
	.story__title-en {
		font-size: 3rem;
	}
	.access__title-en {
		font-size: 2.75rem;
	}
	.access__info {
		max-width: 420px;
	}
	.access__content {
		width: calc(100% - 440px);
	}
	.page-hero {
		padding-top: 160px;
	}
	.page-hero__label-en {
		font-size: min(4.88281vw, 3rem);
	}
	.page-hero__title-jp {
		font-size: min(2.8125vw, 1.5rem);
	}
	.exp-plans__list .swiper-wrapper {
		gap: 8%;
	}
	.exp-plan {
		width: 28% !important;
	}
}

@media (min-width: 1024px) {
	.story__inner {
		width: 84.22391vw;
		max-width: 1280px;
	}
	.story__title {
		left: 1.5rem;
	}
	.story__image,
	.story__text {
		margin-right: 0;
		margin-left: 200px;
	}
}

@media (min-width: 1280px) {
	.header__logo img {
		height: 102px;
	}
	.hero__logo img {
		height: 630px;
		max-height: 58.33333vh;
	}
	.lead {
		padding: 88px 0 72px;
	}
	.lead::before {
		top: -42.5px;
		left: calc(50% - 36px);
		width: 72px;
		height: 85px;
	}
	.about {
		padding: 128px 0 100px;
	}
	.about__content {
		gap: 80px;
	}
	.about__text {
		flex: auto;
		width: calc(50% - 140px);
	}
	.about__image {
		flex: auto;
		width: 50%;
	}
	.scene::before {
		top: -42.5px;
		left: calc(50% - 36px);
		width: 72px;
		height: 85px;
	}
	.scene__title {
		font-size: 2rem;
	}
	.story__title {
		left: 0;
	}
	.story__text {
		margin-top: 88px;
	}
	.story__text .sp-none {
		display: block;
	}
	.instagram {
		padding: 64px 0 128px;
	}
	.instagram::before {
		top: -42px;
		left: calc(50% - 36px);
		width: 72px;
		height: 85px;
	}
	.access::before {
		top: -42.5px;
		left: calc(50% - 36px);
		width: 72px;
		height: 85px;
	}
	.access__title-en {
		font-size: 3.5rem;
	}
	.access__title-jp {
		font-size: 1.6875rem;
	}
	.access__guide {
		font-size: 1.75rem;
	}
	.exp-plans__list .swiper-wrapper {
		gap: min(12.121212%, 160px);
	}
	.exp-plan {
		width: calc((100% - min(24.242424%, 320px)) / 3) !important;
	}
	.exp-plan__icon {
		bottom: -60px;
		left: -43px;
	}
	.exp-plan__icon-number {
		width: 86px;
		height: 103px;
	}
	.exp-plan__icon-number span {
		font-size: 2.25rem;
	}
}

/* ===== 予約フォームのスタイル ===== */
.modal-overlay {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-color: rgba(0, 0, 0, 0.5);
	z-index: 1000;
	overflow-y: auto;
}

.modal-overlay.active {
	display: flex;
	align-items: center;
	justify-content: center;
}

.modal-content {
	background-color: #fff;
	padding: 40px 50px 74px;
	max-width: 620px;
	width: 90%;
	box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
	max-height: 90vh;
	overflow-y: auto;
	position: relative;
	/* 横スクロール許可（後ろのルールと統合）*/
	overflow-x: auto;
}

@media (max-width: 600px) {
	.modal-content {
		padding: 20px 4.83871% 40px;
	}
}

.modal-header {
	margin-bottom: 30px;
	border-bottom: 1px solid #B3A47C;
	padding-bottom: 5px;
}

.modal-header h2 {
	font-size: 1.125rem;
	margin-bottom: 0;
}

.modal-header p {
	font-size: 13px;
	color: #999;
}

.modal-close {
	position: sticky;
	top: 0;
	display: block;
	width: 46px;
	height: 27px;
	margin-left: auto;
	padding: 6px 10px;
	font-size: 0;
	line-height: 1;
	cursor: pointer;
	transition: color 0.3s, box-shadow 0.2s;
	z-index: 10;
}

.modal-close::before,
.modal-close::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 100%;
	height: 1px;
	background-color: #836324;
}

.modal-close::before {
	transform: translate(-50%, -50%) rotate(25deg);
}
.modal-close::after {
	transform: translate(-50%, -50%) rotate(-25deg);
}

.form-group {
	margin-bottom: 25px;
}

.form-group:has(.checkbox-group) {
	margin-bottom: 0;
}

.form-label {
	display: block;
	font-weight: bold;
	margin-bottom: 8px;
	color: #333;
	font-size: 14px;
}

.form-label .required {
	color: #d32f2f;
	margin-left: 3px;
}

.form-input,
.form-select,
.form-textarea {
	width: 100%;
	padding: 8px 12px;
	border: 1px solid #ddd;
	border-radius: 2px;
	font-size: 1rem;
	font-family: inherit;
	transition: border-color 0.3s;
}

.form-select {
	padding-right: 30px;
	background: url(../images/icon-selector.svg) no-repeat right 12px center / 11px auto;
}

.form-input:focus,
.form-select:focus,
.form-textarea:focus {
	outline: none;
	border-color: #B19B5D;
	box-shadow: 0 0 0 3px rgba(51, 51, 51, 0.1);
}

.form-textarea {
	resize: vertical;
	min-height: 100px;
}

/* ステップインジケーター */
.step-indicator {
	display: flex;
	justify-content: space-between;
	margin-bottom: 30px;
	gap: 10px;
}

.step-indicator-item {
	flex: 1;
	text-align: center;
}

.step-indicator-number {
	display: inline-block;
	width: 40px;
	height: 40px;
	background-color: #F2F2F2;
	color: #212121;
	border-radius: 50%;
	line-height: 40px;
	font-weight: bold;
	margin-bottom: 8px;
	transition: all 0.3s;
}

.step-indicator-number.active {
	background-color: #937946;
	color: #fff;
}

.step-indicator-number.completed {
	background-color: #C2B695;
	color: #fff;
}

.step-indicator-label {
	font-size: 0.75rem;
	color: #212121;
	line-height: 1.2;
	letter-spacing: 0;
}

.step-indicator-label.active {
	color: #212121;
	font-weight: bold;
}

/* カレンダー */
.calendar-container {
	background-color: rgba(242, 242, 242, 0.45);
	padding: 10px;
	margin-bottom: 20px;
}

.calendar-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.calendar-header button {
	position: relative;
	background: none;
	border: none;
	cursor: pointer;
	width: 38px;
	height: 28px;
}

.calendar-header button::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	border-top: 7px solid transparent;
	border-right: 16px solid #B3A47C;
	border-bottom: 7px solid transparent;
	transform: translate(-50%, -50%);
}

.calendar-header h3 + button::before {
	border-right: none;
	border-left: 16px solid #B3A47C;
}

.calendar-header button img {
	display: none !important;
}

.calendar-header button:hover {
	opacity: 0.8;
}

.calendar-header h3 {
	font-size: 1rem;
	font-weight: bold;
}

.calendar-weekdays {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 4px;
	margin-bottom: 2px;
}

.calendar-weekday {
	text-align: center;
	font-weight: bold;
	font-size: 0.75rem;
	padding: 4px 0;
}

.calendar-days {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 4px;
}

/* Orange availability dot under selectable days */
.calendar-day::after {
	content: "";
	position: absolute;
	bottom: 4px;
	left: 50%;
	transform: translateX(-50%);
	width: 10px;
	height: 10px;
	border-radius: 50%;
	border: 1px solid #D07800;
	background-color: transparent;
	opacity: 1;
}

.calendar-day.is-holiday {
	color: #d32f2f;
}
.calendar-day.disabled::after,
/* Gray strike line UNDER the date for disabled days (まとめ) */
.calendar-day.disabled::after {
	content: "";
	position: absolute;
	bottom: 6px;
	left: 50%;
	transform: translateX(-50%);
	width: 40%;
	height: 1px;
	background-color: #C2C2C2;
	border: none !important;
	border-radius: 2px;
	opacity: 1;
}

.calendar-day.disabled::after {
	bottom: 8px;
}

.calendar-day.other-month::after,
.calendar-day.selected::after {
	content: none;
}

.calendar-day {
	display: flex;
	align-items: center;
	justify-content: center;
	padding-bottom: 10px;
	border: 1px solid #ddd;
	cursor: pointer;
	font-size: 0.8125rem;
	transition: all 0.3s;

	position: relative;
	flex-direction: column;
	gap: 4px;
}

.calendar-day:hover:not(.disabled):not(.other-month) {
	border-color: #B3A47C;
}

.calendar-day.other-month {
	cursor: default;
}

.calendar-day.disabled {
	cursor: not-allowed;
}

.calendar-day.selected {
	background-color: #B3A47C;
	color: #fff;
	border-color: #B3A47C;
	font-weight: bold;
}

.calendar-day.today {
	border: 1px solid #B19B5D;
}

/* ボタングループ */
.button-group {
	display: flex;
	gap: 10px;
	margin-top: 30px;
}

.button-group .btn {
	cursor: pointer;
	transition: all 0.3s ease;
}

.button-group .btn,
#step4 .btn {
	flex: 1;
	padding: 10px 20px;
	font-size: 0.9375rem;
	text-align: center;
}

.btn-next {
	background-color: #B3A47C;
	color: #fff;
}

.btn-next:hover {
	background-color: #C2B695;
}

.btn-back {
	background-color: #F2F2F2;
	color: #6F6F6F;
}

.btn-back:hover {
	background-color: #F4F4F4;
}

.btn-complete,
.btn-primary {
	background-color: #B3A47C;
	color: #fff;
}

.btn-complete:hover {
	background-color: #C2B695;
}

.btn-login {
	background-color: #2196f3;
	color: #fff;
}

.btn-login:hover {
	background-color: #0b7dda;
}

/* チェックボックス */
.checkbox-group {
	display: flex;
	align-items: center;
	gap: 10px;
}

.checkbox-group input[type="checkbox"] {
	width: 18px;
	height: 18px;
	cursor: pointer;
}

.checkbox-group label {
	cursor: pointer;
	font-size: 0.875rem;
}

.checkbox-group label a {
	text-decoration: underline;
}

/* 確認画面 */
.confirmation-content {
	background-color: #f9f9f9;
	padding: 20px;
	border-radius: 4px;
	margin-bottom: 20px;
}

.confirmation-item {
	display: flex;
	justify-content: space-between;
	padding: 12px 0;
	border-bottom: 1px solid #e0e0e0;
}

.confirmation-item:last-child {
	border-bottom: none;
}

.confirmation-label {
	font-weight: bold;
	color: #333;
	flex: 0 0 40%;
}

.confirmation-value {
	color: #666;
	flex: 1;
	text-align: right;
}

/* 完了画面 */
.completion-message {
	text-align: center;
	padding: 40px 20px;
}

.completion-icon {
	font-size: 60px;
	margin-bottom: 20px;
	color: #B3A47C;
}

.completion-title {
	font-size: 24px;
	font-weight: bold;
	color: #333;
	margin-bottom: 15px;
}

.completion-text {
	font-size: 0.875rem;
	margin-bottom: 30px;
	line-height: 1.6;
}

/* ログインセクション */
.login-section {
	background-color: #f0f7ff;
	padding: 20px;
	border-radius: 4px;
	margin-bottom: 20px;
	border: 1px solid #b3d9ff;
}

.login-section h3 {
	font-size: 0.875rem;
	font-weight: bold;
	margin-bottom: 15px;
}

.login-form {
	display: grid;
	gap: 10px;
	margin-bottom: 15px;
}

.login-form input {
	padding: 10px;
	border: 1px solid #ddd;
	border-radius: 4px;
	font-size: 13px;
}

.login-button-group {
	display: flex;
	gap: 10px;
}

.login-button-group button {
	flex: 1;
	padding: 10px;
	border: none;
	border-radius: 4px;
	font-size: 13px;
	font-weight: bold;
	cursor: pointer;
	transition: background-color 0.3s;
}

.btn-login-submit {
	background-color: #2196f3;
	color: #fff;
}

.btn-login-submit:hover {
	background-color: #0b7dda;
}

.btn-login-cancel {
	background-color: #e0e0e0;
	color: #333;
}

.btn-login-cancel:hover {
	background-color: #d0d0d0;
}

.success-message {
	background-color: #d4edda;
	border: 1px solid #c3e6cb;
	color: #155724;
	padding: 15px;
	border-radius: 4px;
	margin-bottom: 20px;
	display: none;
}

.success-message.active {
	display: block;
}

/* レスポンシブ */
.form-inline {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

/* プラン別・人数テーブル（デスクトップ） */
.plan-qty-grid {
	display: grid;
	grid-template-columns: 1.2fr 1fr 1fr 1fr;
	gap: 10px 12px;
	align-items: center;
	margin-top: 10px;
}

.plan-row {
	display: contents;
}

.plan-name {
	font-weight: bold;
	color: #333;
	min-width: 8em;
}

.plan-price {
	color: #666;
	font-size: 14px;
	min-width: 7em;
	white-space: nowrap;
}

.plan-select select {
	width: 100%;
}

.plan-select {
	width: 68px;
	min-width: 68px;
}

.plan-amount {
	text-align: right;
	font-weight: bold;
	color: #333;
	min-width: 6em;
	white-space: nowrap;
}

.plan-total-row {
	text-align: right;
	margin-top: 10px;
	font-size: 15px;
}

.calendar-note {
	margin-top: 8px;
	font-size: 12px;
	color: #999;
}

.field-hint {
	display: none;
	margin-top: 6px;
	font-size: 12px;
	color: #A20100;
}

/* inline errors */
.field-error {
	display: none;
	margin-top: 6px;
	font-size: 12px;
	color: #A20100;
}

.has-error input,
.has-error textarea,
.has-error select {
	border-color: #d32f2f !important;
	outline: none;
}

/* モーダル内：プラン別人数テーブルは常に4カラムを維持 */
.plan-qty-grid {
	grid-template-columns: max-content max-content 68px max-content;
	column-gap: 12px;
	row-gap: 10px;
	align-items: center;
	width: max-content;
}

@media (max-width: 600px) {
	.plan-qty-grid {
		display: flex;
		flex-wrap: wrap;
		width: 100%;
	}
	.plan-name {
		width: 100%;
	}
	.plan-select {
		min-width: 50px;
	}
}

/* --- 未選択状態の視覚強調（CSSのみ） --- */
/* selectedDate が空のとき、その form-group 内のカレンダーを強調 */
.form-group:has(#selectedDate[value=""]) .calendar-container {
	position: relative;
	border: 2px solid #d32f2f;
	/* 目立つ赤枠 */
	box-shadow: 0 0 0 3px rgba(211, 47, 47, .08);
}

/* 未選択のとき、月表示も赤みを帯びて注意喚起 */
.form-group:has(#selectedDate[value=""]) .calendar-header h3 {
	color: #d32f2f;
}

/* 未選択のとき、日付グリッドをやや淡くして「未確定」感を出す */
.form-group:has(#selectedDate[value=""]) .calendar-days {
	opacity: .92;
}

/* 枠の軽い鼓動アニメーション（過度に動かさない） */
@keyframes calHintPulse {
	0% {
			box-shadow: 0 0 0 3px rgba(211, 47, 47, .08);
	}

	50% {
			box-shadow: 0 0 0 5px rgba(211, 47, 47, .16);
	}

	100% {
			box-shadow: 0 0 0 3px rgba(211, 47, 47, .08);
	}
}

.form-group:has(#selectedDate[value=""]) .calendar-container {
	animation: calHintPulse 1.6s ease-in-out infinite;
}

/* キーボード操作のアクセシビリティ強化（既存カレンダーにフォーカスが来た時） */
.calendar-day:focus-visible {
	outline: 3px solid #333;
	outline-offset: 2px;
}

/* 常にガイドを表示（全ブラウザで初期表示で出る） */
.calendar-container {
	position: relative;
	/* 擬似要素の基準 */
}

.calendar-container::after {
	content: "Please select a date from the calendar.";
	position: absolute;
	top: -36px;
	right: 0;
	font-size: 0.75rem;
	color: #A20100;
	background: rgba(255, 255, 255, .95);
	border: 1px solid #F2F2F2;
	padding: 2px 10px;
	pointer-events: none;
	z-index: 1;
	/* 目立たせつつ邪魔しない演出 */
	box-shadow: 0 0 0 2px rgba(211, 47, 47, .08);
	animation: calHintPulse 1.6s ease-in-out infinite;
}

/* 対応ブラウザでは、日付選択(.calendar-day.selected)が出たらガイドを消す */
@supports selector(:has(*)) {
	.calendar-container:has(.calendar-day.selected)::after {
			display: none;
	}

	/* 未選択時の枠強調（:has版） */
	.form-group:has(.calendar-container:not(:has(.calendar-day.selected))) .calendar-container {
			border: 2px solid #d32f2f;
	}

	.form-group:has(.calendar-container:not(:has(.calendar-day.selected))) .calendar-header h3 {
			color: #d32f2f;
	}
}

/* 軽い鼓動アニメーション */
@keyframes calHintPulse {
	0% {
			box-shadow: 0 0 0 2px rgba(211, 47, 47, .08);
	}

	50% {
			box-shadow: 0 0 0 4px rgba(211, 47, 47, .16);
	}

	100% {
			box-shadow: 0 0 0 2px rgba(211, 47, 47, .08);
	}
}

/* キーボードフォーカスの見やすさ（任意） */
.calendar-day:focus-visible {
	outline: 1px solid #333;
	outline-offset: 2px;
}

.grecaptcha-badge {	
	z-index: 1;	
}		