/*
 * Menu Effects: A collection of CSS3 menu effects (degrades gracefully in IE8).
 *
 * Don't hesitate to create new effects and remove the ones you don't need.
 *
 * latest version and complete README available on Github:
 * https://github.com/louisremi/menu-effects
 *
 * Copyright 2012 @louis_remi
 * Licensed under the MIT license.
 *
 * Are you using this in a paid work?
 * Send me music http://www.amazon.co.uk/wishlist/HNTU0468LQON
 *
 */

.menu, .menu ul {
    list-style: none;
    padding: 0;
}

.menu ul {
    margin: 0;
}

.menu>li {
    position: relative;
    display: inline-block;
    outline: 0;
}

.submenu {
    position: absolute;
    left: 0;
    top: 100%;
    z-index: 0;
    max-height: 0;
    /* A .submenu should be only revealed when hovering the .menu */
    pointer-events: none;
}

.menu>li:hover .submenu, .menu>li:focus .submenu {
    pointer-events: auto;
    z-index: 10;
    max-height: 2000px;
    -webkit-transition: none;
    -moz-transition: none;
}

/* Default
 ================================================================= */

.submenu li {
    opacity: 0;
    -webkit-transition: opacity .4s, -webkit-transform .6s, max-height .6s;
    -moz-transition: opacity .4s, -moz-transform .6s, max-height .6s;
    -ms-transition: opacity .4s, -ms-transform .6s, max-height .6s;
    -o-transition: opacity .4s, -o-transform .6s, max-height .6s;
    transition: opacity .4s, transform .6s, max-height .6s;
}

.menu>li:hover .submenu li, .menu>li:focus .submenu li {
    opacity: 1;
    -webkit-transform: none;
    -moz-transform: none;
    -ms-transform: none;
    -o-transform: none;
    transform: none;
}

/* Bounce
 ================================================================= */

.bounce {
    overflow: visible;
}

.bounce li {
    -webkit-transform: translateX(-40%);
    -moz-transform: translateX(-40%);
    -ms-transform: translateX(-40%);
    -o-transform: translateX(-40%);
    transform: translateX(-40%);
    -webkit-transition-timing-function: cubic-bezier(0, .35, .5, 1.7);
    -moz-transition-timing-function: cubic-bezier(0, .35, .5, 1.7);
    -ms-transition-timing-function: cubic-bezier(0, .35, .5, 1.7);
    -o-transition-timing-function: cubic-bezier(0, .35, .5, 1.7);
    transition-timing-function: cubic-bezier(0, .35, .5, 1.7);
}

/* Radial
 ================================================================= */

.radial li {
    -webkit-transform: translateY(-120px) rotate(70deg);
    -moz-transform: translateY(-120px) rotate(70deg);
    -ms-transform: translateY(-120px) rotate(70deg);
    -o-transform: translateY(-120px) rotate(70deg);
    transform: translateY(-120px) rotate(70deg);
    -webkit-transform-origin: 0 0;
    -moz-transform-origin: 0 0;
    -ms-transform-origin: 0 0;
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
}

/* Winding
 ================================================================= */

.winding {
    -webkit-perspective: 400px;
    -moz-perspective: 400px;
    -ms-perspective: 400px;
    -o-perspective: 400px;
    perspective: 400px;
}

.winding li {
    -webkit-transform: rotateY(90deg);
    -moz-transform: rotateY(90deg);
    -ms-transform: rotateY(90deg);
    -o-transform: rotateY(90deg);
    transform: rotateY(90deg);
    -webkit-transform-origin: 0 0;
    -moz-transform-origin: 0 0;
    -ms-transform-origin: 0 0;
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
}

/* Shield
 ================================================================= */

.shield {
    overflow: visible;
    -webkit-perspective: 400px;
    -moz-perspective: 400px;
    -ms-perspective: 400px;
    -o-perspective: 400px;
    perspective: 400px;
}

