@charset "UTF-8";

.sub_menu,
.sub_menu span {
  display: inline-block;
  transition: all .4s;
  box-sizing: border-box;
}
.sub_menu {
  position: relative;
  width: 30px;
  height: 25px;
}
.sub_menu span {
  position: absolute;
  left: 0;
  width: 100%;
  height: 2px;
  color:#000;
  font-size:10px;
  background-color: #000;
  border-radius: 4px;
}
.sub_menu span:nth-of-type(1) {
  top: 0;
}
.sub_menu span:nth-of-type(2) {
  top: 9px;
}
.sub_menu span:nth-of-type(3) {
  top: 18px;
}
.sub_menu span:nth-of-type(4) {
  background-color: #fff;
  bottom: 0;
}

.sub_menu.active span:nth-of-type(1) {
  -webkit-transform: translateY(9px) rotate(-45deg);
  transform: translateY(9px) rotate(-45deg);
}
.sub_menu.active span:nth-of-type(2) {
  opacity: 0;
}
.sub_menu.active span:nth-of-type(3) {
  -webkit-transform: translateY(-9px) rotate(45deg);
  transform: translateY(-9px) rotate(45deg);
}


.sub_menu_overlay {
  z-index:15000; /*デモではheader,footerをz-index:1にしたので それより上げています*/
  display:none; /*jsでフェードインされるまでdisplay:none*/
  position:fixed;
  top:0;
  left:0;
  width:100%;
  height:100vh; /*100vhでビューポートの高さいっぱいになります*/
  background-color:rgba(0,0,0,.5);
}

.sub_menu_nav {
  width: 300px;
  height:100vh; /*100vhでビューポートの高さいっぱいになります*/
  transition: all 0.2s;
  transform: translate(-300px);
  position: absolute;
  top: 0;
  left: 0;
  z-index: 15001;
  background-color: #000;
/*  background-image: url(images/back_img.png);*/
  overflow-y:auto;
}

.sub_menu_nav.active {
  transform: translate(0);
}

.sub_menu_nav ul {
  margin: 0 auto; padding: 0;
}

.sub_menu_nav ul > li {
  display: block;
  text-align: left;
}

.sub_menu_nav ul ul > li {
  display: block;
  text-align: left;
}

.sub_menu_nav ul li a:hover {
/*  filter:alpha(opacity=80);
  opacity: 0.80;
*/
  background-color: rgba(255,255,255,.3);
}

.sub_menu_nav ul li a {
  display: inline-block;
  width:300px;
  color: #fff;
  text-align: left;
  text-decoration: none;
  white-space: nowrap;
}
.sub_menu_nav li ul li a {
  display: inline-block;
  width:300px;
  color: #fff;
  text-align: left;
  text-decoration: none;
  white-space: nowrap;
}


.sub_menu_nav > ul > li:not(:first-child) {
  border-top: 1px solid #fff;
}

.sub_menu_nav > ul > li:last-child {
  border-bottom: 1px solid #fff;
}

.sub_menu_nav li ul li {
  border-top: 1px solid #fff;
}

.sub_menu_nav > ul > li > a {
  padding: .5em;
}

.sub_menu_nav li ul li a {
  padding: .25em .5em .25em 1.5em;
}

/*
.sub_menu_nav li ul {
  transition-duration:3s;
  display: none;
}
.sub_menu_nav li:hover ul{
  transition-duration:3s;
  display: block;
}
*/

