/* Reset and base styles */
.angie-offcanvas-wrapper {
	position: relative;
	width: 100%;
}

/* Desktop Menu Styles */
.angie-desktop-menu.angie-menu-wrapper > ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
}

.angie-desktop-menu.angie-menu-wrapper > ul > li {
	margin: 0 15px;
	position: relative;
}

.angie-desktop-menu.angie-menu-wrapper ul li a {
	text-decoration: none;
	color: #333;
	font-weight: 500;
	transition: color 0.3s, background-color 0.3s;
	display: block;
}

/* Add arrow for items with children on desktop */
.angie-desktop-menu.angie-menu-wrapper ul li.menu-item-has-children > a::after {
    content: '\25BE'; /* Downward small triangle */
    display: inline-block;
    margin-left: 5px;
    font-size: 0.8em;
    vertical-align: middle;
}

/* Desktop Submenu */
.angie-desktop-menu.angie-menu-wrapper ul.sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	background: #fff;
	box-shadow: 0 2px 10px rgba(0,0,0,0.1);
	min-width: 200px;
	padding: 10px 0;
	opacity: 0;
	visibility: hidden;
	transition: all 0.3s ease;
	z-index: 100;
	display: flex;
	flex-direction: column;
}

.angie-desktop-menu.angie-menu-wrapper ul li:hover > ul.sub-menu {
	opacity: 1;
	visibility: visible;
}

.angie-desktop-menu.angie-menu-wrapper ul.sub-menu li {
	margin: 0;
}

.angie-desktop-menu.angie-menu-wrapper ul.sub-menu li a {
	padding: 10px 20px;
}

/* Right arrow for deeper submenus on desktop */
.angie-desktop-menu.angie-menu-wrapper ul.sub-menu li.menu-item-has-children > a::after {
    content: '\25B8'; /* Rightward small triangle */
    float: right;
    margin-left: 0;
}

.angie-desktop-menu.angie-menu-wrapper ul.sub-menu ul.sub-menu {
	top: 0;
	left: 100%;
}

.angie-mobile-toggle {
	display: none;
	cursor: pointer;
	color: #333;
}

/* Off-canvas panel base */
.angie-offcanvas-panel {
	display: none;
}
.angie-offcanvas-overlay {
	display: none;
}

/* Mobile Button base */
.angie-mobile-btn-wrapper {
	margin-top: 20px;
	text-align: center;
	padding: 0 20px;
}
.angie-mobile-btn {
	display: inline-block;
	background-color: #000;
	color: #fff;
	padding: 10px 20px;
	border-radius: 4px;
	text-decoration: none;
	font-weight: bold;
	transition: opacity 0.3s;
	width: 100%;
	box-sizing: border-box;
}
.angie-mobile-btn:hover {
	opacity: 0.8;
}

/* Responsive adjustments for Mobile Menu */
@media (max-width: 768px) {
	.angie-desktop-menu {
		display: none;
	}

	.angie-mobile-toggle {
		display: flex;
		align-items: center;
	}

	.angie-offcanvas-panel {
		display: flex;
		flex-direction: column;
		position: fixed;
		top: 0;
		right: -100%;
		width: 300px;
		height: 100vh;
		background: #fff;
		z-index: 9999;
		transition: right 0.3s ease;
		box-shadow: -2px 0 10px rgba(0,0,0,0.1);
		padding-top: 60px;
		overflow-y: auto;
		overflow-x: hidden;
	}

	.angie-offcanvas-panel.is-open {
		right: 0;
	}

	.angie-offcanvas-close {
		position: absolute;
		top: 20px;
		right: 20px;
		font-size: 30px;
		cursor: pointer;
		line-height: 1;
		color: inherit;
		z-index: 2;
	}
    
    .angie-mobile-back {
        display: none;
        padding: 15px 20px;
        cursor: pointer;
        border-bottom: 1px solid rgba(0,0,0,0.05);
        transition: background-color 0.3s, color 0.3s;
    }
    
    .angie-mobile-back.is-visible {
        display: block;
    }

	.angie-offcanvas-overlay {
		display: block;
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background: rgba(0,0,0,0.5);
		z-index: 9998;
		opacity: 0;
		visibility: hidden;
		transition: opacity 0.3s ease, visibility 0.3s ease;
	}

	.angie-offcanvas-overlay.is-open {
		opacity: 1;
		visibility: visible;
	}

	.angie-mobile-menu ul {
		flex-direction: column;
        list-style: none;
        padding: 0;
        margin: 0;
        transition: transform 0.3s ease;
	}
    
    /* Hide top level menu when a submenu is active */
    .angie-mobile-menu.submenu-active > ul > li {
        display: none;
    }
    
    .angie-mobile-menu.submenu-active > ul > li.active-parent {
        display: block;
    }
    
    .angie-mobile-menu.submenu-active > ul > li.active-parent > a {
        display: none;
    }

	.angie-mobile-menu ul li {
		border-bottom: 1px solid rgba(0,0,0,0.05);
        position: relative;
	}
    
    .angie-mobile-menu ul li a {
        display: block;
        padding: 15px 20px;
        text-decoration: none;
    }
    
    /* Submenu indicator for mobile - Downward Arrow */
    .angie-mobile-menu ul li.menu-item-has-children > a::after {
        content: '\25BE'; /* Downward small triangle */
        float: right;
        font-size: 16px; 
        line-height: 1.2;
    }

    /* Mobile Submenu */
    .angie-mobile-menu ul.sub-menu {
        display: none;
    }
    
    .angie-mobile-menu ul li.active-parent > ul.sub-menu {
        display: block;
    }
    
    .angie-mobile-menu ul.sub-menu li {
        border-bottom: 1px solid rgba(0,0,0,0.05);
    }
    
    .angie-mobile-menu ul.sub-menu li:last-child {
        border-bottom: none;
    }
}
