/* -------------------------------------------------------------
   Line Width Customizations (Horizontal & Vertical)
------------------------------------------------------------- */

/* Horizontal Layout: Overrides horizontal item padding so background/underline spans text only */
.angie-line-width-text-only .elementor-nav-menu--main:not(.elementor-nav-menu--layout-vertical) .elementor-item {
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: var(--e-nav-menu-horizontal-menu-item-margin, 15px) !important;
    margin-right: var(--e-nav-menu-horizontal-menu-item-margin, 15px) !important;
}

/* Vertical Layout: collapse column bounds to exactly fit text width */
.angie-line-width-text-only .elementor-nav-menu--main.elementor-nav-menu--layout-vertical .elementor-item {
    display: inline-block !important;
    width: max-content !important;
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    text-align: left;
}

/* Force underline boundaries to match the shrunk element width perfectly */
.angie-line-width-text-only .elementor-nav-menu .elementor-item::after,
.angie-line-width-text-only .elementor-nav-menu .elementor-item::before {
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
}

/* -------------------------------------------------------------
   Animation Type Overrides
   We ONLY target transform and transition, leaving height/bottom native
------------------------------------------------------------- */

/* Grow / Scale Animation (0 to 100% transform) */
.angie-line-anim-grow-scale .elementor-nav-menu .elementor-item::after,
.angie-line-anim-grow-scale .elementor-nav-menu .elementor-item::before {
    transform: scaleX(0) !important;
    opacity: 1 !important;
    transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1) !important;
}
.angie-line-anim-grow-scale .elementor-nav-menu .elementor-item:hover::after,
.angie-line-anim-grow-scale .elementor-nav-menu .elementor-item.elementor-item-active::after,
.angie-line-anim-grow-scale .elementor-nav-menu .elementor-item:hover::before,
.angie-line-anim-grow-scale .elementor-nav-menu .elementor-item.elementor-item-active::before {
    transform: scaleX(1) !important;
}

/* Slide In Animation */
.angie-line-anim-slide-in .elementor-nav-menu .elementor-item::after,
.angie-line-anim-slide-in .elementor-nav-menu .elementor-item::before {
    transform: scaleX(0) !important;
    opacity: 0 !important;
    transition: transform 0.3s ease, opacity 0.3s ease !important;
}
.angie-line-anim-slide-in .elementor-nav-menu .elementor-item:hover::after,
.angie-line-anim-slide-in .elementor-nav-menu .elementor-item.elementor-item-active::after,
.angie-line-anim-slide-in .elementor-nav-menu .elementor-item:hover::before,
.angie-line-anim-slide-in .elementor-nav-menu .elementor-item.elementor-item-active::before {
    transform: scaleX(1) !important;
    opacity: 1 !important;
}

/* Simple Fade Only */
.angie-line-anim-fade-only .elementor-nav-menu .elementor-item::after,
.angie-line-anim-fade-only .elementor-nav-menu .elementor-item::before {
    transform: scaleX(1) !important;
    opacity: 0 !important;
    transition: opacity 0.3s ease !important;
}
.angie-line-anim-fade-only .elementor-nav-menu .elementor-item:hover::after,
.angie-line-anim-fade-only .elementor-nav-menu .elementor-item.elementor-item-active::after,
.angie-line-anim-fade-only .elementor-nav-menu .elementor-item:hover::before,
.angie-line-anim-fade-only .elementor-nav-menu .elementor-item.elementor-item-active::before {
    opacity: 1 !important;
}

/* -------------------------------------------------------------
   Animation Origin Controls
------------------------------------------------------------- */
.angie-line-origin-left .elementor-nav-menu .elementor-item::after,
.angie-line-origin-left .elementor-nav-menu .elementor-item::before {
    transform-origin: left !important;
}

.angie-line-origin-right .elementor-nav-menu .elementor-item::after,
.angie-line-origin-right .elementor-nav-menu .elementor-item::before {
    transform-origin: right !important;
}

.angie-line-origin-center .elementor-nav-menu .elementor-item::after,
.angie-line-origin-center .elementor-nav-menu .elementor-item::before {
    transform-origin: center !important;
}

/* -------------------------------------------------------------
   Clean Restore of Native Controls
   Avoid forcing hardcoded bottom and height values!
   Instead, we only set a transition fallback but let native styles apply completely.
------------------------------------------------------------- */
.elementor-nav-menu .elementor-item::after,
.elementor-nav-menu .elementor-item::before {
    transition: transform 0.3s ease, opacity 0.3s ease;
}
