/* Scope replacement to known Astra mastheads, including Pro Site Builder output. */
:is(#dmm-header.dmm-astra-replacement, .dmm-home-header) ~ #page :is(#masthead, .ast-custom-header),
:is(#dmm-header.dmm-astra-replacement, .dmm-home-header) ~ :is(#masthead, .ast-custom-header, #ast-fixed-header) {
	display: none !important;
}

#dmm-header {
	position: relative;
	z-index: 1000;
	width: 100%;
	color: #000;
	background: #fff;
	font-family: var(--dmm-font-family);
	font-size: var(--dmm-font-size);
	font-weight: var(--dmm-font-weight);
	letter-spacing: var(--dmm-letter-spacing);
	line-height: var(--dmm-line-height);
	--dmm-edge: var(--dmm-edge-space);
}

/* On the front page the header overlaps the hero without shifting it. */
.dmm-home-header { position: relative; z-index: 1000; height: 0; overflow: visible; }
:is(#dmm-header, .dmm-home-header) { --dmm-admin-offset: 0px; }
:is(#dmm-header, .dmm-home-header).dmm-sticky { position: sticky; inset-block-start: var(--dmm-admin-offset); }
.dmm-home-header > #dmm-header.dmm-sticky { position: relative; inset-block-start: auto; }
.dmm-home-header > #dmm-header { color: #fff; background: #fff3; --dmm-divider-color: #fff; }
#dmm-header.dmm-stuck { color: #000; background: var(--dmm-background, #fff); --dmm-divider-color: var(--dmm-border-color, #eee); }

#dmm-header.dmm-mobile-open,
#dmm-header:has(.dmm-item.dmm-active),
#dmm-header:not(.dmm-ready):has(.dmm-item:is(:hover, :focus-within) > .dmm-mega) {
	color: #000;
	--dmm-divider-color: var(--dmm-border-color, #eee);
	background: #fff;
}
.admin-bar :is(#dmm-header, .dmm-home-header) { --dmm-admin-offset: 32px; }
#dmm-header *, #dmm-header *::before, #dmm-header *::after { box-sizing: border-box; }
#dmm-header [hidden] { display: none !important; }

#dmm-header a,
#dmm-header :is(.dmm-top, .dmm-actions) button,
#dmm-header .dmm-sub-toggle {
	color: inherit;
	font: inherit;
	letter-spacing: inherit;
	text-decoration: none;
}

#dmm-header button { cursor: pointer; }
#dmm-header :is(.dmm-top, .dmm-actions) button, #dmm-header .dmm-sub-toggle {
	background: transparent;
	border: 0;
	border-radius: 0;
	padding: 0;
	box-shadow: none;
}

#dmm-header :is(.dmm-top-links a, .dmm-nav-label > a, .dmm-text-toggle):hover,
#dmm-header .dmm-item.dmm-active .dmm-nav-label :is(a, .dmm-text-toggle) {
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-color: var(--dmm-hover-color);
}

#dmm-header :focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}

.dmm-top {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	grid-template-areas: "links brand actions";
	align-items: center;
	gap: 0 12px;
	min-height: var(--dmm-top-height);
	max-width: var(--dmm-header-width);
	margin-inline: auto;
	padding: 8px var(--dmm-edge);
}

.dmm-top-links, .dmm-actions, .dmm-languages {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: min(var(--dmm-utility-gap), 4vw);
	overflow-wrap: anywhere;
}

.dmm-top-links { grid-area: links; }
.dmm-brand { grid-area: brand; text-align: center; max-width: min(36vw, var(--dmm-logo-width)); }
.dmm-brand a { display: inline-flex; flex-direction: column; align-items: center; gap: 4px; }
.dmm-brand-name { font-size: clamp(14px, 3vw, 24px); overflow-wrap: anywhere; }
.dmm-brand-city {
	font-size: 13.5px;
	font-weight: 600;
	letter-spacing: .35em;
	line-height: 1.2;
	padding-inline-start: .35em;
}
#dmm-header .dmm-logo { display: block; width: auto; height: auto; max-width: 100%; max-height: var(--dmm-logo-height); object-fit: contain; }
.dmm-actions { grid-area: actions; justify-content: flex-end; }
.dmm-languages { gap: min(var(--dmm-utility-gap), 8px); }
#dmm-header .dmm-languages [aria-current] { text-decoration: underline; text-underline-offset: 3px; }

