@charset "UTF-8";
/*
Theme Name: common
*/

/* =BreakPoint
--------------------------------------------------------------
PC and TABLET ( and SP landscape )
@media ( min-width: 768px ){

TABLET ( and SP landscape )
@media ( min-width: 480px ) and ( max-width: 896px ){

SP ( only portrait )
@media ( max-width: 767px ){

--------------------------------------------------------------
*/

/* =Reset
-------------------------------------------------------------- */
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;word-wrap:break-word;overflow-wrap:break-word;}
article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section {display: block;}
table{border-collapse:collapse;border-spacing:0;}
fieldset,img{border:0;}
address,caption,cite,code,dfn,em,th,var{font-style:normal;font-weight:normal;}
li{list-style:none;}
caption,th{text-align:left;}
h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:inherit;}
q:before,q:after{content:'';}
abbr,acronym{border:0;font-variant:normal;}
sup{vertical-align:super;}
sub{vertical-align:text-bottom;}
input,textarea,select,button{font-family:inherit;font-size:inherit;font-weight:inherit;}
input,textarea,select,button{*font-size:100%;}
legend{color:#000;}
img {vertical-align:top;}
input[type="radio"],input[type="checkbox"] {vertical-align: -2px;}
label {cursor: pointer;}


/* =Common
-------------------------------------------------------------- */
body {
	text-align: center;
	line-height: 1;
	-webkit-text-size-adjust: 100%;
	position: relative;
	font-feature-settings: "palt"
}
@media (hover){
	a, a img, input[type="submit"], input[type="reset"], svg * {
		transition-property: color, background-color, background, border-color, fill, opacity;
		transition-duration: .3s;
	}
}
a img:hover, input[type="submit"]:hover, input[type="reset"]:hover, button:hover {
	opacity: 0.7;
}
img {
	max-width: 100%;
	height: auto;
}
input[type="submit"],input[type="reset"] {
	-webkit-appearance: none;
}

/* =Styles 
-------------------------------------------------------------- */
body {
	font-family: "Noto Serif", serif;
	font-optical-sizing: auto;
	font-style: normal;
	color: var(--black);
	font-weight: 500;
	background: #F0EEE9;
	text-align: left;
	overflow-x: hidden;
	letter-spacing: 0.02em;
	position: relative;
}
a {
	text-decoration: none;
	color: #000;
	cursor: pointer;
}
.en {
	font-family: "Marcellus", serif;
	font-weight: 400;
	font-style: normal;
}
.fw400 {
	font-weight: 400;
}

@media ( min-width: 1060px ){
	.sptab {
		display: none !important;
	}
}
@media ( min-width: 768px ){
	body {
		font-size: min(14px, calc(14 / var(--width) * 100vw));
	}
	.sp {
		display: none !important;
	}
	.inner {
		max-width: min(1140px, calc(1140 / var(--width) * 100vw));
		padding: 0 min(70px, calc(70 / var(--width) * 100vw));
		margin: 0 auto;
	}
}
@media ( max-width: 1200px ){
	.pc {
		display: none !important;
	}
}
@media ( max-width: 767px ){
	body {
		font-size: 3.482vw;
	}
	.pc,
	.pctab {
		display: none !important;
	}
	.inner {
		padding: 0 4.975vw;
	}
}
:root {
	--width: 1280;
	--black: #333;
	--gold: #997F4F;
	--gray: #999;
	--light_brown: #E5E1D9;
}

/* =共通
-------------------------------------------------------------- */
.btn {
	background: var(--black);
	color: #fff;
	letter-spacing: 0.12em;
	display: flex;
	align-items: center;
    justify-content: center;
    transition-duration: .3s;
}
.sec_tit .en_tit {
	letter-spacing: 0.05em;
}
.sec_tit .jp_tit {
	color: var(--gold);
	letter-spacing: 0.03em;
	font-weight: 400;
}
p.lead {
	line-height: 2;
}
@media ( min-width: 768px ){
	.sec_tit {
		margin-bottom: min(50px, calc(50 / var(--width) * 100vw));
	}
	.sec_tit .en_tit {
		font-size: min(36px, calc(36 / var(--width) * 100vw));
		margin-bottom: min(22px, calc(22 / var(--width) * 100vw));
	}
	.sec_tit .jp_tit {
		font-size: min(18px, calc(18 / var(--width) * 100vw));

	}
	.btn:hover {
		background: #fff;
		color: var(--black);
	}
}
@media ( max-width: 767px ){
	.sec_tit {
		margin-bottom: 11.194vw;
	}
	.sec_tit .en_tit {
		font-size: 7.96vw;
		margin-bottom: 6.716vw;
	}
	.sec_tit .jp_tit {
		font-size: 3.482vw;
	}
}
@keyframes fade_in {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}


/* =float_bg
-------------------------------------------------------------- */
@keyframes float_bg {
	from {
		transform: translate3d(0, 0, 0);
	}
	to {
		transform: translate3d(0, -100%, 0);
	}
}
.float_bg {
	position: fixed;
	inset: 0;
	overflow: hidden;
	pointer-events: none;
	z-index: -1;
}
.float_bg .in {
	position: relative;
	aspect-ratio: var(--base-width) / var(--full-height);
	margin-inline: auto;
}
@media ( min-width: 768px ){
	.float_bg .in {
		--base-width: 1280;
		--full-height: 1778;
		max-width: min(1280px, calc(1280 / var(--width) * 100vw));
	}
}
@media ( max-width: 767px ){
	.float_bg .in {
		--base-width: 402;
		--full-height: 762;
	}
}
.float_bg .box {
	--x: 0%;
	--y: 0%;
	--w: 30%;
	--duration: 90s;
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	animation: float_bg var(--duration) linear .5s infinite;
	will-change: transform;
}
.float_bg .box1 { --delay: 0s; }
.float_bg .box2 { --delay: .25s; }
.float_bg .box3 { --delay: .5s; }
.float_bg .box4 { --delay: .75s; }
.float_bg .box5 { --delay: 1s; }
.float_bg .box6 { --delay: 1.25s; }
.float_bg .box7 { --delay: 1.5s; }
.float_bg .box8 { --delay: 1.75s; }
.float_bg .box img {
	position: absolute;
	left: var(--x);
	top: var(--y);
	display: block;
	width: var(--w);
	max-width: none;
	height: auto;
	animation: fade_in 1s ease var(--delay) both;
}
.float_bg .box img.repeat {
	top: calc(var(--y) + 100%);
}
@media ( min-width: 768px ){
	.float_bg .box1 {
		--x: calc(935 / var(--base-width) * 100%);
		--y: 0%;
		--w: calc(301 / var(--base-width) * 100%);
		--duration: 124s;
	}
	.float_bg .box2 {
		--x: calc(550 / var(--base-width) * 100%);
		--y: calc(358 / var(--full-height) * 100%);
		--w: calc(302 / var(--base-width) * 100%);
		--duration: 66s;
	}
	.float_bg .box3 {
		--x: calc(350 / var(--base-width) * 100%);
		--y: calc(608 / var(--full-height) * 100%);
		--w: calc(172 / var(--base-width) * 100%);
		--duration: 100s;
	}
	.float_bg .box4 {
		--x: calc(729 / var(--base-width) * 100%);
		--y: calc(862 / var(--full-height) * 100%);
		--w: calc(172 / var(--base-width) * 100%);
		--duration: 50s;
	}
	.float_bg .box5 {
		--x: 0;
		--y: calc(920 / var(--full-height) * 100%);
		--w: calc(279 / var(--base-width) * 100%);
		--duration: 40s;
	}
	.float_bg .box6 {
		--x: calc(400 / var(--base-width) * 100%);
		--y: calc(1131 / var(--full-height) * 100%);
		--w: calc(302 / var(--base-width) * 100%);
		--duration: 91s;
	}
	.float_bg .box7 {
		--x: calc(816 / var(--base-width) * 100%);
		--y: calc(1177 / var(--full-height) * 100%);
		--w: calc(280 / var(--base-width) * 100%);
		--duration: 60s;
	}
	.float_bg .box8 {
		--x: calc(130 / var(--base-width) * 100%);
		--y: calc(1571 / var(--full-height) * 100%);
		--w: calc(172 / var(--base-width) * 100%);
		--duration: 80s;
	}
}
@media ( max-width: 767px ){
	.float_bg .box1 {
		--x: calc(281 / var(--base-width) * 100%);
		--y: 0%;
		--w: calc(121 / var(--base-width) * 100%);
		--duration: 124s;
	}
	.float_bg .box2 {
		--x: calc(146 / var(--base-width) * 100%);
		--y: calc(146 / var(--full-height) * 100%);
		--w: calc(121 / var(--base-width) * 100%);
		--duration: 66s;
	}
	.float_bg .box3 {
		--x: calc(71 / var(--base-width) * 100%);
		--y: calc(257 / var(--full-height) * 100%);
		--w: calc(61 / var(--base-width) * 100%);
		--duration: 100s;
	}
	.float_bg .box4 {
		--x: calc(237 / var(--base-width) * 100%);
		--y: calc(400 / var(--full-height) * 100%);
		--w: calc(61 / var(--base-width) * 100%);
		--duration: 50s;
	}
	.float_bg .box5 {
		--x: 0;
		--y: calc(389 / var(--full-height) * 100%);
		--w: calc(101 / var(--base-width) * 100%);
		--duration: 40s;
	}
	.float_bg .box6 {
		--x: calc(130 / var(--base-width) * 100%);
		--y: calc(518 / var(--full-height) * 100%);
		--w: calc(121 / var(--base-width) * 100%);
		--duration: 91s;
	}
	.float_bg .box7 {
		--x: calc(265 / var(--base-width) * 100%);
		--y: calc(533 / var(--full-height) * 100%);
		--w: calc(103 / var(--base-width) * 100%);
		--duration: 60s;
	}
	.float_bg .box8 {
		--x: calc(42 / var(--base-width) * 100%);
		--y: calc(691 / var(--full-height) * 100%);
		--w: calc(61 / var(--base-width) * 100%);
		--duration: 80s;
	}
}



/* =fixed_btn
-------------------------------------------------------------- */
.fixed_btn {
	position: fixed;
	z-index: 1;
	animation: fade_in 1.2s ease 3.5s both;
}
@media ( min-width: 768px ){
	.fixed_btn {
		right: min(20px, calc(20 / var(--width) * 100vw));
		bottom: min(20px, calc(20 / var(--width) * 100vw));
	}
	.fixed_btn .btn {
		width: min(170px, calc(170 / var(--width) * 100vw));
		height: min(40px, calc(40 / var(--width) * 100vw));
		box-shadow: min(10px, calc(10 / var(--width) * 100vw)) min(10px, calc(10 / var(--width) * 100vw)) min(30px, calc(30 / var(--width) * 100vw)) 0 rgba(0, 0, 0, 0.20);
	}
}
@media ( max-width: 767px ){
	.fixed_btn {
		left: 4.726vw;
		bottom: 4.975vw;
	}
	.fixed_btn .btn {
		width: 42.288vw;
		height: 9.95vw;
		box-shadow: 0.248vw 0.248vw 4.975vw 0 rgba(0, 0, 0, 0.20);
	}
}


/* =header
-------------------------------------------------------------- */
.header {
	position: fixed;
	inset: 0 0 auto;
	z-index: 1;
} 	
.header .logo {
	margin: 0 auto;
	animation: fade_in 1.2s ease 2.1s both;
	transition: width .3s ease;
} 	
.header .menu-trigger {
    position: fixed;
    content: '';
    top: 0;
    bottom: 0;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 999;
    transition: 0.3s ease-in-out;
}
.header .menu-trigger span {
    position: absolute;
    left: 50%;
    width: 100%;
    height: 1px;
    background-color: #000;
    transform: translateX(-50%);
    transition: all 0.35s ease;
}
.header .menu-trigger span:nth-of-type(1) {
    top: 0;
}
.header .menu-trigger span:nth-of-type(2) {
    bottom: 0;
}
.header .menu-trigger.active span:nth-of-type(1) {
    top: 50%;
    transform: translateX(-50%) rotate(45deg);
}
.header .menu-trigger.active span:nth-of-type(2) {
    bottom: auto;
    top: 50%;
    transform: translateX(-50%) rotate(-45deg);
}
.header .nav_block {
	position: fixed;
	top: 0;
	right: 0;
	width: 100%;
	height: 100dvh;
	background: #F0EEE9;
	z-index: 996;
	box-sizing: border-box;
	text-align: left;
	overflow-y: auto;
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	visibility: hidden;
	opacity: 0;
	transition: opacity .6s ease, visibility .6s ease;
}
.nav_block.open {
	visibility: visible;
	opacity: 1;
}
.header .nav_block .nav ul li,
.header .nav_block .nav > .btn {
	opacity: 0;
	transform: translateY(20px);
	transition: opacity .6s ease, transform .6s ease;
}
.header .nav_block.open .nav ul li,
.header .nav_block.open .nav > .btn {
	opacity: 1;
	transform: translateY(0);
}
.header .nav_block.open .nav ul li:nth-child(1) {
	transition-delay: .1s;
}
.header .nav_block.open .nav ul li:nth-child(2) {
	transition-delay: .2s;
}
.header .nav_block.open .nav ul li:nth-child(3) {
	transition-delay: .3s;
}
.header .nav_block.open .nav ul li:nth-child(4) {
	transition-delay: .4s;
}
.header .nav_block.open .nav ul li:nth-child(5) {
	transition-delay: .5s;
}
.header .nav_block.open .nav ul li:nth-child(6) {
	transition-delay: .6s;
}
.header .nav_block.open .nav > .btn {
	transition-delay: .7s;
}
.header .nav_block .nav ul li a {
	display: block;
}
@media ( min-width: 768px ){
	.header {
		padding-top: min(40px, calc(40 / var(--width) * 100vw));
	}
	.header .logo {
		width: min(140px, calc(140 / var(--width) * 100vw));
	}	
	.header.is-scroll .logo {
		width: min(105px, calc(105 / var(--width) * 100vw));
	}	
	.header .menu-trigger {
	    top: min(40px, calc(40 / var(--width) * 100vw));
	    right: min(40px, calc(40 / var(--width) * 100vw));
	    width: min(25px, calc(25 / var(--width) * 100vw));
	    height: min(8px, calc(8 / var(--width) * 100vw));
	}
	.header .nav_block {
	    text-align: center;
	}
	.header .nav_block .nav {
	    width: min(342px, calc(342 / var(--width) * 100vw));
	}
	.header .nav_block .nav a {
		font-size: min(26px, calc(26 / var(--width) * 100vw));
		transition-duration: .3s;
		margin-bottom: min(50px, calc(50 / var(--width) * 100vw));
	}
	.header .nav_block .nav ul li a:hover {
		opacity: 0.6;
	}
	.header .nav_block .nav a.btn {
		font-size: min(16px, calc(16 / var(--width) * 100vw));
		height: min(60px, calc(60 / var(--width) * 100vw));
	}
}
@media ( max-width: 767px ){
	.header {
		padding-top: 4.975vw;
	}
	.header .logo {
		width: 29.6vw;
	}
	.header.is-scroll .logo {
		width: 22.2vw;
	}	
	.header .menu-trigger {
	    top: 4.975vw;
	    right: 4.975vw;
	    width: 6.218vw;
	    height: 1.99vw;
	}
	.header .nav_block {
		padding: 0 7.462vw;
	}
	.header .nav_block .nav {
	    width: 100%;
	}
	.header .nav_block .nav a {
		font-size: 6.467vw;
		margin-bottom: 12.43vw;
	}
	.header .nav_block .nav a.btn {
		height: 14.92vw;
		font-size: 4vw;
	}
}


/* =kv
-------------------------------------------------------------- */
.kv .inner {
	position: relative;
	display: flex;
}
.kv .inner .txt_box > span {
	display: block;
	animation: fade_in 1.2s ease 2.1s both;
}
.kv .inner .txt_box .ja_txt1 {
	letter-spacing: 0.05em;
}
.kv .inner .txt_box .en_txt {
	letter-spacing: 0.01em;
	line-height: 1.15;
}
.kv .inner .txt_box .ja_txt2 {
	font-weight: 500;
	letter-spacing: 0.02em;
	color: var(--gold);
}
@media ( min-width: 768px ){
	.kv .inner {
		align-items: center;
		max-width: min(1180px, calc(1180 / var(--width) * 100vw));
		min-height: 100svh;
		padding-inline: min(50px, calc(50 / var(--width) * 100vw));
	}
	.kv .inner .txt_box .ja_txt1 {
		margin-bottom: min(18px, calc(18 / var(--width) * 100vw));
		font-size: min(14px, calc(14 / var(--width) * 100vw));
	}
	.kv .inner .txt_box .en_txt {
		font-size: min(50px, calc(50 / var(--width) * 100vw));
	}
	.kv .inner .txt_box .ja_txt2 {
		margin-top: min(20px, calc(20 / var(--width) * 100vw));
		font-size: min(18px, calc(18 / var(--width) * 100vw));
	}
}
@media ( max-width: 767px ){
	.kv .inner {
		align-items: flex-end;
		min-height: 100svh;
		padding-inline: 4.975vw;
		padding-bottom: 19.9005vw;
		box-sizing: border-box;
	}
	.kv .inner::before {
		content: '';
		position: absolute;
		width: 100%;
		height: 82.5vw;
		bottom: 0;
		left: 0;
		background: linear-gradient(180deg, rgba(240, 238, 233, 0) 0%, rgba(240, 238, 233, .89) 40%, rgba(240, 238, 233, .76) 100%);
		z-index: -1;
	}
	.kv .inner .txt_box > span {
		display: block;
	}
	.kv .inner .txt_box .ja_txt1 {
		margin-bottom: 4.4776vw;
		font-size: 3.4826vw;
	}
	.kv .inner .txt_box .en_txt {
		font-size: 8.4577vw;
	}
	.kv .inner .txt_box .ja_txt2 {
		margin-top: 4.2289vw;
		font-size: 4.4776vw;
	}
}
.container {
	margin-top: -1px;
	background-color: rgba(240, 238, 233, 1);
}
.scroll_guide {
	position: absolute;
	width: 1px;
	bottom: 0;
	left: calc(50% - 1px);
	height: min(70px, calc(70 / var(--width) * 100vw));
	overflow: hidden;
	background-color: rgba(0, 0, 0, .2);
}
.scroll_guide::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: min(40px, calc(40 / var(--width) * 100vw));
	background-color: #997F4F;
	animation: scroll_guide 2s ease-in-out infinite;
}
@keyframes scroll_guide {
	0% {
		transform: translateY(-40px);
	}
	40%,
	60% {
		transform: translateY(0);
	}
	100% {
		transform: translateY(70px);
	}
}
@media ( max-width: 767px ){
	.scroll_guide {
		display: none;
	}
}


