/**
 * Nav main
 */

/* --- nav-main --- */
.ceba-nav-main .wp-block-navigation {
	margin-block: 0;
}

/* Top level link */
.ceba-nav-main.wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content.wp-block-navigation-item__content {
	position: relative;
	padding-block: var(--wp--preset--spacing--10);
	padding-inline: var(--wp--preset--spacing--20);
	font-weight: 800;
	letter-spacing: 0.075ch;
	line-height: 1;
}

/* Bottom border */
.ceba-nav-main.wp-block-navigation > .wp-block-navigation-item > .wp-block-navigation-item__content::after {
	display: block;
	position: absolute;
	inset-block-start: 100%;
	inset-inline-start: var(--wp--preset--spacing--20);
	block-size: 4px;
	inline-size: calc(100% - var(--wp--preset--spacing--20) * 2);
	scale: 0 1;
	background: var(--wp--custom--gradient--momentum-bar-light);
	content: '';
	transition: scale var(--wp--custom--transition--hover);
}

/* Has dropdown */
.ceba-nav-main.wp-block-navigation > .wp-block-navigation-item:has(>.wp-block-navigation__submenu-icon) > .wp-block-navigation-item__content::after {
	inline-size: calc(100% + var(--wp--preset--spacing--10));
}

/* Active link */
body.post-type-archive .ceba-nav-main .wp-block-navigation-item__content[href^='/events']::after,
.ceba-nav-main.wp-block-navigation > .wp-block-navigation-item.current-menu-item > .wp-block-navigation-item__content::after,
.ceba-nav-main.wp-block-navigation > .wp-block-navigation-item:is(:hover, :focus-within) > .wp-block-navigation-item__content::after {
	scale: 1 1;
}

.ceba-nav-main .wp-block-navigation__submenu-icon {
	margin-inline: var(--wp--preset--spacing--15);
}

.ceba-nav-main .wp-block-navigation__submenu-icon svg {
	block-size: 12px;
	inline-size: 12px;
	margin-block-start: 0;
	scale: 1 1.1;
}

/* Dropdown submenu */
.ceba-nav-main.wp-block-navigation__container .wp-block-navigation__submenu-container {
	inset-inline: 0 auto !important;
	inline-size: 290px !important;
	padding: var(--wp--preset--spacing--10) 0;
	translate: 0 36px;
	border: 0;
	box-shadow: var(--wp--preset--shadow--x-small);
}

/* Submenu item link content */
.ceba-nav-main .wp-block-navigation-submenu.wp-block-navigation__submenu-container a:where(:not(.wp-element-button)) {
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 400;
	text-transform: none;
}

/* Submenu item */
.ceba-nav-main.wp-block-navigation__container .has-child .wp-block-navigation__submenu-container > .wp-block-navigation-item + .wp-block-navigation-item {
	--border--color: rgb(17 42 86 / 20%);
	--border-padding: var(--wp--preset--spacing--30);

	border-block-start: 1px solid transparent;
	border-image: linear-gradient(to right, transparent var(--border-padding), var(--border--color) var(--border-padding), var(--border--color) calc(100% - var(--border-padding)), transparent calc(100% - var(--border-padding)));
	border-image-slice: 1;
}

.ceba-nav-main.wp-block-navigation__container .has-child .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content:hover,
.ceba-nav-main.wp-block-navigation__container .has-child .wp-block-navigation__submenu-container > .wp-block-navigation-item.current-menu-item > .wp-block-navigation-item__content {
	font-weight: 700;
}


/* Submenu link with icon */
.ceba-nav-main.wp-block-navigation__container .has-child .wp-block-navigation__submenu-container:has( > .wp-block-navigation-item:last-child .has-icon) {
	padding-block-end: 0;
}

.ceba-nav-main.wp-block-navigation__container .has-child .wp-block-navigation__submenu-container > .wp-block-navigation-item:has(.has-icon) {
	margin-block-start: var(--wp--preset--spacing--20);
	border-block-start: 0;
}

.ceba-nav-main.wp-block-navigation__container .has-child .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content.has-icon {
	display: flex;
	justify-content: space-between;
	padding-block: 20px;
	background-color: var(--wp--preset--color--accent-1);
	color: var(--wp--preset--color--base);
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 800;
	letter-spacing: 0.075ch;
	line-height: 1;
	text-transform: uppercase;
}

