html,
body {
	width: 100%;
	height: 100%;
	font-size: 10px;
	font-size: 62.5%;
	color: #fff;
}
body {
	margin: 0;
	font-family: meiryo, "Hiragino Kaku Gothic ProN", sans-serif;
	background-color: #242424;
}

* {
	box-sizing: border-box;
}
h1, h2, h3, h4, p {
	margin: 0;
}
a {
	outline: none;
}

.container {
	width: 100%;
	height: 100%;
	height: auto;
	min-height: 100%;
	overflow: hidden;
}

/* Header */
.header {
	position: fixed;
	top: 0;
	width: 100%;
	height: 80px;
	background-color: rgba(0, 0, 0, .6);
	z-index: 999;
}
.header .inner {
	position: relative;
	width: 1200px;
	height: 100%;
	margin: 0 auto;
}
#logo {
	position: absolute;
	top: 50%;
	left: 8px;
	width: 292px;
	height: 36px;
	transform: translateY(-50%);
}

#spMenu {
	display: none;
}

#pcMenu {
	position: absolute;
	top: 50%;
	right: 8px;
	transform: translateY(-50%);
}
#pcMenu > ul {
	width: 100%;
	height: 40px;
	list-style: none;
	margin: 0;
	padding: 0;
}
#pcMenu > ul:after {
	content: "";
	display: block;
	clear: both;
}
#pcMenu > ul > li {
	width: 168px;
	height: 100%;
	border-left: solid 1px rgba(255, 255, 255, .3);
	float: left;
}
#pcMenu > ul > li:last-of-type {
	width: 120px;
	width: auto;
	padding: 0 0 0 8px;
}
#pcMenu > ul > li > a {
	position: relative;
	width: 100%;
	height: 100%;
	display: block;
}
#pcMenu > ul > li > a:after {
	position: absolute;
	bottom: -20px;
	left: 0;
	width: 100%;
	height: 2px;
	background: #ff6f00;
	content: "";
	transform: scale(0, 1);
	transform-origin: center top;
	transition: transform 0.3s;
}
#pcMenu > ul > li > a:hover::after {
	transform: scale(1, 1);
}

#pcMenu > ul > li > a img {
	width: 100%;
	height: 100%;
}

.snsBox {
	width: 80px;
	height: 32px;
	list-style: none;
	margin: 4px 0;
	padding: 0;
}
.snsBox:after {
	content: "";
	display: block;
	clear: both;
}
.snsBox li {
	width: 40px;
	height: 32px;
	float: left;
}
.snsBox li a {
	width: 32px;
	height: 32px;
	margin: 0 auto;
	display: block;
}
.snsBox li a img {
	width: 100%;
	height: 100%;
}

