.-x-richtext ul, .-x-richtext ol {
	list-style-position: inside;
}
[data-legal]{
	position:relative;
	--legal-offset-h:attr(data-legal-offset-h px);
	--legal-offset-v:attr(data-legal-offset-v px);
}
[data-legal][data-legal-safe="1"]::after{
	position: absolute;
	opacity: 0.5;
	color: black;
	content: "墨";
	font-size: 16px;
	display: block;
	height: 24px;
	padding-top: 0px;
	background-image: url(/_lib/lc.png);
	background-size: auto 20px;
	background-repeat: no-repeat;
	padding-left: 50px;
	background-position: left top;
}
[data-legal][data-legal-safe="1"]:hover::after {
    position: absolute;
    opacity: 0.5;
    color: black;
    content: attr(data-legal-check-at);
    white-space:nowrap;
    font-size: 11px;
    display: block;
    height: 24px;
    background-image: url(/_lib/lc.png);
    background-size: auto 20px;
    background-repeat: no-repeat;
    padding-top: 15px;
    padding-left: 0px;
    background-position: left top;
}

[data-legal-position="left-top"]::after{
	left:var(--legal-offset-h);
	top:var(--legal-offset-v);
}
[data-legal-position="left-bottom"]::after{
	left:var(--legal-offset-h);
	bottom:var(--legal-offset-v);
}
[data-legal-position="right-top"]::after{
	right:var(--legal-offset-h);
	top:var(--legal-offset-v);
}
[data-legal-position="right-bottom"]::after{
	right:var(--legal-offset-h);
	bottom:var(--legal-offset-v);
}
/*common_css*/
@charset "utf-8";
/** ==============================================
01.共通
============================================== **/
/* -------------------------------------
note
-------------------------------------*/
.note{
	font-size: 14px;
}

@media (max-width: 520px) {
	.note{
		padding-left: 2%;
		font-size: 12px;
	}
}

/* -------------------------------------
tax-note
-------------------------------------*/
.tax-note{
	margin-top: 10px;
	font-size: 12px;
	text-align: right;
}

/* -------------------------------------
maru-bf
-------------------------------------*/
.maru-bf li{
    padding-left: 1.2em;
    text-indent: -1.2em;
}
.maru-bf li+li{
	margin-top: 2px;
}
.maru-bf li::before{
    content: "●";
    margin-right: 0.2em;
	color: var(--c-sub);
}

/* -------------------------------------
diamond-bf
-------------------------------------*/
.diamond-bf{
    padding-left: 1.2em;
    text-indent: -1.2em;
}
.diamond-bf::before{
    content: "◆";
    margin-right: 0.2em;
}
.diamond-bf span{
	display: inline-block;
	padding-left: 3em;
	font-size: 0.7em;
}
.diamond-bf.bg-gray{
	padding: 10px;
	text-indent: 0;
	background: var(--bg-gray);
}
.diamond-bf.bg-green{
	padding: 4px 10px;
	color: #fff;
	text-indent: 0;
	background: var(--c-main80);
}

/* -------------------------------------
zoom-txt
-------------------------------------*/
.zoom-txt{
	display: flex;
	justify-content: center;
	align-items: center;
	gap:4px;
	margin-top: 20px;
	font-size: 12px;
	color: #fff;
	text-align: center;
}
.zoom-txt::before{
    content: "zoom_in";
    font-family: "Material Icons";
	font-size: 2em;
	color: var(--c-sub);
	line-height: 1;
}

/* -------------------------------------
cv-tel-wrap
-------------------------------------*/
.cv-tel-wrap{
	width: min(90%,880px);
	margin: 0 auto;
	padding: 20px;
	background: #fff;
	font-weight: var(--fw-b);
	text-align: center;
}
.cv-tel-wrap a{
	display: block;
	font-size: 1.2em;
	color: var(--c-main);
}

/* -------------------------------------
member-price
-------------------------------------*/
.member-price{
	padding-left: 5px;
	color: var(--c-main);
}

/* -------------------------------------
スライド矢印  splide__arrows
-------------------------------------*/
.splide__arrows.original-customize .splide__arrow,
.splide__arrows.original-customize .splide__arrow:hover:not(:disabled){
	--size:64px;
	width: var(--size);
	height: var(--size);
	background: #Fff;
	opacity: 1;
}
.splide__arrows.original-customize .splide__arrow.splide__arrow--prev{
	left:calc(var(--size)/ -2);
}
.splide__arrows.original-customize .splide__arrow.splide__arrow--next{
	right:calc(var(--size)/ -2);
}
.splide__arrows.original-customize .splide__arrow svg {
	--size:24px;
	width: var(--size);
	height: var(--size);
	fill: var(--gray);
	transition: var(--transition);
}
.splide__arrows.original-customize .splide__arrow.splide__arrow--prev:hover svg{
	transform: scaleX(-1) translateX(7px);
}
.splide__arrows.original-customize .splide__arrow.splide__arrow--next:hover svg{
	transform: translateX(7px);
}

@media (max-width: 520px) {
	.splide__arrows.original-customize .splide__arrow,
	.splide__arrows.original-customize .splide__arrow:hover:not(:disabled){
		--size:45px;
	}
	.splide__arrows.original-customize .splide__arrow.splide__arrow--prev{
		transform: translateX(10px);
	}
	.splide__arrows.original-customize .splide__arrow.splide__arrow--next{
		transform: translateX(-10px);
	}
	.splide__arrows.original-customize .splide__arrow svg {
		--size:18px;
	}
}

/* -------------------------------------
スクロールバー
-------------------------------------*/
.scroll-x{
	padding: 1px 0 10px;
	overflow: auto;
}
.scroll-x .simplebar-track.simplebar-horizontal {
	--height:5px;
	height: var(--height);
	background: var(--bg-gray);
	margin: 0 auto;
}
.scroll-x .simplebar-scrollbar {
	height: var(--height);
	background: var(--c-sub);
	border-radius: 5px;
	top: 0;
}
.scroll-x .simplebar-scrollbar:before{
	display: none;
}

/* -------------------------------------
page-head-slide
-------------------------------------*/
.page-head-slide{
	position: relative;
}
.page-head-slide::after{
	content: "";
	display: block;
	width: 100%;
	height: 100%;
	background: var(--filter);
	position: absolute;
	left: 0;
	top: 0;
	opacity: .5;
	z-index: 2;
}
.page-head-slide img{
	width: 100%;
	aspect-ratio: 5/2;
	object-fit: cover;
}
/* スライドなし */
.page-head-slide.no-slide img{
	aspect-ratio: 5/1;
}

/*  アニメーション */
.page-head-slide li.is-prev img,
.page-head-slide li.is-active img{
	animation: zoomUp 7s linear 0s normal both;
}
@keyframes zoomUp {
	0% {
		transform: scale(1);
	}
	100% {
		transform: scale(1.1);
	}
}

@media (max-width: 520px) {
	.page-head-slide img{
		aspect-ratio: 5/3;
	}
	/* スライドなし */
	.page-head-slide.no-slide img{
		aspect-ratio: 5/2;
	}
}

/* -------------------------------------
page-tit-wrap
-------------------------------------*/
.page-tit-wrap{
	display: flex;
	align-items: flex-start;
	background: var(--bg-gray);
}
.page-tit{
	flex-shrink: 0;
	width: max(40%,400px);
	margin-top: 80px;
	padding: 0 0 10px 8%;
	font-size: 34px;
	line-height: 1.5;
	border-bottom: 1px solid var(--gray_ll);
	z-index: 2;
}
.page-lead{
	width: 64%;
	margin-left: -4%;
	padding: 50px 10% 80px 8%;
	color: #fff;
	background: url(/common/images/bg-ptn_bk_r.webp) repeat right top / 100% auto;

	display: flex;
	align-items: center;
	gap:40px;
}
.page-lead p .tit{
	margin-bottom: 24px;
	font-size: 26px;
}
.page-lead img{
	width: max(10%,100px);
	padding: 10px;
	background: var(--bg-gray);
}
.page-info{
	display: block;
	margin-top: 20px;
	font-size: 0.9em;
}
.page-info em{
	display: inline-block;
	margin-left: 5px;
}

