/* ---------------------------------------------------
	gnav
---------------------------------------------------- */
.gnav {
	background: rgb(var(--pink));
	padding: min(3.2rem, 2.343vw) 0;
}

.gnav__list {
	margin: 0 auto;
	width: min(95rem, 69.546vw);
	display: flex;
	flex-wrap: wrap;
}

.gnav__list--item {
	margin-right: min(5.3rem, 3.88vw);
}

.gnav__list--item:nth-child(1),
.gnav__list--item:nth-child(2),
.gnav__list--item:nth-child(3),
.gnav__list--item:nth-child(4) {
	margin-bottom: min(3.2rem, 2.343vw);
}

.gnav__list--item:nth-child(1),
.gnav__list--item:nth-child(5) {
	width: min(16rem, 11.713vw);
}

.gnav__list--item:nth-child(2),
.gnav__list--item:nth-child(6) {
	width: min(25rem, 18.302vw);
}

.gnav__list--item:nth-child(3),
.gnav__list--item:nth-child(7) {
	width: min(20rem, 14.641vw);
}

.gnav__list--item:nth-child(4),
.gnav__list--item:nth-child(8) {
	margin-right: 0;
	width: min(18rem, 13.177vw);
}

.gnav__list--item a {
	background-image: url(../img/gnav-bg.svg);
	background-position: center left;
	background-repeat: no-repeat;
	background-size: min(5rem, 3.66vw) auto;
	padding-left: min(6.2rem, 4.539vw);
	height: min(5rem, 3.66vw);
	line-height: 1;
	color: rgb(var(--wht));
	font-family: var(--eng);
	font-size: min(2.4rem, 1.757vw);
	text-decoration: none;
	display: flex;
	align-items: center;
	position: relative;
	z-index: 10;
}

@media screen and (max-width: 768px) {
	.gnav {
		padding: 16vw 0 0 8vw;
		width: 100%;
		height: 100%;
		overflow: auto;
		position: fixed;
		top: 0;
		right: 0;
		left: auto;
		z-index: 999;
		transform: translateX(100%);
		transition: transform 1s cubic-bezier(0.215, 0.61, 0.355, 1);
	}

	.gnav__list {
		margin: 0 auto;
		width: 100%;
		display: block;
	}

	.gnav__list--item {
		margin-right: min(5.3rem, 3.88vw);
	}

	.gnav__list--item:nth-child(1),
	.gnav__list--item:nth-child(2),
	.gnav__list--item:nth-child(3),
	.gnav__list--item:nth-child(4),
	.gnav__list--item:nth-child(5),
	.gnav__list--item:nth-child(6),
	.gnav__list--item:nth-child(7),
	.gnav__list--item:nth-child(8) {
		margin-bottom: 0;
		width: 100%;
	}

	.gnav__list--item:not(:last-of-type) {
		margin-bottom: 5.333vw;
	}

	.gnav__list--item a {
		background-image: url(../img/gnav-bg_sp.svg);
		background-size: 5.867vw auto;
		padding-left: 8.533vw;
		height: auto;
		font-size: 5.333vw;
	}

	/* is-open */
	body.is-open {
		overflow: hidden;
	}

	.is-open .gnav {
		transform: translateX(0);
	}
}

/*
	toggle
------------------------------ */
.toggle {
	display: none;
}

@media screen and (max-width: 768px) {
	.toggle {
		background: rgb(var(--wht));
		width: 14.4vw;
		height: 14.4vw;
		border-radius: 14.4vw;
		display: block;
		position: fixed;
		top: 1em;
		right: 1em;
		z-index: 1000;
	}

	.toggle__inner {
		width: 100%;
		height: 100%;
		position: relative;
		cursor: pointer;
	}

	.toggle__inner--item {
		background: rgb(var(--pink));
		width: 9.6vw;
		height: 1px;
		display: block;
		position: absolute;
		left: 50%;
		transition: all 0.6s;
	}

	.toggle__inner--item:nth-child(1) {
		top: 3.733vw;
		transform: translateX(-50%);
	}

	.toggle__inner--item:nth-child(2) {
		top: 6.133vw;
		transform: translate(-50%, -50%);
	}

	.toggle__inner--item:nth-child(3) {
		background-color: transparent;
		height: auto;
		color: rgb(var(--pink));
		font-family: var(--pink);
		text-align: center;
		bottom: 2.4vw;
		transform: translateX(-50%);
	}

	/* is-open */
	.is-open .toggle__inner--item {
		transform-origin: 0 0;
	}

	.is-open .toggle__inner--item:nth-child(1) {
		top: 50%;
		transform: rotate(45deg) translate(-50%, -50%);
	}

	.is-open .toggle__inner--item:nth-child(2) {
		top: 50%;
		bottom: auto;
		transform: rotate(-45deg) translate(-50%, -50%);
	}

	.is-open .toggle__inner--item:nth-child(3) {
		opacity: 0;
	}
}

