@charset "UTF-8";

/* header
----------------------------------------*/
.header_logo {
	width: 14rem;
	position: absolute;
	top: 7rem;
}

@media only screen and (max-width: 768px) {
	.header_logo {
		display: block;
		width: 11.9rem;
		top: 18.1rem;
	}
}

/* mv
----------------------------------------*/
.mv_bg {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

.mv_bg::after {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: #ADADAD;
	mix-blend-mode: darken;
}

.mv_bg video {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.mv {
	height: 100vh;
}

.mv h2 {
	width: 100%;
	height: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	color: #fff;
	font-weight: 400;
	line-height: .93;
}

.mv h2 .italiana {
	font-size: 10rem;
	letter-spacing: .03em;
}

.mv h2 .libre {
	font-size: 1.3rem;
	letter-spacing: .16em;
	margin-top: 2.2rem;
}

.mv_line {
	width: 9rem;
	height: 9rem;
	border-radius: 50%;
	position: absolute;
	left: 0;
	right: 0;
	bottom: 10.1rem;
	margin: 0 auto;
	background: radial-gradient(ellipse at center, rgba(255, 255, 255, 0.2) 0%, rgba(255, 255, 255, 0.05) 100%);
	z-index: 20;
}

.mv_line::before {
	content: '';
	display: block;
	width: 1rem;
	height: 1rem;
	border-radius: 50%;
	background: #fff;
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	bottom: 0;
	margin: auto;
}

.mv_line::after {
	content: '';
	display: block;
	background: url(../../img/index/mv_line_01.svg) no-repeat left top / 100% auto;
	width: .3rem;
	height: 45.3rem;
	position: absolute;
	left: 0;
	right: 0;
	top: 5.8rem;
	margin: 0 auto;
}

@media only screen and (max-width: 768px) {
	.mv h2 {
		padding-top: 6.1rem;
	}

	.mv h2 .italiana {
		font-size: 6rem;
	}

	.mv h2 .libre {
		font-size: 1.1rem;
		margin-top: 2.3rem;
	}

	.mv_line {
		width: 6.9rem;
		height: 6.9rem;
		bottom: 9.1rem;
	}

	.mv_line::before {
		width: .7rem;
		height: .7rem;
	}

	.mv_line::after {
		background-image: url(../../img/index/mv_line_01-sp.svg);
		width: .1rem;
		height: 34.3rem;
		top: 4.8rem;
	}
}

/* destination
----------------------------------------*/
.destination {
	background: linear-gradient(to bottom, rgba(93, 124, 107, 0) 0%, rgba(93, 124, 107, 1) 16rem);
	color: #fff;
	text-align: center;
	padding: 24rem 0 15rem;
}

.destination h2 {
	background: linear-gradient(to bottom, rgba(93, 124, 107, 1) 28.5rem, rgba(93, 124, 107, 0) 100%);
	color: #fff;
	text-align: center;
	padding: 10rem 0 0;
	position: sticky;
	top: 0;
	left: 0;
	right: 0;
	z-index: 10;
	height: 42rem;
	font-weight: 400;
	margin-bottom: -15rem;
}

.destination h2 .italiana {
	display: block;
	font-size: 8rem;
	line-height: 1.04;
	letter-spacing: .03em;
}

.destination h2 .libre {
	display: block;
	font-size: 1.3rem;
	letter-spacing: .16em;
	margin-top: 2.1rem;
}

.destination_txt {
	max-width: 76rem;
	margin: 0 auto;
	font-size: 1.3rem;
	letter-spacing: .065em;
	line-height: 2.1429;
}

.destination_txt::before {
	content: '';
	display: block;
	background: url(../../img/index/line_dot_01.svg) no-repeat left top / 100% auto;
	width: 6rem;
	height: .3rem;
	margin: 12rem auto 4.1rem;
	filter: brightness(0) invert(1);
}

.destination_img {
	max-width: 119.5rem;
	margin: 6.9rem auto 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: .8rem;
}

@media only screen and (max-width: 768px) {
	.destination {
		background: linear-gradient(to bottom, rgba(93, 124, 107, 0) 0%, rgba(93, 124, 107, 1) 26.2rem);
		padding: 28.2rem 0 6rem;
		margin-top: -13.1rem;
	}

	.destination h2 {
		background: linear-gradient(to bottom, rgba(93, 124, 107, 1) 21.5rem, rgba(93, 124, 107, 0) 100%);
		padding: 10rem 0 0;
		height: 31.6rem;
		margin-bottom: -5rem;
		z-index: 1010;
	}

	.destination h2 .italiana {
		font-size: 4.2rem;
		letter-spacing: .05em;
	}

	.destination h2 .libre {
		font-size: 1.2rem;
		margin-top: 1rem;
		letter-spacing: .1em;
	}

	.destination_txt {
		max-width: 33.1rem;
		font-size: 1.2rem;
		line-height: 1.7692;
	}

	.destination_txt::before {
		margin: 0 auto 4rem;
	}

	.destination_img {
		max-width: 33rem;
		margin: 7.3rem auto 0;
		display: block;
		overflow: hidden;
	}

	.destination_img figure {
		float: left;
	}
}

/* offer
----------------------------------------*/
.offer {
	background: linear-gradient(to bottom, rgba(243, 238, 231, 0) 0%, rgba(243, 238, 231, 1) 44.5rem);
	padding: 31.8rem 0 0;
	text-align: center;
	clip-path: polygon(0% 0%, 0% 100%, 100% 100%, 100% 0%);
}

.offer h2 {
	font-weight: 400;
}

.offer h2 .italiana {
	display: block;
	font-size: 9rem;
	line-height: .91;
	letter-spacing: .03em;
	padding-left: .03em;
}

.offer h2 span:not(.italiana) {
	display: block;
	font-size: 1.4rem;
	letter-spacing: .065em;
	margin-top: 3.3rem;
	color: #000;
}

.offer_nav {
	border-top: .1rem solid #D5D1C3;
	padding: 3.4rem .5rem 0 0;
	max-width: 110rem;
	margin: 6.4rem auto 10.9rem;
	font-size: 1.2rem;
	letter-spacing: .1em;
	text-align: left;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 6.4rem;
}

.offer_nav li+li::before {
	content: '';
	display: block;
	width: .1rem;
	height: 2rem;
	position: absolute;
	left: -3.2rem;
	top: 1.1rem;
	background: #D5D1C3;
}

.offer_nav .italiana {
	font-size: 3.6rem;
	line-height: 1;
	color: #A9A496;
	letter-spacing: .05em;
	vertical-align: -.3rem;
	margin-right: .8rem;
}

.offer_nav a {
	display: block;
}

.offer_nav a::before {
	content: '';
	display: block;
	width: 2rem;
	height: 2rem;
	background: #D5D1C3;
	border-radius: 50%;
	position: absolute;
	right: 0;
	top: 1.1rem;
}

.offer_nav a::after {
	content: '';
	display: block;
	width: .4rem;
	height: .4rem;
	border-top: .1rem solid #fff;
	border-right: .1rem solid #fff;
	transform: rotate(135deg);
	position: absolute;
	top: 1.8rem;
	right: .7rem;
}

.offer_item {
	max-width: 120rem;
	margin: 0 auto;
	overflow: hidden;
	padding-top: 2rem;
}

.offer_item+.offer_item {
	margin-top: 13.3rem;
}

.offer_number {
	display: block;
	width: 25rem;
	height: 25rem;
	border-radius: 50%;
	background: #F3EEE7;
	position: absolute;
	left: 0;
	right: 0;
	top: -15.1rem;
	text-align: center;
	font-size: 8.5rem;
	letter-spacing: .05em;
	color: #A9A496;
	margin: 0 auto;
	padding-top: 11.5rem;
	z-index: 10;
}

.offer_img {
	width: 80.7rem;
	margin: 0 auto .9rem;
}

.offer_img::after,
.offer_img .slick-list::after {
	content: '';
	display: block;
	clear: both;
}

.offer_img figure {
	float: left;
	margin: 0 .25rem;
}

.offer_item h3 {
	font-size: 7.6rem;
	letter-spacing: .03em;
	text-align: center;
	font-weight: 400;
	margin-bottom: 1.3rem;
}

.offer_txt {
	font-size: 1.4rem;
	letter-spacing: .065em;
	text-align: center;
	color: #000;
}

.offer_txt::after {
	content: '';
	display: block;
	background: url(../../img/index/line_dot_01.svg) no-repeat left top / 100% auto;
	width: 6rem;
	height: .3rem;
	margin: 3.5rem auto 4.1rem;
}

.offer_btn {
	display: flex;
	justify-content: center;
	gap: 3rem;
}

.offer_fixed {
	height: 100vh;
}

.offer_fixed_inner {
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
}

.offer_fixed.fixed .offer_fixed_inner {
	position: fixed;
}

@media only screen and (max-width: 768px) {
	.offer {
		background: linear-gradient(to bottom, rgba(243, 238, 231, 0) 0%, rgba(243, 238, 231, 1) 39rem);
		padding: 33rem 0 0;
	}

	.offer h2 .italiana {
		font-size: 5rem;
		line-height: .96;
		letter-spacing: .05em;
		padding-left: .05em;
	}

	.offer h2 span:not(.italiana) {
		font-size: 1.2rem;
		margin-top: 1.5rem;
		line-height: 1.8333;
	}

	.offer_nav {
		border-top: .1rem dotted #D5D1C3;
		padding: 0;
		max-width: 29rem;
		margin: 5.3rem auto 10rem;
		font-size: 1.1rem;
		display: block;
	}

	.offer .offer_nav li::before {
		content: '';
		display: block;
		width: auto;
		height: .1rem;
		position: absolute;
		left: 0;
		right: 0;
		top: auto;
		bottom: 0;
		background: #D5D1C3;
	}

	.offer_nav .italiana {
		font-size: 2.2rem;
		vertical-align: -.1rem;
		margin-right: 1.2rem;
	}

	.offer_nav a {
		display: block;
		padding: 1.2rem 0 1.6rem;
	}

	.offer_nav a::before {
		width: 1.6rem;
		height: 1.6rem;
		top: 1.7rem;
	}

	.offer_nav a::after {
		width: .3rem;
		height: .3rem;
		top: 2.2rem;
		right: .6rem;
	}

	.offer_item {
		max-width: 33rem;
		padding-top: 2rem;
	}

	.offer_item+.offer_item {
		margin-top: 8rem;
	}

	.offer_number {
		width: 14rem;
		height: 14rem;
		top: -7rem;
		font-size: 6rem;
		padding-top: 4rem;
	}

	.offer_img {
		width: 28.5rem;
		margin: 0 auto 2.3rem;
	}

	.offer_item h3 {
		font-size: 4.6rem;
		line-height: 1.0869;
		letter-spacing: .05em;
		margin-bottom: 1.3rem;
	}

	.offer_txt {
		width: 29rem;
		margin: 0 auto;
		font-size: 1.2rem;
		line-height: 1.8333;
	}

	.offer_txt::after {
		margin: 2.3rem auto 3.2rem;
	}

	.offer_btn {
		display: block;
	}

	.offer_btn a+a {
		margin-top: 2.7rem;
	}

	.offer_fixed {
		margin-top: -2rem;
	}

	.offer_fixed_inner {
		padding-top: 2rem;
	}
}

/* case
----------------------------------------*/
.case {
	margin-top: calc(46.3rem - 100vh);
	background: #F3EEE7;
	padding-bottom: 8rem;
}

.case::after {
	content: '';
	display: block;
	height: .1rem;
	max-width: 109.8rem;
	margin: 0 auto;
	background: #D5D1C3;
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
}

.case_main {
	margin-bottom: 6rem;
}

.case_main figure::before {
	content: '';
	display: block;
	position: absolute;
	left: 0;
	top: 0;
	right: 0;
	bottom: 0;
	background: linear-gradient(to bottom, rgba(217, 217, 217, 0) 0%, rgba(81, 81, 81, 1) 100%);
	opacity: .8;
	mix-blend-mode: multiply;
}

.case_main figure img {
	width: 100%;
}

.case_main_txt {
	color: #fff;
	max-width: 120rem;
	margin: 0 auto;
	position: absolute;
	left: 0;
	right: 0;
	bottom: 12rem;
}

.case_main_txt h2 {
	font-size: 9rem;
	font-weight: 500;
	letter-spacing: .03em;
	line-height: 1.32;
}

.case_main_txt p {
	max-width: 76rem;
	font-size: 1.4rem;
	line-height: 2.1429;
	letter-spacing: .07em;
	margin-bottom: -1rem;
}

.case_main .btn_view {
	position: absolute;
	right: 0;
	bottom: 0;
}

@media only screen and (max-width: 768px) {
	.case {
		margin-top: calc(42.5rem - 100vh);
		padding-bottom: 8rem;
	}

	.case_main {
		margin-bottom: 9.4rem;
	}

	.case_main figure::before {
		top: 15.6rem;
		opacity: .95;
	}

	.case_main_txt {
		left: 3rem;
		right: 3rem;
		bottom: 6.3rem;
	}

	.case_main_txt h2 {
		font-size: 5rem;
		letter-spacing: .05em;
		margin-bottom: .7rem;
	}

	.case_main_txt p {
		font-size: 1.2rem;
		line-height: 1.8333;
	}

	.case_main .btn_view {
		right: auto;
		left: 0;
		bottom: auto;
		top: calc(100% + 9.5rem);
		margin: 0;
		color: #5D7C6B;
		border-bottom-color: #5D7C6B;
		font-weight: 400;
		letter-spacing: .05em;
	}

	.case_main .btn_view::before {
		background: #5D7C6B;
	}

	.case_main .btn_view::after {
		border-color: #fff;
	}
}

/* plan
----------------------------------------*/
.plan {
	background: #F3EEE7;
	padding: 3.7rem 2rem 17.9rem;
}

.plan h2 {
	font-size: 8rem;
	text-align: center;
	font-weight: 400;
	letter-spacing: .03em;
	margin-bottom: .1rem;
}

.plan_txt {
	text-align: center;
	letter-spacing: .07em;
	color: #000;
	margin-bottom: 3.7rem;
}

.plan_btn {
	display: flex;
	justify-content: center;
	margin-bottom: 4rem;
}

@media only screen and (max-width: 768px) {
	.plan {
		padding: 4rem 2rem 10rem;
	}

	.plan h2 {
		font-size: 5rem;
		letter-spacing: .05em;
		margin-bottom: .3rem;
	}

	.plan_txt {
		width: 29rem;
		font-size: 1.2rem;
		line-height: 1.8333;
		margin: 0 auto 2.5rem;
	}
}

/* about
----------------------------------------*/
.about {
	background: #F3EEE7;
	padding-bottom: 12rem;
}

.about::after {
	content: '';
	display: block;
	height: .1rem;
	max-width: 109.8rem;
	margin: 0 auto;
	background: #D5D1C3;
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
}

.about_main img {
	width: 100%;
}

.about_main_txt {
	max-width: 120rem;
	margin: 0 auto;
	position: absolute;
	left: 0;
	right: 0;
	bottom: 11rem;
	margin: 0 auto;
	color: #fff;
}

.about_main_txt h2 {
	display: flex;
	align-items: center;
	gap: 1.8rem;
	font-weight: 400;
}

.about_main_txt h2 .italiana {
	font-size: 9rem;
	letter-spacing: .03em;
	line-height: 1.31;
}

.about_main_txt h2 .rosarivo {
	font-size: 2rem;
	letter-spacing: .1em;
	line-height: 1.31;
	margin-top: 1.3rem;
}

.about_main_txt p {
	font-size: 1.4rem;
	letter-spacing: .065em;
	line-height: 2.1429;
}

.about_inner {
	max-width: 120rem;
	margin: 0 auto;
	padding: 10rem 0 0;
	display: flex;
	gap: .5rem;
}

.about_inner>figure {
	width: 47.4rem;
}

.about_box {
	flex: 1;
}

.about_box figure {
	width: 25.7rem;
}

.about_box_inner {
	padding: 7.1rem 0 0 12.1rem;
}

.about_box .lato {
	font-size: 1.3rem;
	line-height: 2.0769;
	letter-spacing: .05em;
}

.about_box h3 {
	font-size: 1.8rem;
	letter-spacing: .1em;
	font-weight: 400;
	margin: 4.6rem 0 .8rem;
}

.about_box p:not(.lato) {
	font-size: 1.3rem;
	letter-spacing: .065em;
	line-height: 2.0769;
	margin-bottom: 1.6rem;
}

@media only screen and (max-width: 768px) {
	.about {
		padding-bottom: 10rem;
	}

	.about_main figure::before {
		content: '';
		display: block;
		position: absolute;
		left: 0;
		top: 15.6rem;
		right: 0;
		bottom: 0;
		background: linear-gradient(to bottom, rgba(217, 217, 217, 0) 0%, rgba(81, 81, 81, 1) 100%);
		mix-blend-mode: multiply;
		opacity: .95;
	}

	.about_main_txt {
		left: 3rem;
		right: 3rem;
		bottom: 5.4rem;
	}

	.about_main_txt h2 {
		display: block;
		margin-bottom: 1.9rem;
	}

	.about_main_txt h2 .italiana {
		font-size: 5rem;
		letter-spacing: .05em;
	}

	.about_main_txt h2 .rosarivo {
		font-size: 1.4rem;
		display: block;
		margin-top: .7rem;
	}

	.about_main_txt p {
		font-size: 1.2rem;
		line-height: 1.8333;
	}

	.about_img {
		width: 33rem;
		margin: 0 auto;
		overflow: hidden;
	}

	.about_img figure {
		float: left;
	}

	.about_inner {
		padding: 4rem 0 0;
		display: block;
	}

	.about_box_inner {
		padding: 3.5rem 3rem 0;
	}

	.about_box .lato {
		font-size: 1.2rem;
		line-height: 1.8333;
		letter-spacing: .06em;
	}

	.about_box h3 {
		text-align: center;
		font-size: 1.5rem;
		margin: 4rem 0 .8rem;
	}

	.about_box p:not(.lato) {
		font-size: 1.2rem;
		text-align: center;
		line-height: 1.8333;
		margin-bottom: 1rem;
	}

	.about_box .btn_map {
		margin: 0 auto;
	}
}

/* other
----------------------------------------*/
.other {
	background: #F3EEE7;
	padding: 10rem 0 18rem;
}

.other_inner {
	max-width: 120rem;
	margin: 0 auto;
	display: flex;
}

.other_ttl {
	width: 46rem;
	margin-top: -1.5rem;
}

.other_ttl h2 {
	position: sticky;
	top: 10rem;
	left: 0;
	font-weight: 400;
}

.other_ttl h2 .italiana {
	display: block;
	font-size: 6.8rem;
	letter-spacing: .03em;
	margin-bottom: .6rem;
}

.other_ttl h2 .libre {
	display: block;
	font-size: 1.3rem;
	letter-spacing: .1em;
	line-height: 2.3;
}

.other_item+.other_item {
	margin-top: 8rem;
}

.other_box {
	flex: 1;
}

.other_box h3 {
	font-size: 1.8rem;
	letter-spacing: .1em;
	font-weight: 400;
	margin: 3.3rem 0 .3rem;
}

.other_box p {
	font-size: 1.3rem;
	letter-spacing: .065em;
	line-height: 2.0769;
}

.other_box p+p {
	margin-top: 1.2rem;
}

.other_box .other_address {
	font-size: 1.2rem;
	margin: 2.5rem 0 .6rem;
}

@media only screen and (max-width: 768px) {
	.other {
		padding: 4.4rem 0 8.3rem;
	}

	.other_inner {
		max-width: 29rem;
		display: block;
	}

	.other_ttl {
		width: auto;
		margin-top: 0;
	}

	.other_ttl h2 {
		position: relative;
		top: auto;
		left: auto;
		text-align: center;
	}

	.other_ttl h2 .italiana {
		font-size: 4.2rem;
		letter-spacing: .05em;
		margin-bottom: 2.2rem;
	}

	.other_item+.other_item {
		margin-top: 5.9rem;
	}

	.other_box h3 {
		font-size: 1.5rem;
		margin: 2.5rem 0 .8rem;
	}

	.other_box p {
		font-size: 1.2rem;
		line-height: 1.8333;
	}

	.other_box p+p {
		margin-top: .7rem;
	}

	.other_box .other_address {
		font-size: 1.1rem;
		line-height: 1.8182;
		margin: .7rem 0 2.3rem;
	}
}

/* hotels
----------------------------------------*/
.hotels {
	clip-path: polygon(0% 0%, 0% 100%, 100% 100%, 100% 0%);
	color: #fff;
	padding-bottom: 18rem;
}

.hotels_bg {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100vh;
}

.hotels.fixed .hotels_bg {
	position: fixed;
}

.hotels_bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.hotels_ttl {
	max-width: 120rem;
	margin: 0 auto;
	padding: 50.2rem 0 0;
}

.hotels_ttl h2 {
	font-weight: 400;
	margin-bottom: 1.5rem;
}

.hotels_ttl h2 .rosarivo {
	font-size: 5rem;
	letter-spacing: .1em;
	display: block;
	line-height: 1.3;
}

.hotels_ttl h2 .italiana {
	font-size: 9rem;
	letter-spacing: .03em;
	display: block;
	line-height: 1;
}

.hotels_ttl p {
	font-size: 1.4rem;
	letter-spacing: .07em;
	line-height: 2.1429;
}

.hotels_ttl p+p {
	margin-top: 1rem;
}

.hotels_slider {
	max-width: calc(50% + 40rem);
	margin: 9rem 0 0 auto;
	overflow: hidden;
}

.hotels_slider .slick-list {
	overflow: hidden;
}

.hotels_slider_item {
	width: 70rem;
	margin-right: 1rem;
	float: left;
}

.hotels_slider_item a {
	display: block;
}

.hotels_slider_item figure {
	overflow: hidden;
}

.hotels_slider_item figure img {
	transition: transform .3s;
}

.hotels_slider_item h3 {
	font-size: 1.5rem;
	font-weight: 400;
	letter-spacing: .05em;
	line-height: 1.8;
	margin: 1.9rem 0 1.6rem;
}

.hotels_slider_view {
	width: fit-content;
	font-size: 1.2rem;
	letter-spacing: .07em;
	border-bottom: .1rem solid #fff;
	padding-bottom: .1rem;
}

.hotels_slider .slick-dots {
	display: flex;
	gap: .8rem;
	margin-top: 4rem;
}

.hotels_slider .slick-dots button {
	appearance: none;
	overflow: hidden;
	width: .6rem;
	height: .6rem;
	border-radius: 50%;
	border: 0;
	padding: 0;
	display: block;
	border: 0;
	background: #F3EEE7;
	opacity: .5;
	text-indent: -99rem;
}

.hotels_slider .slick-dots .slick-active button {
	opacity: 1;
}

.hotels_site {
	margin-top: 40px;
	text-decoration: underline;
}

@media (hover:hover) {
	.hotels_slider_item a:hover {
		opacity: 1;
	}

	.hotels_slider_item a:hover img {
		transform: scale(1.1);
	}
}

@media only screen and (max-width: 768px) {
	.hotels {
		padding-bottom: 14rem;
	}

	.hotels_ttl {
		max-width: 33rem;
		margin: 0 auto;
		padding: 55.8rem 0 0;
	}

	.hotels_ttl h2 {
		margin-bottom: 2.4rem;
	}

	.hotels_ttl h2 .rosarivo {
		font-size: 2.8rem;
		line-height: 1;
	}

	.hotels_ttl h2 .italiana {
		font-size: 5rem;
		line-height: .96;
		letter-spacing: .05em;
	}

	.hotels_ttl p {
		font-size: 1.2rem;
		line-height: 1.8333;
		letter-spacing: .065em;
	}

	.hotels_ttl p+p {
		margin-top: 1.3rem;
	}

	.hotels_slider {
		max-width: 36rem;
		margin: 8rem 0 0 auto;
	}

	.hotels_slider_item {
		width: 32rem;
	}

	.hotels_slider_item figure img {
		height: 22rem;
		object-fit: cover;
	}

	.hotels_slider_item h3 {
		font-size: 1.3rem;
		margin: 1.1rem 0 .8rem;
	}
}

/* legal
----------------------------------------*/
.legal {
	background: #F3EEE7;
	text-align: center;
	padding: 12.5rem 0 9rem;
}

.legal::after {
	content: '';
	display: block;
	height: .1rem;
	max-width: 109.8rem;
	margin: 0 auto;
	background: #D5D1C3;
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
}

.legal h2 {
	font-weight: 400;
	font-size: 6.8rem;
	margin-bottom: 1.3rem;
	letter-spacing: .03em;
}

.legal p {
	font-size: 1.3rem;
	letter-spacing: .065em;
	line-height: 2.0769;
}

.legal p+p {
	margin-top: 1.2rem;
}

@media only screen and (max-width: 768px) {
	.legal {
		padding: 8.5rem 0 8.4rem;
	}

	.legal h2 {
		font-size: 4.2rem;
		margin-bottom: .7rem;
		letter-spacing: .05em;
	}

	.legal p {
		width: 29rem;
		margin: 0 auto;
		font-size: 1.2rem;
		line-height: 1.8333;
	}

	.legal p+p {
		margin-top: 1.6rem;
	}
}

/* gallery
----------------------------------------*/
.gallery {
	background: #F3EEE7;
	padding: 8rem 0 18rem;
}

.gallery_ttl {
	position: absolute;
	left: 0;
	top: 47.7rem;
	z-index: 10;
}

.gallery_ttl h2 {
	font-size: 6rem;
	font-weight: 400;
	letter-spacing: .03em;
	margin-bottom: .8rem;
}

.gallery_inner {
	max-width: 110rem;
	margin: 0 auto;
}

.gallery_img {
	display: flex;
	flex-wrap: wrap;
}

.gallery_inner li:nth-child(1) {
	max-width: 61rem;
}

.gallery_inner li:nth-child(2) {
	max-width: 38rem;
	margin: 12rem .1rem 0 auto;
}

.gallery_inner li:nth-child(3) {
	max-width: 32rem;
	margin: 11.5rem 15rem 0 auto;
}

.gallery_inner li:nth-child(4) {
	max-width: 37rem;
	margin: -16.8rem 18rem 0 8.9rem;
}

.gallery_inner li:nth-child(5) {
	max-width: 52rem;
	margin: -20.1rem .1rem 0 auto;
}

.gallery_img a {
	display: block;
}

.gallery_img a p {
	width: fit-content;
	font-size: 1.3rem;
	font-weight: 500;
	letter-spacing: .05em;
	border-bottom: .1rem solid #333;
	margin: 1rem 0 0;
	padding: 0 0 .2rem 1.5rem;
}

.gallery_img a p::before {
	content: '';
	display: block;
	width: .5rem;
	height: .5rem;
	border-radius: 50%;
	background: #333;
	position: absolute;
	left: 0;
	top: .7rem;
}

.gallery_img figure {
	overflow: hidden;
}

.gallery_img figure img {
	transition: transform .3s;
}

@media (hover:hover) {
	.gallery_img a:hover figure img {
		transform: scale(1.1);
	}
}

@media only screen and (max-width: 768px) {
	.gallery {
		padding: 7rem 0 10rem;
	}

	.gallery_inner {
		padding-bottom: 9.5rem;
	}

	.gallery_ttl {
		position: static;
	}

	.gallery_ttl h2 {
		position: absolute;
		left: 1.4rem;
		top: 29.7rem;
		font-size: 3.6rem;
		letter-spacing: .05em;
		writing-mode: vertical-rl;
	}

	.gallery_ttl .btn_view {
		position: absolute;
		left: 0;
		right: 0;
		margin: 0 auto;
		bottom: 0;
	}

	.gallery_img {
		display: block;
	}

	.gallery_inner li:nth-child(1) {
		max-width: 31rem;
		margin: 0 0 0 3rem;
	}

	.gallery_inner li:nth-child(2) {
		max-width: 21.5rem;
		margin: 3rem 5rem 0 auto;
	}

	.gallery_inner li:nth-child(3) {
		max-width: 16rem;
		margin: 3.2rem 1.5rem 0 auto;
	}

	.gallery_inner li:nth-child(4) {
		max-width: 16rem;
		margin: -9.9rem 18rem 0 3rem;
	}

	.gallery_img a p {
		font-size: 1.1rem;
		margin: .6rem 0 0;
		padding: 0 0 .1rem 1.5rem;
	}

	.gallery_img a p::before {
		top: .6rem;
	}
}

/* faq
----------------------------------------*/
.faq {
	background: linear-gradient(to bottom, rgba(97, 107, 102, 0) 0%, rgba(97, 107, 102, 1) 26rem);
	color: #fff;
	padding: 18.5rem 0 13rem;
}

.faq h2 {
	text-align: center;
	font-size: 9rem;
	letter-spacing: .03em;
	font-weight: 400;
	margin-bottom: 5rem;
}

.faq dl {
	max-width: 80.2rem;
	margin: 0 auto;
}

.faq dl dt {
	font-size: 1.8rem;
	letter-spacing: .1em;
	padding: 0 0 2rem 2.8rem;
	border-bottom: .1rem solid #A4A4A4;
	margin-bottom: 1.1rem;
}

.faq dl dt span {
	font-size: 1.5rem;
	position: absolute;
	left: -.2rem;
	top: 0;
}

.faq dl dd {
	font-size: 1.3rem;
	line-height: 2.0769;
	letter-spacing: .065em;
	padding: 0 0 0 2.8rem;
	margin-bottom: 4.7rem;
}

.faq dl dd span {
	font-size: 1.5rem;
	position: absolute;
	left: -.2rem;
	top: 0;
}

@media only screen and (max-width: 768px) {
	.faq {
		padding: 18.5rem 0 7.5rem;
		margin-top: 10rem;
	}

	.faq h2 {
		font-size: 5rem;
		letter-spacing: .05em;
		margin-bottom: 2.5rem;
	}

	.faq dl {
		max-width: 33rem;
	}

	.faq dl dt {
		font-size: 1.3rem;
		line-height: 1.8462;
		padding: 0 0 1rem 2.8rem;
		margin-bottom: 1.4rem;
	}

	.faq dl dt span {
		top: -.2rem;
	}

	.faq dl dd {
		font-size: 1.2rem;
		line-height: 1.8333;
		margin-bottom: 3.9rem;
	}

	.faq dl dd span {
		top: -.2rem;
	}
}