/* ==================== 1_base.css ==================== */

html {
	background: black;
	color: white;
	font-family: 'Roboto', 'Noto Sans JP', sans-serif;
	font-weight: 400;
	text-align: center;
	font-feature-settings: 'palt';
	letter-spacing: 0.1em;
	-webkit-font-smoothing: antialiased;
	font-smoothing: antialiased;
}

img {
	vertical-align: bottom;
}
p {
	margin: 0;
}

body.loading {
	opacity: 0;
}
body {
	margin: 0;
	opacity: 1;
	transition: opacity 3s ease-out 0.4s;
}

html:lang(ja) :lang(en),
html:lang(en) :lang(ja) {
	display: none !important;
}


/* ==================== back.css ==================== */

body.loading #back {
	opacity: 0;
	transform: scale(1.1);
}
#back {
	position: fixed;
	z-index: -1;
	left: 0;
	top: 0;
	width: 100vw;
	height: 100vh;
	transform: scale(1);
	transition:
		opacity 3s ease-out,
		transform 4s ease-out;

	transition-delay: 100ms;
}

#back .body {
	position: relative;
	transition:
		filter 1s ease,
		opacity 1s ease;
}
body.scroll #back .body {
	/*
	filter: blur(0.4rem);
	*/
	opacity: 0.6;
}

@media all and (max-width: 640px) {
	#back {
		opacity: 0.6;
	}
	#back .body {
		width: 100vw;
		height: 333.5vw;
		background: url(../images/back_sp.jpg) repeat-y left top;
		background-size: 100% auto;
	}
}

@media all and (min-width: 641px) {
	#back {
		opacity: 0.6;
	}
	#back .body {
	}
	#back .body::before,
	#back .body::after {
		content: '';
		display: block;
		width: 100vw;
		height: 75vw;
		background: url(../images/back_pc.jpg) no-repeat center center;
		background-size: cover;
	}
	#back .body::after {
		transform: scale(1, -1);
		opacity: 0.5;
	}
}


/* ==================== book.css ==================== */

.ot-title {
	margin: 0.75em auto !important;
	font-weight: normal !important;
	text-align: center !important;
}
.ot-dtp-picker {
	display: inline-block;
	width: auto !important;
	margin: 2rem auto 0;
	padding: 0 !important;
}
.ot-dtp-picker-selector {
	width: auto !important;
}
.ot-dtp-picker-form {
	border: none !important;
	background: none !important;
}
.ot-dtp-picker.wide .ot-dtp-picker-form,
.ot-dtp-picker-selector,
.ot-dtp-picker .ot-dtp-picker-button {
	height: auto !important;
}
.ot-dtp-picker-selector select {
	left: 0;
}
.ot-dtp-picker-form > * {
	float: none !important;
	border: none !important;
}
.ot-dtp-picker-form > div {
	background: rgba(255,255,255,0.9);
}
.ot-dtp-picker-form > div:nth-of-type(-n+2) {
	border: solid #ccc !important;
}
.ot-dtp-picker.wide .ot-powered-by {
	margin: 1em 0 0 !important;
	background-position: center center !important;
	background-size: contain !important;
}
.picker__box {
	letter-spacing: 0 !important;
}
.ot-dtp-picker .ot-dtp-picker-button {
	width: auto !important;
	border-radius: 0 !important;
	padding: 1em 2em !important;
	box-shadow: none !important;
	background: rgba(255,0,0,0.8) !important;
	font-size: 120% !important;
	font-weight: normal !important;
	line-height: 3em;

}
.ot-dtp-picker-selector:hover .ot-dtp-picker-selector-link {
	outline: none !important;
}

@media all and (max-width: 640px) {
	#ot-reservation-widget {
		font-size: 0.85rem !important;
	}
	.ot-dtp-picker {
		width: 60% !important;
	}
	.ot-dtp-picker-form > div:nth-of-type(-n+2) {
		border-width: 0 0 1px 0 !important;
	}
	.ot-dtp-picker .ot-dtp-picker-button {
		width: 100% !important;
	}
}

@media all and (min-width: 641px) {
	#ot-reservation-widget {
		font-size: 0.75rem !important;
	}
	.ot-dtp-picker-form {
		display: table;
		border-collapse: collapse;
	}
	.ot-dtp-picker-form > * {
		display: table-cell !important;
		vertical-align: middle;
	}
	.ot-dtp-picker-form > div:nth-of-type(-n+2) {
		border-width: 0 1px 0 0 !important;
	}
}


/* ==================== footer.css ==================== */

footer img {
	width: 20em;
}


/* ==================== head.css ==================== */

