/* =============================================
   PRO MENU WIDGET — Elementor v3
   ============================================= */

/* 1. RESET */
nav.pmw-nav, nav.pmw-nav ul, nav.pmw-nav ul ul, nav.pmw-nav li,
nav.pmw-nav .pmw-menu-list, nav.pmw-nav .pmw-menu-list li,
nav.pmw-nav .pmw-menu-list .sub-menu, nav.pmw-nav .pmw-menu-list .sub-menu li {
    list-style: none !important; list-style-type: none !important;
    list-style-image: none !important; background-image: none;
    margin: 0; padding: 0;
}
nav.pmw-nav li::marker, nav.pmw-nav .pmw-menu-list li::marker,
nav.pmw-nav .sub-menu li::marker {
    content: none !important; font-size: 0 !important;
}

/* 2. BASE */
nav.pmw-nav { position: relative; z-index: 999; inline-size: 100%; box-sizing: border-box; }
nav.pmw-nav *, nav.pmw-nav *::before, nav.pmw-nav *::after { box-sizing: border-box; }

/* 3. DESKTOP MENU */
nav.pmw-nav ul.pmw-menu-list {
    list-style: none !important; margin: 0 !important; padding: 0 !important;
    display: flex !important; align-items: center; flex-wrap: wrap;
}
nav.pmw-nav ul.pmw-menu-list > li { position: relative; margin: 0; padding: 0; }
nav.pmw-nav ul.pmw-menu-list li a {
    display: flex; align-items: center; text-decoration: none !important;
    position: relative; white-space: nowrap; letter-spacing: 0.01em;
    transition: color 0.3s ease, background-color 0.3s ease;
}

/* 4. VERTICAL */
nav.pmw-nav.pmw-layout-vertical ul.pmw-menu-list { flex-direction: column; align-items: stretch; }
nav.pmw-nav.pmw-layout-vertical ul.pmw-menu-list .sub-menu {
    position: static; box-shadow: none; padding-inline-start: 16px;
    opacity: 1; visibility: visible; transform: none; pointer-events: auto;
    max-block-size: 0; overflow: hidden; transition: max-block-size 0.4s cubic-bezier(0.4,0,0.2,1);
}
nav.pmw-nav.pmw-layout-vertical ul.pmw-menu-list li.pmw-submenu-open > .sub-menu { max-block-size: 800px; }

/* 5. HOVER EFFECTS */
nav.pmw-nav.pmw-hover-underline ul.pmw-menu-list > li > a::after,
nav.pmw-nav.pmw-hover-overline ul.pmw-menu-list > li > a::after,
nav.pmw-nav.pmw-hover-border-bottom ul.pmw-menu-list > li > a::after {
    content: ''; position: absolute; inset-inline-start: 50%; inline-size: 0;
    block-size: 2px; border-radius: 1px;
    background-color: currentColor; /* default — overridden by Elementor color picker */
    transition: inline-size 0.35s cubic-bezier(0.4,0,0.2,1), inset-inline-start 0.35s cubic-bezier(0.4,0,0.2,1);
}
nav.pmw-nav.pmw-hover-underline ul.pmw-menu-list > li > a::after { inset-block-end: 0; }
nav.pmw-nav.pmw-hover-overline ul.pmw-menu-list > li > a::after { inset-block-start: 0; }
nav.pmw-nav.pmw-hover-border-bottom ul.pmw-menu-list > li > a::after { inset-block-end: -3px; block-size: 3px; }

