@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@200..900&family=Noto+Serif+JP:wght@200..900&family=Libre+Baskerville:ital,wght@1,400..700&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;
}

/* color
---------------------------------------------------------- */
:root {
	--txt-color: #333;
	--key-color: #A0006A;
	--cv-color: #57AD86;
	--bg-color: #fff;
	--btn-color1: var(--key-color);
	--btn-color2: #fff;
	--btn-color3: var(--cv-color);
	--btn-color4: var(--key-color);
	--btn-float1: var(--cv-color);
	--btn-float2: #fff;
	--nav-btn-color1: var(--key-color);
	--nav-btn-color2: #fff;
	--slide-dot-color1: #D9D9D9;
	--slide-dot-color2: var(--key-color);
	--arrow-color1: #333;
	--arrow-color2: #fff;
	--form-error-color: var(--cv-color);
	--gnav-line-color: rgba(163, 148, 131, .5);
	--gnav-line-color-pc: rgba(255, 255, 255, .5);
	--gnav-txt-color: var(--key-color);
	--gnav-txt-color-pc: #fff;
}

/* レイアウト
----------------------------------------*/
html {
	font-size: 1rem;
	font-size: 10px;
	height: 100%;
}
body {
	color: var(--txt-color);
	font-family: "Noto Sans JP", sans-serif;
	background: var(--bg-color);
	font-size: 1.4rem;
	font-weight: 400;
	line-height: 1.5;
	height: 100%;
	-webkit-text-size-adjust: 100%;
}
body.open,
body.modal_open {
	width: 100%;
	height: 100%;
	position: fixed;
	overflow-y: scroll;
}
img {
	image-rendering: -webkit-optimize-contrast;
	display: block;
	width: 100%;
}
a,
button {
	text-decoration: none;
	color: inherit;
	transition: opacity .3s;
}
table,
tbody,
thead,
tr,
th,
td {
	position: static;
}
main {
	overflow: clip;
	padding-bottom: 3rem;
}
@media (hover:hover) {
	a:hover,
	button:hover {
		opacity: .6;
	}
}
@media only screen and (min-width: 1001px) {
	a[href^="tel:"] {
		pointer-events: none;
	}
	main {
		padding-bottom: 4.6rem;
	}
}

/* font
----------------------------------------*/
.en {
	font-family: "Libre Baskerville", serif;
	font-style: italic;
}

/* img
----------------------------------------*/
img {
	max-width: 100%;
	height: auto;
}

/*表示
----------------------------------------*/
@media only screen and (min-width: 1001px) {
	.sp {
		display: none !important;
	}
}

@media only screen and (max-width: 1000px) {
	.pc {
		display: none !important;
	}
}

/*PC
----------------------------------------*/
@media only screen and (min-width: 1001px) {
	.wrap_pc {
		padding: 8.9rem 0;
	}
	.wrap_pc_bg {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
	}
	.wrap_pc_bg img {
		width: 100%;
		height: 100vh;
		object-fit: cover;
	}
	.wrap_pc_inner {
		width: 45rem;
		margin: 0 auto;
		background: var(--bg-color);
		border-radius: 0 0 .5rem .5rem;
	}
	@media only screen and (max-height: 911px) {
		.wrap_pc {
			padding: 9.7695vh 0;
		}
	}
}

/*header
----------------------------------------*/
.header {
	padding: 2.1rem 2rem 0;
	display: flex;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
}
.header_logo {
	width: 20.7rem;
	margin: 1rem 0 .2rem;
	z-index: 2000;
}
.header_logo a {
	display: block;
}
.header_btn {
	position: fixed;
	top: 2.1rem;
	right: 2rem;
	z-index: 3100;
	appearance: none;
	border: 0;
	padding: 0;
	margin: 0 0 0 auto;
	width: 5rem;
	height: 5rem;
	background: var(--nav-btn-color1);
	border-radius: 50%;
	cursor: pointer;
	box-shadow: 0 .4rem .4rem rgba(0, 0, 0, .25);
}
.header_btn::before,
.header_btn::after {
	content: '';
}
.header_btn::before,
.header_btn::after,
.header_btn span {
	display: block;
	width: 1.65rem;
	height: .1rem;
	background: var(--nav-btn-color2);
	margin: 0 auto;
	position: absolute;
	left: 0;
	right: 0;
	top: 1.8rem;
	transition: transform .3s, top .3s;
}
.header_btn span {
	top: 2.4rem;
}
.header_btn::after {
	top: 3.1rem;
}
.open .header_btn::before,
.open .header_btn::after,
.open .header_btn span {
	transform: rotate(45deg);
	position: absolute;
	top: 2.5rem;
}
.open .header_btn::after {
	transform: rotate(-45deg);
}
.open .header_btn span {
	opacity: 0;
}
@media only screen and (min-width: 1001px) {
	.header {
		padding: 8.9rem 0 0;
		position: fixed;
		z-index: 2;
		right: 0;
		width: 95%;
		max-width: 117rem;
		margin: 0 auto;
		pointer-events: none;
	}
	.header_logo {
		width: 21.7rem;
		margin: 0 0 .2rem;
		pointer-events: all;
	}
	.header_btn {
		display: none;
	}
	@media only screen and (max-height: 911px) {
		.header {
			padding: 9.7695vh 0 0;
		}
	}
}