.ceba-nav-main.wp-block-navigation__container .has-child .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content.has-icon:hover {
	background-color: var(--wp--preset--color--accent-3);
	font-weight: 800;
	transition: background-color var(--wp--custom--transition--hover);
}

.ceba-nav-main.wp-block-navigation__container .has-child .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content.has-icon svg {
	block-size: 1em;
	inline-size: 1em;
	scale: 1.5;
}


/* --- Mobile nav overlay --- */
.ceba-nav-overlay {
	/* Account for admin bar height if present */
	padding-block-start: var(--wp-admin--admin-bar--height) !important;
}

.ceba-nav-overlay > .wp-block-buttons {
	margin-block: var(--wp--preset--spacing--30);
	padding-inline: var(--wp--preset--spacing--20);
}

.ceba-nav-overlay__head {
	block-size: var(--wp--custom--head--dimensions--height);
}


/* --- Mobile nav --- */
.ceba-nav-mobile {
	margin-block: 0;
}

.ceba-nav-mobile .wp-block-navigation__container {
	--navigation-layout-align: stretch;
	--wp--style--block-gap: 0;
}

/* Buttons */
.ceba-nav-mobile .wp-block-navigation-item__content,
.ceba-nav-mobile .wp-block-navigation-item.open-on-click .wp-block-navigation-submenu__toggle {
	--border--color: var(--wp--preset--color--accent-3);
	--border-padding: var(--wp--preset--spacing--20);

	inline-size: 100%;
	padding: var(--wp--preset--spacing--20) var(--border-padding);
	border-block-end: 1px solid transparent;
	font-weight: 800;
	letter-spacing: 0.075ch;
	line-height: 1;
	border-image: linear-gradient(to right, transparent var(--border-padding), var(--border--color) var(--border-padding), var(--border--color) calc(100% - var(--border-padding)), transparent calc(100% - var(--border-padding)));
	border-image-slice: 1;
}

.ceba-nav-mobile .wp-block-navigation-item.has-child.open-on-click {
	--icon--color: var(--wp--preset--color--base);

	display: flex;
	flex-direction: column;
	align-items: stretch;
}

/* Hide border if next sibling is expanded */
.ceba-nav-mobile .wp-block-navigation-item.has-child.open-on-click:has(+ .has-child > [aria-expanded='true']) .wp-block-navigation-item__content {
	--border--color: transparent;
}

.ceba-nav-mobile .wp-block-navigation-item.has-child.open-on-click:has(> [aria-expanded='true']) {
	--icon--color: var(--wp--preset--color--contrast);
}

.ceba-nav-mobile .wp-block-navigation-item.open-on-click .wp-block-navigation-submenu__toggle:is([aria-expanded='true']) {
	padding-block-end: var(--wp--preset--spacing--10);
	background-color: var(--wp--preset--color--base);
	border: 0;
	color: var(--wp--preset--color--contrast);

	& ~ .wp-block-navigation-submenu {
		border: 0;
	}
}

/* Submenu expand button */
.ceba-nav-mobile .wp-block-navigation__submenu-icon {
	position: absolute;
	inset-block-start: 0;
	inset-inline-start: 0;
	block-size: 48px;
	inline-size: 100%;
	margin: 0 !important;
	z-index: 1;

	& svg {
		position: absolute;
		inset-block-start: 50%;
		inset-inline-end: var(--wp--preset--spacing--20);
		block-size: 16px;
		inline-size: 16px;
		translate: 0 -50%;
		color: var(--icon--color);
	}
}

/* Submenu / subnav */
.ceba-nav-mobile.wp-block-navigation .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container {
	position: relative;
	inset: auto;
	min-inline-size: 100%;
}

.ceba-nav-mobile.wp-block-navigation .has-child .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	--border--color: rgb(17 42 86 / 20%);

	color: var(--wp--preset--color--contrast);
	line-height: 1.55;
}



/* Mobile menu button */
.ceba-nav-main :is(.wp-block-navigation__responsive-container-open, .wp-block-navigation__responsive-container-close) {
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--10);
}

/* Mobile menu and close buttons */
.ceba-nav-main :is(.wp-block-navigation__responsive-container-open, .wp-block-navigation-overlay-close) {
	margin-inline-end: calc(var(--wp--preset--spacing--10) * -1);
}


