/* sections/header.php */
:root { --header-offset: 4.75rem; scroll-padding-top: 5rem; }

.hd-header {
	position: fixed; z-index: 100; top: 0; right: 0; left: 0;
	padding: var(--space-3) var(--space-gutter) 0;
	border-bottom: 1px solid transparent;
	font-family: var(--f-body); font-size: var(--fs-base); line-height: 1.3;
	pointer-events: none;
	transition: background-color 0.3s, border-color 0.3s, box-shadow 0.3s, padding 0.3s;
}
.hd-header.is-stuck {
	padding-top: var(--space-2); padding-bottom: var(--space-2);
	border-bottom-color: var(--c-border); background: var(--c-surface); box-shadow: var(--shadow-md);
	pointer-events: auto;
}
.admin-bar .hd-header { top: var(--wp-admin--admin-bar--height, 32px); }
@media (max-width: 600px) { .admin-bar .hd-header.is-stuck { top: 0; } }
.hd-header *, .hd-header *::before, .hd-header *::after { box-sizing: border-box; }
.hd-header { --hd-blue: color-mix(in srgb, var(--c-primary) 8%, var(--c-primary-dark)); }
.hd-icon { flex: none; width: 1.25rem; height: 1.25rem; }

.hd-bar, .hd-nav, .hd-sub {
	--hd-fg: var(--c-heading);
	--hd-fg-hover: var(--c-primary);
	--hd-hover: color-mix(in srgb, var(--c-primary) 8%, transparent);
	--hd-current: var(--c-accent);
	color: var(--hd-fg);
}
.hd-on-dark .hd-bar {
	--hd-fg: var(--c-on-dark);
	--hd-fg-hover: var(--c-on-dark);
	--hd-hover: color-mix(in srgb, var(--c-on-dark) 16%, transparent);
	--hd-current: var(--c-primary-light);
	text-shadow: 0 1px 10px color-mix(in srgb, var(--c-bg-dark) 75%, transparent);
}
.hd-on-dark .hd-nav, .hd-on-dark .hd-sub, .hd-on-dark .hd-call { text-shadow: none; }	.hd-bar {
	position: relative; display: flex; align-items: center; gap: var(--space-3);
	max-width: var(--container); min-height: 4rem; margin: 0 auto;		pointer-events: auto; transition: min-height 0.3s;
}
.hd-logo { display: block; flex: none; margin-right: auto; border-radius: var(--radius-sm); }
.hd-logo-img { display: block; width: auto; height: 3.25rem; transition: height 0.3s; }
.is-stuck .hd-bar { min-height: 3.25rem; }
.is-stuck .hd-logo-img { height: 2.75rem; }
.hd-on-dark .hd-logo-img {
	filter: drop-shadow(0 0 1px var(--c-on-dark)) drop-shadow(0 0 1px var(--c-on-dark)) drop-shadow(0 0 0.5px var(--c-on-dark));
}
.hd-header .hd-logo:focus-visible, .hd-header .hd-link:focus-visible, .hd-header .hd-sub-link:focus-visible,
.hd-header .hd-toggle:focus-visible, .hd-header .hd-call:focus-visible, .hd-header .hd-burger:focus-visible {
	outline: 2px solid var(--hd-fg-hover); outline-offset: 2px;
}

