/* ==========================================================================
	ThemeVally Navigation Menu Widget CSS
	========================================================================== */

/* Main Wrapper Box */
.tv-nav-menu-wrapper {
	position: relative;
	display: block;
	width: 100%;
	box-sizing: border-box;
}

.tv-nav-menu-wrapper ul,
.tv-nav-menu-wrapper li {
	list-style: none;
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

.tv-nav-menu-wrapper a {
	text-decoration: none;
	color: inherit;
	display: inline-flex;
	align-items: center;
	transition: all 0.3s ease;
	position: relative;
	box-sizing: border-box;
}

/* ==========================================================================
	A. DESKTOP HEADER NAVIGATION STYLING
	========================================================================== */

.tv-nav-menu-desktop-container {
	display: block;
	width: 100%;
}

.tv-nav-menu-desktop-container .tv-navbar-nav {
	display: flex;
	align-items: center;
}

/* Desktop Horizontal Alignments */
.tv-nav-menu-align-left .tv-nav-menu-desktop-container .tv-navbar-nav {
	justify-content: flex-start;
}
.tv-nav-menu-align-center .tv-nav-menu-desktop-container .tv-navbar-nav {
	justify-content: center;
}
.tv-nav-menu-align-right .tv-nav-menu-desktop-container .tv-navbar-nav {
	justify-content: flex-end;
}
.tv-nav-menu-align-justify .tv-nav-menu-desktop-container .tv-navbar-nav {
	justify-content: space-between;
}
.tv-nav-menu-align-justify .tv-nav-menu-desktop-container .tv-navbar-nav > li {
	flex-grow: 1;
	text-align: center;
}
.tv-nav-menu-align-justify .tv-nav-menu-desktop-container .tv-navbar-nav > li > a {
	justify-content: center;
	width: 100%;
}

/* Desktop Layout Modes */
.tv-layout-vertical .tv-nav-menu-desktop-container .tv-navbar-nav {
	flex-direction: column;
	align-items: stretch;
}
.tv-layout-vertical .tv-nav-menu-desktop-container .tv-navbar-nav > li > a {
	width: 100%;
	justify-content: space-between;
}

.tv-layout-centered .tv-nav-menu-desktop-container .tv-navbar-nav {
	justify-content: center;
	flex-wrap: wrap;
}

.tv-layout-split .tv-nav-menu-desktop-container .tv-navbar-nav {
	justify-content: space-between;
	width: 100%;
}

/* Desktop Dropdown Submenus Flow */
.tv-nav-menu-desktop-container .tv-navbar-nav li {
	position: relative;
}

.tv-nav-menu-desktop-container .tv-navbar-nav li .tv-dropdown {
	position: absolute;
	top: 100%;
	left: var(--tv-dropdown-left, 0);
	right: var(--tv-dropdown-right, auto);
	margin-top: var(--tv-dropdown-offset-y, 0px);
	background: #ffffff;
	box-shadow: 0 15px 40px rgba(0, 0, 0, 0.08);
	border: 1px solid rgba(0, 0, 0, 0.05);
	min-width: 220px;
	padding: 12px 0;
	z-index: 999;
	opacity: 0;
	visibility: hidden;
	transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
	display: block;

	/* Composed transform for horizontal alignment + animations + custom offsets */
	transform: translate(calc(var(--tv-dropdown-align-x, 0%) + var(--tv-dropdown-offset-x, 0px)), var(--tv-dropdown-y, 0px)) scaleX(var(--tv-dropdown-scale-x, 1)) scaleY(var(--tv-dropdown-scale-y, 1)) rotateX(var(--tv-dropdown-rotate-x, 0deg));
}

/* Secondary Desktop Dropdown Reset to prevent inheritance of alignment & offsets */
.tv-nav-menu-desktop-container .tv-navbar-nav li .tv-dropdown li .tv-dropdown {
	top: 0;
	--tv-dropdown-left: 100%;
	--tv-dropdown-right: auto;
	--tv-dropdown-align-x: 0%;
	--tv-dropdown-offset-x: 0px;
	--tv-dropdown-offset-y: 0px;
}

/* Desktop Dropdown Horizontal Positions */
.tv-dropdown-align-left .tv-nav-menu-desktop-container .tv-dropdown {
	--tv-dropdown-left: 0;
	--tv-dropdown-right: auto;
	--tv-dropdown-align-x: 0%;
}
.tv-dropdown-align-center .tv-nav-menu-desktop-container .tv-dropdown {
	--tv-dropdown-left: 50%;
	--tv-dropdown-right: auto;
	--tv-dropdown-align-x: -50%;
}
.tv-dropdown-align-right .tv-nav-menu-desktop-container .tv-dropdown {
	--tv-dropdown-left: auto;
	--tv-dropdown-right: 0;
	--tv-dropdown-align-x: 0%;
}

@media (max-width: 1024px) {
	.tv-dropdown-align-tablet-left .tv-nav-menu-desktop-container .tv-dropdown {
		--tv-dropdown-left: 0;
		--tv-dropdown-right: auto;
		--tv-dropdown-align-x: 0%;
	}
	.tv-dropdown-align-tablet-center .tv-nav-menu-desktop-container .tv-dropdown {
		--tv-dropdown-left: 50%;
		--tv-dropdown-right: auto;
		--tv-dropdown-align-x: -50%;
	}
	.tv-dropdown-align-tablet-right .tv-nav-menu-desktop-container .tv-dropdown {
		--tv-dropdown-left: auto;
		--tv-dropdown-right: 0;
		--tv-dropdown-align-x: 0%;
	}
}

@media (max-width: 767px) {
	.tv-dropdown-align-mobile-left .tv-nav-menu-desktop-container .tv-dropdown {
		--tv-dropdown-left: 0;
		--tv-dropdown-right: auto;
		--tv-dropdown-align-x: 0%;
	}
	.tv-dropdown-align-mobile-center .tv-nav-menu-desktop-container .tv-dropdown {
		--tv-dropdown-left: 50%;
		--tv-dropdown-right: auto;
		--tv-dropdown-align-x: -50%;
	}
	.tv-dropdown-align-mobile-right .tv-nav-menu-desktop-container .tv-dropdown {
		--tv-dropdown-left: auto;
		--tv-dropdown-right: 0;
		--tv-dropdown-align-x: 0%;
	}
}

/* Trigger Controls: Hover vs Click */
.tv-nav-menu-desktop-container .tv-navbar-nav.tv-nav-menu-trigger-hover li:hover > .tv-dropdown,
.tv-nav-menu-desktop-container .tv-navbar-nav.tv-nav-menu-trigger-hover li.focus > .tv-dropdown {
	opacity: 1;
	visibility: visible;
}

.tv-nav-menu-desktop-container .tv-navbar-nav.tv-nav-menu-trigger-click li.tv-dropdown-open > .tv-dropdown {
	opacity: 1;
	visibility: visible;
}

/* Desktop Dropdown Link padding and font weight */
.tv-nav-menu-desktop-container .tv-dropdown li a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	padding: 10px 24px;
	font-size: 14px;
	font-weight: 500;
	transition: all 0.2s ease;
}

