@charset "UTF-8";
/* 共通設定 --------------------------------------------------------------- */



/* reset */
@import url('../common/reset.css');

/* Webフォント */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@200;400;700&display=swap');


/* loading --------------------------------------------------------------- */
#loading {
	width: 100%;
	height: 100vh;
	z-index: 9999;
	background-color: #ffffff;
	background-image: url("../../img/common/loader.gif");
	background-position: center center;
	background-repeat: no-repeat;
	background-size: 100px auto;
	position: fixed;
	left: 0;
	top: 0;
	}

@media(max-width: 990px){
	#loading {
		height: 100dvh;
		}
	}
	
	

/* fade --------------------------------------------------------------- */
a,
a.color {
	transition: all 0.3s ease-out;
	}

	a:hover {
		opacity: 0.5;
		}

	a.color:hover {
		opacity: 1;
		background-color: #ecf1e9;
		}

@media(max-width: 990px){
		a:hover {
			opacity: 1;
			}
	
		a.color:hover {
			opacity: 1;
			background-color: transparent;
			}
	}



/* zoom --------------------------------------------------------------- */
.zoom {
	overflow: hidden;
	}
	
	.zoom img {
		transition: all 0.5s ease-out;
		}
		
		.zoom:hover img {
			transform: scale(1.06, 1.06);
			}



/* trans --------------------------------------------------------------- */
.trans {
	opacity: 0;
	transform: translate(0, 50px);
	transition: all 500ms;
	}
	
	.trans.scrollin {
		opacity: 1;
		transform: translate(0, 0);
		}



/* desktop / mobile --------------------------------------------------------------- */
.dsk {
	display: block !important;
	}

.mob {
	display: none !important;
	}
	
	
@media(max-width: 990px){
	.dsk {
		display: none !important;
		}
	
	.mob {
		display: block !important;
		}
	}



/* body --------------------------------------------------------------- */
body {
	word-wrap: break-word;
	-webkit-text-size-adjust: 100%;
	}

body,
a,
input,
select,
textarea,
submit {
	color: #333333;
	font-size: 15px;
  }

body,
div,
ul,
li,
dl,
dt,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
p,
span,
a,
input,
select,
textarea,
submit {
	font-family: "Noto Serif JP", "Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体", 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', 'メイリオ', Meiryo, sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
	line-height: 2;
  letter-spacing: 1px;
	/*text-align: justify;
	text-justify: auto;*/
	}

input,
select,
textarea,
submit {
	border: 0;
	box-sizing: border-box;
	}
	
h1 {
	font-size: 25px;
	}

@media(max-width: 990px){
	body,
	div,
	ul,
	li,
	dl,
	dt,
	dd,
	h1,
	h2,
	h3,
	h4,
	h5,
	h6,
	p,
	span,
	a,
	input,
	select,
	textarea,
	submit {
		text-align: inherit;
		text-justify: none;
		}
	
	body,
	a,
	input,
	select,
	textarea,
	submit,
	h1,
	h2,
	h3,
	h4,
	h5,
	h6,
	p,
	span {
		font-size: 16px;
		}
		
	h1 {
		font-size: 22px;
		}
		
	h2 {
		font-size: 18px;
		}
	}
	
	

/* header --------------------------------------------------------------- */
#header {
	display: block;
	margin: 0 auto;
	position: relative;
	}