/* ----------------------------------------------------
	container
---------------------------------------------------- */
.container {
	margin: 0 auto;
	width: min(90rem, 69.231vw);
	position: relative;
	z-index: 10;
}

.section-title {
	background-image: url(../img/title-bg.svg);
	background-position: top center;
	background-repeat: no-repeat;
	background-size: min(6.5rem, 5vw) auto;
	margin-bottom: min(4.8rem, 3.692vw);
	padding-top: min(8rem, 6.154vw);
	line-height: normal;
	color: rgb(var(--pink));
	font-family: var(--eng);
	font-size: min(6.5rem, 5vw);
	font-weight: 400;
	text-align: center;
	position: relative;
	z-index: 11;
}

.section-title__jp {
	font-family: var(--gothic);
	font-size: min(2.2rem, 1.692vw);
	display: block;
}

.container-image {
	padding: min(0.8rem, 0.615vw);
	border: solid 2px rgb(var(--pink));
	position: relative;
}

@media screen and (max-width: 768px) {
	.section-title {
		background-size: 13.867vw auto;
		margin-bottom: 5.333vw;
		padding-top: 16vw;
		font-size: 12vw;
	}

	.section-title__jp {
		font-size: 5.333vw;
	}

	.container-image {
		padding: 0;
		border: none;
	}

	.container {
		width: 89.067vw;
	}
}

/* ----------------------------------------------------
	sakura
---------------------------------------------------- */
.sakura {
	padding-top: min(10rem, 7.692vw);
	position: relative;
	z-index: 10;
}

.sakura__text {
	margin-bottom: 1em;
	font-size: min(1.8rem, 1.318vw);
	text-align: center;
}

.sakura__map {
	margin-bottom: min(3rem, 2.196vw);
}

.sakura__list {
	margin: 0 auto;
	width: min(90rem, 65.886vw);
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}

.sakura__list--item {
	margin-bottom: min(3rem, 2.196vw);
	width: min(20rem, 14.641vw);
}

.sakura__list--item figcaption {
	margin-top: min(2rem, 1.464vw);
	line-height: 1.5;
	font-size: min(1.8rem, 1.318vw);
	font-weight: 500;
	text-align: center;
}

.sakura__list--item figcaption .eng {
	font-size: min(1.4rem, 1.025vw);
	font-weight: 400;
	display: block;
}

.sakura .recommend {
	background-image: url(../img/recommend-bg.webp);
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	margin: min(6rem, 4.392vw) auto 0;
	padding: min(5rem, 3.66vw);
	width: min(90rem, 65.886vw);
	text-align: center;
	position: relative;
}

.sakura .recommend__text {
	font-size: min(2.2rem, 1.611vw);
	font-weight: 500;
}

.sakura .recommend .link-button {
	background-color: rgb(var(--wht));
	margin: min(2rem, 1.464vw) auto 0;
	color: rgb(var(--pink));
	width: min(41.5rem, 30.381vw);
}

.sakura .recommend .link-button:hover {
	background-color: rgb(var(--pink));
	color: rgb(var(--wht));
}

@media screen and (max-width: 768px) {
	.sakura {
		padding-top: 16vw;
	}

	.sakura__text {
		font-size: 4.267vw;
	}

	.sakura__map {
		margin-bottom: 6.4vw;
	}

	.sakura__list {
		width: 89.067vw;
		justify-content: center;
	}

	.sakura__list--item {
		margin-bottom: 2.667vw;
		margin-left: calc((100% - 26.667vw * 3) / 2);
		width: 26.667vw;
	}

	.sakura__list--item:nth-child(1),
	.sakura__list--item:nth-child(4),
	.sakura__list--item:nth-child(7) {
		margin-left: 0;
	}

	.sakura__list--item figcaption {
		margin-top: 2.667vw;
		font-size: 3.467VW;
	}

	.sakura__list--item figcaption .eng {
		font-size: 2.933vw;
	}

	.sakura .recommend {
		background-image: url(../img/recommend-bg_sp.webp);
		margin-top: 8vw;
		padding: 8vw 0;
		width: 100%;
		position: relative;
	}

	.sakura .recommend__text {
		font-size: 4.8vw;
	}

	.sakura .recommend .link-button {
		margin-top: 4vw;
		width: 89.333vw;
	}

}

