/* === Navbar Layout === */
.ef-navbar {
	display: flex;
	align-items: center;
	gap: var(--ef-gap-m);
	padding: var(--ef-pad-s) var(--ef-pad-m);
	background: var(--ef-color-white);
}

.ef-navbar-logo {
	flex: 0 0 auto;
}

.ef-navbar-logo-link {
	display: inline-flex;
}

.ef-navbar-logo img {
	height: auto;
	max-height: var(--ef-size-touch-target);
	width: auto;
	object-fit: contain;
}

.ef-navbar-menu {
	display: flex;
	align-items: center;
	gap: var(--ef-gap-s);
	list-style: none;
	margin: 0;
	padding: 0;
	flex: 1 1 auto;
	justify-content: center;
}

.ef-navbar-cta {
	flex: 0 0 auto;
	align-self: center;
}
.ef-navbar-cta .ef-buttons { flex-wrap: nowrap; align-items: center; }
.ef-navbar-cta .ef-buttons-item { flex-basis: 0; flex-grow: 1; }

.ef-navbar-logo { align-self: center; }
.ef-navbar-menu { align-self: center; }

/* === Nav Items === */
.ef-navbar-item {
	position: relative;
	display: flex;
	align-items: center;
}

.ef-navbar-link {
	display: inline-flex;
	align-items: center;
	min-height: var(--ef-size-touch-target);
	padding: var(--ef-pad-xs) var(--ef-pad-m);
	text-decoration: none;
	color: inherit;
	white-space: nowrap;
	transition: color 150ms ease;
}

.ef-navbar-link:hover {
	text-decoration: none;
}

.ef-navbar-toggle-mega {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: var(--ef-size-touch-target);
	min-width: 28px;
	padding: 0 var(--ef-radius-s);
	border: none;
	background: none;
	color: inherit;
	cursor: pointer;
	transition: transform 200ms ease;
}

.ef-navbar-toggle-mega[aria-expanded="true"] {
	transform: rotate(180deg);
}

.ef-navbar-chevron {
	flex-shrink: 0;
}

/* === Mega Menu (Desktop) === */
.ef-navbar-mega {
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translateX(-50%);
	display: flex;
	gap: var(--ef-gap-m);
	padding: var(--ef-pad-m) var(--ef-pad-l);
	background: var(--ef-color-white);
	border: 1px solid var(--ef-color-border);
	border-radius: var(--ef-radius-m);
	box-shadow: 0 2px 8px 0 rgba(99, 99, 99, 0.2);
	opacity: 0;
	visibility: hidden;
	contain: content;
	z-index: 100;
	white-space: nowrap;
	transition:
		opacity 120ms ease-in,
		visibility 0s linear 120ms;
}

/* Hover gap bridge */
.ef-navbar-mega::before {
	content: "";
	position: absolute;
	bottom: 100%;
	left: 0;
	width: 100%;
	height: var(--ef-gap-l);
}

/* Show on hover + keyboard focus (CSS transition-delay handles hover intent) */
.ef-navbar-item:hover > .ef-navbar-mega:not([hidden]),
.ef-navbar-item:focus-within > .ef-navbar-mega:not([hidden]) {
	opacity: 1;
	visibility: visible;
	transition:
		opacity 120ms ease-out,
		visibility 0s linear 0s;
}

/* Mega columns — gap on parent handles spacing; border via column-rule */
.ef-navbar-mega-col {
	min-width: 0;
}

.ef-navbar-mega-col + .ef-navbar-mega-col {
	border-inline-start: 1px solid var(--ef-color-border);
	padding-inline-start: var(--ef-gap-m);
}

.ef-navbar-mega-col ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ef-navbar-mega-heading ~ ul {
	padding-inline-start: 1rem;
}

.ef-navbar-mega-heading {
	display: block;
	margin: 0 0 var(--ef-gap-s);
	font-weight: 700;
	white-space: nowrap;
	text-decoration: none;
	color: inherit;
}

.ef-navbar-mega-col ul a {
	display: block;
	padding: var(--ef-radius-s) 0;
	text-decoration: none;
	color: inherit;
	white-space: nowrap;
	border-radius: var(--ef-radius-s);
	transition: color 150ms ease;
}


/* === Breadcrumb Row === */
.ef-navbar-breadcrumb {
	padding: var(--ef-pad-xs) var(--ef-pad-m);
	border-top: 1px solid var(--ef-color-border);
}

/* === Focus Visible === */
.ef-navbar a:focus-visible,
.ef-navbar button:focus-visible {
	outline: var(--ef-focus-ring) solid var(--ef-color-primary);
	outline-offset: var(--ef-focus-ring);
}