#dmm-header .dmm-icon { display: inline-flex; align-items: center; justify-content: center; min-width: 24px; min-height: 28px; }
#dmm-header svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.5; }
#dmm-header .dmm-mobile-toggle,
#dmm-header:not(.dmm-ready) :is(.dmm-search-toggle, .dmm-sub-toggle),
#dmm-header.dmm-ready .dmm-nojs-label { display: none; }

.dmm-divider { height: 1px; background: var(--dmm-divider-color, var(--dmm-border-color, #eee)); }
#dmm-header .dmm-menu {
	display: flex;
	flex-wrap: wrap;
	justify-content: var(--dmm-nav-align);
	column-gap: var(--dmm-nav-gap);
	max-width: var(--dmm-header-width);
	margin: 0 auto;
	padding: 0 var(--dmm-edge);
	list-style: none;
}
#dmm-header .dmm-item { position: static; margin: 0; padding: 0; }
.dmm-nav-label {
	display: flex;
	align-items: center;
	min-height: var(--dmm-nav-height);
	font-size: var(--dmm-nav-font-size);
	text-transform: var(--dmm-text-transform);
	overflow-wrap: anywhere;
}

#dmm-header .dmm-sub-toggle { text-transform: inherit; }
#dmm-header .dmm-text-toggle { display: inline-flex; align-items: center; gap: 5px; min-height: 28px; text-align: start; }
#dmm-header .dmm-sub-toggle svg { width: 12px; height: 12px; flex: none; }
#dmm-header .dmm-sub-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }

.dmm-mega {
	position: absolute;
	inset: 100% 0 auto;
	max-height: min(65vh, 650px);
	overflow: auto;
	overscroll-behavior: contain;
	padding: var(--dmm-panel-top) min(var(--dmm-edge), 2vw) var(--dmm-panel-bottom);
	color: #000;
	background: #fff;
	box-shadow: 0 10px 18px rgb(0 0 0 / 7%);
}

#dmm-header:not(.dmm-ready) .dmm-item:not(:hover):not(:focus-within) > .dmm-mega { display: none; }
.dmm-card-grid {
	display: flex;
	align-items: flex-start;
	gap: var(--dmm-card-gap);
	overflow-x: auto;
}
.dmm-card {
	width: min(100%, var(--dmm-card-width));
	min-width: min(100%, var(--dmm-card-width), 110px);
	text-align: var(--dmm-caption-align);
	overflow-wrap: anywhere;
}
/* Auto margins center cards when they fit and keep both ends reachable when they overflow. */
.dmm-card:first-child { margin-inline-start: auto; }
.dmm-card:last-child { margin-inline-end: auto; }
#dmm-header .dmm-card:is(:hover, :focus-visible) {
	color: var(--dmm-hover-color);
	text-decoration: none;
}
#dmm-header .dmm-card:focus-visible { outline-offset: -2px; }
.dmm-card-image { display: block; aspect-ratio: var(--dmm-card-ratio); overflow: hidden; background: var(--dmm-border-color); }
#dmm-header .dmm-card img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform var(--dmm-transition), filter var(--dmm-transition); }
#dmm-header.dmm-effect-zoom .dmm-card:is(:hover, :focus-visible) img { transform: scale(1.045); }
#dmm-header.dmm-effect-fade .dmm-card:is(:hover, :focus-visible) img { filter: brightness(.8); }
.dmm-card-title {
	display: block;
	padding-block-start: var(--dmm-caption-gap);
	font-size: var(--dmm-card-font-size);
	text-transform: var(--dmm-text-transform);
}

.dmm-search {
	position: absolute;
	z-index: 1;
	inset-block-start: 100%;
	inset-inline-end: var(--dmm-edge);
	display: flex;
	gap: 8px;
	width: min(360px, calc(100% - 2 * var(--dmm-edge)));
	padding: 10px;
	color: var(--dmm-foreground);
	background: var(--dmm-panel-bg, #fff);
	border: 1px solid var(--dmm-border-color);
}
#dmm-header .dmm-search input { flex: 1; min-width: 0; padding: 8px; color: inherit; font: inherit; background: transparent; border: 1px solid var(--dmm-border-color); }
#dmm-header .dmm-search button { padding: 8px 12px; color: var(--dmm-panel-bg, #fff); background: var(--dmm-foreground); font: inherit; border: 0; border-radius: 0; }
.dmm-sr { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

@media (max-width: 921px) {
	#dmm-header { --dmm-edge: min(var(--dmm-edge-space), 4vw); }
	.dmm-top {
		grid-template-areas: "toggle brand actions" "links links links";
		gap: 0 6px;
		min-height: clamp(60px, var(--dmm-top-height), 82px);
	}
	#dmm-header .dmm-logo { max-height: min(var(--dmm-logo-height), 56px); }
	.dmm-actions { gap: min(var(--dmm-utility-gap), 1.5vw); }
	#dmm-header .dmm-icon { min-height: 38px; min-width: 28px; }
	#dmm-header.dmm-ready .dmm-mobile-toggle { display: inline-flex; grid-area: toggle; justify-self: start; min-width: 40px; }
	.dmm-top-links { justify-content: center; padding-block: 8px; border-top: 1px solid var(--dmm-border-color); }
	#dmm-header.dmm-ready:not(.dmm-mobile-open) .dmm-top-links:has(~ .dmm-mobile-toggle) { display: none; }
	.dmm-nav { max-height: 60vh; max-height: 60dvh; overflow-y: auto; overscroll-behavior: contain; }
	#dmm-header .dmm-nav .dmm-actions {
		justify-content: center;
		gap: 0;
		padding: 4px var(--dmm-edge);
		border-block-start: 1px solid var(--dmm-border-color);
	}
	#dmm-header .dmm-nav .dmm-actions:not(:has(a, button)) { display: none; }
	#dmm-header .dmm-nav .dmm-actions .dmm-icon { min-width: 40px; min-height: 40px; }
	#dmm-header .dmm-nav .dmm-languages { gap: 0; justify-content: center; }
	#dmm-header .dmm-nav .dmm-languages a {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-width: 40px;
		min-height: 40px;
		padding-inline: 6px;
	}
	#dmm-header .dmm-nav .dmm-search { position: static; width: auto; margin: 0 var(--dmm-edge) 10px; }
	#dmm-header .dmm-menu { display: block; padding: 0; }
	.dmm-nav-label {
		min-height: max(44px, var(--dmm-nav-height));
		justify-content: space-between;
		gap: 10px;
		padding-inline: var(--dmm-edge);
	}
	.dmm-item + .dmm-item .dmm-nav-label { border-block-start: 1px solid var(--dmm-border-color); }
	#dmm-header .dmm-nav-label > a { flex: 1; }
	#dmm-header .dmm-text-toggle { width: 100%; min-height: 44px; justify-content: space-between; }
	#dmm-header .dmm-sub-toggle.dmm-icon { min-width: 44px; }
	.dmm-mega { position: static; max-height: none; overflow: visible; box-shadow: none; }
	.dmm-card-grid { gap: min(var(--dmm-card-gap), 5vw); padding-block-end: 16px; }
}
@media (max-width: 782px) { .admin-bar :is(#dmm-header, .dmm-home-header) { --dmm-admin-offset: 46px; } }
@media (max-width: 600px) { .admin-bar :is(#dmm-header, .dmm-home-header) { --dmm-admin-offset: 0px; } }
@media (prefers-reduced-motion: reduce) { #dmm-header { --dmm-transition: 0ms !important; } }
