/* ==========================================================
   FLOOREX – MENU
   Desktop dropdown + animated fullscreen mobile navigation
   ========================================================== */


/* ==========================================================
   HEADER
   ========================================================== */

.site-header {
    position: relative;
    z-index: 1000;

    width: 100%;

    background: #fff;

    border-bottom: 1px solid rgba(24, 51, 41, 0.08);
}

.site-header .container {
    width: 100%;
    margin: 0 auto;
    padding: 0 2.5%;
}

.site-header__inside {
    display: flex;
    align-items: center;
    justify-content: space-between;

    min-height: 90px;
}


/* ==========================================================
   LOGO
   ========================================================== */

.custom-logo-link {
    display: block;
    flex: 0 0 auto;

    line-height: 0;
}

.custom-logo {
    display: block;

    width: auto;
    height: 48px;
    max-width: 220px;
}


/* ==========================================================
   DESKTOP NAVIGATION
   ========================================================== */

.site-nav {
    display: flex;
    align-items: center;
}

.site-nav .menu {
    display: flex;
    align-items: center;

    gap: 38px;

    margin: 0;
    padding: 0;

    list-style: none;
}

.site-nav .menu > li {
    position: relative;

    margin: 0;
    padding: 0;

    list-style: none;
}

.site-nav .menu > li > a {
    position: relative;

    display: flex;
    align-items: center;

    gap: 9px;

    color: #292929;

    font-size: 16px;
    font-weight: 500;
    line-height: 1;

    text-decoration: none;

    transform: translateY(0);

    transition:
        color 0.25s ease,
        transform 0.35s cubic-bezier(.22, 1, .36, 1);
}


/* ==========================================================
   DESKTOP LINK HOVER
   ========================================================== */

.site-nav .menu > li:hover > a,
.site-nav .menu > li > a:hover,
.site-nav .menu > li.current-menu-item > a,
.site-nav .menu > li.current-menu-ancestor > a,
.site-nav .menu > li.current_page_item > a,
.site-nav .menu > li.current_page_ancestor > a {
    color: #72c943;
}

.site-nav .menu > li:hover > a,
.site-nav .menu > li > a:hover {
    transform: translateY(-3px);
}


/* ==========================================================
   DROPDOWN INDICATOR
   ========================================================== */

.site-nav .menu > .menu-item-has-children > a {
    padding-right: 12px;
}

.site-nav .menu > .menu-item-has-children > a::before,
.site-nav .menu > .menu-item-has-children > a::after {
    content: "";

    position: absolute;

    top: 50%;
    right: 0;

    width: 6px;
    height: 1px;

    background: currentColor;

    transform-origin: center;

    transition:
        transform 0.35s cubic-bezier(.22, 1, .36, 1),
        opacity 0.25s ease;
}


/* Horizontal */

.site-nav .menu > .menu-item-has-children > a::before {
    transform: translateY(-50%);
}


/* Vertical */

.site-nav .menu > .menu-item-has-children > a::after {
    transform:
        translateY(-50%)
        rotate(90deg);
}


/* Desktop hover / focus */

.site-nav .menu > .menu-item-has-children:hover > a::after,
.site-nav .menu > .menu-item-has-children:focus-within > a::after {
    opacity: 0;

    transform:
        translateY(-50%)
        rotate(180deg);
}

.site-nav .menu > .menu-item-has-children:hover > a::before,
.site-nav .menu > .menu-item-has-children:focus-within > a::before {
    transform:
        translateY(-50%)
        rotate(180deg);
}


/* ==========================================================
   DESKTOP DROPDOWN
   ========================================================== */

.site-nav .sub-menu {
    position: absolute;

    top: calc(100% + 20px);
    left: -20px;

    z-index: 100;

    display: block;

    min-width: 250px;

    margin: 0;
    padding: 12px;

    list-style: none;

    background: #fff;

    border: 1px solid rgba(24, 51, 41, 0.08);
    border-radius: 10px;

    box-shadow: 0 18px 50px rgba(24, 51, 41, 0.09);

    opacity: 0;
    visibility: hidden;

    transform:
        translateY(10px)
        scale(0.985);

    transform-origin: top center;

    pointer-events: none;

    transition:
        opacity 0.22s ease,
        transform 0.35s cubic-bezier(.22, 1, .36, 1),
        visibility 0.22s ease;
}


