.nav-component {
    --nav-header-offset: 89px;
    --nav-bottom-offset: 24px;
    --nav-sidebar-gutter: 220px;
    position: fixed;
    top: var(--nav-header-offset);
    right: 1em;
    transform: none;
    z-index: 1000;
    width: 250px;
    height: min(650px, calc(100vh - var(--nav-header-offset) - var(--nav-bottom-offset)));
    max-height: calc(100vh - var(--nav-header-offset) - var(--nav-bottom-offset));
    overflow: visible;
}

.nav-component__links {
    position: relative;
    z-index: 1001;
    width: 100%;
    height: 100%;
    max-height: 100%;
    min-height: 0;
    margin-top: 1em;
    padding-left: 1.25em;
    padding-right: 1.35em;
    box-sizing: border-box;
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.nav-component__links::-webkit-scrollbar {
    display: none;
}

.nav-component ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.nav-component li {
    margin-bottom: 1em;
}

.nav-component a {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    min-height: 35px;
    padding: 0.1em 0.5em;
    background: #ffffff;
    color: #777676;
    font-family: "Cobassi", serif;
    font-size: 14px;
    line-height: 1;
    text-decoration: none !important;
    text-align: center;
    border-radius: 20px;
    border: 1px solid #777676;
    box-sizing: border-box;
    transition: 0.5s;
}

.nav-component a:hover,
.nav-component a.active {
    background-color: #777676;
    color: #ffffff;
    width: calc(100% + 1.25em);
    margin-left: -1.25em;
}

.nav-item-control {
    margin-bottom: 15px;
}

.nav-item-buttons {
    display: flex;
    gap: 10px;
    margin-top: 5px;
}

.nav-component__strings {
    position: absolute;
    top: 0;
    right: 0.15em;
    bottom: 0;
    z-index: 1000;
    width: 4.1em;
    height: 100%;
    pointer-events: none;
    background-image:
        linear-gradient(#777676, #777676),
        linear-gradient(#777676, #777676),
        linear-gradient(#777676, #777676),
        linear-gradient(#777676, #777676),
        linear-gradient(#777676, #777676),
        linear-gradient(#777676, #777676);
    background-size: 1px 100%;
    background-repeat: no-repeat;
    background-position: 0 0, 20% 0, 40% 0, 60% 0, 80% 0, calc(100% - 1px) 0;
    -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 4.5em, #000 calc(100% - 4.5em), transparent 100%);
    mask-image: linear-gradient(to bottom, transparent 0, #000 4.5em, #000 calc(100% - 4.5em), transparent 100%);
}

.nav-component__strings > div {
    display: none;
}

@media only screen and (min-width: 992px) {
    body:has(.nav-component) {
        --nav-sidebar-gutter: 220px;
        --nav-content-top-gutter: 32px;
    }

    body:has(.nav-component) .section-content,
    body:has(.nav-component) .section-quote,
    body:has(.nav-component) .content-block,
    body:has(.nav-component) .section-guitar-carousel,
    body:has(.nav-component) .quote-container,
    body:has(.nav-component) .wp-block-zucali-quote-container,
    body:has(.nav-component) .wp-block-zucali-content-block .content-block {
        margin-right: var(--nav-sidebar-gutter);
        padding-top: calc(3em + var(--nav-content-top-gutter));
        max-width: calc(100% - var(--nav-sidebar-gutter) - 2rem);
        box-sizing: border-box;
    }

    body:has(.nav-component) .section-content,
    body:has(.nav-component) .section-quote,
    body:has(.nav-component) .quote-container,
    body:has(.nav-component) .wp-block-zucali-quote-container {
        max-width: calc(50% - (var(--nav-sidebar-gutter) / 2));
    }

    body:has(.nav-component) .guitar-block,
    body:has(.nav-component) .wp-block-zucali-guitar-block .guitar-block {
        width: min(860px, calc(100% - var(--nav-sidebar-gutter) - 3rem));
        max-width: min(860px, calc(100% - var(--nav-sidebar-gutter) - 3rem));
        margin-left: auto;
        margin-right: calc(var(--nav-sidebar-gutter) + 1.25rem);
        padding-top: 2em;
        box-sizing: border-box;
    }

    body:has(.nav-component) .quote-container,
    body:has(.nav-component) .wp-block-zucali-quote-container .quote-container {
        padding-top: calc(36px + var(--nav-content-top-gutter));
        margin-left: auto;
    }

    body:has(.nav-component) .z-template-content .content-block,
    body:has(.nav-component) .z-template-content .quote-container,
    body:has(.nav-component) .z-template-content .wp-block-zucali-quote-container,
    body:has(.nav-component) .z-template-content .wp-block-zucali-content-block .content-block {
        margin-right: 0;
        margin-left: 0;
        max-width: none;
    }
}
