@charset "utf-8";

@import url('https://fonts.googleapis.com/css2?family=Shippori+Mincho:wght@500;700;800&display=swap');
/*
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@400;700;900&display=swap');
	font-family:'Noto Sans JP' ,sans-serif;
	font-family:'Noto Serif JP' ,serif;
*/



/* ==============================================
	CSS reset
=============================================== */
* ,*:before ,*:after {
	box-sizing:border-box;
	text-size-adjust:100%;
	-webkit-text-size-adjust:100%;
}
.bx-wrapper * {
	backface-visibility:hidden;
	-webkit-backface-visibility:hidden;
}
html ,body ,div ,p ,span ,iframe ,a ,img ,
h1 ,h2 ,h3 ,h4 ,h5 ,h6 ,
dl ,dt ,dd ,ol ,ul ,li ,
form ,label ,
table ,thead ,tbody ,tfoot ,tr ,th ,td ,
blockquote ,q ,pre ,
header ,footer ,nav ,article ,section ,aside {
	margin:0;
	padding:0;
	border:0 none;
	font-size:100%;
	color:inherit;
	font-style:inherit;
	font-weight:inherit;
	text-decoration:inherit;
}

html ,body {
	min-height:100%;
	height:100%;
}

a ,a:link ,a:visited {
}
a:hover {
}

img {
	vertical-align:bottom;
	max-width:100%;
}
ol ,ul ,li {
	list-style:none;
}
table {
	border-collapse:collapse;
	border-spacing:0;
}
blockquote ,q {
	quotes:none;
}
blockquote:before ,blockquote:after
,q:before ,q:after {
	content:'';
	content:none;
}
header ,footer ,nav ,article ,section ,aside {
}


/* =============================================================================================
	common attribute
============================================================================================== */
/*------ Text-Align ------*/
.left   { text-align:left; }
.center { text-align:center; }
.right  { text-align:right; }

/*------ Font-Color ------*/


/*------ Back-Color ------*/
.bg-lightblue {
	background:rgba(204,221,255,0.6);
}
.bg-lightgray {
	background:rgba(204,204,204,0.6);
}


/*------ Font-Size ------*/
.size-ss { font-size:70%; }
.size-s  { font-size:85%; }
.size-n  { font-size:100%; }
.size-l  { font-size:120%; }
.size-ll { font-size:140%; }

/*------ Font-Weight ------*/
.bold	{ font-weight:bold; }
.normal  { font-weight:normal; }



/* ==============================================
	form
=============================================== */
button ,input ,textarea ,select {
	font-size:inherit;
	letter-spacing:1px;
	border:1px solid #666;
	border-radius:3px;
}

input[type="submit"] ,button {
	padding:5px 20px;
}
input:invalid ,
textarea:invalid ,
select:invalid {
	background:#fee;
	border:1px solid #f00;
}

.field-group.flex {
	justify-content:flex-start;
}

.radio {
	padding-left:0.5em;
	padding-right:1em;
}


.datePicker {
	position:relative;
	display:inline-block;
}
.datePicker > input {
	position:relative;
	cursor:pointer;
}
.datePicker:after {
	content:"";
	position:absolute;
	right:0.3em;
	top:50%;
	margin-top:-0.6em;
	display:block;
	width:1.2em;
	height:1.2em;
	background:url(img/calendar.png) 50% 50% no-repeat;
	background-size:contain;
	cursor:pointer;
}

input.widthS {
	width:4em;
}
input.widthMS {
	width:8em;
}
input.widthM {
	width:12em;
}
input.widthL {
	width:20em;
}
textarea {
	width:20em;
	max-width:100%;
	height:5em;
}

.formButton {
	width:100%;
	margin:auto 0.5em;
	padding:0.5em;
	text-align:center;
}



/* ==============================================
	cleafix
=============================================== */
.clearfix:before ,
.clearfix:after {
	display:table;
	content:" ";
}
.clearfix:after {
	clear:both;
}



/* ==============================================
	loading animation
=============================================== */
#loading-filter {
	position:fixed;
	top:0;
	bottom:0;
	left:0;
	right:0;
	background:#000;
	width:100% !important;
	height:100% !important;
	z-index:2000;
}


#loading-icon {
	position:absolute;
	top:0;
	bottom:0;
	left:0;
	right:0;
	width:100%;
	height:100%;
	transition: all 1s ease;
	-webkit-transition: all 1s ease;
}
#loading-icon #loading-glass {
	position:absolute;
	top:50%;
	left:50%;
	display:block;
	width:80px;
	height:80px;
	margin-top:-40px;
	margin-left:-40px;
	z-index:3;
}
#loading-icon:after {
	content:"";
	position:absolute;
	top:50%;
	left:50%;
	display:block;
	width:0px;
	height:0;
	margin-top:0px;
	margin-left:0px;
	border-style:solid;
	border-color:#f06 transparent transparent;
	border-width:0px 0px 0px;
	will-change:margin border;
	-webkit-animation:4s pour 0s ease-out;
	animation:4s pour 0s ease-out;
	z-index:2;
}
@-webkit-keyframes pour {
	from ,17% {
		border-width:0px 0px 0px;
		margin-top:-2px;
		margin-left:0px;
	}
	75% ,to {
		border-width:calc(80px * 0.3) calc(80px * 0.3) 0px;
		margin-top:calc(-80px * 0.3 - 2px);
		margin-left:calc(-80px * 0.3);
	}
}
@keyframes pour {
	from ,17% {
		border-width:0px 0px 0px;
		margin-top:-2px;
		margin-left:0px;
	}
	75% ,to {
		border-width:calc(80px * 0.35) calc(80px * 0.35) 0px;
		margin-top:calc(-80px * 0.35 - 2px);
		margin-left:calc(-80px * 0.35);
	}
}

