/* Header-only composition; the existing utility bar remains independent. */
.dsf-header {
	--dsf-menu-shadow: 0 12px 32px color-mix(in srgb, var(--dsf-color-primary) 16%, transparent);
	position: sticky;
	inset-block-start: 0;
	z-index: 100;
	flex-shrink: 0;
	background: var(--dsf-color-surface);
	border-block-end: 1px solid var(--dsf-color-border);
}
.admin-bar .dsf-header { inset-block-start: 32px; }
html { scroll-padding-block-start: calc(var(--dsf-header-height, 4.75rem) + var(--dsf-space-5) + var(--dsf-admin-offset, 0px)); }
html:has(body.admin-bar) { --dsf-admin-offset: 32px; }
.dsf-header__inner {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--dsf-space-5);
	min-block-size: 4.75rem;
}
.dsf-brand {
	display: inline-flex;
	align-items: center;
	gap: var(--dsf-space-3);
	flex-shrink: 0;
	color: var(--dsf-color-primary);
	font-family: var(--dsf-font-heading);
	font-size: 1.25rem;
	font-weight: 800;
	letter-spacing: -0.035em;
	line-height: 1.2;
	text-decoration: none;
	white-space: nowrap;
}
.dsf-brand:hover { color: var(--dsf-color-primary); }
.dsf-brand__accent { color: var(--dsf-color-accent); }
.dsf-brand__domain { font-weight: 600; }
.dsf-brand__icon { flex-shrink: 0; }
.dsf-nav { margin-inline: auto; font-family: var(--dsf-font-body); }
.dsf-nav ul { list-style: none; padding: 0; margin: 0; }
.dsf-nav__list { display: flex; align-items: stretch; gap: var(--dsf-space-1); }
.dsf-nav__item { position: relative; }
.dsf-nav__item--mega { position: static; }
.dsf-nav__trigger,
.dsf-nav__link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--dsf-space-2);
	min-block-size: 4.75rem;
	padding-inline: var(--dsf-space-2);
	color: var(--dsf-color-primary);
	font-size: var(--dsf-text-small);
	font-weight: 600;
	line-height: 1.5;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	list-style: none;
	transition: color var(--dsf-duration-fast) var(--dsf-ease);
}
.dsf-nav__trigger::-webkit-details-marker { display: none; }
.dsf-nav__trigger svg { flex-shrink: 0; transition: transform var(--dsf-duration-fast) var(--dsf-ease); }
.dsf-nav__disclosure[open] > .dsf-nav__trigger svg { transform: rotate(180deg); }
.dsf-nav__trigger:hover,
.dsf-nav__link:hover,
.dsf-nav__disclosure[open] > .dsf-nav__trigger { color: var(--dsf-color-accent); }
.dsf-nav .is-current > .dsf-nav__link,
.dsf-nav .is-current > details > summary { color: var(--dsf-color-accent); box-shadow: inset 0 -2px var(--dsf-color-accent); }
.dsf-nav__panel {
	position: absolute;
	inset-block-start: 100%;
	inset-inline-start: 0;
	inline-size: max-content;
	min-inline-size: 16rem;
	max-inline-size: min(30rem, 90vw);
	max-block-size: 70vh;
	overflow-y: auto;
	padding: var(--dsf-space-5);
	background: var(--dsf-color-surface);
	border: 1px solid var(--dsf-color-border);
	border-radius: 0 0 var(--dsf-radius-medium) var(--dsf-radius-medium);
	box-shadow: var(--dsf-menu-shadow);
	animation: dsf-navigation-reveal var(--dsf-duration-fast) var(--dsf-ease);
}
.dsf-nav__item--mega .dsf-nav__panel { inset-inline: auto 0; inline-size: min(64rem, 100%); max-inline-size: 100%; }
.dsf-nav__item--mega .dsf-nav__submenu { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: var(--dsf-space-5); }
.dsf-nav__sublink,
.dsf-nav__overview {
	display: flex;
	align-items: center;
	min-block-size: 2.75rem;
	padding: var(--dsf-space-2) var(--dsf-space-3);
	border-radius: var(--dsf-radius-small);
	color: var(--dsf-color-primary);
	font-size: var(--dsf-text-small);
	line-height: 1.5;
	text-decoration: none;
}
.dsf-nav__overview { margin-block-end: var(--dsf-space-3); font-weight: 700; }
.dsf-nav__link:hover,
.dsf-nav__sublink:hover,
.dsf-nav__overview:hover { color: var(--dsf-color-accent); }
.dsf-nav [aria-current="page"] { background: var(--dsf-color-tint); color: var(--dsf-color-accent); }
.dsf-header [aria-disabled="true"] { color: var(--dsf-color-muted); cursor: default; }
.dsf-nav__note { padding: var(--dsf-space-3); color: var(--dsf-color-muted); font-size: var(--dsf-text-small); max-inline-size: 34ch; }
.dsf-header__cta { flex-shrink: 0; font-size: var(--dsf-text-small); }
.dsf-nav__mobile-cta { display: none; }
.dsf-header__cta[aria-disabled="true"] { background: var(--dsf-color-tint); border-color: var(--dsf-color-border); opacity: 1; }
.dsf-header__toggle {
	display: none;
	align-items: center;
	justify-content: center;
	inline-size: 2.75rem;
	block-size: 2.75rem;
	padding: var(--dsf-space-2);
	border: 1px solid var(--dsf-color-border);
	border-radius: var(--dsf-radius-small);
	background: var(--dsf-color-surface);
	color: var(--dsf-color-primary);
}
.dsf-header__toggle:hover { color: var(--dsf-color-accent); }
.dsf-menu-close { display: none; }
.dsf-header__toggle[aria-expanded="true"] .dsf-menu-lines { display: none; }
.dsf-header__toggle[aria-expanded="true"] .dsf-menu-close { display: block; }
@keyframes dsf-navigation-reveal { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); } }

