@charset "utf-8";

html {
	scroll-behavior: smooth;
}

[id] {
scroll-margin-top: 140px; 
}

.row-reverse {
	flex-direction: row-reverse;
}

/* グロナビのライン */
.pc_gnav_item.kodate::before {
	width: 70%;
}

/* mv
===================================== */
.mv {
	position: relative;
}
.mv img {
	width: 100%;
}
.mv_title_wrap {
	width: 90%;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	color: #fff;
	text-shadow: 
	0px 0px 10px rgba(0, 0, 0, 0.3), 
	0px 0px 10px rgba(0, 0, 0, 0.3), 
	0px 0px 10px rgba(0, 0, 0, 0.3), 
	0px 0px 10px rgba(0, 0, 0, 0.3), 
	0px 0px 10px rgba(0, 0, 0, 0.3);
}
.mv_title {
	font-size: 48px;
	letter-spacing: 0.2em;
	text-align: center;
}

@media only screen and (max-width:768px) {
	.mv {
		margin-top: 84px;
	}
	.mv_title {
		font-size: 28px;
		letter-spacing: 0.1em;
	}
}


/* top_area
===================================== */
.top_area {
	background: url(./images/top_bg.jpg) no-repeat center left / cover;
	padding-top: 120px;
	padding-bottom: 130px;
}
.top_title {
	font-size: 30px;
	letter-spacing: 0.2em;
	color: #594b2a;
}
.top_lead {
	margin-top: 30px;
	font-size: 16px;
	line-height: 2.25;
	letter-spacing: 0.2em;
}
.link_area {
	margin-top: 90px;
}
.link_area_title {
 display: flex;
 align-items: center;
	text-align: center;
	color: #594b2a;
	font-size: 24px;
	letter-spacing: 0.2em;
}
.link_area_title:before,
.link_area_title:after {
 content: "";
 height: 1px;
 flex-grow: 1;
 background-color: #cdc8c0;
}
.link_area_title:before {
 margin-right: 1rem;
}
.link_area_title:after {
 margin-left: 1rem;
}
.link_wrap {
	margin-top: 48px;
	display: grid;
	grid-template-columns: repeat(4,1fr);
	column-gap: 24px;
	column-gap: clamp(1.2rem, 0.305rem + 1.091vw, 2.4rem);
}
.link_item {
	display: flex;
	flex-direction: column;
	row-gap: 10px;
	transition: all .5s ease-out;
	border: 1px solid #c1ad93;
	background-color: #f0ece3;
}
.link_item_body {
	text-align: center;
	padding-bottom: 20px;
}
.link_item_title {
	position: absolute;
	bottom: -6px;
	left: 50%;
	transform: translateX(-50%);
	color: #fff;
	text-shadow: 
	0px 0px 10px rgba(0, 0, 0, 0.3), 
	0px 0px 10px rgba(0, 0, 0, 0.3), 
	0px 0px 10px rgba(0, 0, 0, 0.3), 
	0px 0px 10px rgba(0, 0, 0, 0.3), 
	0px 0px 10px rgba(0, 0, 0, 0.3);
	font-size: 30px;
	font-family: "EB Garamond", serif;
}
.link_item_title span {
	font-size: 60px;
	line-height: 0.8;
	padding-left: 8px;
}
.link_item_lead {
	margin-top: 4px;
	min-height: 84px;
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 18px;
	color: #000;
	letter-spacing: 0.1em;
	line-height: 1.66;
}
.arrow_down {
	margin-top: 16px;
	width: 34px;
	margin-inline: auto;
	transition: all .5s ease-out;
}
.link_item:hover {
	opacity: .8;
}
.link_item:hover .arrow_down {
	transform: translateY(10px);
}