nav.pmw-nav.pmw-hover-underline ul.pmw-menu-list > li > a:hover::after,
nav.pmw-nav.pmw-hover-overline ul.pmw-menu-list > li > a:hover::after,
nav.pmw-nav.pmw-hover-border-bottom ul.pmw-menu-list > li > a:hover::after,
nav.pmw-nav.pmw-hover-underline ul.pmw-menu-list > li.current-menu-item > a::after,
nav.pmw-nav.pmw-hover-overline ul.pmw-menu-list > li.current-menu-item > a::after,
nav.pmw-nav.pmw-hover-border-bottom ul.pmw-menu-list > li.current-menu-item > a::after {
    inline-size: 100%; inset-inline-start: 0;
}
nav.pmw-nav.pmw-hover-background ul.pmw-menu-list > li > a {
    border-radius: 6px;
    transition: color 0.3s ease, background-color 0.3s ease, transform 0.2s ease;
}
nav.pmw-nav.pmw-hover-background ul.pmw-menu-list > li > a:hover {
    transform: translateY(-1px);
    background-color: rgba(0,0,0,0.06); /* subtle default — overridden by Elementor */
}

/* 6. SUBMENU INDICATORS */
nav.pmw-nav ul.pmw-menu-list li.menu-item-has-children > a::before {
    display: inline-flex !important; align-items: center; margin-inline-start: 6px;
    font-size: 0.65em; transition: transform 0.35s cubic-bezier(0.4,0,0.2,1);
    order: 99; padding-inline-start: 6px; opacity: 0.5;
    background: none !important; border: none !important; width: auto !important;
    height: auto !important; position: static !important;
}
nav.pmw-nav ul.pmw-menu-list li.menu-item-has-children > a:hover::before { opacity: 1; }
nav.pmw-nav[data-indicator="arrow"] li.menu-item-has-children > a::before { content: '\25BE' !important; }
nav.pmw-nav[data-indicator="plus"] li.menu-item-has-children > a::before { content: '+' !important; font-size: 0.85em; }
nav.pmw-nav[data-indicator="chevron"] li.menu-item-has-children > a::before { content: '\203A' !important; font-size: 1.1em; }
nav.pmw-nav[data-indicator="none"] li.menu-item-has-children > a::before { content: none !important; display: none !important; }
nav.pmw-nav li.menu-item-has-children.pmw-submenu-open > a::before { transform: rotate(180deg); opacity: 1; }
nav.pmw-nav[data-indicator="chevron"] li.pmw-submenu-open > a::before { transform: rotate(90deg); }
nav.pmw-nav[data-indicator="plus"] li.pmw-submenu-open > a::before { content: '\2212' !important; transform: none; }

/* 7. DROPDOWN */
nav.pmw-nav ul.pmw-menu-list .sub-menu,
nav.pmw-nav .pmw-menu-list .sub-menu {
    position: absolute; inset-block-start: 100%; inset-inline-start: 0;
    z-index: 1000; margin: 0 !important; padding: 8px 4px !important;
    opacity: 0; visibility: hidden; pointer-events: none; border-radius: 12px;
    backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.06), 0 12px 28px -4px rgba(0,0,0,0.1), 0 0 0 1px rgba(0,0,0,0.04);
    transition: opacity 0.3s cubic-bezier(0.4,0,0.2,1), transform 0.3s cubic-bezier(0.4,0,0.2,1), visibility 0.3s;
}

/* Hover bridge — invisible area that connects parent li to the dropdown,
   prevents mouseleave from firing when cursor moves to the submenu */
nav.pmw-nav ul.pmw-menu-list > li.menu-item-has-children > .sub-menu::before {
    content: ''; position: absolute; inset-block-start: -12px; inset-inline-start: 0;
    inline-size: 100%; block-size: 12px;
}

nav.pmw-nav ul.pmw-menu-list .sub-menu .sub-menu {
    inset-block-start: -8px; inset-inline-start: calc(100% + 4px);
}

/* Hover bridge for nested submenus */
nav.pmw-nav ul.pmw-menu-list .sub-menu .sub-menu::before {
    content: ''; position: absolute; inset-block-start: 0;
    inset-inline-start: -12px; inline-size: 12px; block-size: 100%;
}

nav.pmw-nav ul.pmw-menu-list li.pmw-submenu-open > .sub-menu {
    opacity: 1; visibility: visible; pointer-events: auto;
}

