:root :where(.wp-block-navigation) {
    font-size: 15px;
    font-weight: 500;

    &:not(.has-background) {
        .wp-block-navigation__submenu-container {
            border-width: 0;
        }
    }

    &.is-style-header {
        @media (600px <= width <= 1279px) {
            &:not(.wp-block) {
                .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
                    display: none;
                }

                .wp-block-navigation__responsive-container-open:not(.always-shown) {
                    display: flex;
                }

                .wp-block-navigation__responsive-close {
                    width: 400px;
                }
            }
        }

        .is-style-mega-menu {
            .wc-block-mini-cart {
                display: none;
            }
        }

        @media (width <= 1279px) {
            > .wp-block-navigation-item {
                > .wp-block-navigation-item__content {
                    font-weight: 700;
                }
            }

            .is-style-mega-menu {
                > .wp-block-group {

                    /* This overrides(!important) for padding space which apply inline style */
                    > .wp-block-columns {
                        padding: 0 !important;
                    }
                }

                .wp-block-columns {
                    /* This overrides(!important) for wrap which apply inline style */
                    flex-wrap: wrap !important;

                    .wp-block-column {
                        /* This overrides(!important) for flex which apply inline style */
                        flex-basis: 100% !important;
                    }

                    .wp-block-group {
                        gap: 16px;
                    }
                }

                .wp-block-navigation {
                    font-size: 14px;
                    font-weight: normal;
                    margin-inline-start: 10px;
                    margin-top: 4px;
                    gap: 6px;
                }

                /* This overrides(!important) for padding space which apply inline style */
                .annexe-menu {
                    padding-top: 0 !important;
                }
            }

            .wp-block-navigation__submenu-container:not(.block-editor-block-list__layout) {
                font-size: 14px;
                font-weight: normal;

                >.wp-block-navigation-item>.wp-block-navigation-item__content {
                    padding: 4px 10px;
                }

                .wp-block-navigation-item.has-child:not(.wp-block) {
                    > .wp-block-navigation-item__content {
                        font-weight: 700;
                        font-size: 15px;
                    }
                }

                .wp-block-navigation-item.has-child {
                    margin-top: 10px;

                    &,.wp-block-navigation__submenu-container {
                        margin-inline-start: 10px;
                    }
                }
            }

            &:not(.wp-block) {
                order: -1;
                gap: 20px;

                .wp-block-navigation__responsive-close {
                    background-color: var(--wp--preset--color--white);
                    padding: 0;
                    margin-inline-start: 0;
                    height: 100vh;

                    > .wp-block-navigation__responsive-dialog {
                        padding: 0 16px;
                        background-color: var(--wp--preset--color--white);
                    }
                }

                .wp-block-navigation__responsive-container-close {
                    inset-inline-end: 16px;
                }

                .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .has-child .wp-block-navigation__submenu-container {
                    padding-inline: 0;
                }

                &:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open {
                    background-color: color-mix(in oklab, #000 50%, transparent);
                    padding: 0;
                }

                .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container {
                    padding-top: 4px;

                    &.is-style-mega-menu {
                        padding-top: 10px;
                        padding-left: 10px;
                    }
                }
            }
        }

        @media (width >= 1024px) {
            .wp-block-navigation__submenu-container.block-editor-block-list__layout {
                padding: 20px 0;
                box-shadow: 0px 6px 15px rgba(64, 79, 104, 0.05);

                .wp-block-navigation-item {
                    &:is(:hover,:focus) {
                        > .wp-block-navigation-item__content {
                            text-decoration: underline;
                            text-underline-offset: 3px;
                        }

                        > .wp-block-navigation__submenu-icon,
                        > .wp-block-navigation-item__content {
                            color: var(--wp--preset--color--info);
                        }
                    }
                }
            }

            .wp-block.has-child:not(.is-style-mega-menu) {
                .wp-block-navigation__submenu-container {
                    >.wp-block-navigation-item {
                        >.wp-block-navigation-item__content {
                            padding: 8px 30px;
                        }

                        &.has-child:not(.wp-block) {
                            >.wp-block-navigation-item__content {
                                padding: 8px 15px 8px 30px;
                            }

                            > .wp-block-navigation__submenu-icon {
                                margin-inline: 0 30px;
                            }
                        }
                    }
                }
            }
        }

        @media (width >= 1280px) {
            > .has-child {
                > .wp-block-navigation__submenu-container {
                    top: calc(100% + 33px);
                }

                > .wp-block-navigation__submenu-icon {
                    margin-inline-start: 6px;
                }
            }

            .wp-block-navigation__submenu-container {
                box-shadow: 0px 6px 15px rgba(64, 79, 104, 0.05);
            }

            .has-child:not(.is-style-mega-menu) {
                .wp-block-navigation__submenu-container {
                    >.wp-block-navigation-item {
                        >.wp-block-navigation-item__content {
                            padding: 8px 30px;
                        }

                        &.has-child {
                            >.wp-block-navigation-item__content {
                                padding: 8px 15px 8px 30px;
                            }
                        }
                    }
                }
            }
        }
    }

    &.is-style-vertical,
    &.is-style-header {
        @media (width >= 1280px) {
            &, 
            > .wp-block-navigation-item.is-style-mega-menu,
            .wp-block-navigation__responsive-container,
            .wp-block-navigation__responsive-dialog {
                position: static;
            }

            > .has-child {
                > .wp-block-navigation__submenu-container {
                    &.is-style-mega-menu {
                        top: 100%;
                        padding: 0;
                    }
                }

                > .wp-block-navigation-item__content {
                    position: relative;

                    &::after,
                    &::before {
                        content: "";
                        position: absolute;
                        z-index: 1;
                    }

                    &::after {
                        inset: 0 -26px -40px 0;
                    }

                    &::before {
                        border-inline: 6px solid transparent;
                        border-bottom: 6px solid var(--wp--preset--color--white);
                        transform: translateX(50%);
                        right: 50%;
                        bottom: -33px;
                    }
                }

                &:not(:hover) {
                    > .wp-block-navigation-item__content::before {
                        opacity: 0;
                        bottom: 0;
                    }

                    > .wp-block-navigation-item__content::after {
                        inset: 0 -26px 0 0;
                    }
                }
            }

            .wp-block-navigation__submenu-container {
                padding: 20px 0;
                
                &.is-style-mega-menu {
                    inset-inline-end:0;

                    .wp-block-navigation-item__content,
                    .wp-block-navigation__submenu-container {
                        padding: 0;
                    }

                    .wp-block-navigation__submenu-container {
                        box-shadow: none;
                    }
                }

                .wp-block-navigation-item {
                    &:is(:hover,:focus) {
                        > .wp-block-navigation-item__content {
                            text-decoration: underline;
                            text-underline-offset: 3px;
                        }

                        > .wp-block-navigation__submenu-icon,
                        > .wp-block-navigation-item__content {
                            color: var(--wp--preset--color--info);
                        }
                    }
                }
            }

            .has-child:not(.is-style-mega-menu) {
                .wp-block-navigation__submenu-container {
                    >.wp-block-navigation-item {
                        &.has-child {
                            > .wp-block-navigation__submenu-icon {
                                margin-inline: 0 30px;
                            }
                        }
                    }
                }
            }
        }
    }

    &.is-style-vertical {
        &.wp-block {
            flex-shrink: 0;

            .wp-block-navigation-item__label.block-editor-rich-text__editable {
                display: flex;
                gap: 7px;
            }
        }

        /* This !important is for editor submenu open width to override default WP styles */
        .wp-block-navigation__submenu-container.block-editor-block-list__layout {
            width: 302px !important;
            top: calc(100% + 24px);
            padding: 14px;
        }
        
        @media (width >= 1280px) {
            &.is-vertical-open {
                .is-style-mega-menu.wp-block-navigation__submenu-container {
                    opacity: 1;
                    visibility: visible;
                }
            }
            
            > .has-child {
                > .wp-block-navigation__submenu-icon {
                    display: none;
                }

                > .wp-block-navigation__submenu-container {
                    top: calc(100% + 24px);
                }

                > .wp-block-navigation-item__content {
                    &::before {display: none;}

                    > .wp-block-navigation-item__label {
                        display: flex;
                        gap: 10px;
                    }
                }
            }

            .wp-block-navigation__submenu-container.is-style-mega-menu {
                left: calc(100% + -1px);
                border-left: 1px solid var(--wp--preset--color--gray-300);
                top: 0;
                padding: 0;

                .wp-block-image a {
                    padding: 0;
                }

                .wp-block-navigation {
                    font-weight: 400;
                }

                .wp-block-navigation-item:last-child {
                    margin-top: 10px;
                    
                    .wp-block-navigation-item__content {
                        text-decoration: underline;
                        text-underline-offset: 3px;
                        font-weight: 500;
                    }
                }
            }

            .wp-block-navigation__submenu-container {
                padding: 32px 0;

                .wp-block-navigation-submenu__toggle {display: none;}

                > .wp-block-navigation-item {
                    border-right: 0px solid transparent;

                    > .wp-block-navigation-item__content {
                        padding: 8px 15px;
                        line-height: 1.934;
                        position: relative;
                        z-index: 3;

                        &::after {
                            content: " ";
                            width: 2px;
                            right: 0;
                            top: 0;
                            bottom: 0;
                            background-color: transparent;
                            position: absolute;
                        }

                        > .wp-block-navigation-item__label {
                            display: flex;
                            gap: 11px;
                        }
                    }

                    &.is-style-mega-menu {
                        position: static;
                    }

                    &:hover {
                        border-right-color: var(--wp--preset--color--info);

                        .wp-block-navigation-item__label img {
                            filter: invert(30%) sepia(75%) saturate(4762%) hue-rotate(219deg) brightness(90%) contrast(82%);
                        }
                        
                        > .wp-block-navigation-item__content {
                            &::after {
                                background-color: var(--wp--preset--color--info);
                            }
                        }
                    }
                }

                .wp-block-navigation__submenu-container.is-style-mega-menu {
                    width: clamp(56.1875rem, -76.4792rem + 165.8333vw, 68.625rem);
                }
            }

            > .has-child:not(.open-on-click):hover > .wp-block-navigation__submenu-container {
                min-width: 302px;
            }
        }

        @media (1320px <= width <= 1460px) {
            .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container.is-style-mega-menu {
                width: clamp(60rem, 3.125rem + 70vw, 68.75rem);
            }
        }
    }
}