/* ----------------------------------------------------
	menu
---------------------------------------------------- */
.menu {
	background-image: url(../img/menu-bg.webp);
	background-position: center top;
	background-repeat: no-repeat;
	background-size: cover;
	padding-bottom: min(13.6rem, 9.956vw);
}

@media screen and (max-width: 768px) {
	.menu {
		background-image: url(../img/menu-bg_sp.webp);
		padding-bottom: 16vw;
	}
}

/*
	restaurant
------------------------------ */
.restaurant {
	padding-top: min(10rem, 7.692vw);
	position: relative;
	z-index: 10;
}

.restaurant__date {
	margin-bottom: min(7rem, 5.124vw);
	font-size: min(2.4rem, 1.757vw);
	text-align: center;
}

.restaurant__title {
	margin: 0 auto min(1.6rem, 1.231vw);
}

.restaurant__name {
	margin-bottom: min(3.6rem, 2.769vw);
	font-size: min(2rem, 1.538vw);
	font-weight: 500;
	display: flex;
	justify-content: center;
	align-items: center;
}

.restaurant__name .category {
	background-color: rgb(var(--pink));
	margin-left: 0.5em;
	padding: 0.3em 0.75em 0.5em;
	line-height: 1;
	color: rgb(var(--wht));
	font-size: min(1.6rem, 1.231vw);
	font-weight: 400;
	border-radius: min(2rem, 1.538vw);
}

.restaurant__list--item:not(:last-of-type) {
	margin-bottom: min(13rem, 9.517vw);
}

.restaurant__content {
	display: flex;
	justify-content: space-between;
}

.restaurant__list--item:nth-child(even) .restaurant__content {
	flex-direction: row-reverse;
}

.restaurant__content--image {
	width: min(45rem, 32.943vw);
}

.restaurant__slide .slick-dots {
	bottom: max(-2.5rem, -1.83vw);
}

.restaurant__content--detail {
	width: min(41.5rem, 30.381vw);
}

.restaurant__content--detail .text,
.restaurant__content--detail .price {
	margin-bottom: 1em;
	font-size: min(1.6rem, 1.171vw);
	font-weight: 500;
}

.restaurant__content--detail .price__table {
	line-height: 1.5;
}

.restaurant__content--detail .price__table--th {
	padding-right: 1em;
	vertical-align: baseline;
}

.restaurant__content--detail .price__table--th::before {
	color: rgb(var(--pink));
	content: "●";
}

.restaurant__content--detail .price__table--td {
	display: flex;
	align-items: baseline;
}

.restaurant__content--detail .price__main {
	font-size: min(2rem, 1.464vw);
}

.restaurant__content--detail .price__table--td .price__main {
	margin-left: 0.25em;
}

.restaurant__content--detail .link-button {
	background-color: rgb(var(--wht));
	width: 100%;
	color: rgb(var(--pink));
}

.restaurant__content--detail .link-button:hover {
	background-color: rgb(var(--pink));
	color: rgb(var(--wht));
}

@media screen and (max-width: 768px) {
	.restaurant {
		padding-top: 16vw;
	}

	.restaurant__date {
		margin-bottom: 8vw;
		font-size: 5.867vw;
	}

	.restaurant__title {
		margin-bottom: 2.667vw;
	}

	.restaurant__name {
		margin-bottom: 5.333vw;
		font-size: 4.8vw;
		flex-direction: column;
	}

	.restaurant__name .category {
		margin: 0.5em 0 0;
		font-size: 4.267vw;
		border-radius: 5.333vw;
	}

	.restaurant__list--item:not(:last-of-type) {
		margin-bottom: 13.333vw;
	}

	.restaurant__content {
		display: block;
	}

	.restaurant__content--image {
		margin-bottom: 4vw;
		width: 100%;
	}

	.restaurant__slide .slick-dots {
		bottom: -5.867vw;
	}

	.restaurant__content--detail {
		width: 100%;
	}

	.restaurant__content--detail .text,
	.restaurant__content--detail .price {
		margin-bottom: 0.25em;
		font-size: 3.733vw;
	}

	.restaurant__content--detail .price {
		margin-bottom: 1em;
	}

	.restaurant__content--detail .price__main {
		font-size: 4.8vw;
	}
}

