/**
  a responsive navigation bar
  base stucture:
  + nav
    + nav-bar
      - nav-title
      - nav-button
      + nav-menu
        + nav-menu-item nav-submenu
          - nav-submenu-title
          + nav-submenu-list
            - nav-submenu-item
            - nav-submenu-item
            - nav-submenu-item
        - nav-menu-item
        - nav-menu-item
**/
.nav{
  position: relative;
  width: 100%;
  height: 3.5em;
  z-index: 1000;
  /*style*/
  background-color: #fff;
  color: #000;
  fill: #000;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  -o-user-select: none;
  user-select: none;
}

/**
 * some optional style class
 */
/** fixed nav bar */
.nav.fixed{
  position: fixed;
  top:0;
}
.nav.fixed + * {
  margin-top: 3.5em;
}
/*add shadow*/
.nav.shadow{
  box-shadow: 0 0 10px 1px rgba(0, 0, 0, .1),0 0 0 1px rgba(0,0,0,.02);
}
.nav.transparent{
  background: transparent;
}

a{
  text-decoration: none;
  color: inherit;
}
/*nav bar*/
.nav .nav-bar{
  height:100%;
}

/* title */
.nav .nav-title{
  height: 100%;
  padding: 0 1em;
  z-index: 10;
}
/*
  menu button
*/
.nav .nav-button {
  display: none;
  cursor: pointer;
  padding: .1em .5em;
  margin-right: 1em;
  transition: box-shadow .1s linear, background .1s linear;
}
/*
* navigation menu
*/
.nav .nav-menu{
  position: absolute;
  top: 0;
  right: 0;
  text-align: right;
  height: 100%;
  width: 100%;
  /*background: inherit;*/
}
.nav .nav-menu-item,
.nav .nav-submenu-item{
  display: block;
  cursor: pointer;
  padding: 0 2em;
  height: 100%;
  line-height: 3.5em;
}
.nav .nav-submenu-item{
  padding: 0;
}
.nav .nav-menu-item:hover, .nav .nav-menu-item.active{
  background: rgba(0,0,0,.2);
}
/**
 * navigation sub menu
 */
.nav .nav-submenu{
  position: relative;
}

/*make a little triangle*/
.nav-submenu-title:before{
  display: inline-block;
  content: "";
  margin-right: .2em;
  vertical-align: middle;
  border-top: .3em solid transparent;
  border-left: .5em solid currentColor;
  border-bottom: .3em solid transparent;
  transition:transform .2s;
}
.nav-submenu-list{
  display: none;
  position: absolute;
  left: 0;
  top: 100%;
  width:100%;
  text-align: center;
  background: inherit;
}
.nav-submenu.active > .nav-submenu-title{
  font-weight: bold;
}
.nav-submenu.active > .nav-submenu-list{
  display: block;
}
.nav-submenu.active .nav-submenu-title:before{
  transform: rotate(90deg);
}

/*
  nav media
*/
@media (max-width: 900px) {
  /*collapse the menu list*/
  .nav .nav-menu{
    position: static;
    z-index: -1;
    padding:1em 0;
    height: auto;

    box-shadow: 0 10px 10px -5px rgba(0, 0, 0, .1),0 1px 0 1px rgba(0,0,0,.02);

    transition: transform 0.2s ease,border-top .3s cubic-bezier(1, 0, 1, 0),opacity .2s cubic-bezier(.6, 0, .4, 1);
    border-top: 1px solid transparent;
    transform: translateY(-100%);
    opacity: 0;
  }
  .nav .nav-menu.active{
    background: rgba(0,0,0,.6);
  }

  .nav .nav-menu-item{
    width: 100%;
  }
  /*menu button appears*/
  .nav .nav-button{
    display:block;
  }

  .nav-submenu-list{
    text-align: right;
    position: relative;
    background: none;
  }
  /*things happens when button clicked*/
  .nav-button.active + .nav-menu{
    border-top-color: #ddd;
    transform: translateY(0);
    opacity: 1;
  }
  .nav-button.active{
    background: #ddd;
    box-shadow: inset 1px 1px 1px #aaa;
  }
}
