#ScrollMenu {
    background-color: var(--sm-bg);
    border-top: var(--sm-border-top) solid var(--sm-border);
    border-bottom: var(--sm-border-bottom) solid var(--sm-border);
    box-shadow: var(--sm-shadow);
    z-index: var(--sm-menu-zindex);
    width: 100%;
    box-sizing: border-box;
    overflow: visible !important;
    -webkit-font-smoothing: antialiased;
}

@media screen and (min-width: 1025px) {
    #ScrollMenu.sm-desk-pos-sticky { position: -webkit-sticky; position: sticky; }
    #ScrollMenu.sm-desk-pos-fixed { position: fixed; left: 0; right: 0; }
    #ScrollMenu.sm-desk-pos-autohide { 
        position: fixed; left: 0; right: 0; 
        transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), z-index 0s linear 0s; 
    }
    #ScrollMenu.sm-desk-pos-autohide.sm-hidden { 
        transform: translateY(calc(-100% - var(--sm-border-top) - 30px)); 
        z-index: -1 !important; pointer-events: none; 
        transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), z-index 0s linear 0.35s; 
    }
    #ScrollMenu.sm-desk-pos-static { position: static; }
}

@media screen and (min-width: 769px) and (max-width: 1024px) {
    #ScrollMenu.sm-tab-pos-sticky { position: -webkit-sticky; position: sticky; }
    #ScrollMenu.sm-tab-pos-fixed { position: fixed; left: 0; right: 0; }
    #ScrollMenu.sm-tab-pos-autohide { 
        position: fixed; left: 0; right: 0; 
        transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), z-index 0s linear 0s; 
    }
    #ScrollMenu.sm-tab-pos-autohide.sm-hidden { 
        transform: translateY(calc(-100% - var(--sm-border-top) - 30px)); 
        z-index: -1 !important; pointer-events: none; 
        transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), z-index 0s linear 0s; 
    }
    #ScrollMenu.sm-tab-pos-static { position: static; }
}

@media screen and (max-width: 768px) {
    #ScrollMenu.sm-mob-pos-sticky { position: -webkit-sticky; position: sticky; }
    #ScrollMenu.sm-mob-pos-fixed { position: fixed; left: 0; right: 0; }
    #ScrollMenu.sm-mob-pos-autohide { 
        position: fixed; left: 0; right: 0; 
        transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), z-index 0s linear 0s; 
    }
    #ScrollMenu.sm-mob-pos-autohide.sm-hidden { 
        transform: translateY(calc(-100% - var(--sm-border-top) - 30px)); 
        z-index: -1 !important; pointer-events: none; 
        transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), z-index 0s linear 0s; 
    }
    #ScrollMenu.sm-mob-pos-static { position: static; }
}

.sm-container { 
    max-width: 1200px; margin: 0 auto; padding: 0 var(--sm-container-padding); box-sizing: border-box; overflow: visible !important;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
    .sm-container { overflow: visible !important; }
}
@media screen and (max-width: 768px) {
    .sm-container { 
        overflow-x: auto !important; 
        overflow-y: hidden !important; 
        -webkit-overflow-scrolling: touch; 
        scrollbar-width: none; 
        overscroll-behavior-x: none !important; 
        overscroll-behavior-y: none !important;     
        touch-action: pan-x pinch-zoom !important;    
    }
}
.sm-container::-webkit-scrollbar { display: none; }

.sm-menu-list { list-style: none !important; margin: 0 !important; padding: 0 !important; display: flex; align-items: center; width: max-content; box-sizing: border-box; overflow: visible !important; }
.sm-menu-list li { position: relative; margin: 0 !important; padding: 0 !important; list-style: none !important; overflow: visible !important; }

.sm-menu-list a {
    display: flex; align-items: center; justify-content: space-between; text-decoration: none !important;
    color: var(--sm-text); white-space: nowrap; position: relative; transition: color 0.2s ease; box-sizing: border-box; -webkit-font-smoothing: antialiased;
}

.sm-has-arrows .sm-menu-list > .menu-item-has-children > a::after {
    content: ''; display: inline-block; margin-left: 6px; width: 0; height: 0;
    border-left: 4px solid transparent; border-right: 4px solid transparent; border-top: 5px solid currentColor; vertical-align: middle; transition: transform 0.2s ease;
}

.sm-menu-list > li > a::before {
    content: ''; position: absolute; bottom: 0; height: var(--sm-line-thick); background-color: var(--sm-line);
    border-radius: var(--sm-line-radius) var(--sm-line-radius) 0 0; opacity: 0; transform: translateY(2px); transition: opacity 0.2s ease, transform 0.2s ease; z-index: 10;
}

.sm-menu-list > li.current-menu-item > a::before, 
.sm-menu-list > li.current-menu-ancestor > a::before { 
    opacity: 1; transform: translateY(0); 
}