/* gnav
----------------------------------------*/
.gnav {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: var(--bg-color);
	z-index: 3000;
	overflow: auto;
	padding-bottom: 2rem;
	pointer-events: none;
	transform: translateX(100%);
	transition: transform .5s;
	color: var(--gnav-txt-color);
}
.open .gnav {
	transform: none;
	pointer-events: all;
}
.gnav_logo {
	width: 20.7rem;
	margin: 3.1rem 0 2.1rem 2rem;
	z-index: 2000;
}
.gnav_logo a {
	display: block;
}
.gnav_inner {
	margin: 0 7.6923%;
	font-size: 1.3rem;
}
.gnav_inner ul li {
	border-bottom: .1rem solid var(--gnav-line-color);
}
.gnav_inner ul li + li {
	margin-top: 1.75rem;
}
.gnav_inner ul a {
	font-family: "Noto Serif JP", serif;
	display: block;
	padding-bottom: 1.5rem;
}
.gnav_bnr {
	display: block;
	border-radius: .5rem;
	overflow: hidden;
	box-shadow: 0 .4rem .4rem rgba(0, 0, 0, .25);
	margin-top: 3.2rem;
}
@media only screen and (max-width: 1000px) {
	.gnav_inner ul li {
		border-bottom-color: var(--gnav-line-color) !important;
		color: var(--gnav-txt-color) !important;
	}
}
@media only screen and (min-width: 1001px) {
	.gnav {
		position: relative;
		top: auto;
		left: auto;
		width: 26rem;
		max-width: calc(50% - 245px);
		height: calc(100vh - 8.9rem);
		background: none;
		pointer-events: all;
		transform: none;
		margin: 0 0 0 auto;
		color: var(--gnav-txt-color-pc);
	}
	.gnav_logo {
		display: none;
	}
	.gnav_inner {
		margin: 0;
	}
	.gnav_inner ul li {
		border-bottom: .1rem solid var(--gnav-line-color-pc);
	}
	.gnav_bnr {
		margin-top: 2rem;
	}
	.gnav_float {
		margin-top: 1.9rem;
	}
	.gnav_float .float_btn {
		margin-top: .8rem;
		padding: 1rem 3rem;
		font-size: 1.3rem;
		letter-spacing: .05em;
	}
	.gnav_float .float_btn::before {
		width: 1.6rem;
		height: 1.6rem;
		right: 1.2rem;
	}
	.gnav_float .float_btn::after {
		width: .3rem;
		height: .3rem;
		right: 1.8rem;
	}
	@media only screen and (max-height: 911px) {
		.gnav {
			height: calc(100vh - 9.7695vh);
		}
	}
}

/* mv
----------------------------------------*/
.mv {
	overflow: hidden;
	padding-bottom: 3rem;
}