/* =about
-------------------------------------------------------------- */
.about {
	margin-top: -1px;
}
@media ( min-width: 768px ){
	.about {
		padding-block: min(305px, calc(305 / var(--width) * 100vw)) min(190px, calc(190 / var(--width) * 100vw));
		background: linear-gradient(180deg, rgba(240, 238, 233, 0) 0%, rgba(240, 238, 233, 0.55) 40%, rgba(240, 238, 233, 1) 100%);
	}
	.about .lead {
		width: min(580px, calc(580 / var(--width) * 100vw));
	}
}	
@media ( max-width: 767px ){
	.about {
		padding-block: 33.8308vw 73.88vw;
		background: linear-gradient(180deg, rgba(240, 238, 233, .76) 0%, rgba(240, 238, 233, .89) 40%, rgba(240, 238, 233, 1) 100%);
	}
}

/* =features
-------------------------------------------------------------- */
.features {
	text-align: center;
}
.features .detail_box ol li {
	position: relative;
	box-sizing: border-box;
	opacity: 0;
	transform: translateY(50px);
	transition: opacity .8s ease, transform .8s ease;
}
.features .detail_box ol li .point_wrap {
	position: absolute;
	background: var(--gold);
	color: #fff;
	display: flex;
	align-items: center;
    justify-content: center;
    flex-direction: column;
}
.features .detail_box ol li .second_tit {
	font-weight: 700;
}
.features .detail_box ol li p {
	text-align: left;
	line-height: 1.8;
}
.features .detail_box ol li.is-show {
	opacity: 1;
	transform: translateY(0);
}
.features .detail_box ol li .point_wrap {
	opacity: 0;
	transform: translateY(20px);
	transition: opacity .6s ease, transform .6s ease;
}
.features .detail_box ol li .point_wrap.is-show {
	opacity: 1;
	transform: translateY(0);
}
@media ( min-width: 768px ){
	.features {
		padding: min(80px, calc(80 / var(--width) * 100vw)) 0 min(100px, calc(100 / var(--width) * 100vw));
	}
	.features .sec_tit {
		margin-bottom: min(117px, calc(117 / var(--width) * 100vw));
	}
	.features .detail_box ol {
		display: flex;
		margin: 0 max(-22.5px, calc(-22.5 / var(--width) * 100vw));
	}
	.features .detail_box ol li {
		width: 33.333%;
		padding: 0 min(22.5px, calc(22.5 / var(--width) * 100vw)) 0;
	}
	.features .detail_box ol li + li {
		border-left: 1px solid #DDD;	
	}
	.features .detail_box ol li .point_wrap {
		left: min(22.5px, calc(22.5 / var(--width) * 100vw));
		top: max(-48px, calc(-48 / var(--width) * 100vw));
		width: min(64px, calc(64 / var(--width) * 100vw));
		height: min(64px, calc(64 / var(--width) * 100vw));
		border-radius: min(999px, calc(999 / var(--width) * 100vw));
		gap: min(3px, calc(3 / var(--width) * 100vw)) 0;
	}
	.features .detail_box ol li .point_wrap .point {
		font-size: min(10px, calc(10 / var(--width) * 100vw));
	}
	.features .detail_box ol li .point_wrap .num {
		font-size: min(24px, calc(24 / var(--width) * 100vw));
	}
	.features .detail_box ol li .img_box {
		margin-bottom: min(31px, calc(31 / var(--width) * 100vw));
	}
	.features .detail_box ol li .second_tit {
		font-size: min(18px, calc(18 / var(--width) * 100vw));
		margin-bottom: min(25px, calc(25 / var(--width) * 100vw));
	}
}
@media ( max-width: 767px ){
	.features {
		padding: 14.925vw 0 24.875vw;
	}
	.features .sec_tit {
		margin-bottom: 22.885vw;
	}
	.features .detail_box ol li {
		padding: 0 0 9.95vw;
		margin-bottom: 9.95vw;
		border-bottom: 1px solid #DDD;	
	}
	.features .detail_box ol li:last-child {
		border-bottom: none;
		margin-bottom: 0;
		padding: 0;
	}
	.features .detail_box ol li .point_wrap {
		left: 0;
		top: -5.223vw;
		width: 15.92vw;
		height: 15.92vw;
		border-radius: 248vw;
		gap: 1.243vw 0;
	}
	.features .detail_box ol li .point_wrap .point {
		font-size: 2.487vw;
	}
	.features .detail_box ol li .point_wrap .num {
		font-size: 5.97vw;
	}
	.features .detail_box ol li .img_box {
		margin-bottom: 6.218vw;
	}
	.features .detail_box ol li .second_tit {
		font-size: 4.477vw;
		margin-bottom: 6.218vw;
	}
	
}

