/* ----------------------------------------------------
	bg
---------------------------------------------------- */
.bg {
	background-image: url(../img/bg.webp);
	background-position: center top;
	background-repeat: no-repeat;
	background-size: cover;
	width: 100%;
	height: 100vh;
	position: fixed;
	top: 0;
	left: 0;
	z-index: -1;
}

@media screen and (max-width: 768px) {
	.bg {
		background-image: url(../img/bg_sp.webp);
	}
}

/* ----------------------------------------------------
	header
---------------------------------------------------- */
.header {
	margin-bottom: min(12rem, 9.375vw);
	width: 100%;
	height: 49.219vw;
	position: relative;
}

.header__title {
	width: 86.016vw;
	position: absolute;
	bottom: -0.078vw;
	left: 1.875vw;
	z-index: 1;
}

.header__slide {
	width: 92.188vw;
	position: absolute;
	bottom: 0;
	right: 0;
}

.header__slide .slick-dots {
	width: auto;
	right: min(6rem, 4.688vw);
	bottom: max(-3.6rem, -2.813vw);
	z-index: 5;
}

.header__slide .slick-dots li:not(:last-of-type) {
	margin-right: 0.703vw;
}

.header__slide .slick-dots li button {
	background-color: rgba(217, 217, 217, 1);
	width: 0.703vw;
	height: 0.703vw;
	border-radius: 0.703vw;
}

.header__slide .slick-dots li.slick-active button {
	background-color: rgba(24, 83, 104, 1);
}

@media screen and (max-width: 768px) {
	.header {
		margin-bottom: 9.6vw;
		height: 136.267vw;
	}

	.header__title {
		width: 100%;
		top: 0;
		bottom: auto;
		left: 0;
		z-index: 2;
	}

	.header__slide {
		width: 96vw;
	}

	.header__slide .slick-dots {
		right: 4.267vw;
		bottom: -4.8vw;
	}

	.header__slide .slick-dots li:not(:last-of-type) {
		margin-right: 2.4vw;
	}

	.header__slide .slick-dots li button {
		width: 2.4vw;
		height: 2.4vw;
		border-radius: 2.4vw;
	}
}

/* ----------------------------------------------------
	lead
---------------------------------------------------- */
.lead {
	margin: 0 auto min(17rem, 13.281vw);
	width: min(128rem, 100vw);
	text-align: center;
	position: relative;
}

.lead::before {
	background-image: url(../img/lead-obj.svg);
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	width: min(29.2rem, 22.813vw);
	height: min(28.4rem, 22.188vw);
	position: absolute;
	top: max(-7.7rem, -6.016vw);
	right: min(1.8rem, 1.406vw);
	content: "";
}

.lead__title {
	margin-bottom: min(2.5rem, 1.953vw);
	line-height: 1.5;
	font-family: var(--mincho);
	font-size: min(3.2rem, 2.5vw);
	font-weight: 600;
}

.lead__content {
	line-height: 2;
	font-size: min(2rem, 1.563vw);
	font-weight: 500;
}

@media screen and (max-width: 768px) {
	.lead {
		margin-bottom: 19.733vw;
		padding: 0 4.267vw;
		width: 100%;
		text-align: left;
	}

	.lead::before {
		display: none;
	}

	.lead__title {
		margin-bottom: 2.4vw;
		font-size: 6.4vw;
	}

	.lead__content {
		font-size: 4.267vw;
		font-weight: 400;
	}
}

/* ----------------------------------------------------
	section
---------------------------------------------------- */
.section {
	margin: 0 auto;
	width: min(128rem, 100vw);
	overflow-x: hidden;
}

.section__title {
	margin-bottom: min(4rem, 3.125vw);
	line-height: 1;
	font-family: var(--title);
	font-size: min(9rem, 7.031vw);
	font-weight: 500;
	text-align: center;
}

.section__title--small {
	font-size: min(5.8rem, 4.531vw);
	display: block;
}

@media screen and (max-width: 768px) {
	.section {
		width: 100%;
	}

	.section__title {
		margin-bottom: 8vw;
		font-size: 12.8vw;
	}

	.section__title--small {
		font-size: 9.067vw;
	}
}

/* ----------------------------------------------------
	shop
---------------------------------------------------- */
.shop {
	margin-bottom: min(17rem, 13.281vw);
}

.shop__title {
	background-image: url(../img/shop-title.svg);
	background-position: center;
	background-repeat: no-repeat;
	background-size: auto 100%;
	margin-bottom: min(4rem, 3.125vw);
	padding-top: min(1.1rem, 0.859vw);
	height: min(7.5rem, 5.859vw);
	color: rgba(24, 83, 104, 1);
	font-size: min(2.4rem, 1.875vw);
	font-weight: 600;
	text-align: center;
}

.shop__menu {
	margin: 0 auto;
	width: min(96.2rem, 75.156vw);
}

.shop__menu--item {
	position: relative;
}

.shop__menu--item.type1::before,
.shop__menu--item.type2::before {
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	position: absolute;
	content: "";
}