/*
	buffet
------------------------------ */
.buffet .restaurant__title {
	width: min(30.7rem, 23.615vw);
}

@media screen and (max-width: 768px) {
	.buffet .restaurant__title {
		width: 76.533vw;
	}

	.buffet .restaurant__content--image {
		margin-bottom: 8vw;
	}

}

/*
	kaiseki
------------------------------ */
.kaiseki .restaurant__title {
	width: min(12.3rem, 9.462vw);
}

@media screen and (max-width: 768px) {
	.kaiseki .restaurant__title {
		width: 30.667vw;
	}
}

/*
	lunch
------------------------------ */
.lunch .restaurant__title {
	width: min(15.4rem, 11.846vw);
}

@media screen and (max-width: 768px) {
	.lunch .restaurant__title {
		width: 41.067vw;
	}
}

/*
	cocktail
------------------------------ */
.cocktail .restaurant__title {
	width: min(21.4rem, 16.462vw);
}

@media screen and (max-width: 768px) {
	.cocktail .restaurant__title {
		width: 54.667vw;
	}
}

/* ----------------------------------------------------
	one-column
---------------------------------------------------- */
.one-column__date {
	margin-bottom: min(1.6rem, 1.231vw);
	color: rgb(var(--pink));
	font-size: min(2.4rem, 1.757vw);
	text-align: center;
}

.one-column__content {
	text-align: center;
}

.one-column__content .place {
	margin-bottom: min(1.6rem, 1.171vw);
	font-size: min(2rem, 1.464vw);
	font-weight: 500;
}

.one-column__content .title {
	margin-bottom: min(1.6rem, 1.171vw);
	font-size: min(1.8rem, 1.318vw);
	font-weight: 400;
}

.one-column__content .text {
	margin-bottom: min(1.6rem, 1.171vw);
	font-size: min(1.6rem, 1.171vw);
}

.one-column__content .price {
	font-size: min(2rem, 1.464vw);
	display: flex;
	justify-content: center;
	align-items: baseline;
}

.one-column__content .price__main {
	margin-left: 0.25em;
	font-size: min(2.2rem, 1.611vw);
}

.one-column__content .time-list {
	margin-bottom: min(1.6rem, 1.171vw);
	font-size: min(1.8rem, 1.318vw);
}

.one-column__content .time-list__item::before {
	color: rgb(var(--pink));
	content: "●";
}

.one-column__content .time-list .time {
	margin-left: 1em;
}

.one-column__content .link-button {
	background-color: rgb(var(--wht));
	margin: min(4rem, 2.928vw) auto 0;
	width: min(41.5rem, 30.381vw);
	color: rgb(var(--pink));
}

.one-column__content .link-button:hover {
	background-color: rgb(var(--pink));
	color: rgb(var(--wht));
}

.inquiry {
	margin-top: min(6rem, 4.392vw);
	text-align: center;
}

.inquiry__title {
	margin-bottom: min(2rem, 1.464vw);
}

.inquiry__title--inner {
	background-color: rgb(var(--pink));
	width: min(30.4rem, 22.255vw);
	height: min(3.5rem, 2.562vw);
	color: rgb(var(--wht));
	font-size: min(1.8rem, 1.318vw);
	border-radius: min(3.5rem, 2.562vw);
	display: inline-flex;
	justify-content: center;
	align-items: center;
}

.inquiry__content {
	font-size: min(2.5rem, 1.83vw);
	font-weight: 500;
}

.inquiry__content .telephone {
	font-size: min(3rem, 2.196vw);
}

.inquiry__content--small {
	font-size: min(1.8rem, 1.318vw);
	font-weight: 400;
	display: block;
}