@media (max-width: 520px) {
	.page-tit-wrap{
		flex-direction: column;
	}
	.page-tit{
		width: 80%;
		margin-top: 24px;
		padding: 0 0 10px 7%;
		font-size: min(5.6vw, 30px);
	}
	.page-lead{
		width: 93%;
		margin: 14px 0 0 7%;
		padding: 40px 10% 70px 9%;
		flex-direction: column;
		gap:30px;
	}
	.page-lead p {
		font-size: 14px;
		line-height: 2;
	}
	.page-lead p .tit{
		margin-bottom: 16px;
		font-size: min(4.4vw, 22px);
	}
	.page-lead img{
		width: max(10%,110px);
		padding: 10px 30px;
	}
	.page-info{
		margin-top: 30px;
	}
}

/* -------------------------------------
add-photo1
-------------------------------------*/
.add-photo1{
	width: 100%;
	margin-top: 80px;
}
.add-photo1 img{
	width: 100%;
	aspect-ratio: 2/1;
	object-fit: cover;
}

@media (max-width: 520px) {
	.add-photo1{
		margin-top: 50px;
	}
	.add-photo1 img{
		aspect-ratio: 3/2;
	}
}

/* -------------------------------------
add-photo2
-------------------------------------*/
.add-photo2{
	--row:2;
	--gap:15px;
	width: 100%;
	display: flex;
	gap:var(--gap);
	margin-top: 80px;
}
.add-photo2 img{
	width: 540px;
	align-self: flex-start;
}

@media (max-width: 520px) {
	.add-photo2{
		--gap:2%;
		margin-top: 50px;
	}
	.add-photo2 img{
		width: calc((100% - var(--gap)*calc(var(--row) - 1)) / var(--row));
	}
}

/* -------------------------------------
mixup-overlap-list
-------------------------------------*/
ul.mixup-overlap-list {
	display: flex;
	flex-direction: column;
	gap: 80px;
}
ul.mixup-overlap-list li {
	--overlap: -10%;
	display: flex;
	justify-content: center;
	align-items: center;
}
ul.mixup-overlap-list li figure {
	width: 60%;
	box-shadow: var(--shadow);
}
ul.mixup-overlap-list li figure img {
	width: 100%;
}
ul.mixup-overlap-list li .text {
	width: 50%;
	margin-left: var(--overlap);
	padding: 50px 40px;
	background: rgba(244,244,244,.9);
	z-index: 0;
}
ul.mixup-overlap-list li .text .tit{
	text-align: center;
}

/* てれこ */
ul.mixup-overlap-list li:nth-child(even) {
	flex-flow: row-reverse;
}
ul.mixup-overlap-list li:nth-child(even) .text {
	margin-left: 0;
	margin-right: var(--overlap);
}

/* not-over */
ul.mixup-overlap-list.not-over li {
	align-items: flex-start;
	gap:8%;
}
ul.mixup-overlap-list.not-over li figure {
	width: 54%;
}
ul.mixup-overlap-list.not-over li .text {
	flex: 1;
	width: auto;
	margin:30px 0 0;
	padding: 0;
	background: none;
}
ul.mixup-overlap-list.not-over li .text .tit{
	text-align: left;
}

@media (max-width: 520px) {
	/* mixup-overlap-list */
	ul.mixup-overlap-list {
		gap: 70px;
	}
	ul.mixup-overlap-list li {
		--overlap: -45px;
		flex-direction: column;
		align-items: flex-end;
	}

	ul.mixup-overlap-list li figure {
		width: 100%;
	}
	ul.mixup-overlap-list li .text{
		width: 86%;
		margin: var(--overlap) -7% 0 0;
		padding: 22px 26px 34px;
	}
	ul.mixup-overlap-list li .text .tit{
		text-align: left;
	}
	/* てれこ */
	ul.mixup-overlap-list li:nth-child(even) {
		flex-direction: column;
		align-items: flex-start;
	}
	ul.mixup-overlap-list li:nth-child(even) .text {
		margin-left: -7%;
		margin-right: 0;
	}

	/* not-over */
	ul.mixup-overlap-list.not-over li {
		align-items: flex-start;
		gap:8%;
	}
	ul.mixup-overlap-list.not-over li figure {
		width: 100%;
	}
	ul.mixup-overlap-list.not-over li .text {
		margin:30px 0 0;
	}
}

/* -------------------------------------
mixup-100vw-list
-------------------------------------*/
ul.mixup-100vw-list {
	display: flex;
	flex-direction: column;
	gap: 80px;
}
ul.mixup-100vw-list li {
	display: flex;
	align-items: center;
	flex-flow: wrap;
	gap:6%;
}
ul.mixup-100vw-list li figure {
	width:  min(56%, 1000px);
}
ul.mixup-100vw-list li figure img {
	width: 100%;
}
ul.mixup-100vw-list li .text {
	flex: 1;
	margin-right: 10%;
}
ul.mixup-100vw-list li .text .tit{
	margin-bottom: 20px;
}
/* てれこ */
ul.mixup-100vw-list li:nth-child(even) {
	flex-direction: row-reverse;
}
ul.mixup-100vw-list li:nth-child(even) .text {
	margin-right: 0;
	margin-left: 10%;
}
/* 画像追加 */
ul.mixup-100vw-list li .add-photo1{
	width: 65%;
	margin: 60px auto 80px 4%;
}
ul.mixup-100vw-list li .add-photo2 + .add-photo1{
	margin-top: -40px;
}
ul.mixup-100vw-list li .add-photo2{
	justify-content: flex-end;
	margin: 60px 10% 80px 0;
}
ul.mixup-100vw-list li:nth-child(even) .add-photo1{
	margin: 60px 4% 80px auto;
}
ul.mixup-100vw-list li:nth-child(even) .add-photo2{
	justify-content: flex-start;
	margin: 60px 0 80px 10%;
}
/* align-items */
ul.mixup-100vw-list.start li {
	align-items: flex-start;
}
ul.mixup-100vw-list.end li {
	align-items: flex-end;
}

@media (max-width: 520px) {
	ul.mixup-100vw-list {
		gap: 75px;
	}
	ul.mixup-100vw-list li {
		flex-direction: column;
		align-items: flex-start;
		gap:20px;
	}
	ul.mixup-100vw-list li figure {
		width:  95%;
	}
	ul.mixup-100vw-list li figure img {
		width: 100%;
		aspect-ratio: 3/2;
		object-fit: cover;
	}
	ul.mixup-100vw-list li .text {
		width: 75%;
		margin: 0 auto;
	}
	ul.mixup-100vw-list li .text .tit{
		margin-bottom: 16px;
	}
	ul.mixup-100vw-list li .text .btn{
		margin-right: -6%;
	}
	/* てれこ */
	ul.mixup-100vw-list li:nth-child(even) {
		flex-direction: column;
	}
	ul.mixup-100vw-list li:nth-child(even) figure {
		margin-left: auto;
	}
	ul.mixup-100vw-list li:nth-child(even) .text{
		margin-left: auto;
		margin-right: auto;
	}
	/* 画像追加 */
	ul.mixup-100vw-list li .add-photo1{
		width: 70%;
		margin: 30px auto 20px 1%;
	}
	ul.mixup-100vw-list li .add-photo2 + .add-photo1{
		margin-top: -14px;
	}
	ul.mixup-100vw-list li:nth-child(even) .add-photo1{
		margin: 30px 1% 20px auto;
	}
	ul.mixup-100vw-list li .add-photo2{
		width: 86%;
		justify-content: flex-end;
		margin: 20px 1% 15px auto;
	}
	ul.mixup-100vw-list li:nth-child(even) .add-photo2{
		margin: 20px auto 15px 1%;
	}
	/* align-items */
	ul.mixup-100vw-list.end li {
		align-items: flex-start;
	}
}

/*  -------------------------------------
border-list
-------------------------------------*/
.border-list{
	display: grid;
	grid-template-columns: 1fr;
	gap: 15px;
}
.border-list li{
	display: grid;
	grid-template-columns: 300px 1fr;
	align-items: center;
	gap:5%;
	padding: 20px;
	background: #fff;
	border: 2px solid var(--c-sub);
}

@media (max-width: 520px) {
	.border-list{
		gap: 15px;
	}
	.border-list li{
		grid-template-columns: 100px 1fr;
		align-items: flex-start;
		gap:20px;
		padding: 16px;
	}
}