/* Caret Spacing */
.tv-submenu-indicator {
	margin-left: 8px;
	font-size: 10px;
	transition: transform 0.2s ease;
	vertical-align: middle;
}

/* Desktop Dropdown animation variations */
/* Fade */
.tv-nav-menu-desktop-container .tv-nav-menu-dropdown-anim-fade li .tv-dropdown {
	--tv-dropdown-y: 0px;
}
/* Slide / Slide Down */
.tv-nav-menu-desktop-container .tv-nav-menu-dropdown-anim-slide li > .tv-dropdown,
.tv-nav-menu-desktop-container .tv-nav-menu-dropdown-anim-slide-down li > .tv-dropdown {
	--tv-dropdown-y: 15px;
}
.tv-nav-menu-desktop-container .tv-nav-menu-dropdown-anim-slide li:hover > .tv-dropdown,
.tv-nav-menu-desktop-container .tv-nav-menu-dropdown-anim-slide li.focus > .tv-dropdown,
.tv-nav-menu-desktop-container .tv-nav-menu-dropdown-anim-slide li.tv-dropdown-open > .tv-dropdown,
.tv-nav-menu-desktop-container .tv-nav-menu-dropdown-anim-slide-down li:hover > .tv-dropdown,
.tv-nav-menu-desktop-container .tv-nav-menu-dropdown-anim-slide-down li.focus > .tv-dropdown,
.tv-nav-menu-desktop-container .tv-nav-menu-dropdown-anim-slide-down li.tv-dropdown-open > .tv-dropdown {
	--tv-dropdown-y: 0px;
}
/* Slide Up */
.tv-nav-menu-desktop-container .tv-nav-menu-dropdown-anim-slide-up li > .tv-dropdown {
	--tv-dropdown-y: -15px;
}
.tv-nav-menu-desktop-container .tv-nav-menu-dropdown-anim-slide-up li:hover > .tv-dropdown,
.tv-nav-menu-desktop-container .tv-nav-menu-dropdown-anim-slide-up li.focus > .tv-dropdown,
.tv-nav-menu-desktop-container .tv-nav-menu-dropdown-anim-slide-up li.tv-dropdown-open > .tv-dropdown {
	--tv-dropdown-y: 0px;
}
/* Zoom */
.tv-nav-menu-desktop-container .tv-nav-menu-dropdown-anim-zoom li > .tv-dropdown {
	--tv-dropdown-scale-x: 0.9;
	--tv-dropdown-scale-y: 0.9;
}
.tv-nav-menu-desktop-container .tv-nav-menu-dropdown-anim-zoom li:hover > .tv-dropdown,
.tv-nav-menu-desktop-container .tv-nav-menu-dropdown-anim-zoom li.focus > .tv-dropdown,
.tv-nav-menu-desktop-container .tv-nav-menu-dropdown-anim-zoom li.tv-dropdown-open > .tv-dropdown {
	--tv-dropdown-scale-x: 1;
	--tv-dropdown-scale-y: 1;
}
/* Scale */
.tv-nav-menu-desktop-container .tv-nav-menu-dropdown-anim-scale li > .tv-dropdown {
	transform-origin: top;
	--tv-dropdown-scale-y: 0;
}
.tv-nav-menu-desktop-container .tv-nav-menu-dropdown-anim-scale li:hover > .tv-dropdown,
.tv-nav-menu-desktop-container .tv-nav-menu-dropdown-anim-scale li.focus > .tv-dropdown,
.tv-nav-menu-desktop-container .tv-nav-menu-dropdown-anim-scale li.tv-dropdown-open > .tv-dropdown {
	--tv-dropdown-scale-y: 1;
}
/* Flip */
.tv-nav-menu-desktop-container .tv-nav-menu-dropdown-anim-flip li > .tv-dropdown {
	transform-origin: top;
	--tv-dropdown-rotate-x: -90deg;
}
.tv-nav-menu-desktop-container .tv-nav-menu-dropdown-anim-flip li:hover > .tv-dropdown,
.tv-nav-menu-desktop-container .tv-nav-menu-dropdown-anim-flip li.focus > .tv-dropdown,
.tv-nav-menu-desktop-container .tv-nav-menu-dropdown-anim-flip li.tv-dropdown-open > .tv-dropdown {
	--tv-dropdown-rotate-x: 0deg;
}