/* Eyecatche */
.eyecatchBox {
	position: relative;
	width: 100%;
	background-color: #000;
	overflow: hidden;
}
.eyecatchBox::after {
	position: absolute;
	top: 0;
	right: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, .4);
	background-image: radial-gradient(#222 30%, transparent 31%), radial-gradient(#222 30%, transparent 31%);
	background-size: 4px 4px;
	background-position: 0 0, 2px 2px;
	content: "";
	display: block;
}
.eyecatchBox video {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.eyecatchBox > img {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 40%;
	height: auto;
	transform: translate(-50%, -50%);
	z-index: 1;
}
/* Scroll Line */
a.scrollLine {
	position: absolute;
	bottom: 0;
	left: 50%;
	width: 24px;
	padding: 0 0 80px;
	overflow: hidden;
	text-decoration: none;
	transform: translateX(-50%);
	z-index: 1;
}
a.scrollLine img {
	position: absolute;
	top: 0;
	width: 20px;
	height: 28px;
}
a.scrollLine:before {
	position: absolute;
	bottom: 0px;
	left: 10px;
	width: 1px;
	height: 48px;
	content: "";
	background-color: rgba(255, 255, 255, .3);
}
a.scrollLine:after {
	position: absolute;
	bottom: 0;
	left: 10px;
	width: 1px;
	height: 48px;
	background-color: #fff;
	content: "";
	animation: sdl 1.5s cubic-bezier(1, 0, 0, 1) infinite;
	transform: translateX(-50%);
}
@keyframes sdl {
	0% {
		transform: scale(1, 0);
		transform-origin: 0 0;
	}
	50% {
		transform: scale(1, 1);
		transform-origin: 0 0;
	}
	50.1% {
		transform: scale(1, 1);
		transform-origin: 0 100%;
	}
	100% {
		transform: scale(1, 0);
		transform-origin: 0 100%;
	}
}

/* Contents */
.contents {
	width: 100%;
	padding: 80px 0 0;
}

section {
	position: relative;
	width: 100%;
	margin: 0;
}
section > .inner {
	position: relative;
	width: 1200px;
	margin: 0 auto;
}
section > .inner:after {
	content: "";
	display: block;
	clear: both;
}
section h2 {
	position: relative;
	width: 100%;
	margin: 0 0 24px;
	border-top: solid 1px #ff6f00;
	border-bottom: solid 1px #ff6f00;
}
section h2 img {
	width: 320px;
	height: 104px;
	margin: 0 auto;
	display: block;
}

/* About */
#aboutBox {
	position: relative;
	width: 100%;
	display: flex;
}
#aboutBox:before {
	position: absolute;
	top: -80px;
	left: 0;
	width: 72%;
	height: 100%;
	background-color: rgba(255, 255, 255, .08);
	content: "";
}
#aboutBox .leftBox {
	position: absolute;
	bottom: -48px;
	left: 0;
	width: 64%;
	height:  auto;
	padding: 40px 40px 32px;
	background-color: rgba(0, 0, 0, .3);
	opacity: 0;
	transform: translate(-16%, 0);
	z-index: 1;
}
#aboutBox .leftBox.isShow {
	transform: translate(0, 0);
	transition: 1.8s;
	opacity: 1;
}
#aboutBox .leftBox h3 {
	position: relative;
	font-size: 3.2rem;
	line-height: 100%;
	margin: 0 0 16px;
	padding: 0 0 16px;
	border-bottom: solid 1px #fff;
}
#aboutBox .leftBox p {
	font-size: 1.6rem;
	line-height: 224%;
}
#aboutBox .rightBox {
	width: 52%;
	height: auto;
	margin-left: 56%;
	overflow: hidden;
	opacity: 0;
	transform: translate(0, 0);
}
#aboutBox .rightBox.isShow {
	transform: translate(-16%, 0);
	opacity: 1;
	transition: 1.8s;
}
#aboutBox .rightBox img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Price */
#priceBoxes {
	position: relative;
	width: 100%;
	margin-top: 128px;
}
.boxOuter {
	height: 100%;
	display: block;
	align-items: stretch;
}
.priceBox {
	width: 100%;
	height: 100%;
	padding: 24px 0 16px;
	background-color: rgba(255, 255, 255, .08);
	margin: 24px 0 0;
	padding: 24px 32px;
	display: flex;
	opacity: 0;
}
/*
.priceBox:nth-of-type(2) {
	margin-left: calc(100% - 96%);
}
*/
.priceBox:first-of-type {
	transform: translate(0, 48%);
}
/*
.priceBox:nth-of-type(2) {
	transform: translate(0, 48%);
}
*/
.priceBox:first-of-type.isShow,
.priceBox:nth-of-type(2).isShow {
	transform: translate(0, 0);
	opacity: 1;
}
.priceBox:first-of-type.isShow {
	transition: 1.2s;
}

.priceBox h3 {
	width: 320px;
	font-size: 2.2rem;
	line-height: 200%;
	border-right:  solid 1px rgba(255, 255, 255, .3);
	margin: 0;
}

.priceBox .specBox {
	width: 400px;
	padding: 0 0 0 40px;
}
.priceBox .specBox h4 {
	width: 64px;
	height: 24px;
	font-size: 1.4rem;
	font-weight: lighter;
	text-align: center;
	line-height: 1;
	border: solid 1px #fff;
	padding: 5px 0;
}
.priceBox .specBox ul {
	list-style: none;
	margin: 8px 0 0;
	padding: 0;
}
.priceBox .specBox ul li {
	font-size: 1.4rem;
	line-height: 1;
	padding: 6px 0;
}
.priceBox .specBox ul li span {
	width: 88px;
	display: inline-block;
}
.priceBox .specBox ul li small {
	font-size: 1.0rem;
}

.priceBox .perhourBox {
	position: relative;
	width: calc(100% - 328px - 400px);
	height: auto;
}
.priceBox .perhourBox p {
	position: absolute;
	top: 50%;
	width: 100%;
	font-size: 2.4rem;
	line-height: 1;
	text-align: right;
	margin: 0;
	transform: translateY(-50%);
}
.priceBox .perhourBox p strong {
	font-size: 4.8rem;
	margin: 0 0 0 16px;
}
.priceBox .perhourBox span {
	font-size: 1.2rem;
	text-align: right;
	margin: 8px 0 0;
	display: block;
}

#priceBoxes .note {
	font-size: 1.2rem;
	text-align: right;
	margin: 8px 0 0;
}