#loading-shaker {
	position:absolute;
	top:50%;
	left:50%;
	width:100px;
	height:100px;
	margin-top:-160px;
	margin-left:-19px;
}
#loading-shaker img {
	position:relative;
	z-index:2;
	transform:rotateY(180deg);
}
#loading-shaker:after {
	content:"";
	position:absolute;
	top:92px;
	bottom:100%;
	left:17px;
	display:block;
	width:4px;
	height:64px;
	background:#f06;
/*
	box-shadow:0 0 2px #f06,0 0 3px #f06;
*/
	-webkit-animation:4s pour-line 0s infinite ease-out;
	animation:4s pour-line 0s infinite ease-out;
	z-index:1;
}
@-webkit-keyframes pour-line {
	from ,10% {
		top:92px;
		height:0;
	}
	20% {
		top:92px;
		height:64px;
	}
	60% {
		top:92px;
		height:64px;
	}
	75%,to {
		top:156px;
		height:0px;
	}
}
@keyframes pour-line {
	from ,10% {
		top:92px;
		height:0;
	}
	20% {
		top:92px;
		height:64px;
	}
	60% {
		top:92px;
		height:64px;
	}
	75%,to {
		top:156px;
		height:0px;
	}
}



#loading-text {
	position:absolute;
	top:50%;
	left:0;
	width:100%;
	margin-top:40px;
	text-align:center;
	color:#fff;
	display:flex;
	justify-content:center;
}
#loading-text span {
	will-change:margin;
	-webkit-animation:4s bound 0s ease;
	animation:4s bound 0s ease-in-out;
}
@-webkit-keyframes bound {
	from {
		margin-top:0px;
	}
	10% {
		margin-top:-5px;
	}
	20% ,to {
		margin-top:0px;
	}
}
@keyframes bound {
	from {
		margin-top:0px;
	}
	10% {
		margin-top:-5px;
	}
	20% ,to {
		margin-top:0px;
	}
}




/* ==============================================
	notice
=============================================== */
#notice {
	position:fixed;
	top:0;
	bottom:0;
	left:0;
	right:0;
	width:100%;
	height:100%;
	padding:2em;
	background:rgba(0,0,0,0.6);
	display:flex;
	justify-content:center;
	flex-direction:column;
	text-align:center;
	overflow:hidden;
	z-index:1500;
}
#notice-container {
	max-height:calc(100% - 100px);
}
#notice-container img {
	max-height:100%;
}
#notice-button {
	padding-top:40px;
}
#notice-button > span {
	display:inline-block;
	font-size:160%;
	font-weight:bold;
	font-weight:800;
	line-height:1;
	padding:0.5em 2em;
	background:#fff;
	box-shadow:1px 1px 3px #ccc inset ,0 0 3px #000;
	border-radius:1em;
	font-family:serif;
	cursor:pointer;
}
#notice-button > span:hover {
	background:#eef;
	box-shadow:0px 0px 2px #333 inset, 0 0 3px #000
}



/* ==============================================
	scroll top
=============================================== */
#scroll-top {
	position:fixed;
	display:none;
	bottom:0;
	right:0;
	width:62px;
	height:62px;
	padding:1px;
	z-index:1000;
	background:rgba(255,255,255,0.8);
}
#scroll-top .center {
	width:100%;
	height:100%;
	color:#fff;
	background:rgba(35,44,86,0.9);
	text-align:center;
	cursor:pointer;
	display:flex;
	justify-content:center;
	align-items:center;
	line-height:1.2;
}
#scroll-top .center > span {
}

@media screen and (max-width:799px){
	#scroll-top {
		right:calc(50% - 240px);
		bottom:66px;
		width:66px;
		height:66px;
		padding:3px 3px 0;
	}
}



/* ============================================================================================
	instagram
============================================================================================= */


/* =============================================================================================
	common design
============================================================================================== */

/* ==============================================
	body
=============================================== */
button ,input ,textarea ,select ,
html ,body {
	font-family:'Shippori Mincho' ,serif;
	font-size:16px;
	line-height:1.8;
	font-weight:500;
}

body {
	width:100%;
	min-width:1200px;
	position:relative;
	color:#000;
	background:url(images/common/bg.jpg) 50% 0 repeat;
}
body div#bgLayer {
}

.inner-container {
	position:relative;
	width:1200px;
	max-width:100%;
	margin-left:auto;
	margin-right:auto;
}



@media screen and (max-width:799px){
	button ,input ,textarea ,select ,
	html ,body {
		font-size:14px;
		line-height:1.7;
	}

}



/* ==============================================
	title
=============================================== */
.title {
	width:100%;
	padding-bottom:2em;
	color:#000;
	text-align:center;
	line-height:1.4;
	font-weight:bold;
	font-weight:800;
}
.title > span {
	display:block;
}
.title > span.en {
	font-size:240%;
}
.title > span.jp {
	font-size:120%;
}

@media screen and (max-width:799px){
	.title > span.en {
		font-size:180%;
	}
	.title > span.jp {
		font-size:120%;
	}
}