nav.pmw-nav ul.pmw-menu-list .sub-menu li a {
    display: block; text-decoration: none !important; white-space: nowrap; border-radius: 8px;
    transition: color 0.2s ease, background-color 0.2s ease;
}

/* 8. DROPDOWN ANIMATIONS */
nav.pmw-nav.pmw-anim-fade .sub-menu { transform: none; }

nav.pmw-nav.pmw-anim-slide-up .sub-menu { transform: translateY(10px); }
nav.pmw-nav.pmw-anim-slide-up li.pmw-submenu-open > .sub-menu { transform: translateY(0); }

nav.pmw-nav.pmw-anim-slide-down .sub-menu { transform: translateY(-10px); }
nav.pmw-nav.pmw-anim-slide-down li.pmw-submenu-open > .sub-menu { transform: translateY(0); }

nav.pmw-nav.pmw-anim-scale .sub-menu { transform: scale(0.95); transform-origin: top center; }
nav.pmw-nav.pmw-anim-scale li.pmw-submenu-open > .sub-menu { transform: scale(1); }

nav.pmw-nav.pmw-anim-none .sub-menu { transition: none; }

/* 9. HAMBURGER */
nav.pmw-nav button.pmw-hamburger, .pmw-nav > .pmw-hamburger {
    flex-direction: column; justify-content: center; align-items: center; gap: 5px;
    background: none !important; background-color: transparent !important;
    background-image: none !important; border: none !important; box-shadow: none !important;
    outline: none; cursor: pointer; padding: 8px; z-index: 1001; position: relative;
    border-radius: 8px; inline-size: auto; block-size: auto; min-width: 0; min-height: 0;
    line-height: 1; transition: background-color 0.2s ease;
}
nav.pmw-nav button.pmw-hamburger:hover { background-color: rgba(0,0,0,0.04) !important; }
nav.pmw-nav button.pmw-hamburger:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
nav.pmw-nav button.pmw-hamburger span {
    display: block !important; inline-size: 22px; block-size: 2px; border-radius: 2px;
    background-color: #333 !important; transition: transform 0.4s cubic-bezier(0.4,0,0.2,1), opacity 0.3s ease;
    transform-origin: center; position: static !important; margin: 0 !important; padding: 0 !important;
    border: none !important; font-size: 0 !important; line-height: 0 !important; color: transparent !important;
}

/* Hamburger animations */
nav.pmw-nav.pmw-mobile-open button.pmw-ham-classic span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
nav.pmw-nav.pmw-mobile-open button.pmw-ham-classic span:nth-child(2) { opacity: 0; inline-size: 0; }
nav.pmw-nav.pmw-mobile-open button.pmw-ham-classic span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

nav.pmw-nav button.pmw-ham-dots { flex-direction: row !important; justify-content: center !important; gap: 5px; }
nav.pmw-nav button.pmw-ham-dots span { inline-size: 5px !important; block-size: 5px !important; border-radius: 50%; }
nav.pmw-nav.pmw-mobile-open button.pmw-ham-dots span:nth-child(1) { transform: translateX(5px); opacity: 0; }
nav.pmw-nav.pmw-mobile-open button.pmw-ham-dots span:nth-child(3) { transform: translateX(-5px); opacity: 0; }

nav.pmw-nav.pmw-mobile-open button.pmw-ham-arrow span:nth-child(1) { transform: translateY(7px) rotate(45deg) scaleX(0.55); transform-origin: right; }
nav.pmw-nav.pmw-mobile-open button.pmw-ham-arrow span:nth-child(3) { transform: translateY(-7px) rotate(-45deg) scaleX(0.55); transform-origin: right; }