/* Access */
#accessBox {
	position: relative;
	width: 100%;
	margin-top: 80px;
	padding: 80px 0;
	background-color: #e0e0e0;
}
.mapBox {
	padding: 24px 0 0;
	opacity: 0;
	transform: translate(0, 16%);
}
.mapBox:focus-visible,
.mapBox:focus {
	outline: none;
}
.mapBox.isShow {
	transform: translate(0, 0);
	transition: 1.8s;
	opacity: 1;
	outline: none;
}

/* Reserve */
#reserveBox {
	position: relative;
	width: 100%;
	height: auto;
	background-image: url("../img/reserve_background.jpg");
	background-size: 120% auto;
	background-position-y: 48%;
	padding: 80px 0;
}
#reserveBox:before {
	position: absolute;
	top: 0;
	right: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, .4);
	background-image: radial-gradient(#222 30%, transparent 31%), radial-gradient(#222 30%, transparent 31%);
	background-size: 4px 4px;
	background-position: 0 0, 2px 2px;
	content: "";
	display: block;
}
#reserveBox h2 {
	border: none;
	margin: 0;
}
#reserveBox a {
	width: 64%;
	height: 72px;
	color: #fff;
	font-size: 2.2rem;
	font-weight: bold;
	text-align: center;
	line-height: 100%;
	text-decoration: none;
	text-shadow: 3px 3px 3px #000;
	background-color: #ff6f00;
	margin: 24px auto 0;
	padding: 26px 0;
	display: block;
	transition: .3s;
	outline: none;
}
#reserveBox a:hover {
	background-color: #af2000;
}

/* Footer */
.footer {
	width: 100%;
}
.footer .inner {
	width: 1200px;
	margin: 0 auto;
	padding: 40px 0;
}
.footer img {
	width: 224px;
	height: 64px;
	margin: 0 auto;
	display: block;
}
.footer p:first-of-type {
	font-size: 1.4rem;
	color: #6f6f6f;
	text-align: center;
	line-height: 184%;
	margin: 24px 0 0;
}
.footer p:nth-of-type(2) {
	color: #6f6f6f;
	font-size: 1.2rem;
	font-weight: bold;
	text-align: center;
	margin: 16px 0 0;
}

.footerSnsBox {
	width: 80px;
	height: 24px;
	list-style: none;
	margin: 8px auto 0;
	padding: 0;
}
.footerSnsBox:after {
	content: "";
	display: block;
	clear: both;
}
.footerSnsBox li {
	width: 40px;
	height: 24px;
	float: left;
}
.footerSnsBox li a {
	width: 24px;
	height: 24px;
	margin: 0 auto;
	padding: 0;
	display: block;
}
.footerSnsBox li a img {
	width: 100%;
	height: 100%;
}