.sm-menu-list > li:hover > a::before, 
.sm-menu-list > li.focus > a::before { 
    opacity: 1 !important; transform: translateY(0) !important; z-index: 11; 
}

.sm-menu-list:hover > li.current-menu-item > a::before,
.sm-menu-list:hover > li.current-menu-ancestor > a::before {
    opacity: 0 !important;
}

.sm-menu-list > li.current-menu-item:hover > a::before,
.sm-menu-list > li.current-menu-ancestor:hover > a::before {
    opacity: 1 !important;
}

.sm-menu-list > li:hover > a, .sm-menu-list > li.focus > a { color: var(--sm-hover-text); }
.sm-menu-list > li.current-menu-item > a, .sm-menu-list > li.current-menu-ancestor > a { color: var(--sm-active-text); }

@media screen and (min-width: 769px) {
    .sm-sheet-header { display: none !important; }

    .sm-menu-list > li > ul.sub-menu {
        position: absolute !important; top: calc(100% + 2px) !important; left: 0 !important;
        width: max-content !important; min-width: 160px !important; background-color: var(--sm-sub-bg) !important;
        background-clip: padding-box !important; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.18) !important;
        border: 1px solid rgba(0, 0, 0, 0.08) !important; opacity: 0 !important; visibility: hidden !important;
        transform: translateY(4px) !important; transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s ease !important;
        z-index: 99999 !important; padding: 4px 0 !important; list-style: none !important; display: block !important;
    }

    .sm-menu-list .sub-menu ul.sub-menu {
        position: absolute !important; top: -5px !important; left: 100% !important; margin-top: 0 !important;
        margin-left: 8px !important; width: max-content !important; min-width: 160px !important;
        background-color: var(--sm-sub2-bg) !important; background-clip: padding-box !important;
        box-shadow: 0 10px 30px rgba(0, 0, 0, 0.18) !important; border: 1px solid rgba(0, 0, 0, 0.08) !important;
        opacity: 0 !important; visibility: hidden !important; transform: translateX(4px) !important;
        transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s ease !important;
        z-index: 100000 !important; padding: 4px 0 !important; list-style: none !important; display: block !important;
    }

    .sm-menu-list > li.menu-item-has-children:hover > .sub-menu,
    .sm-menu-list > li.menu-item-has-children.focus > .sub-menu {
        opacity: 1 !important; visibility: visible !important; transform: translateY(0) !important;
    }

    .sm-menu-list .sub-menu .menu-item-has-children:hover > .sub-menu,
    .sm-menu-list .sub-menu .menu-item-has-children.focus > .sub-menu {
        opacity: 1 !important; visibility: visible !important; transform: translateX(0) !important;
    }
    
    .sm-menu-list ul.sub-menu a {
        color: var(--sm-sub-text) !important; font-size: var(--sm-sub-fs) !important; font-weight: var(--sm-sub-fw) !important;
        height: auto !important; padding: 10px 18px !important; text-decoration: none !important; white-space: nowrap !important;
        display: flex !important; align-items: center !important; justify-content: space-between !important;
        background-color: transparent !important; width: auto !important; position: relative !important; overflow: visible !important;
    }

    .sm-menu-list ul.sub-menu > li.current-menu-item > a { color: var(--sm-sub-active-text) !important; font-weight: 600 !important; }
    .sm-menu-list ul.sub-menu li:hover > a { background-color: var(--sm-sub-hover-bg) !important; color: var(--sm-sub-hover-text) !important; }

    .sm-menu-list .sub-menu .menu-item-has-children { position: relative !important; }

    .sm-menu-list .sub-menu .sub-menu a { color: var(--sm-sub2-text) !important; font-size: var(--sm-sub2-fs) !important; font-weight: var(--sm-sub2-fw) !important; }
    .sm-menu-list .sub-menu .sub-menu li:hover > a { background-color: var(--sm-sub2-hover-bg) !important; color: var(--sm-sub2-hover-text) !important; }
    .sm-menu-list .sub-menu .sub-menu > li.current-menu-item > a { color: var(--sm-sub2-active-text) !important; }

    .sm-menu-list .sub-menu .menu-item-has-children > a::after {
        content: '▶' !important; display: inline-block !important; font-size: 8px !important; margin-left: 16px !important;
        color: inherit !important; transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s ease !important;
    }

    .sm-menu-list .sub-menu .menu-item-has-children:hover > a::after,
    .sm-menu-list .sub-menu .menu-item-has-children.focus > a::after {
        content: '' !important; position: absolute !important; right: -6px !important; top: 50% !important;
        transform: translateY(-50%) !important; width: 0 !important; height: 0 !important;
        border-top: 4px solid transparent !important; border-bottom: 4px solid transparent !important;
        border-left: 6px solid var(--sm-sub-bg, #ffffff) !important; filter: drop-shadow(1px 0 1px rgba(0,0,0,0.1)) !important;
        z-index: 1002 !important; display: block !important; animation: smSwipeArrowToNotch 0.25s cubic-bezier(0.16, 1, 0.3, 1) forwards !important;
    }

    @keyframes smSwipeArrowToNotch {
        0% { opacity: 0; transform: translateY(-50%) translateX(-6px); }
        100% { opacity: 1; transform: translateY(-50%) translateX(0); }
    }
}