/* =gallery
-------------------------------------------------------------- */
.gallery .tit_wrap .second_tit {
	font-weight: 700;
}
.gallery .detail_box {
	overflow: hidden;
}
.gallery .detail_box .gallery_line {
	width: 100%;
	overflow: hidden;
}
.gallery_track {
	display: flex;
	width: max-content;
}
.gallery .detail_box .gallery_group {
	display: flex;
	flex-shrink: 0;
}
.gallery .detail_box .gallery_group a {
	display: block;
	flex-shrink: 0;
	overflow: hidden;
}
.gallery .detail_box .gallery_group img {
	display: block;
	width: 100%;
	height: auto;
}
/* 上段：左 → 右 */
.gallery .detail_box .gallery_line01 .gallery_track {
	animation: galleryRight 30s linear infinite;
}
/* 下段：右 → 左 */
.gallery .detail_box .gallery_line02 .gallery_track {
	animation: galleryLeft 30s linear infinite;
}
@keyframes galleryLeft {
	from {
		transform: translateX(0);
	}
	to {
		transform: translateX(-50%);
	}
}
@keyframes galleryRight {
	from {
		transform: translateX(-50%);
	}
	to {
		transform: translateX(0);
	}
}
@media ( min-width: 768px ){
	.gallery {
		padding: min(80px, calc(80 / var(--width) * 100vw)) 0 min(100px, calc(100 / var(--width) * 100vw));
	}
	.gallery .tit_wrap {
		display: flex;
		align-items: flex-end;
        justify-content: space-between;
        margin-bottom: min(50px, calc(50 / var(--width) * 100vw));
	}
	.gallery .tit_wrap .sec_tit {
		margin-bottom: 0;
	}
	.gallery .tit_wrap .txt_box {
		width: min(500px, calc(500 / var(--width) * 100vw));
	}
	.gallery .tit_wrap .txt_box .second_tit {
		font-size: min(18px, calc(18 / var(--width) * 100vw));
		margin-bottom: min(15px, calc(15 / var(--width) * 100vw));
	}
	.gallery .detail_box .gallery_line01 {
		margin-bottom: min(2px, calc(2 / var(--width) * 100vw));
	}
	.gallery .detail_box .gallery_group a {
		width: min(280px, calc(280 / var(--width) * 100vw));
		margin-right: min(2px, calc(2 / var(--width) * 100vw));
		position: relative;
		display: block;
		overflow: hidden;
		pointer-events: none
	}
	.gallery .detail_box .gallery_group a::after {
		content: "instagramを見る ↗";
		color: #fff;
		display: flex;
		position: absolute;
		inset: 0;
		background: rgba(0, 0, 0, .7);
		opacity: 0;
		transition: opacity .3s ease;
		z-index: 1;
        align-items: center;
        justify-content: center;
	}
	.gallery .detail_box .gallery_group a span {
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
		z-index: 2;
		color: #fff;
		white-space: nowrap;
		opacity: 0;
		transition: opacity .3s ease;
	}
	.gallery .detail_box .gallery_group a:hover::after,
	.gallery .detail_box .gallery_group a:hover span {
		opacity: 1;
	}
	/* ホバーで停止 */
	.gallery .detail_box .gallery_line:hover .gallery_track {
		animation-play-state: paused;
	}
}
@media ( max-width: 767px ){
	.gallery {
		padding: 14.925vw 0 24.875vw;
	}
	.gallery .tit_wrap {
        margin-bottom: 7.462vw;
	}
	.gallery .tit_wrap .txt_box .second_tit {
		font-size: 4.477vw;
		margin-bottom: 5.97vw;
	}
	.gallery .detail_box .gallery_line01 {
		margin-bottom: 0.497vw;
	}
	.gallery .detail_box .gallery_group a {
		width: 47.263vw;
		margin-right: 0.497vw;
	}
}