/* ==============================================
	box
=============================================== */
.info-box {
	padding:2em 0;
}
.info-box .info-title {
	padding-bottom:2em;
	text-align:center;
}
.info-box .info-title span {
	font-size:180%;
}

@media screen and (max-width:799px){
	.info-box {
		padding:2em;
	}
	.info-box .info-title span {
		font-size:130%;
	}
}



/* ==============================================
	flex
=============================================== */
.flex {
	display:flex;
	justify-content:center;
	align-items:center;
}
.flex.between {
	justify-content:space-between;
}
.flex.around {
	justify-content:space-around;
}
.flex.stretch {
	align-items:stretch;
}
.flex.wrap {
	flex-wrap:wrap;
}




/* ==============================================
	iframe
=============================================== */
.iframe-outer {
	line-height:1;
	overflow:auto;
	-webkit-overflow-scrolling:touch;
}
.iframe-outer > * {
	display:block;
	width:100%;
	height:100%;
	height:-webkit-fill-available;
}




/* ==============================================
	others
=============================================== */
.sendIP {
	margin-top:1em;
	color:#666;
	font-size:xx-small;
	text-align:right;
}

.nopage {
	padding:5em 0 10em;
	text-align:center;
}







/* ==========================================================================================================================================
	.nav-list
		.nav-cell
			.en
			.jp
=========================================================================================================================================== */
.nav-list {
	display:flex;
	justify-content:center;
	align-items:center;
}
.nav-list > li {
	flex-grow:1;
	padding:0 5px;
}
.nav-list .nav-cell {
	padding:0.3em 0.2em;
	display:flex;
	justify-content:center;
	align-items:center;
	flex-direction:column;
	line-height:1.3;
	letter-spacing:-0.05em;
	border-bottom:2px solid transparent;
	transition: all 0.3s ease;
	-webkit-transition: all 0.3s ease;
}
.nav-list .nav-cell > .en {
	font-size:120%;
	font-weight:bold;
	font-weight:800;
}
.nav-list .nav-cell > .jp {
	font-size:90%;
}

@media screen and (max-width:799px){
	.nav-list#nav_sp {
		flex-direction:column;
	}
	.nav-list#nav_sp > li {
		width:100%;
		padding:0 2em;
	}

	.nav-list#nav_footer {
		padding:0 2em;
		flex-wrap:wrap
	}
	.nav-list#nav_footer > li {
		width:50%;
		padding:0;
	}
	.nav-list#nav_footer .nav-cell {
		padding:0.3em 0.5em;
	}

	.nav-list .nav-cell {
		width:100%;
		padding:0.3em 1em;
		display:grid;
		grid-template-rows:auto auto;
		grid-template-columns:2em auto;
		justify-content:start
	}
	.nav-list .nav-cell > .jp {
		grid-row: 2;
		grid-column: 2;
	}
	.nav-list .nav-cell > .en {
		grid-row: 1;
		grid-column: 2;
	}
	.nav-list .nav-cell:before {
		content:"\025b6";
		color:#369;
		background:#fff;
		border-radius:3px;
		width:1.5em;
		height:1.5em;
		line-height:1.5;
		text-align:center;
		grid-row: 1 / 3;
		grid-column: 1;
	}
}




/* ==========================================================================================================================================
	header#page-top
		#header-container
			#h1.dispPC
				.inner-container
			#haeder
				.inner-container.flex
					#header-logo
					#header-info
						.link-booking
						.shop-time
						.shop-tel
=========================================================================================================================================== */
header {
}

#h1 {
	color:#fff;
	background:#000;
}

#header > .inner-container.flex {
	padding-top:0.5em;
}

#header-logo img{
	height:120px;
}

#header-info.flex {
	padding:0.5em 0;
	flex-direction:column;
	align-items:flex-end;
	line-height:1.3;
}

#header-info .link-booking a {
	display:inline-block;
}
#header-info .link-booking a img {
	filter:sepia(30%) brightness(90%);
}
#header-info .link-booking a:hover img {
	filter:sepia(0) brightness(100%);
}

#header-info .shop-time {
	margin-top:auto;
}
#header-info .shop-tel > a span {
	font-size:160%;
}



/* ==========================================================================================================================================
	nav#nav-top
		#nav-container
			.inner-container
				#nav_pc[.nav-list]
				#header-nav-sp
					li
		input[checkbox]#nav-sp-opener
			div
				#nav_sp[.navlist]
=========================================================================================================================================== */
@media screen and (min-width:800px){
	#nav-top {
		padding:5px 0;
		border-bottom:5px solid #006;
	}
	#nav-container .nav-list {
		padding:0 10px;
	}
	#nav-top .nav-cell {
		height:60px;
	}
	#nav-container .nav-list a.nav-cell:hover {
		border-bottom-color:#333;
	}
}
@media screen and (max-width:799px){
	#nav-top {
		position:fixed;
		top:0;
		left:0;
		right:0;
		width:100%;
		background:rgba(255,255,255,0.8);
		z-index:100;
	}
	#nav-top .inner-container {
		padding:3px 20px;
		width:480px;
	}
	#header-nav-sp.flex {
	}
	#header-nav-sp.flex > li {
	}
	#header-nav-sp.flex > li a {
		display:inline-block;
	}
	#header-nav-sp.flex > li img {
		height:60px;
	}
	#nav-sp-opener + div {
		position:fixed;
		top:calc(60px + 6px);
		right:0;
		padding:0.5em;
		background:rgba(255,255,255,0.9);
		box-shadow:-1px 1px 5px #000;
		z-index:100;
		margin-right:-100%;
		transition: all 0.3s ease;
		-webkit-transition: all 0.3s ease;
		font-size:130%;
	}
	#nav-sp-opener:checked + div {
		margin-right:0;
	}

	#nav_sp.nav-list > li {
		padding:0;
		border-bottom:1px solid #000;
	}
	#nav_sp.nav-list .nav-cell {
		padding-right:2em;
	}
	#nav_sp.nav-list .nav-cell:before {
		background:transparent;
	}
	#nav_sp + .sns-icon-link.flex {
		padding:1em 0 0.5em;
	}
	#nav_sp + .sns-icon-link.flex img {
		border-radius:6px;
		box-shadow:0 0 0 1px #ccc;
	}
}


