@charset "utf-8";
/* CSS Document */

/* header */
header > div:first-child{
	justify-content: center;
	padding: 8px 0;
	gap:0;
}
header #logo img{
	width: 118px;
	padding-left: 0;
}
#reserve_link{
	display: none;
}
/* 下部menu */
#sp_menu {
    display: flex;
    position: fixed;
    width: 100%;
    background-color: #FFFFFF;
    bottom: 0;
    left: 0;
    z-index: 9999;
}
#sp_menu li {
    width: 50%;
}
#sp_menu li:first-child{
    border-right: 1px solid #FFF;
	cursor: pointer;
}
#sp_menu li a{
    display: flex;
    text-align: center;
    justify-content: center;
	align-items: center;
    height: 70px;
    text-decoration: none;
    font-weight: bold;
    position: relative;
    box-sizing: border-box;
	color: #FFF;
	font-size: 1rem;
	letter-spacing: 2px;
}
#sp_menu li:nth-child(1) a{
	background-color: #3B8758;
	position: relative;
	padding-left: 28px;
    pointer-events: none;
}
#sp_menu li:nth-child(1) a::before,
#sp_menu li:nth-child(1) a::after{
	content: "";
    display: block;
    position: absolute;
    left: -80px;
    right: 0;
    margin: auto;
    transition: all 0.6s;
}
#sp_menu li:nth-child(1) a::before {
    width: 18px;
    height: 4px;
    top: 28px;
    border-top: 2px solid #FFF;
    border-bottom: 2px solid #FFF;
}
#sp_menu li:nth-child(1) a:after{
	width: 11px;
    height: 2px;
    background-color: #FFF;
    top: 40px;
    right: 8px;
}
#sp_menu li.active:nth-child(1) a::before,
#sp_menu li.active:nth-child(1) a::after{
    left: -61px;	
}
#sp_menu li.active:nth-child(1) a::before {
    height: 2px;
    border: none;
    background-color: #FFF;
    transform: rotate(-44deg);
    top: 34px;
}
#sp_menu li.active:nth-child(1) a::after {
    transform: rotate(44deg);
    width: 18px;
    right: 0;
    top: 34px;
}
#sp_menu li:nth-child(2) a{
	background-color: #2D5748;
}
#sp_menu li:nth-child(2) a::before{
	content: url("../images/icon/reserve.svg");
    height: 20px;
    width: 16px;
	padding-right: 10px;
	vertical-align: middle;
}
/* menu */
#gnavi{
    position: fixed;
    z-index: 999;
    top: auto;
    right: 0;
    bottom: -120%;
    width: 100%;
    height: 100%;
    transition: all 0.6s;
	background-color: #F2F0EA;
	padding: 70px 0;
}
#gnavi::before {
    content: "メニュー";
    display: block;
    position: absolute;
    background-color: #3B8758;
    width: 100%;
    top: 0;
    left: 0;
    text-align: center;
    padding: 22px 0;
    color: #FFF;
    letter-spacing: 1px;
	font-size: 1rem;
	
}
#gnavi.active {
    right: 0;
    bottom: 0;
	overflow: scroll;
	 -ms-overflow-style: none;
	scrollbar-width: none;
}
#gnavi.active::-webkit-scrollbar{
  display: none;
}
#gnavi .gnavi_sub_menu li,
#gnavi li .gnavi_sub_menu,
#gnavi li .gnavi_plus {
    display: block;
}
#gnavi .gnavi_ul{
	padding-top: 26px;
	display: block;
	width: auto;
	min-width: inherit;
}
#gnavi .gnavi_ul > li {
    padding: 0 33px;
    position: relative;
}
#gnavi .gnavi_ul > li > a:first-child span:after{
	content: none;
	opacity: 1;
}
#gnavi .gnavi_ul > li.open > a:first-child span:after,
#gnavi .gnavi_ul > li > a:first-child:hover span:after{
    width: 22px;
	opacity: 1;
}
#gnavi .gnavi_ul > li > a:first-child{
	width: fit-content;
    border: none;
	z-index: 1;
	transition: all .3s ease-in-out;
}
#gnavi .gnavi_ul > li > a:first-child span{
	transition: all .3s ease-in-out;	
}
#gnavi .gnavi_ul > li > a:hover:first-child span{
	opacity: 0.7;
}

#gnavi .gnavi_ul > li:first-child > a:nth-child(2){
	border-top: #A8A8A8 1px dotted;
}
#gnavi .gnavi_ul > li > a:nth-child(2){
	border-bottom: #A8A8A8 1px dotted;
}
#gnavi .gnavi_ul li a {
	display: block;
    border-bottom: #A8A8A8 1px dotted;
	width: auto;
    height: auto;
	text-decoration: none;
	color: #50402E;
	padding: 18.5px 10px;
	position: relative;
	font-size: 0.875rem;
}
#gnavi .gnavi_ul .gnavi_plus {
    position: absolute;
    top: 0px;
    left: 33px;
    border-bottom: 0px;
    width: calc(100% - 66px);
}
#gnavi .gnavi_ul .gnavi_plus span {
    visibility: hidden;
    padding-left: 0;
}
#gnavi .gnavi_sub_menu li a{
	padding: 18.5px 40px 18.5px 46px;
	border-top:none;
}
#gnavi .gnavi_sub_menu li:first-child a{
	border-top: #A8A8A8 1px dotted;;
}
#gnavi .gnavi_ul li.gnavi01 a{
	width: 100%;
	border-bottom: #A8A8A8 1px dotted;
}
#gnavi .gnavi_ul li.gnavi01 > a span::after,
#gnavi .gnavi_ul li.gnavi02 > a.gnavi_plus::after,
#gnavi .gnavi_ul .gnavi_sub_menu a span::after{
	width: 22px;
	height: 22px;
	display: block;
    position: absolute;
	top: 0;
	bottom: 0;
	right: 10px;
	left: auto;
    margin: auto;
	background-color: transparent;
}
#gnavi .gnavi_ul .gnavi_sub_menu a span::after,
#gnavi .gnavi_ul li.gnavi01 > a span::after{
	content: url("../images/icon/menu_btn1.svg");	
}
#gnavi .gnavi_ul li.gnavi02 > a.gnavi_plus::after{
	content: url("../images/icon/menu_btn3.svg");		
}
#gnavi .gnavi_ul li.gnavi02 > a.selected::after{
	content: url("../images/icon/menu_btn2.svg");		
}
#sp_link{
	display: flex;
	padding: 23px 33px;
	gap: 15px;
	flex-wrap: wrap;
}
#sp_link p a{
	font-size: 0.875rem;
	text-decoration: none;
	color: #50402E;
	position: relative;
	padding-left: 10px;
	transition: opacity .3s ease-in-out;
}
#sp_link p a:hover{
	opacity: 0.7;
}
#sp_link p a::before{
	content: "";
	width: 4px;
	height: 1px;
	background-color: #50402E;
	position: absolute;
	top: 0;
    bottom: 0;
    margin: auto auto auto -10px;	
}
header .sub_menu_list{
	opacity: 1;
	pointer-events:all;
	display: none;
	position: relative;
	bottom:0;
	padding: 0;
	height: auto;
	transition: none;
	z-index: 0;
}
header .sub_menu_list > div:first-child{
	display: none;
}
header .sub_menu_list ul {
    padding: 0;
    margin-top: 0;
}
header .sub_menu_list ul li{
	max-width: inherit;
}