@media (max-width: 79.99rem) {
	.dsf-header__inner { min-block-size: 4.5rem; flex-wrap: wrap; gap: 0 var(--dsf-space-3); padding-block: var(--dsf-space-3); }
	.dsf-brand { margin-inline-end: auto; }
	.dsf-header__toggle:not([hidden]) { display: inline-flex; }
	.dsf-header__cta { order: 3; margin-block: var(--dsf-space-3); }
	.dsf-nav { order: 4; flex-basis: 100%; margin: 0; }
	.dsf-nav__list { flex-direction: column; gap: 0; }
	.dsf-nav__link, .dsf-nav__trigger { min-block-size: 3rem; padding-inline: var(--dsf-space-3); border-radius: var(--dsf-radius-small); }
	.dsf-nav__panel,
	.dsf-nav__item--mega .dsf-nav__panel { position: static; inline-size: 100%; min-inline-size: 0; max-inline-size: none; max-block-size: none; overflow: visible; padding: var(--dsf-space-2) var(--dsf-space-3) var(--dsf-space-4); border: 0; border-block-start: 1px solid var(--dsf-color-border); box-shadow: none; border-radius: 0; }
	.dsf-nav__item--mega .dsf-nav__submenu { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 var(--dsf-space-2); }
	.dsf-header.is-enhanced .dsf-header__inner > .dsf-header__cta { display: none; }
	.dsf-header.is-enhanced .dsf-nav {
		position: absolute;
		inset-inline: calc(-1 * var(--dsf-gutter));
		inset-block-start: 100%;
		padding: var(--dsf-space-3) var(--dsf-gutter) var(--dsf-space-5);
		max-block-size: calc(100vh - var(--dsf-nav-top, 8rem));
		max-block-size: calc(100dvh - var(--dsf-nav-top, 8rem));
		overflow-y: auto;
		overscroll-behavior: contain;
		background: var(--dsf-color-surface);
		border-block-start: 1px solid var(--dsf-color-border);
		box-shadow: var(--dsf-menu-shadow);
	}
	.dsf-nav__mobile-cta { display: inline-flex; margin-block-start: var(--dsf-space-4); inline-size: 100%; }
	/* Without JavaScript the navigation remains in flow, with native disclosures. */
	.dsf-header:not(.is-enhanced) { position: relative; inset-block-start: auto; }
}
@media (max-width: 782px) {
	.admin-bar .dsf-header { inset-block-start: 46px; }
	html:has(body.admin-bar) { --dsf-admin-offset: 46px; }
}
@media (max-width: 600px) {
	.admin-bar .dsf-header { inset-block-start: 0; }
	html:has(body.admin-bar) { --dsf-admin-offset: 0px; }
}
@media (max-width: 30rem) {
	.dsf-brand { font-size: clamp(0.875rem, 3.8vw, 1.125rem); gap: var(--dsf-space-2); letter-spacing: -0.03em; }
	.dsf-brand__icon { inline-size: 1.75rem; block-size: 1.75rem; }
	.dsf-nav__item--mega .dsf-nav__submenu { grid-template-columns: 1fr; }
}
@media print { .dsf-header { display: none; } }