@media screen and (max-width:799px){
	#nav-bottom {
		position:fixed;
		bottom:0;
		left:0;
		right:0;
		width:100%;
		background:rgba(255,255,255,0.8);
		z-index:100;
	}
	#nav-bottom .inner-container {
		width:480px;
	}
	#footer-nav-sp.flex {
		padding:3px 1.5px;
	}
	#footer-nav-sp.flex li{
		flex-grow:1;
		padding:0 1.5px;
	}
	#footer-nav-sp.flex > li a {
		display:inline-block;
		width:100%;
		padding:15px 0;
		background:rgba(35,44,86,0.9);
		text-align:center;
	}
	#footer-nav-sp.flex > li img {
		height:30px;
	}

}



/* ==========================================================================================================================================
	aside#navbanner-footer
		.inner-container
			ul.flex
				li.flex
					.flex-cell
// default //
						a
							img
							.en
							.ja
// with codes //
						*
=========================================================================================================================================== */
#navbanner-footer {
	padding:2em 0;
}
#navbanner-footer .inner-container {
}
#navbanner-footer ul.flex {
	justify-content:center;
	width:1000px;
	max-width:100%;
	margin:0 auto;
}
#navbanner-footer ul.flex > li.flex {
	padding:5px;
}

#navbanner-footer ul.flex > li.flex a {
	position:relative;
	display:block;
}
#navbanner-footer ul.flex > li.flex a > img {
	filter:grayscale(100%) brightness(90%);
}
#navbanner-footer ul.flex > li.flex a > span {
	position:absolute;
	color:#fff;
	line-height:1.2;
	text-shadow:
			1px 0 3px #000 ,0 1px 3px #000 ,-1px 0 3px #000 ,0 -1px 3px #000
			,1px 1px 3px #000 ,-1px 1px 3px #000 ,1px -1px 3px #000 ,-1px -1px 3px #000;
}
#navbanner-footer ul.flex > li.flex a > span.en {
	top:5px;
	left:10px;
	font-size:200%;
	font-weight:bold;
}
#navbanner-footer ul.flex > li.flex a > span.jp {
	bottom:5px;
	right:10px;
	font-size:120%;
	text-align:right;
}

#navbanner-footer ul.flex > li.flex a:hover img {
	filter:grayscale(0%) brightness(120%);
}


@media screen and (max-width:799px){
	#navbanner-footer ul.flex {
		padding:0 10px;
	}
	#navbanner-footer ul.flex > li.flex a > span.en {
		left:5px;
		font-size:160%;
	}
	#navbanner-footer ul.flex > li.flex a > span.jp {
		right:5px;
	}
}


/* ==========================================================================================================================================
	footer
		#footer-container
			.inner-container
				[.nav-list]
				#footer-info
					.logo
					.text
		#copyright
=========================================================================================================================================== */
footer {
}

#footer-container {
	padding:2em 0;
	color:#fff;
	background:rgba(51,102,153,0.8);
}




#footer-info {
	padding-top:2em;
	text-align:center;
	line-height:1.4;
}
#footer-info .logo img {
	width:360px;
}

#footer-info .data > div {
	padding-top:0.5em;
}
#footer-info .shop-tel {
	font-size:130%;
}
#footer-info .shop-tel span {
	padding-left:0.2em;
	font-size:130%;
}

.sns-icon-link.flex {
	padding-top:2em;
}
.sns-icon-link.flex > li {
	padding:0 0.5em;
}
.sns-icon-link.flex img {
	height:60px;
}




#copyright {
	line-height:3;
	text-align:center;
}
#copyright a {
}
#copyright a:hover {
	text-decoration:underline;
}



@media screen and (min-width:800px){
	#footer-container .nav-list a.nav-cell:hover {
		text-shadow:1px 1px 0 #000 ,0 0 5px #fff ,0 0 10px #fff;
	}
}
@media screen and (max-width:799px){
	footer {
		padding-bottom:65px;
	}
}



/* ==========================================================================================================================================
	main layout
========================================================================================================================================== */
@media screen and (max-width:799px){
	body:not(#indexHtmlBody) main {
		padding-top:70px;
	}
}


/* ==========================================================================================================================================
	section#FV
		#FV-movie
			video

		#FV-base
		#FV-fore.flex
			#FV-fore-panel
				.name
				.area

=========================================================================================================================================== */
#FV {
	position:relative;
}
#FV-container {
	position:relative;
}
@media screen and (max-width:799px){
	#FV {
		padding-top:70px;
	}
}

