/* ----------------------------------------------------
	main
---------------------------------------------------- */
.main {
	background: linear-gradient(0deg, rgba(235, 229, 161, 1) 0%, rgba(255, 254, 249, 1) 100%);
	padding: min(11.4rem, 8.346vw) 0 min(12.5rem, 9.151vw);
	position: relative;
}

.main::before {
	background-image: url(../img/bg.webp);
	background-position: center top;
	background-repeat: no-repeat;
	background-size: cover;
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	content: "";
}

@media screen and (max-width: 768px) {
	.main {
		padding: 25.6vw 0 35.2vw;
	}

	.main::before {
		display: none;
	}
}

/*
	object
------------------------------ */
.main .object,
.main .circle {
	background-position: center top;
	background-repeat: no-repeat;
	position: absolute;
	content: "";
}

.main .object {
	background-size: cover;
	z-index: 2;
}

.main .object.obj01 {
	background-image: url(../img/object01.svg);
	width: min(22rem, 16.105vw);
	height: min(14.1rem, 10.322vw);
	top: 0;
	right: 0;
}

.main .object.obj02 {
	background-image: url(../img/object02.svg);
	width: min(25.9rem, 18.96vw);
	height: min(29.7rem, 21.742vw);
	top: min(47.5rem, 34.773vw);
	left: 0;
}

.main .object.obj03 {
	background-image: url(../img/object03.svg);
	width: min(30.6rem, 22.401vw);
	height: min(33.3rem, 24.378vw);
	bottom: min(83.9rem, 61.42vw);
	right: 0;
}

.main .object.obj04 {
	background-image: url(../img/object04.svg);
	width: min(29.4rem, 21.523vw);
	height: min(18.9rem, 13.836vw);
	bottom: 0;
	left: 0;
}

.main .object.mountain {
	background-image: url(../img/mountain.svg);
	width: min(69.6rem, 50.952vw);
	height: min(48.6rem, 35.578vw);
	top: min(18.4rem, 13.47vw);
	right: 0;
}

.main .object.wave {
	background-image: url(../img/wave01.svg);
	width: min(20.3rem, 14.861vw);
	height: min(10.6rem, 7.76vw);
	top: min(27.7rem, 20.278vw);
	right: min(34.4rem, 25.183vw);
	z-index: 3;
}

.main .circle {
	background-image: url(../img/circle.svg);
	background-size: 100% 100%;
	z-index: 3;
}

.main .circle.circle01 {
	width: min(6.1rem, 4.466vw);
	height: min(6.1rem, 4.466vw);
	top: min(10.5rem, 7.687vw);
	right: min(3.3rem, 2.416vw);
}

.main .circle.circle02 {
	width: min(6.1rem, 4.466vw);
	height: min(6.1rem, 4.466vw);
	top: min(44.8rem, 32.796vw);
	left: min(2rem, 1.464vw);
}

.main .circle.circle03 {
	width: min(10.1rem, 7.394vw);
	height: min(10.1rem, 7.394vw);
	right: min(8.1rem, 5.93vw);
	bottom: min(6.2rem, 4.539vw);
}

@media screen and (max-width: 768px) {
	.main .object.obj01 {
		background-image: url(../img/object01_sp.svg);
		width: 42.933vw;
		height: 20vw;
		right: auto;
		left: 0;
	}

	.main .object.obj02 {
		background-image: url(../img/object02_sp.svg);
		width: 25.867vw;
		height: 32.8vw;
		top: 105.867vw;
		left: 0;
	}

	.main .object.obj03 {
		background-image: url(../img/object03_sp.svg);
		width: 42.4vw;
		height: 26.667vw;
		bottom: 0;
		right: auto;
		left: 0;
	}

	.main .object.obj04 {
		display: none;
	}

	.main .object.mountain {
		background-image: url(../img/mountain_sp.svg);
		width: 72vw;
		height: 57.6vw;
		top: 87.467vw;
	}

	.main .object.wave {
		width: 29.867vw;
		height: 15.733vw;
		top: 96.533vw;
		right: 23.733vw;
	}

	.main .circle {
		background-image: url(../img/circle.svg);
		background-size: 100% 100%;
		z-index: 3;
	}

	.main .circle.circle01 {
		width: 9.867vw;
		height: 9.867vw;
		top: 6.4vw;
		right: auto;
		left: 35.733vw;
	}

	.main .circle.circle02 {
		width: 9.333vw;
		height: 9.333vw;
		top: 103.733vw;
		left: 13.6vw;
	}

	.main .circle.circle03 {
		width: 14.133vw;
		height: 14.133vw;
		right: 9.333vw;
		bottom: 9.333vw;
	}
}

/*
	main__content
------------------------------ */
.main__content {
	margin: 0 auto;
	width: min(96.2rem, 70.425vw);
	text-align: center;
	position: relative;
	z-index: 3;
}

.main__title,
.main__lead {
	width: min(56rem, 40.996vw);
	position: relative;
	left: max(-1.1rem, -0.805vw);
}

.main__title {
	margin-bottom: min(2.6rem, 1.903vw);
}

.main__lead {
	margin-bottom: min(11.5rem, 8.419vw);
	font-size: min(2rem, 1.464vw);
}

.main .newyear {
	position: relative;
	z-index: 3;
}

.main .newyear__image {
	margin-bottom: min(3.3rem, 2.416vw);
}

.main .newyear:not(:last-of-type) {
	padding-bottom: min(13.5rem, 9.883vw);
}

.main .newyear__title {
	margin-bottom: min(2rem, 1.464vw);
	font-size: min(3.4rem, 2.489vw);
	font-weight: 500;
}