/* --- Search --- */
.ceba-nav-main .ceba-search:not(.ceba-search--mobile) .wp-element-button.wp-block-button__link {
	--icon--color: var(--wp--preset--color--base);
	--button--spacing--padding-inline: calc(1.25em - 1px);

	align-items: center;
	justify-content: center;
	gap: 0;
}

.ceba-search .wp-element-button.wp-block-button__link {
	--wp--custom--color--background: transparent;

	background-color: transparent;
	border-color: transparent;
}

.ceba-search .wp-block-eh-modal__dialog {
	--dialog--inset: 0;
	--dialog--width: 100vw;
	--dialog--translate--start: 0 -50%;
	--dialog--translate--end: 0 0;
	--dialog--close--inset: var(--wp--style--root--padding-left) var(--wp--style--root--padding-right) auto auto;

	max-inline-size: 100%;

	@media (width >= 1024px) {
		--dialog--close--inset: var(--wp--preset--spacing--30) var(--wp--preset--spacing--30) auto auto;
	}
}

.ceba-search form {
	max-inline-size: var(--wp--custom--width--content-narrow);
	margin-inline: auto;
	padding: var(--wp--preset--spacing--60) var(--wp--style--root--padding-left);
}

.ceba-nav-main .ceba-search:not(.ceba-search--mobile) .wp-element-button :where(svg) {
	scale: 2 2;
}

.ceba-nav-main .ceba-search:not(.ceba-search--mobile) .wp-element-button.wp-element-button:hover {
	--icon--color: var(--wp--preset--color--contrast);
	--button--color--background-hover: var(--wp--preset--color--base);
}

.ceba-nav-main.wp-block-navigation > .wp-block-navigation-item:has(>.wp-block-navigation__submenu-icon):is(:hover, :focus-within)::after {
	display: block;
	position: absolute;
	inset-block-start: 100%;
	inset-inline-start: 0;
	block-size: var(--wp--preset--spacing--50);
	inline-size: calc(100% + var(--wp--preset--spacing--30));
	background: transparent;
	content: '';
}

/* Hide desktop search button */
.ceba-nav-mobile :where(.ceba-search.wp-block-eh-modal, .wp-block-buttons) {
	display: none !important;
}


@media  (width >= 1024px) {
	.ceba-part-head {
		--head--spacing--padding: var(--wp--preset--spacing--30);
	}

	.ceba-part-head .ceba-search--mobile {
		display: none;
	}

	/* Top level link */
	.ceba-nav-main .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content.wp-block-navigation-item__content {
		padding-inline: var(--wp--preset--spacing--20);
	}

	.ceba-nav-main.wp-block-navigation > .wp-block-navigation-item:has(>.wp-block-navigation__submenu-icon) > .wp-block-navigation-item__content {
		padding-inline-end: 0;
	}

	/* Desktop core/button */
	.ceba-nav-main.wp-block-navigation .wp-block-button__link.has-base-background-color {
		border-color: var(--wp--custom--color--background);
	}

	.ceba-nav-main.wp-block-navigation .wp-block-button__link.has-base-background-color:hover {
		--button--color--background-hover: var(--wp--preset--color--base);
		--button--color--text: var(--wp--preset--color--contrast);
	}


	/* Submenu item link content */
	.ceba-nav-main .wp-block-navigation .has-child .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content {
		padding: var(--wp--preset--spacing--10) var(--wp--preset--spacing--30);
	}

	.ceba-nav-main .wp-block-navigation-submenu.wp-block-navigation__submenu-container a:where(:not(.wp-element-button)) {
		font-size: var(--wp--preset--font-size--large);
		line-height: 1.55;
		transition: background-color var(--wp--custom--transition--hover);
	}
}


/** Override WordPress mobile navigation breakpoint */
@media (width >= 600px) and (width < 1024px) {
	.ceba-nav-main .wp-block-navigation__responsive-container:not(.hidden-by-default, .is-menu-open) {
		display: none;
	}

	.ceba-nav-main .wp-block-navigation__responsive-container-open:not(.always-shown),
	.ceba-nav-main .wp-block-navigation__responsive-container.has-modal-open {
		display: flex;
	}
}


/* Override default transition */
/* stylelint-disable-next-line keyframes-name-pattern */
@keyframes overlay-menu__fade-in-animation {
	from {
		opacity: 0;
	}

	to {
		opacity: 1;
	}
}