#head {
	position: relative;
	width: 100vw;
	height: 100vh;
}

#head h1 {
	font-size: inherit;
	margin: 0;
}
#head h1 img {
	width: 21.25em;
}
#language {
	position: absolute;
	left: 0;
	display: inline-table;
	table-layout: fixed;
	width: 100%;
}
#language > span {
	display: table-cell;
	vertical-align: middle;
	line-height: 1;
	padding: 0.5em 1em;
	cursor: pointer;
}
#language > span:nth-of-type(1) {
	text-align: right;
	border-right: 1px solid white;
}
#language > span:nth-of-type(2) {
	text-align: left;
}

@media all and (max-width: 640px) {
	#language {
		bottom: 15vh;
	}
}

@media all and (min-width: 641px) {
	#head h1 {
		position: absolute;
		left: 50%;
		top: 40%;
		transform: translate(-50%, -50%);
	}

	#language {
		bottom: 4vw;
		font-size: 70%;
	}
}


/* ==================== main.css ==================== */

.block {
	width: 23em;
}

.block .body {
	transition: all 1200ms ease;
	opacity: 0.1;
}
.block.show .body {
	opacity: 1;
}

@media all and (max-width: 640px) {
	.block {
		margin: 0 auto;
	}
	.block:nth-of-type(3) {
		margin-top: 1em;
	}
}

@media all and (min-width: 641px) {
	main {
		position: relative;
		width: 47em;
		margin: 0 auto;
	}
	#pictures,
	#access {
		position: absolute;
		right: 0;
	}
	#pictures {
		top: 0;
	}
	#access {
		bottom: 0;
	}
	#googleMap {
		margin-top: 1em;
	}

	.block .body {
		transform: translate(0, 1em);
	}
	.block.show .body {
		transform: translate(0, 0);
	}
	.block#pictures .body {
		transition-duration: 2400ms;
	}
}



#pictures {
	height: 36em;
	overflow: hidden;
}
#pictures .body {
	/*
	position: relative;
	*/
	background: url(/images/pics.jpg) repeat-y;
	background-size: 100% auto;

	-webkit-animation-name: picScroll;
	-webkit-animation-duration: 40s;
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-timing-function: linear;

	animation-name: picScroll;
	animation-duration: 40s;
	animation-iteration-count: infinite;
	animation-timing-function: linear;
}
/*
#pictures::before {
	content: '';
	display: block;
	position: absolute;
	z-index: 1;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 5em;
	background: linear-gradient(0deg, rgba(0,0,0,0.5), rgba(0,0,0,0));
}
*/

@-webkit-keyframes picScroll {
	from {
		background-position: 0 10em;
	}
	to {
		background-position: 0 -49.1em;
	}
}

@keyframes picScroll {
	from {
		background-position: 0 10em;
	}
	to {
		background-position: 0 -49.1em;
	}
}

#pictures img {
	opacity: 0;
}



#access p {
	position: relative;
}
#access a {
	display: block;
	overflow: hidden;
	position: absolute;
	left: 0;
	box-sizing: border-box;
	width: 100%;
	color: rgba(0,0,0,0);
}
#access a:nth-of-type(1) {
	top: 0;
	height: 30.6%;
}
#access a:nth-of-type(2) {
	top: 30.6%;
	height: 16%;
}



#googleMap .body {
	overflow: hidden;
	width: 23em;
	height: calc(23em / 500 * 784);
}
#googleMap a {
	display: inline-block;
	position: relative;
	left: 50%;
	top: 0;
	height: 100%;
	transform: translate(-50%, 0);
}
#googleMap img {
	width: auto;
	height: 100%;
}


/* ==================== message.css ==================== */

#message .body {
	display: flex;
	flex-direction: column;
	align-items: center;
	box-sizing: border-box;
	border: 0.5px solid white;
	margin: 0 auto 2rem;
	padding: 1rem;
	background: rgba(0,0,0,0.25);
	font-size: 85%;
}

#message .body > * {
	margin: 1rem 0;
}

#message h2 {
	font-size: inherit;
	font-weight: normal;
}
#message h2 span {
	display: inline-block;
}

#message dl {
	display: grid;
	grid-template-columns: max-content auto;
	text-align: left;
}
#message dt,
#message dd {
	border: solid white;
	border-width: 0.5px 0;
	padding: 0.5em;
}

#message dt:nth-of-type(n+2),
#message dd:nth-of-type(n+2) {
	border-top: none;
}

#message dd {
	margin: 0;
}

@media (max-width: 640px) {
	#message .body {
		width: 23rem;
	}
}

@media (min-width: 641px) {
	#message .body {
		width: 47rem;
	}
}