/*  -------------------------------------
obi-list
-------------------------------------*/
.obi-list li figure:has(+ .text){
	margin-bottom: 10px;
}
.obi-list li .text{
	display: grid;
	grid-template-columns: 1fr;
	gap:10px;
}
.obi-list li .list-obi{
	padding: 10px;
	font-size: 16px;
	color: #fff;
	font-weight: var(--fw-b);
	line-height: 1.2;
	background: var(--c-main);
}
.obi-list li .list-title{
	font-size: 18px;
	font-weight: var(--fw-b);
}
.obi-list li .list-obi span,
.obi-list li .list-title span{
	display: inline-block;
	margin-left: 10px;
	font-size: 0.8em;
}
.obi-list li .list-obi span::before,
.obi-list li .list-title span::before{
	content: "/";
	padding-right: 5px;
}

@media (max-width: 520px) {
	.obi-list li .text{
		gap:6px;
	}
	.obi-list li .list-obi{
		margin-bottom: 4px;
		font-size: 15px;
	}
	.obi-list li .list-title{
		font-size: 16px;
	}
}

/* -------------------------------------
balloon
-------------------------------------*/
.balloon,
[class*="balloon_"]{
	--bg:var(--c-main);
	display: grid;
	grid-template-columns: 1fr;
	margin-left: auto;
	margin-right: auto;
}
:is(.balloon, [class*="balloon_"]) .inner{
	padding: 0.5em 1em;
	color: #fff;
	font-weight: var(--fw-b);
	text-align: center;
	line-height: 1.5;
	background: var(--bg);
}
:is(.balloon, [class*="balloon_"])::after{
	--size:20px;
	content: "";
	display: block;
	width: calc(var(--size)*1.2);
	height: var(--size);
	margin:-1px auto 0;
	clip-path: polygon(0 0, 50% 100%, 100% 0);
	background: var(--bg);
}
/* 色分け */
.balloon_red{
	--bg:var(--red);
}

@media (max-width: 520px) {
	:is(.balloon, [class*="balloon_"]) .inner{
		padding: 0.8em 1em 1em;
	}
	:is(.balloon, [class*="balloon_"])::after{
		--size:14px;
	}
}

/* -------------------------------------
frame
-------------------------------------*/
.frame{
	padding: 20px 26px;
	border: 8px solid var(--c-sub);
}

@media (max-width: 520px) {
	.frame{
		padding: 24px;
		border-width: 5px;
	}
}


/** ==============================================
02.テンプレート
============================================== **/
/* -------------------------------------
fee-dl
-------------------------------------*/
.fee-dl{
	--border:1px solid var(--color);
	display: grid;
	grid-template-columns: 220px auto ;
	border: var(--border);
}
.fee-dl :is(dt,dd){
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 10px;
	font-weight: var(--fw-b);
	text-align: center;
	line-height: 1.5;
}
.fee-dl dt{
	font-size: 18px;
}
.fee-dl dd{
	border-left: var(--border);
}

@media (max-width: 520px) {
	/* fee-dl */
	.fee-dl{
		grid-template-columns: 40% auto ;
	}
	.fee-dl :is(dt,dd){
		flex-direction: column;
	}
	.fee-dl dt{
		font-size: 13px;
	}
	.fee-dl dd,
	.fee-dl dd .members-fee{
		font-size: 14px;
	}
}

/* -------------------------------------
news-list
-------------------------------------*/
.news-list{
	--row:3;
	--gap:40px;
	display: flex;
	flex-wrap: wrap;
	gap: 40px var(--gap);
}
.news-list li{
	width: calc((100% - var(--gap)*calc(var(--row) - 1)) / var(--row));
}
.news-list li a{
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
}
.news-list li figure{
	width: 100%;
	background: var(--bg-gray);
}
.news-list li figure img{
	width: 100%;
	aspect-ratio: 2/3;
	aspect-ratio: 581/818;
	object-fit: contain;
}
.news-list li .content{
	/* flex:1; */
	display: flex;
	flex-wrap: wrap;
}
.news-list li .content time{
	margin-left: 1em;
}
.news-list li .content p{
	width: 100%;
	font-size: 14px;
	line-height: 1.5;
}
.news-list li a:hover .content p{
	color: var(--main-color);
}
.news-list li .content p strong{
	display: block;
	margin: 0.8em 0 0.4em;
	font-size: 1rem;
	font-weight: var(--fw-b);
}

@media screen and (max-width: 520px) {
	.news-list{
		padding: 0 8%;
		gap: 30px;
	}
	.news-list li{
		width: 100%;
	}
	.news-list li a{
		gap: 10px;
	}
	.news-list li .content p{
		font-size: 12px;
	}
}

/* -------------------------------------
top-news-list
-------------------------------------*/
.top-news-list li{
    --after-size:50px;
    border-bottom: var(--border);
}
.top-news-list li a{
    display: block;
    padding: 1.5em 40px 1.5em 0;
    position: relative;
}
.top-news-list li a .detail-cat{
    justify-content: flex-start;
}
.top-news-list li a:hover p{
    text-decoration: underline;
}
.top-news-list li a i.arrow{
	width: 24px;
	height: 50%;
	position: absolute;
	right: 0;
	top: 0;
}
.top-news-list li a i.arrow::before{
	--size:6px;
}

@media (max-width: 520px) {
	.top-news-list{
		padding: 0 5%;
	}
    .top-news-list li a p{
		font-size: 14px;
    }
}

/* -------------------------------------
header / footer 共通
-------------------------------------*/
.hf-main{
    width: min(100%,1100px);
    display: grid;
	grid-template-columns: 370px auto;
    gap:5%;
    margin: 0 auto;
	color: #fff;
}
.hf-main .address{
}
.hf-main .address .hf-logo{
    margin-bottom: 40px;
}.hf-main .address .hf-logo a:hover{
	opacity: var(--opacity);
}
.hf-main .address .hf-logo img{
	width: 170px;
    max-width: 100%;
}
.hf-main .address .hf-tel {
	margin-bottom: 10px;
}
.hf-main .address .hf-tel a{
	font-size: 19px;
}
.hf-main .address .hf-hour span{
	display: block;
}

/* sitemap */
.hf-main ul.sitemap{
	height: 180px;
    column-count: 3;/*列数*/
    column-gap: 10px;/*ブロック要素同士の間隔*/
	column-fill: auto;/* [高さが指定されている場合のみに適用]段組みの高さで折り返すよう前の段に詰めて表示 */
}
.hf-main ul.sitemap li{
    margin-bottom: 12px;
    break-inside: avoid;/*ブロックの途中で改行させない*/
}
.hf-main ul.sitemap li a{
    display: block;
	line-height: 1.5;
}.hf-main ul.sitemap li a:hover{
    text-decoration: underline;
}

/*.hf-btn*/
.hf-btn-wrapper{
	width: 540px;
	display: flex;
	gap:20px;
	margin: 80px 0 60px;
}
.cv-btn{
	width: 100%;
	display: grid;
	place-content: center;
	height: 62px;
	padding: 0 1em;
	color: var(--color);
	font-size: 16px;
	text-align: center;
	line-height: 1.3;
	background: var(--c-main_l);
	transition: var(--transition);
}.cv-btn:hover{
	opacity: var(--opacity);
}

/*.hf-sns*/
.hf-sns{
	display: flex;
	justify-content:flex-end;
	gap: 20px;
	z-index: 2;
}
.hf-sns a i svg{
	width: 38px;
	fill: #848484;
}
.hf-sns a:hover i svg{
	fill: var(--c-main);
}

@media screen and (max-width: 768px) {
    .hf-main{
        grid-template-columns: 1fr;
        gap:30px;
        font-size: 14px;
    }
    .hf-main .address .hf-logo{
        margin-bottom: 35px;
		text-align: center;
    }
	.hf-main .address {
		line-height: 2.2;
	}

	/* sitemap */
	.hf-main ul.sitemap{
		height: auto;
		column-count: 1;
		margin-bottom: 36px;
	}
	.hf-main ul.sitemap li{
		margin-bottom: 12px;
	}
	.hf-main ul.sitemap li a{
		padding: 8px 0;
		font-size: 16px;
	}

	/*.hf-btn*/
	.hf-btn-wrapper{
		width: 100%;
		gap:10px;
		margin: 20px 0 50px;
	}
	.cv-btn{
		height: 58px;
		font-size: 14px;
	}

	/*.hf-sns*/
	.hf-sns{
		justify-content:center;
		gap: 12px;
	}
	.hf-sns a i svg{
		padding: 5px;
	}
}

