@charset "utf-8";

/* CSS Document */
::-moz-selection {
	background: #d3a359;
	color: #000000;
}

::selection {
	background: #d3a359;
	color: #000000;
}

html,
body {
	overflow-x: hidden;
	/* 横スクロールを隠す */
}

body {
	font-family: "Noto Serif JP", serif;
	font-size: 18px;
	line-height: 1.5;
	font-weight: 500;
	text-align: center;
	color: #121212;
	background-color: #1d2e5d;
	min-width: 100%;
	min-height: 100dvh;
}

* {
	vertical-align: top;
	box-sizing: border-box;
	word-break: break-all;
}

a {
	color: #121212;
	display: inline-block;
	text-indent: 0;
	text-decoration: underline;
}

a:hover {
	text-decoration: none;
}


.sp {
	display: none;
}

@media screen and (max-width: 1200px) {}

@media screen and (max-width: 800px) {
	body {
		font-size: 14px;
	}

	.pc {
		display: none;
	}

	.sp {
		display: block;
	}
}


/* //////////////////////////// */
/* ヘッダー */
/* //////////////////////////// */
header {
	position: absolute;
	width: 100%;
	z-index: 2;
	padding-top: 10px;
}



/* //////////////////////////// */
/* メインビジュアル */
/* //////////////////////////// */

#mv {
	position: relative;
	width: 100%;
}

#mv img {
	width: 100%;
}

/* 右側テキスト部分 */
.mv_txt_box {
	background-color: rgba(255, 255, 255, 0.2);
	width: 30%;
	max-width: 600px;
	padding-bottom: 40px;
	position: absolute;
	top: 15%;
	right: 10%;
}

.mv_txt_box img {
	width: 100%;
}

.mv_txt p {
	color: #ffffff;
	font-size: 1dvw;
	margin-bottom: 50px;
}

.mv_txt img {
	max-width: 80%;
}

/* 予約ボタン01 */
.reserve_btn a {
	display: inline-block;
	background-color: #1bb1b6;
	border-radius: 10px;
	padding: 10px;
	width: 80%;
	text-decoration: none;
	color: #ffffff;
	font-size: 28px;
	margin-top: 10px;
}

.reserve_btn a:hover {
	background-color: rgba(27, 177, 182, 0.8);
}


@media screen and (max-width: 1200px) {

	/* 予約ボタン01 */
	.reserve_btn a {
		font-size: 20px;
	}
}

@media screen and (max-width: 800px) {

	/* テキストボックス */
	.mv_txt_box {
		width: 80%;
		margin: 0 auto 50px;
		position: static;
	}

	.mv_txt p {
		font-size: 3vw;
		margin-bottom: 20px;
	}

}

/* //////////////////////////// */
/* コンテンツ */
/* //////////////////////////// */

/*=== コンテンツ上部 ===*/
#contents01 {
	width: 100%;
	margin-bottom: 200px;
	background:
		linear-gradient(to bottom, rgba(29, 46, 93, 1), transparent 20%, transparent 80%, rgba(29, 46, 93, 1)),
		url("../img/content01_main_img-left.png"),
		url("../img/content01_main_img-right.png");
	background-repeat: no-repeat, repeat-y, repeat-y;
	background-position: left, right;
	background-position: center, left, right;
	background-size: cover, 25%, 25%;
}

#contents01 img {
	max-width: 60%;
}

.contents01_inner {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 100px;
	max-width: 1200px;
	margin: 50px auto;
}

.video {
	border-radius: 10px;
}
.blockquote{
	max-width: 300px;
}

.contents01_inner p {
	font-size: clamp(16px, 1.5vw, 24px);
	color: #c9bc9c;
	line-height: 5rem;
	text-align: left;
}

@media screen and (max-width: 1200px) {

	#contents01 img {
		max-width: 80%;
	}

	.contents01_inner {
		flex-direction: column;
		gap: 20px;
	}

	.video {
		max-width: 100%;
	}

	.contents01_inner p {
		line-height: 3rem;
		text-align: center;
	}

	.item1 {
		order: 2;
	}

	.item2 {
		order: 1;
	}
}

@media screen and (max-width: 800px) {
	#contents01 {
		margin-bottom: 150px;
	}

	#contents01 img {
		width: 100%;
	}

	.contents01_inner p {
		width: 80%;
		line-height: 2rem;
	}
}

/*=== コンテンツ中部 ===*/
#contents02 h3 {
	font-size: 2.5vw;
	color: #ffffff;
	font-weight: 500;
	letter-spacing: 0.2rem;
	width: fit-content;
	text-align: center;
	margin: 0 auto 30px;
	position: relative;
}

#contents02 .box01 h3::before {
	content: "";
	display: block;
	background: url("../img/contents02_img01.png") no-repeat;
	background-size: cover;
	width: 155px;
	height: 73px;
	position: absolute;
	top: -20px;
	left: -200px;
}

