@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@300..700&family=Manrope&family=Noto+Sans+JP&family=Noto+Serif+SC:wght@400;500;600&family=Noto+Serif+TC:wght@400;500;600&family=Playfair+Display:wght@400..900&display=swap');

/* リセット
---------------------------------------------------------- */
html, body, div, dl, dt, dd, ul, ol, li, h1, h2, h2, h3, h4, h5, h6,
pre, form, fieldset, input, textarea, p, table, th, td, button, a, span {
	margin: 0;
	padding: 0;
	font-size: 100%;
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
	position: relative;
}
ol,
ul {
	list-style: none;
}
article, aside, details, figcaption, figure, footer, header, hgroup, main, nav, section, summary {
	display: block;
	margin: 0;
	padding: 0;
	font-size: 100%;
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
	position: relative;
}
address {
	font-style: normal;
}
button {
	font-family: inherit;
	color: inherit;
	outline: none;
	cursor: pointer;
}

/* レイアウト
----------------------------------------*/
html {
	font-size: 1rem;
	font-size: 10px;
	height: 100%;
}
body {
	color: #333;
	font-family: "Cormorant Garamond", "Noto Serif JP", serif;
	background: #F0F0F0;
	font-size: 1.4rem;
	font-weight: 400;
	line-height: 1.5;
	height: 100%;
	-webkit-text-size-adjust: 100%;
	font-variant-numeric: lining-nums;
	font-feature-settings: "lnum";
}
body.open,
body.modal_open,
body.reserve_open {
	width: 100%;
	height: 100%;
	position: fixed;
	overflow-y: scroll;
}
img {
	image-rendering: -webkit-optimize-contrast;
	display: block;
}
button {
	appearance: none;
	padding: 0;
	border: 0;
	outline: none;
}
a,
button {
	text-decoration: none;
	color: inherit;
	transition: opacity .3s;
}
table,
tbody,
thead,
tr,
th,
td {
	position: static;
}
main {
	overflow: clip;
}
@media (hover:hover) {
	a:hover,
	button:hover {
		opacity: .6;
	}
}
@media only screen and (max-width: 1380px) {
	html {
		font-size: .7247vw;
	}
}
@media only screen and (min-width: 769px) {
	a[href^="tel:"] {
		pointer-events: none;
	}
}
@media only screen and (max-width: 768px) {
	img {
		width: 100%;
	}
	html {
		font-size: 2.5641vw;
	}
}

/* img
----------------------------------------*/
img {
	max-width: 100%;
	height: auto;
}

/* font
----------------------------------------*/
.playfair {
	font-family: "Playfair Display", serif;
}
.manrope {
	font-family: "Manrope", sans-serif;
}
html:lang(zh-Hant) body,
html:lang(zh-TW) body,
html:lang(zh-Hant) button,
html:lang(zh-Hant) input,
html:lang(zh-Hant) select,
html:lang(zh-Hant) textarea,
html:lang(zh-TW) button,
html:lang(zh-TW) input,
html:lang(zh-TW) select,
html:lang(zh-TW) textarea {
	font-family: "Noto Serif TC", serif;
}
html:lang(zh-Hans) body,
html:lang(zh-CN) body,
html:lang(zh-Hans) button,
html:lang(zh-Hans) input,
html:lang(zh-Hans) select,
html:lang(zh-Hans) textarea,
html:lang(zh-CN) button,
html:lang(zh-CN) input,
html:lang(zh-CN) select,
html:lang(zh-CN) textarea {
	font-family: "Noto Serif SC", serif;
}
html[lang="en"] h1,
html[lang="en"] h2,
html[lang="en"] h3,
html[lang="en"] .gnav a,
html[lang="en"] .btn,
html[lang="en"] button,
html[lang="zh-hant"] h1,
html[lang="zh-hant"] h2,
html[lang="zh-hant"] h3,
html[lang="zh-hant"] .gnav a,
html[lang="zh-hant"] .btn,
html[lang="zh-hant"] button,
html[lang="zh-TW"] h1,
html[lang="zh-TW"] h2,
html[lang="zh-TW"] h3,
html[lang="zh-TW"] .gnav a,
html[lang="zh-TW"] .btn,
html[lang="zh-TW"] button,
html[lang="zh-hans"] h1,
html[lang="zh-hans"] h2,
html[lang="zh-hans"] h3,
html[lang="zh-hans"] .gnav a,
html[lang="zh-hans"] .btn,
html[lang="zh-hans"] button,
html[lang="zh-CN"] h1,
html[lang="zh-CN"] h2,
html[lang="zh-CN"] h3,
html[lang="zh-CN"] .gnav a,
html[lang="zh-CN"] .btn,
html[lang="zh-CN"] button {
	overflow-wrap: anywhere;
}