/* -------------------------------------
header
-------------------------------------*/
header {
	width: 100%;
	padding: 50px 5% 20px;
	position: fixed;
	left: 0;
	top: 0;
	z-index: 1000;
	transition: var(--transition);
}

/* hamburger */
header .hamburger {
	--size:80px;
	display: block;
	width: var(--size);
	height: var(--size);
	color:var(--c-main);
	position: fixed;
	top: 40px;
	left: 5%;
	cursor: pointer;
	transition: all 400ms;
	z-index: 1500;
	transition: var(--transition);
}
header .hamburger span {
	position: absolute;
	width: 50%;
	height: 2px;
	background: #fff;
	transition: all 400ms;
	right: 0;
	left: 0;
	margin: 0 auto;
}
header .hamburger span:nth-child(1) {
	top: 24%;
}
header .hamburger span:nth-child(2) {
	top: 40%;
}
header .hamburger span:nth-child(3) {
	top: 56%;
}
header .hamburger:after{
	display: block;
	margin: -10px auto;
	content: "MENU";
	font-size: 14px;
	color: #fff;
	text-align: center;
	position: absolute;
	left: 0;
	right: 0;
	bottom: 15px;
}
/* menu-open時 */
header.menu-open .hamburger span {
	background: #fff;
}
header.menu-open .hamburger span:nth-child(1) {
	top: 28px;
	transform: rotate(45deg);
}
header.menu-open .hamburger span:nth-child(2) {
	display: none;
}
header.menu-open .hamburger span:nth-child(3) {
	top: 28px;
	transform: rotate(-45deg);
}
header.menu-open .hamburger:after{
	content: "CLOSE";
	color: #fff;
}

/* h-logo */
header .h-logo {
	display: block;
	width: 150px;
	position: absolute;
	left: calc(5% + 100px);
	transition: var(--transition);
}header .h-logo:hover {
	opacity: var(--opacity);
}
header .h-logo img.h-logo-bk{
	display: none;
}

/* h-btn-wrapper */
header .h-btn-wrapper{
	width: max(400px,30%);
	display: flex;
	gap: 20px;
	position: absolute;
	right: 5%;
}
header .h-btn-wrapper .cv-btn{
	height: 46px;
	font-size: 1rem;
	font-weight: var(--fw-b);
}

/* h-menu */
header .h-menu{
	width: 100%;
	height: 100vh;
	background: var(--black);
	opacity: 0;
	overflow: scroll;
	position: absolute;
	top:0;
	left: 0;
	pointer-events: none;
	transition: var(--transition);
	z-index: 1100;
}
header .h-menu .hf-main{
	width: min(90%, var(--base-width));
	margin: 160px auto 0;
}
/* menu-open時 */
header.menu-open .h-menu{
	opacity: 1;
	pointer-events: visible;
}

/* header.scroll */
header.scroll{
	height: 100px;
	padding: 20px 5% 20px;
	background: rgba(17,17,17,.8);
	backdrop-filter: blur(10px);
}
header.scroll .hamburger {
	top: 10px;
}
header.scroll .h-logo{
	width: 110px;
}
header.scroll .cv-btn{
	color: #fff;
	background: var(--c-main);
}

/* scroll & menu-open時 */
header.scroll.menu-open .hamburger span{
	background: #fff;
}
header.scroll.menu-open .hamburger::after{
	color: #fff;
}

@media screen and (max-width: 520px){
	/* -------------------------------------
	header
	-------------------------------------*/
	header {
		padding: 0;
	}

	/* hamburger */
	header .hamburger {
		/* --size:80px; */
		top: 0;
		left: 0;
	}

	header .hamburger span {
		width: 45%;
	}
	header .hamburger span:nth-child(1) {
		top: 25%;
	}
	header .hamburger span:nth-child(2) {
		top: 39%;
	}
	header .hamburger span:nth-child(3) {
		top: 53%;
	}
	header .hamburger:after{
		margin: -10px auto;
		font-size: 12px;
		bottom: 22px;
	}



	/* menu-open時 */
	header.menu-open.scroll_sp .hamburger{
		background: none;
	}

	/* h-logo */
	header .h-logo {
		width: 100px;
		height: 80px;
		display: grid;
		place-items: center;
		padding: 0 15px;
		left: 80px;
		top: 0;
	}

	/* h-btn-wrapper */
	header .h-btn-wrapper{
		display: none;
	}

	/* h-menu */
	header .h-menu{
		height: 100vh;
	}
	header .h-menu .hf-main{
		width: 80%;
		margin-top: 100px;
		padding-bottom: 80px;
	}
	header .h-menu .hf-main .address{
		display: none;
	}

	/* header.scroll */
	header.scroll_sp{
	}
	header.scroll_sp .hamburger{
		background: #fff;
	}
	header.scroll_sp .hamburger span{
		background: var(--color);
	}
	header.scroll_sp .hamburger:after{
		color: var(--color);
	}
	header.scroll_sp .h-logo {
		background: var(--bg-gray);
	}
	header.scroll_sp .h-logo img.h-logo-bk{
		display: block;
	}
	header.scroll_sp .h-logo img.h-logo-white{
		display: none;
	}
	/* menu-open時 */
	header.scroll_sp.menu-open .hamburger span{
		background: #fff;
	}
	header.scroll_sp.menu-open .hamburger:after{
		color: #fff;
	}
}

/* -------------------------------------
フッター
-------------------------------------*/
footer{
    padding: 80px 0;
	background: var(--black);
	overflow: hidden;
}
footer .hf-main {
    position: relative;
    z-index: 2;
}

/* copyright */
.copyright small{
    display: block;
    font-size:12px;
    text-align: center;
    margin-top: -30px;
    margin-left: 480px;
	color: #fff;
}

@media screen and (max-width: 768px) {
    footer{
        width:100%;
        padding: 60px 5% 20px;
    }
    footer::after{
        background-size: calc(120px + 12%) auto;
        background-position: left -5% top;
        top: -120px;
    }
    footer .hf-main ul.sitemap{
        display: none;
    }

    /* copyright */
    .copyright small{
		margin: 30px auto 0;
    }
}


/** ==============================================
TOPページ
============================================== **/
/* #top header .h-logo {
	width: 110px;
	opacity: 0;
	pointer-events: none;
}
#top header.scroll .h-logo {
	opacity: 1;
	transition: all 0.1s 0.3s;
} */

/* -------------------------------------
mv
-------------------------------------*/
.mv{
	--height:max(48vw, 800px);
	width: 100%;
	height: var(--height);
	position: relative;
	overflow: hidden;
}
/* video */
.mv .video{
	width: 100%;
	height: 100%;
	background: url(../video/mv.jpg) no-repeat center/cover;
	overflow: hidden;
}
.mv .video::after{
	content: "";
	width: 100%;
	height: 100%;
	background: var(--color);
	mix-blend-mode: multiply;
	position: absolute;
	left: 0;
	top: 0;
	opacity: .45;
}
.mv .video video{
	min-width: 100%;
	min-height: 100%;
	width: auto;
	height: auto;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
}
.mv .mv-content{
	width: 100%;
	height: 100%;
	display: flex;
	flex-flow: row-reverse;
	justify-content: space-between;
	padding: calc(280px + 4%) 8% 0;
	position: absolute;
	left: 0;
	top: 0;
}
.mv .mv-content p{
	color: #fff;
	font-size: 18px;
	font-weight: var(--fw-b);
}
.mv .mv-content p strong{
	display: block;
	margin-bottom: 0.5em;
	font-size: 2em;
}

@media screen and (max-width: 520px){
	.mv{
		--height:min(84vh, 720px);
		margin-bottom: -1px;
	}
	.mv .mv-content{
		flex-flow: column;
		justify-content: center;
		align-items: center;
		gap:34px;
		padding: 10% 8% 0;
	}
	.mv .mv-content .fig{
		width: 45%;
	}
	.mv .mv-content p{
		font-size: 12px;
		text-align: center;
	}
	.mv .mv-content p strong{
		margin-bottom: 6px;
		font-size: min(5.4vw, 30px);
		line-height: 1.6;
	}
}

/* -------------------------------------
top-コンセプト
-------------------------------------*/
.top-concept-content{
	margin: 0 2% 0 14%;
	display: grid;
	grid-template-columns: auto min(64%,840px);
	gap:8%;
}
.top-concept-content .tit-en{
	font-size: min(calc(12px + 0.7vw),24px);
}
.top-concept-slide li img{
	width: 100%;
}
.top-concept-slide-wrap .splide__arrows.original-customize .splide__arrow.splide__arrow--prev{
	display: none;
}
.top-concept-slide-wrap .splide__arrows.original-customize .splide__arrow.splide__arrow--next{
	right: 48%;
}

