/* Site header — rebuilt from Elementor template 28. Breakpoints: tablet ≤1024, mobile ≤767. */

.aew-header {
	position: relative;
	z-index: 99;
	padding: 15px 50px;
	background-color: transparent;
}

.aew-header__inner {
	display: flex;
	gap: 10px;
	max-width: 1600px;
	margin-inline: auto;
}

.aew-header__brand,
.aew-header__nav,
.aew-header__cta {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-width: 0;
}

.aew-header__brand { width: 20%; }
.aew-header__nav   { width: 59.333%; }
.aew-header__cta   { width: 20%; align-items: flex-end; }

/* Logo */
.aew-header__logo {
	display: inline-block;
	align-self: flex-start;
	min-width: 0;
}

.aew-header__logo img {
	width: 100%;
	max-width: 220px;
}

/* Header button: kit button with 8px radius */
.aew-btn--rounded {
	border-radius: 8px;
}

/* Burger toggle (tablet + mobile only) */
.aew-header__toggle {
	display: none;
	/* Shrink weight is based on the content box (22px); 1.5 makes it match Elementor's unpadded 33px wrapper. */
	flex: 0 1.5 auto;
	min-width: 0;
	align-items: center;
	justify-content: center;
	padding: .25em;
	border: 0;
	border-radius: 3px;
	background-color: rgba(0, 0, 0, .05);
	color: var(--aew-color-white);
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
}

.aew-header__toggle:hover,
.aew-header__toggle:focus {
	background-color: rgba(0, 0, 0, .05);
	color: var(--aew-color-white);
}

.aew-header__toggle svg {
	display: block;
	min-width: 0;
	width: 1em;
	height: 1em;
	fill: currentColor;
}

.aew-header__toggle .aew-header__toggle-close,
.aew-header__toggle[aria-expanded="true"] .aew-header__toggle-open {
	display: none;
}

.aew-header__toggle[aria-expanded="true"] .aew-header__toggle-close {
	display: block;
}

/* ---------- Menus (shared) ---------- */

.aew-menu,
.aew-menu ul {
	margin: 0;
	padding: 0;
	list-style: none;
	line-height: normal;
}

.aew-menu li {
	position: relative;
}

.aew-menu a {
	display: flex;
	align-items: center;
	text-decoration: none;
}

.aew-menu__arrow {
	display: flex;
	align-items: center;
	margin-block: -10px;
	padding: 10px 0 10px 10px;
	line-height: 1;
}

.aew-menu__arrow svg {
	width: 1em;
	height: 1em;
	fill: currentColor;
}

/* ---------- Desktop menu ---------- */

.aew-menu--desktop {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
}

.aew-menu--desktop > li {
	display: flex;
}

.aew-menu--desktop > li:not(:first-child) > a { margin-inline-start: 20px; }
.aew-menu--desktop > li:not(:last-child) > a  { margin-inline-end: 20px; }

.aew-menu--desktop .aew-menu__link {
	position: relative;
	flex-grow: 1;
	padding: 8px 0;
	color: var(--aew-color-white);
	font-family: var(--aew-font-accent);
	font-size: var(--aew-type-sub-size);
	font-weight: 600;
	line-height: var(--aew-type-sub-line);
	white-space: nowrap;
	transition: .4s;
}

.aew-menu--desktop .aew-menu__link:hover,
.aew-menu--desktop .aew-menu__link:focus {
	color: var(--aew-color-white);
}

/* Underline pointer, fade animation */
.aew-menu--desktop .aew-menu__link::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	z-index: 2;
	width: 100%;
	height: 1px;
	background-color: var(--aew-color-white);
	opacity: 0;
	transition: .3s cubic-bezier(.58, .3, .005, 1);
}

.aew-menu--desktop .aew-menu__link:hover::after,
.aew-menu--desktop .aew-menu__link:focus::after,
.aew-menu--desktop .aew-menu__link.is-active::after,
.aew-menu--desktop li.is-open > .aew-menu__link::after {
	opacity: 1;
}