/* === Mobile Toggle === */
.ef-navbar-toggle {
	display: none;
	align-items: center;
	justify-content: center;
	min-height: var(--ef-size-touch-target);
	min-width: var(--ef-size-touch-target);
	padding: 0;
	border: none;
	background: none;
	color: inherit;
	cursor: pointer;
	margin-inline-start: auto;
}

/* === Mobile Drawer === */
.ef-navbar-drawer {
	position: fixed;
	inset: 0;
	width: 100%;
	height: 100dvh;
	max-width: none;
	max-height: none;
	margin: 0;
	padding: 0;
	border: none;
	background: var(--ef-color-white);
	overflow-y: auto;
	overscroll-behavior: contain;
	display: flex;
	flex-direction: column;
	z-index: 9999;
	transform: translateY(100%);
	transition:
		transform 300ms ease-out,
		overlay 300ms ease-out allow-discrete,
		display 300ms ease-out allow-discrete;
}

.ef-navbar-drawer[open] {
	transform: translateY(0);
}

@starting-style {
	.ef-navbar-drawer[open] {
		transform: translateY(100%);
	}
}

.ef-navbar-drawer::backdrop {
	background: transparent;
	transition:
		background 300ms ease-out,
		overlay 300ms ease-out allow-discrete,
		display 300ms ease-out allow-discrete;
}

.ef-navbar-drawer[open]::backdrop {
	background: var(--ef-overlay);
}

@starting-style {
	.ef-navbar-drawer[open]::backdrop {
		background: transparent;
	}
}

.ef-navbar-drawer-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: var(--ef-pad-m) var(--ef-pad-l);
	border-bottom: var(--ef-border-s) solid var(--ef-color-border);
	flex: 0 0 auto;
}

.ef-navbar-drawer-title {
	font-weight: var(--ef-weight-m);
}

.ef-navbar-drawer-close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: var(--ef-size-touch-target);
	min-width: var(--ef-size-touch-target);
	padding: 0;
	border: none;
	background: none;
	color: inherit;
	cursor: pointer;
}

.ef-navbar-drawer-body {
	flex: 1 1 auto;
	padding: var(--ef-pad-m) var(--ef-pad-l);
	overflow-y: auto;
}

.ef-navbar-drawer-body > ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ef-navbar-drawer-item a,
.ef-navbar-drawer-item button {
	display: flex;
	align-items: center;
	width: 100%;
	padding: var(--ef-gap-m) 0;
	border: none;
	background: none;
	color: inherit;
	text-decoration: none;
	font: inherit;
	cursor: pointer;
	text-align: start;
}

.ef-navbar-drawer-item-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.ef-navbar-drawer-item-row > button {
	flex: 0 0 auto;
	width: var(--ef-size-touch-target);
	justify-content: center;
	transition: transform 200ms ease;
}

.ef-navbar-drawer-item-row > button[aria-expanded="true"] {
	transform: rotate(180deg);
}

/* Accordion sub-list */
.ef-navbar-drawer-item > ul {
	list-style: none;
	margin: 0;
	padding-inline-start: var(--ef-pad-l);
}

.ef-navbar-drawer-item > ul[hidden] {
	display: none;
}

.ef-navbar-drawer-heading {
	font-weight: 700;
	padding: var(--ef-gap-s) 0 var(--ef-radius-s);
}

.ef-navbar-drawer-heading a {
	text-decoration: none;
	color: inherit;
}

.ef-navbar-drawer-footer {
	flex: 0 0 auto;
	padding: var(--ef-pad-m) var(--ef-pad-l);
	border-top: var(--ef-border-s) solid var(--ef-color-border);
}

/* === Scroll Lock Compensation === */
html {
	scrollbar-gutter: stable;
}

/* === Reduced Motion === */
@media (prefers-reduced-motion: reduce) {
	.ef-navbar-mega,
	.ef-navbar-drawer,
	.ef-navbar-drawer::backdrop {
		transition-duration: 0.01ms !important;
		transition-delay: 0s !important;
		animation: none !important;
	}
}

/* === Editor: show mega menu on hover (JS events unreliable behind Elementor overlay) === */
.elementor-editor-active .ef-navbar-item--has-mega:hover > .ef-navbar-mega[hidden] {
	display: flex !important;
	opacity: 1;
	visibility: visible;
}

/* === Responsive (mobile breakpoint) === */
@media (max-width: 1024px) {
	.ef-navbar-menu {
		display: none;
	}
	.ef-navbar-cta {
		display: none;
	}
	.ef-navbar-toggle {
		display: flex;
	}
}