@media screen and (max-width: 768px) {
	.one-column__date {
		margin-bottom: 4vw;
		font-size: 5.6vw;
	}

	.one-column__content .place {
		margin-bottom: 4vw;
		font-size: 4.8vw;
	}

	.one-column__content .title,
	.one-column__content .text,
	.one-column__content .time-list {
		margin-bottom: 4vw;
		font-size: 4.267vw;
	}

	.one-column__content .price {
		font-size: 4.8vw;
	}

	.one-column__content .price__main {
		font-size: 5.333vw;
	}

	.one-column__content .time-list .time {
		margin-left: 0;
	}

	.one-column__content .link-button {
		margin-top: 6.4vw;
		width: 100%;
	}

	.inquiry {
		margin-top: 12vw;
	}

	.inquiry__title {
		margin-bottom: 4vw;
	}

	.inquiry__title--inner {
		width: 80vw;
		height: 9.333vw;
		font-size: 4.8vw;
		border-radius: 9.333vw;
	}

	.inquiry__content {
		line-height: 1.5;
		font-size: 6.667vw;
	}

	.inquiry__content .telephone {
		font-size: 8vw;
	}

	.inquiry__content--small {
		font-size: 4.8vw;
	}
}

/* ----------------------------------------------------
	tea
---------------------------------------------------- */
.tea {
	padding-top: min(13rem, 9.517vw);
	position: relative;
	z-index: 10;
}

.tea .container-image {
	margin-bottom: min(6rem, 4.615vw);
}

.tea__title {
	margin: 0 auto min(1.6rem, 1.231vw);
	width: min(46.5rem, 35.769vw);
}

.tea .one-column__content .inquiry {
	padding-top: min(6rem, 4.392vw);
	border-top: solid 2px rgb(var(--pink));
}

@media screen and (max-width: 768px) {
	.tea {
		padding-top: 16vw;
	}

	.tea .container-image {
		margin-bottom: 6.4vw;
	}

	.tea__title {
		margin-bottom: 2.667vw;
		width: 69.333vw;
	}

	.tea .one-column__content .inquiry {
		padding-top: 0;
		border-top: none;
	}
}

/* ----------------------------------------------------
	stay
---------------------------------------------------- */
.stay {
	padding-top: min(13rem, 9.517vw);
	overflow: hidden;
	position: relative;
	z-index: 10;
}

.stay .container-image {
	margin-bottom: min(6rem, 4.615vw);
}

.stay .container-image::before {
	background-image: url(../img/stay-obj01.webp);
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	width: min(49.4rem, 38vw);
	height: min(49.4rem, 38vw);
	position: absolute;
	top: max(-22rem, -16.923vw);
	left: max(-22rem, -16.923vw);
	z-index: -1;
	content: "";
}

.stay__title {
	margin: 0 auto min(1.6rem, 1.231vw);
	width: min(54rem, 41.538vw);
}

.stay .recommend {
	background-image: url(../img/recommend-bg.webp);
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	margin: min(6rem, 4.392vw) auto 0;
	padding: min(5rem, 3.66vw);
	width: min(90rem, 65.886vw);
	text-align: center;
	position: relative;
}

.stay .recommend::before {
	background-image: url(../img/stay-obj02.webp);
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	width: min(40.4rem, 29.575vw);
	height: min(40.4rem, 29.575vw);
	position: absolute;
	top: max(-20.2rem, -14.788vw);
	right: max(-20.2rem, -14.788vw);
	z-index: -1;
	content: "";
}

.stay .recommend__text {
	font-size: min(2.2rem, 1.611vw);
	font-weight: 500;
}

.stay .recommend .link-button {
	background-color: rgb(var(--wht));
	margin: min(2rem, 1.464vw) auto 0;
	color: rgb(var(--pink));
	width: min(41.5rem, 30.381vw);
}

.stay .recommend .link-button:hover {
	background-color: rgb(var(--pink));
	color: rgb(var(--wht));
}

@media screen and (max-width: 768px) {
	.stay {
		padding-top: 16vw;
	}

	.stay .container-image {
		margin-bottom: 6.4vw;
	}

	.stay .container-image::before {
		background-image: url(../img/stay-obj01_sp.webp);
		width: 60vw;
		height: 60vw;
		top: -30vw;
		left: -30vw;
	}

	.stay__title {
		margin-bottom: 2.667vw;
		width: 68.8vw;
	}

	.stay .recommend {
		background-image: url(../img/recommend-bg_sp.webp);
		margin-top: 12vw;
		padding: 8vw 0;
		width: 100%;
		position: relative;
	}

	.stay .recommend::before {
		width: 56vw;
		height: 56vw;
		top: -66.667vw;
		right: -28vw;
	}

	.stay .recommend__text {
		font-size: 4.8vw;
	}

	.stay .recommend .link-button {
		margin-top: 4vw;
		width: 89.333vw;
	}
}