/* Glassmorphic Dropdowns scoping (Desktop-only styling) */
.tv-dropdown-glassmorphism .tv-nav-menu-desktop-container .tv-dropdown {
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	background-color: rgba(255, 255, 255, 0.75) !important;
	border: 1px solid rgba(255, 255, 255, 0.25) !important;
}

/* Soft Shadows scoping (Desktop-only styling) */
.tv-dropdown-soft-shadows .tv-nav-menu-desktop-container .tv-dropdown {
	box-shadow: 0 15px 40px rgba(0, 0, 0, 0.04), 0 5px 15px rgba(0, 0, 0, 0.03) !important;
}

/* Desktop Hover Indicators */
.tv-nav-menu-desktop-container .tv-nav-menu-hover-underline > li > a::after,
.tv-nav-menu-desktop-container .tv-nav-menu-hover-overline > li > a::after,
.tv-nav-menu-desktop-container .tv-nav-menu-hover-slide_underline > li > a::after,
.tv-nav-menu-desktop-container .tv-nav-menu-hover-border_bottom > li > a::after,
.tv-nav-menu-desktop-container .tv-nav-menu-hover-border_reveal > li > a::after {
	content: '';
	position: absolute;
	left: 0;
	width: 100%;
	background-color: var(--tv-hover-effect-color, #4f46e5);
	transition: all var(--tv-menu-transition-duration, 0.3s) var(--tv-menu-transition-easing, cubic-bezier(0.25, 0.46, 0.45, 0.94));
	transition-delay: var(--tv-menu-transition-delay, 0s);
}

/* Underline Hover */
.tv-nav-menu-desktop-container .tv-nav-menu-hover-underline > li > a::after {
	bottom: 0;
	height: var(--tv-hover-effect-height, 2px);
	transform: scaleX(0);
}
.tv-nav-menu-desktop-container .tv-nav-menu-hover-underline > li:hover > a::after {
	transform: scaleX(1);
}

/* Overline Hover */
.tv-nav-menu-desktop-container .tv-nav-menu-hover-overline > li > a::after {
	top: 0;
	height: var(--tv-hover-effect-height, 2px);
	transform: scaleX(0);
}
.tv-nav-menu-desktop-container .tv-nav-menu-hover-overline > li:hover > a::after {
	transform: scaleX(1);
}

/* Sliding Underline Hover */
.tv-nav-menu-desktop-container .tv-nav-menu-hover-slide_underline > li > a::after {
	bottom: 0;
	height: var(--tv-hover-effect-height, 2px);
	transform: scaleX(0);
	transform-origin: left;
}
.tv-nav-menu-desktop-container .tv-nav-menu-hover-slide_underline > li:hover > a::after {
	transform: scaleX(1);
}

/* Border Bottom Hover */
.tv-nav-menu-desktop-container .tv-nav-menu-hover-border_bottom > li > a::after {
	bottom: 0;
	height: var(--tv-hover-effect-height, 1px);
	opacity: 0;
}
.tv-nav-menu-desktop-container .tv-nav-menu-hover-border_bottom > li:hover > a::after {
	opacity: 1;
}

/* Border Reveal Hover */
.tv-nav-menu-desktop-container .tv-nav-menu-hover-border_reveal > li > a::after {
	bottom: 0;
	height: var(--tv-hover-effect-height, 2px);
	transform: scaleX(0);
	transform-origin: right;
}
.tv-nav-menu-desktop-container .tv-nav-menu-hover-border_reveal > li:hover > a::after {
	transform: scaleX(1);
	transform-origin: left;
}

/* Background Fill Hover */
.tv-nav-menu-desktop-container .tv-nav-menu-hover-bg_fill > li > a {
	border-radius: var(--tv-hover-effect-radius, 30px);
	padding: 8px 16px;
	transition: all var(--tv-menu-transition-duration, 0.3s) var(--tv-menu-transition-easing, ease);
	transition-delay: var(--tv-menu-transition-delay, 0s);
}
.tv-nav-menu-desktop-container .tv-nav-menu-hover-bg_fill > li:hover > a {
	background-color: var(--tv-hover-effect-color, #4f46e5) !important;
	color: #ffffff !important;
}

/* Border Grow Hover */
.tv-nav-menu-desktop-container .tv-nav-menu-hover-border_grow > li > a {
	border: var(--tv-hover-effect-height, 2px) solid transparent;
	border-radius: var(--tv-hover-effect-radius, 4px);
	padding: 6px 12px;
	transition: all var(--tv-menu-transition-duration, 0.3s) var(--tv-menu-transition-easing, ease);
	transition-delay: var(--tv-menu-transition-delay, 0s);
}
.tv-nav-menu-desktop-container .tv-nav-menu-hover-border_grow > li:hover > a {
	border-color: var(--tv-hover-effect-color, #4f46e5);
}

/* Text Slide Hover */
.tv-nav-menu-desktop-container .tv-nav-menu-hover-text_slide > li > a {
	transition: transform var(--tv-menu-transition-duration, 0.3s) var(--tv-menu-transition-easing, ease);
	transition-delay: var(--tv-menu-transition-delay, 0s);
}
.tv-nav-menu-desktop-container .tv-nav-menu-hover-text_slide > li:hover > a {
	transform: translateX(6px);
}

/* Text Reveal Hover */
.tv-nav-menu-desktop-container .tv-nav-menu-hover-text_reveal > li > a {
	transition: all var(--tv-menu-transition-duration, 0.3s) var(--tv-menu-transition-easing, ease);
	transition-delay: var(--tv-menu-transition-delay, 0s);
}
.tv-nav-menu-desktop-container .tv-nav-menu-hover-text_reveal > li:hover > a {
	letter-spacing: 1.5px;
	color: var(--tv-hover-effect-color, #4f46e5) !important;
}

/* Legacy Scale & SaaS Effects support */
.tv-nav-menu-desktop-container .tv-nav-menu-hover-scale > li > a {
	transition: transform var(--tv-menu-transition-duration, 0.3s) var(--tv-menu-transition-easing, ease);
	transition-delay: var(--tv-menu-transition-delay, 0s);
}
.tv-nav-menu-desktop-container .tv-nav-menu-hover-scale > li:hover > a {
	transform: scale(1.08);
}
.tv-nav-menu-desktop-container .tv-nav-menu-hover-saas_effect > li > a {
	border: 1px solid transparent;
	border-radius: 8px;
	padding: 8px 16px;
	transition: all var(--tv-menu-transition-duration, 0.3s) var(--tv-menu-transition-easing, ease);
	transition-delay: var(--tv-menu-transition-delay, 0s);
}
.tv-nav-menu-desktop-container .tv-nav-menu-hover-saas_effect > li:hover > a {
	border-color: var(--tv-hover-effect-color, #4f46e5);
	box-shadow: 0 4px 12px rgba(79, 70, 229, 0.15);
}

/* Desktop Active Indicators */
/* Active Underline */
.tv-nav-menu-desktop-container .tv-nav-menu-active-ind-underline > li.current-menu-item > a::before,
.tv-nav-menu-desktop-container .tv-nav-menu-active-ind-underline > li.current-menu-ancestor > a::before {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: var(--tv-active-effect-height, 2px);
	background-color: var(--tv-active-effect-color, #4f46e5);
}

/* Active Background */
.tv-nav-menu-desktop-container .tv-nav-menu-active-ind-background > li.current-menu-item > a,
.tv-nav-menu-desktop-container .tv-nav-menu-active-ind-background > li.current-menu-ancestor > a {
	background-color: var(--tv-active-effect-bg, rgba(79, 70, 229, 0.1)) !important;
	color: var(--tv-active-effect-color, #4f46e5) !important;
	border-radius: var(--tv-active-effect-radius, 30px);
}

/* Active Border */
.tv-nav-menu-desktop-container .tv-nav-menu-active-ind-border > li.current-menu-item > a,
.tv-nav-menu-desktop-container .tv-nav-menu-active-ind-border > li.current-menu-ancestor > a {
	border: var(--tv-active-effect-height, 2px) solid var(--tv-active-effect-color, #4f46e5) !important;
	border-radius: var(--tv-active-effect-radius, 4px) !important;
	padding: 6px 12px;
}

/* Legacy Active State styling indicators fallbacks */
.tv-nav-menu-desktop-container .tv-nav-menu-active-ind-bg_pill > li.current-menu-item > a,
.tv-nav-menu-desktop-container .tv-nav-menu-active-ind-bg_pill > li.current-menu-ancestor > a {
	background-color: rgba(79, 70, 229, 0.1) !important;
	color: #4f46e5 !important;
	border-radius: 30px;
}
.tv-nav-menu-desktop-container .tv-nav-menu-active-ind-left_border > li.current-menu-item > a::before,
.tv-nav-menu-desktop-container .tv-nav-menu-active-ind-left_border > li.current-menu-ancestor > a::before {
	content: '';
	position: absolute;
	left: 0;
	top: 25%;
	height: 50%;
	width: 3px;
	background-color: #4f46e5;
}
.tv-nav-menu-desktop-container .tv-nav-menu-active-ind-right_border > li.current-menu-item > a::before,
.tv-nav-menu-desktop-container .tv-nav-menu-active-ind-right_border > li.current-menu-ancestor > a::before {
	content: '';
	position: absolute;
	right: 0;
	top: 25%;
	height: 50%;
	width: 3px;
	background-color: #4f46e5;
}
.tv-nav-menu-desktop-container .tv-nav-menu-active-ind-dot > li.current-menu-item > a::before,
.tv-nav-menu-desktop-container .tv-nav-menu-active-ind-dot > li.current-menu-ancestor > a::before {
	content: '';
	position: absolute;
	bottom: -4px;
	left: 50%;
	transform: translateX(-50%);
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background-color: #4f46e5;
}

/* Desktop Future Mega Menu placement */
.tv-nav-menu-desktop-container .tv-megamenu-panel {
	position: absolute;
	top: 100%;
	left: 0;
	width: 100%;
	background: #ffffff;
	box-shadow: 0 15px 40px rgba(0, 0, 0, 0.08);
	border: 1px solid rgba(0, 0, 0, 0.05);
	z-index: 999;
	opacity: 0;
	visibility: hidden;
	transition: all 0.3s ease;
	box-sizing: border-box;
}

.tv-nav-menu-desktop-container .tv-navbar-nav li:hover > .tv-megamenu-panel {
	opacity: 1;
	visibility: visible;
}


/* ==========================================================================
	B. MOBILE DEVICE PORTAL & TOGGLERS (ACCORDION & DRAWER LAYOUTS)
	========================================================================== */

/* Hamburger Button layout defaults */
.tv-nav-menu-hamburger {
	display: none;
	background: none;
	border: none;
	cursor: pointer;
	padding: 8px 12px;
	outline: none;
	align-items: center;
	color: inherit;
	box-sizing: border-box;
	vertical-align: middle;
	transition: background-color 0.2s ease, transform 0.2s ease;
}

.tv-nav-menu-hamburger .tv-hamburger-icon-default {
	display: block;
	width: 22px;
	height: 2px;
	background-color: currentColor;
	margin: 5px 0;
	transition: 0.3s;
}

.tv-nav-menu-hamburger[aria-expanded="true"] .tv-hamburger-icon-default:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
}
.tv-nav-menu-hamburger[aria-expanded="true"] .tv-hamburger-icon-default:nth-child(2) {
	opacity: 0;
}
.tv-nav-menu-hamburger[aria-expanded="true"] .tv-hamburger-icon-default:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}

/* Toggler icon visibility states via aria-expanded */
.tv-nav-menu-hamburger[aria-expanded="false"] .tv-hamburger-icon-open {
	display: inline-block;
}
.tv-nav-menu-hamburger[aria-expanded="false"] .tv-hamburger-icon-close {
	display: none !important;
}
.tv-nav-menu-hamburger[aria-expanded="true"] .tv-hamburger-icon-open {
	display: none !important;
}
.tv-nav-menu-hamburger[aria-expanded="true"] .tv-hamburger-icon-close {
	display: inline-block;
}

.tv-nav-menu-hamburger .tv-toggler-label {
	font-size: 13px;
	font-weight: 600;
	text-transform: uppercase;
	margin-left: 8px;
}

/* Mobile Drawers Backdrop Overlay Layer */
.tv-nav-menu-mobile-overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	background-color: rgba(0, 0, 0, 0.4);
	z-index: 99998;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	will-change: opacity, backdrop-filter;
	transition-property: opacity, visibility, backdrop-filter, -webkit-backdrop-filter;
	transition-duration: 0.3s;
	transition-timing-function: ease;
}

.tv-nav-menu-wrapper.tv-mobile-menu-active .tv-nav-menu-mobile-overlay {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

/* Mobile Menu Drawers Containers */
.tv-nav-menu-mobile-drawer {
	position: fixed;
	top: 0;
	height: 100%;
	background-color: #ffffff;
	z-index: 99999;
	box-shadow: 0 0 30px rgba(0, 0, 0, 0.15);
	display: flex;
	flex-direction: column;
	width: 300px;
	will-change: transform, opacity, visibility;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
	transform-style: preserve-3d;
	visibility: hidden;
	pointer-events: none;
	transition-property: transform, opacity, visibility;
	transition-duration: 0.3s;
	transition-timing-function: cubic-bezier(0.77, 0.2, 0.05, 1.0);
}
.tv-nav-menu-wrapper.tv-mobile-menu-active .tv-nav-menu-mobile-drawer {
	visibility: visible;
	pointer-events: auto;
}


/* Offcanvas Left Alignment */
.tv-nav-menu-mobile-offcanvas_left {
	left: 0;
	right: auto;
	transform: translateX(-100%);
}
.tv-nav-menu-wrapper.tv-mobile-menu-active .tv-nav-menu-mobile-offcanvas_left {
	transform: translateX(0);
}

/* Offcanvas Right Alignment */
.tv-nav-menu-mobile-offcanvas_right {
	right: 0;
	left: auto;
	transform: translateX(100%);
}
.tv-nav-menu-wrapper.tv-mobile-menu-active .tv-nav-menu-mobile-offcanvas_right {
	transform: translateX(0);
}

/* Full Screen Takeover overlay */
.tv-nav-menu-mobile-fullscreen {
	left: 0;
	top: 0;
	width: 100vw !important;
	height: 100vh !important;
	opacity: 0;
	visibility: hidden;
	transform: scale(1.05);
	transition: opacity 0.3s ease, transform 0.3s ease;
	will-change: transform, opacity;
}
.tv-nav-menu-wrapper.tv-mobile-menu-active .tv-nav-menu-mobile-fullscreen {
	opacity: 1;
	visibility: visible;
	transform: scale(1);
}

/* Custom Panel Entrance Effects Overrides */
.tv-mobile-entrance-fade .tv-nav-menu-mobile-drawer {
	transform: none !important;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition-property: opacity, visibility;
}
.tv-mobile-entrance-fade.tv-mobile-menu-active .tv-nav-menu-mobile-drawer {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.tv-mobile-entrance-zoom .tv-nav-menu-mobile-drawer {
	transform: scale(0.8) !important;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition-property: transform, opacity, visibility;
}
.tv-mobile-entrance-zoom.tv-mobile-menu-active .tv-nav-menu-mobile-drawer {
	transform: scale(1) !important;
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.tv-mobile-entrance-slide-up .tv-nav-menu-mobile-drawer {
	top: auto;
	bottom: 0;
	left: 0;
	right: 0;
	height: var(--tv-mobile-drawer-height, 80vh) !important;
	width: 100% !important;
	transform: translateY(100%) !important;
	visibility: hidden;
	pointer-events: none;
	transition-property: transform, visibility;
}
.tv-mobile-entrance-slide-up.tv-mobile-menu-active .tv-nav-menu-mobile-drawer {
	transform: translateY(0) !important;
	visibility: visible;
	pointer-events: auto;
}

.tv-mobile-entrance-slide-left .tv-nav-menu-mobile-drawer {
	left: 0;
	right: auto;
	transform: translateX(-100%) !important;
	visibility: hidden;
	pointer-events: none;
	transition-property: transform, visibility;
}
.tv-mobile-entrance-slide-left.tv-mobile-menu-active .tv-nav-menu-mobile-drawer {
	transform: translateX(0) !important;
	visibility: visible;
	pointer-events: auto;
}

.tv-mobile-entrance-slide-right .tv-nav-menu-mobile-drawer {
	left: auto;
	right: 0;
	transform: translateX(100%) !important;
	visibility: hidden;
	pointer-events: none;
	transition-property: transform, visibility;
}
.tv-mobile-entrance-slide-right.tv-mobile-menu-active .tv-nav-menu-mobile-drawer {
	transform: translateX(0) !important;
	visibility: visible;
	pointer-events: auto;
}

.tv-mobile-entrance-slide-down .tv-nav-menu-mobile-drawer {
	top: 0;
	bottom: auto;
	left: 0;
	right: 0;
	height: var(--tv-mobile-drawer-height, 80vh) !important;
	width: 100% !important;
	transform: translateY(-100%) !important;
	visibility: hidden;
	pointer-events: none;
	transition-property: transform, visibility;
}
.tv-mobile-entrance-slide-down.tv-mobile-menu-active .tv-nav-menu-mobile-drawer {
	transform: translateY(0) !important;
	visibility: visible;
	pointer-events: auto;
}

/* Fade + Slide */
.tv-mobile-entrance-fade-slide .tv-nav-menu-mobile-drawer {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition-property: transform, opacity, visibility;
}
.tv-mobile-entrance-fade-slide.tv-nav-menu-mobile-offcanvas_left .tv-nav-menu-mobile-drawer {
	transform: translateX(-100px) !important;
}
.tv-mobile-entrance-fade-slide.tv-nav-menu-mobile-offcanvas_right .tv-nav-menu-mobile-drawer {
	transform: translateX(100px) !important;
}
.tv-mobile-entrance-fade-slide.tv-nav-menu-mobile-fullscreen .tv-nav-menu-mobile-drawer {
	transform: translateY(100px) !important;
}
.tv-mobile-entrance-fade-slide.tv-mobile-menu-active .tv-nav-menu-mobile-drawer {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translate(0) !important;
}

/* Fade + Scale */
.tv-mobile-entrance-fade-scale .tv-nav-menu-mobile-drawer {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: scale(0.9) !important;
	transition-property: transform, opacity, visibility;
}
.tv-mobile-entrance-fade-scale.tv-mobile-menu-active .tv-nav-menu-mobile-drawer {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: scale(1) !important;
}

/* Mobile Dropdown Layout Option (Sits under Header block) */
.tv-nav-menu-mobile-dropdown {
	position: absolute;
	top: 100%;
	left: 0;
	width: 100%;
	max-height: 0;
	overflow: hidden;
	visibility: hidden;
	opacity: 0;
	transition: max-height 0.4s ease, opacity 0.4s ease;
	background-color: #ffffff;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
	z-index: 99997;
}

.tv-nav-menu-wrapper.tv-mobile-menu-active .tv-nav-menu-mobile-dropdown {
	max-height: 85vh;
	visibility: visible;
	opacity: 1;
	overflow-y: auto;
}

/* Mobile Logo and Header items inside Drawers */
.tv-nav-menu-mobile-drawer-header {
	position: relative;
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 16px 24px;
	border-bottom: 1px solid rgba(0, 0, 0, 0.05);
	background-color: #ffffff;
}

.tv-nav-menu-mobile-logo {
	display: inline-flex;
	align-items: center;
}

.tv-nav-menu-mobile-logo img {
	max-height: 40px;
	width: auto;
	object-fit: contain;
}

.tv-nav-menu-mobile-close {
	background: rgba(0, 0, 0, 0.03);
	border: none;
	font-size: 16px;
	font-weight: 700;
	cursor: pointer;
	width: 36px;
	height: 36px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	color: #4b5563;
	transition: all 0.2s ease;
}

.tv-nav-menu-mobile-close:hover {
	background-color: rgba(239, 68, 68, 0.1);
	color: #ef4444;
}

/* Mobile drawers layouts links and spacing resets */
.tv-nav-menu-mobile-drawer-content {
	flex-grow: 1;
	overflow-y: auto;
	padding: 20px 24px;
}

.tv-nav-menu-mobile-drawer-content .tv-navbar-nav,
.tv-nav-menu-mobile-dropdown .tv-navbar-nav {
	display: flex;
	flex-direction: column;
	width: 100%;
}

.tv-nav-menu-mobile-drawer-content .tv-navbar-nav li,
.tv-nav-menu-mobile-dropdown .tv-navbar-nav li {
	display: block;
	width: 100%;
	position: relative;
}

/* Root level links inside Mobile Drawer */
.tv-nav-menu-mobile-drawer-content .tv-navbar-nav > li > a,
.tv-nav-menu-mobile-dropdown .tv-navbar-nav > li > a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	padding: 13px 0;
	border-bottom: 1px solid rgba(0, 0, 0, 0.05);
	font-size: 15px;
	font-weight: 500;
	color: #1f2937;
	background: transparent;
	transition: color 0.2s ease, background-color 0.2s ease;
}

.tv-nav-menu-mobile-drawer-content .tv-navbar-nav > li > a:hover,
.tv-nav-menu-mobile-dropdown .tv-navbar-nav > li > a:hover {
	color: #4f46e5;
}

/* Active Root item inside Mobile Drawer */
.tv-nav-menu-mobile-drawer-content .tv-navbar-nav > li.current-menu-item > a,
.tv-nav-menu-mobile-dropdown .tv-navbar-nav > li.current-menu-item > a {
	color: #4f46e5;
	font-weight: 600;
}

/* CRITICAL MOBILE RESET:
	Turn off absolute positions and transitions on submenus to prevent overlap and JS slide conflicts. */
.tv-nav-menu-mobile-drawer-content .tv-dropdown,
.tv-nav-menu-mobile-dropdown .tv-dropdown {
	position: static !important;
	display: none; /* Controlled dynamically by JavaScript height calculators */
	width: 100% !important;
	opacity: 1 !important;
	visibility: visible !important;
	box-shadow: none;
	border: none;
	background: rgba(0, 0, 0, 0.015);
	padding: 0;
	margin: 0;
	transform: none !important;
	transition: none; /* Critical: disable transitions during height calculations to prevent snapping */
	box-sizing: border-box;
}

/* Sub-level item link styles on Mobile Drawer */
.tv-nav-menu-mobile-drawer-content .tv-dropdown li a,
.tv-nav-menu-mobile-dropdown .tv-dropdown li a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	padding: 11px 16px;
	border-bottom: 1px solid rgba(0, 0, 0, 0.03);
	font-size: 14px;
	font-weight: 500;
	color: #4b5563;
	transition: color 0.2s ease;
}

.tv-nav-menu-mobile-drawer-content .tv-dropdown li a:hover,
.tv-nav-menu-mobile-dropdown .tv-dropdown li a:hover {
	color: #4f46e5;
}

/* Nested Indent Levels (Ensures clean hierarchy visual cues) */
.tv-nav-menu-mobile-drawer-content .tv-dropdown,
.tv-nav-menu-mobile-dropdown .tv-dropdown {
	padding-left: 20px; /* Base nesting indent */
}

/* Mobile Toggle Arrow Buttons (for Icon click mode) */
.tv-submenu-indicator-mobile-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	cursor: pointer;
	margin-left: auto;
	border-radius: 4px;
	background-color: rgba(0, 0, 0, 0.03);
	color: #6b7280;
	transition: transform 0.2s ease, background-color 0.2s ease;
	border: none;
	padding: 0;
	outline: none;
}

.tv-submenu-indicator-mobile-toggle .tv-submenu-indicator {
	margin: 0 !important;
}

.tv-submenu-indicator-mobile-toggle:hover {
	background-color: rgba(0, 0, 0, 0.08);
	color: #1f2937;
}

.tv-submenu-click-on-icon .tv-navbar-nav li.tv-dropdown-open > a > .tv-submenu-indicator-mobile-toggle {
	transform: rotate(180deg);
}

.tv-submenu-click-on-item .tv-navbar-nav li.tv-dropdown-open > a > .tv-submenu-indicator {
	transform: rotate(180deg);
}


/* ==========================================================================
	C. DEFAULTS & GLOBAL STYLING HELPER
	========================================================================== */

/* Active Sticky Layout modifications support */
.elementor-sticky--active .tv-nav-menu-wrapper {
	transition: all var(--tv-sticky-duration, 0.3s) var(--tv-sticky-easing, cubic-bezier(0.25, 0.46, 0.45, 0.94));
}

/* Fade Sticky Effect */
.tv-sticky-effect-fade .elementor-sticky--active {
	opacity: 0 !important;
	animation-name: tvStickyFadeIn !important;
	animation-duration: var(--tv-sticky-duration, 0.4s) !important;
	animation-delay: var(--tv-sticky-delay, 0s) !important;
	animation-timing-function: var(--tv-sticky-easing, cubic-bezier(0.25, 0.46, 0.45, 0.94)) !important;
	animation-fill-mode: forwards !important;
}
@keyframes tvStickyFadeIn {
	to { opacity: 1 !important; }
}

/* Slide Down Sticky Effect */
.tv-sticky-effect-slide-down .elementor-sticky--active {
	transform: translateY(-100%) !important;
	animation-name: tvStickySlideDown !important;
	animation-duration: var(--tv-sticky-duration, 0.4s) !important;
	animation-delay: var(--tv-sticky-delay, 0s) !important;
	animation-timing-function: var(--tv-sticky-easing, cubic-bezier(0.25, 0.46, 0.45, 0.94)) !important;
	animation-fill-mode: forwards !important;
}
@keyframes tvStickySlideDown {
	to { transform: translateY(0) !important; }
}

/* Reveal Sticky Effect (slides down on scroll up, hides on scroll down) */
.tv-sticky-effect-reveal .elementor-sticky--active {
	transform: translateY(-100%) !important;
	transition: transform var(--tv-sticky-duration, 0.3s) var(--tv-sticky-easing, cubic-bezier(0.25, 0.46, 0.45, 0.94)) !important;
	transition-delay: var(--tv-sticky-delay, 0s) !important;
}
.tv-sticky-effect-reveal.tv-scroll-up .elementor-sticky--active {
	transform: translateY(0) !important;
}

/* Shrink Sticky Effect */
.tv-sticky-effect-shrink .elementor-sticky--active .tv-nav-menu-wrapper {
	padding-top: var(--tv-sticky-padding-top, 8px) !important;
	padding-bottom: var(--tv-sticky-padding-bottom, 8px) !important;
	min-height: var(--tv-sticky-min-height, 60px) !important;
	height: var(--tv-sticky-height, auto) !important;
}
.tv-sticky-effect-shrink .elementor-sticky--active .tv-nav-menu-mobile-logo img,
.tv-sticky-effect-shrink .elementor-sticky--active .custom-logo-link img {
	transition: all var(--tv-sticky-duration, 0.3s) var(--tv-sticky-easing, cubic-bezier(0.25, 0.46, 0.45, 0.94)) !important;
}

/* Badge layouts standard definitions */
.tv-menu-badge {
	display: inline-block;
	padding: 2px 6px;
	font-size: 9px;
	font-weight: 700;
	line-height: 1;
	border-radius: 3px;
	margin-left: 8px;
	text-transform: uppercase;
	color: #ffffff;
	background-color: #ef4444; /* Standard Red Fallback */
	vertical-align: middle;
}

.tv-menu-badge.tv-badge-new {
	background-color: #3b82f6; /* Blue */
}
.tv-menu-badge.tv-badge-hot {
	background-color: #ef4444; /* Red */
}
.tv-menu-badge.tv-badge-sale {
	background-color: #10b981; /* Green */
}

/* Media Breakpoint rules toggling values (Clean Responsive Isolation) */

/* 1. Tablet & Mobile Breakpoint (1024px) */
@media (min-width: 1025px) {
	.tv-breakpoint-tablet .tv-nav-menu-hamburger {
		display: none;
	}
	.tv-breakpoint-tablet .tv-nav-menu-desktop-container {
		display: block;
	}
}
@media (max-width: 1024px) {
	.tv-breakpoint-tablet .tv-nav-menu-desktop-container {
		display: none;
	}
	.tv-breakpoint-tablet .tv-nav-menu-hamburger {
		display: inline-flex;
		align-items: center;
		justify-content: center;
	}
}

/* 2. Mobile Only Breakpoint (767px) */
@media (min-width: 768px) {
	.tv-breakpoint-mobile .tv-nav-menu-hamburger {
		display: none;
	}
	.tv-breakpoint-mobile .tv-nav-menu-desktop-container {
		display: block;
	}
}
@media (max-width: 767px) {
	.tv-breakpoint-mobile .tv-nav-menu-desktop-container {
		display: none;
	}
	.tv-breakpoint-mobile .tv-nav-menu-hamburger {
		display: inline-flex;
		align-items: center;
		justify-content: center;
	}
}