/* Invisible hover bridge */

.site-nav .sub-menu::before {
    content: "";

    position: absolute;

    top: -20px;
    left: 0;

    width: 100%;
    height: 20px;
}


/* Open desktop dropdown */

.site-nav .menu-item-has-children:hover > .sub-menu,
.site-nav .menu-item-has-children:focus-within > .sub-menu {
    opacity: 1;
    visibility: visible;

    transform:
        translateY(0)
        scale(1);

    pointer-events: auto;
}


/* ==========================================================
   DROPDOWN LINKS
   ========================================================== */

.site-nav .sub-menu li {
    position: relative;

    display: block;

    width: 100%;

    margin: 0;
    padding: 0;

    list-style: none;
}

.site-nav .sub-menu a {
    position: relative;

    display: flex;
    align-items: center;

    width: 100%;

    padding: 13px 16px;

    color: #292929;

    font-size: 14px;
    font-weight: 400;
    line-height: 1.4;

    text-decoration: none;

    border-radius: 6px;

    transform: translateX(0);

    transition:
        color 0.22s ease,
        background-color 0.22s ease,
        transform 0.35s cubic-bezier(.22, 1, .36, 1);
}

.site-nav .sub-menu a:hover,
.site-nav .sub-menu .current-menu-item > a,
.site-nav .sub-menu .current_page_item > a {
    color: #183329;

    background: rgba(114, 201, 67, 0.07);

    transform: translateX(4px);
}


/* Arrow */

.site-nav .sub-menu a::after {
    content: "→";

    margin-left: auto;
    padding-left: 20px;

    color: #72c943;

    font-size: 15px;
    font-weight: 400;

    opacity: 0;

    transform: translateX(-8px);

    transition:
        opacity 0.25s ease,
        transform 0.35s cubic-bezier(.22, 1, .36, 1);
}

.site-nav .sub-menu a:hover::after,
.site-nav .sub-menu .current-menu-item > a::after,
.site-nav .sub-menu .current_page_item > a::after {
    opacity: 1;

    transform: translateX(0);
}


/* ==========================================================
   NESTED DESKTOP DROPDOWN
   ========================================================== */

.site-nav .sub-menu .sub-menu {
    top: -12px;
    left: calc(100% + 8px);
}


/* ==========================================================
   MENU TOGGLE
   Two-line asymmetric burger
   ========================================================== */

.menu-toggle {
    display: none;

    position: relative;
    z-index: 1201;

    align-items: center;

    gap: 14px;

    margin: 0;
    padding: 12px 0;

    color: #292929;
    background: transparent;

    border: 0;

    font: inherit;

    cursor: pointer;
}


/* Label */

.menu-toggle__label {
    display: block;

    color: #292929;

    font-size: 13px;
    font-weight: 500;
    line-height: 1;

    transition:
        color 0.25s ease,
        transform 0.35s cubic-bezier(.22, 1, .36, 1);
}


/* Icon */

.menu-toggle__icon {
    position: relative;

    display: block;

    width: 30px;
    height: 20px;
}

.menu-toggle__icon span {
    position: absolute;
    right: 0;

    display: block;

    height: 2px;

    background: #183329;

    border-radius: 10px;

    transform-origin: center;

    transition:
        width 0.4s cubic-bezier(.22, 1, .36, 1),
        top 0.4s cubic-bezier(.22, 1, .36, 1),
        transform 0.4s cubic-bezier(.22, 1, .36, 1),
        background-color 0.25s ease;
}


/* Long upper line */

.menu-toggle__icon span:first-child {
    top: 5px;

    width: 30px;
}


/* Short lower line */

.menu-toggle__icon span:last-child {
    top: 14px;

    width: 20px;
}


/* Hover */

.menu-toggle:hover .menu-toggle__icon span:first-child {
    width: 22px;
}

.menu-toggle:hover .menu-toggle__icon span:last-child {
    width: 30px;

    background: #72c943;
}


/* ==========================================================
   MENU TOGGLE OPEN
   Burger -> X
   ========================================================== */

.menu-toggle.is-open .menu-toggle__icon span:first-child {
    top: 9px;

    width: 28px;

    transform: rotate(45deg);
}

.menu-toggle.is-open .menu-toggle__icon span:last-child {
    top: 9px;

    width: 28px;

    background: #183329;

    transform: rotate(-45deg);
}