@media screen and (max-width:599px){
	body {
		font-family: "Hiragino Sans", "ヒラギノ角ゴシック",  sans-serif;
	}
	
	/* Header */
	.header {
		height: 64px;
	}
	.header .inner {
		width: 96%;
	}
	#logo {
		left: 8px;
		width: 224px;
		height: auto;
	}
	
	.navi-btn {
		position: absolute;
		top: 50%;
		right: 8px;
		width: 24px;
		height: 24px;
		transform: translateY(-50%);
		display: block !important;
		z-index: 9;
	}
	.navi-btn span {
		position: absolute;
		top: 2px;
		display: block;
		width: 24px;
		height: 2px;
		background-color: #fff;
		border-radius: 2px;
		transition: all .3s;
	}
	.navi-btn span:nth-of-type(2) {
		top: 12px;
		opacity: 1;
		transition: all .3s;
	}
	.navi-btn span:last-of-type {
		top: 21px;
	}
	.navi-btn-on span:first-of-type {
		top: 11px;
		right: -4px;
		width: 32px;
		background-color: #fff;
		transform: rotate(-45deg);
	}
	.navi-btn-on span:nth-of-type(2) {
		transform: translateX(0);
		opacity: 0;
	}
	.navi-btn-on span:last-of-type {
		top: 11px;
		right: -4px;
		width: 32px;
		background-color: #fff;
		transform: rotate(45deg);
	}
	
	#pcMenu {
		display: none;
	}
	#spMenu {
		display: block;
	}
	
	/* Menu */
	.navi-menu {
		position: absolute;
		top: 0;
		left: 100vw;
		width: 100vw;
		height: 100vh;
		background-color: rgba(175, 32, 0, .9);
		padding: 56px 0 0;
		z-index: 8;
	}
	.menuBox {
		position: fixed;
		width: 100%;
		height: 100vh;
		overflow-y: scroll;
		-webkit-overflow-scrolling: touch;
	}
	.menuBox > ul {
		list-style: none;
		margin: 0;
		padding: 0 32px;
	}
	.menuBox > ul > li {
		position: relative;
		width: 100%;
		height: 64px;
		border-bottom: solid 1px rgba(255, 255, 255, .4);
	}
	.menuBox > ul > li:last-of-type {
		height: auto;
		border: none;
	}
	.menuBox > ul > li > a {
		width: 100%;
		height: 100%;
		color: #fff;
		font-size: 1.6rem;
		font-weight: bold;
		text-decoration: none;
		line-height: 100%;
		padding: 24px 0;
		display: block;
	}
	.menuBox > ul > li > a span {
		position: absolute;
		top: 50%;
		left: 96px;
		font-size: 1.1rem;
		font-weight: lighter;
		line-height: 100%;
		padding: 12px 8px 8px;
		border-left: solid 1px rgba(255, 255, 255, .4);
		transform: translateY(-50%);
	}
	.snsBox {
		width: 96px;
		height: 32px;
		list-style: none;
		margin: 16px auto;
		padding: 0;
	}
	.snsBox li {
		width: 48px;
		height: 32px;
		float: left;
		margin: 0 auto;
	}
	
	/* Eyecatche */
	.eyecatchBox > img {
		width: 88%;
	}
	
	/* Contents */
	.contents {
	padding: 64px 0 0;
	}

	section > .inner {
		width: 96%;
	}
	section h2 {
		margin: 0 0 16px;
	}
	section h2 img {
		width: 280px;
		height: auto;
	}
	
	/* About */
	#aboutBox {
		display: block;
	}
	#aboutBox .inner {
		width: 100%;
		overflow: hidden;
	}
	#aboutBox:before {
		top: -64px;
		width: 72%;
		height: 100%;
	}
	#aboutBox .leftBox {
		position: relative;
		bottom: auto;
		width: 95%;
		background-color: rgba(0, 0, 0, .4);
		padding: 40px 24px 32px;
	}
	#aboutBox .leftBox h3 {
		font-size: 3.0rem;
		line-height: 144%;
	}
	#aboutBox .leftBox p {
		font-size: 1.4rem;
		line-height: 200%;
	}
	#aboutBox .rightBox {
		width: 90%;
		margin-left: calc(100% - 90%);
		margin-top: -40px;
	}
	
	/* Price */
	#priceBoxes {
		display: block;
		margin-top: 64px;
	}

	.boxOuter {
		display: block;
		padding: 16px 0 0;
	}
	.priceBox {
		width: 100%;
		margin: 0;
		padding: 16px 24px 32px;
		display: block;
	}
	.priceBox:nth-of-type(2) {
		margin: 24px 0 0;
	}
	.priceBox:nth-of-type(2) {
		transition: 1.2s;
	}
	.priceBox h3 {
		width: 100%;
		font-size: 2.0rem;
		margin-bottom: 16px;
		border-right: none;
		border-bottom: solid 1px rgba(255, 255, 255, .3);
		padding: 0 0 4px;
	}
	
	.priceBox .specBox {
		padding: 0;
	}
	.priceBox .specBox h4 {
		padding: 4px 0;
	}
	
	.priceBox .perhourBox {
		margin: 24px 0 0;
	}
	.priceBox .perhourBox {
		width: 100%;
	}
	.priceBox .perhourBox p {
		position: relative;
		top: auto;
		font-size: 2.0rem;
		text-align: center;
		margin: 8px 0 0;
		transform: translateY(0);
	}
	.priceBox .perhourBox p strong {
		font-size: 4.0rem;
		margin: 0 0 0 16px;
	}	
	
	#priceBoxes .note {
		font-size: 1.0rem;
		text-align: center;
		margin: 8px 0;
	}
	
	/* Access */
	#accessBox {
		margin-top: 64px;
		padding: 64px 0;
	}
	.mapBox {
		padding: 16px 0 0;
	}
	
	/* Reserve */
	#reserveBox {
		background-size: auto 120%;
		background-position: -48px -40px;
		padding: 48px 0 64px;
	}
	#reserveBox a span {
		display: block;
	}
	#reserveBox a {
		width: 96%;
		height: auto;
		font-size: 2.1rem;
		line-height: 144%;
		text-shadow: 1px 1px 3px #000;
		margin: 16px auto 0;
		padding: 16px 0;
		transition: 0s;
	}
	#reserveBox a:hover {
		background-color: #ff6f00;
	}
	
	/* Footer */
	.footer .inner {
		width: 96%;
		padding: 32px 0;
	}
	.footer img {
		width: 200px;
		height: auto;	
	}
	.footer p:first-of-type {
		font-size: 1.3rem;
		line-height: 168%;
		margin: 16px 0 0;
	}
	.footer p:nth-of-type(2) {
		font-size: 1.2rem;
	}
}