/*
 * Header — sticky slim bar. Three tiers: utility (navy, contact/locations),
 * main (white, logo + nav + utility actions), announcement (orange promo).
 * Behaviors (sticky shadow, mobile drawer, search) live in assets/js/fdmrv.js.
 */

/* Sticky lives on the WP template-part wrapper (its containing block is
   wp-site-blocks, which spans the full page). Putting it on .fd-header itself
   fails because the wrapper is only header-height tall — no scroll room. */
.wp-block-template-part:has(> .fd-header) {
	position: sticky;
	top: 0;
	z-index: var(--z-header);
}
.fd-header { position: relative; }
.fd-header > * + * { margin-block-start: 0 !important; }
.wp-block-template-part:has(> .fd-header) + * { margin-block-start: 0 !important; }

/* Utility bar — top navy strip: phone, locations, financing shortcut.
   Collapses smoothly into the slim main bar on scroll. */
.fd-utility {
	background: var(--fd-navy-900);
	color: var(--fd-steel-300);
	font-size: var(--wp--preset--font-size--sm);
	height: var(--fd-utility-h);
	overflow: hidden;
	transition: height 300ms ease, opacity 250ms ease;
}
.fd-header[data-stuck="true"] .fd-utility {
	height: 0;
	opacity: 0;
	pointer-events: none;
}
.fd-utility__inner {
	min-height: var(--fd-utility-h);
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 1.25rem;
}
.fd-utility a { color: var(--fd-mist); text-decoration: none; }
.fd-utility a:hover { color: var(--fd-orange-400); }

/* Main bar. */
.fd-main-header {
	position: relative;
	background: var(--fd-white);
	border-bottom: 2px solid var(--fd-orange-500);
	transition: box-shadow var(--fd-transition);
}
/* Mobile-nav template-part wrapper — children are position:fixed, collapse the
   wrapper so it doesn't render as an extra white strip below the navbar. */
.fd-header .wp-block-template-part:has(.fd-mobile-nav) { height: 0; }
.fd-header[data-stuck="true"] .fd-main-header { box-shadow: var(--wp--preset--shadow--md); }
.fd-main-header__inner {
	min-height: var(--fd-main-h);
	display: flex;
	align-items: center;
	gap: 1.25rem;
	padding-left: max(2rem, calc(11rem - max(0px, (100vw - 1600px) / 2)));
	transition: min-height var(--fd-transition);
}
.fd-header[data-stuck="true"] .fd-main-header__inner { min-height: 48px; }
/* Oversized brand badge — anchored top-left, overlapping the navy utility bar
   (its left third sits over the utility strip, which is empty on that side). */
.fd-logo {
	position: absolute;
	left: clamp(0.5rem, 1.5vw, 1.5rem);
	top: -55px;
	z-index: 60;
	margin: 0;
	display: inline-flex;
	align-items: center;
	transition: top 300ms ease, transform 300ms ease;
	transform-origin: left center;
}
.fd-logo img, .fd-logo svg { height: clamp(96px, 9vw, 132px) !important; width: auto !important; }
.fd-header[data-stuck="true"] .fd-logo {
	top: 50%;
	transform: translateY(-50%) scale(0.4);
}
.fd-header__actions { margin-left: auto; }
/* When the brand is a wp:site-title (scaffold default until a Site Logo is uploaded). */
.fd-logo a {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 700;
	font-size: var(--wp--preset--font-size--xl);
	text-transform: uppercase;
	letter-spacing: 0.02em;
	color: var(--fd-navy-900);
	text-decoration: none;
}
.fd-logo a:hover { color: var(--fd-orange-700); }

/* Primary nav. Direct anchors (fallback) and the WP-menu ul share the layout. */
.fd-nav { display: flex; align-items: center; gap: 1.5rem; }
.fd-nav__list { display: flex; align-items: center; gap: 1.5rem; margin: 0; padding: 0; list-style: none; }
.fd-nav__list li { margin: 0; }
.fd-nav a {
	position: relative;
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--base);
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: var(--fd-navy-800);
	text-decoration: none;
	padding-block: 0.5rem;
}
.fd-nav a::after {
	content: "";
	position: absolute; left: 0; bottom: 0;
	width: 0; height: 3px;
	background: var(--fd-orange-500);
	transition: width var(--fd-transition);
}
.fd-nav a:hover::after, .fd-nav a[aria-current]::after { width: 100%; }

/* ── Mega-menu — Boats / RVs pillars express the two-pillar split ──── */
.fd-nav__item--mega { position: relative; }
.fd-nav__item--mega > a { display: inline-flex; align-items: center; gap: 0.35rem; }
.fd-nav__caret { transition: transform var(--fd-transition); }
.fd-nav__item--mega:hover .fd-nav__caret,
.fd-nav__item--mega[data-open="true"] .fd-nav__caret { transform: rotate(180deg); }