/* js-slide
----------------------------------------*/
.js-slide_img {
	overflow: hidden;
}
.js-slide_img figure.slick-slide {
	float: left;
}
.js-slide_img figure:not(.slick-slide):not(:nth-child(1)) {
	display: none;
}
.js-slide_img .slick-track::after,
.js-slide_cont .slick-track::after,
.js-slide_modal .slick-track::after {
	content: '';
	display: block;
	clear: both;
	width: 0;
	height: 0;
}
.js-slide_modal .slick-list {
	overflow: hidden;
}
.js-slide_cont .slick-next,
.js-slide_cont .slick-prev,
.js-slide_modal .slick-next,
.js-slide_modal .slick-prev {
	appearance: none;
	display: block;
	padding: 0;
	width: 2.7rem;
	height: 2.7rem;
	border-radius: 50%;
	border: 0;
	background: var(--key-color);
	border: 0;
	overflow: hidden;
	text-indent: -99rem;
	position: absolute;
	top: calc(50% - 3.9rem);
	right: -.4rem;
	z-index: 1100;
	cursor: pointer;
}
.js-slide_cont .slick-prev,
.js-slide_modal .slick-prev {
	transform: scale(-1, 1);
	right: auto;
	left: -.4rem;
}
.js-slide_modal .slick-next {
	right: -1.1rem;
}
.js-slide_modal .slick-prev {
	left: -1.1rem;
}
.js-slide_cont .slick-next::after,
.js-slide_cont .slick-prev::after,
.js-slide_modal .slick-next::after,
.js-slide_modal .slick-prev::after {
	content: '';
	display: block;
	width: .6rem;
	height: .6rem;
	border-top: .1rem solid var(--arrow-color2);
	border-right: .1rem solid var(--arrow-color2);
	transform: rotate(45deg);
	position: absolute;
	top: 0;
	bottom: 0;
	right: 1.1rem;
	margin: auto 0;
}
.js-slide_cont .slick-dots {
	display: flex;
	justify-content: center;
	gap: 1rem;
	margin-top: 2.2rem;
}
.js-slide_cont .slick-dots button {
	appearance: none;
	display: block;
	padding: 0;
	width: .8rem;
	height: .8rem;
	border-radius: 50%;
	background: var(--slide-dot-color1);
	border: 0;
	overflow: hidden;
	text-indent: -99rem;
}
.js-slide_cont .slick-dots .slick-active button {
	background: var(--slide-dot-color2);
}
@media only screen and (min-width: 1001px) {
	.js-slide_cont .slick-next,
	.js-slide_cont .slick-prev,
	.js-slide_modal .slick-next,
	.js-slide_modal .slick-prev {
		width: 3.1rem;
		height: 3.1rem;
	}
	.js-slide_cont .slick-next::after,
	.js-slide_cont .slick-prev::after,
	.js-slide_modal .slick-next::after,
	.js-slide_modal .slick-prev::after {
		width: .7rem;
		height: .7rem;
		right: 1.3rem;
	}
	.js-slide_cont .slick-dots button {
		width: .9rem;
		height: .9rem;
	}
}

/*img
----------------------------------------*/
.img_100 {
	padding: 1rem 0;
}
.img_90 {
	padding: 1rem 0;
}
.img_90_inner {
	padding: 0 5%;
}

/*ttl
----------------------------------------*/
.ttl_h1 {
	font-size: 2.5rem;
	letter-spacing: .05em;
	padding: 3rem 0 3rem;
	margin: -.3rem -.2rem -.6rem 0;
	color: var(--key-color);
}
.ttl_h2 {
	font-size: 2.2rem;
	letter-spacing: .05em;
	padding: 3rem 0 1rem;
	margin: -.4rem 0;
	color: var(--key-color);
}
.ttl_h3 {
	font-size: 1.8rem;
	letter-spacing: .05em;
	padding: 3rem 0 1rem;
	margin: -.3rem 0;
	color: var(--key-color);
}
.ttl_h1 h1,
.ttl_h2 h2,
.ttl_h3 h3 {
	padding: 0 3.8462%;
	font-family: "Noto Serif JP", serif;
	font-weight: 400;
}
@media only screen and (min-width: 1001px) {
	.ttl_h1 {
		letter-spacing: 0;
		padding: 3rem 0 3rem;
		margin: -.8rem -.2rem -.6rem 0;
	}
	.ttl_h2 {
		letter-spacing: 0;
		margin: -.6rem 0;
	}
	.ttl_h3 {
		letter-spacing: 0;
		margin: -.6rem 0 -.2rem;
	}
	.ttl_h1 h1,
	.ttl_h2 h2,
	.ttl_h3 h3 {
		padding: 0 5%;
	}
}

/*txt
----------------------------------------*/
.txt {
	font-size: 1.3rem;
	line-height: 1.9231;
	letter-spacing: .05em;
	margin: -.3rem 0 0;
	padding: 1rem 0;
}
.txt_inner {
	padding: 0 5%;
}

/*cont_block
----------------------------------------*/
.cont_block {
	padding: 1rem 0;
}
.cont_block_inner {
	padding: 0 5%;
}
.cont_block figure {
	margin-bottom: 1.6rem;
}
.cont_block_ttl {
	font-family: "Noto Serif JP", serif;
	font-weight: 400;
	font-size: 1.6rem;
	letter-spacing: .05em;
	line-height: 1.5625;
	margin-bottom: .7rem;
}
.cont_block p {
	font-size: 1.3rem;
	line-height: 1.9231;
	letter-spacing: .05em;
	margin-bottom: 2.2rem;
}
.cont_block_btn {
	display: block;
	border: .1rem solid var(--key-color);
	border-radius: .5rem;
	text-align: center;
	font-size: 1.3rem;
	letter-spacing: .1em;
	font-weight: 500;
	padding: 1.9rem 4rem 2rem;
	color: var(--key-color);
}
.cont_block_btn::before {
	content: '';
	display: block;
	width: 2rem;
	height: 2rem;
	border-radius: 50%;
	background: var(--key-color);
	position: absolute;
	top: 0;
	bottom: 0;
	right: 1.3rem;
	margin: auto 0;
}
.cont_block_btn::after {
	content: '';
	display: block;
	width: .4rem;
	height: .4rem;
	border-top: .1rem solid var(--arrow-color2);
	border-right: .1rem solid var(--arrow-color2);
	transform: rotate(45deg);
	position: absolute;
	top: .1rem;
	bottom: 0;
	right: 2.1rem;
	margin: auto 0;
}