.shop__menu--item.type1::before {
	background-image: url(../img/shop-obj01.svg);
	width: min(22.1rem, 17.266vw);
	height: min(21.4rem, 16.719vw);
	top: max(-18.2rem, -14.219vw);
	left: max(-13.5rem, -10.547vw);
}

.shop__menu--item.type2::before {
	background-image: url(../img/shop-obj02.svg);
	width: min(24.9rem, 19.453vw);
	height: min(24.9rem, 19.453vw);
	top: max(-21rem, -16.406vw);
	right: max(-18rem, -14.063vw);
}

.shop__menu--item:not(:last-of-type) {
	margin-bottom: min(11.5rem, 8.984vw);
}

.shop__slide.slick-dotted.slick-slider {
	margin-bottom: min(3rem, 2.344vw);
}

.shop__content--name {
	margin-bottom: min(2rem, 1.563vw);
	line-height: normal;
	font-family: var(--mincho);
	font-size: min(2.9rem, 2.266vw);
	font-weight: 600;
}

.shop__content--text,
.shop__content--price {
	font-size: min(1.6rem, 1.25vw);
}

.shop__content--text {
	margin-bottom: min(2rem, 1.563vw);
}

/* dots */
.shop__slide .slick-dots {
	justify-content: center;
	bottom: min(1.3rem, 1.016vw);
}

.shop__slide .slick-dots li:not(:last-of-type) {
	margin-right: min(0.9rem, 0.703vw);
}

.shop__slide .slick-dots li button {
	background-color: rgba(217, 217, 217, 1);
	width: min(0.9rem, 0.703vw);
	height: min(0.9rem, 0.703vw);
	border-radius: min(0.9rem, 0.703vw);
}

.shop__slide .slick-dots li.slick-active button {
	background-color: rgba(24, 83, 104, 1);
}

@media screen and (max-width: 768px) {
	.shop {
		margin-bottom: 32vw;
	}

	.shop__title {
		background-image: url(../img/shop-title_sp.svg);
		background-size: 77.867vw auto;
		margin-bottom: 6.933vw;
		padding-top: 0;
		height: 10.133vw;
		font-size: 4.8vw;
	}

	.shop__menu {
		padding: 0 4.267vw;
		width: 100%;
	}

	.shop__menu--item.type1::before,
	.shop__menu--item.type2::before {
		display: none;
	}

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

	.shop__slide.slick-dotted.slick-slider {
		margin-bottom: 4vw;
	}

	.shop__content--name {
		margin-bottom: 4vw;
		line-height: 1.5;
		font-size: 5.333vw;
		letter-spacing: -0.005em;
	}

	.shop__content--text,
	.shop__content--price {
		font-size: 3.733vw;
	}

	.shop__content--text {
		margin-bottom: 4vw;
	}

	/* dots */
	.shop__slide .slick-dots {
		right: 0;
		bottom: 1.333vw;
	}

	.shop__slide .slick-dots li:not(:last-of-type) {
		margin-right: 1.333vw;
	}

	.shop__slide .slick-dots li button {
		width: 1.333vw;
		height: 1.333vw;
		border-radius: 1.333vw;
	}
}

/* ----------------------------------------------------
	footer
---------------------------------------------------- */
.footer {
	background-color: rgb(var(--wht));
	padding: min(4rem, 3.125vw) 0;
	color: rgb(var(--blk));
}

.footer__note {
	margin: 0 auto min(6rem, 4.688vw);
	width: min(96rem, 75vw);
}

.footer__logo {
	margin: 0 auto min(4.8rem, 3.75vw);
	width: min(27.7rem, 21.641vw);
}

.footer__hotel {
	margin-bottom: min(4.8rem, 3.75vw);
	font-size: min(2.1rem, 1.641vw);
	text-align: center;
}

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

.footer__sns--item {
	margin: 0 min(1.5rem, 1.172vw);
	width: min(5.1rem, 3.984vw);
}

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

	.footer__note {
		margin-bottom: 16vw;
		padding: 0 4.267vw;
		width: 100%;
	}

	.footer__logo {
		margin-bottom: 8vw;
		width: 58.667vw;
	}

	.footer__hotel {
		margin-bottom: 8vw;
		font-size: 4.267vw;
	}

	.footer__sns {
		margin-bottom: 8vw;
	}

	.footer__sns--item {
		margin: 0 3.2vw;
		width: 12vw;
	}
}

/* 
	hotel-nav 
------------------------------ */
.footer .hotel-nav {
	margin-bottom: min(2rem, 1.563vw);
	line-height: 1;
	font-size: min(1.6rem, 1.25vw);
	display: flex;
	justify-content: center;
	align-items: center;
}

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

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

@media screen and (max-width: 768px) {
	.footer .hotel-nav {
		margin: 0 auto 4vw;
		font-size: 4.267vw;
		flex-direction: column;
	}

	.footer .hotel-nav::before {
		content: "";
	}

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

	.footer .hotel-nav__item:not(:last-of-type) {
		margin-bottom: 1em;
	}

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

/* 
	copy
------------------------------ */
.footer .copy {
	font-size: min(1.4rem, 1.094vw);
	text-align: center;
}

@media screen and (max-width: 768px) {
	.footer .copy {
		font-size: 2.933vw;
	}
}