.shield li {
    -webkit-transform: rotateX(90deg);
    -moz-transform: rotateX(90deg);
    -ms-transform: rotateX(90deg);
    -o-transform: rotateX(90deg);
    transform: rotateX(90deg);
    -webkit-transform-origin: 0 0;
    -moz-transform-origin: 0 0;
    -ms-transform-origin: 0 0;
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transition-timing-function: cubic-bezier(0, .35, .5, 1.7);
    -moz-transition-timing-function: cubic-bezier(0, .35, .5, 1.7);
    -ms-transition-timing-function: cubic-bezier(0, .35, .5, 1.7);
    -o-transition-timing-function: cubic-bezier(0, .35, .5, 1.7);
    transition-timing-function: cubic-bezier(0, .35, .5, 1.7);
}

/* Pop
 ================================================================= */

.pop {
    overflow: visible;
}

.pop li {
    -webkit-transform: scale(.2);
    -moz-transform: scale(.2);
    -ms-transform: translateX(-80%);
    -o-transform: translateX(-80%);
    transform: translateX(-80%);
    -webkit-transition-timing-function: cubic-bezier(0, .35, .5, 1.5);
    -moz-transition-timing-function: cubic-bezier(0, .35, .5, 1.5);
    -ms-transition-timing-function: cubic-bezier(0, .35, .5, 1.5);
    -o-transition-timing-function: cubic-bezier(0, .35, .5, 1.5);
    transition-timing-function: cubic-bezier(0, .35, .5, 1.5);
}

/* Helix
 ================================================================= */

.helix {
    -webkit-perspective: 400px;
    -moz-perspective: 400px;
    -ms-perspective: 400px;
    -o-perspective: 400px;
    perspective: 400px;
}

.helix li {
    -webkit-transform: rotateY(90deg);
    -moz-transform: rotateY(90deg);
    -ms-transform: rotateY(90deg);
    -o-transform: rotateY(90deg);
    transform: rotateY(90deg);
}

/* Wave
 ================================================================= */

.wave li {
    -webkit-transform-origin: 0% 0%;
    -moz-transform-origin: 0% 0%;
    -ms-transform-origin: 0% 0%;
    -o-transform-origin: 0% 0%;
    transform-origin: 0% 0%;
    -webkit-transform: skewY(-90deg);
    -moz-transform: skewY(-90deg);
    -ms-transform: skewY(-90deg);
    -o-transform: skewY(-90deg);
    transform: skewY(-90deg);
}

/* Fan
 ================================================================= */

.fan li {
    -webkit-transform-origin: 0% 0%;
    -moz-transform-origin: 0% 0%;
    -ms-transform-origin: 0% 0%;
    -o-transform-origin: 0% 0%;
    transform-origin: 0% 0%;
    -webkit-transform: rotate(90deg);
    -moz-transform: rotate(90deg);
    -ms-transform: rotate(90deg);
    -o-transform: rotate(90deg);
    transform: rotate(90deg);
}

/* Papercut
 ================================================================= */

.papercut {
    -webkit-perspective: 600px;
    -moz-perspective: 600px;
    -ms-perspective: 600px;
    -o-perspective: 600px;
    perspective: 600px;
    -webkit-perspective-origin: 0% 0%;
    -moz-perspective-origin: 0% 0%;
    -ms-perspective-origin: 0% 0%;
    -o-perspective-origin: 0% 0%;
    perspective-origin: 0% 0%;
}

.papercut li {
    -webkit-transform-origin: 0% 0%;
    -moz-transform-origin: 0% 0%;
    -ms-transform-origin: 0% 0%;
    -o-transform-origin: 0% 0%;
    transform-origin: 0% 0%;
    -webkit-transform: skewY(30deg);
    -moz-transform: skewY(30deg);
    -ms-transform: skewY(30deg);
    -o-transform: skewY(30deg);
    transform: skewY(30deg);
}

/* Fly
 ================================================================= */