/*cont_slide
----------------------------------------*/
.cont_slide {
	overflow: hidden;
	padding: 1rem 0;
}
.cont_slide .js-slide_cont {
	width: calc(90% + 2rem);
	margin: 0 auto;
	padding-bottom: 2rem;
}
.cont_slide_item {
	padding: 0;
	margin: 0 1rem;
}
.cont_slide_item figure {
	margin-bottom: 1.7rem;
}
.cont_slide_item figure img {
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
}
.cont_slide_item.slick-slide {
	float: left;
}
@media only screen and (min-width: 1001px) {
	.cont_slide .js-slide_cont {
		width: calc(90% + 3rem);
	}
	.cont_slide_item {
		margin: 0 1.5rem;
	}
}

/*col2_block
----------------------------------------*/
.col2_block {
	padding: 1rem 0;
}
.col2_block_inner {
	padding: 0 5%;
}
.col2_block_item:first-child {
	border-top: .1rem solid rgba(163, 148, 131, .5);
	padding-top: 1.9rem;
}
.col2_block_item {
	display: flex;
	padding-bottom: 1.9rem;
	border-bottom: .1rem solid rgba(163, 148, 131, .5);
}
.col2_block_item + .col2_block_item {
	margin-top: 1.9rem;
}
.col2_block_item figure {
	width: 13rem;
}
.col2_block_item figure img {
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
}
.col2_block_box {
	flex: 1;
	padding: .3rem 0 0 1.6rem;
}
.col2_block_ttl {
	font-weight: 400;
	font-family: "Noto Serif JP", serif;
	font-size: 1.5rem;
	letter-spacing: .05em;
	line-height: 1.6154;
	margin-bottom: .6rem;
}
.col2_block_box p {
	font-size: 1.3rem;
	letter-spacing: .05em;
	line-height: 1.6154;
	padding-right: .2rem;
}
.col2_block_link {
	font-size: 1.3rem;
	font-weight: 700;
	letter-spacing: .05em;
	display: block;
	margin-top: .9rem;
	color: var(--key-color);
}
.col2_block_link::before {
	content: '';
	display: block;
	width: 2rem;
	height: 2rem;
	border-radius: 50%;
	position: absolute;
	top: -.1rem;
	right: .1rem;
	background: var(--key-color);
}
.col2_block_link::after {
	content: '';
	display: block;
	width: .4rem;
	height: .4rem;
	border-top: 1px solid var(--arrow-color2);
	border-right: 1px solid var(--arrow-color2);
	transform: rotate(45deg);
	position: absolute;
	top: .7rem;
	right: .9rem;
}
@media only screen and (min-width: 1001px) {
	.col2_block_item:first-child {
		padding-top: 2.2rem;
	}
	.col2_block_item {
		padding-bottom: 2.2rem;
	}
	.col2_block_item figure {
		width: 14.9rem;
	}
	.col2_block_box {
		padding: 1.1rem 0 0 2.4rem;
	}
	.col2_block_ttl {
		margin-bottom: .9rem;
	}
	.col2_block_link {
		margin-top: 1.4rem;
	}
}

/*grid
----------------------------------------*/
.grid {
	padding: 1rem 0;
}
.grid_inner {
	padding: 0 5%;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1.3rem 1.2rem;
}
.grid figure img {
	aspect-ratio: 3 / 2;
	width: 100%;
	object-fit: cover;
}
.grid_ttl {
	font-size: 1.3rem;
	letter-spacing: .05em;
	line-height: 1.6154;
	margin: 1.2rem 0 .3rem;
	color: var(--key-color);
}
.grid p {
	font-size: 1.3rem;
	letter-spacing: .05em;
	line-height: 1.6154;
}
@media only screen and (min-width: 1001px) {
	.grid_inner {
		gap: 2rem 1.2rem;
	}
}