#header,
#header #headerSCR {
	width: 100%;
	height: 80px;
	}

	#header #headerSCR {
		background-color: #fff;
		position: absolute;
		left: 0;
		top: 0;
		}
		
		#header #headerSCR p {
			width: auto;
			height: 40px;
			position: absolute;
			left: 2.5%;
			top: 50%;
			transform: translate(0,-50%);
			}

			#header #headerSCR p a,
			#header #headerSCR p a img {
				height: 100%;
				}

		#header #headerSCR ul {
			overflow: hidden;
			text-align: center;
			position: absolute;
			right: 2.5%;
			top: 50%;
			transform: translate(0,-50%);
			}

			#header #headerSCR ul li {
				display: inline-block;
				margin: 0 15px;
				}

			#header #headerSCR ul li:first-of-type {
				margin-left: 0;
				}

			#header #headerSCR ul li:last-of-type {
				margin-right: 150px;
				}

				#header #headerSCR ul li a {
					padding: 8px 0;
					}

				/*
				#header #headerSCR ul li:last-of-type a {
					padding: 8px 12px;
					border: #777 solid 1px;
					}
				*/

				body#tgt01 #header #headerSCR ul li:first-of-type a,
				body#tgt02 #header #headerSCR ul li:nth-of-type(2) a,
				body#tgt03 #header #headerSCR ul li:nth-of-type(3) a,
				body#tgt04 #header #headerSCR ul li:nth-of-type(4) a,
				body#tgt05 #header #headerSCR ul li:nth-of-type(5) a,
				body#tgt06 #header #headerSCR ul li:nth-of-type(6) a,
				body#tgt07 #header #headerSCR ul li:nth-of-type(7) a,
				body#tgt08 #header #headerSCR ul li:nth-of-type(8) a,
				body#tgt09 #header #headerSCR ul li:last-of-type a {
					border-bottom: #333 solid 1px;
					}

	/* #headerSCR active のとき --------------------------------------------------------------- */
	#header #headerSCR.active {
		height: 80px;
		z-index: 10;
		position: fixed;
		left: 0;
		top: 0;
		
		animation-name: fadeDown;
		animation-duration: 0.5s;
		animation-fill-mode: forwards;
		opacity: 0;
		}

		#header #headerSCR.active p {
			display: none;
			}

		#header #headerSCR.active ul {
			width: 100%;
			left: 0;
			}
		
			#header #headerSCR.active ul li:last-of-type {
				margin-right: 0;
				}


	#header #Language {
		z-index: 999;
		position: fixed;
		right: 50px;
		top: 26px;
		}

		#header #Language a {
			display: inline-block;
			line-height: 1;
			}

	@keyframes fadeDown {
		from {
			opacity: 0;
			transform: translateY(-100px);
			}

		to {
			opacity: 1;
			transform: translateY(0);
			}
		}

@media(max-width: 1280px){
		#header #headerSCR ul li {
			margin: 0 10px;
			}
	}

@media(max-width: 990px){
	#header {
		display: none;
		}
	}

@media(min-width: 1px) and (max-width: 660px){
	}



/* wrapper --------------------------------------------------------------- */
#wrapper {
	margin: 0 auto;
	}
	
@media(max-width: 990px){
	}

@media(min-width: 1px) and (max-width: 660px){
	}



/* content --------------------------------------------------------------- */
#content {
	width: 100%;
	margin: 0 auto;
	}

@media(max-width: 990px){
	}

@media(min-width: 1px) and (max-width: 660px){
	}
	


/* key --------------------------------------------------------------- */
#key {
	width: 100%;
	margin: 0 auto 100px auto;
	overflow: hidden;
	background-color: #000;
	position: relative;
	}
	
	#keySLICK {
		position: relative;
		}
		
		#keySLICK,
		#key #keySLICK div,
		#key #keySLICK div img {
			width: 100%;
			height: 100%;
			}

		#key #keySLICK div {
			position: relative;
			overflow: hidden;
			}

			#key #keySLICK div img {
			 	aspect-ratio: inherit;
			 	object-fit: cover;
				object-position: 50% 50%;
				}
	
	.add-anime {
    animation: zoom-anime 10s linear 0s normal both;
		}

@keyframes zoom-anime {
		0% {
			transform: scale(1);
			}

		100% {
			transform: scale(1.05);
			}
		}

@media(max-width: 990px){
	#key {
		margin: 70px auto 30px auto;
		}
		
			#key #keySLICK div img {
			 	aspect-ratio: 1 / 1;
				}
	}

@media(min-width: 1px) and (max-width: 660px){
	}