/* ----------------------------------------------------
	event
---------------------------------------------------- */
.event {
	padding: min(13rem, 9.517vw) 0;
	overflow: hidden;
	position: relative;
	z-index: 10;
}

.event .container-image {
	margin-bottom: min(6rem, 4.615vw);
}

.event .container-image::before {
	background-image: url(../img/event-obj.webp);
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	width: min(49.4rem, 38vw);
	height: min(49.4rem, 38vw);
	position: absolute;
	top: max(-22rem, -16.923vw);
	left: max(-22rem, -16.923vw);
	z-index: -1;
	content: "";
}

.evemt__title {
	margin: 0 auto min(1.6rem, 1.231vw);
	width: min(38.3rem, 29.462vw);
}

@media screen and (max-width: 768px) {
	.event {
		padding: 16vw 0;
	}

	.event .container-image {
		margin-bottom: 16vw;
	}

	.event .container-image::before {
		background-image: url(../img/event-obj_sp.webp);
		width: 60vw;
		height: 60vw;
		top: auto;
		bottom: -53.333vw;
		left: -30vw;
	}

	.evemt__title {
		margin-bottom: 2.667vw;
		width: 61.867vw;
	}
}

/* ----------------------------------------------------
	media
---------------------------------------------------- */
.media {
	background: linear-gradient(180deg, rgba(233, 253, 255, 1) 0%, rgba(255, 241, 249, 1) 100%);
	padding-bottom: min(10rem, 7.692vw);
}

@media screen and (max-width: 768px) {
	.media {
		padding-bottom: 12vw;
	}
}

/*
	movie
------------------------------ */
.movie {
	padding-top: min(10rem, 7.692vw);
	position: relative;
	z-index: 10;
}

.movie__content {
	margin: 0 auto;
	width: min(32.9rem, 25.308vw);
	aspect-ratio: 9 / 16;
}

.movie__content iframe {
	width: 100%;
	height: 100%;
	border: 0;
	display: block;
}

@media screen and (max-width: 768px) {
	.movie {
		padding-top: 12vw;
	}

	.movie__content {
		width: 51.467vw;
	}
}

/*
	gallery
------------------------------ */
.gallery {
	padding-top: min(10rem, 7.692vw);
	position: relative;
	z-index: 10;
}

.gallery__list {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}

.gallery__list--item {
	margin-bottom: min(1rem, 0.769vw);
	width: min(21.7rem, 16.692vw);
}

@media screen and (max-width: 768px) {
	.gallery {
		padding-top: 12vw;
	}

	.gallery__list {
		justify-content: flex-start;
		position: relative;
	}

	.gallery__list::after {
		background-image: url(../img/title-bg.svg);
		background-position: center;
		background-repeat: no-repeat;
		background-size: 13.867vw auto;
		width: 28.8vw;
		content: "";
	}

	.gallery__list--item {
		margin: 0 1.333vw 1.333vw 0;
		width: 28.8vw;
	}

	.gallery__list--item:nth-child(3n) {
		margin-right: 0;
	}
}

/* ----------------------------------------------------
	campaign
---------------------------------------------------- */
.campaign {
	padding: min(10rem, 7.692vw) 0;
	text-align: center;
	position: relative;
	z-index: 10;
}

.campaign .container-image {
	margin: 0 auto min(3.6rem, 2.769vw);
}

.campaign__title {
	margin: 0 auto min(1.6rem, 1.231vw);
	width: min(43.6rem, 33.538vw);
}

.campaign__text {
	margin-bottom: min(3rem, 2.308vw);
	font-size: min(1.8rem, 1.385vw);
}

.campaign__content {
	font-weight: 500;
}

.campaign__content--title {
	font-size: min(2.2rem, 1.692vw);
}

.campaign__content--detail {
	margin-bottom: min(4rem, 3.077vw);
	font-size: min(2rem, 1.538vw);
}

.campaign__content--detail .date {
	color: rgb(var(--pink));
	font-size: min(2.5rem, 1.923vw);
}

.campaign__content--detail .table {
	margin: 0 auto;
}

.campaign__content--detail .table__th {
	padding-right: 1em;
	font-weight: 500;
}

.campaign__content--detail .table__th::before {
	color: rgb(var(--pink));
	content: "●";
}

.campaign .note {
	margin-top: min(1rem, 0.769vw);
}

.campaign__link {
	margin-top: min(4rem, 3.077vw);
}