/* ==========================================================
   MOBILE
   ========================================================== */

@media (max-width: 768px) {


    /* ======================================================
       STACKING CONTEXT
       ====================================================== */

    .v360-header-wrapper {
        position: relative;
        z-index: 9998;
    }

    .site-header {
        position: relative;
        z-index: 9999;
    }


    /* ======================================================
       HEADER
       ====================================================== */

    .site-header .container {
        width: calc(100% - 32px);
        margin: 0 auto;
        padding: 0;
    }

    .site-header__inside {
        position: relative;
        z-index: 10001;

        min-height: 82px;
    }

    .custom-logo-link {
        position: relative;
        z-index: 10002;
    }

    .custom-logo {
        height: 38px;
        max-width: 170px;
    }


    /* ======================================================
       TOGGLE
       ====================================================== */

    .menu-toggle {
        position: relative;
        z-index: 10003;

        display: inline-flex;
    }


    /* ======================================================
       FULLSCREEN NAVIGATION
       ====================================================== */

    .site-nav {
        position: fixed;

        top: 0;
        right: 0;
        bottom: 0;
        left: 0;

        z-index: 10000;

        display: flex;
        align-items: flex-start;

        width: 100%;
        max-width: none;

        height: 100vh;
        height: 100dvh;

        margin: 0;

        padding:
            135px
            24px
            40px;

        overflow-x: hidden;
        overflow-y: auto;

        background: #fff;

        opacity: 0;
        visibility: hidden;

        transform: translateY(-10px);

        pointer-events: none;

        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;

        transition:
            opacity 0.3s ease,
            transform 0.4s cubic-bezier(.22, 1, .36, 1),
            visibility 0.3s ease;
    }

    .site-nav.is-open {
        opacity: 1;
        visibility: visible;

        transform: translateY(0);

        pointer-events: auto;
    }


    /* ======================================================
       HEADER WHILE MENU IS OPEN
       ====================================================== */

    body.menu-open .site-header {
        background: transparent;
        border-bottom-color: transparent;
    }

    body.menu-open .custom-logo-link,
    body.menu-open .menu-toggle {
        position: relative;
        z-index: 10003;
    }


    /* ======================================================
       MOBILE MENU
       ====================================================== */

    .site-nav .menu {
        display: flex;
        flex-direction: column;
        align-items: stretch;

        gap: 0;

        width: 100%;
        max-width: 720px;

        margin: 0 auto;
        padding: 0;

        list-style: none;
    }

    .site-nav .menu > li {
        width: 100%;

        margin: 0;
        padding: 0;

        border-bottom: 1px solid rgba(24, 51, 41, 0.09);

        opacity: 0;

        transform: translateY(14px);

        transition:
            opacity 0.4s ease,
            transform 0.4s cubic-bezier(.22, 1, .36, 1);
    }

    .site-nav.is-open .menu > li {
        opacity: 1;

        transform: translateY(0);
    }


    /* ======================================================
       MENU ENTRANCE STAGGER
       ====================================================== */

    .site-nav.is-open .menu > li:nth-child(1) {
        transition-delay: 0.05s;
    }

    .site-nav.is-open .menu > li:nth-child(2) {
        transition-delay: 0.10s;
    }

    .site-nav.is-open .menu > li:nth-child(3) {
        transition-delay: 0.15s;
    }

    .site-nav.is-open .menu > li:nth-child(4) {
        transition-delay: 0.20s;
    }

    .site-nav.is-open .menu > li:nth-child(5) {
        transition-delay: 0.25s;
    }


    /* ======================================================
       TOP LEVEL LINKS
       ====================================================== */

    .site-nav .menu > li > a {
        display: flex;
        align-items: center;
        justify-content: space-between;

        width: 100%;

        padding: 20px 0;

        color: #292929;

        font-size: 25px;
        font-weight: 400;
        line-height: 1.1;

        letter-spacing: -1px;

        text-decoration: none;

        transform: none;
    }

    .site-nav .menu > li:hover > a {
        transform: none;
    }

    .site-nav .menu > li.current-menu-item > a,
    .site-nav .menu > li.current-menu-ancestor > a,
    .site-nav .menu > li.current_page_item > a,
    .site-nav .menu > li.current_page_ancestor > a {
        color: #72c943;
    }


    /* ======================================================
       MOBILE DROPDOWN INDICATOR
       Plus -> minus
       ====================================================== */

    .site-nav .menu > .menu-item-has-children > a {
        padding-right: 34px;
    }

    .site-nav .menu > .menu-item-has-children > a::before,
    .site-nav .menu > .menu-item-has-children > a::after {
        display: block;

        top: 50%;
        right: 2px;

        width: 14px;
        height: 1.5px;

        background: currentColor;

        transform-origin: center;

        transition:
            opacity 0.25s ease,
            transform 0.4s cubic-bezier(.22, 1, .36, 1);
    }


    /* Horizontal */

    .site-nav .menu > .menu-item-has-children > a::before {
        transform: translateY(-50%);
    }


    /* Vertical */

    .site-nav .menu > .menu-item-has-children > a::after {
        opacity: 1;

        transform:
            translateY(-50%)
            rotate(90deg);
    }


    /* Open parent */

    .site-nav .menu > .menu-item-has-children.is-open > a {
        color: #72c943;
    }

    .site-nav .menu > .menu-item-has-children.is-open > a::before {
        transform:
            translateY(-50%)
            rotate(180deg);
    }

    .site-nav .menu > .menu-item-has-children.is-open > a::after {
        opacity: 0;

        transform:
            translateY(-50%)
            rotate(180deg);
    }


    /* ======================================================
       MOBILE SUBMENU
       ====================================================== */

    .site-nav .menu-item-has-children > .sub-menu {
        position: static;

        display: block;

        width: 100%;
        min-width: 0;
        max-height: 0;

        margin: 0;

        padding:
            0
            0
            0
            18px;

        overflow: hidden;

        list-style: none;

        background: transparent;

        border: 0;
        border-radius: 0;

        box-shadow: none;

        opacity: 0;
        visibility: hidden;

        transform: translateY(-10px);

        pointer-events: none;

        transition:
            max-height 0.55s cubic-bezier(.22, 1, .36, 1),
            opacity 0.3s ease,
            transform 0.5s cubic-bezier(.22, 1, .36, 1),
            visibility 0.5s ease,
            padding-bottom 0.45s cubic-bezier(.22, 1, .36, 1);
    }


    /* Open submenu */

    .site-nav .menu-item-has-children.is-open > .sub-menu,
    .site-nav .menu-item-has-children > a[aria-expanded="true"] + .sub-menu {
        max-height: 500px;

        padding-bottom: 22px;

        opacity: 1;
        visibility: visible;

        transform: translateY(0);

        pointer-events: auto;
    }


    /* Remove desktop hover bridge */

    .site-nav .sub-menu::before {
        display: none;
    }


    /* ======================================================
       MOBILE SUBMENU ITEMS
       ====================================================== */

    .site-nav .sub-menu li {
        position: relative;

        width: 100%;

        margin: 0;
        padding: 0;

        border: 0;

        opacity: 0;

        transform: translateY(-8px);

        transition:
            opacity 0.3s ease,
            transform 0.45s cubic-bezier(.22, 1, .36, 1);
    }


    /* Items appear when submenu opens */

    .site-nav .menu-item-has-children.is-open > .sub-menu > li,
    .site-nav .menu-item-has-children > a[aria-expanded="true"] + .sub-menu > li {
        opacity: 1;

        transform: translateY(0);
    }


    /* ======================================================
       SUBMENU ITEM STAGGER
       ====================================================== */

    .site-nav .menu-item-has-children.is-open > .sub-menu > li:nth-child(1) {
        transition-delay: 0.08s;
    }

    .site-nav .menu-item-has-children.is-open > .sub-menu > li:nth-child(2) {
        transition-delay: 0.13s;
    }

    .site-nav .menu-item-has-children.is-open > .sub-menu > li:nth-child(3) {
        transition-delay: 0.18s;
    }

    .site-nav .menu-item-has-children.is-open > .sub-menu > li:nth-child(4) {
        transition-delay: 0.23s;
    }

    .site-nav .menu-item-has-children.is-open > .sub-menu > li:nth-child(5) {
        transition-delay: 0.28s;
    }

    .site-nav .menu-item-has-children.is-open > .sub-menu > li:nth-child(6) {
        transition-delay: 0.33s;
    }


    /* ======================================================
       MOBILE SUBMENU LINKS
       ====================================================== */

    .site-nav .sub-menu a {
        display: block;

        width: 100%;

        padding: 9px 0;

        color: rgba(41, 41, 41, 0.68);

        font-size: 16px;
        font-weight: 400;
        line-height: 1.4;

        text-decoration: none;

        background: transparent;

        border: 0;
        border-radius: 0;

        transform: none;

        transition:
            color 0.25s ease,
            padding-left 0.35s cubic-bezier(.22, 1, .36, 1);
    }

    .site-nav .sub-menu a:hover,
    .site-nav .sub-menu .current-menu-item > a,
    .site-nav .sub-menu .current_page_item > a {
        color: #72c943;

        padding-left: 5px;

        background: transparent;

        transform: none;
    }


    /* Remove desktop arrow */

    .site-nav .sub-menu a::after {
        display: none;
    }


    /* ======================================================
       SCROLL LOCK
       ====================================================== */

    body.menu-open {
        overflow: hidden;
    }

}


