/*------------------------------------
汎用
------------------------------------*/
body {max-width: 768px; min-width: 768px; min-height: 100%; position: relative; left: 0; overflow-x: hidden; background: url(../img/bg.jpg);}
body#modal_width {min-width: 700px; max-width: 700px;}
/*コンティナ*/
.container {display: block; width: calc(100% - 30px); margin: 0 auto; padding: 15px 0;}
/*汎用flex*/
.flex-wrap {display: flex; flex-wrap: wrap; justify-content: space-around;}
/*------------------------------------
ヘッダー
------------------------------------*/
#g-navi {
	position: fixed;
	top: 0;
	left: -280px;
	width: 240px;
	height: 100vh;
	background: #000;
	padding: 0 20px;
	z-index: 100;
	transition: .5s ease;
}
#g-navi img {display: block; margin: 0 auto; height: 280px; padding: 32px 0;}
#g-navi nav a {display: block; padding: 3px 5px; font-size: 17px; text-align: center; color: #999; border-bottom: 1px solid #999; opacity: 1;}
@media all and (-ms-high-contrast:none) {#g-navi nav a {padding: 10px 5px 3px;}}
#g-navi nav a:hover {color: #fff;}

#g-navi_index {
	position: fixed;
	top: 0;
	left: -300px;
	width: 300px;
	height: 100vh;
	background: linear-gradient(to right, rgba(0,0,0, .9) , rgba(0,0,0, .3));
	z-index: 100;
	transition: .5s ease;
}
#g-navi_index img {display: block; margin: 0 auto; padding: 32px 0;}
#g-navi_index nav a {display: block; padding: 14px 0; font-size: 16px; text-align: center; color: #fff; box-shadow: 0 -1px 0 0 rgba(0,0,0, 0.2) inset;}
#g-navi_index nav a:hover {background: rgba(0,0,0, .3);}
#nav-toggle {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	position: fixed;
	top: 8px;
	left: 8px;
	width: 80px;
	height: 52px;
	background: rgba(0,0,0, .8);
	border-radius: 5px;
	transition: .5s ease;
	z-index: 200;
}
#nav-toggle span {position: relative; width: 18px; height: 3px; background: #fff; transition: .5s ease;}
#nav-toggle span:nth-child(1) {top: -2px;}
#nav-toggle span:nth-child(3) {top: 2px;}
.hamburger_open #g-navi {left: 0;}
.hamburger_open #contents {left: 280px;}
.hamburger_open #nav-toggle {background: rgba(255,255,255, .8);}
.hamburger_open #nav-toggle span {background: #000;}
.index_g-nav_open #g-navi_index {left: 0;}
/*--------------------------------------------------------------------------
----------------------------------------------------------------------------
----------------------------------------------------------------------------
トップページ
----------------------------------------------------------------------------
----------------------------------------------------------------------------
--------------------------------------------------------------------------*/
#index {width: 100vw; height: 100vh; overflow: hidden;}
#index #index_logo {display: block; position: fixed; top: 50%; left: 50%; transform: translate(-50%,-50%); z-index: 90;}
#index .index_slider,
#index .index_slider:after {position: fixed; width: 100%; height: 100%; top: 0; left: 0; z-index: 0;}
#index .index_slider:after {content: ''; background: transparent url(../img/pattern.png) repeat top left;}
#index .index_slider li {
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	background: 50%/auto 100% no-repeat;
	opacity: 0;
	z-index: 0;
	backface-visibility: hidden;
	animation: imageAnimation 18s linear infinite 0s;
}
#index .index_slider li:nth-child(1) {background-image: url(../img/index/1.jpg);}
#index .index_slider li:nth-child(2) {background-image: url(../img/index/2.jpg); animation-delay: 6s;}
#index .index_slider li:nth-child(3) {background-image: url(../img/index/3.jpg); animation-delay: 12s;}
@keyframes imageAnimation {
	0% {opacity: 0;}
	10% {opacity: 1; transform: scale(1.1);}
	25% {opacity: 1; transform: scale(1.25);}
	40% {opacity: 0; transform: scale(1.4); animation-timing-function: ease-in;}
	50% {opacity: 0; transform: scale(1.5);}
	100% {opacity: 0;}
}
/*--------------------------------------------------------------------------
----------------------------------------------------------------------------
----------------------------------------------------------------------------
下層ページ
----------------------------------------------------------------------------
----------------------------------------------------------------------------
--------------------------------------------------------------------------*/
/*------------------------------------
汎用
------------------------------------*/
#contents {position: relative; top: 0; left: 0; margin: 0 auto; width: 100%; transition: .5s ease;}
.slider_box{width: 50%;}
.slider {display: block; width: 100%; height: 250px; margin-bottom: 10px!important; overflow: hidden;}
.slider li {display: block; width: 100%; height: 250px;}
.slider li a {position: relative; display: block; width: 100%; height: 250px;}
.slider li img {width: 100%; height: 100%; object-fit: cover; object-position:50%; font-family: 'object-fit: cover; object-position: 50% 50%;';}
.slider li .new {display: block; position: absolute; top: 16px; left: 0; font-size: 16px; color: #fff; height: 16px; line-height: 1; background: #c53d43; padding: 4px 8px; z-index: 1;}
.slider li h3,
.slider li h3 span,
.slider li h3 small {color: #fff;　line-height: 1.25;　letter-spacing: 0;　word-break: normal;}
.slider li h3 {position: absolute; bottom: 20px; right: 0; font-size: 16px; text-indent: -1em; background: rgba(0,0,0, 0.6); padding: 4px 8px 4px calc(1em + 8px); z-index: 1;}
@media all and (-ms-high-contrast:none) {.slider li h3 {padding: 10px 4px 4px;}}
.slider li h3 span {font-size: 16px; margin-left: 6px;}
.slider li h3 span:first-child {margin-left: 0;}
.slider li h3 small {font-size: 12px;}
.slider li:hover h3,.slider li:hover .new {opacity: 1;}

.slider_thumb {display: block; width: 100%; height: 50px; overflow: hidden; padding: 0;}
.slider_thumb li {display: block; width: 90px; height: 50px; margin: 0 4px;}
.slider_thumb li img {width: 90px; height: 50px; object-fit: cover; object-position:50%; font-family: 'object-fit: cover; object-position: 50% 50%;'; transition: .3s; cursor: pointer;}
.slider_thumb li img:hover {opacity: .8;}
.previcon,.nexticon {display: block; position: absolute; top: 12px; width: 26px; height: 25px; text-indent: -9999px; background: left center no-repeat; z-index: 2; cursor: pointer;}
.previcon {background-image: url(../img/controls_l.png); left: 0;}
.nexticon {background-image: url(../img/controls_r.png); right: 0;}
/*------------------------------------
お品書き
------------------------------------*/
#menu .lunch {display: flex; justify-content: space-between; margin-bottom: 40px;}
#menu .lunch h2 {width: 50%;}
#menu .lunch h2 img {width: auto; height: auto; margin-left: auto;}
#menu .lunch .slider_box {margin-top: 50px;}
#menu .lunch .slider_box .comments {margin-top: 10px;}
#menu .lunch .slider_box .comments p {font-size: 12px;}

#menu .dinner {margin-bottom: 40px;}
#menu .dinner ul {display: flex; flex-wrap: wrap; justify-content: flex-end; width: 100%; margin: -40px 0 0 auto;}
#menu .dinner ul li {width: 42%; text-align: right; margin: 0 0 20px 16px;}
#menu .dinner ul li img {width: 100%; height: 200px; object-fit: cover; object-position:50%; font-family: 'object-fit: cover; object-position: 50% 50%;';}
#menu .dinner ul li .name {display: flex; justify-content: flex-end; margin-top: 8px;}
#menu .dinner ul li .name h3 {font-size: 17px; line-height: 1.5;}
#menu .dinner ul li .name .new {font-size: 16px; color: #fff; height: 16px; line-height: 16px; background: #c53d43; padding: 4px 8px; margin-right: 8px; border-radius: 4px;}
#menu .dinner ul li .price {font-size: 17px}
#menu .dinner ul li .price span {font-size: 13px;}

#menu .dinner ul li.text-menu {width: 90%; margin: 0 0 16px;}
#menu .dinner ul li.text-menu ul {display: block; width: 100%; margin: 10px 0 10px auto;}
#menu .dinner ul li.text-menu ul li {width: 100%; text-align: right; margin: 0;}
#menu .dinner ul li.text-menu ul li p {margin-bottom: 8px;}
#menu .dinner ul li.text-menu ul li .menu {font-size: 16px;}
#menu .dinner ul li.text-menu ul li .menu br {display: none;}
#menu .dinner ul li.text-menu ul li .option {font-size: 16px; color: #977f15;}
#menu .dinner ul li.text-menu ul li .comments {font-size: 14px;}

#menu .dinner .d01 {display: block; width: 42%; margin: 40px 0 0 auto;}
#menu .fullcource .flex-wrap {display: block; margin-top: 16px;}
#menu .fullcource img {display: block; width: 100%; margin:0 0 20px auto;}
#menu .fullcource a {float: right;}
#menu .fullcource a img {width: 420px; margin-right: 24px;}
#menu .fullcource:after {content: ""; display: block; clear: both; visibility: hidden;}
/*------------------------------------
お部屋
------------------------------------*/
#room {padding: 20px 0;}
#room .top {display: flex; justify-content: space-between; align-items: center; margin-bottom: 60px;}
#room h3 {padding: 4px 0; font-size: 18px; text-align: right;}
#room .top .fade_slider {width: 460px; margin-top: 20px;}
#room .top h2 {width: calc(100% - 460px);}
#room .top h2 img {width: auto; height: auto;}
#room .middle {display: flex; justify-content: space-between;}
#room .middle div {width: calc(50% - 10px); margin-right: 20px;}
#room .middle div:last-child {margin-right: 0;}
#room .middle img,#room .bottom img {width: 100%; height: 260px; object-fit: cover; object-position:50%; font-family: 'object-fit: cover; object-position: 50% 50%;';}
#room .bottom {display: flex; flex-wrap: wrap; justify-content: space-between;}
#room .bottom div {width: calc(50% - 10px); margin-right: 20px;}
#room .bottom div:nth-child(even) {margin-right: 0;}
#room .bottom div p {font-size: 16px; line-height: 1.25; text-align: right; margin-bottom: 14px;}
/*------------------------------------
ご予約とご案内
------------------------------------*/
#reservation {display: flex; flex-wrap: wrap; padding-bottom: 40px;}
#reservation h2 {width: 100%;}
#reservation h2 img {display: block; width: 240px; margin: 48px auto 64px;}
#reservation section {width: calc(50% - 20px); margin: 0 10px;}
#reservation section .box {margin-bottom: 10px;}
#reservation section .box h3 {font-size: 18px; font-weight: 700;}
#reservation section .box p {line-height: 1.75; padding: 4px 0 4px 1em; text-indent: -1em;}
#reservation section .box .yoyaku {display: block; color: #fff; font-size: 16px; text-align: center; background: #231816; box-shadow: 0 0 0 1px #231816; margin-top: 20px; padding: 8px 0; opacity: 1;}
@media all and (-ms-high-contrast:none) {#reservation section .box .yoyaku {padding: 10px 0 6px;}}
#reservation section .box .yoyaku:hover {color: #231816; background: #fff;}
#reservation section:last-child {display: flex; justify-content: space-between; width: 100%; margin: 40px 0 0 0;}
#reservation section:last-child .box {margin: 0 20px;}
/*------------------------------------
English
------------------------------------*/
#english {display: flex; flex-wrap: wrap; justify-content: space-between;}
#english section {width: 49%; margin: 10px 0 40px;}
#english section .slider_box {min-width: 100%;}
#english section h2 img {width: 149px;}
#english .reservation h2 img {width: 280px;}
#english .reservation div {margin: -60px 0 0;}
#english .reservation div p {font-size: 15px; line-height: 1.75;}
#english .reservation div .map img {display: block; width: 100%; margin: 10px auto 0;}
#english .omotenashi h2 img {width: 172px;}
#english .omotenashi div {margin-top: -60px;}
#english .instagram {margin: 0;}
#english .instagram div {width: 100%; height: auto; margin-top: -40px;}
#english .instagram div iframe {border: none; overflow: hidden; width: 100%; min-height: 410px; max-height: 410px;}