/* Define default menu behavior */
nav .menu-list {
    text-align: center;
    margin: 0;
}

.menu-list a,
.menu-list a:visited,
.with-hidden-submenu a,
.with-hidden-submenu span {
    text-decoration: none;
    display:block;
    width: 100%;
    padding: 10px 2px;
}

.menu-list, .with-hidden-submenu {
    transition: color .3s ease-in-out;
    font-family: Gotham-medium, sans-serif;
}

.sub-menu:hover, .with-hidden-submenu {
    cursor: pointer;
}

.sub-menu, .with-hidden-submenu{
    min-height: 30px;
    list-style-type: none;
    display: inline-block;
    margin-left: 40px;
    text-align: center;
    padding: 10px 15px 5px 15px;
    transition: background-color .3s ease-in-out,
                border-bottom-color .3s ease-in-out,
                box-shadow .3s ease-in-out,
                color .3s ease-in-out;
}

.pawn {
    transition: fill .3s ease-in-out;
}

.with-hidden-submenu {
    position: relative;
}

.with-hidden-submenu > a + .hidden-sub-menu,
.with-hidden-submenu > span + .hidden-sub-menu{
    padding: 0;
    width: 100%;
    margin-top: 10px;
}
.with-hidden-submenu > .hidden-sub-menu {
    padding: 0;
    width: 100%;
    margin-top: 20px;
}

.with-hidden-submenu ul.hidden-sub-menu {
    display: none;
    height: 0;
}

.hidden-sub-menu .sub-menu {
    box-shadow: 0 8px 16px 0 rgba(0, 0, 0, 0.2);
    display: block;
    margin: 0;
}

li.with-hidden-submenu:hover ul.hidden-sub-menu{
    display: block;
    height: 100%;
    position: absolute;
    left: 0;
    z-index: 1;
}

.hidden-sub-menu .sub-menu:hover {
    box-shadow: 2px 2px 5px var(--dark-blue);
}

/** define light design color schema*/
.menu-list.theme-light .sub-menu,
.menu-list.theme-light .with-hidden-submenu{
    background-color: #FFFFFF;
    border-bottom: 5px solid var(--dark-blue);
}
.menu-list.theme-light .with-hidden-submenu,
.menu-list.theme-light span,
.menu-list.theme-light a,
.menu-list.theme-light a:visited {
    color: var(--dark-blue);
}

.menu-list.theme-light .sub-menu .pawn {
    fill: var(--dark-blue);
}

.menu-list.theme-light .sub-menu:hover,
.menu-list.theme-light .with-hidden-submenu:hover{
    background-color: #dddddd;
    border-bottom: 5px solid var(--medium-blue);
    box-shadow: 2px 2px 5px var(--medium-blue);
}

.menu-list.theme-light .sub-menu:hover,
.menu-list.theme-light .sub-menu:hover a,
.menu-list.theme-light .with-hidden-submenu:hover > a,
.menu-list.theme-light .with-hidden-submenu:hover > span
{
    color: var(--medium-blue);
}

.menu-list.theme-light .sub-menu:hover .pawn,
.menu-list.theme-light .with-hidden-submenu:hover > .pawn
{
    fill: var(--medium-blue);
}

/** define dark design color schema*/

.menu-list.theme-dark .sub-menu,
.menu-list.theme-dark .with-hidden-submenu {
    background-color: var(--dark-blue);
    border-bottom: 5px solid var(--light-blue);
}

.menu-list.theme-dark span,
.menu-list.theme-dark a,
.menu-list.theme-dark a:visited {
    color: var(--light-blue);
}

.menu-list.theme-dark .sub-menu .pawn,
.menu-list.theme-dark .with-hidden-submenu >.pawn{
    fill: var(--light-blue);
}

.menu-list.theme-dark .sub-menu:hover,
.menu-list.theme-dark .with-hidden-submenu:hover {
    background-color: var(--light-blue);
    border-bottom: 5px solid var(--medium-blue);
    box-shadow: 2px 2px 5px var(--medium-blue);
}

.menu-list.theme-dark .with-hidden-submenu:hover > span,
.menu-list.theme-dark .sub-menu:hover a,
.menu-list.theme-dark .with-hidden-submenu:hover > a{
    color: var(--medium-blue);
}

.menu-list.theme-dark .sub-menu:hover .pawn {
    fill: var(--medium-blue);
}

#lateral-menu-input,
.lateral-menu {
    display: none;
}

@media (width < 1100px) {
    #lateral-menu-input {
        display: block;
        width: 40px;
        height: 32px;
        position: absolute;
        top: 10px;
        left: 5px;

        cursor: pointer;

        opacity: 0; /* hide this */
        z-index: 1; /* and place it over the hamburger */

        -webkit-touch-callout: none;
    }

    #lateral-menu-label {
        /** Margin defined from auto-margin and padding of the checkbox input */
        margin-top: 5px;
        margin-left: 6px;
        position: absolute;
        top: 10px;
        left: 5px;
        cursor: pointer;
    }

    .lateral-menu {
        display: inline-block;
        margin: 0;
        z-index: 2;
    }

    .burger-menu-top,
    .burger-menu-middle,
    .burger-menu-bottom {
        display: block;
        width: 33px;
        height: 4px;
        margin-bottom: 5px;
        position: relative;
        border-radius: 3px;

        z-index: 1;

        transform-origin: 4px 0;
        background: var(--light-pink);
        transition: transform 0.3s cubic-bezier(0.77, 0.2, 0.05, 1.0),
                    background 0.5s cubic-bezier(0.77, 0.2, 0.05, 1.0),
                    opacity 0.55s ease;
    }

    .burger-menu-top {
        transform-origin: top left;
    }

    .burger-menu-bottom {
        transform-origin: bottom right;
    }

    .lateral-menu #lateral-menu-input:checked ~ label .burger-menu-top {
        opacity: 1;
        transform: rotate(45deg) translate(4px, -5px);
        /** Rotate FROM - to \ */
    }

    .lateral-menu #lateral-menu-input:checked ~ label .burger-menu-middle {
        /** hide the middle span */
        opacity: 0;
    }

    .lateral-menu #lateral-menu-input:checked ~ label .burger-menu-bottom {
        opacity: 1;
        transform: rotate(-45deg) translate(11px, -18px);
        /** Rotate FROM - to / */
    }

    #lateral-menu-list.theme-light {
        background-color: white;
        box-shadow: 5px 5px 10px var(--dark-blue);
    }

    #lateral-menu-list.theme-dark {
        background-color: #DDDDDD;
        box-shadow: 5px 5px 10px var(--medium-blue);
    }

    #lateral-menu-list {
        text-align: left;
        position: absolute;
        left: 0;
        max-width: 300px;
        width: 100vw;
        min-height: 50vh;
        padding: 50px 25px 10px 25px;
        box-sizing: border-box;
        overflow-y: auto;
        -webkit-font-smoothing: antialiased;
        /* to stop flickering of text in safari */
        transform-origin: 0 0;
        transform: translate(-105%, 0);
        transition: transform 0.5s cubic-bezier(0.77, 0.2, 0.05, 1.0);
        border-radius: 5px;
        z-index: 10;
    }

    #lateral-menu-list ul {
        padding: 0;
        list-style-type: none;
    }

    #lateral-menu-list li {
        padding: 10px;
    }

    .lateral-menu #lateral-menu-input:checked ~ div#lateral-menu-list {
        transform: translate(-2px, 0);
    }
}