@media screen and (max-width: 768px) {
    body.sm-popup-open { overflow: hidden !important; position: fixed !important; width: 100% !important; height: 100% !important; }
    .sub-menu { display: none; }
    
    .sub-menu.sm-drawer-portaled {
        display: flex !important; flex-direction: column !important; position: fixed !important;
        bottom: 0 !important; left: 0 !important; right: 0 !important; top: auto !important;
        background-color: var(--sm-mob-bg, #ffffff) !important;
        border-radius: var(--sm-mob-radius, 16px) var(--sm-mob-radius, 16px) 0 0 !important;
        box-shadow: 0 -10px 40px rgba(0, 0, 0, 0.2) !important; z-index: 2147483647 !important;
        height: auto !important; max-height: 75vh !important; overflow-y: scroll !important;
        overflow-x: hidden !important; overscroll-behavior: none !important;
        -webkit-overflow-scrolling: touch !important; touch-action: pan-y !important;
        transform: translateY(100%) !important; transition: transform 0.32s cubic-bezier(0.16, 1, 0.3, 1) !important;
        padding: 0 0 30px 0 !important; margin: 0 !important; list-style: none !important; box-sizing: border-box !important;
    }

    .sub-menu.sm-drawer-portaled.sm-sheet-active { transform: translateY(0) !important; }

    .sub-menu.sm-drawer-portaled .sm-sheet-header {
        display: flex !important; align-items: center !important; justify-content: center !important;
        position: sticky !important; top: 0 !important; left: 0 !important; width: 100% !important;
        flex-shrink: 0 !important; padding: 16px 20px !important;
        border-bottom: 1px solid var(--sm-mob-divider, #eeeeee) !important;
        background-color: var(--sm-mob-bg, #ffffff) !important; z-index: 100 !important; box-sizing: border-box !important;
    }

    .sub-menu.sm-drawer-portaled .sm-sheet-title { font-size: 16px !important; font-weight: 600 !important; color: var(--sm-mob-header-text, #111111) !important; text-align: center !important; margin: 0 !important; }
    .sub-menu.sm-drawer-portaled .sm-sheet-close { position: absolute !important; right: 16px !important; top: 50% !important; transform: translateY(-50%) !important; background: transparent !important; border: none !important; font-size: 22px !important; cursor: pointer !important; color: var(--sm-mob-header-text, #111111) !important; padding: 4px 8px !important; line-height: 1 !important; }

    .sub-menu.sm-drawer-portaled > li { width: 100% !important; flex-shrink: 0 !important; display: block !important; background-color: var(--sm-mob-bg, #ffffff) !important; margin: 0 !important; padding: 0 !important; box-sizing: border-box !important; }

    .sub-menu.sm-drawer-portaled a {
        display: flex !important; align-items: center !important; justify-content: space-between !important;
        width: 100% !important; flex-shrink: 0 !important; color: var(--sm-mob-text, #333333) !important;
        font-size: var(--sm-mob-fs) !important; font-weight: var(--sm-mob-fw) !important; padding: 16px 20px !important;
        border-bottom: 1px solid var(--sm-mob-divider, #eeeeee) !important; text-align: left !important;
        background-color: var(--sm-mob-bg, #ffffff) !important; text-decoration: none !important; box-sizing: border-box !important;
    }

    .sub-menu.sm-drawer-portaled .sub-menu { display: none !important; position: static !important; background-color: transparent !important; box-shadow: none !important; border: none !important; padding: 0 !important; margin: 0 !important; width: 100% !important; }
    .sub-menu.sm-drawer-portaled .sub-menu.sm-accordion-open { display: block !important; }
    .sub-menu.sm-drawer-portaled .sub-menu a { padding-left: 20px !important; margin-top: 0 !important; padding-top: 16px !important; padding-bottom: 16px !important; box-sizing: border-box !important; }

    .sub-menu.sm-drawer-portaled .sm-mob-toggle { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; transition: transform 0.2s ease; }
    .sub-menu.sm-drawer-portaled .sm-mob-toggle::after { content: ''; display: block; width: 0; height: 0; border-left: 4px solid transparent; border-right: 4px solid transparent; border-top: 5px solid currentColor; }
    .sub-menu.sm-drawer-portaled .sm-mob-toggle.open { transform: rotate(180deg); }

    .sm-mobile-overlay { position: fixed !important; top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important; background: rgba(0, 0, 0, 0.5) !important; z-index: 2147483645 !important; opacity: 0; visibility: hidden; transition: opacity 0.3s ease; }
    .sm-mobile-overlay.active { opacity: 1 !important; visibility: visible !important; }
}