#FV-base {
	position:absolute;
	top:0;
	bottom:0;
	left:0;
	right:0;
	width:100%;
	height:100%;
	background-position:50% 50%;
	background-repeat:no-repeat;
	background-size:cover;
	-webkit-transition: all 1s ease;
	transition: all 1s ease;
	opacity:0;
	z-index:1;
}

#FV-fore.flex {
	position:absolute;
	top:0;
	bottom:0;
	left:0;
	right:0;
	width:100%;
	height:100%;
	z-index:3;
	-webkit-transition:2s all 0.5s ease;
	transition:2s all 0.5s ease;
	opacity:0;
}
#FV-fore-panel {
	padding:1.6em 2.1em;
	color:#fff;
	background:rgba(0,0,0,0.8);
	text-align:center;
}
#FV-fore-panel > span {
	display:block;
}
#FV-fore-panel > span.name {
	font-size:375%;
	font-weight:bold;
	line-height:1;
}
#FV-fore-panel > span.area {
	font-size:150%;
}
@media screen and (min-width:1200px){
	#FV-fore-panel {
		padding:2.1vw 2.8vw;
	}
	#FV-fore-panel > span.name {
		font-size:5vw;
	}
	#FV-fore-panel > span.area {
		font-size:2vw;
	}
}
@media screen and (min-width:1920px){
	#FV-fore-panel {
		padding:1.8em 2.4em;
	}
	#FV-fore-panel > span.name {
		font-size:600%;
	}
	#FV-fore-panel > span.area {
		font-size:240%;
	}
}
@media screen and (max-width:799px){
	#FV-fore-panel {
		padding:1.5em 2em;
	}
	#FV-fore-panel > span.name {
		font-size:260%;
	}
	#FV-fore-panel > span.area {
		font-size:110%;
	}
}


#FV-movie {
	position:relative;
	padding:2px 0;
	text-align:center;
	line-height:1;
	background:#000;
}
/*
#FV-movie:after {
	content:"";
	position:absolute;
	top:0;
	bottom:0;
	left:0;
	right:0;
	display:block;
	width:100%;
	height:100%;
	background:url(images/fv/filter-dot.png) 0 0 repeat;
	z-index:2;
}
*/
#FV-movie video {
	width:1920px;
	max-width:100%;
	height:auto;
	z-index:1;
}
@media screen and (max-width:799px){
	#FV-movie video {
		width:640px;
		max-width:initial;
		margin-left:-80px;
	}
}





/* ============================================================================================
	#page-header
		#page-header-title
			.en
			.jp
		#page-header-text
============================================================================================= */
#page-header {
	height:500px;
	min-height:50vh;
	background-position:50% 50%;
	background-repeat:no-repeat;
	background-size:cover;
}

#page-header-title {
	font-weight:bold;
	line-height:1.2;
	color:#fff;
	text-shadow:1px 1px 0px #000 ,0 0 0.5em #fff ,0 0 1em #fff;
}

#page-header-title span {
	display:block;
}
#page-header-title .en {
	font-size:400%;
}
#page-header-title .jp {
	font-size:200%;
}

#page-header-text {
	padding-top:2em;
	padding-left:1em;
	line-height:1.3;
	font-size:200%;
	color:#fff;
	text-shadow:2px 2px 0px #000 ,0 0 0.3em #000 ,0 0 0.5em #000;
}


@media screen and (max-width:799px){
	#page-header {
		height:300px;
		min-height:30vh;
	}
	#page-header-title {
	}
	#page-header-title .en {
		font-size:300%;
	}
	#page-header-title .jp {
		font-size:160%;
	}
	#page-header-text {
		padding-top:2em;
		padding-left:1em;
		font-size:160%;
	}
}



/* ============================================================================================
	common section
============================================================================================= */
#home-main {
	padding:2em 0;
	min-height:60vh;
}



/* ============================================================================================
	main > section > .inner-container
============================================================================================= */
main section .inner-container ,
main aside .inner-container {
	padding:3em 0;
}

@media screen and (max-width:799px){
	main section .inner-container ,
	main aside .inner-container {
		padding:2em 1em;
	}
}







/* ==============================================
	top - sns
=============================================== */
#sns {
	padding:2em 0;
}


#sns .inner-container.flex {
	align-items:flex-start;
}
#sns .inner-container.flex > div {
	padding:0 2em;
}

#sns .sns-title {
	text-align:center;
}
#sns .sns-title img {
	height:6em;
}

#twitter-container iframe ,
#instagram-container .frame {
	width:480px !important;
	height:480px !important;
	text-align:center;
	background:#fff;
	border:1px solid #999 !important;
}

#instagram-container .frame .err {
	padding-top:1em;
}

@media screen and (max-width:799px){
	#sns .inner-container.flex {
		flex-direction:column;
	}
	#sns .inner-container.flex > div {
		width:100%;
	}
	#twitter-container iframe {
		width:400px !important;
	}
	#sns .inner-container.flex > div#instagram-container {
		padding-top:2em;
	}
	#instagram-container .frame {
		width:400px !important;
		height:400px !important;
	}
}


/* ==============================================
	top - recommend
=============================================== */
#recommend {
	background:rgba(204,204,204,0.6);
}