/*slideshow
----------------------------------------*/
.slideshow {
	overflow: hidden;
	padding: 1rem 0;
}
.slideshow_slide {
	width: calc(84.6154% + .3rem);
	margin: 0 auto;
	padding-bottom: 2rem;
}
.slideshow_item {
	margin: 0 .15rem;
}
.slideshow_item.slick-slide {
	float: left;
}
.slideshow_item img {
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
}
.slideshow.square .slideshow_item img {
	aspect-ratio: 1;
}
.slideshow.vertical .slideshow_item img {
	aspect-ratio: 2 / 3;
}
.modal .slideshow_item img {
	aspect-ratio: auto;
}
.js-slide_modal .slick-track {
	display: flex;
	align-items: center;
}
.slideshow figcaption {
	font-size: 1.2rem;
	letter-spacing: .05em;
	margin-top: .6rem;
}
.slideshow .js-slide_cont .slick-next {
	top: 0;
	margin-top: 33.03%;
	right: -1.5rem;
}
.slideshow .js-slide_cont .slick-prev {
	top: 0;
	margin-top: 33.03%;
	left: -1.5rem;
}
.slideshow .js-slide_cont .slick-dots {
	margin-top: 1.8rem;
}
.slideshow.square .js-slide_cont .slick-next,
.slideshow.square .js-slide_cont .slick-prev {
	margin-top: 45.757%;
}
.slideshow.vertical .js-slide_cont .slick-next,
.slideshow.vertical .js-slide_cont .slick-prev {
	margin-top: 70.909%;
}
@media only screen and (min-width: 1001px) {
	.slideshow_slide {
		width: calc(86.6667% + .5rem);
	}
	.slideshow_item {
		margin: 0 .25rem;
	}
}

/*video
----------------------------------------*/
.video_100 {
	padding: 1rem 0;
}
.video_90 {
	padding: 1rem 0;
}
.video_90_inner {
	padding: 0 5%;
}
.video_100 iframe,
.video_90 iframe {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	border: 0;
}
.video_embed {
	width: 100%;
	aspect-ratio: 16 / 9;
	overflow: hidden;
}
.video_100.vertical .video_embed,
.video_90.vertical .video_embed {
	aspect-ratio: 9 / 16;
}
.video_embed iframe {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 100%;
	height: 200%; 
	transform: translate(-50%, -50%);
	opacity: 0;
	transition: opacity .2s;
	pointer-events: none;
}
.video_embed[data-controls="1"] iframe {
	height: calc(100% + 12rem);
	pointer-events: all;
}
.video_embed iframe.is-playing {
	opacity: 1;
}

.custom-volume-control {
	position: absolute;
	bottom: 3.3rem;
	right: 2rem;
	z-index: 20;
	display: flex;
	align-items: center;
	gap: 1rem;
	background: rgba(0, 0, 0, 0.6);
	padding: .8rem 1.2rem;
	border-radius: 20px;
	backdrop-filter: blur(4px);
	opacity: 0;
	visibility: hidden;
	transition: opacity .3s ease, visibility .3s ease;
}
.custom-volume-control.is-visible {
	opacity: 1;
	visibility: visible;
}
.volume-mute-btn {
	background: none;
	border: none;
	color: #fff;
	font-size: 1.8rem;
	cursor: pointer;
	padding: 0;
	line-height: 1;
}
.volume-slider {
	width: 8rem;
	height: .4rem;
	accent-color: #fff;
	cursor: pointer;
}

.video-overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 10;
}
.custom-volume-control.is-visible + .video-overlay {
	pointer-events: none;
}
@media (hover: hover) and (pointer: fine) {
	.video-overlay {
		pointer-events: none !important;
	}
}

/*gallery
----------------------------------------*/
.gallery_thumb {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: .1rem;
	padding: 1rem 0;
}
.gallery_thumb a {
	display: block;
}
.gallery_thumb img {
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
}

/*modal
----------------------------------------*/
.modal {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(255, 255, 255, .95);
	z-index: 3000;
	display: flex;
	justify-content: center;
	align-items: center;
	opacity: 0;
	pointer-events: none;
	transition: opacity .5s;
}
body.modal_open .modal {
	opacity: 1;
	pointer-events: all;
}
.modal_close {
	appearance: none;
	border-radius: 0;
	position: absolute;
	top: 2.9rem;
	right: 2.7rem;
	width: 3.5rem;
	height: 3.5rem;
	border: 0;
	background: none;
}
.modal_close::before,
.modal_close::after {
	content: '';
	display: block;
	width: .1rem;
	height: 3.3rem;
	background: var(--txt-color);
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	margin: auto;
	transform: rotate(45deg);
}
.modal_close::after {
	transform: rotate(-45deg);
}
.modal_inner {
	width: 100%;
	padding: 4rem 0;
}
.modal .slideshow_slide {
	width: calc(90% + .3rem);
}
@media only screen and (min-width: 1001px) {
	.modal_inner {
		max-width: 80%;
		margin: 0 auto;
	}
	.modal .slideshow_item figure {
		width: fit-content;
		margin: 0 auto;
	}
	.modal .slideshow_item img {
		width: 100%;
		max-height: 80vh;
		height: auto;
		width: auto;
		object-fit: contain;
	}
}