/* SPIN — whole button rotates while forming X */
nav.pmw-nav button.pmw-ham-spin {
    transition: transform 0.5s cubic-bezier(0.4,0,0.2,1), background-color 0.2s ease !important;
}
nav.pmw-nav.pmw-mobile-open button.pmw-ham-spin { transform: rotate(180deg); }
nav.pmw-nav.pmw-mobile-open button.pmw-ham-spin span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
nav.pmw-nav.pmw-mobile-open button.pmw-ham-spin span:nth-child(2) { opacity: 0; inline-size: 0; }
nav.pmw-nav.pmw-mobile-open button.pmw-ham-spin span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* SQUEEZE — lines stagger-delay into X */
nav.pmw-nav button.pmw-ham-squeeze span:nth-child(1) { transition: transform 0.35s 0.1s cubic-bezier(0.4,0,0.2,1), opacity 0.3s 0.1s ease; }
nav.pmw-nav button.pmw-ham-squeeze span:nth-child(2) { transition: transform 0.35s 0.05s cubic-bezier(0.4,0,0.2,1), opacity 0.3s 0.05s ease, inline-size 0.3s 0.05s ease; }
nav.pmw-nav button.pmw-ham-squeeze span:nth-child(3) { transition: transform 0.35s 0.1s cubic-bezier(0.4,0,0.2,1), opacity 0.3s 0.1s ease; }
nav.pmw-nav.pmw-mobile-open button.pmw-ham-squeeze span:nth-child(1) { transform: translateY(7px) rotate(45deg); transition-delay: 0s; }
nav.pmw-nav.pmw-mobile-open button.pmw-ham-squeeze span:nth-child(2) { opacity: 0; inline-size: 0; transition-delay: 0s; }
nav.pmw-nav.pmw-mobile-open button.pmw-ham-squeeze span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); transition-delay: 0s; }

/* MINUS — top & bottom collapse onto middle line */
nav.pmw-nav.pmw-mobile-open button.pmw-ham-minus span:nth-child(1) { transform: translateY(7px); opacity: 0; }
nav.pmw-nav.pmw-mobile-open button.pmw-ham-minus span:nth-child(2) { inline-size: 22px; }
nav.pmw-nav.pmw-mobile-open button.pmw-ham-minus span:nth-child(3) { transform: translateY(-7px); opacity: 0; }

/* STAND — all three lines rotate to vertical / collapse center */
nav.pmw-nav.pmw-mobile-open button.pmw-ham-stand span:nth-child(1) { transform: translateY(7px) rotate(90deg); opacity: 0; }
nav.pmw-nav.pmw-mobile-open button.pmw-ham-stand span:nth-child(2) { transform: rotate(90deg); inline-size: 22px; }
nav.pmw-nav.pmw-mobile-open button.pmw-ham-stand span:nth-child(3) { transform: translateY(-7px) rotate(90deg); opacity: 0; }

/* ELASTIC — bouncy spring easing X */
nav.pmw-nav button.pmw-ham-elastic span {
    transition: transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1), opacity 0.3s ease, inline-size 0.3s ease !important;
}
nav.pmw-nav.pmw-mobile-open button.pmw-ham-elastic span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
nav.pmw-nav.pmw-mobile-open button.pmw-ham-elastic span:nth-child(2) { opacity: 0; inline-size: 0; }
nav.pmw-nav.pmw-mobile-open button.pmw-ham-elastic span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* VORTEX — each line flips with staggered 3D depth */
nav.pmw-nav button.pmw-ham-vortex { perspective: 60px; }
nav.pmw-nav button.pmw-ham-vortex span:nth-child(1) { transition: transform 0.4s 0s cubic-bezier(0.4,0,0.2,1), opacity 0.3s ease; }
nav.pmw-nav button.pmw-ham-vortex span:nth-child(2) { transition: transform 0.4s 0.07s cubic-bezier(0.4,0,0.2,1), opacity 0.3s 0.07s ease; }
nav.pmw-nav button.pmw-ham-vortex span:nth-child(3) { transition: transform 0.4s 0.14s cubic-bezier(0.4,0,0.2,1), opacity 0.3s 0.14s ease; }
nav.pmw-nav.pmw-mobile-open button.pmw-ham-vortex span:nth-child(1) { transform: translateY(7px) rotateX(90deg); opacity: 0; transition-delay: 0s; }
nav.pmw-nav.pmw-mobile-open button.pmw-ham-vortex span:nth-child(2) { transform: rotateX(90deg); opacity: 0; transition-delay: 0.07s; }
nav.pmw-nav.pmw-mobile-open button.pmw-ham-vortex span:nth-child(3) { transform: translateY(-7px) rotateX(90deg); opacity: 0; transition-delay: 0.14s; }