.recommend-cell {
	background:#fff;
}
.recommend-cell .flex {
	padding:0.5em;
	align-items:flex-start;
}
.recommend-cell .flex> div {
	padding:0.5em;
}
.recommend-cell .flex > .image {
	width:30%;
}
.recommend-cell .flex > .text {
	width:calc(100% - 30%);
}

.recommend-cell .flex .head h3 {
	text-align:left;
}
.recommend-cell .flex .head h3 > span {
	display:block;
	padding:0 0.5rem;
	line-height:1.3;
}
.recommend-cell .flex .head h3 > span.jp {
	font-size:120%;
	padding:0 0.5rem 0.5rem;
}
.recommend-cell .flex .head h3 > span.en {
	font-size:90%;
	padding:0.3rem 0.5rem 0;
	border-top:2px solid #000;
}

.recommend-cell .flex .body {
	padding:1rem 0.5rem;
}

.recommend-link {
	padding-top:0.5em;
	text-align:right;
}

@media screen and (max-width:799px){
	.recommend-cell .flex {
		flex-direction:column-reverse;
	}
	.recommend-cell .flex > .image {
		width:100%;
		padding:0.5em 5em;
	}
	.recommend-cell .flex > .text {
		width:100%;
	}
}




/* ==============================================
	top - news
=============================================== */
#news-list {
	background:#fff;
	border:1px solid #999;
}
.news-cell {
	boder-bottom:1px solid #999;
}
.news-cell .news-head.flex {
	padding:1em;
	cursor:pointer;
}
@media screen and (min-width:800px){
	.news-cell .news-head.flex:hover {
		background:rgba(204,221,255,0.3);
	}
}

.news-cell .news-head.flex > .date {
	width:10em;
}
.news-cell .news-head.flex > .head {
}
.news-cell .news-head.flex > .mark {
	margin-left:auto;
}
.news-cell .news-head.flex > .mark:after {
	content:attr(data-closed);
}

.news-cell .news-body {
	display:none;
	width:100% !important;
}
.news-cell .news-body .flex {
	padding:1em;
	align-items:flex-start;
}
.news-cell .news-body .flex > .text {
	width:70%;
}
.news-cell .news-body .flex > .image {
	width:30%;
	text-align:center;
}

.news-cell .news-head.flex.opened {
	background:rgba(204,221,255,0.3);
}
.news-cell .news-head.flex.opened > .mark:after {
	content:attr(data-opened);
}

@media screen and (max-width:799px){
	.news-cell .news-head.flex > .date {
		width:6em;
	}
}



.pageLinks {
	text-align:right;
	padding:5px 10px;
}
.pageLinks a {
	display:inline-block;
	padding:0 3px;
}
.pageLinks a:hover ,
.pageLinks a.active {
	color:#f00;
	text-decoration:underline;
}




/* ==============================================
	top - access-map
=============================================== */
#top-map {
	border-top:1px solid #999;
}
#top-map > .iframe-outer {
	height:350px;
}
@media screen and (max-width:799px){
	#top-map > .iframe-outer {
		height:250px;
	}
}

#access-map .iframe-outer {
	border:1px solid #999;
}


/* ============================================================================================
	concept
============================================================================================= */


/* ==============================================
	concept - greeting
=============================================== */
#greeting .inner-container {
	padding:2em 2em;
}

#greeting-main.flex {
	width:1200px;
	max-width:100%;
	background:url(images/page/concept_main_bg.jpg) 50% 50% no-repeat;
	justify-content:flex-end;
	align-items:flex-end;
}

@media screen and (max-width:799px){
	#greeting-main.flex {
		background-position:35% 50%;
		background-size:cover;
	}
}


/* ==============================================
	concept - concept
=============================================== */
.title-line-2LR {
	width:640px;
	max-width:100%;
	margin:0 auto;
	font-weight:bold;
}
.title-line-2LR span {
	display:block;
	font-size:180%;
}

.concept-container.flex {
	width:900px;
	max-width:100%;
	margin:0 auto;
	padding:2em 0;
	align-items:flex-start;
}
.concept-container.flex > .text {
	width:55%;
	font-size:110%;
	line-height:2;
}
.concept-container.flex > .image {
	width:45%;
	padding-left:2em;
}

@media screen and (min-width:800px){
	.concept-container.flex > .image {
		padding-left:2em;
	}
	.concept-container.rev.flex {
		flex-direction:row-reverse;
	}
	.concept-container.rev.flex > .image {
		padding-left:0;
		padding-right:2em;
	}
}
@media screen and (max-width:799px){
	.title-line-2LR span {
		font-size:160%;
	}
	.concept-container.flex {
		flex-direction:column-reverse;
	}
	.concept-container.flex > .text {
		width:100%;
		padding:0 1em;
	}
	.concept-container.flex > .image {
		width:100%;
		padding:0 5em 2em;
	}
}


/* ============================================================================================
	gallery
============================================================================================= */

/* ==============================================
	gallery - image list
=============================================== */
.gallery-list.flex {
	justify-content:flex-start;
}
.gallery-list.flex > .gallery-cell {
	width:calc(100% / 4);
	padding:5px;
}
.gallery-box {
	width:100%;
	background-position:50% 50%;
	background-size:cover;
	cursor:pointer;
	filter:brightness(80%);
}
.gallery-box:before {
	content:"";
	display:block;
	width:100%;
	height:0;
	padding-top:100%;
}

.gallery-box:hover {
	filter:brightness(100%);
}

@media screen and (max-width:799px){
	.gallery-list.flex > .gallery-cell {
		width:calc(100% / 3);
	}
}