.campaign__link--title {
	font-weight: 400;
}

.campaign__link--content {
	margin-top: min(1.6rem, 1.231vw);
}

.campaign__link--content .link-button {
	background-color: rgb(var(--wht));
	margin: 0 auto;
	width: min(42rem, 32.308vw);
	color: rgb(var(--pink));
}

.campaign__link--content .link-button:hover {
	background-color: rgb(var(--pink));
	color: rgb(var(--wht));
}

@media screen and (max-width: 768px) {
	.campaign {
		padding: 12vw 0;
	}

	.campaign .container-image {
		margin-bottom: 5.333vw;
	}

	.campaign__title {
		margin-bottom: 4vw;
		width: 58.667vw;
	}

	.campaign__text {
		margin-bottom: 4vw;
		font-size: 4.267vw;
	}

	.campaign__content--title {
		font-size: 4.8vw;
	}

	.campaign__content--detail {
		margin-bottom: 4vw;
		font-size: 4.8vw;
	}

	.campaign__content--detail .date {
		font-size: 5.6vw;
	}

	.campaign__content--detail .table,
	.campaign__content--detail .table tbody,
	.campaign__content--detail .table__row,
	.campaign__content--detail .table__th,
	.campaign__content--detail .table__td {
		text-align: center;
		display: block;
	}

	.campaign__content--detail .table__th {
		padding-right: 0;
	}

	.campaign .note {
		margin-top: 0;
	}

	.campaign__link {
		margin-top: 4vw;
	}

	.campaign__link--content {
		margin-top: 4vw;
	}

	.campaign__link--content .link-button {
		width: 83.467vw;
		height: 21.333vw;
	}
}

/* ----------------------------------------------------
	spgr
---------------------------------------------------- */
.spgr {
	background-color: rgb(var(--pink));
	padding: min(6rem, 4.615vw) 0;
	color: rgb(var(--wht));
	text-align: center;
}

.spgr__title {
	margin-bottom: min(3rem, 2.308vw);
	line-height: 1.5;
	font-size: min(2.2rem, 1.692vw);
	font-weight: 500;
}

.spgr__title small {
	font-size: min(1.6rem, 1.231vw);
	font-weight: 400;
}

.spgr__title .jp {
	font-size: min(2rem, 1.538vw);
}

.spgr__image {
	margin: 0 auto min(3rem, 2.308vw);
	width: min(41.6rem, 32vw);
}

.spgr__text {
	margin-bottom: min(3rem, 2.308vw);
	font-size: min(1.6rem, 1.231vw);
}

.spgr .link-button {
	background-color: rgb(var(--wht));
	margin: 0 auto;
	color: rgb(var(--pink));
	border-color: rgb(var(--wht));
	position: relative;
	z-index: 10;
}

.spgr .link-button:hover {
	background-color: rgb(var(--pink));
	color: rgb(var(--wht));
}

@media screen and (max-width: 768px) {
	.spgr {
		padding: 10.667vw 0;
	}

	.spgr__title {
		margin-bottom: 4.8vw;
		font-size: 4.8vw;
	}

	.spgr__title small,
	.spgr__title .jp {
		font-size: 4.267vw;
	}

	.spgr__image {
		margin-bottom: 4.8vw;
		width: 80vw;
	}

	.spgr__text {
		margin-bottom: 4.8vw;
		font-size: 3.467vw;
	}

	.spgr .link-button {
		width: 77.333vw;
	}
}

/* ----------------------------------------------------
	hotels
---------------------------------------------------- */
.hotels {
	background-image: url(../img/hotels-bg.webp);
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	padding-top: min(7.2rem, 5.271vw);
}

.hotels__link {
	margin-bottom: min(4.8rem, 3.514vw);
	display: flex;
	justify-content: center;
}

.hotels__link .link-button {
	margin: 0 min(2rem, 1.464vw);
	position: relative;
	z-index: 10;
}

.hotels__logo {
	margin: 0 auto min(1rem, 0.732vw);
	width: min(23rem, 16.837vw);
	position: relative;
	z-index: 10;
}

.hotels__name {
	margin-bottom: min(2.4rem, 1.757vw);
	font-size: min(2rem, 1.464vw);
	font-weight: 500;
	text-align: center;
}

.hotels__sns {
	margin-bottom: min(2.4rem, 1.757vw);
	display: flex;
	justify-content: center;
}

