/**
 * AvaSite 3.7 interaction and quality contract.
 * Loaded after the main component bundles so it can replace historic
 * interaction hotfixes without increasing selector ambiguity.
 */

/* Desktop dropdowns: contiguous hit areas, no invisible overlap, no stale delay. */
.ava-site-header .ava-main-menu,
.ava-site-header .ava-main-menu > li,
.ava-site-header .ava-main-menu .menu-item-has-children {
    overflow: visible;
}

.ava-site-header .ava-main-menu .menu-item-has-children::after,
.ava-site-header .ava-main-menu .sub-menu::before {
    content: none !important;
    display: none !important;
    pointer-events: none !important;
}

.ava-site-header .ava-main-menu .menu-item-has-children > a::before {
    display: none !important;
}

.ava-site-header .ava-main-menu .menu-item-has-children {
    position: relative;
}

.ava-site-header .ava-main-menu .sub-menu {
    position: absolute !important;
    z-index: 100040 !important;
    display: grid !important;
    width: max-content;
    min-width: clamp(260px, 25vw, 390px) !important;
    max-width: min(420px, calc(100vw - 24px)) !important;
    margin: 0 !important;
    padding: 10px !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transition: opacity .12s ease, transform .12s ease, visibility 0s linear .12s !important;
    transition-delay: 0s !important;
}

/* Top-level dropdowns are centered under their trigger. Logical inset values
   override all historic RTL/LTR positioning rules from older bundles. */
.ava-site-header .ava-main-menu > li > .sub-menu {
    top: 100% !important;
    inset-inline-start: 50% !important;
    inset-inline-end: auto !important;
    transform: translate3d(-50%, 5px, 0) !important;
    transform-origin: top center !important;
}

html[dir="rtl"] .ava-site-header .ava-main-menu > li > .sub-menu {
    transform: translate3d(50%, 5px, 0) !important;
}

.ava-site-header .ava-main-menu li:is(:hover, :focus-within, .is-submenu-open) > .sub-menu {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transition-delay: 0s !important;
}

.ava-site-header .ava-main-menu > li:is(:hover, :focus-within, .is-submenu-open) > .sub-menu {
    transform: translate3d(-50%, 0, 0) !important;
}

html[dir="rtl"] .ava-site-header .ava-main-menu > li:is(:hover, :focus-within, .is-submenu-open) > .sub-menu {
    transform: translate3d(50%, 0, 0) !important;
}

/* Viewport collision fallbacks: align to either logical edge of the trigger. */
.ava-site-header .ava-main-menu > li.is-submenu-align-start > .sub-menu {
    inset-inline-start: 0 !important;
    inset-inline-end: auto !important;
    transform: translate3d(0, 5px, 0) !important;
    transform-origin: top right !important;
}

.ava-site-header .ava-main-menu > li.is-submenu-align-end > .sub-menu {
    inset-inline-start: auto !important;
    inset-inline-end: 0 !important;
    transform: translate3d(0, 5px, 0) !important;
    transform-origin: top left !important;
}

.ava-site-header .ava-main-menu > li:is(.is-submenu-align-start, .is-submenu-align-end):is(:hover, :focus-within, .is-submenu-open) > .sub-menu {
    transform: translate3d(0, 0, 0) !important;
}

/* Nested dropdowns open toward inline-start (left in RTL, right in LTR). */
.ava-site-header .ava-main-menu .sub-menu .sub-menu {
    top: -10px !important;
    inset-inline-start: 100% !important;
    inset-inline-end: auto !important;
    transform: translate3d(0, 5px, 0) !important;
}

.ava-site-header .ava-main-menu .sub-menu li:is(:hover, :focus-within, .is-submenu-open) > .sub-menu {
    transform: translate3d(0, 0, 0) !important;
}

.ava-site-header .ava-main-menu .sub-menu li.is-submenu-flipped > .sub-menu {
    inset-inline-start: auto !important;
    inset-inline-end: 100% !important;
}

.ava-site-header .ava-main-menu .sub-menu li {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
}

.ava-site-header .ava-main-menu .sub-menu li > a {
    grid-column: 1;
    min-width: 0;
    width: 100%;
    min-height: 44px !important;
    text-align: right;
    white-space: normal !important;
    user-select: auto !important;
}

.ava-desktop-submenu-toggle {
    position: relative;
    z-index: 2;
    display: inline-grid;
    place-items: center;
    flex: 0 0 32px;
    width: 32px;
    height: 32px;
    margin: 0 -5px 0 3px;
    padding: 0;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: currentColor;
    cursor: pointer;
    transition: background-color .12s ease, color .12s ease, transform .12s ease;
}

.ava-main-menu .sub-menu .ava-desktop-submenu-toggle {
    grid-column: 2;
    grid-row: 1;
    margin: 0;
    color: var(--ava-muted);
}

.ava-desktop-submenu-toggle:hover,
.ava-desktop-submenu-toggle:focus-visible {
    background: color-mix(in srgb, var(--ava-primary) 10%, transparent);
    color: var(--ava-primary);
}

.ava-desktop-submenu-toggle svg {
    width: 18px;
    height: 18px;
    transition: transform .12s ease;
}

.ava-main-menu > .menu-item-has-children.is-submenu-open > .ava-desktop-submenu-toggle svg {
    transform: rotate(180deg);
}

.ava-main-menu .sub-menu .menu-item-has-children > .ava-desktop-submenu-toggle svg {
    transform: rotate(90deg);
}

.ava-main-menu .sub-menu .menu-item-has-children.is-submenu-flipped > .ava-desktop-submenu-toggle svg {
    transform: rotate(-90deg);
}

/* The dynamic breakpoint hides the entire desktop navigation. Keep these controls
   out of copied mobile menus and old mobile markup. */
.ava-mobile-menu .ava-desktop-submenu-toggle,
.ava-mobile-panel .ava-desktop-submenu-toggle {
    display: none !important;
}

/* CTA and controls: predictable minimum target size without stretching text links. */
.ava-button,
.ava-header-cta,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
    min-height: 44px;
}

/* Prevent long identifiers, URLs and Persian/Latin mixed strings from causing CLS/overflow. */
.ava-entry-content,
.woocommerce-product-details__short-description,
.woocommerce-Tabs-panel,
.ava-page-header__copy {
    overflow-wrap: anywhere;
}

@media (prefers-reduced-motion: reduce) {
    .ava-site-header .ava-main-menu .sub-menu,
    .ava-desktop-submenu-toggle,
    .ava-desktop-submenu-toggle svg {
        transition-duration: .01ms !important;
    }
}