.wp-block-navigation {
    & + .wc-block-mini-cart {
        display: none;
    }

    &.is-style-currency {
        > .wp-block-navigation-item {
            padding: 11px 15px;
            min-width: 162px;
            justify-content: space-around;
        }

        .wp-block-navigation-item.open-on-click .wp-block-navigation-submenu__toggle {
            padding-right: 14px;
        }

         .wp-block-navigation__submenu-container {
            top: calc(100% + 4px);
            padding: 4px 0;
            border: 1px solid var(--wp--preset--color--gray-300);
            border-radius: 8px;

            .wp-block-navigation-item {
                &:first-child {
                    border-top-left-radius: 8px;
                    border-top-right-radius: 8px;
                }

                &:last-child {
                    border-bottom-left-radius: 8px;
                    border-bottom-right-radius: 8px;
                }
            }
        }

        .wp-block-navigation__submenu-container {
            bottom: calc(100% + 8px);
            top: auto;
            border: 1px solid var(--wp--preset--color--gray-300);
            border-radius: 8px;

            @media (width <= 767px) {
                left: 0;
                right: auto;
            }
            
            .wp-block-navigation-item {
                &:first-child {
                    border-top-left-radius: 8px;
                    border-top-right-radius: 8px;
                }

                &:last-child {
                    border-bottom-left-radius: 8px;
                    border-bottom-right-radius: 8px;
                }
            }
        }
    }
}