/*faq
----------------------------------------*/
.faq {
	padding: 1rem 0;
}
.faq_inner {
	padding: 0 5%;
}
.faq dl {
	border-bottom: .1rem solid rgba(163, 148, 131, .5);
	padding-bottom: .2rem;
}
.faq dt {
	font-family: "Noto Serif JP", serif;
	font-size: 1.4rem;
	letter-spacing: .05em;
	line-height: 1.7857;
	padding: 1.4rem 0 1.55rem 2rem;
	border-top: .1rem solid rgba(163, 148, 131, .5);
	cursor: pointer;
}
.faq dt::before {
	content: 'Q';
	position: absolute;
	top: 1.4rem;
	left: 0;
	color: var(--key-color);
	font-family: "Libre Baskerville", serif;
	font-style: italic;
}
.faq dt::after {
	content: '+';
	font-size: 1.6rem;
	position: absolute;
	top: 1.1rem;
	right: 0;
	color: var(--key-color);
}
.faq dt.open::after {
	content: '-';
	right: .4rem;
	color: var(--key-color);
}
.faq dd {
	font-size: 1.3rem;
	letter-spacing: .05em;
	line-height: 1.6154;
	margin-top: -.8rem;
	padding: 0 0 1.4rem 2rem;
	margin-right: -.5rem;
}
.faq dd::before {
	content: 'A';
	font-size: 1.4rem;
	position: absolute;
	top: -.2rem;
	left: 0;
	font-weight: 700;
	color: var(--key-color);
	font-family: "Libre Baskerville", serif;
	font-style: italic;
}

/*btn
----------------------------------------*/
.btn {
	padding: 1rem 0;
}
.btn_inner {
	padding: 0 5%;
}
.btn_border,
.btn_bg,
.btn_cv {
	display: block;
	border: .1rem solid var(--btn-color1);
	color: var(--btn-color1);
	border-radius: .5rem;
	letter-spacing: .1em;
	font-size: 1.4rem;
	padding: 1.8rem 4rem 1.9rem;
	text-align: center;
	font-weight: 700;
}
.btn_border {
	border-color: var(--btn-color4);
	color: var(--btn-color4);
}
.btn_bg {
	background: var(--btn-color1);
	color: var(--btn-color2);
}
.btn_cv {
	background: var(--btn-color3);
	border-color: var(--btn-color3);
	color: var(--btn-color2);
}
.btn_border::before,
.btn_bg::before,
.btn_cv::before {
	content: '';
	display: block;
	width: 2rem;
	height: 2rem;
	border-radius: 50%;
	background: var(--arrow-color1);
	position: absolute;
	top: 0;
	bottom: 0;
	right: 1.2rem;
	margin: auto 0;
}
.btn_border::before {
	background: var(--btn-color4);
}
.btn_bg::before,
.btn_cv::before {
	background: var(--arrow-color2);
}
.btn_border::after,
.btn_bg::after,
.btn_cv::after {
	content: '';
	display: block;
	width: .4rem;
	height: .4rem;
	border-top: .1rem solid var(--arrow-color2);
	border-right: .1rem solid var(--arrow-color2);
	transform: rotate(45deg);
	position: absolute;
	top: 0;
	bottom: 0;
	right: 2rem;
	margin: auto 0;
}
.btn_bg::after {
	border-top-color: var(--btn-color1);
	border-right-color: var(--btn-color1);
}
.btn_cv::after {
	border-top-color: var(--btn-color3);
	border-right-color: var(--btn-color3);
}
.btn_txt {
	font-family: "Noto Serif JP", serif;
	color: var(--cv-color);
	text-align: center;
	font-size: 1.6rem;
	letter-spacing: .1em;
	padding: .4rem 0 .9rem;
	line-height: 1.6875;
}
.btn_note {
	font-family: "Noto Serif JP", serif;
	color: var(--cv-color);
	text-align: center;
	letter-spacing: .1em;
	line-height: 1.6875;
	margin-top: .8rem;
}
@media only screen and (min-width: 1001px) {
	.btn_border,
	.btn_bg,
	.btn_cv {
		padding: 2.3rem 4.5rem 2.4rem;
	}
	.btn_border::before,
	.btn_bg::before,
	.btn_cv::before {
		right: 1.8rem;
	}
	.btn_border::after,
	.btn_bg::after,
	.btn_cv::after {
		right: 2.6rem;
	}
}