/*表示
----------------------------------------*/
@media only screen and (min-width: 769px) {
	.sp {
		display: none !important;
	}
}

@media only screen and (max-width: 768px) {
	.pc {
		display: none !important;
	}
}

/*header
----------------------------------------*/
.header {
	background: rgba(255, 255, 255, .95);
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	z-index: 2000;
	padding: 0 0 0 3rem;
	display: flex;
	align-items: center;
}
.header_logo {
	width: 16rem;
	padding: 2.9rem 0 3rem;
}
.header_logo a {
	display: block;
}
.header_reserve {
	width: 15.2rem;
	height: 10rem;
	background: #706A8D;
	color: #fff;
	font-size: 1.4rem;
	letter-spacing: .05em;
	font-weight: 500;
	text-align: center;
	padding-top: .4rem;
	margin-left: 4.1rem;
}
.header_reserve::before {
	content: '';
	display: block;
	width: 1.6rem;
	height: 1.6rem;
	background: url(../img/common/header_reserve_icon.svg) no-repeat left top / 100% auto;
	margin: 0 auto 1.1rem;
}
.header_lang {
	position: absolute;
	top: 2.4rem;
	right: 19.2rem;
	font-size: 1.3rem;
	letter-spacing: .05em;
	font-weight: 500;
	z-index: 2;
}
.header_lang dt {
	cursor: pointer;
	padding-right: 1.5rem;
}
.header_lang dt::after {
	content: '';
	display: block;
	width: .3rem;
	height: .3rem;
	border-top: .1rem solid #333;
	border-right: .1rem solid #333;
	transform: rotate(135deg);
	position: absolute;
	top: .6rem;
	right: 0;
}
.header_lang dd {
	background: #fff;
	color: #333;
	padding: .5rem 1rem;
	line-height: 2;
}
.header_lang dd a {
	display: block;
}
.header_btn,
.header_reserve_menu {
	display: none;
}
.header_reserve_menu {
	display: block;
	position: fixed;
	top: 0;
	right: 0;
	height: 100%;
	overflow: auto;
	width: 43.6rem;
	background: #706A8D;
	color: #fff;
	z-index: 2000;
	padding: 15.6rem 6rem 6rem;
	transform: translateX(100%);
	transition: transform .3s;
	pointer-events: none;
}
.reserve_open .header_reserve_menu {
	transform: none;
	pointer-events: all;
}
.header_reserve_menu_close {
	position: absolute;
	top: 4rem;
	right: 6.1rem;
	width: 2rem;
	height: 2rem;
	background: none;
}
.header_reserve_menu_close::before,
.header_reserve_menu_close::after {
	content: '';
	display: block;
	width: .1rem;
	height: 2.4rem;
	background: #fff;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	margin: auto;
	transform: rotate(45deg);
}
.header_reserve_menu_close::after {
	transform: rotate(-45deg);
}
.header_reserve_menu h2 {
	text-align: center;
	font-size: 2.5rem;
	font-weight: 400;
	margin-bottom: 4.8rem;
}
.header_reserve_menu_btn {
	max-width: 31.3rem;
}
.header_reserve_menu_btn a {
	height: 5rem;
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 1.4rem;
	letter-spacing: .05em;
	font-weight: 500;
	background: #fff;
	color: #706A8D;
}
.header_reserve_menu_btn a:not(.header_reserve_menu_btn_line)::before {
	content: '';
	display: block;
	width: 1.5rem;
	height: 1.5rem;
	background: #706A8D;
	border-radius: 50%;
	position: absolute;
	top: 0;
	bottom: 0;
	right: 1rem;
	margin: auto 0;
}
.header_reserve_menu_btn a:not(.header_reserve_menu_btn_line)::after {
	content: '';
	display: block;
	width: .3rem;
	height: .3rem;
	border-top: .1rem solid #fff;
	border-right: .1rem solid #fff;
	transform: rotate(45deg);
	position: absolute;
	top: 0;
	bottom: 0;
	right: 1.6rem;
	margin: auto 0;
}
.header_reserve_menu_btn_line::after {
	content: '';
	display: block;
	background: url(../img/common/header_line_icon.svg) no-repeat left top / 100% auto;
	width: 1.6rem;
	height: 1.5rem;
	position: absolute;
	top: 0;
	bottom: 0;
	right: 1rem;
	margin: auto 0;
}
.header_reserve_menu_btn a + a {
	margin-top: 1.5rem;
}
.header_reserve_menu_phone {
	text-align: center;
	margin-top: 5.4rem;
}
.header_reserve_menu_phone h3 {
	font-size: 1.4rem;
	font-weight: 500;
	letter-spacing: .05em;
	margin-bottom: 2.6rem;
}
.header_reserve_menu_phone a {
	display: block;
	width: fit-content;
	margin: 0 auto;
	font-size: 3rem;
	padding-left: 4.3rem;
	letter-spacing: -.02em;
	line-height: 1;
	font-family: "游明朝", YuMincho, "Yu Mincho", serif;
}
.header_reserve_menu_phone a span {
	display: block;
	transform: scaleX(.96);
}
.header_reserve_menu_phone a::before {
	content: '';
	display: block;
	width: 3rem;
	height: 3rem;
	background: url(../img/common/header_phone_icon.svg) no-repeat left top / 100% auto;
	position: absolute;
	left: .2rem;
	top: -.2rem;
}
.header_reserve_menu_phone p {
	font-size: 1.2rem;
	letter-spacing: .1em;
	line-height: 1.9167;
	margin-top: 2.1rem;
}
@media only screen and (max-width: 768px) {
	.header {
		padding: 0 0 0 2.5rem;
	}
	.header_logo {
		padding: 2rem 0 1.9rem;
		z-index: 2100;
	}
	.header_reserve {
		width: 8.5rem;
		height: 8rem;
		padding-top: .5rem;
		margin-left: auto;
	}
	.header_reserve::before {
		margin: 0 auto .8rem;
	}
	.header_lang {
		position: relative;
		top: auto;
		right: auto;
		margin-top: 4.4rem;
	}
	.header_lang dt {
		pointer-events: none;
		padding: 0 0 2.4rem .3rem;
	}
	.header_lang dt::after {
		display: none;
	}
	.header_lang dd {
		background: none;
		padding: 0;
		display: flex !important;
		justify-content: space-between;
	}
	.header_lang dd a {
		width: 16.5rem;
		height: 4rem;
		display: flex;
		justify-content: center;
		align-items: center;
		background: #E8E8E8;
	}
	.header_btn {
		display: block;
		width: 8.5rem;
		height: 8rem;
		background: #fff;
		z-index: 2100;
	}
	.header_btn::before,
	.header_btn::after {
		content: '';
	}
	.header_btn::before,
	.header_btn::after,
	.header_btn span {
		display: block;
		width: 3rem;
		height: .1rem;
		background: #333;
		position: absolute;
		top: 2.9rem;
		left: 0;
		right: 0;
		margin: 0 auto;
	}
	.header_btn span {
		top: 3.9rem;
	}
	.header_btn::after {
		top: 4.9rem;
	}
	.header_reserve_menu {
		top: 0;
		width: 100%;
		height: auto;
		max-width: 100%;
		background: linear-gradient(to bottom, transparent 8rem, #706a8d 8rem);
		padding: 12rem 2.5rem 4.2rem;
		transform: none;
		transition: opacity .5s;
		opacity: 0;
	}
	.reserve_open .header_reserve_menu {
		opacity: 1;
	}
	.header_reserve_menu_close {
		position: fixed;
		background: #706A8D;
		top: 0;
		right: 8.5rem;
		width: 8.5rem;
		height: 8rem;
	}
	.header_reserve_menu h2 {
		margin-bottom: 1.6rem;
	}
	.header_reserve_menu_btn {
		max-width: none;
	}
	.header_reserve_menu_phone {
		margin-top: 2.1rem;
	}
	.header_reserve_menu_phone h3 {
		margin-bottom: 2.3rem;
	}
}

/* gnav
----------------------------------------*/
.gnav {
	margin-left: auto;
	position: static;
}
.gnav ul {
	display: flex;
	align-items: center;
	font-weight: 500;
	margin-top: 3.2rem;
}
.gnav li {
	margin-left: 3.4rem;
}
@media only screen and (max-width: 768px) {
	.gnav {
		position: fixed;
		top: 8rem;
		left: 0;
		right: 0;
		height: calc(100% - 8rem);
		background: #fff;
		padding: 5rem 2.5rem 3.7rem;
		overflow: auto;
		opacity: 0;
		pointer-events: none;
		transition: opacity .5s;
	}
	.open .gnav {
		pointer-events: all;
		opacity: 1;
	}
	.gnav ul {
		display: block;
		margin-top: 0;
		border-top: .1rem solid rgba(51, 51, 51, .15);
	}
	.gnav li {
		margin-left: 0;
		border-bottom: .1rem solid rgba(51, 51, 51, .15);
	}
	.gnav li a {
		padding: 1.95rem 0;
		display: block;
	}
	.gnav li a::before {
		content: '';
		display: block;
		width: 1.5rem;
		height: 1.5rem;
		background: #6A9383;
		border-radius: 50%;
		position: absolute;
		top: 0;
		bottom: 0;
		right: 0;
		margin: auto 0;
	}
	.gnav li a::after {
		content: '';
		display: block;
		width: .3rem;
		height: .3rem;
		border-top: .1rem solid #fff;
		border-right: .1rem solid #fff;
		transform: rotate(45deg);
		position: absolute;
		top: 0;
		bottom: 0;
		right: .6rem;
		margin: auto 0;
	}
}

/*main
----------------------------------------*/
main {
	padding-top: 10rem;
}
@media only screen and (max-width: 768px) {
	main {
		padding-top: 8rem;
	}
}

/*mv
----------------------------------------*/
.page_ttl {
	max-width: 132rem;
	margin: 7.3rem auto 0;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
}
.page_ttl h1 {
	font-size: 3.4rem;
	color: #6A9383;
	font-weight: 500;
	line-height: 1.0588;
}
.page_ttl_box {
	padding: .1rem 0 0 1rem;
}
.page_ttl_box h2 {
	font-size: 2rem;
	font-weight: 500;
	letter-spacing: .05em;
	line-height: 1.3;
	margin-bottom: 3.6rem;
}
.page_ttl_box p {
	font-size: 1.4rem;
	letter-spacing: .05em;
	line-height: 1.5714;
}
@media only screen and (max-width: 768px) {
	.page_ttl {
		margin: 4.1rem 2.5rem 0;
		display: block;
	}
	.page_ttl h1 {
		line-height: 1.1765;
		margin-bottom: 3.4rem;
	}
	.page_ttl_box {
		padding: 0;
	}
	.page_ttl_box h2 {
		margin-bottom: 3.7rem;
	}
}

/*btn
----------------------------------------*/
.btn {
	width: fit-content;
	min-width: 27rem;
	max-width: 100%;
	height: 5rem;
	display: flex;
	justify-content: center;
	align-items: center;
	text-align: center;
	background: #6A9383;
	color: #fff;
	font-size: 1.4rem;
	letter-spacing: .05em;
	padding: .1rem 4rem 0;
}
.btn::before {
	content: '';
	display: block;
	width: 1.5rem;
	height: 1.5rem;
	background: #fff;
	border-radius: 50%;
	position: absolute;
	top: 0;
	bottom: 0;
	right: 1rem;
	margin: auto 0;
}
.btn::after {
	content: '';
	display: block;
	width: .3rem;
	height: .3rem;
	border-top: .1rem solid #6A9383;
	border-right: .1rem solid #6A9383;
	transform: rotate(45deg);
	position: absolute;
	top: 0;
	bottom: 0;
	right: 1.6rem;
	margin: auto 0;
}
@media only screen and (max-width: 768px) {
}

/*faq_list
----------------------------------------*/
.faq_list dt {
	font-size: 1.6rem;
	font-weight: 500;
	letter-spacing: .05em;
}
.faq_list dt {
	border-bottom: .1rem solid #D6D6D6;
	padding: .6rem 4rem 3.4rem;
	cursor: pointer;
}
.faq_list dt::before,
.faq_list dt::after {
	content: '';
	display: block;
	width: 2rem;
	height: .1rem;
	background: #6A9383;
	position: absolute;
	right: 0;
	top: 1.8rem;
}
.faq_list dt:not(.open)::after {
	transform: rotate(90deg);
}
.faq_list dd + dt {
	margin-top: 2.55rem;
}
.faq_list dt span {
	font-size: 2rem;
	color: #6A9383;
	position: absolute;
	top: .4rem;
	left: 0;
}
.faq_list dd {
	padding: 3.4rem 11.1rem 4.5rem 0;
	line-height: 1.2143;
	font-size: 1.4rem;
	letter-spacing: .05em;
	border-bottom: .1rem solid #D6D6D6;
}
@media only screen and (max-width: 768px) {
.faq_list dt {
	font-size: 1.6rem;
		line-height: 1.25;
	font-weight: 500;
	letter-spacing: .05em;
}
	.faq_list dt {
		padding: .6rem 3.4rem 3.4rem;
		display: flex;
		align-items: center;
	}
	.faq_list dt::before,
	.faq_list dt::after {
		width: 1.5rem;
		top: 0;
		bottom: 3rem;
		margin: auto;
	}
	.faq_list dd + dt {
		margin-top: 2.7rem;
	}
	.faq_list dt span {
		top: 0;
		bottom: 2.6rem;
		display: flex;
		align-items: center;
	}
	.faq_list dd {
		padding: 3.5rem 0 3.6rem;
	}
}

/*p_contact
----------------------------------------*/
.p_contact {
	text-align: center;
	padding: 9rem 0;
	background: #fff;
	z-index: 2;
}
.p_contact h2 {
	font-size: 2.5rem;
	color: #5D4F7D;
	font-weight: 400;
	margin-bottom: 3.8rem;
}
.p_contact_btn {
	display: flex;
	justify-content: center;
	gap: 2rem;
	margin-bottom: 4.4rem;
}
.p_contact_btn a {
	width: fit-content;
	min-width: 31.3rem;
	max-width: 100%;
	height: 5rem;
	display: flex;
	justify-content: center;
	align-items: center;
	text-align: center;
	background: #706A8D;
	color: #fff;
	font-size: 1.4rem;
	letter-spacing: .05em;
	padding: 0 4rem;
}
.p_contact_btn a:not(.p_contact_btn_line)::before {
	content: '';
	display: block;
	width: 1.5rem;
	height: 1.5rem;
	background: #fff;
	border-radius: 50%;
	position: absolute;
	top: 0;
	bottom: 0;
	right: 1rem;
	margin: auto 0;
}
.p_contact_btn a:not(.p_contact_btn_line)::after {
	content: '';
	display: block;
	width: .3rem;
	height: .3rem;
	border-top: .1rem solid #706A8D;
	border-right: .1rem solid #706A8D;
	transform: rotate(45deg);
	position: absolute;
	top: 0;
	bottom: 0;
	right: 1.6rem;
	margin: auto 0;
}
.p_contact_btn_line::after {
	content: '';
	display: block;
	background: url(../img/common/header_line_icon.svg) no-repeat left top / 100% auto;
	width: 1.6rem;
	height: 1.5rem;
	position: absolute;
	top: 0;
	bottom: 0;
	right: 1rem;
	margin: auto 0;
	filter: brightness(0) invert(1);
}
.p_contact_phone h3 {
	font-size: 1.4rem;
	font-weight: 500;
	letter-spacing: .05em;
	margin-bottom: 2.6rem;
}
.p_contact_phone a {
	display: block;
	width: fit-content;
	margin: 0 auto;
	color: #7A9485;
	font-size: 3rem;
	padding-left: 4.3rem;
	letter-spacing: -.02em;
	line-height: 1;
}
.p_contact_phone a span {
	display: block;
	transform: scaleX(.96);
}
.p_contact_phone a::before {
	content: '';
	display: block;
	width: 3rem;
	height: 3rem;
	background: url(../img/common/contact_phone_icon.svg) no-repeat left top / 100% auto;
	position: absolute;
	left: .2rem;
	top: -.2rem;
}
.p_contact_phone p {
	font-size: 1.2rem;
	letter-spacing: .1em;
	line-height: 1.9167;
	margin-top: 2.1rem;
}
@media only screen and (max-width: 768px) {
	.p_contact {
		padding: 9rem 2.5rem 9.2rem;
	}
	.p_contact h2 {
		margin-bottom: 1.5rem;
	}
	.p_contact_btn {
		display: block;
		margin-bottom: 2.1rem;
	}
	.p_contact_btn a {
		min-width: 100%;
	}
	.p_contact_btn a + a {
		margin-top: 1.5rem;
	}
	.p_contact_phone h3 {
		margin-bottom: 2.3rem;
	}
}

/*footer
----------------------------------------*/
.footer {
	background: #658478;
	color: #fff;
	padding: 4.5rem 0;
	text-align: center;
	z-index: 2;
}
.footer_logo {
	width: 10.5rem;
	margin: 0 auto 3.4rem;
}
.footer_navi {
	display: flex;
	justify-content: center;
	font-size: 1.4rem;
	font-weight: 500;
	gap: 3.4rem;
	margin-bottom: 4.2rem;
}
.footer_instagram {
	display: flex;
	align-items: center;
	width: fit-content;
	gap: .6rem;
	margin: 0 auto 3.2rem;
	font-size: 1.4rem;
	font-weight: 500;
}
.footer_instagram::after {
	content: '';
	display: block;
	width: 1.5rem;
	height: 1.5rem;
	background: url(../img/common/icon_instagram.svg) no-repeat left top / 100% auto;
}
.footer_link {
	font-size: 1.2rem;
	letter-spacing: .05em;
}
.footer .copyright {
	text-align: center;
	font-size: 1rem;
	display: block;
	margin-top: 3.1rem;
}
@media only screen and (max-width: 768px) {
	.footer {
		padding: 5rem 0 2.6rem;
	}
	.footer_logo {
		margin: 0 auto 5rem;
	}
	.footer_navi {
		width: 34rem;
		margin: 0 auto 3.8rem;
		display: block;
		border-bottom: .1rem solid rgba(255, 255, 255, 0.15);
	}
	.footer_navi li {
		border-top: .1rem solid rgba(255, 255, 255, 0.15);
	}
	.footer_navi li a {
		display: block;
		padding: 1.15rem 0;
		text-align: left;
	}
	.footer_navi li a::before {
		content: '';
		display: block;
		width: 1.5rem;
		height: 1.5rem;
		background: #fff;
		border-radius: 50%;
		position: absolute;
		top: 0;
		bottom: 0;
		right: 0;
		margin: auto 0;
	}
	.footer_navi li a::after {
		content: '';
		display: block;
		width: .3rem;
		height: .3rem;
		border-top: .1rem solid #6A9383;
		border-right: .1rem solid #6A9383;
		transform: rotate(45deg);
		position: absolute;
		top: 0;
		bottom: 0;
		right: .6rem;
		margin: auto 0;
	}
	.footer_instagram {
		flex-direction: row-reverse;
		gap: .8rem;
		margin: 0 auto 3.3rem;
	}
	.footer_link {
		letter-spacing: 0;
	}
	.footer .copyright {
		margin-top: 2.9rem;
	}
}

/*inview
----------------------------------------*/
.anim-fadeUp {
	transition: opacity 1s, transform 1s;
	opacity: 0;
	transform: translateY(5rem);
}
.anim-fadeUp.show {
	transform: none;
	opacity: 1;
}