/* ==============================================
	gallery - popup(fancybox)
=============================================== */
.popup {
	display:none;
}
.popup.fancybox-content {
	background:#ccc;
	padding:1em;
}
.popup-box.flex {
	background:#fff;
	padding:1em;
	align-items:stretch;
}
.popup-box.flex > .head {
	order:1;
	width:100%;
	padding-bottom:1em;
	font-size:120%;
	font-weight:bold;
}
.popup-box.flex > .image {
	order:2;
	width:50%;
	text-align:center;
}
.popup-box.flex > .image img {
	max-height:60vh;
}
.popup-box.flex > .text.flex {
	order:2;
	width:50%;
	flex-direction:column;
	justify-content:space-around;
}
.popup-box.flex > .text.flex > .text-notes {
	text-align:right;
	border-bottom:1px solid #000;
}
@media screen and (max-width:799px){
	.popup-box.flex > .image {
		width:100%;
	}
	.popup-box.flex > .image img {
		max-height:40vh;
	}
	.popup-box.flex > .text.flex {
		width:auto;
		max-width:100%;
		padding-top:1em;
	}
}



/* ==============================================
	gallery - fancybox custom
=============================================== */
.fancybox-content {
	padding:1em;
	background:#ccc;
	border-radius:1em;
}
.fancybox-slide--html .fancybox-close-small {
	padding:0;
	background:#fff;
	border:2px solid #666;
	border-radius:50%;
}
.fancybox-button {
	width:2em;
	height:2em;
}




/* ============================================================================================
	access
============================================================================================= */

/* ==============================================
	access - shop information
=============================================== */
.shop-info.flex {
	align-items:stretch;
}
.shop-info.flex > .image {
	width:420px;
	background:url(images/common/shop-info.jpg) 50% 50% no-repeat;
	background-size:cover;
}
.shop-info.flex > .data {
	padding-left:2em;
}
.shop-info.flex > .data dt {
	padding:0.5em 0.5em 0;
	font-weight:bold;
}
.shop-info.flex > .data dt:nth-of-type(1) {
	padding-top:0;
}
.shop-info.flex > .data dd {
	padding:0 1em 0.5em 1.5em;
	border-bottom:1px solid #666;
}

@media screen and (max-width:799px){
	.shop-info.flex > .image {
		width:150px;
	}
	.shop-info.flex > .data {
		padding-left:1em;
	}

}



/* ==============================================
	access - indoor view
=============================================== */
@media screen and (min-width:800px){
	#indoor-view iframe {
		width:100%;
		height:600px;
		max-height:75vh;
	}
}
@media screen and (max-width:799px){
	#indoor-view {
		padding:0 1em;
	}
	#indoor-view iframe {
		max-width:100%;
	}
}


/* ==============================================
	access - route
=============================================== */
.route-container {
	padding-bottom:2em;
}
.route-container .info-box {
	border:0.5em solid #9cf;
	border-radius:0.5em;
	background:rgba(255,255,255,0.6);
}

.route-list.flex {
	max-width:80%;
	margin:0 auto;
	align-items:stretch;
}
.route-list.flex > .route-cell {
	width:50%;
	padding:1em;
}
.route-list.flex > .route-cell .route-cell-inner {
	height:100%;
	padding:0.5em;
	border:1px solid #666;
}
.route-list.flex > .route-cell .image {
}
.route-list.flex > .route-cell .text {
	padding:0.5em;
}

@media screen and (max-width:799px){
	.route-list.flex {
		max-width:100%;
		padding:0.5em;
	}
	.route-list.flex > .route-cell {
		padding:0.5em;
	}
}



/* ============================================================================================
	recruit
============================================================================================= */

/* ==============================================
	recruit - table
=============================================== */
.recruit-table {
	width:100%;
}
.recruit-table th {
	width:30%;
	padding:0.5em;
	border:1px solid #666;
	letter-spacing:2px;
	color:#fff;
	background-color:rgba(0,102,204,0.5);
	border:1px solid #06f;
}
.recruit-table td {
	padding:0.5em 1em;
	background-color:rgba(204,221,255,0.5);
	border:1px solid #06c;
}
.recruit-table td .flex {
	justify-content:flex-start;
}
.recruit-table td .flex > .image {
	padding-right:1em;
}


@media screen and (max-width:799px){
	.recruit-table th {
		white-space:nowrap;
		width:20%;
	}
}



/* ==============================================
	recruit - entry button
=============================================== */
.entry-button {
	padding:4em;
	text-align:center;
}
.entry-button a {
	display:inline-block;
	width:80%;
	max-width:600px;
	line-height:2em;
	font-size:160%;
	letter-spacing:0.1em;
	text-indent:0.1em;
	color:#fff;
	background-color:rgba(0,0,204,0.6);
	border:1px solid #00c;
	transition: all 0.2s ease;
	-webkit-transition: all 0.2s ease;
}
.entry-button a:hover {
	background-color:rgba(0,0,204,0.8);
}








/* ============================================================================================
	booking
============================================================================================= */




/* ============================================================================================
	link
============================================================================================ */
table.bannerTable {
	margin:2em auto 0;
}
table.bannerTable td {
	padding:10px;
}
table.bannerTable td img {
	box-shadow:0 0 3px #999;
}


