*,
*:after,
*::before {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}
.container-main {position:relative; overflow:hidden;}
.scroller {/*overflow-y: scroll;*/}
.scroller,
.scroller-inner {position: relative;}
.menu-trigger {position: relative; padding-left: 5px; font-size: 0.9em;}
.mp-pusher {position: relative;	left: 0; height: 100%; max-width: 100%; overflow: hidden;}
.mp-pusher.mp-pushed{overflow: visible;}
.mp-menu {position: absolute; /* we can't use fixed here :( */ top: 0; left: 0;	z-index: 1;	width: 300px; 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%; height: 100%; background: #fff;
	-webkit-transform: translate3d(-100%, 0, 0);
	-moz-transform: translate3d(-100%, 0, 0);
	transform: translate3d(-100%, 0, 0);
}
/* overlays for pusher and for level that gets covered */
.mp-pusher::after,
.mp-level::after,
.mp-level::before {position: absolute; top: 0; right: 0; width: 0; height: 0; content: ''; opacity: 0;}
.mp-pusher::after,
.mp-level::after {
	background:rgba(0, 0, 0, 0.5);
	-webkit-transition: opacity 0.3s, width 0.1s 0.3s, height 0.1s 0.3s;
	-moz-transition: opacity 0.3s, width 0.1s 0.3s, height 0.1s 0.3s;
	transition: opacity 0.3s, width 0.1s 0.3s, height 0.1s 0.3s; z-index: 999;
}
.mp-level::after {z-index: -1;}
.mp-pusher.mp-pushed::after,
.mp-level.mp-level-overlay::after {width: 100%;	height: 100%; opacity: 1;
	-webkit-transition: opacity 0.3s;
	-moz-transition: opacity 0.3s;
	transition: opacity 0.3s;
}
.mp-level.mp-level-overlay {cursor: pointer;}
.mp-level.mp-level-overlay.mp-level::before {width: 100%;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; padding: 5px 15px 15px 15px; }
.mp-menu h2 {margin: 0; padding: 1em; color: rgba(0,0,0,0.4); text-shadow: 0 0 1px rgba(0,0,0,0.1); font-weight: 300; font-size: 2em; box-shadow: 0px 2px 4px 0px rgba(222, 222, 222, 0.88);}
.mp-menu.mp-overlap h2::before {position: absolute; top: 0; right: 0; margin-right: 8px; font-size: 75%; line-height: 1.8; opacity: 0;
	-webkit-transition: opacity 0.3s, -webkit-transform 0.1s 0.3s;
	-moz-transition: opacity 0.3s, -moz-transform 0.1s 0.3s;
	transition: opacity 0.3s, transform 0.1s 0.3s;
	-webkit-transform: translateX(-100%);
	-moz-transform: translateX(-100%);
	transform: translateX(-100%);
}
.mp-menu.mp-cover h2 {text-transform: uppercase; font-weight: 700; letter-spacing: 1px; font-size: 1em;}
.mp-overlap .mp-level.mp-level-overlay > h2::before {opacity: 1;
	-webkit-transition: -webkit-transform 0.3s, opacity 0.3s;
	-moz-transition: -moz-transform 0.3s, opacity 0.3s;
	transition: transform 0.3s, opacity 0.3s;
	-webkit-transform: translateX(0);
	-moz-transform: translateX(0);
	transform: translateX(0);
}
.mp-menu ul li > a {display: block;	padding: 0.3em 1em 0.3em 0px; outline: none; /*box-shadow: inset 0 -1px rgba(0,0,0,0.2); text-shadow: 0 0 1px rgba(255,255,255,0.1);*/ border-bottom: 1px solid #ccc;	font-size: 14px;
	-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;
}
.mp-menu ul li::before {position: absolute;	left:10px;	z-index:-1; color:rgba(0,0,0,0.2); line-height: 3.5;}
.mp-level > ul > li:first-child > a {/*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-level > ul > li:first-child > a:hover {background:#f2f2f2;	box-shadow:inset 0 -1px rgba(0,0,0,0);}
.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; font-weight: 700;*/ display: block; font-size: 0.8em; 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;}
.mp-back::after {font:normal normal normal 14px/1 FontAwesome; position:absolute; content:"\f104"; left:5px; font-size:35px; color:rgba(0,0,0,0.3); top:2px;}
.mp-menu .mp-level.mp-level-overlay > .mp-back,
.mp-menu .mp-level.mp-level-overlay > .mp-back::after{background:transparent; box-shadow:none; color:transparent;}
.no-csstransforms3d .mp-pusher,
.no-js .mp-pusher {padding-left: 300px;}
.no-csstransforms3d .mp-menu .mp-level,
.no-js .mp-menu .mp-level {display: none;}
.no-csstransforms3d .mp-menu > .mp-level,
.no-js .mp-menu > .mp-level {display: block;}
