/* Core Navigation Block: Default Style
--------------------------------------------- */
.wp-block-navigation .wp-block-navigation-item__content {
    padding: .5em;
    position: relative;
    -webkit-box-shadow: 0 0 0;
    -moz-box-shadow: 0 0 0;
    box-shadow: 0 0 0;
}

.wp-block-navigation:not(.has-background) .wp-block-navigation__submenu-container {
    border: 1px solid transparent
}

.wp-block-navigation .has-child>.wp-block-navigation__submenu-container {
    transition: opacity .25s ease, transform .5s all;
    transform: translateY(15px)
}

.wp-block-navigation__container>.wp-block-navigation-item>a {
    line-height: 2.5;
    position: relative
}

.wp-block-navigation__container>.wp-block-navigation-item:not(.has-child)>a:after {
    position: absolute;
    bottom: 0;
    left: 0;
    content: "";
    height: 2px;
    width: 0;
    transition: width .5s;
    background-color: currentColor
}

.wp-block-navigation__container>.wp-block-navigation-item:not(.has-child)>a:hover:after {
    width: 100%
}

.wp-block-navigation :where(.wp-block-navigation__submenu-container)>.wp-block-navigation-item:first-child>.wp-block-navigation-item__content {
    margin-top: .5em
}

.wp-block-navigation :where(.wp-block-navigation__submenu-container)>.wp-block-navigation-item:last-child>.wp-block-navigation-item__content {
    margin-bottom: .5em
}

.wp-block-navigation-item.current-menu-item>a {
    font-weight: 700;
}

.wp-block-navigation .has-child :where(.wp-block-navigation__submenu-container) {
    z-index: 10;
}

.wp-block-navigation .has-child .wp-block-navigation__submenu-container {
    z-index: 100;
}

.wp-block-navigation__responsive-container-close {
    transition: transform .3s ease-in-out;
    opacity: .8
}

.wp-block-navigation__responsive-container-close:focus,
.wp-block-navigation__responsive-container-close:hover {
    transform: rotate(90deg);
    opacity: 1
}

.wp-block-navigation-item__content img {
    height: fit-content;
}

/* Desktop view (1024px and above) */
@media (min-width: 1024px) {
    .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
        display: none;
    }

    .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) .wp-block-navigation__responsive-container-close {
        display: block;
    }

    .wp-block-navigation__responsive-container-open:not(.always-shown) {
        display: flex;
    }

    .wp-block-navigation .has-child:hover>.wp-block-navigation__submenu-container,
    .wp-block-navigation .has-child .wp-block-navigation-submenu__toggle[aria-expanded="true"]+.wp-block-navigation__submenu-container {
        box-shadow: 0 20px 40px -5px rgb(15 16 18 / 18%);
        transform: translateY(0);
    }

    .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
        display: block;
        width: 100%;
        position: relative;
        z-index: auto;
        background-color: inherit;
    }

    .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) .wp-block-navigation__responsive-container-close {
        display: none;
    }

    .wp-block-navigation__responsive-container-open:not(.always-shown) {
        display: none;
    }

    .wp-block-navigation .has-child :where(.wp-block-navigation__submenu-container) .wp-block-navigation__submenu-icon {
        margin-right: .7em;
    }
}

/* Tablet view (768px to 1023px) */
@media (min-width: 768px) and (max-width: 1023px) {
    .wp-block-navigation.items-justified-right {
        --navigation-layout-justification-setting: flex-start;
        --navigation-layout-justify: flex-start;
    }

    .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
        display: none;
    }

    .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) .wp-block-navigation__responsive-container-close {
        display: block;
    }

    .wp-block-navigation__responsive-container-open:not(.always-shown) {
        display: flex;
    }

    .wp-block-navigation__responsive-container-close {
        top: 50px;
        right: 20px;
    }

    .wp-block-navigation__responsive-container {
        opacity: 0;
        visibility: hidden;
        transition: opacity 0s, visibility 0s;
        display: flex;
    }

    .wp-block-navigation__responsive-container.is-menu-open {
        opacity: 1;
        visibility: visible;
        transition: opacity .3s ease-in-out, visibility .3s ease-in-out;
    }

    .wp-block-navigation__responsive-container .wp-block-navigation__responsive-container-content .wp-block-navigation__container {
        transition: transform .4s all, opacity .4s all;
        transform: translateY(-35px);
        opacity: 0;
        transition-delay: .2s;
        font-size: 20px;
        width: 100%;
    }

    .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container {
        transform: translateY(0);
        opacity: 1;
        gap: 20px;
        padding: 40px;
    }

    .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .has-child .wp-block-navigation__submenu-container {
        font-size: .9em;
        gap: 15px;
        padding: 0 30px 24px 30px;
        position: relative;
    }

    .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container:before {
        content: "↑";
        position: absolute;
        left: 0;
        top: 10px;
    }

    .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content {
        color: currentColor;
    }
}

/* Mobile view (up to 767px) */
@media (max-width: 767px) {
    .wp-block-navigation__container {
        justify-content: start;
    }

    .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item,
    .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container,
    .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-page-list {
        align-items: flex-start;
    }

    .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
        align-items: flex-start;
    }

    .wp-block-navigation.items-justified-right {
        --navigation-layout-justification-setting: flex-start;
        --navigation-layout-justify: flex-start;
    }

    .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
        display: none;
    }

    .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) .wp-block-navigation__responsive-container-close {
        display: block;
    }

    .wp-block-navigation__responsive-container-open:not(.always-shown) {
        display: flex;
    }

    .wp-block-navigation__responsive-container-close {
        top: 50px;
        right: 20px;
    }

    .wp-block-navigation__responsive-container {
        opacity: 0;
        visibility: hidden;
        transition: opacity 0s, visibility 0s;
        display: flex;
    }

    .wp-block-navigation__responsive-container.is-menu-open {
        opacity: 1;
        visibility: visible;
        transition: opacity .3s ease-in-out, visibility .3s ease-in-out;
    }

    .wp-block-navigation__responsive-container .wp-block-navigation__responsive-container-content .wp-block-navigation__container {
        transition: transform .4s all, opacity .4s all;
        transform: translateY(-35px);
        opacity: 0;
        transition-delay: .2s;
        font-size: 20px;
        width: 100%;
    }

    .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container {
        transform: translateY(0);
        opacity: 1;
        gap: 20px;
        padding: 40px;
    }

    .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .has-child .wp-block-navigation__submenu-container {
        font-size: .9em;
        gap: 15px;
        padding: 0 30px 24px 30px;
        position: relative;
    }

    .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container:before {
        content: "↑";
        position: absolute;
        left: 0;
        top: 10px;
    }

    .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content {
        color: currentColor;
    }
}