.link-cell-grid {
	padding:0.5em;
	display:grid;
	grid-template-rows:auto auto;
	grid-template-columns:40% auto;
}
.link-cell-grid > div {
	padding:0.5em;
}
.link-cell-grid > .head {
	grid-row: 1;
	grid-column: 2;
	font-size:110%;
	font-weight:bold;
}
.link-cell-grid > .text {
	grid-row: 2;
	grid-column: 2;
}
.link-cell-grid > .image {
	grid-row: 1 / 3;
	grid-column: 1;
	padding-top:0.5em;
	padding-right:2em;
	text-align:right;
}

a.link-cell-grid:hover {
	background:rgba(204,204,204,0.4);
}


@media screen and (max-width:799px){
	.link-cell-grid {
		grid-template-columns:30% auto;
	}
	.link-cell-grid > .head {
	}
	.link-cell-grid > .text {
		font-size:90%;
	}
	.link-cell-grid > .image {
		padding-right:1em;
	}
}

















/* ============================================================================================
	system & menu
============================================================================================= */

/* ==============================================
	system & menu - system
=============================================== */
.system-list {
}
.system-list li.flex {
	width:800px;
	margin:0 auto;
	padding:0.5em 3em;
	display:flex;
	justify-content:space-between;
	align-items:center;
	flex-wrap:wrap;
}
.system-list li.flex:nth-child(1) {
	border-top:1px solid #6cf;
}
.system-list li.flex > .notes {
	width:100%;
	text-align:center;
}
.system-list li.flex .image {
	width:100%;
	padding:0.5em;
	text-align:center;
}

.system-list li.flex.type1 {
	border-bottom:1px solid #6cf;
}

.system-list li.flex.type2 {
}
.system-list li.flex.type1 > .sideR ,
.system-list li.flex.type2 > .sideR {
	text-align:right;
	margin-left:auto;
}
.system-list li.flex.type3 {
	padding:0.8em 3em;
}

.system-list li .size0 {
	font-size:120%;
}
.system-list li .size1 {
	font-size:160%;
}
.system-list li .size2 {
	font-size:180%;
}




/* ==============================================
	system & menu - photo
=============================================== */
.photo-list.flex {
	justify-content:flex-start;
}
.photo-list.flex > .photo-cell {
	width:calc(100% / 3);
	padding:5px;
}
.photo-box {
	width:100%;
	background-position:50% 50%;
	background-size:cover;
}
.photo-box:before {
	content:"";
	display:block;
	width:100%;
	height:0;
	padding-top:75%;
}



@media screen and (max-width:799px){
	.photo-list.flex > .photo-cell {
		width:calc(100% / 2);
	}
}











/* ============================================================================================
	recruit
============================================================================================= */



/* ==============================================
	recruit form
=============================================== */
.form-notes {
	padding-bottom:2em;
}

#form-table {
	max-width:800px;
	margin:0 auto;
	padding:0 0.5em;
	display:flex;
	justify-content:center;
	align-items:stretch;
	flex-wrap:wrap;
}
#form-table dt {
	width:45%;
	padding:1em 0.5em;
	text-align:right;
	border-bottom:1px solid #ddd;
}
#recruitHtmlBody #body #form-table dt {
	width:210px;
	padding:1em 0.5em;
}
#form-table dd {
	width:calc(100% - 45%);
	padding:1em 0.5em;
	text-align:left;
	border-bottom:1px solid #ddd;
}
#recruitHtmlBody #body #form-table dd {
	width:calc(100% - 210px);
}
#form-table dd .memo {
	color:#666;
}

.error {
	color:#f00;
}


#form-table dt > span {
	display:flex;
	justify-content:flex-end;
	align-items:center;
}
#form-table dt .required:after ,
#form-table dt .required:before {
	display:inline-block;
	padding:0 0.3em;
	font-size:80%;
	color:#fff;
	background:#e22;
	border-radius:3px;
}

#form-table .error {
	display:block;
}













/* ==============================================
	pc / sp
=============================================== */
.dispNone {
	display:none !important;
}
@media screen and (min-width:800px){
	.dispSP {
		display:none !important;
	}
	.bottomBanners ul > li.pc {
		display:block;
	}

	#form-table dt .required:after {
		content:attr(data-text);
		margin-left:0.3em;
	}
}
@media screen and (max-width:799px){
	.dispPC {
		display:none !important;
	}

	body {
		min-width:auto;
	}
	#bgLayer {
		width:480px;
		margin:0 auto;
		overflow:hidden;
	}


	/* ============================================================================================
		common
	============================================================================================= */

	/* ==============================================
		system
	=============================================== */
	.system-list li.flex {
		width:100%;
		padding:0.5em 2em;
	}

	.system-list li.flex.type0 {
		padding:0.5em 1em;
	}

	.system-list li .size0 {
	}
	.system-list li .size1 {
		font-size:130%;
	}
	.system-list li .size2 {
		font-size:140%;
	}



	/* ==============================================
		recruit
	=============================================== */
	#form-table {
	}
	#form-table dt {
		width:100%;
		padding-bottom:0;
		text-align:left;
		border-bottom:0 none;
	}
	#form-table dt > span {
		justify-content:flex-start;
	}
	#form-table dt .required:before {
		content:attr(data-text);
		margin-right:0.3em;
	}
	#form-table dd {
		width:100%;
		padding-top:0.5em;
		padding-left:2em;
	}

	.entry-button a {
		font-size:140%;
		width:100%;
	}
}









