*, *:after, *::before {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}

html, .nav_container {
    min-height: 100%;
}

section {
    -webkit-transition: all 0.5s;
    -moz-transition: all 0.5s;
    -o-transition: all 0.5s;
    -ms-transition: all 0.5s;
    transition: all 0.5s;
}

li.icon-arrow-left .fa-angle-left {
    position: absolute;
    line-height: 50px;
    font-size: 25px;
    left: 10px;
    color: #F0F8FF;
    z-index: -1;
}

a.mp-back .fa-caret-right {
    float: right;
    line-height: 25px;
    color: #F0F8FF;
}

.nav_container {
    position: absolute;
    z-index: 99;
    top: 0;
    bottom: 0;
}

.mp-pusher {
    position: relative;
    left: 0;
    min-height: 100%;
}

.mp-menu {
    position: absolute; /* we can't use fixed here :( */
    top: 0;
    left: 0;
    z-index: 1;
    width: 300px;
    min-height: 100%;
    -webkit-transform: translate3d(-100%, 0, 0);
    -moz-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
}

.mp-level {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    min-height: 100%;
    -webkit-transform: translate3d(-100%, 0, 0);
    -moz-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
    background: #00636b;
}

.mp-pusher.mp-pushed::after, .mp-level.mp-level-overlay::after {
    width: 100%;
    min-height: 100%;
    opacity: 1;
    -webkit-transition: opacity 0.3s;
    -moz-transition: opacity 0.3s;
    transition: opacity 0.3s;
}

.mp-level.mp-level-overlay.mp-level::before {
    width: 100%;
    min-height: 100%;
    background: transparent;
    opacity: 1;
}

.mp-pusher, .mp-level {
    -webkit-transition: all 0.5s;
    -moz-transition: all 0.5s;
    transition: all 0.5s;
}

/* overlap */
.mp-overlap .mp-level.mp-level-open {
    box-shadow: 1px 0 2px rgba(0, 0, 0, 0.2);
    -webkit-transform: translate3d(-40px, 0, 0);
    -moz-transform: translate3d(-40px, 0, 0);
    transform: translate3d(-40px, 0, 0);
}

/* First level */
.mp-menu > .mp-level,
.mp-menu > .mp-level.mp-level-open,
.mp-menu.mp-overlap > .mp-level,
.mp-menu.mp-overlap > .mp-level.mp-level-open {
    box-shadow: none;
    -webkit-transform: translate3d(0, 0, 0);
    -moz-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
}

/* cover */
.mp-cover .mp-level.mp-level-open {
    -webkit-transform: translate3d(0, 0, 0);
    -moz-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
}

.mp-cover .mp-level.mp-level-open > ul > li > .mp-level:not(.mp-level-open) {
    -webkit-transform: translate3d(-100%, 0, 0);
    -moz-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
}

/* content style */
.mp-menu ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.mp-menu h2 {
    margin: 0;
    padding: 1em .4em 1em 1em;
    color: #f5f5f5;
    font-weight: 300;
    font-size: 24px;
}

.mp-menu h2 .fa {
    float: right;
    color: aliceblue;
}

.mp-menu.mp-cover h2 {
    text-transform: uppercase;
    font-weight: 700;
    letter-spacing: 1px;
    font-size: 1em;
}

.mp-menu ul li > a,
.mp-menu ul li > form > button {
    display: block;
    padding: 0.7em 1em 0.7em 1.8em;
    outline: none;
    box-shadow: inset 0 -1px rgba(0, 0, 0, 0.2);
    -webkit-transition: background 0.3s, box-shadow 0.3s;
    -moz-transition: background 0.3s, box-shadow 0.3s;
    transition: background 0.3s, box-shadow 0.3s;
    font-size: 17px;
    color: rgba(255, 255, 255, 0.7);
    width: 100%;
}

.mp-menu ul li > form {
    margin-bottom: 0;
    box-shadow: inset 0 -1px rgba(0, 0, 0, 0.2);
}

.mp-menu ul li > form > button {
    background-color: transparent;
    -webkit-box-shadow: none;
    box-shadow: none;
    border: none;
    text-align: left;
}

.mp-level > ul > li:first-child > a,
.mp-level > ul > li:first-child > button {
    box-shadow: inset 0 -1px rgba(0, 0, 0, 0.2), inset 0 1px rgba(0, 0, 0, 0.2);
}

.mp-menu ul li a:hover,
.mp-menu ul li button:hover,
.mp-level > ul > li:first-child > button:hover,
.mp-level > ul > li:first-child > a:hover {
    background: rgba(0, 0, 0, 0.2);
    box-shadow: inset 0 -1px rgba(0, 0, 0, 0);
    color: #F0F8FF;
}

.mp-menu .mp-level.mp-level-overlay > ul > li > a,
.mp-level.mp-level-overlay > ul > li:first-child > a {
    box-shadow: inset 0 -1px rgba(0, 0, 0, 0);
}

.mp-level > ul > li:first-child > a:hover,
.mp-level.mp-level-overlay > ul > li:first-child > a {
    box-shadow: inset 0 -1px rgba(0, 0, 0, 0), inset 0 1px rgba(0, 0, 0, 0);
}

/* seems like Chrome 34.0.1847.131 needs the second shadow otherwise the transition breaks */

.mp-back {
    background: rgba(0, 0, 0, 0.1);
    outline: none;
    color: #fff;
    text-transform: uppercase;
    letter-spacing: 1px;
    display: block;
    padding: 1em;
    position: relative;
    box-shadow: inset 0 1px rgba(0, 0, 0, 0.1);
    -webkit-transition: background 0.3s;
    -moz-transition: background 0.3s;
    transition: background 0.3s;
    font-weight: 400;
    font-size: 15px;
}

.mp-back:focus {
    color: #fff;
}

.mp-menu .mp-level.mp-level-overlay > .mp-back,
.mp-menu .mp-level.mp-level-overlay > .mp-back .fa-caret-right {
    background: transparent;
    box-shadow: none;
    color: transparent;
}