/* 下層ページのheading --------------------------------------------------------------- */
#heading {
	width: 100%;
	margin: 0 auto 100px auto;
	overflow: hidden;
	text-align: center;
	position: relative;
	}

	#heading h1 {
		display: none;
		}

	#heading p {
		width: 70%;
		font-size: 20px;
		line-height: 1.8;
		margin: 0 auto;
		}

		#heading p span {
			font-size: 24px;
			font-weight: bold;
			line-height: 1.5;
			margin-bottom: 30px;
			}

@media(max-width: 990px){
	#heading {
		width: 90%;
		text-align: left;
		margin: 0 auto 50px auto;
		}

		#heading h1 {
			font-size: 28px;
			padding-bottom: 10px;
			margin: 0 0 50px 0;
			border-bottom: #d9d9d9 solid 1px;
			position: relative;
			top: 1px;
			}

		#heading p {
			width: 90%;
			font-size: 16px;
			}

			#heading p span {
				font-size: 20px;
				margin: 0 0 20px 0;
				letter-spacing: inherit;
				}
	}

@media(min-width: 1px) and (max-width: 660px){
	}



/* pageing --------------------------------------------------------------- */
.pageing {
	width: 400px;
	margin: 150px auto;
	}

	.pageing a {
		width: 400px;
		margin: 0 auto;
		padding: 25px 0;
		border: #d9d9d9 solid 1px;
		text-align: center;
		font-size: 18px;
		background-image: url("../../img/common/pageing.png");
		background-position: 95% center;
		background-repeat: no-repeat;
		background-size: auto 28px;
		}

	.pageing.back a {
		background-image: none;
		}

		.pageing a span {
			display: inline;
			font-size: 85%;
			}

@media(max-width: 990px){
	.pageing {
		width: 90%;
		margin: 100px auto;
		}

		.pageing a {
			width: 100%;
			margin: 0 auto;
			padding: 20px 0;
			font-size: inherit;
			}
	}

@media(min-width: 1px) and (max-width: 660px){
	}



/* footer --------------------------------------------------------------- */
#footer {
	margin: 0 auto;
	padding: 50px 0 0 0;
	background-color: #717b74;
	position: relative;
	}

#footer,
#footer a {
	color: #dbe7d1;
	}

	#footer #footerTOP {
		margin: 0 auto;
		padding: 0 2.5% 50px 2.5%;
		overflow: hidden;
		}

		#footer #footerTOP #footerTOPLeft {
			float: left;
			width: 200px;
			}

			#footer #footerTOP #footerTOPLeft p,
			#footer #footerTOP #footerTOPLeft p img {
				width: 100%;
				}

			#footer #footerTOP #footerTOPCenter {
				float: left;				
				margin: 0 auto 0 70px;
				padding: 10px 0 0 0;
				}

				#footer #footerTOP #footerTOPCenter dl {
					width: 100%;
					display: table;
					margin-bottom: 10px;
					}

				#footer #footerTOP #footerTOPCenter dl:last-of-type {
					margin-bottom: 0;
					}

					#footer #footerTOP #footerTOPCenter dl dt,
					#footer #footerTOP #footerTOPCenter dl dd {
						display: table-cell;
						vertical-align: top;
						}

					#footer #footerTOP #footerTOPCenter dl dt {
						width: 75px;
						padding-top: 2px;
						font-size: 12px;
						text-align: right;
						}
						
					#footer #footerTOP #footerTOPCenter dl dd,
					#footer #footerTOP #footerTOPCenter dl dd a {
						font-size: 14px;
						}

						#footer #footerTOP #footerTOPCenter dl dd span,
						#footer #footerTOP #footerTOPCenter dl dd span a {
							font-size: 12px;
							}

						#footer #footerTOP #footerTOPCenter dl:first-of-type dd span,
						#footer #footerTOP #footerTOPCenter dl:last-of-type dd span {
							display: inline-block;
							}

		#footer #footerTOP #footerTOPRight {
			float: left;
			width: 350px;
			margin-left: 100px;
			}

			#footer #footerTOP #footerTOPRight p {
				float: left;
				}

			#footer #footerTOP #footerTOPRight p:first-of-type {
				width: 150px;
				}

				#footer #footerTOP #footerTOPRight p a {
					margin-bottom: 10px;
					}

	#footer #footerBOTTOM {
		padding: 20px 0;
		border-top: #454a46 solid 1px;
		}

		#footer #footerBOTTOM ul li,
		#footer #footerBOTTOM ul li a {
			font-size: 13px;
			font-weight: 300;
			font-family: "Noto Sans JP", "Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体", 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', 'メイリオ', Meiryo, sans-serif;
			}

		#footer #footerBOTTOM ul:first-of-type {
			margin: 0 0 0 2.5%;
			}

			#footer #footerBOTTOM ul:first-of-type li {
				display: table-cell;
				padding-right: 15px;
				vertical-align: middle;
				}

			#footer #footerBOTTOM ul:first-of-type li:first-of-type a {
				width: 20px;
				margin-top: -5px;
				}

				#footer #footerBOTTOM ul:first-of-type li:first-of-type a img {
					width: 100%;
					}

		#footer #footerBOTTOM ul:last-of-type {
			overflow: hidden;
			position: absolute;
			right: 2.5%;
			top: 50%;
			transform: translate(0,-50%);
			}

			#footer #footerBOTTOM ul:last-of-type li {
				float: left;
				margin-left: 40px;
				}