/* ==========================================================
   SMALL MOBILE
   ========================================================== */

@media (max-width: 480px) {

    .site-header .container {
        width: calc(100% - 28px);
    }

    .site-header__inside {
        min-height: 74px;
    }

    .custom-logo {
        height: 34px;
        max-width: 150px;
    }


    /* Navigation */

    .site-nav {
        padding:
            115px
            18px
            32px;
    }


    /* Main links */

    .site-nav .menu > li > a {
        padding: 18px 0;

        font-size: 28px;
    }


    /* Submenu */

    .site-nav .menu-item-has-children > .sub-menu {
        padding-left: 14px;
    }

    .site-nav .menu-item-has-children.is-open > .sub-menu,
    .site-nav .menu-item-has-children > a[aria-expanded="true"] + .sub-menu {
        padding-bottom: 18px;
    }

    .site-nav .sub-menu a {
        padding: 8px 0;

        font-size: 16px;
    }


    /* Toggle */

    .menu-toggle {
        gap: 11px;
    }

    .menu-toggle__label {
        font-size: 13px;
    }

    .menu-toggle__icon {
        width: 28px;
    }

    .menu-toggle__icon span:first-child {
        width: 28px;
    }

    .menu-toggle__icon span:last-child {
        width: 18px;
    }

    .menu-toggle.is-open .menu-toggle__icon span:first-child,
    .menu-toggle.is-open .menu-toggle__icon span:last-child {
        width: 26px;
    }

}