/* 10. MOBILE DRAWER — slide-from-right default */
nav.pmw-nav.pmw-mobile-active ul.pmw-menu-list {
    flex-direction: column !important; align-items: stretch !important;
    position: fixed !important; inset-block: 0 !important; inset-inline-end: 0 !important; inset-inline-start: auto !important;
    inline-size: min(88vw, 400px) !important; max-inline-size: 100vw !important; block-size: 100dvh !important;
    z-index: 99999 !important; padding: 72px 24px 40px 24px !important; margin: 0 !important;
    overflow-y: auto !important; overscroll-behavior: contain; -webkit-overflow-scrolling: touch;
    background-color: #f8fafc !important; box-shadow: -25px 0 50px -12px rgba(0,0,0,0.15) !important;
    visibility: hidden !important;
    transform: translateX(100%);
    transition: transform 0.4s cubic-bezier(0.4,0,0.2,1), visibility 0.4s !important;
}
[dir="rtl"] nav.pmw-nav.pmw-mobile-active ul.pmw-menu-list { transform: translateX(-100%); }

nav.pmw-nav.pmw-mobile-open ul.pmw-menu-list {
    visibility: visible !important;
    transform: translateX(0) !important;
}

nav.pmw-nav.pmw-mobile-active ul.pmw-menu-list > li { margin: 0 !important; padding: 0 !important; }
nav.pmw-nav.pmw-mobile-active ul.pmw-menu-list > li > a {
    padding: 16px 24px !important; font-size: 16px !important; font-weight: 400;
    white-space: normal; border-radius: 9999px !important; color: #475569;
    transition: background-color 0.2s ease, color 0.2s ease;
}
nav.pmw-nav.pmw-mobile-active ul.pmw-menu-list > li > a:hover { background-color: #edf4ff !important; }
nav.pmw-nav.pmw-mobile-active ul.pmw-menu-list > li.current-menu-item > a,
nav.pmw-nav.pmw-mobile-active ul.pmw-menu-list > li.current-menu-ancestor > a {
    background-color: #dbeafe !important; color: #1e3a8a !important; font-weight: 700 !important;
}
nav.pmw-nav.pmw-mobile-active ul.pmw-menu-list > li > a::after { display: none !important; }

/* Mobile submenus */
nav.pmw-nav.pmw-mobile-active ul.pmw-menu-list .sub-menu {
    position: static !important; opacity: 1 !important; visibility: visible !important;
    pointer-events: auto !important; transform: none !important; box-shadow: none !important;
    border: none !important; border-radius: 0 !important; backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important; padding: 0 0 0 20px !important; margin: 0 !important;
    min-inline-size: 100% !important; max-block-size: 0; overflow: hidden;
    background: transparent !important; transition: max-block-size 0.4s cubic-bezier(0.4,0,0.2,1);
}
nav.pmw-nav.pmw-mobile-active li.pmw-submenu-open > .sub-menu { max-block-size: 800px; }
nav.pmw-nav.pmw-mobile-active ul.pmw-menu-list .sub-menu li { margin: 4px 0 !important; }
nav.pmw-nav.pmw-mobile-active ul.pmw-menu-list .sub-menu li a {
    padding: 12px 24px !important; padding-inline-start: 44px !important; font-size: 15px !important;
    font-weight: 400; border-radius: 9999px !important; color: #64748b; opacity: 1;
}
nav.pmw-nav.pmw-mobile-active ul.pmw-menu-list .sub-menu li a:hover { background-color: #edf4ff !important; color: #475569; }
nav.pmw-nav.pmw-mobile-active ul.pmw-menu-list .sub-menu .sub-menu li a { padding-inline-start: 64px !important; }
nav.pmw-nav.pmw-mobile-active li.menu-item-has-children > a::before { margin-inline-start: auto; padding-inline-start: 12px; font-size: 0.75em; opacity: 0.4; }

/* Fixed close button when mobile open */
nav.pmw-nav.pmw-mobile-open button.pmw-hamburger {
    position: fixed !important; inset-block-start: 20px !important; inset-inline-end: 24px !important;
    inset-inline-start: auto !important; z-index: 100000 !important; display: flex !important;
}
.admin-bar nav.pmw-nav.pmw-mobile-open button.pmw-hamburger { inset-block-start: 66px !important; }
@media screen and (max-width: 782px) { .admin-bar nav.pmw-nav.pmw-mobile-open button.pmw-hamburger { inset-block-start: 52px !important; } }

/* 11. MOBILE ANIMATION VARIANTS */
/* Slide Down */
nav.pmw-nav.pmw-mob-slide-down.pmw-mobile-active ul.pmw-menu-list {
    inset-inline: 0 !important; inset-inline-end: 0 !important;
    inline-size: 100% !important; block-size: auto !important;
    max-block-size: 100dvh;
    transform: translateY(-100%);
    inset-block-start: 0 !important; inset-block-end: auto !important;
    transition: transform 0.4s cubic-bezier(0.4,0,0.2,1), visibility 0.4s !important;
}
nav.pmw-nav.pmw-mob-slide-down.pmw-mobile-open ul.pmw-menu-list { transform: translateY(0) !important; }

/* Fade In */
nav.pmw-nav.pmw-mob-fade-in.pmw-mobile-active ul.pmw-menu-list {
    inset-inline: 0 !important;
    inline-size: 100% !important;
    transform: none;
    opacity: 0;
    transition: opacity 0.35s cubic-bezier(0.4,0,0.2,1), visibility 0.35s !important;
}
nav.pmw-nav.pmw-mob-fade-in.pmw-mobile-open ul.pmw-menu-list { opacity: 1 !important; }

/* Slide Left */
nav.pmw-nav.pmw-mob-slide-left.pmw-mobile-active ul.pmw-menu-list {
    inset-inline-start: 0 !important; inset-inline-end: auto !important;
    transform: translateX(-100%);
    box-shadow: 25px 0 50px -12px rgba(0,0,0,0.15) !important;
}
[dir="rtl"] nav.pmw-nav.pmw-mob-slide-left.pmw-mobile-active ul.pmw-menu-list { transform: translateX(100%); }
nav.pmw-nav.pmw-mob-slide-left.pmw-mobile-open ul.pmw-menu-list { transform: translateX(0) !important; }

/* 12. OVERLAY */
nav.pmw-nav .pmw-overlay {
    display: none !important; position: fixed !important; inset: 0 !important;
    background: rgba(0,36,68,0.2) !important; z-index: 99998 !important;
    backdrop-filter: blur(2px); -webkit-backdrop-filter: blur(2px);
    animation: pmw-overlayIn 0.3s ease forwards;
}
nav.pmw-nav.pmw-mobile-open .pmw-overlay { display: block !important; }
@keyframes pmw-overlayIn { from { opacity: 0 } to { opacity: 1 } }

/* 13. REDUCED MOTION */
@media (prefers-reduced-motion: reduce) {
    nav.pmw-nav *, nav.pmw-nav *::before, nav.pmw-nav *::after {
        animation-duration: 0.01ms !important; transition-duration: 0.01ms !important;
    }
}