@media (max-width: 1300px) {
	.top-concept-content{
		grid-template-columns: auto 54%;
	}
	.top-concept-content .tit-en{
		font-size: min(calc(13px + 0.9vw),24px);
	}
}

@media (max-width: 520px) {
	.top-concept-content{
		margin: 0;
		grid-template-columns: 1fr;
		gap:54px;
	}
	.top-concept-content .text{
		padding: 0 10%;
	}
	.top-concept-content .text .tit-en{
		font-size: min(4.6vw, 21px);
		line-height: 1.7;
	}
	.top-concept-slide-wrap .splide__arrows.original-customize .splide__arrow.splide__arrow--next{
		display: none;
	}
}

/* -------------------------------------
top-わたしたちの強み
-------------------------------------*/

/* -------------------------------------
top-TVCM/movie
-------------------------------------*/
.sec-top-tvcm .tit{
	color: #fff;
	text-align: center;
}
.tvcm .item img{
	width: 100%;
}
.tvcm .item p{
	display: grid;
	align-items: center;
	min-height: 72px;
	padding: 10px 1em;
	font-size: 14px;
	color: #fff;
	font-weight: var(--fw-b);
	line-height: 1.5;
	background: var(--gray_l);
	transition: var(--transition);
}
.tvcm .item:hover p{
	text-decoration: underline;
	background: var(--gray);
}

@media (max-width: 520px) {
	.sec-top-tvcm .w_base{
		width: 76%;
	}
}

/* -------------------------------------
top-サービスのご案内
-------------------------------------*/
/* 無料サービス */
.top-free-service-content{
	margin-top: 80px;
	padding: 60px 0;
}
.free-service-icon-list{
	--row:6;
	--gap:1px;
	display: flex;
	justify-content: center;
	gap:var(--gap);
}
.free-service-icon-list li{
	width: calc((100% - var(--gap)*calc(var(--row) - 1)) / var(--row));
	font-weight: var(--fw-b);
	text-align: center;
}
.free-service-icon-list li img{
	margin: 0 10% 10px;
	border-radius: 50%;
	border: 1px solid var(--c-main_l);
}
.free-service-icon-list li span{
	display: block;
	font-size: 11px;
	line-height: 1.4;
}

@media (max-width: 520px) {
	/* 無料サービス */
	.top-free-service-content{
		margin-top: 70px;
		padding: 50px 0;
	}
	.free-service-icon-list{
		--row:3;
		--gap:1px;
		flex-wrap: wrap;
		gap: 18px var(--gap) ;
		margin: 0 4%;
		font-size: 11px;
	}
	.free-service-icon-list li img{
		margin: 0 15% 6px;
	}
	.free-service-icon-list li span{
		font-size: 8px;
	}
}


/* -------------------------------------
top-天然温泉 風の森での過ごし方
-------------------------------------*/
/* mixup-overlap-list */
.top-enjoy-slide li img{
	width: 100%;
}

.top-enjoy-slide-wrap .splide__arrows.original-customize .splide__arrow{
	top: 120px;
}

@media (max-width: 520px) {
	.top-enjoy-slide-wrap{
		padding: 0 2%;
	}
}

/* -------------------------------------
top-料金・利用のご案内
-------------------------------------*/
.top-fee-content{
	margin: 70px 0;
}
.fee-content .scroll-x + .note{
	margin-top: 10px;
}
/* bath-fee-table */
.bath-fee-table{
	--border:1px solid var(--color);
	width: 100%;
	min-width: 1100px;
	background: #fff;
	border: var(--border);
}
.bath-fee-table :is(th, td){
	padding: 10px;
	font-weight: var(--fw-b);
	text-align: center;
	vertical-align: middle;
	line-height: 1.5;
	border: var(--border);
}
.bath-fee-table th{
	background: var(--bg-gray);
}
.bath-fee-table tr:first-child th:empty{
	width: 300px;
}
.bath-fee-table .week th:not(:empty){
	padding: 8px;
	background: var(--c-sub);
}
.bath-fee-table .price-type th:not(:empty){
	padding: 8px;
}
.bath-fee-table .price-type th.th-member{
	color: var(--c-main);
}
.bath-fee-table th span{
	display: inline-block;
	font-size: 15px;
}
.bath-fee-table td{
	font-size: 1rem;
}

/* members-fee */
.members-fee{
	color: var(--red);
}

/* reserve-fee-dl-wrap */
.reserve-fee-dl-wrap{
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap:2%;
}

/* top-advance-ticket-content */
.top-advance-ticket-content{
	padding: 50px;
}

/* members-fee-dl */
.members-fee-dl{
	grid-template-columns: 660px auto auto;
}
.members-fee-dl dt{
	background: var(--c-sub);
}

/* member-wanted */
.member-wanted{
	padding: 40px;
	background: #fff;
	border: 8px solid var(--c-sub);
}
.wanted-head{
	display: grid;
	grid-template-columns: auto 440px;
	gap:3%;
	margin-bottom: 20px;
}
.wanted-head .tit.green{
	margin-bottom: 20px;
	padding-bottom: 10px;
	border-bottom: 1px solid var(--c-main);
}

@media (max-width: 520px) {
	.top-fee-content{
		margin: 50px 0;
	}
	/* bath-fee-table */
	.bath-fee-table{
		min-width: 100%;
	}
	.bath-fee-table :is(th, td){
		padding: 10px 5px;
		font-size: 13px;
	}
	.bath-fee-table th{
		padding: 0.5em 0.1em;
		font-size: 12px;
	}
	.bath-fee-table th span{
		display: block;
		font-size: 10px;
	}
	.bath-fee-table tr:first-child th:empty{
		width: 88px;
	}
	.bath-fee-table .price-type th:not(:empty){
		padding: 0.5em 0.1em;
		font-size: 10px;
	}
	.bath-fee-table td span{
		padding-left: 1px;
		font-size: 0.9em;
	}
	.bath-fee-table .members-fee{
		display: block;
	}

	/* reserve-fee-dl-wrap */
	.reserve-fee-dl-wrap{
		grid-template-columns: 1fr;
		gap:12px;
	}

	/* top-advance-ticket-content */
	.top-advance-ticket-content{
		padding: 50px 8%;
	}
	.top-members-benefit-content .balloon_red{
		width: 60%;
	}

	/* members-fee-dl */
	.members-fee-dl{
		grid-template-columns: 1fr 1fr;
		grid-template-rows: auto auto;
	}
	.members-fee-dl dt{
		grid-row: 1 / 2;
		grid-column: 1 / 3;
		border-bottom: var(--border);
	}
	.members-fee-dl dd{
		padding: 16px 10px;
	}
	.members-fee-dl dd:first-of-type{
		grid-row: 2 / 3;
		grid-column: 1 / 2;
		border-left: none;
	}
	.members-fee-dl dd:last-of-type{
		grid-row: 2 / 3;
		grid-column: 2 / 3;
	}

	/* member-wanted */
	.member-wanted{
		padding: 24px;
		border-width: 5px;
	}
	.wanted-head{
		grid-template-columns: 1fr;
		gap:20px;
		margin-bottom: 38px;
	}
	.wanted-head .tit{
		font-size: 20px;
		text-align: center;
	}
	.wanted-head .tit.green{
		padding-bottom: 20px;
		font-size: min(4.2vw, 19px);
	}
	.wanted-head figure img{
		padding: 0 8%;
	}
}

/* -------------------------------------
top-お知らせ
-------------------------------------*/
.top-news-content{
    display: grid;
    grid-template-columns: 120px auto;
    gap:12%;
}

@media (max-width: 520px) {
    .top-news-content{
        grid-template-columns: 1fr;
        gap:0;
    }
}

/* -------------------------------------
top-アクセス
-------------------------------------*/
.top-access-content {
	display: grid;
    grid-template-columns: 470px auto;
    gap: 6%;
	margin-left: 14%;
}
.top-access-content .tit-underline{
	margin-bottom: 20px;
}
.top-parking{
	width: fit-content;
	margin-bottom: 30px;
	padding: 10px 2em;
	font-size: 16px;
	color: #fff;
	background: var(--c-main80);
}
.top-access-content .gmap{
	height: 580px;
}