.fly {
    -webkit-perspective: 400px;
    -moz-perspective: 400px;
    -ms-perspective: 400px;
    -o-perspective: 400px;
    perspective: 400px;
}

.fly li {
    -webkit-transform-origin: 50% 50% -50px;
    -moz-transform-origin: 50% 50% -50px;
    -ms-transform-origin: 50% 50% -50px;
    -o-transform-origin: 50% 50% -50px;
    transform-origin: 50% 50% -50px;
    -webkit-transform: rotateX( -180deg);
    -moz-transform: rotateX( -180deg);
    -ms-transform: rotateX( -180deg);
    -o-transform: rotateX( -180deg);
    transform: rotateX( -180deg);
}

/* Blind
 ================================================================= */

.blind li {
    max-height: 0;
}

.menu>li:hover .blind li, .menu>li:focus .blind li {
    /* This should be changed to the normal height of list-items */
    max-height: 30px;
}

/* Venitian
 ================================================================= */

.venitian li {
    -webkit-transform-origin: 50% 0;
    -moz-transform-origin: 50% 0;
    -ms-transform-origin: 50% 0;
    -o-transform-origin: 50% 0;
    transform-origin: 50% 0;
    -webkit-transform: scale(1, 0);
    -moz-transform: scale(1, 0);
    -ms-transform: scale(1, 0);
    -o-transform: scale(1, 0);
    transform: scale(1, 0);
}

/* Jaws
 ================================================================= */

.jaws li {
    -webkit-transform-origin: 50% -100px;
    -moz-transform-origin: 50% -100px;
    -ms-transform-origin: 50% -100px;
    -o-transform-origin: 50% -100px;
    transform-origin: 50% -100px;
}

.jaws li:nth-child(odd) {
    -webkit-transform: rotate(90deg);
    -moz-transform: rotate(90deg);
    -ms-transform: rotate(90deg);
    -o-transform: rotate(90deg);
    transform: rotate(90deg);
}

.jaws li:nth-child(even) {
    -webkit-transform: rotate(-90deg);
    -moz-transform: rotate(-90deg);
    -ms-transform: rotate(-90deg);
    -o-transform: rotate(-90deg);
    transform: rotate(-90deg);
}

/* Fence
 ================================================================= */

.fence {
    -webkit-perspective: 600px;
    -moz-perspective: 600px;
    -ms-perspective: 600px;
    -o-perspective: 600px;
    perspective: 600px;
}

.fence li:nth-child(odd) {
    -webkit-transform-origin: 0 50%;
    -moz-transform-origin: 0 50%;
    -ms-transform-origin: 0 50%;
    -o-transform-origin: 0 50%;
    transform-origin: 0 50%;
    -webkit-transform: rotateY(90deg);
    -moz-transform: rotateY(90deg);
    -ms-transform: rotateY(90deg);
    -o-transform: rotateY(90deg);
    transform: rotateY(90deg);
}

.fence li:nth-child(even) {
    -webkit-transform-origin: 100% 50%;
    -moz-transform-origin: 100% 50%;
    -ms-transform-origin: 100% 50%;
    -o-transform-origin: 100% 50%;
    transform-origin: 100% 50%;
    -webkit-transform: rotateY(-90deg);
    -moz-transform: rotateY(-90deg);
    -ms-transform: rotateY(-90deg);
    -o-transform: rotateY(-90deg);
    transform: rotateY(-90deg);
}

/* Zipper
 ================================================================= */

.zipper li:nth-child(odd) {
    -webkit-transform: translateX(-100%);
    -moz-transform: translateX(-100%);
    -ms-transform: translateX(-100%);
    -o-transform: translateX(-100%);
    transform: translateX(-100%);
}

.zipper li:nth-child(even) {
    -webkit-transform: translateX(100%);
    -moz-transform: translateX(100%);
    -ms-transform: translateX(100%);
    -o-transform: translateX(100%);
    transform: translateX(100%);
}