.visual {
	& img {
		display: block;
		max-width: 100%;
		height: min(calc(400/750)*100cqw, 720px);
		object-fit: cover;
	}
}


.about {
	padding: 50px min(calc(40/768*100cqw), 40px) 60px;
	background: #f2f3f4;
	& h2 {
		font-size: 40px;
		line-height: 1.2;
		letter-spacing: -0.02em;
	}
	.txt {
		margin-top: 20px;
		font-size: 18px;
		line-height: 2.7;
	}
@media (width>=767px) {
	padding-inline: 0;
	display: flex;
	justify-content: center;
	align-items: center;
	& h2 {
		width: min(45%, 700px);
		box-sizing: border-box;
		font-size: 56px;
		span {
			width: fit-content;
			display: block;
			margin: 0 auto;
		}
	}
	.txt {
		width: min(55%, 700px);
		margin: 0;
		padding-left: 0;
		padding-right: 30px;
		box-sizing: border-box;	
		& p {
			width: fit-content;
			margin-top: 0 auto;
		}
	}
}
@media (width>=1400px) {
	padding-block: 94px 89px;
	h2 {
		width: min(50%, 700px);
		padding-right: 87px;
		padding-left: 28px;
		font-size: 90px;
	}
	.txt {
		width: min(50%, 700px);
		padding-left: 64px;
		padding-right: 0;
		font-size: 20px;
	}
}
}



.topcontents {
	margin-top: 123px;
	& h2 {
		width: 100%;
		margin-bottom: 30px;
		font-size: 36px;
		font-weight: var(--font-w-bold);
		text-align: center;
	}
@media (width>=767px) {
	& h2 {
		font-size: 44px;
		margin-bottom: 60px;
	}
}
}


.roomplan {
	padding: 0 min(calc(40/768*100cqw), 40px);
	& ul {
		max-width: var(--width-base);
		margin: 0 auto;
	}
	& img {
		max-width: 100%;
		display: block;
	}
	.btn {
		margin-top: 40px;
	}
@media (width<=766px) {
	& figure {
		margin-top: 2em;
		display: flex;
		justify-content: center;
		align-items: center;
	}
	& figcaption {
		width: 35%;
		margin-left: auto;
		
	}
	& img {
		/*margin-left: auto;*/
		width: 55%;
		margin-right: 5%;
		/*height: calc(300/750*100cqw);*/
	}
}
@media (width>=767px) {
	& ul {
		margin-top: -3px;
		padding: 0 2px 0 4px;
		box-sizing: border-box;
		font-size: 24px;
		text-align: center;
		display: flex;
		justify-content: space-between;
	}
	& li {
		width: 31%;
	}
	& figcaption {
		margin-bottom: 35px;
		display: block;
	}
	.room-2 { margin-left: -14px; }
	.room-1 img { margin-right: auto; }
	.room-2 img { margin-inline: auto; }
	.room-3 img { margin-left: auto; }
	.btn {
		margin-top: 81px;
	}
}
}


.location {
	margin-top: 140px;
	padding: 60px min(calc(40/768*100cqw), 40px) 100px;
	color: #fff;
	background: url(../../img/location_bg.jpg) center center / 1000px auto;
	.inner {
		max-width: var(--width-base);
		margin: 0 auto;
	}
	& p {
		margin-bottom: 1em;
	}
	& p:last-child {
		margin-bottom: 27px;
	}
	.img {
		img {
			width: min(70%, 460px);
			display: block;
		}
		.img-01 {
			position: relative;
			z-index: 1;
		}
		.img-02 {
			margin-left: auto;
			margin-bottom: -20%;
		}
	}
@media (width>=767px) {
	background-size: 2000px auto;
	padding-top: 130px;
	padding-bottom: 156px;
}
@media (width<=999px) {
	.sp-none {
		display: none;
	}
}
@media (width>=1000px) {
	.inner {
		padding-top: 15px;
		display: flex;
	}
	.txt {
		width: 50%;
		padding: 3px 40px 0 3px;
		box-sizing: border-box;
	}
	.img {
		width: 50%;
		.img-02 {
			margin-bottom: -177px;
		}
	}
}
}


.greetings {
	max-width: var(--width-base);
	margin: 100px auto 0;
	padding: 0 min(calc(40/768*100cqw), 40px);
	& p {
		margin-bottom: 27px;
	}
	& strong {
		font-size: 20px;
		font-weight: var(--font-w-bold);
	}
	& img {
		max-width: 100%;
		margin: 40px auto 0;
		display: block;
	}
@media (width>=767px) {
	margin-top: 125px;
	display: flex;
	flex-wrap: wrap;
	align-items: start;
	justify-content: space-between;
	.txt {
		width: calc(100% - 340px);
		margin-top: 7px;
		order: 1;
	}
	& img {
		width: 300px;
		aspect-ratio: 4 / 5;
		margin: 16px 0 0;
	}
	.textRight {
		margin-top: 49px;
		margin-bottom: 0;
	}
}
@media (width>=1000px) {
	margin-bottom: -56px;
	.txt {
		width: calc(100% - 502px);
	}
	& img {
		width: 400px;
	}
}
}


.anime {
	transition: opacity .4s ease-in-out .2s, translate .4s ease-in-out .2s;
	opacity: 0;
	translate: 0 calc(80/750*100cqw) 0;
	&.active {
		opacity: 1;
		translate: 0;
	}
@media (width>=767px) {
	translate: 0 calc(80/1920*100cqw) 0;
}
}