/**
 * Advanced Menu v1.1.1 – Cassiopeia optimised
 * - Fluid full-width
 * - Logo + menu items inline (single row)
 * - Transparent backgrounds by default
 */

.advanced-menu {
	--am-bg: transparent;
	--am-text: #212529;
	--am-hover: #0d6efd;
	--am-active: #0d6efd;
	--am-submenu-bg: #ffffff;
	--am-sticky-bg: transparent;
	--am-mobile-bg: #ffffff;
	--am-mobile-text: #212529;
	--am-font-family: inherit;
	--am-font-size: 1rem;
	--am-font-weight: 500;

	position: relative;
	width: 100%;
	max-width: 100%;
	z-index: 1000;
	background: var(--am-bg);
	color: var(--am-text);
	font-family: var(--am-font-family);
	font-size: var(--am-font-size);
	font-weight: var(--am-font-weight);
	box-sizing: border-box;
}

/* Single fluid row: logo + menu */
.advanced-menu .am-inner {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	width: 100%;
	gap: 1.5rem;
	box-sizing: border-box;
}

.advanced-menu .am-logo {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	line-height: 0;
}

.advanced-menu .am-logo img {
	display: block;
	max-width: 100%;
	height: auto;
	max-height: 60px;
}

/* Menu list grows and stays fluid */
.advanced-menu .am-menu {
	display: flex;
	flex: 1 1 auto;
	list-style: none;
	margin: 0;
	padding: 0;
	gap: 1.25rem;
	flex-wrap: wrap;
	align-items: center;
	min-width: 0; /* critical for fluid flex children */
}

/* Alignment helpers */
.advanced-menu.am-align-left .am-menu {
	justify-content: flex-start;
}
.advanced-menu.am-align-center .am-menu {
	justify-content: center;
}
.advanced-menu.am-align-right .am-menu {
	justify-content: flex-end;
}

/* When logo is present and menu is right-aligned, push menu to the end */
.advanced-menu.am-align-right .am-logo + .am-mobile-toggle + .am-menu,
.advanced-menu.am-align-right .am-logo + .am-menu {
	margin-left: auto;
}

.am-menu > .am-item > a {
	display: block;
	padding: 0.5rem 0.15rem;
	text-decoration: none;
	color: var(--am-text);
	font-weight: inherit;
	white-space: nowrap;
	transition: color 0.15s ease;
}

.am-menu > .am-item > a:hover,
.am-menu > .am-item > a:focus {
	color: var(--am-hover);
}

.am-menu > .am-item.active > a,
.am-menu > .am-item.current > a {
	color: var(--am-active);
	font-weight: 600;
}

/* Submenu */
.am-submenu {
	display: none;
	position: absolute;
	min-width: 200px;
	background: var(--am-submenu-bg);
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
	list-style: none;
	padding: 0.5rem 0;
	margin: 0;
	border-radius: 6px;
	z-index: 1100;
}

.am-item.parent {
	position: relative;
}

.dropdown-hover .am-item.parent:hover > .am-submenu,
.dropdown-click .am-item.parent.open > .am-submenu {
	display: block;
}

.am-submenu .am-item > a {
	display: block;
	padding: 0.5rem 1rem;
	text-decoration: none;
	color: var(--am-text);
	white-space: nowrap;
}

.am-submenu .am-item > a:hover,
.am-submenu .am-item > a:focus {
	background: rgba(0, 0, 0, 0.04);
	color: var(--am-hover);
}

/* Sticky – transparent by default */
.advanced-menu.sticky-1,
.advanced-menu.is-sticky {
	position: sticky;
	top: 0;
	background: var(--am-sticky-bg);
}

.advanced-menu.sticky-2 {
	transition: transform 0.25s ease;
}

.advanced-menu.sticky-2.is-hidden {
	transform: translateY(-100%);
}

/* Mobile toggle */
.am-mobile-toggle {
	display: none;
	background: none;
	border: 0;
	padding: 0.5rem;
	cursor: pointer;
	line-height: 1;
	color: var(--am-text);
	margin-left: auto; /* push to the right on mobile when logo is present */
}

.am-hamburger {
	display: block;
	width: 24px;
	height: 2px;
	background: currentColor;
	position: relative;
}

.am-hamburger::before,
.am-hamburger::after {
	content: '';
	position: absolute;
	width: 24px;
	height: 2px;
	background: currentColor;
	left: 0;
}

.am-hamburger::before { top: -7px; }
.am-hamburger::after { top: 7px; }

/* Off-canvas */
.am-offcanvas {
	position: fixed;
	top: 0;
	left: -320px;
	width: 300px;
	max-width: 85vw;
	height: 100%;
	background: var(--am-mobile-bg);
	color: var(--am-mobile-text);
	z-index: 1100;
	transition: left 0.3s ease;
	overflow-y: auto;
	box-shadow: 4px 0 20px rgba(0, 0, 0, 0.15);
	box-sizing: border-box;
}

.am-offcanvas.is-open {
	left: 0;
}

.am-offcanvas-inner {
	padding: 1.5rem;
	position: relative;
}

.am-offcanvas-close {
	position: absolute;
	top: 1rem;
	right: 1rem;
	font-size: 1.75rem;
	background: none;
	border: 0;
	cursor: pointer;
	line-height: 1;
	padding: 0;
	color: inherit;
}

.am-overlay {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.4);
	opacity: 0;
	visibility: hidden;
	z-index: 1050;
	transition: opacity 0.3s ease, visibility 0.3s ease;
}

.am-overlay.is-visible {
	opacity: 1;
	visibility: visible;
}

.am-mobile-menu {
	list-style: none;
	padding: 0;
	margin: 1rem 0 0;
}

.am-mobile-menu a {
	display: block;
	padding: 0.75rem 0;
	border-bottom: 1px solid rgba(0, 0, 0, 0.08);
	text-decoration: none;
	color: inherit;
}

.am-mobile-menu .am-submenu {
	position: static;
	box-shadow: none;
	display: none;
	padding-left: 1rem;
	min-width: 0;
	background: transparent;
}

.am-mobile-menu .parent.open > .am-submenu {
	display: block;
}

/* Cassiopeia specific – sit cleanly in .container-nav / header */
.container-header .advanced-menu,
.container-nav .advanced-menu {
	background: transparent;
	box-shadow: none;
	width: 100%;
}

.container-header .advanced-menu .am-inner,
.container-nav .advanced-menu .am-inner {
	width: 100%;
}

/* Responsive */
@media (max-width: 991.98px) {
	.am-mobile-toggle {
		display: block;
	}

	.am-menu {
		display: none !important;
	}

	.advanced-menu .am-inner {
		justify-content: space-between;
	}
}

/* Vertical layout still supported */
.advanced-menu.vertical .am-inner {
	flex-direction: column;
	align-items: flex-start;
}

.advanced-menu.vertical .am-menu {
	flex-direction: column;
	align-items: flex-start;
	width: 100%;
}

.advanced-menu.vertical .am-submenu {
	left: 100%;
	top: 0;
}

@media (prefers-reduced-motion: reduce) {
	.advanced-menu.sticky-2,
	.am-offcanvas,
	.am-overlay,
	.am-menu > .am-item > a {
		transition: none;
	}
}
