@charset "utf-8";

.nav_btn_box {
	display: block;
	padding-left:10px;
	margin-right: 15px;
}
@media screen and (min-width: 640px) {
	.nav_btn_box {
	margin-right: 15px;
	}
}
/* メニュー */
.sp_menu{
	display: block;
	top: 36px;
	width: 100%;
	padding-bottom: 50px;
	height: 100%;
	background-color: rgba(0,0,0,0.9);
	position: fixed;
	left: 100%;
	z-index: 100;
	overflow-y: scroll;
	transition: all 0.2s ease-out;
}
@media screen and (min-width: 640px) {
	.sp_menu{
	top: 54px;
	}
}
.sp_menu label{
  color: #f1f1f1;
  padding: 12px 10px;
  display: block;
  margin: 0;
  border-bottom: 1px solid rgba(255,255,255,0.2);
  cursor:pointer;
  position: relative;
  font-size: 13px;
	text-align:left;
  background-color: rgba(0,0,0,0.5);
}

.sp_menu label::after{
	font-size: 1.2em;
	color:#f59b00;
    content: "＋";
    position: absolute;
    right:20px;
    top:20%;
    width:10px;
    height:10px;
}
.sp_menu label:active{
/*  background: #cfcfcf; */
}
.sp_menu label.none_submenu::after{
    content: " ";
}

label.ya_roll::after{
    content: "―";
}

.sp_menu input[type="checkbox"].on-off{
  display: none;
}

.sp_menu_btn:hover{
		cursor: pointer;
	}
.is_open{
		left:0;
	}


/* プルダウン */
.sp_menu div{
  transition: all 0.3s ease-out;
  margin: 0;
  padding: 0px 10px;
  list-style: none;
	background-color:rgba(0,0,0,0.5);
	color: #f1f1f1;
    top:10%;
}

.sp_menu div ul li{
  padding: 10px 15px 10px 30px;
	font-size: 13px;
	text-align:left;
  border-bottom: 1px dotted rgba(255,255,255,0.2);
}

.sp_menu div a{
	color: #f1f1f1;
}

.sp_menu input[type="checkbox"] + div{
  max-height: 0;
  overflow: hidden;
}
.sp_menu input[type="checkbox"]:checked + div{
    max-height: 500px;
}

	/*メニューボタンのエフェクト*/
.nav_button,
.nav_button span {
	display: inline-block;
	transition: all 0.4s;
	box-sizing: border-box;
}
.nav_button {
	z-index: 20;
	position: relative;
	width: 20px;
	height: 16px;
	top:2px;
	cursor:pointer;
}
@media screen and (min-width: 640px) {
	.nav_button {
	width: 24px;
	height: 28px;
	top:-2px;
	}
}

.nav_button:hover {
	cursor: pointer;
}
.nav_button span {
	position: absolute;
	width: 100%;
	height: 2px;
	background-color: #41413c;
	right:0;
}
/* 三 */
.nav_button span:nth-of-type(1) {	top: 0px;}
.nav_button span:nth-of-type(2) {	top: 7px;}
.nav_button span:nth-of-type(3) {	bottom: 0;}

/* × */
.nav_button.activer span:nth-of-type(1) {
	background: #41413c;
	-webkit-transform: translateY(6px) rotate(-45deg);
	transform: translateY(6px) rotate(-45deg);
}
.nav_button.activer span:nth-of-type(2) {
	opacity: 0;
}
.nav_button.activer span:nth-of-type(3) {
	background: #41413c;
	-webkit-transform: translateY(-7px) rotate(45deg);
	transform: translateY(-7px) rotate(45deg);
}

@media screen and (min-width: 640px) {
	.nav_button span:nth-of-type(1) {	top: 10px;}
	.nav_button span:nth-of-type(2) {	top: 18px;}
	.nav_button span:nth-of-type(3) {	bottom: 0;}
	.nav_button.activer span:nth-of-type(1) {
		-webkit-transform: translateY(8px) rotate(-45deg);
		transform: translateY(8px) rotate(-45deg);
	}
	.nav_button.activer span:nth-of-type(3) {
		-webkit-transform: translateY(-8px) rotate(45deg);
		transform: translateY(-8px) rotate(45deg);
	}
}
	/* メニュー全体BG（SPでは無効） */
.menu_bg,
.menu_bg.is_open{
	display:none;
}



	@media only screen and (min-width: 640px) {

	.menu_bg{
		display:block;
		position:fixed;
		pointer-events: none;
		top:54px;
		left:0;
		height:100%;
		width:100%;
		background:#000;	
		z-index:99;
		opacity:0;
		transition: all 0.2s ease-out;
	}
	.menu_bg.is_open{
		display:block;
		pointer-events: auto;
		width:100%;
		left:0;
		opacity:0.5;
	}
}

/* メニュー幅調整 */
	@media only screen and (min-width: 640px) {
	.is_open{
		width:50%;
		left:50%;
	}
}
	@media only screen and (min-width: 1280px) {
	.is_open{
		width:25%;
		left:75%;
	}
}