.hotels__sns--item {
	margin: 0 min(1.2rem, 0.878vw);
	width: min(4.8rem, 3.514vw);
	position: relative;
	z-index: 10;
}

.hotels__address,
.hotels__shuttle {
	font-size: min(1.6rem, 1.171vw);
	font-weight: 500;
	text-align: center;
}

.hotels__address--tel {
	display: block;
}

.hotels__shuttle {
	margin-bottom: min(4rem, 2.928vw);
}

.hotels__shuttle+.link-button {
	margin: 0 auto;
	position: relative;
	z-index: 10;
}

.hotels__map {
	margin-top: min(7.2rem, 5.271vw);
	line-height: 1;
	position: relative;
	z-index: 10;
}

.hotels__map iframe {
	width: 100%;
	height: min(47.5rem, 34.773vw);
}

@media screen and (max-width: 768px) {
	.hotels {
		background-image: url(../img/hotels-bg_sp.webp);
		padding-top: 12vw;
	}

	.hotels__link {
		margin-bottom: 4.8vw;
		padding: 0 5.333vw;
		justify-content: space-between;
	}

	.hotels__link .link-button {
		margin: 0;
		width: 43.467vw;
	}

	.hotels .link-button {
		height: 13.867vw;
	}

	.hotels__logo {
		margin-bottom: 2.4vw;
		width: 41.067vw;
	}

	.hotels__name {
		margin-bottom: 4.8vw;
		font-size: 3.733vw;
	}

	.hotels__sns {
		margin-bottom: 4.8vw;
	}

	.hotels__sns--item {
		margin: 0 3.2vw;
		width: 8.533vw;
	}

	.hotels__address,
	.hotels__shuttle {
		font-size: 3.2vw;
	}

	.hotels__shuttle {
		margin-bottom: 4.8vw;
	}

	.hotels__map {
		margin-top: 12vw;
	}

	.hotels__map iframe {
		height: 48vw;
	}
}

/* ----------------------------------------------------
	footer
---------------------------------------------------- */
.footer {
	padding: min(7.2rem, 5.271vw) 0;
	font-size: min(1.2rem, 0.878vw);
}

.footer .note {
	margin: 0 auto min(6.4rem, 4.685vw);
	width: min(90rem, 65.886vw);
}

@media screen and (max-width: 768px) {
	.footer {
		padding: 12vw 6.4vw;
		font-size: 3.2vw;
	}

	.footer .note {
		margin-bottom: 6.4vw;
		width: 100%;
	}
}

/* 
	hotel-nav 
------------------------------ */
.footer .hotel-nav {
	margin-bottom: 2em;
	line-height: 1;
	font-size: min(1.6rem, 1.171vw);
	display: flex;
	justify-content: center;
	align-items: center;
	position: relative;
	z-index: 10;
}

.footer .hotel-nav::before,
.footer .hotel-nav__item::after {
	content: "|";
}

.footer .hotel-nav__item a {
	padding: 0 1em;
	text-decoration: none;
}

@media screen and (max-width: 768px) {
	.footer .hotel-nav {
		font-size: 3.2vw;
		letter-spacing: -0.005em;
	}

	.footer .hotel-nav__item a {
		padding: 0 0.75em;
	}
}

/* 
	copy
------------------------------ */
.footer .copy {
	text-align: center;
}

@media screen and (max-width: 768px) {
	.footer .copy {
		text-align: center;
	}
}

/* ---------------------------------------------------
	sakura-scen（class）
--------------------------------------------------- */
.sakura-scen {
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
}

.sakura-scen__inner {
	width: 100%;
	height: 100%;
	overflow: hidden;
	position: relative;
}

.sakura-scen__inner img {
	position: absolute;
	top: -100px;
	z-index: 5;
}

/* JSから: `fall ${duration}s ...` を設定 */
@keyframes fall {
	to {
		top: 120%;
	}
}

/* JSから: `rotate ...` を設定。--rotate-* はJSで付与 */
@keyframes rotate {
	from {
		transform: translateX(calc(var(--rotate-x, 200px) * -1)) rotate(0deg) rotateX(0deg);
	}

	to {
		transform: translateX(var(--rotate-x, 200px)) rotate(var(--rotate-deg, -80deg)) rotateX(var(--rotate-xdeg, 180deg));
	}
}

@media screen and (max-width: 768px) {
	.sakura-scen__inner img {
		top: -50vw;
	}
}