/*html
----------------------------------------*/
.html {
	padding: 1rem 0;
}
.html * {
	max-width: 100%;
}

/*form
----------------------------------------*/
.form {
	padding: 3rem 0;
}
.form_inner {
	padding: 0 5%;
}
.form_ttl {
	font-family: "Noto Serif JP", serif;
	font-weight: 400;
	font-size: 1.8rem;
	padding-bottom: 1.2rem;
	border-bottom: .1rem solid #C6C6C6;
	margin-bottom: 1.7rem;
	color: var(--key-color);
}
.form_txt {
	font-size: 1.3rem;
	letter-spacing: .05em;
	line-height: 1.6154;
	margin-bottom: 2.5rem;
}
.form_required {
	font-size: 1.3rem;
	letter-spacing: .05em;
	color: var(--form-error-color);
}
.form dl {
	margin-top: 1.8rem;
}
.form dt {
	font-size: 1.3rem;
	letter-spacing: .05em;
	margin-bottom: .9rem;
}
.form dt .form_required {
	margin-left: .7rem;
}
.form dd {
	font-size: 1.3rem;
	letter-spacing: .05em;
	margin-bottom: 1.1rem;
}
.form input[type="text"],
.form input[type="email"],
.form input[type="tel"],
.form select,
.form textarea {
	appearance: none;
	background: none;
	border: .1rem solid #C6C6C6;
	border-radius: .5rem;
	width: 100%;
	height: 4rem;
	padding: .5rem 1.3rem;
	font-family: inherit;
}
.form select {
	font-size: 1.2rem;
	letter-spacing: .05em;
	padding-inline: 1rem;
	background: url(../img/icon_select_arrow.svg) no-repeat center right .6rem / 1rem auto;
}
.form input[type="radio"] {
	appearance: none;
	width: 1.5rem;
	height: 1.5rem;
	border: .1rem solid #C6C6C6;
	border-radius: 50%;
	vertical-align: -.2rem;
	margin-right: .9rem;
}
.form input[type="radio"]:checked::after {
	content: '';
	display: block;
	width: .9rem;
	height: .9rem;
	border-radius: 50%;
	background: var(--btn-color3);
	position: absolute;
	top: .2rem;
	left: .2rem;
}
.form ::placeholder,
.form select:has(option:checked[value=""]) {
  color: #C6C6C6;
}
.form select:has(option:checked[value=""]) option {
	color: var(--txt-color);
}
.form textarea {
	height: 13.8rem;
	resize: none;
}
.form_radio {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem 1.7rem;
	padding: .2rem 0 .4rem;
}
.form_radio .wpcf7-radio {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem 1.7rem;
}
.form_col2 {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: .5rem;
}
.form_privacy {
	font-size: 1.2rem;
	letter-spacing: .05em;
	line-height: 1.75;
	margin: 1.7rem 0 0;
}
.form_privacy h3 {
	font-weight: 400;
	margin-bottom: .2rem;
}
.form_submit {
	background: var(--btn-color3);
	border-radius: .5rem;
	margin-top: 3.4rem;
	transition: opacity .3s;
}
.form_submit::before {
	content: '';
	display: block;
	width: 2rem;
	height: 2rem;
	background: var(--btn-color2);
	border-radius: 50%;
	position: absolute;
	top: 0;
	bottom: 0;
	right: 1.3rem;
	margin: auto 0;
	pointer-events: none;
}
.form_submit::after {
	content: '';
	display: block;
	width: .4rem;
	height: .4rem;
	border-top: .1rem solid var(--btn-color3);
	border-right: .1rem solid var(--btn-color3);
	transform: rotate(45deg);
	position: absolute;
	top: .1rem;
	bottom: 0;
	right: 2.1rem;
	margin: auto 0;
	pointer-events: none;
}
.form_submit input[type="submit"] {
	appearance: none;
	width: 100%;
	border: 0;
	background: none;
	color: var(--btn-color2);
	font-family: inherit;
	font-size: 1.4rem;
	letter-spacing: .1em;
	font-weight: 700;
	height: 6rem;
	cursor: pointer;
}
.wpcf7-list-item {
	margin-left: 0;
}
.wpcf7-spinner {
	display: block;
	position: absolute;
	left: 0;
	right: 0;
	top: -2.6rem;
	margin: 0 auto;
}
@media (hover:hover) {
	.form_submit:hover {
		opacity: .6;
	}
}
@media only screen and (min-width: 1001px) {
	.form_ttl {
		padding-bottom: 1.8rem;
		margin-bottom: 1.8rem;
	}
	.form_txt {
		margin-bottom: 3.8rem;
	}
	.form dl {
		margin-top: 2.3rem;
	}
	.form dt {
		margin-bottom: 1rem;
	}
	.form input[type="radio"] {
		width: 1.6rem;
		height: 1.6rem;
		vertical-align: -.3rem;
		margin-right: 1.1rem;
	}
	.form input[type="radio"]:checked::after {
		width: 1rem;
		height: 1rem;
	}
	.form textarea {
		height: 15.8rem;
	}
	.form_radio {
		gap: 1rem 2.2rem;
		padding: .2rem 0 .5rem;
	}
	.form_col2 {
		gap: .7rem;
	}
	.form_privacy {
		margin-top: 1.5rem;
	}
	.form_privacy h3 {
		margin-bottom: .4rem;
	}
	.form_submit {
		margin-top: 2.7rem;
	}
	.form_submit::before {
		right: 1.8rem;
	}
	.form_submit::after {
		right: 2.6rem;
	}
	.form_submit input[type="submit"] {
		height: 7rem;
	}
}