.hd-nav {
	position: absolute; top: calc(100% + var(--space-2)); right: 0; left: 0; display: none;
	max-height: calc(100vh - var(--header-offset) - var(--space-6)); overflow-y: auto;
	padding: var(--space-3); border: 1px solid var(--c-border); border-radius: var(--radius);
	background: var(--c-surface); box-shadow: var(--shadow-lg);
}
.hd-header.is-open .hd-nav { display: block; }
.hd-menu, .hd-sub { margin: 0; padding: 0; list-style: none; }
.hd-item { position: relative; display: flex; flex-wrap: wrap; align-items: center; }
.hd-header .hd-link {
	display: block; flex: 1; padding: var(--space-3); border-radius: var(--radius-sm);
	color: var(--hd-fg); font-weight: 600; text-decoration: none;
	transition: color 0.2s, background-color 0.2s;
}
.hd-header .hd-link:hover, .hd-header .hd-sub-link:hover, .hd-header .hd-toggle:hover, .hd-header .hd-toggle:focus {
	background: var(--hd-hover); color: var(--hd-fg-hover);
}
.hd-header .hd-link[aria-current="page"], .hd-header .hd-link.is-current { color: var(--hd-current); }
.hd-header .hd-toggle {
	display: grid; place-items: center; width: 2.75rem; height: 2.75rem; padding: 0;
	border: 0; border-radius: var(--radius-sm); background: none; color: inherit; cursor: pointer;
}
.hd-toggle .hd-icon { transition: transform 0.2s; }
.hd-toggle[aria-expanded="true"] .hd-icon { transform: rotate(180deg); }
.hd-sub { display: none; flex-basis: 100%; gap: var(--space-1); padding: var(--space-1) 0 var(--space-2) var(--space-3); }
.hd-item.is-open > .hd-sub { display: grid; }
.hd-header .hd-sub-link {
	display: flex; align-items: center; gap: var(--space-2); padding: var(--space-2);
	border-radius: var(--radius-sm); color: var(--c-text);
	font-size: var(--fs-sm); font-weight: 500; text-decoration: none;
	transition: color 0.2s, background-color 0.2s, transform 0.2s;
}
.hd-header .hd-sub-link[aria-current="page"] { color: var(--c-accent); font-weight: 700; }
.hd-sub-icon {
	flex: none; width: 2rem; height: 2rem; padding: 0.25rem;
	border-radius: calc(var(--radius-sm) - 2px); background: var(--c-primary-soft); color: var(--c-primary);
	transition: background-color 0.2s, color 0.2s;
}
.hd-sub-link:hover .hd-sub-icon, .hd-sub-link.is-peek .hd-sub-icon { background: var(--hd-blue); color: var(--c-on-dark); }

.hd-mega { grid-template-columns: minmax(0, 1fr); }
.hd-mega-col { display: grid; gap: var(--space-3); align-content: start; }
.hd-mega-fam { margin: 0 0 var(--space-1); padding: 0 var(--space-2); color: var(--c-text-muted); font-size: var(--fs-xs); font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
.hd-mega-list { display: grid; gap: 2px; margin: 0; padding: 0; list-style: none; }
.hd-header .hd-mega-all { display: inline-flex; align-items: center; gap: var(--space-2); justify-self: start; padding: var(--space-2); color: var(--c-primary); font-size: var(--fs-sm); font-weight: 700; text-decoration: none; }
.hd-header .hd-mega-all:hover { color: var(--c-accent); }
.hd-mega-foot { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-1) var(--space-3); margin: 0; }
.hd-header .hd-mega-extra { padding: var(--space-1) var(--space-3); border: 1px solid var(--c-border); border-radius: var(--radius-pill); background: var(--c-primary-soft); }
.hd-header .hd-mega-extra:hover { border-color: var(--hd-blue); }
.hd-mega-all .hd-icon, .hd-peek-go .hd-icon { width: 1rem; height: 1rem; transition: transform 0.2s; }
.hd-mega-all:hover .hd-icon, .hd-peek:hover .hd-peek-go .hd-icon { transform: translateX(3px); }
.hd-peek, .hd-pro { display: none; }

.hd-header .hd-call {
	display: flex; align-items: center; gap: var(--space-2); padding: var(--space-1);
	border: 1px solid color-mix(in srgb, var(--c-accent) 30%, transparent); border-radius: var(--radius-pill);
	background: var(--c-surface); color: var(--c-heading); text-decoration: none;
	transition: border-color 0.2s, box-shadow 0.2s;
}
.hd-header .hd-call:hover { border-color: var(--c-accent); box-shadow: var(--shadow-md); color: var(--c-heading); }
.hd-call-icon {
	position: relative; display: grid; place-items: center; flex: none; width: 2.5rem; height: 2.5rem;
	border-radius: 50%; background: var(--c-accent); color: var(--c-on-accent);
}
.hd-call-icon::after {
	content: ""; position: absolute; inset: 0; border: 2px solid var(--c-accent); border-radius: 50%;
	animation: hd-pulse 2s ease-out infinite;
}
@keyframes hd-pulse {
	from { transform: scale(1); opacity: 0.7; }
	to { transform: scale(1.55); opacity: 0; }
}
.hd-call-text { display: none; }
.hd-call-label { display: block; color: var(--c-accent); font-size: var(--fs-xs); font-weight: 700; }
.hd-call-number { display: block; font-size: var(--fs-sm); font-weight: 800; white-space: nowrap; }