@media only screen and (max-width:768px) {
	.top_area {
		background: url(./images/top_bg_sp.jpg) no-repeat center top / cover;
		padding-top: 60px;
		padding-bottom: 70px;
		overflow: hidden;
	}
	.top_title {
		font-size: 20px;
		line-height: 1.7;
		letter-spacing: 0.1em;
	}
	.top_lead {
		font-size: 14px;
		line-height: 2;
		letter-spacing: normal;
	}
	.link_area {
		margin-top: 50px;
	}
	.link_area_title {
		margin-right: calc(50% - 50vw);
		margin-left: calc(50% - 50vw);
		font-size: 16px;
		letter-spacing: 0.05em;
	}
	.link_area_title:before {
		margin-right: 6px;
	}
	.link_area_title:after {
		margin-left: 6px;
	}
	.link_wrap {
		margin-top: 30px;
		grid-template-columns: repeat(1,1fr);
		row-gap: 20px;
	}
	.link_item {
		display: flex;
		flex-direction: row;
		justify-content: space-between;
		align-items: center;
	}
	.link_img {
		width: 47%;
	}
	.link_item_body {
		width: 53%;
		padding-bottom: 10px;
	}
	.link_item_title {
		bottom: -6px;
		font-size: 22px;
	}
	.link_item_title span {
		font-size: 36px;
	}
	.link_item_lead {
		min-height: auto;
		margin-top: 4px;
		font-size: 12px;
		letter-spacing: 0.1em;
		line-height: 1.42;
	}
	.arrow_down {
		width: 20px;
		margin-top: 8px;
	}
}

/* point_area
===================================== */
.point_area {
	border-top: 1px solid #c1ad93;
	width: 100%;
	height: 550px;
}
.point01 {
	background: url(images/bg_point01.jpg) no-repeat right center / cover;
}
.point02 {
	background: url(images/bg_point02.jpg) no-repeat left center / cover;
}
.point03 {
	background: url(images/bg_point03.jpg) no-repeat right center / cover;
}
.point04 {
	background: url(images/bg_point04.jpg) no-repeat left center / cover;
}
.point_area .inner {
	max-width: 1600px;
	height: inherit;
	display: flex;
	align-items: center;
}
.point_box {
	position: relative;
	width: 48%;
	max-width: 750px;
	padding: 40px 40px;
	padding: clamp(2rem, 0.509rem + 1.818vw, 4rem) clamp(1rem, -1.236rem + 2.727vw, 4rem);
	text-align: center;
}
.point_box_cap {
	position: absolute;
	width: 90%;
	bottom: -30px;
	left: 50%;
	transform: translateX(-50%);
	text-align: center;
	color: #000;
	font-size: 10px;
}
.point_box_right {
	margin-left: auto;
}
.point_title_en {
	position: relative;
	display: inline-block;
	color: #594b2a;
	font-size: 24px;
	font-family: "EB Garamond", serif;
}
.point_title_en::before {
	content: '';
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 50px;
	height: 1px;
	background-color: #594b2a;
}
.point_title_en span {
	font-size: 60px;
	padding-left: 8px;
}
.point_title {
	margin-top: 20px;
	color: #000;
	font-size: 36px;
	font-size: clamp(1.8rem, 0.458rem + 1.636vw, 3.6rem);
	letter-spacing: 0.1em;
}
.point_btn {
	cursor: pointer;
	position: relative;
	margin-top: 26px;
	max-width: 250px;
	width: 100%;
	padding: 10px 0;
	font-size: 18px;
	letter-spacing: 0.2em;
	color: #fff;
	background-color: #594b2a;
	transition: all .5s ease-out;
}
.point_btn::after {
	content: '';
	position: absolute;
	top: 20px;
	right: 30px;
	background: url(../assets/images/icon_arrow.png) no-repeat center center / contain;
	width: 30px;
	height: 7px;
	transition: all .5s ease-out;
}
.point_btn:hover {
	opacity: .7;
}
.point_btn.cs {
	pointer-events: none;
}
.point_btn.cs::after {
	content: none;
}

