/* Speed Child navbar header. */
.asc-header {
	--asc-text: var(--ast-global-color-2, #111827);
	--asc-muted: #6b7280;
	--asc-accent: var(--ast-global-color-0, #2f5d3a);
	--asc-border: #e5e7eb;
	--asc-field: #f3f4f6;
	--asc-logo-h: 40px;
	--asc-logo-h-m: 34px;
	--asc-h: 64px;
	--asc-bg: #fff;
	--asc-top-bg: transparent;
	--asc-nav-size: 14px;
	--asc-nav-weight: 500;
	--asc-nav-pad: 12px;
	--asc-top-size: 13px;
	--asc-icon: 20px;
	--asc-search-w: 220px;
	position: relative;
	z-index: 99;
	background: var(--asc-bg);
	border-bottom: 1px solid var(--asc-border);
	font-size: 14px;
}
.asc-header--sticky { position: -webkit-sticky; position: sticky; top: 0; }
/* overflow:hidden on any wrapper stops sticky working; clip hides sideways overflow without that problem. */
html body.asc-has-sticky,
body.asc-has-sticky #page,
body.asc-has-sticky .hfeed.site { overflow: visible !important; overflow-x: clip !important; }
/* Fallback used by the script if a wrapper still blocks sticky. */
.asc-header--fixed { position: fixed !important; top: 0; left: 0; right: 0; }
.admin-bar .asc-header--fixed { top: 32px; }
@media (max-width: 782px) { .admin-bar .asc-header--fixed { top: 46px; } }
.asc-header--shadow { border-bottom-color: transparent; box-shadow: 0 1px 14px rgba(17, 24, 39, 0.08); }
.asc-header--full .asc-wrap { max-width: none; }
.admin-bar .asc-header--sticky { top: 32px; }
@media (max-width: 782px) { .admin-bar .asc-header--sticky { top: 0; } }

.asc-header ul { margin: 0; padding: 0; list-style: none; }
.asc-header a { text-decoration: none; }

.asc-wrap {
	box-sizing: border-box;
	display: flex;
	align-items: center;
	max-width: var(--ast-normal-container-width, 1240px);
	margin-inline: auto;
	padding-inline: 20px;
}

/* Top bar */
.asc-top { background: var(--asc-top-bg); }
.asc-top__nav { margin-left: auto; }
.asc-top__menu { display: flex; gap: 1.25rem; padding-block: 0.4rem; }
.asc-top__menu a { font-size: var(--asc-top-size); color: var(--asc-top-text, var(--asc-muted)); }
.asc-top__menu a:hover, .asc-top__menu a:focus-visible { color: var(--asc-top-text, var(--asc-text)); text-decoration: underline; text-underline-offset: 3px; }

/* Main row */
.asc-main .asc-wrap { min-height: var(--asc-h); gap: 2rem; }
.asc-brand { flex-shrink: 0; line-height: 0; padding-top: var(--asc-logo-pt, 0px); padding-bottom: var(--asc-logo-pb, 15px); }
/* Strong selectors: Astra's own logo-width rules must not win here. */
#masthead.asc-header .asc-brand img,
#masthead.asc-header .asc-brand .custom-logo {
	display: block;
	width: auto !important;
	height: var(--asc-logo-h) !important;
	max-width: none !important;
	max-height: none !important;
}
.asc-site-title { font-size: 20px; font-weight: 700; line-height: 1; color: var(--asc-text); }

.asc-panel { display: flex; flex: 1; align-items: center; gap: 2rem; }

/* Primary menu */
.asc-nav__menu, .asc-nav > div > ul { display: flex; align-items: center; gap: 0.25rem; }
.asc-nav li { position: relative; }
.asc-nav a {
	display: flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.5rem var(--asc-nav-pad);
	border-radius: 6px;
	color: var(--asc-text);
	font-size: var(--asc-nav-size);
	font-weight: var(--asc-nav-weight);
	letter-spacing: var(--asc-nav-tracking, normal);
	text-transform: var(--asc-nav-transform, none);
	white-space: nowrap;
}
.asc-nav a:hover, .asc-nav a:focus-visible,
.asc-nav .current-menu-item > a, .asc-nav .current-menu-ancestor > a { color: var(--asc-accent); }
.asc-nav .menu-item-has-children > a::after {
	content: "";
	width: 10px;
	height: 10px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M2 3.5 5 6.5 8 3.5' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M2 3.5 5 6.5 8 3.5' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform 0.2s;
}

/* Dropdowns */
.asc-nav .sub-menu, .asc-nav .children {
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 200px;
	padding: 0.4rem;
	background: #fff;
	border: 1px solid var(--asc-border);
	border-radius: 10px;
	box-shadow: 0 10px 30px rgba(17, 24, 39, 0.08);
	opacity: 0;
	visibility: hidden;
	transform: translateY(4px);
	transition: opacity 0.15s, transform 0.15s, visibility 0.15s;
}
.asc-nav .sub-menu a, .asc-nav .children a { padding: 0.55rem 0.75rem; font-weight: 400; text-transform: none; letter-spacing: normal; }
.asc-nav .sub-menu a:hover, .asc-nav .children a:hover { background: var(--asc-field); }

/* Actions */
.asc-actions { display: flex; align-items: center; gap: 0.75rem; margin-left: auto; }
.asc-search { position: relative; }
.asc-search .asc-icon { position: absolute; top: 50%; left: 10px; width: 16px; height: 16px; transform: translateY(-50%); color: var(--asc-muted); pointer-events: none; }
.asc-search input[type="search"] {
	width: var(--asc-search-w);
	height: 36px;
	margin: 0;
	padding: 0 12px 0 34px;
	border: 1px solid transparent;
	border-radius: 8px;
	background: var(--asc-field);
	color: var(--asc-text);
	font-size: 13px;
	box-shadow: none;
}
.asc-search input[type="search"]:focus { outline: none; border-color: var(--asc-accent); background: #fff; }
.asc-icon-link .asc-icon, .asc-toggle .asc-icon { width: var(--asc-icon); height: var(--asc-icon); }
.asc-icon-link { display: inline-flex; padding: 6px; border-radius: 6px; color: var(--asc-text); }
.asc-icon-link:hover, .asc-icon-link:focus-visible { color: var(--asc-accent); background: var(--asc-field); }

/* Mobile toggle */
.asc-toggle {
	display: none;
	margin-left: auto;
	padding: 8px;
	border: 0;
	border-radius: 6px;
	background: transparent;
	color: var(--asc-text);
	line-height: 0;
	cursor: pointer;
}
.asc-toggle:hover, .asc-toggle:focus { background: var(--asc-field); color: var(--asc-text); }
.asc-toggle__close { display: none; }
.asc-header.is-open .asc-toggle__open { display: none; }
.asc-header.is-open .asc-toggle__close { display: inline; }

@media (min-width: 921px) {
	.asc-header--nav-center .asc-nav { margin-inline: auto; }
	.asc-header--nav-center .asc-actions,
	.asc-header--nav-right .asc-actions { margin-left: 0; }
	.asc-header--nav-right .asc-nav { margin-left: auto; }
	.asc-nav li:hover > .sub-menu, .asc-nav li:focus-within > .sub-menu,
	.asc-nav li:hover > .children, .asc-nav li:focus-within > .children { opacity: 1; visibility: visible; transform: none; }
	.asc-nav li:hover > a::after, .asc-nav li:focus-within > a::after { transform: rotate(180deg); }
}

@media (max-width: 1100px) and (min-width: 921px) {
	.asc-search input[type="search"] { width: min(var(--asc-search-w), 160px); }
	.asc-main .asc-wrap, .asc-panel { gap: 1rem; }
}

@media (max-width: 920px) {
	.asc-top__menu { gap: 1rem; padding-block: 0.3rem; }
	.asc-toggle { display: inline-flex; }
	#masthead.asc-header .asc-brand img,
	#masthead.asc-header .asc-brand .custom-logo { height: var(--asc-logo-h-m) !important; max-width: 60vw !important; object-fit: contain; object-position: left center; }
	.asc-main .asc-wrap { min-height: min(var(--asc-h), 64px); }
	.asc-main .asc-wrap { flex-wrap: wrap; gap: 0; }
	.asc-panel {
		display: none;
		flex-basis: 100%;
		flex-direction: column;
		align-items: stretch;
		gap: 0.75rem;
		padding: 0.5rem 0 1rem;
	}
	.asc-header.is-open .asc-panel { display: flex; }
	.asc-nav__menu, .asc-nav > div > ul { flex-direction: column; align-items: stretch; gap: 0; }
	.asc-nav a { justify-content: space-between; padding: 0.75rem 0.25rem; border-radius: 0; border-bottom: 1px solid var(--asc-border); }
	.asc-nav .sub-menu, .asc-nav .children { position: static; display: none; min-width: 0; padding: 0 0 0 1rem; border: 0; box-shadow: none; opacity: 1; visibility: visible; transform: none; }
	.asc-nav li.is-open > .sub-menu, .asc-nav li.is-open > .children { display: block; }
	.asc-nav li.is-open > a::after { transform: rotate(180deg); }
	.asc-actions { flex-wrap: wrap; margin-left: 0; }
	.asc-search { flex: 1; }
	.asc-search input[type="search"] { width: 100%; }
}

/*
 * Text settings from Customize > Speed Child Header. Astra's header and menu
 * typography rules target #masthead / .site-header too, so these use strong
 * selectors to make sure the header's own settings win.
 */
#masthead.asc-header .asc-nav a {
	font-size: var(--asc-nav-size) !important;
	font-weight: var(--asc-nav-weight) !important;
	letter-spacing: var(--asc-nav-tracking, normal) !important;
	text-transform: var(--asc-nav-transform, none) !important;
	line-height: 1.3 !important;
}
#masthead.asc-header .asc-nav .sub-menu a,
#masthead.asc-header .asc-nav .children a {
	font-size: var(--asc-nav-size) !important;
	font-weight: 400 !important;
	letter-spacing: normal !important;
	text-transform: none !important;
}
#masthead.asc-header .asc-top__menu a { font-size: var(--asc-top-size) !important; line-height: 1.4 !important; }
#masthead.asc-header .asc-search input[type="search"] { font-size: 13px !important; }

@media (prefers-reduced-motion: reduce) {
	.asc-nav .sub-menu, .asc-nav .children, .asc-nav a::after { transition: none; }
}
