nav[data-toggle] {
    position: relative;
    z-index: 100;
}

@supports (position: sticky) {
    nav[data-toggle] {
        position: sticky;
        top: 0;
    }

    nav[data-toggle=open] {
        position: relative;
    }
}

nav[data-toggle=open] {
    position: relative;
}

nav[data-toggle] ul {
    display: none;
    margin: 0 0 0 1.25rem;
}

nav[data-toggle] a[data-action=toggle][data-toggle] ~ ul {
    display: block;
}

nav[data-toggle] a[data-action=toggle] {
    line-height: 1;
    font-family: fontawesome;
    font-weight: 900;
}

nav[data-toggle] > a[data-action=toggle] {
    display: block;
    font-size: 1.5rem;
}

nav[data-toggle] ul a[data-action=toggle] {
    display: inline-block;
    margin: 0 0.75rem 0 -1.25rem;
}

nav[data-toggle] ul a[data-action=toggle][data-toggle] {
    margin-right: 0.5rem;
}

nav[data-toggle] > a[data-action=toggle]::before {
    content: '\f0c9';
}

nav[data-toggle] ul a[data-action=toggle]::before {
    content: '\f054';
}

nav[data-toggle] ul a[data-action=toggle][data-toggle]::before {
    content: '\f078';
}

/**
 * Desktop
 */
@media screen and (min-width: 55rem) {
    nav[data-toggle] li ul,
    nav[data-toggle] a[data-action=toggle][data-toggle] ~ ul,
    nav[data-toggle] > a[data-action=toggle],
    nav[data-toggle] ul a[data-action=toggle] {
        display: none;
    }

    nav[data-toggle] > ul,
    nav[data-toggle] li:hover > ul,
    nav[data-toggle] > a[data-action=toggle][data-toggle] ~ ul,
    nav[data-toggle] li:hover > a[data-action=toggle][data-toggle] ~ ul {
        display: block;
    }

    nav[data-toggle] ul {
        margin-left: 0;
    }

    nav[data-toggle] li ul {
        position: absolute;
    }

    nav[data-toggle] li li ul {
        top: 0;
        left: 100%;
    }

    nav[data-toggle] > ul > li {
        display: inline-block;
        margin-right: 0.625rem;
    }

    nav[data-toggle] li li {
        position: relative;
        display: block;
        padding: 0.375rem;
    }
}