@media only screen and (max-width:768px) {
	.point_area {
		height: 360px;
	}
	.point_area.point01 {
		background: url(images/bg_point01_sp.jpg) no-repeat right bottom / cover;
		height: 470px;
	}
	.point02 {
		background: url(images/bg_point02_sp.jpg) no-repeat left bottom / cover;
	}
	.point03 {
		background: url(images/bg_point03_sp.jpg) no-repeat right bottom / cover;
	}
	.point04 {
		background: url(images/bg_point04_sp.jpg) no-repeat left bottom / cover;
	}
	.point_area .inner {
		flex-direction: column;
}
	.point_box {
		margin-top: 0px;
		width: 90%;
		margin-inline: auto;
		max-width: 500px;
		padding: 14px 20px 30px;
		text-align: center;
	}
	.point_area.point01 .point_box {
		margin-top: 0px;
	}
	.point_box_cap {
		bottom: -40px;
		position: static;
		transform: none;
		text-align: left;
		margin-top: 10px;
	}
	.point_title_en {
		font-size: 20px;
		line-height: 1.4;
	}
	.point_title_en span {
		font-size: 40px;
		padding-left: 4px;
	}
	.point_title_en::before {
		width: 40px;
	}
	.point_title {
		margin-top: 10px;
		font-size: 14px;
		letter-spacing: 0.05em;
	}
	.point_btn {
		margin-top: 20px;
		max-width: 240px;
		padding: 4px 0;
		font-size: 14px;
		letter-spacing: 0.1em;
		background-color: #726048;
	}
	.point_btn::after {
		top: 12px;
		right: 20px;
		width: 26px;
		height: 7px;
	}
}


/* モーダル */
.modal {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100vh;
	padding: 30px;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: opacity 0.3s;
	pointer-events: none;
	opacity: 0;
	z-index: 100;
	background-color: rgba(120, 123, 131, 0.8);
}

/* モーダルがactiveの時 */
.modal.is-active {
	opacity: 1;
	pointer-events: auto;
}

/* モーダル背景のオーバーレイ部分 */
.modal__overlay {
	position: absolute;
	width: 100%;
	height: 100%;
	cursor: pointer;
}

/* モーダルのコンテンツ */
.modal__content {
	position: relative;
	background-color: #302C2A;
	width: 100%;
	max-width: 1140px;
	padding: 20px;
	margin-top: 60px;
}

/* モーダルのコンテンツ */
#modal01 .modal__content {
	background-color: #3D3939;
}
#modal04 .modal__content {
	background-color: #3D3939;
}

/* モーダルを閉じるボタン */
.modal__close-btn {
	position: absolute;
	right: 0;
	top: 0;
	width: 40px;
	height: 40px;
	background: #fff;
	border: 1px solid #ccc;
	cursor: pointer;
	z-index: 10;
}

.swiper-container-android .swiper-slide, .swiper-wrapper img {
	margin-inline: auto;
}
.swiper-slide {
	margin-inline: auto;
	margin-block: auto;
}

.swiper-slide {
	flex-shrink: 0;
	width: 100%;
	height: 100%;
	position: relative;
	transition-property: transform;
}

/* 前への矢印 */
.swiper-button-prev {
	left:-20px;
	/* left: calc(50% - 55px); */
	top: 50%;
	transform: translateY(-50%);
}
/* 次への矢印 */
.swiper-button-next {
	right: -20px;
	top: 50%;
	transform: translateY(-50%);
}
/* 幅・高さを指定 */
.swiper-button-prev,
.swiper-button-next {
	width: 56px;
	height: 99px;
}

/* 矢印を消す、画像に変更 */
.swiper-button-prev:after,
.swiper-button-next:after {
	content: "";
	background-repeat: no-repeat;
	background-size: contain;
	width: 56px;
	height: 99px;
	margin: auto;
}
/* 前に戻る画像パス */
.swiper-button-prev:after {
	background-image: url(images/icon_prev01.svg);
	background-image: url(images/icon_prev01.png);
}
/* 次に進む画像パス */
.swiper-button-next:after {
	background-image: url(images/icon_next01.svg);
	background-image: url(images/icon_next01.png);
}

/* Swiperの矢印部分 */
@media (max-width: 768px) {
	.modal__content {
		margin-top: 0px;
	}
	.swiper-button-prev, .swiper-button-next {
		width: 30px;
		height: 60px;
}
}

.swiper {
	margin-left: auto;
	margin-right: auto;
	position: relative;
	overflow: hidden;
	list-style: none;
	padding: 0;
	z-index: 1;
}