/* Desktop sub-menu */
.aew-menu--desktop .sub-menu {
	display: none;
	position: absolute;
	top: 100%;
	inset-inline-start: 20px;
	z-index: 3;
	margin-top: 25px;
	background-color: var(--aew-color-white);
	box-shadow: 0 0 30px 0 rgba(0, 0, 0, .13);
	white-space: nowrap;
}

/* Hover bridge across the 25px gap so the sub-menu stays open while the pointer moves to it. */
.aew-menu--desktop .sub-menu::before {
	content: "";
	position: absolute;
	inset: -25px 0 100% 0;
}

.aew-menu--desktop > li:first-child > .sub-menu {
	inset-inline-start: 0;
}

.aew-menu--desktop li:hover > .sub-menu,
.aew-menu--desktop li:focus-within > .sub-menu,
.aew-menu--desktop li.is-open > .sub-menu {
	display: block;
}

.aew-menu--desktop .aew-menu__sublink {
	padding: 17px 25px;
	border-inline-start: 8px solid transparent;
	color: var(--aew-color-primary);
	font-family: var(--aew-font-text);
	font-size: var(--aew-text-size);
	font-weight: var(--aew-text-weight);
	line-height: 20px;
	transition: .4s;
}

.aew-menu--desktop .aew-menu__sublink:hover,
.aew-menu--desktop .aew-menu__sublink:focus,
.aew-menu--desktop .aew-menu__sublink.is-active {
	background-color: #3f444b;
	color: var(--aew-color-white);
}

/* ---------- Mobile dropdown ---------- */

.aew-mobile-nav {
	display: none;
	position: absolute;
	top: var(--aew-mobile-nav-top, 100%);
	left: 0;
	z-index: 9997;
	width: 100%;
	max-height: 0;
	overflow: hidden;
	background-color: var(--aew-color-white);
	font-size: 13px;
	transform: scaleY(0);
	transform-origin: top;
	transition: max-height .3s, transform .3s;
}

.aew-mobile-nav.is-open {
	max-height: 100vh;
	overflow-y: auto;
	transform: scaleY(1);
}

.aew-menu--mobile .aew-menu__link,
.aew-menu--mobile .aew-menu__sublink {
	justify-content: center;
	padding: 17px 25px;
	color: var(--aew-color-primary);
	font-family: var(--aew-font-text);
	font-size: var(--aew-text-size);
	font-weight: var(--aew-text-weight);
}

.aew-menu--mobile .aew-menu__link    { line-height: var(--aew-text-size); }
.aew-menu--mobile .aew-menu__sublink { line-height: 20px; border-inline-start: 8px solid transparent; }

.aew-menu--mobile .aew-menu__link:hover,
.aew-menu--mobile .aew-menu__link:focus,
.aew-menu--mobile .aew-menu__link.is-active,
.aew-menu--mobile li.is-open > .aew-menu__link,
.aew-menu--mobile .aew-menu__sublink:hover,
.aew-menu--mobile .aew-menu__sublink:focus,
.aew-menu--mobile .aew-menu__sublink.is-active {
	background-color: var(--aew-color-accent);
	color: var(--aew-color-white);
}

.aew-menu--mobile .sub-menu {
	display: none;
	background-color: var(--aew-color-white);
}

.aew-menu--mobile li.is-open > .sub-menu {
	display: block;
}

/* ---------- Tablet ---------- */
@media (max-width: 1024px) {
	.aew-header {
		padding: 20px;
	}

	.aew-header__nav {
		display: none;
	}

	.aew-header__brand,
	.aew-header__cta {
		width: 50%;
	}

	.aew-header__brand {
		flex-direction: row;
		justify-content: flex-start;
		align-items: center;
		gap: 20px;
	}

	.aew-header__toggle {
		display: flex;
	}

	.aew-header__logo {
		align-self: auto;
		margin-left: 5px;
	}

	.aew-mobile-nav {
		display: block;
	}
}

/* ---------- Mobile ---------- */
@media (max-width: 767px) {
	.aew-header__inner {
		gap: 0;
	}

	.aew-header__brand {
		width: 55%;
		gap: 10px;
		flex-wrap: nowrap;
	}

	.aew-header__cta {
		width: 45%;
	}

	.aew-header__logo {
		margin-left: 0;
	}

	.aew-header__logo img {
		max-width: 160px;
	}
}