/* =plan
-------------------------------------------------------------- */
.plan .tbl table {
	border-collapse: separate;
	text-align: center;
	line-height: 1.79;
	min-width: 1140px;
}
.plan .tbl table th {
	background: var(--light_brown);
	border-bottom: 1px solid #D8D4CA;
	box-sizing: border-box;
	text-align: center;
}
.plan .tbl table tr:last-child th {
	border: none;
}
.plan .tbl table td {
	border-top: 1px solid rgba(204, 204, 204, 0.80);
	border-right: 1px solid rgba(204, 204, 204, 0.80);
	box-sizing: border-box;
}
.plan .tbl table tr:last-child td {
	border-bottom: 1px solid rgba(204, 204, 204, 0.80);
	text-align: left;
}
.plan .tbl table tr:last-child td.center {
	text-align: center;
}
.plan .tbl table .tag {
	background: var(--gold);
	color: #fff;
	display: inline-block;
}
.plan .tbl table .plan_name {
	color: var(--gold);
	line-height: 1.6;
	font-weight: 700;
}
.plan .tbl table p {
	line-height: 1.6;
}
.plan .option {
	background: var(--light_brown);
	line-height: 1.6;
}
.plan .option .second_tit {
	color: var(--gold);
	font-weight: 600;
}
@media ( max-width: 1280px ){
	.plan .tbl {
		overflow-x: scroll;
		margin-right: max(-70px, calc(-70 / var(--width) * 100vw));
	}
}
@media ( min-width: 768px ){
	.plan {
		padding: min(80px, calc(80 / var(--width) * 100vw)) 0 min(100px, calc(100 / var(--width) * 100vw));
	}
	.plan .tit_wrap {
		display: flex;
		align-items: flex-end;
        justify-content: space-between;
        margin-bottom: min(50px, calc(50 / var(--width) * 100vw));
	}
	.plan .tit_wrap .sec_tit {
		margin-bottom: 0;
	}
	.plan .tbl {
		font-size: 12px;
		margin-bottom: min(50px, calc(50 / var(--width) * 100vw));
	}
	.plan .tbl table {
		border-radius: 6px;
		overflow: hidden;
	}
	.plan .tbl table th,
	.plan .tbl table td {
		padding: 30px 10px;
	}
	.plan .tbl table tr:first-child td {
		padding: 20px 10px;
	}
	.plan .tbl table th {
		width: 100px;
	}
	.plan .tbl table td {
		width: 174.33px;
	}
	.plan .tbl table tr:first-child td:last-child {
		border-radius: 0 6px 0 0;
	}
	.plan .tbl table tr:last-child td:last-child {
		border-radius: 0 0 6px 0;
	}
	.plan .tbl table .tag {
		padding: 0 5px;
		border-radius: 4px;
		margin-bottom: 10px;
	}
	.plan .tbl table .plan_name {
		font-size: 14px;
	}
	.plan .option {
		border-radius: 6px;
		padding: 20px;
	}
	.plan .option .second_tit {
		margin-bottom: 10px;
	}
	.plan .option p + p {
		margin-top: 10px;
	}
	.plan .option .note {
		font-size: 12px;
	}
}
@media ( max-width: 767px ){
	.plan {
		padding: 14.925vw 0 24.875vw;
	}
	.plan .tit_wrap {
        margin-bottom: 7.462vw;
	}
	.plan .tbl {
		font-size: 2.985vw;
		margin-bottom: 7.462vw;
		padding-right: 4.975vw;;
	}
	.plan .tbl table {
		border-radius: 1.492vw;
		overflow: hidden;
	}
	.plan .tbl table th,
	.plan .tbl table td {
		padding: 7.462vw 2.487vw;
	}
	.plan .tbl table tr:first-child td {
		padding: 4.975vw 2.487vw;
	}
	.plan .tbl table th {
		width: 24.875vw;
	}
	.plan .tbl table td {
		width: 42.537vw;
	}
	.plan .tbl table tr:first-child td:last-child {
		border-radius: 0 1.492vw 0 0;
	}
	.plan .tbl table tr:last-child td:last-child {
		border-radius: 0 0 1.492vw 0;
	}
	.plan .tbl table .tag {
		padding: 0 1.243vw;
		border-radius: 0.995vw;
		margin-bottom: 2.487vw;
	}
	.plan .tbl table .plan_name {
		font-size: 3.482vw;
	}
	.plan .option {
		border-radius: 1.492vw;
		padding: 4.975vw;
	}
	.plan .option .second_tit {
		margin-bottom: 2.487vw;
	}
	.plan .option p + p {
		margin-top: 2.487vw;
	}
	.plan .option .note {
		font-size: 2.985vw;
	}
	
}