@media (max-width: 520px) {
	.top-access-content {
		grid-template-columns: 1fr;
		gap: 30px;
		margin: 0 6% ;
	}
	.top-access-content .text{
		padding: 0 5%;
	}
	.top-access-content .tit-underline{
		margin-bottom: 20px;
	}
	.top-access-content .diamond-bf{
		margin-bottom: 6px;
	}
	.top-parking{
		margin-bottom: 30px;
		padding: 10px 2em;
		font-size: 15px;
	}
	.top-access-content .gmap{
		height: 60vw;
	}
}

/* -------------------------------------
top-para
-------------------------------------*/
.top-para img{
	width: 100%;
}


/** ==============================================
お問い合わせ
============================================== **/
#contact .page-tit-wrap+ .sec-contact.bg-gray{
	background: none;
}
/* -------------------------------------
フォーム
-------------------------------------*/
.form .smf-form--business .smf-item__col--label {
	min-width: 250px;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	padding: 10px 14px;
	color: #fff;
	font-weight: var(--fw-b);
	background: var(--c-main);
}
.form .smf-form--business .smf-item__description{
	margin: 0;
	padding: 0;
	font-size: 0.8em;
	color: yellow;
}
.form .smf-placeholder+p{
	margin-top: 5px;
}
.form .smf-control-description{
	margin-top: 2px;
	font-size: 0.8em;
}
.form .smf-form--business .smf-item__col--label + .smf-item__col--controls{
	background: #fff;
}
.form .smf-item__col .smf-item__controls .note{
	color: var(--c-main);
}

/* 個人情報保護方針に同意 */
.form .smf-form--business .smf-item.agree-block{
	text-align: center;
	border: none;
}
.form .smf-form--business .smf-item.agree-block .smf-item__col{
	padding-bottom: 0;
}
.form .smf-form .smf-item .smf-text-control__control{
	width: 100%;
}
.form .smf-form--business .smf-item.agree-block p a{
	color: var(--c-main);
	text-decoration: underline;
}

@media screen and (max-width: 520px) {
	form.snow-monkey-form{
		margin-left: -3%;
		margin-right: -3%;
	}
	.form .smf-form--business .smf-item__col.smf-item__col--label{
		justify-content: flex-start;
		padding: 10px;
		line-height: 1.2;
	}
	.form .smf-form--business .require .smf-item__col--label {
		flex-direction: row;
		gap: 12px;
	}
	.form .smf-form--business .smf-item__col.smf-item__col--controls{
		padding: 14px 10px 24px;
	}
}

/** ==============================================
温泉
============================================== **/
/* -------------------------------------
浴場のご紹介
-------------------------------------*/
.service-sub-list .tit span{
	display: inline-block;
}
.service-sub-list .tit span::before{
	content: "/";
	margin: 0 0.5em;
}
.service-sub-list p span{
	display: block;
	margin-top: 26px;
}

@media (max-width: 520px) {
	.service-sub-list li{
		padding-top: 60px;
		position: relative;
	}
	.service-sub-list li .tit{
		position: absolute;
		left: 20px;
		top: 15px;
	}
	.service-sub-list .tit span{
		display: inline-block;
	}
	.service-sub-list li p{
		font-size: 12px;
	}
	.service-sub-list p span{
		margin-top: 14px;
	}
}

/* -------------------------------------
温泉分析書
-------------------------------------*/
.analysis-list {
	border-top: var(--border);
}
.analysis-list li{
	padding: 30px 0;
	font-size: 16px;
	border-bottom: var(--border);
}
.analysis-list li span{
	display: block;
	margin: 10px 0 0 1em;
	font-size: 1rem;
}

@media (max-width: 520px) {
	.analysis-list {
		margin: 0 5%;
	}
	.analysis-list li{
		padding: 20px 0;
	}
	.analysis-list li span{
		margin: 6px 0 0 1em;
		font-size: 14px;
	}
}

/** ==============================================
貸切風呂
============================================== **/
/* -------------------------------------
予約システム
-------------------------------------*/
.family-spa-reserve-content iframe{
	width: 100%;
	height: 400px;
}


/** ==============================================
岩盤浴エリア
============================================== **/
/* -------------------------------------
岩盤浴エリア
-------------------------------------*/
.hot-spa-list li p strong{
	font-weight: var(--fw-b);
	font-size: 1.1em;
	color: var(--c-sub);
}

@media (max-width: 520px) {
	.hot-spa-list li p strong{
		font-size: 1em;
	}
}

/* -------------------------------------
クールダウン・専用休憩スペース
-------------------------------------*/
.relax-list{
	--gap:30px;
	display: flex;
	gap:var(--gap);
}
.relax-list li:first-child{
	width: calc(32% - var(--gap)/2);
}
.relax-list li:last-child{
	width: calc(64% - var(--gap)/2);
}
.relax-list li:last-child figure{
	--row:2;
	--gap: 14px;
	display: flex;
	gap:var(--gap);
}
.relax-list li:last-child img{
	width: calc((100% - var(--gap)*calc(var(--row) - 1)) / var(--row));
}

@media (max-width: 520px) {
	.relax-list{
		--gap:30px;
		flex-direction: column;
	}
	.relax-list li:first-child,
	.relax-list li:last-child{
		width: 100%;
	}
}

/** ==============================================
リラクゼーション
============================================== **/
/* -------------------------------------
ボディケア / エステティック / あかすり
-------------------------------------*/
section.sec-relaxation:first-of-type{
	padding-top: 0;
}
.relaxation-head{
	padding: 90px 0 70px ;
}
.relaxation-head-img{
	--gap:20px;
}

/* menu-list */
.menu-list {
	--border:1px dotted var(--gray);
	border-top: var(--border);
}
.menu-list li{
	display: grid;
	grid-template-columns: auto 250px;
	align-items: center;
	gap: 50px;
	padding: 30px 0;
	border-bottom: var(--border);
}
.menu-list li span{
	display: flex;
	align-items: center;
	gap: 5%;
}
.menu-list li span strong{
	flex-shrink: 0;
	min-width: 250px;
	font-size: 16px;
	font-weight: var(--fw-b);
}
.menu-list li .menu-detail{
	flex: 1;
	font-size: 14px;
}
.menu-list li .menu-price{
	text-align: right;
}
.menu-price .member-price{
	padding-left: 5px;
}

@media (max-width: 520px) {
	.relaxation-head{
		padding: 70px 0 0;
	}
	.relaxation-head .w_base{
		width: 100%;
	}
	.relaxation-head-img{
		--gap:0;
	}
	.relaxation-head-img img{
		width: 50%;
	}
	.menu-content.w90p{
		max-width: 94%;
	}
	/* menu-list */
	.menu-list {
	}
	.menu-list li{
		display: grid;
		grid-template-columns: 1fr;
		gap: 0;
		padding: 20px 0;
	}
	.menu-list li span{
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		gap: 4px;
	}
	.menu-list li span strong{
		font-size: 15px;
	}
	.menu-list li .menu-detail{
		width: 90%;
		font-size: 13px;
	}
}

/* -------------------------------------
ご利用方法
-------------------------------------*/
@media (max-width: 520px) {
	.sec-relaxation-cv.bg-ptn_green{
		padding: 40px 0;
	}
}


/** ==============================================
館内のご案内
============================================== **/
/* -------------------------------------
フロアマップ
-------------------------------------*/
.floormap{
	text-align: center;
}

/* -------------------------------------
館内施設
-------------------------------------*/
.facility-list{
	display: grid;
	grid-template-columns: 1fr;
	gap: 80px;
}
.facility-list > li{
	display: grid;
	grid-template-columns: 420px 1fr;
	align-items: flex-start;
	gap:5%;
}
.facility-list .tit-underline span::before{
	content: "／";
}
.facility-list > li .howto-content{
	margin-top: 30px;
	padding: 30px;
	background: rgba(244,244,244,.1);
}
.facility-list > li .howto-content a{
	color: var(--c-main_l);
}