@media(max-width: 990px){
	#footer {
		padding: 30px 0 70px 0;
		}

		#footer #footerTOP {
			padding: 0 5%;
			}

			#footer #footerTOP #footerTOPLeft {
				display: none;
				}

				#footer #footerTOP #footerTOPLeft p,
				#footer #footerTOP #footerTOPLeft p img {
					width: 100%;
					}

				#footer #footerTOP #footerTOPCenter {
					float: none;
					margin: 0 auto 30px auto;
					padding: 0;
					}

			#footer #footerTOP #footerTOPRight {
				display: none;
				float: none;
				padding-top: 0;
				writing-mode: inherit;
				}

				#footer #footerTOP #footerTOPRight p {
					margin: 0;
					}
			
					#footer #footerTOP #footerTOPRight p a {
						margin: 5px 0;
						}	

		#footer #footerBOTTOM {
			padding: 20px 0 10px 0;
			}
	
			#footer #footerBOTTOM ul:first-of-type {
				margin: 0 0 10px 5%;
				}

			#footer #footerBOTTOM ul:last-of-type {
				position: static;
				transform: translate(0,0);
				text-align: center;
				}

				#footer #footerBOTTOM ul:last-of-type li {
					float: none;
					display: block;
					text-align: center;
					margin: 0 auto;
					}

				#footer #footerBOTTOM ul:last-of-type li:last-of-type {
					margin-top: 20px;
					font-size: 10px;
					}
	}

@media(min-width: 1px) and (max-width: 660px){
	}



/* booking --------------------------------------------------------------- */
#booking {
	width: 45px;
	height: 351px;
	position: fixed;
	right: 0;
	top: 50%;
	transform: translate(0,-50%);
	}

	#booking a {
		width: 45px;
		height: 175px;
		line-height: 1;
		margin-bottom: 1px;
		}

		#booking a img {
			width: 100%;
			}

@media(min-width: 1px) and (max-width: 660px){
	#booking {
		width: calc(100% - 100px);
		height: auto;
		position: fixed;
		right: auto;
		left: 0;
		top: auto;
		bottom: 0;
		transform: none;

		display: flex;
		}

		#booking a {
			float: left;
			width: 50%;
			height: auto;
			margin-bottom: 0;
			border-right: #fff solid 1px;
			background-size: auto 100%;
			overflow: hidden;
			box-sizing: border-box;
			}
			
		#booking a:last-of-type {
			border-right: 0;
			}
	}