#contents02 .box01 h3::after {
	content: "";
	display: block;
	background: url("../img/contents02_img02.png") no-repeat;
	background-size: cover;
	width: 48px;
	height: 49px;
	position: absolute;
	top: 0px;
	right: -70px;
}

#contents02 .box02 h3::before {
	content: "";
	display: block;
	background: url("../img/contents02_img03.png") no-repeat;
	background-size: cover;
	width: 62px;
	height: 50px;
	position: absolute;
	top: -10px;
	left: -80px;
}

#contents02 .box02 h3::after {
	content: "";
	display: block;
	background: url("../img/contents02_img04.png") no-repeat;
	background-size: cover;
	width: 100px;
	height: 128px;
	position: absolute;
	top: -50px;
	right: -130px;
}

#contents02 p {
	color: #ffffff;
	font-weight: 300;
	font-size: clamp(16px, 1.25vw, 20px);
	width: 1100px;
	text-align: left;
	margin: 0 auto 100px;
}


@media screen and (max-width: 1200px) {
	#contents02 h3 {
		font-size: 3vw;
	}

	#contents02 .box01 h3::before {
		top: -40px;
	}

	#contents02 .box02 h3::after {
		top: -80px;
	}

	#contents02 p {
		width: 90%;
	}

}

@media screen and (max-width: 800px) {

	#contents02 h3 {
		font-size: 6vw;
	}

	#contents02 .box01 h3::before {
		width: 90px;
		height: 42px;
		top: -50px;
		left: -40px;
	}

	#contents02 .box01 h3::after {
		width: 26px;
		height: 26px;
		top: 20px;
		right: -30px;
	}

	#contents02 .box02 h3::before {
		width: 30px;
		height: 24px;
		top: 46px;
		left: -20px;
	}

	#contents02 .box02 h3::after {
		width: 70px;
		height: 89px;
		top: -80px;
		right: -25px;
	}

	#contents02 p {
		padding: 0 10px;
		margin-bottom: 100px;
	}

}


/*=== コンテンツ下部 ===*/
#contents03 {
	background: url("../img/slide_img.png") no-repeat;
	background-size: 80%;
	background-position: center;
}

#contents03 .box {
	display: flex;
	align-items: center;
	justify-content: space-around;
	padding: 8% 16%;
}

/*スライド設定*/
.slider {
	position: relative;
	width: 42%;
	overflow: hidden;
}

.slides {
	display: flex;
	transition: transform 0.5s ease-in-out;
}

.slide {
	min-width: 100%;
	box-sizing: border-box;
	justify-content: space-between;
	display: flex;
	padding-left: 60px;
}

.slide img {
	width: 100%;
}

/*サムネイル設定*/
.thumbnails {
	position: absolute;
	top: 0;
	left: 0;
}

.thumbnails .thumbnail {
	display: block;
	width: 56px;
	height: 57px;
	margin: 0 0 7px;
	cursor: pointer;
	object-fit: cover;
	opacity: 0.5;
	transition: opacity 0.3s;
}

.thumbnails .thumbnail.active {
	opacity: 1;
	border: 2px solid #1d2e5d;
}

/* スライダー横テキスト部分 */
.txt_box {
	width: 42%;
}

.txt_box img {
	max-width: 100%;
}

.txt p {
	font-size: 1.25vw;
	color: #FFFFFF;
	text-align: left;
	margin: 10px 0 20px;
}

.txt .txt_small {
	font-size: 1vw;
	font-family: "Noto Sans JP", Arial, Helvetica, sans-serif;
	font-weight: 400;
	margin-bottom: 30px;
}

.txt img {
	margin-bottom: 10px;
}

/* 11/21より順次お届け */
.reserve_btn02 img {
	max-width: 80%;
}

/* 予約ボタン02 */
.reserve_btn02 a {
	display: inline-block;
	background-color: #ffffff;
	border-radius: 10px;
	padding: 8px;
	width: 60%;
	text-decoration: none;
	color: #1bb1b6;
	font-size: 1.6vw;
	margin-top: 10px;
}

.reserve_btn02 a:hover {
	background-color: rgba(255, 255, 255, 0.8);
}

@media screen and (max-width: 1200px) {

	#contents03 {
		background: url("../img/slide_img_sp.png") no-repeat;
		background-size: contain;
		background-position: center;
	}

	#contents03 .box {
		flex-direction: column;
		padding: 18% 20%;
	}

	/*スライド設定*/
	.slider {
		width: 100%;
		max-width: 600px;
		margin: 0 auto 40px;
	}

	.slide {
		padding-left: 0;
	}

	.thumbnails {
		position: static;
		margin-top: 20px;
	}

	.thumbnails .thumbnail {
		display: inline;
		margin: 0 5px;
		width: 8vw;
		height: 8vw;
	}

	/* スライダー下テキスト部分 */
	.txt_box {
		width: 80%;
	}

	.txt p {
		font-size: 2vw;
	}

	.txt .txt_small {
		font-size: 1.5vw;
	}

	/* 11/21より順次お届け */
	.reserve_btn02 img {
		width: 100%;
	}

	/* 予約ボタン02 */
	.reserve_btn02 a {
		width: 80%;
		font-size: 3vw;
	}

}