.main .newyear__text {
	margin-bottom: min(4rem, 2.928vw);
	font-size: min(1.9rem, 1.391vw);
}

.main .newyear .link-button {
	background: linear-gradient(90deg, rgba(182, 122, 15, 1) 0%, rgba(214, 166, 54, 1) 100%);
	width: min(46rem, 33.675vw);
}

.main .newyear .link-button svg {
	width: min(1.6rem, 1.171vw);
}

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

	.main__title,
	.main__lead {
		width: 100%;
		left: 0;
	}

	.main__title {
		margin-bottom: 5.333vw;
	}

	.main__title img {
		width: 81.333vw;
	}

	.main__lead {
		margin-bottom: 42.133vw;
		font-size: 3.733vw;
	}

	.main .newyear {
		margin: 0 auto;
		padding: 0 7.2vw;
		width: 100%;
		overflow-x: hidden;
		position: relative;
	}

	.main .newyear__image {
		margin-bottom: 9.067vw;
	}

	.main .newyear:not(:last-of-type) {
		padding-bottom: 37.067vw;
	}

	.main .newyear__title {
		margin-bottom: 1.867vw;
		font-size: 5.867vw;
	}

	.main .newyear__text {
		margin-bottom: 4.267vw;
		font-size: 3.733vw;
		letter-spacing: -0.005em;
	}

	.main .newyear .link-button {
		width: 100%;
	}

	.main .newyear .link-button svg {
		width: 3.2vw;
	}
}

/*
	newyear
------------------------------ */
.main .newyear .ny-obj {
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	position: absolute;
	content: "";
}

.main .newyear .ny-obj.circle {
	background-image: url(../img/circle.svg);
	background-size: 100% 100%;
	z-index: 3;
}

.main .newyear.ny01 .ny-obj.circle {
	width: min(10.1rem, 7.394vw);
	height: min(10.1rem, 7.394vw);
	top: min(47.7rem, 34.919vw);
	right: max(-7rem, -5.124vw);
}

.main .newyear.ny02 .ny-obj.circle {
	width: min(6.1rem, 4.466vw);
	height: min(6.1rem, 4.466vw);
	top: min(7.3rem, 5.344vw);
	left: max(-3.9rem, -2.855vw);
}

.main .newyear.ny01 .ny-obj.wave {
	background-image: url(../img/wave02.svg);
	width: min(20.3rem, 14.861vw);
	height: min(10.6rem, 7.76vw);
	bottom: min(9.6rem, 7.028vw);
	left: max(-12.3rem, -9.004vw);
}

.main .newyear.ny02 .ny-obj.wave {
	background-image: url(../img/wave01.svg);
	width: min(20.3rem, 14.861vw);
	height: min(10.6rem, 7.76vw);
	top: min(40.2rem, 29.429vw);
	right: max(-13.4rem, -9.81vw);
}

@media screen and (max-width: 768px) {
	.main .newyear.ny01 .ny-obj.circle {
		width: 12.533vw;
		height: 12.533vw;
		top: 40.8vw;
		right: -2.933vw;
	}

	.main .newyear.ny02 .ny-obj.circle {
		width: 6.933vw;
		height: 6.933vw;
		top: 7.2vw;
		left: 4vw;
	}

	.main .newyear.ny01 .ny-obj.wave {
		width: 29.067vw;
		height: 15.2vw;
		bottom: 12vw;
		left: 7.2vw;
	}

	.main .newyear.ny02 .ny-obj.wave {
		width: 22.133vw;
		height: 11.467vw;
		top: 30.933vw;
		right: -7.733vw;
	}
}

/* ----------------------------------------------------
	spgr
---------------------------------------------------- */
.spgr {
	background-color: rgb(var(--gra));
	padding: min(10rem, 7.321vw) 0;
}

.spgr__logo {
	margin: 0 auto min(2.9rem, 2.123vw);
	width: min(22.7rem, 16.618vw);
}

.spgr__content {
	margin-bottom: min(3.3rem, 2.416vw);
	line-height: 2.3;
	text-align: center;
}

.spgr__content--title {
	font-size: min(1.9rem, 1.391vw);
}

.spgr__content--text {
	font-size: min(2.5rem, 1.83vw);
}

.spgr .link-button {
	background-color: rgb(var(--gld));
	width: min(39.1rem, 28.624vw);
}

.spgr .link-button svg {
	width: min(2.6rem, 1.903vw);
}

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

	.spgr__logo {
		margin-bottom: 5.867vw;
		width: 38.667vw;
	}

	.spgr__content {
		margin-bottom: 5.333vw;
		line-height: 1.9;
	}

	.spgr__content--title {
		font-size: 3.467vw;
	}

	.spgr__content--text {
		font-size: 4vw;
	}

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

	.spgr .link-button svg {
		width: 4.533vw;
	}
}

/* ----------------------------------------------------
	footer
---------------------------------------------------- */
.footer {
	padding-top: min(3.9rem, 2.855vw);
}

.footer .note {
	margin: 0 auto min(6.5rem, 4.758vw);
	width: min(93rem, 68.082vw);
}

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

	.footer .note {
		margin-bottom: 9.067vw;
		width: 89.067vw;
	}
}

/* 
	hotel-nav 
------------------------------ */
.footer .hotel-nav {
	margin-bottom: min(3.9rem, 2.855vw);
	line-height: 1;
	font-family: var(--gothic);
	font-size: min(1.7rem, 1.328vw);
	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-bottom: 9.067vw;
		font-size: 3.733vw;
	}

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

/* 
	copy
------------------------------ */
.footer .copy {
	padding-bottom: min(3.9rem, 2.855vw);
	font-size: min(1.3rem, 0.952vw);
	text-align: center;
}

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