.hd-header .hd-burger {
	display: grid; place-items: center; flex: none; width: 2.75rem; height: 2.75rem; padding: 0;
	border: 1px solid var(--c-border); border-radius: 50%;
	background: var(--c-surface); color: var(--c-heading); cursor: pointer;
}
.hd-on-dark .hd-burger {
	border-color: color-mix(in srgb, var(--c-on-dark) 40%, transparent);
	background: transparent; color: var(--c-on-dark);
}
.hd-header .hd-burger:hover, .hd-header .hd-burger:focus { border-color: var(--c-primary); background: var(--c-surface); color: var(--c-primary); }
.hd-icon--close, .hd-header.is-open .hd-icon--open { display: none; }
.hd-header.is-open .hd-icon--close { display: block; }

@media (min-width: 480px) {
	.hd-header .hd-call { padding-right: var(--space-4); }
	.hd-call-text { display: block; }
	.hd-sub, .hd-mega-list { grid-template-columns: 1fr 1fr; }
	.hd-mega { grid-template-columns: minmax(0, 1fr); }
}
@media (min-width: 1024px) {
	:root { --header-offset: 5.75rem; }
	.hd-header { padding-top: var(--space-4); }
	.hd-bar { gap: var(--space-5); min-height: 4.75rem; }
	.hd-logo { margin-right: 0; }
	.hd-logo-img { height: 4.25rem; }
	.hd-header.is-stuck { padding-top: var(--space-2); }
	.is-stuck .hd-bar { min-height: 3.5rem; }
	.is-stuck .hd-logo-img { height: 3.25rem; }
	.hd-header .hd-burger { display: none; }
	.hd-nav {
		position: static; display: block; flex: 1; max-height: none; overflow: visible;
		padding: 0; border: 0; background: none; box-shadow: none;
	}
	.hd-on-dark .hd-nav {
		--hd-fg: var(--c-on-dark);
		--hd-fg-hover: var(--c-on-dark);
		--hd-hover: color-mix(in srgb, var(--c-on-dark) 16%, transparent);
		--hd-current: var(--c-primary-light);
		text-shadow: 0 1px 10px color-mix(in srgb, var(--c-bg-dark) 75%, transparent);
	}
	.hd-menu { display: flex; justify-content: center; gap: var(--space-1); }
	.hd-item { flex-wrap: nowrap; }
	.hd-header .hd-link { flex: none; padding: var(--space-2) var(--space-3); }
	.hd-header .hd-item--sub > .hd-link { padding-right: var(--space-1); }
	.hd-header .hd-toggle { width: 1.75rem; height: 2.25rem; }
	.hd-sub {
		position: absolute; top: 100%; left: 50%; width: max-content; max-width: min(46rem, 90vw);
		grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: var(--space-3); padding: var(--space-3);
		border: 1px solid var(--c-border); border-radius: var(--radius);
		background: var(--c-surface); box-shadow: var(--shadow-lg);
		transform: translateX(-50%);
	}
	.hd-sub::before { content: ""; position: absolute; right: 0; bottom: 100%; left: 0; height: var(--space-4); }
	.hd-item--sub:hover > .hd-sub { display: grid; }
	.hd-item--sub:hover > .hd-toggle .hd-icon { transform: rotate(180deg); }

	.hd-item--mega { position: static; }
	.hd-mega {
		display: grid; visibility: hidden; width: min(58rem, 100%); max-width: none; margin-top: var(--space-2); padding: var(--space-5);
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 17rem; grid-template-areas: "a b p" "a b q" "f f q"; grid-template-rows: auto 1fr auto; gap: var(--space-2) var(--space-5);
		border-radius: var(--radius-lg); opacity: 0; transform: translate(-50%, 0.75rem);
		transition: opacity 0.25s, transform 0.25s, visibility 0s linear 0.25s;
	}
	.hd-mega::before { height: 2.25rem; }
	.hd-item--sub:hover > .hd-mega, .hd-item.is-open > .hd-mega { visibility: visible; opacity: 1; transform: translate(-50%, 0); transition-delay: 0s; }
	.hd-mega-col { grid-area: a; }
	.hd-mega-col + .hd-mega-col { grid-area: b; }
	.hd-mega-list { grid-template-columns: minmax(0, 1fr); }
	.hd-mega-list > li { opacity: 0; transform: translateY(0.375rem); transition: opacity 0.3s, transform 0.3s; transition-delay: calc(var(--i) * 25ms); }
	.hd-item--sub:hover .hd-mega-list > li, .hd-item.is-open .hd-mega-list > li { opacity: 1; transform: none; }
	.hd-header .hd-sub-link:hover, .hd-header .hd-sub-link.is-peek { transform: translateX(2px); }
	.hd-mega-foot { grid-area: f; align-self: end; }
	.hd-header .hd-peek {
		grid-area: p; display: flex; flex-direction: column; overflow: hidden;
		border-radius: var(--radius); background: var(--hd-blue); color: var(--c-on-dark); text-decoration: none;
	}
	.hd-peek-pic { aspect-ratio: 16 / 9; overflow: hidden; background: color-mix(in srgb, var(--c-on-dark) 8%, transparent); }
	.hd-peek-pic img { display: block; width: 100%; height: 100%; object-fit: cover; transition: opacity 0.3s, transform 0.6s; }
	.hd-peek-pic img:not([src]), .hd-peek.is-swap img { opacity: 0; transform: scale(1.04); }
	.hd-peek-body { display: grid; gap: var(--space-2); padding: var(--space-4); }
	.hd-peek-name { font: 800 var(--fs-lg)/1.2 var(--f-heading); }
	.hd-peek-text { color: color-mix(in srgb, var(--c-on-dark) 75%, transparent); font-size: var(--fs-sm); line-height: 1.5; }
	.hd-peek-go { display: inline-flex; align-items: center; gap: var(--space-2); margin-top: var(--space-1); font-size: var(--fs-sm); font-weight: 700; }
	/* Professionals window, under the preview card; it replaces the pill of the bottom row. */
	.hd-header .hd-pro {
		grid-area: q; align-self: end; display: grid; grid-template-columns: 5.5rem minmax(0, 1fr); align-items: center; gap: var(--space-3);
		margin-top: var(--space-2); padding: var(--space-2); border: 1px solid var(--c-border); border-radius: var(--radius);
		background: var(--c-bg-alt); color: var(--c-heading); text-decoration: none; transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;
	}
	.hd-header .hd-pro:hover, .hd-header .hd-pro:focus-visible { border-color: var(--hd-blue); box-shadow: var(--shadow-sm); transform: translateY(-2px); }
	.hd-pro-pic { aspect-ratio: 1; overflow: hidden; border-radius: calc(var(--radius) - 4px); }
	.hd-pro-pic img { display: block; width: 100%; height: 100%; object-fit: cover; }
	.hd-pro-body { display: grid; gap: 2px; }
	.hd-pro-kicker { color: var(--c-text-muted); font-size: var(--fs-xs); font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
	.hd-pro-name { font: 800 var(--fs-sm)/1.25 var(--f-heading); }
	.hd-pro-go { display: inline-flex; align-items: center; gap: var(--space-1); color: var(--c-primary); font-size: var(--fs-xs); font-weight: 700; }
	.hd-pro-go .hd-icon { width: 0.875rem; height: 0.875rem; transition: transform 0.2s; }
	.hd-pro:hover .hd-pro-go { color: var(--c-accent); }
	.hd-pro:hover .hd-pro-go .hd-icon { transform: translateX(3px); }
	.hd-mega:has(.hd-pro) .hd-mega-extra { display: none; }
}
@media (prefers-reduced-motion: reduce) {
	.hd-header * { transition: none !important; }
	.hd-call-icon::after { animation: none; }
}