/* =access
-------------------------------------------------------------- */
.access .map_box {
	position: relative;
}
.access .map_box iframe {
	display: block;
	width: 100%;
	filter: grayscale(100%);
}
.access .map_box::after {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--gold);
	mix-blend-mode: soft-light;
	pointer-events: none;
}
@media ( min-width: 768px ){
	.access {
		padding: min(80px, calc(80 / var(--width) * 100vw)) 0 min(107px, calc(107 / var(--width) * 100vw));
	}
	.access .sec_tit {
		margin-bottom: min(40px, calc(40 / var(--width) * 100vw));
	}
	.access .fl_wrap {
		display: flex;
		gap: 0 min(158px, calc(158 / var(--width) * 100vw));
	}
	.access .fl_wrap .txt_box {
		width: min(315px, calc(315 / var(--width) * 100vw));
	}
	.access .fl_wrap .map_box,
	.access .fl_wrap .map_box iframe {
		width: min(667px, calc(667 / var(--width) * 100vw));
		height: min(410px, calc(410 / var(--width) * 100vw));;
	}
}
@media ( max-width: 767px ){
	.access {
		padding: 14.925vw 0 3.233vw;
	}
	.access .sec_tit {
		margin-bottom: 10vw;
	}
	.access .fl_wrap .txt_box {
		margin-bottom: 12.437vw;
	}
	.access .fl_wrap .map_box {
		margin: 0 -4.975vw;
	}
	.access .fl_wrap .map_box iframe {
		width: 100%;
		height: 101.99vw;
	}
}

/* =footer
-------------------------------------------------------------- */
.footer ul {
	display: flex;
}
.footer .copy {
	color: var(--gray);
}
@media ( min-width: 768px ){
	.footer {
		padding: min(30px, calc(30 / var(--width) * 100vw));
		display: flex;
		gap: 0 min(30px, calc(30 / var(--width) * 100vw));
	}
	.footer ul {
		gap: 0 min(25px, calc(25 / var(--width) * 100vw));
		font-size: min(12px, calc(12 / var(--width) * 100vw));
	}
	.footer .copy {
		font-size: min(10px, calc(10 / var(--width) * 100vw));
	}
	.footer a:hover {
		opacity: 0.6;
	}
}
@media ( max-width: 767px ){	
	.footer {
		padding: 7.462vw 7.462vw 22vw;
	}
	.footer ul {
		gap: 0 7.462vw;
		font-size: 2.985vw;
		margin-bottom: 7.462vw;
	}
	.footer .copy {
		font-size: 2.487vw;
	}
}