/* ドリンクスライド */
.drink-slide-wrap{
	margin-top: 40px;
}
.drink-slide li img{
	width: 100%;
}
.drink-slide li p{
	margin-top: 8px;
	padding: 8px 10px 10px;
	line-height: 1;
	color: #fff;
	background: var(--c-main);
}
.drink-slide-wrap .splide__pagination.original-customize{
	position: static;
	justify-content: flex-end;
	margin-top: 10px;
	padding: 0;
}
.drink-slide-wrap .splide__pagination.original-customize .splide__pagination__page{
	--size:4px;
	width: var(--size);
	height: var(--size);
	background: var(--gray);
}
.drink-slide-wrap .splide__pagination.original-customize .splide__pagination__page.is-active{
	transform: scale(1.6);
}
.drink-slide-wrap .splide__arrows.original-customize .splide__arrow.splide__arrow--prev{
	display: none;
}
.drink-slide-wrap .splide__arrows.original-customize .splide__arrow.splide__arrow--next{
	right: 48%;
}

/* アプリダウンロード */
.download-btn-wrap{
	display: flex;
	gap: 10px;
	margin-top: 10px;
}

@media (max-width: 520px) {
	.sec-facility .w_base{
		width: 94%;
	}
	.facility-list{
		gap: 70px;
	}
	.facility-list > li{
		grid-template-columns: 1fr;
		gap:30px;
	}
	.facility-list > li .text{
		margin: 0 7%;
	}
	.facility-list .tit-underline span{
		display: inline-block;
		margin-left: 10px;
	}
	.facility-list > li .howto-content{
		margin: 30px -5% 0;
		padding: 30px 26px;
	}

	/* ドリンクスライド */
	.drink-slide-wrap{
		/* margin-top: 40px; */
	}
	.drink-slide li p{
		font-size: 14px;
	}
	.drink-slide-wrap .splide__arrows.original-customize .splide__arrow.splide__arrow--next{
		display: none;
	}
}

/** ==============================================
料金・利用のご案内
============================================== **/
/* -------------------------------------
入浴料金のご案内
-------------------------------------*/
/* .fee-content{
	margin: 70px 0;
} */
.price-title-diamond{
	margin-top: 30px;
	font-weight: var(--fw-b);
}
/* 前売り券 */
.advance-ticket-content{
	padding: 50px;
}
.advance-ticket-content .lead{
	margin: 0 auto 24px;
	font-size: 16px;
	font-weight: var(--fw-b);
}
/* 営業時間 */
.opening-hours{
	--row:2;
	--gap:50px;
	display: flex;
	flex-wrap: wrap;
	gap: 20px var(--gap);
}
.opening-hours dl{
	width: calc((100% - var(--gap)*calc(var(--row) - 1)) / var(--row));
	display: grid;
	grid-template-columns: 180px auto;
	align-items: center;
	gap:1.2em;
	font-size: 16px;
}
.opening-hours dl dt{
	display: grid;
	place-items: center;
	line-height: 40px;
	background: var(--c-sub);
}
/* メンバーズカード */
.sign-up-block{
	display: grid;
	grid-template-columns: auto 300px;
	align-items: center;
	gap:5%;
}

@media (max-width: 520px) {
	/* .fee-content{
		margin: 70px 0;
	} */
	.price-title-diamond span{
		padding-left: 1em;
	}
	.amenity-list li .list-title span{
		display: block;
	}

	/* 前売り券 */
	.advance-ticket-content{
		padding: 40px 3%;
	}
	.advance-ticket-content .lead{
		margin-bottom:  18px;
		font-size: 15px;
	}
	/* 営業時間 */
	.opening-hours{
		--row:1;
		--gap:0;
		gap: 10px var(--gap);
	}
	.opening-hours dl{
		grid-template-columns: 10em auto;
		gap:1em;
		font-size: 14px;
	}
	.opening-hours dl dt{
		place-items: center left;
		padding-left: 1em;
		line-height: 2.5;
	}
	.opening-hours dl dd span{
		display: inline-block;
		font-size: 0.8em;
	}

	/* メンバーズカード */
	.sign-up-block{
		grid-template-columns: 1fr;
		gap:30px;
	}
	.sign-up-block figure{
		padding: 0 10%;
		text-align: center;
	}
}

/* -------------------------------------
風の森での過ごし方
-------------------------------------*/
.spend-content-wrap{
	display: grid;
	grid-template-columns: 1fr;
	gap: 140px;
}
/* spend-head */
.spend-head-wrap {
	display: flex;
	flex-direction: column;
	gap: 80px;
}
.spend-head-wrap .spend-head {
	display: flex;
	align-items: center;
	flex-flow: wrap;
	gap:6%;
	flex-direction: row-reverse;
}
.spend-head-wrap .spend-head figure {
	width:  min(56%, 1000px);
}
.spend-head-wrap .spend-head figure img {
	width: 100%;
}
.spend-head-wrap .spend-head .text {
	flex: 1;
	margin-left: 10%;
	color: #fff;
}
.spend-head-wrap .spend-head .text .tit{
	margin-bottom: 20px;
}
.spend-head-wrap .spend-head .text .tit span{
	padding-top: 10px;
	border-top: 1px solid #fff;
}

@media (max-width: 520px) {
	.spend-content-wrap{
		gap: 110px;
	}
	.spend-head-wrap {
		gap: 60px;
	}
	.spend-head-wrap .spend-head {
		flex-direction: column;
		align-items: flex-start;
		gap:20px;
	}
	.spend-head-wrap .spend-head figure {
		width:  95%;
	}
	.spend-head-wrap .spend-head figure img {
		width: 100%;
		aspect-ratio: 3/2;
		object-fit: cover;
	}
	.spend-head-wrap .spend-head .text {
		width: 75%;
		margin: 0 auto;
	}
	.spend-head-wrap .spend-head .text .btn{
		margin-right: -6%;
	}
}

/* spend-flow */
ul.spend-flow li{
	counter-increment: num 1;
	align-items: flex-end;
}
ul.spend-flow li .text {
	min-height: 300px;
	margin-bottom: -30px;
	margin-right: 3%;
}
ul.spend-flow li .text strong.tit {
	display: flex;
	align-items: center;
	margin-left:-5px;
	text-align-last: left;
}
ul.spend-flow li .text strong.tit::before {
	content: "0" counter(num) ;
	flex-shrink: 0;
	margin-right: 0.2em;
	margin-top: -0.2em;
	color: var(--c-main80);
	font-size: 2em;
	line-height: 1;
}
ul.spend-flow li .text p{
	margin-left: 10px;
}
ul.spend-flow li .text .btn span{
	width: 330px;
}
/* てれこ */
ul.spend-flow li:nth-child(even) .text {
	margin-left: 3%;
}

@media (max-width: 520px) {
	.spend-content-wrap .w_base:has(ul.spend-flow){
		width: 90%;
	}
	ul.spend-flow {
		margin-top: 40px;
		padding: 30px;
		background: #fff;
	}
	ul.spend-flow li{
		--overlap:-40px;
		align-items: flex-end;
	}
	ul.spend-flow li .text strong.tit {
		font-size: min(4.0vw, 20px);
	}
	ul.spend-flow li .text strong.tit::before {
		margin-right: 0.5em;
		margin-top: 0;
		font-size: 1.6em;
	}
	ul.spend-flow li .text {
		width: 100%;
		min-height: auto;
		margin: 0 auto;
		padding: 24px 5% 0;
		background: none;
	}
	ul.spend-flow li .text strong {
		margin-left:0;
	}
	ul.spend-flow li .text strong::before {
		font-size: 1.8em;
	}
	ul.spend-flow li .text p{
		margin-left: 0;
	}
	ul.spend-flow li .text .btn{
		width: 100%;
	}
	ul.spend-flow li .text .btn span{
		width: 240px;
	}
	/* てれこ */
	ul.spend-flow li:nth-child(even) .text {
		margin-left: auto;
	}
}


/** ==============================================
よくあるご質問/お問い合わせ
============================================== **/
/**-------------------------------------
よくあるご質問
-------------------------------------**/
.faq-content-wrap{
	display: grid;
	grid-template-columns: 1fr;
	gap: 40px;
}
/* faq-list */
.faq-list dl{
	margin-bottom: 16px;
}
.faq-list dt{
	display: flex;
	font-size: 16px;
	font-weight: var(--fw-b);
	cursor: pointer;
	background: var(--bg-gray);
}
.faq-list dt::before{
	--size:60px;
	content: "Q";
	width: var(--size);
	height: var(--size);
	display: grid;
	place-items: center;
	font-size: 1.1rem;
	color: var(--c-main80);
	font-weight: var(--fw-b);
}
.faq-list dt::after{
	--size:3em;
	content: "add";
	font-family: 'Material Icons';
	width: var(--size);
	height: var(--size);
	display: grid;
	place-items: center;
	margin-top: 5px;
	color: var(--c-main);
	font-size: 1.1rem;
	font-weight: var(--fw-b);
}
.faq-list dt.on::after{
	content: "remove";
}
.faq-list dl dt span{
	flex:1;
	padding: 15px 15px 15px 0;
}
.faq-list dd{
	padding: 20px 20px 40px;
	background: #fff;
}

