/* サイドオープン時にメインコンテンツを覆う部分 */
.overlay {
  content: '';
  visibility: hidden;
  position: fixed;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 100%;
  background: rgba(0,0,0,0);
  -webkit-transition: all .5s ease;
  transition: all .5s ease;
  z-index: 3;
}
.overlay::after {
  visibility: hidden;
  position: fixed;
  top: 40%;
  left: 0;
  display: block;
  width: 100%;
  height: 50px;
  color: rgba(255,255,255,0);
  font-size: 40px;
  font-weight: bold;
  text-align: center;
  -webkit-transition: all .5s ease;
  transition: all .5s ease;
}
.side-open .overlay {
  visibility: visible;
  cursor: pointer;
  background: rgba(0,0,0,.6);
}
.side-open .overlay::after {
  visibility: visible;
  color: rgba(255,255,255,.7);
}

/* サイドメニュー ※リストのスタイルは省略 */
.side-menu {
  position: fixed;
  top: 0;
  right: -240px;
  width: 240px;
  height: 100%;
  padding-top: 0px;
  text-align: left;
  font-size: 1rem;
  background:#1b212a;
  color: #fff;
  z-index: 1;
  overflow-y:hidden;
    
  -webkit-transition: all .3s ease;
  transition: all .3s ease;
}
.side-open .side-menu {
  right: 0;
}
.side-open .side-menu {
  overflow-y:scroll;
}
.side-menu nav{
    padding-bottom: 100px;
}
.side-menu nav ul{
    width: 100%;
    border-top: #333 solid 1px;
}
.side-menu nav li{
    line-height: 3rem;
    border-bottom: #333 solid 1px;
}
.side-menu nav li span{
    padding: 0 10px;
}
.side-menu nav li span a{
    color: #fff;
}
.side-menu nav li ul{
    background: #d2d2d2;
    border-top: #333 solid 1px;
}
.side-menu nav li ul li{
    padding: 0 20px;
}
.side-menu nav li ul li:last-of-type{
    border-bottom: 0;
}
/* 開閉用ボタン ※ボタンの細かいスタイルは省略 */
.side-menu-btn {
  display:none
}
.side-menu-btn .toggle{
    display: block;
    left: 10px;
    height: 24px;
    width: 30px;
    top: 12px;
    position: absolute;
    z-index: 10;
}
.side-menu-btn .toggle span {
    display: block;
    height: 2px;
    width: 100%;
    background: #000;
    position: absolute;
    -moz-transition: 0.3s ease-in-out;
    -webkit-transition: 0.3s ease-in-out;
    transition: 0.3s ease-in-out;
}
.side-menu-btn .toggle span.toggle-1{
    top: 0;
}
.side-menu-btn .toggle span.toggle-2{
    margin: 11px auto;
}
.side-menu-btn .toggle span.toggle-3{
    bottom: 0;
}
.side-open .side-menu-btn .toggle span.toggle-1{
    top: 11px;
    transform: rotate(45deg);
}
.side-open .side-menu-btn .toggle span.toggle-2{
    display: none;
}
.side-open .side-menu-btn .toggle span.toggle-3{
    bottom: 11px;
    transform: rotate(-45deg);
}

/* メインコンテンツ */
.l-all-wrap {
  position: relative;
  width: 100%;
  height: 100%;
  -webkit-transition: all .5s ease;
  transition: all .5s ease;
  z-index: 2;
  background: #fff;
}
.side-open .l-all-wrap{
    position: fixed;
    left: 0;
    top: 0;
}

/* サイドメニューオープン */
.side-open .l-all-wrap,
.side-open .overlay,
.side-open .side-menu-btn {
  -webkit-transform: translate3d(-240px, 0, 0);
  transform: translate3d(-240px, 0, 0);
}


@media only screen and (max-width: 767px){
    
    .side-menu {
      font-size: 0.8rem;
    }
    .side-menu nav.category-menu li{
        line-height: 2rem;
    }
    .side-menu-btn {
      position: fixed;
      top: 0;
      right: 0;
      margin-top: 0;
      width: 60px;
      height: 60px;
      padding: 0;
      cursor: pointer;
      z-index: 4;
      display:block;
      -webkit-transition: all .5s ease;
      transition: all .5s ease;
    }
    .side-menu-btn .toggle{
        left: 15px;
        height: 20px;
        width: 24px;
        top: 18px;
    }
    .side-menu-btn .toggle span.toggle-2{
        margin: 9px auto;
    }
    .side-menu-btn .toggle span {
        background: #000;
    }
    .side-open .side-menu-btn .toggle span.toggle-1{
        top: 9px;
    }
    .side-open .side-menu-btn .toggle span.toggle-3{
        bottom: 9px;
    }
}