
.page-container {
    position: relative; /* Needed for offcanvas */
    overflow: hidden; /* Needed for offcanvas */
}


/* Hamburger Slider
---------------------------------------------------*/
.hamburger {
    padding: 15px 15px;
    display: inline-block;
    cursor: pointer;
    transition-property: opacity, filter;
    transition-duration: 0.15s;
    transition-timing-function: linear;
    font: inherit;
    color: inherit;
    text-transform: none;
    background-color: transparent;
    border: 0;
    margin: 0;
    overflow: visible;
}

.hamburger:hover {
    opacity: 0.7;
}

.hamburger-box {
    width: 35px;
    height: 24px;
    display: inline-block;
    position: relative;
}

.hamburger-inner {
    display: block;
    top: 50%;
    margin-top: -2px;
}

.hamburger-inner, .hamburger-inner::before, .hamburger-inner::after {
    width: 40px;
    height: 4px;
    background-color: #555;
    border-radius: 0px;
    position: absolute;
    transition-property: transform;
    transition-duration: 0.15s;
    transition-timing-function: ease;
}

.hamburger-inner::before, .hamburger-inner::after {
    content: "";
    display: block;
}

.hamburger-inner::before {
    top: -10px;
}

.hamburger-inner::after {
    bottom: -10px;
}

.hamburger--slider .hamburger-inner {
    top: 2px;
}

.hamburger--slider .hamburger-inner::before {
    top: 10px;
    transition-property: transform, opacity;
    transition-timing-function: ease;
    transition-duration: 0.2s;
}

.hamburger--slider .hamburger-inner::after {
    top: 20px;
}

.hamburger--slider.is-active .hamburger-inner {
    transform: translate3d(0, 10px, 0) rotate(45deg);
}

.hamburger--slider.is-active .hamburger-inner::before {
    transform: rotate(-45deg) translate3d(-5.71429px, -6px, 0);
    opacity: 0;
}

.hamburger--slider.is-active .hamburger-inner::after {
    transform: translate3d(0, -20px, 0) rotate(-90deg);
}


.hamburger--slider.is-active .hamburger-inner,
.hamburger--slider.is-active .hamburger-inner::before,
.hamburger--slider.is-active .hamburger-inner::after {
    background: #fff;
}

.sub-toggle {
    display: none;
}


/* Min Width Media Queries
---------------------------------------------------*/
@media (min-width: 992px) {

    .hamburger--slider {
        display: none;
    }
}

/* Max Width Media Queries
---------------------------------------------------*/

@media (max-width: 330px) {

}

@media (max-width: 991px) {

    #main-nav {
        height: 100%;
        padding: 100px 20px 20px;
        position: absolute;
        right: 0px;
        text-align: left;
        top: 0;
        transition: all 0.25s ease 0s;
        width: 300px;
        z-index: 101;
        background: #555;

        -webkit-transform: translateX(300px);
        -moz-transform: translateX(300px);
        -ms-transform: translateX(300px);
        -o-transform: translateX(300px);
        transform: translateX(300px);
    }

    #main-nav .container {
        width: auto;
        padding: 0;
    }

    #main-nav .nav {
        width: 100%;
    }

    #main-nav .nav li > a {
        color: #fff;
        display: block;
        line-height: 50px;
        margin: 0;
        padding: 0;
    }

    #main-nav .nav li {
        border-top: 1px solid rgba(255, 255, 255, 0.2);
        overflow: visible;
    }

    #main-nav .nav > li:hover > a {
        color: #fff;
    }

    #main-nav .nav > li.active a {
    }

    #main-nav.active {
        /*right: 0;*/
        -webkit-transform: translateX(0px);
        -moz-transform: translateX(0px);
        -ms-transform: translateX(0px);
        -o-transform: translateX(0px);
        transform: translateX(0px);
    }

    /* Sub Menu
    ------------------------------------------------------*/

    #main-nav .nav > li .sub-menu {
        box-shadow: none;
        overflow: hidden;
        padding: 0;
        position: static;
        background: rgba(0,0,0,0.1);
        opacity: 1;
        text-align: inherit;
        max-height: 0;
        -webkit-transition: all linear 300ms;
        -moz-transition: all linear 300ms ;
        -ms-transition: all linear 300ms ;
        -o-transition: all linear 300ms ;
        transition: all linear 300ms ;
    }

    #main-nav .nav > li.sub-active .sub-menu {
        max-height: 400px;
    }

    #main-nav .nav li .sub-menu a {
        color: #fff;
        padding-left: 20px;
    }

    #main-nav .nav li .sub-menu a::before {
        display: none;
    }

    /* Sub Menu Toggle
    ------------------------------------------------------*/
    #main-nav .nav > .menu-item-has-children > .sub-toggle {
        background: rgba(0,0,0,0.1);
        display: block;
        float: right;
        height: 50px;
        position: absolute;
        right: 0;
        top: 0;
        width: 50px;
        z-index: 101;
        line-height: 50px;
        text-align: center;
        font-size: 22px;
        color: #fff;
        -webkit-transition: ease all .5s;
        -moz-transition: ease all .5s;
        -ms-transition: ease all .5s;
        -o-transition: ease all .5s;
        transition: ease all .5s;
    }

    #main-nav .nav > .menu-item-has-children > .sub-toggle .fa {
        -webkit-transition: ease-in-out all .2s;
        -moz-transition: ease-in-out all .2s;
        -ms-transition: ease-in-out all .2s;
        -o-transition: ease-in-out all .2s;
        transition: ease-in-out all .2s;
    }

    #main-nav .nav > .menu-item-has-children.sub-active > .sub-toggle .fa {
        -webkit-transform: rotate(90deg);
        -moz-transform: rotate(90deg);
        -ms-transform: rotate(90deg);
        -o-transform: rotate(90deg);
        transform: rotate(90deg);

    }

    /* Hamburger Slider
    ------------------------------------------------------*/
    .hamburger--slider {
        right: 20px;
        position: absolute;
        top: 20px;
        z-index: 105;
        cursor: pointer;
    }

    .hamburger--slider.is-active {
        /*position: fixed;*/
    }

    /* Nav Overlay
    ------------------------------------------------------*/
    .nav-overlay {
        background: #000;
        bottom: 0;
        height: 100%;
        left: 0;
        opacity: 0;
        right: 0;
        top: 0;
        width: 100%;
        z-index: 100;
        -webkit-transition: all 500ms ease;
        -moz-transition: all 500ms ease;
        -ms-transition: all 500ms ease;
        -o-transition: all 500ms ease;
        transition: all 500ms ease;
    }

    body.nav-open .nav-overlay {
        opacity: 0.3;
        position: absolute;

    }

}