@media screen and (max-width: 800px) {
	#contents03 {
		background-size: 95%;
	}

	#contents03 .box {
		padding: 20%;
	}

	/*スライド設定*/
	.slider {
		margin-bottom: 10px;
	}

	.thumbnails {
		margin-top: 5px;
	}

	.thumbnails .thumbnail {
		display: inline;
		margin: 3px;
		width: 8vw;
		height: 8vw;
	}

	/* スライダー下テキスト部分 */
	.txt_box {
		width: 100%;
	}

	.txt p {
		font-size: 3vw;
		margin-bottom: 10px;
	}

	.txt .txt_small {
		font-size: 2.5vw;
		margin-bottom: 15px;
	}



	/* 予約ボタン02 */
	.reserve_btn02 a {
		font-size: 4vw;
		padding: 4px;
		margin-top: 0;
	}
}

/*=== ボトムイメージ ===*/
#bottom_img {
	padding: 100px;
}

#bottom_img img {
	width: 30%;
}

@media screen and (max-width: 1200px) {
	#bottom_img img {
		width: 60%;
	}

}

@media screen and (max-width: 800px) {
	#bottom_img {
		padding: 20%;
	}

	#bottom_img img {
		width: 100%;
	}
}

/* //////////////////////////// */
/* フッター */
/* //////////////////////////// */
footer {
	background: #979696;
	color: #FFFFFF;
	font-family: "Noto Sans JP", Arial, Helvetica, sans-serif;
	padding: 30px 15px 50px;
}

footer .menu_box {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	margin-bottom: 35px;
}

footer .menu_box li {
	padding: 0 20px;
	border-left: 1px solid #FFFFFF;
	border-right: 1px solid #FFFFFF;
	margin-bottom: 10px;
}

footer .menu_box li a {
	text-decoration: none;
	color: #FFFFFF;
}

footer .menu_box li a:hover {
	color: #004d35;
}

footer small {
	font-size: 22px;
}


@media screen and (max-width: 800px) {
	footer {
		padding: 30px 15px 30px;
	}

	footer .menu_box {
		margin-bottom: 20px;
	}

	footer small {
		font-size: 14px;
	}
}

/* //////////////////////////// */
/* ハンバーガーメニュー */
/* //////////////////////////// */

#sp_nav_hdr {
	display: flex;
	justify-content: space-around;
	align-items: center;
}

#sp_nav_hdr div {
	color: #ffffff;
	font-size: 30px;
	padding-right: 30px;
}

#sp_nav_hdr img {
	display: inline-block;
	margin: 0 auto;
	text-align: center;
}

/* ☰ボタン */
.nav-btn {
	cursor: pointer;
	width: 40px;
	height: 30px;
	position: relative;
	margin-right: 30px;
}

.nav-btn span {
	display: block;
	position: absolute;
	width: 100%;
	height: 5px;
	background: #FFFFFF;
	border-radius: 5px;
	left: 0;
	transition: 0.4s;
}

.nav-btn span:nth-child(1) {
	top: 0;
}

.nav-btn span:nth-child(2) {
	top: 12px;
}

.nav-btn span:nth-child(3) {
	top: 24px;
}

#sp_nav ul {
	width: 300px;
	background-color: rgba(29, 46, 93, 0.8);
	border-radius: 10px 0 0 10px;
	/* position: absolute; */
	position: fixed;
	/* スクロールしても固定 */
	top: 100px;
	right: 0;
}

.menu li a {
	display: block;
	border-bottom: solid 1px rgba(255, 255, 255, 0.2);
	padding: 10px;
	color: #ffffff;
	font-size: 20px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 300;
	text-decoration: none;
}

.menu li:last-child a {
	border-bottom: none;
}

/* 最初は非表示 */
ul.menu {
	transform: translateX(100%);
	transition: transform .8s ease;
}

/* ☰クリックで表示 */
ul.menu.show {
	transform: translateX(0);
}

/* Xにする */
.nav-btn.show span:nth-child(1) {
	transform: rotate(45deg);
	top: 12px;
}

.nav-btn.show span:nth-child(2) {
	opacity: 0;
}

.nav-btn.show span:nth-child(3) {
	transform: rotate(-45deg);
	top: 12px;
}




@media screen and (max-width: 1200px) {
	#sp_nav_hdr .nav-btn {
		font-size: 4vw;
	}

	#sp_nav ul {
		top: 80px
	}
}

@media screen and (max-width: 800px) {
	#sp_nav_hdr {
		justify-content: space-between;
	}

	#sp_nav_hdr img {
		display: block;
		margin: 0 0 0 20px;

	}

	.nav-btn {
		/* font-size: 6vw; */
		transform: scale(0.75);
	}

	#sp_nav ul {
		max-width: 50%;
		top: 60px;
		right: 0;
	}
}