/* ==========================================================
   ACCESSIBILITY
   ========================================================== */

.site-nav a:focus-visible,
.menu-toggle:focus-visible {
    outline: 2px solid #72c943;
    outline-offset: 4px;
}


/* ==========================================================
   REDUCED MOTION
   ========================================================== */

@media (prefers-reduced-motion: reduce) {

    .site-nav,
    .site-nav *,
    .menu-toggle,
    .menu-toggle * {
        transition: none !important;
        animation: none !important;
    }

}
/* ==========================================================
   DESKTOP DROPDOWN – OVERFLOW / Z-INDEX FIX
   ========================================================== */

@media (min-width: 769px) {

    .v360-header-wrapper {
        position: relative;
        z-index: 9999;

        overflow: visible !important;
    }

    .site-header {
        position: relative;
        z-index: 9999;

        overflow: visible !important;
    }

    .site-header .container {
        overflow: visible !important;
    }

    .site-header__inside {
        position: relative;

        overflow: visible !important;
    }

    .site-nav {
        position: relative;
        z-index: 10000;

        overflow: visible !important;
    }

    .site-nav .menu,
    .site-nav .menu > li {
        overflow: visible !important;
    }

    .site-nav .menu-item-has-children {
        position: relative;
    }

    .site-nav .sub-menu {
        z-index: 10001;

        overflow: visible;
    }

}
/* ==========================================================
   MOBILE MENU – HIDE LOGO WHEN OPEN
   ========================================================== */

@media (max-width: 768px) {

    body.menu-open .custom-logo-link {
        opacity: 0;
        visibility: hidden;
        pointer-events: none;

        transition:
            opacity 0.2s ease,
            visibility 0.2s ease;
    }

    body.menu-open .menu-toggle {
        position: relative;
        z-index: 10003;
    }

}