.fd-megamenu {
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 5;
	padding-top: 0.6rem;                 /* transparent hover-bridge to the panel */
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity var(--fd-transition), transform var(--fd-transition), visibility var(--fd-transition);
	pointer-events: none;
}
.fd-nav__item--mega:hover > .fd-megamenu,
.fd-nav__item--mega[data-open="true"] > .fd-megamenu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
	pointer-events: auto;
}
.fd-megamenu__inner {
	display: grid;
	grid-template-columns: 1fr 1.5fr;
	gap: 1.25rem 2.5rem;
	min-width: 30rem;
	padding: 1.5rem 1.75rem;
	background: var(--fd-white);
	border: 1px solid var(--fd-line);
	border-radius: var(--fd-r-lg);
	box-shadow: var(--wp--preset--shadow--xl);
}
.fd-megamenu__head {
	margin: 0 0 0.75rem;
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--xs);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--fd-ink-500);
}
.fd-megamenu ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.55rem; }
.fd-megamenu__col--types ul { grid-template-columns: 1fr 1fr; gap: 0.55rem 1.5rem; }
.fd-megamenu a {
	position: static;
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 500;
	text-transform: none;
	letter-spacing: 0;
	color: var(--fd-navy-800);
	text-decoration: none;
	padding-block: 0;
}
.fd-megamenu a::after { content: none; }   /* no nav underline inside the panel */
.fd-megamenu a:hover { color: var(--fd-orange-700); }
.fd-megamenu__foot { grid-column: 1 / -1; margin-top: 0.25rem; padding-top: 1rem; border-top: 1px solid var(--fd-line); }
.fd-megamenu__cta {
	display: inline-flex; align-items: center; gap: 0.4rem;
	font-family: var(--wp--preset--font-family--display) !important;
	text-transform: uppercase; letter-spacing: 0.05em; font-weight: 600;
	font-size: var(--wp--preset--font-size--sm);
	color: var(--fd-navy-900);
}
.fd-megamenu__cta svg { color: var(--fd-orange-500); transition: transform var(--fd-transition); }
.fd-megamenu__cta:hover { color: var(--fd-navy-900); }
.fd-megamenu__cta:hover svg { transform: translateX(3px); }

.fd-header__actions { display: flex; align-items: center; gap: 0.75rem; }

/* Compact search in the main header bar. */
.fd-header-search {
	display: flex;
	align-items: center;
	background: var(--fd-paper);
	border: 1px solid var(--fd-line);
	border-radius: var(--fd-r-pill);
	padding: 0.2rem 0.2rem 0.2rem 0.75rem;
	transition: border-color var(--fd-transition), box-shadow var(--fd-transition);
}
.fd-header-search:focus-within {
	border-color: var(--fd-orange-500);
	box-shadow: 0 0 0 3px rgba(238,138,46,0.15);
}
.fd-header-search input {
	border: 0;
	background: transparent;
	font: inherit;
	font-size: var(--wp--preset--font-size--sm);
	color: var(--fd-ink-700);
	width: 11rem;
	padding: 0.25rem 0;
	outline: none;
}
.fd-header-search input::placeholder { color: var(--fd-ink-500); }
.fd-header-search button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 30px; height: 30px;
	border: 0;
	border-radius: 50%;
	background: var(--fd-navy-800);
	color: var(--fd-white);
	cursor: pointer;
	flex: none;
	transition: background var(--fd-transition);
}
.fd-header-search button:hover { background: var(--fd-orange-500); }

/* Announcement bar — a slim navy cap with an orange brand hairline + orange CTA.
   Collapses with the utility bar on scroll for a sleek sticky header. */
.fd-announce {
	background: var(--fd-navy-800);
	color: var(--fd-mist);
	text-align: center;
	font-weight: 500;
	border-top: 3px solid var(--fd-orange-500);
	overflow: hidden;
	max-height: calc(var(--fd-announce-h) + 3px);
	transition: max-height 300ms ease, opacity 250ms ease, border-top-width 250ms ease;
}
.fd-header[data-stuck="true"] .fd-announce {
	max-height: 0;
	opacity: 0;
	border-top-width: 0;
	pointer-events: none;
}
.fd-announce__inner {
	min-height: var(--fd-announce-h);
	display: flex; align-items: center; justify-content: center; gap: 0.6rem;
	font-size: var(--wp--preset--font-size--sm);
}
.fd-announce a { color: var(--fd-orange-400); font-weight: 600; text-decoration: none; }
.fd-announce a:hover { color: var(--fd-orange-300); text-decoration: underline; }
.fd-announce__dismiss { margin-left: 0.5rem; background: none; border: 0; color: var(--fd-steel-300); cursor: pointer; opacity: 0.85; }
.fd-announce__dismiss:hover { color: var(--fd-white); opacity: 1; }

.fd-hamburger { display: none; }

/* Mobile: no utility bar to overlap, so center the badge in the main bar. */
@media (max-width: 768px) {
	.fd-logo { top: 50%; transform: translateY(-50%); left: 0.75rem; }
	.fd-logo img, .fd-logo svg { height: 44px !important; }
	.fd-header[data-stuck="true"] .fd-logo { transform: translateY(-50%) scale(0.85); }
	.fd-main-header__inner { padding-left: 3.5rem; }
	.fd-header-search { display: none; }
}