/*float
----------------------------------------*/
.float {
	position: fixed;
	bottom: .5rem;
	left: .5rem;
	right: .5rem;
	z-index: 2000;
}
.float_bnr {
	display: block;
	border-radius: .5rem;
	overflow: hidden;
	box-shadow: 0 .4rem .4rem rgba(0, 0, 0, .25);
	margin-top: .4rem;
}
.float_btn {
	display: block;
	border-radius: .5rem;
	box-shadow: 0 .4rem .4rem rgba(0, 0, 0, .25);
	background: var(--btn-float1);
	color: var(--btn-float2);
	font-size: 1.4rem;
	letter-spacing: .1em;
	font-weight: 700;
	text-align: center;
	margin-top: .4rem;
	padding: 1.95rem 5.5rem;
}
.float_btn::before {
	content: '';
	display: block;
	width: 2rem;
	height: 2rem;
	background: var(--btn-float2);
	border-radius: 50%;
	position: absolute;
	top: 0;
	bottom: 0;
	right: 2.7rem;
	margin: auto 0;
}
.float_btn::after {
	content: '';
	display: block;
	width: .4rem;
	height: .4rem;
	border-top: .1rem solid var(--btn-float1);
	border-right: .1rem solid var(--btn-float1);
	transform: rotate(45deg);
	position: absolute;
	top: .1rem;
	bottom: 0;
	right: 3.5rem;
	margin: auto 0;
}

/*footer
----------------------------------------*/
.footer {
	background: var(--key-color);
	color: #fff;
	padding: 4.3rem 2rem 16rem;
	text-align: center;
}
.footer_logo {
	width: 26.9rem;
	margin: 0 auto 1.1rem;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
	image-rendering: -webkit-optimize-contrast;
	image-rendering: crisp-edges;
}
.footer_address {
	font-size: 1.3rem;
	line-height: 1.9231;
	letter-spacing: .05em;
	margin-bottom: 1.8rem;
}
.footer_tel {
	font-size: 2rem;
	letter-spacing: .05em;
	color: #fff;
}
.footer_time {
	text-align: center;
	font-size: 1.3rem;
	letter-spacing: .05em;
	line-height: 1.9231;
	margin: .9rem 0 2.4rem;
}
.footer .btn_bg {
	font-size: 1.3rem;
	padding: 1.9rem 4rem;
	background: var(--btn-color2);
	color: var(--btn-color1);
}
.footer .btn_bg::before {
	background: var(--btn-color1);
}
.footer .btn_bg::after {
	border-color: var(--btn-color2);
}
.footer_instagram {
	display: flex;
	align-items: center;
	gap: 1.2rem;
	width: fit-content;
	margin: 2rem auto 0;
	color: var(--key-color);
	font-size: 1.3rem;
	letter-spacing: .05em;
	filter: brightness(0) invert(1);
}
.footer_instagram::before {
	content: '';
	display: block;
	width: 1.5rem;
	height: 1.5rem;
	background: url(../img/icon_instagram.svg) no-repeat left top / 100% auto;
}
.footer_link {
	text-align: center;
	font-size: 1.3rem;
	letter-spacing: .05em;
	margin-top: 2.4rem;
}
.footer .copyright {
	font-size: 1.3rem;
	letter-spacing: .05em;
	margin-top: 3rem;
	display: block;
}
@media only screen and (min-width: 1001px) {
	.footer {
		padding: 5rem 2rem;
	}
}