@media screen and (max-width: 520px) {
	/* faq-list */
	.faq-list dl{
		margin-bottom: 16px;
		line-height: 1.5;
	}
	.faq-list dt{
		font-size: 1em;
	}
	.faq-list dt::before{
		--size:48px;
		font-size: 1.1rem;
	}
	.faq-list dt::after{
		--size:2em;
		margin-top: 7px;
		font-size: 1.1rem;
	}
	.faq-list dt span{
		padding: 12px 12px 6px;
	}
	.faq-list dd{
		padding: 15px 20px 24px ;
	}
}

/**-------------------------------------
お問い合わせ
-------------------------------------**/
.contact-tel a{
	display: block;
	font-size: 1.5em;
	font-weight: bold;
}

/** ==============================================
お食事
============================================== **/
/* food-menu-list */
.food-menu-list{
	display: grid;
	grid-template-columns: 1fr;
	gap:30px;
}
.food-menu-list>li{
	display: grid;
	grid-template-columns: 580px auto;
	gap:5%;
	padding: 30px 40px;
	background: #fff;
}
.food-menu-list>li .text{
	margin-top: 16px;
}
.food-menu-list .tit-underline {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	gap:5%
}
.food-menu-list .tit-underline span{
	margin-top: 8px;
	margin-left: auto;
}
.food-menu-list .menu-list {
	--border:none;
	margin-top: 30px;
}
.food-menu-list .menu-list li{
	grid-template-columns: auto 250px;
	gap: 50px;
	padding: 4px 0;
}
.food-menu-list .menu-list li span{
	gap:0.2em;
}
.food-menu-list .menu-list li span::before{
	content: "◆";
	font-size: 0.5em;
}
.food-menu-list .menu-list li .menu-price{
	font-size: 14px;
}

@media (max-width: 520px) {
	/* food-menu-list */
	.food-menu-list{
		gap:20px;
	}
	.food-menu-list>li{
		grid-template-columns: 1fr;
		gap:0;
		padding: 10px;
	}
	.food-menu-list>li .text{
		margin-top: 0;
		padding: 22px 22px 26px;
	}
	.food-menu-list .tit-underline {
		margin-bottom: 20px;
		font-size: min(4.1vw, 18px);
	}
	.food-menu-list .tit-underline span{
		margin-top: 5px;
	}
	.food-menu-list .menu-list {
		margin-top: 20px;
	}
	.food-menu-list .menu-list li{
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		gap: 1px 10px;
	}
	.food-menu-list .menu-list li span{
		flex-direction: row;
		align-items: center;
		font-size: 14px;
	}
	.food-menu-list .menu-list li .menu-price{
		margin-left: auto;
		font-size: 13px;
	}
}

/**-------------------------------------
限定メニュー
-------------------------------------**/
.limited-menu-list.food-menu-list>li{
	grid-template-columns: 380px auto;
	border: 1px solid var(--c-sub);
}

@media (max-width: 520px) {
	.limited-menu-list.food-menu-list>li{
		grid-template-columns: 1fr;
	}
}

/**-------------------------------------
グランドメニュー
-------------------------------------**/
/* restaurant-menu-slide */
.restaurant-menu-slide-wrap{
	margin-top: 70px;
}
.restaurant-menu-slide a>img{
	width: auto;
	height: 100%;
}
.restaurant-menu-slide-wrap .splide__pagination.original-customize{
	position: static;
	justify-content: center;
	margin-top: 10px;
	padding: 0;
}
.restaurant-menu-slide-wrap .splide__pagination.original-customize .splide__pagination__page{
	--size:4px;
	width: var(--size);
	height: var(--size);
	background: var(--c-sub);
}
.restaurant-menu-slide-wrap .splide__pagination.original-customize .splide__pagination__page.is-active{
	transform: scale(1.6);
}
.restaurant-menu-slide-wrap .splide__arrows.original-customize .splide__arrow.splide__arrow--prev{
	left: 20px;
}
.restaurant-menu-slide-wrap .splide__arrows.original-customize .splide__arrow.splide__arrow--next{
	right: 20px;
}

/* スライドなしの場合 */
.restaurant-menu-slide-wrap.splide.is-initialized:not(.is-active) .splide__list{
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap:2%;
}
.restaurant-menu-slide-wrap.splide.is-initialized:not(.is-active) .splide__list img{
	width: auto;
	height: 500px;
}

@media (max-width: 520px) {
	/* restaurant-menu-slide */
	.restaurant-menu-slide-wrap .splide__arrows.original-customize .splide__arrow.splide__arrow--prev,
	.restaurant-menu-slide-wrap .splide__arrows.original-customize .splide__arrow.splide__arrow--next{
		display: none;
	}

	/* スライドなしの場合 */
	.restaurant-menu-slide-wrap.splide.is-initialized:not(.is-active){
		margin-left: 5%;
		margin-right: 5%;
	}
	.restaurant-menu-slide-wrap.splide.is-initialized:not(.is-active) .splide__list{
		align-items: center;
		gap:20px;
	}
	.restaurant-menu-slide-wrap.splide.is-initialized:not(.is-active) .splide__list img{
		height: 300px;
	}
}

/**-------------------------------------
宴会メニュー
-------------------------------------**/
/* party-pop-up */
.party-pop-up{
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap:2%;
	margin-top: 70px;
}
.party-pop-up img{
	width: auto;
	height: 500px;
}

@media (max-width: 520px) {
	.party-pop-up{
		gap:30px;
	}
	.party-pop-up img{
		height: 300px;
	}
}

/* -------------------------------------
楓ダイニングのご予約・お問い合わ
-------------------------------------*/
@media (max-width: 520px) {
	.sec-kaede-cv.bg-ptn_green{
		padding: 40px 0;
	}
	.sec-kaede-cv.bg-ptn_green .note{
		line-height: 1.5;
	}
}

/** ==============================================
お知らせ
============================================== **/
.sec-kanren .news-list{
	--row:4;
}

@media (max-width: 520px) {
	.sec-kanren .news-list{
		--row:2;
		--gap: 20px;
		gap: 30px var(--gap);
		padding: 0 2%;
	}
	.sec-kanren .news-list li{
		width: calc((100% - var(--gap)*calc(var(--row) - 1)) / var(--row));
	}
	.sec-kanren .news-list li .ctgr{
		font-size: 11px;
	}
	.sec-kanren .news-list li time{
		font-size: 10px;
	}
	.sec-kanren .news-list li .content p strong{
		font-size: 14px;
	}
}

/** ==============================================
プライバシーポリシー
============================================== **/
#privacy section h2{
	margin-bottom: 6px;
	font-family: var(--webf);
	font-size: 1.2em;
}
#privacy section p + h2{
	margin-top: 30px;
}
#privacy section p a{
	color: var(--c-main);
	border-bottom: var(--dot);
}/*widget:755f6aee-86fd-4949-a1be-7d7e896535c8*/
/*widget:59e00349-31d4-472c-807f-af2a0ed5c4a5*/
/*widget:940864eb-88b1-422a-b60f-8c3f0eeb70a6*/
/*widget:4f1d9d06-efaa-4a10-b113-2a8e2cce2a45*/
/*widget:3cfcd636-35a2-4d22-a363-26f13a5c3ed3*/
/*widget:6f02b2de-d96c-4748-88b8-98fb93959353*/
/*widget:a4fa7d90-2708-4c29-a7c0-06f359692171*/
/*widget:6bb35986-be74-4414-89e4-2f2340ba7621*/
/*widget:254d5154-faa1-4a5e-bd4d-f0538ce5ad8f*/
/*instance:421*//*instance mediea*/@media screen and (max-width: 520px) {}/*widget:3a60caa8-e323-417b-a044-422b70247f14*/
/*widget:3b8d8202-953b-4841-b6e6-716e160fc675*/
/*widget:762b58cc-ccd0-4e1f-b7ae-09c8e5fa4763*/
/*instance:425*//*layout:1*//*layout:2*//*layout:3*//*layout:4*//*layout:6*/