/* Header: sticky + translucent. Not expressible via theme.json/block settings
   (position:sticky + backdrop-filter). Tokens still come from theme.json.
   The blur lives on a ::before pseudo, NOT the header element: backdrop-filter
   creates a containing block for position:fixed descendants, which otherwise
   traps the mobile nav overlay inside the header bounds instead of the viewport. */
:is(.buzz-nav, .buzz-nav-v2).has-background {
	position: sticky;
	top: 0;
	z-index: 50;
	background-color: transparent;
}
:is(.buzz-nav, .buzz-nav-v2).has-background::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	/* Translucent paper so content blurs through on scroll. */
	background-color: color-mix(in srgb, var(--wp--preset--color--header-surface) 86%, transparent);
	-webkit-backdrop-filter: saturate(140%) blur(8px);
	backdrop-filter: saturate(140%) blur(8px);
}

/* Nav links: ink at rest, clay on hover/current (design spec). */
:is(.buzz-nav, .buzz-nav-v2) .wp-block-navigation a:hover,
:is(.buzz-nav, .buzz-nav-v2) .wp-block-navigation .current-menu-item > a {
	color: var(--wp--preset--color--clay);
}

/* Sub-navigation dropdown (DESKTOP only): match the site's card surface —
   rounded, soft shadow, hairline border — all from tokens so it flips in dark
   mode. Scoped to the inline desktop nav so it doesn't turn the mobile
   overlay's inline submenus into floating cards. */
@media (min-width: 1200px) {
	:is(.buzz-nav, .buzz-nav-v2) .wp-block-navigation .has-child .wp-block-navigation__submenu-container {
		background-color: var(--wp--preset--color--card);
		color: var(--wp--preset--color--ink);
		border: 1px solid var(--wp--preset--color--line);
		border-radius: 12px; /* matches card radius (subscribe/biz cards) */
		box-shadow: var(--wp--preset--shadow--lg);
	}
}

/* === Mobile header + overlay ===
   Selectors here mirror WordPress core's own overlay selector depth and are
   scoped under :is(.buzz-nav, .buzz-nav-v2), so they out-specify core's defaults on their own —
   no !important. (Core keeps its overlay rules low with :where(), but several
   still land at 4 classes; ours sit one class above them.) */

/* The full menu needs more room than core's 600px breakpoint allows.
   Core navigation has no custom breakpoint block setting, so keep this
   responsive exception beside the header. The row itself uses native wide,
   no-wrap, center-aligned block settings. */
@media (max-width: 1199px) {
	:is(.buzz-nav, .buzz-nav-v2) > :is(.buzz-nav-row, .buzz-nav-v2-row) {
		padding-block: var(--wp--preset--spacing--50);
	}
	:is(.buzz-nav, .buzz-nav-v2) .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex;
	}
	:is(.buzz-nav, .buzz-nav-v2) .wp-block-navigation__responsive-container:not(.is-menu-open):not(.hidden-by-default) {
		display: none;
	}
	/* Leave room for the menu toggle on narrow phones without changing
	   the logo's saved desktop width. */
	:is(.buzz-nav, .buzz-nav-v2) .wp-block-site-logo img {
		max-width: min(100%, 50vw);
	}
}

/* Keep the header above page content; raise the logo above the open overlay
   (but below the close button at 100002) so it stays visible when open. */
:is(.buzz-nav, .buzz-nav-v2).has-background {
	z-index: 100001; /* sticky header above page content */
}
:is(.buzz-nav, .buzz-nav-v2) .wp-block-site-logo {
	position: relative;
	z-index: 100001;
}
/* Overlay surface: theme-aware paper/ink. Core forces white/black via
   .wp-block-navigation:not(.has-background|has-text-color) ...is-menu-open
   (0,4,0); mirroring that path under :is(.buzz-nav, .buzz-nav-v2) lands at (0,5,0) and wins. */
:is(.buzz-nav, .buzz-nav-v2) .wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open {
	background-color: var(--wp--preset--color--paper);
}
:is(.buzz-nav, .buzz-nav-v2) .wp-block-navigation:not(.has-text-color) .wp-block-navigation__responsive-container.is-menu-open {
	color: var(--wp--preset--color--ink);
}

/* Close (X) sits exactly where the hamburger does: the header's vertical
   padding (+4px to optically center the 24px icon in the ~32px logo row) and the
   root-padding inset on the right. Keeps the toggle from jumping between states. */
:is(.buzz-nav, .buzz-nav-v2) .wp-block-navigation__responsive-container-close {
	position: fixed;
	top: calc(var(--wp--preset--spacing--50) + 4px);
	/* the hamburger's right edge sits at root padding (spacing--50) + the nav's
	   own inset (spacing--40) from the viewport edge — match it exactly so the
	   icon doesn't shift left when the menu opens. */
	right: calc(var(--wp--preset--spacing--50) + var(--wp--preset--spacing--40));
	z-index: 100002;
	color: var(--wp--preset--color--ink);
}
/* The admin bar pushes the sticky header (and hamburger) down 46px on mobile;
   match it so the X still lands on the hamburger when logged in. */
.admin-bar :is(.buzz-nav, .buzz-nav-v2) .wp-block-navigation__responsive-container-close {
	top: calc(var(--wp--preset--spacing--50) + 4px + var(--wp-admin--admin-bar--height, 46px));
}

/* Open menu = one even, full-width list. Clear the sticky header first, then
   uniform tappable rows (all spacing on the anchor) each closed by a full-width
   hairline, so parents and children share a single rhythm. Every selector below
   mirrors core's overlay path (responsive-container.is-menu-open > ...-content >
   ...) under :is(.buzz-nav, .buzz-nav-v2), sitting one class above core's (0,4,0) rules — so they
   win on specificity, no !important. */
:is(.buzz-nav, .buzz-nav-v2) .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) .wp-block-navigation__responsive-container-content {
	align-items: stretch;
	/* clear the ~81px sticky header (logo) before row 1 (+admin bar below) */
	padding-block-start: var(--wp--preset--spacing--80);
	padding-inline: var(--wp--preset--spacing--50);
}
.admin-bar :is(.buzz-nav, .buzz-nav-v2) .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) .wp-block-navigation__responsive-container-content {
	padding-block-start: calc(var(--wp--preset--spacing--80) + var(--wp-admin--admin-bar--height, 46px));
}
/* No inter-item gap at any level — rows are separated by padding + the divider. */
:is(.buzz-nav, .buzz-nav-v2) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container,
:is(.buzz-nav, .buzz-nav-v2) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container {
	gap: 0;
}
/* Full-width, left-aligned rows (override the desktop nav's right-justify leak). */
:is(.buzz-nav, .buzz-nav-v2) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item {
	width: 100%;
	align-items: stretch;
	justify-content: flex-start;
	text-align: left;
}
/* Submenu sits flush under its parent — drop core's leading pad + fixed width. */
:is(.buzz-nav, .buzz-nav-v2) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container {
	padding: 0;
	margin: 0;
	width: 100%;
	min-width: 0;
}
/* Every row is exactly 100% of the container (border-box so padding stays
   inside that width) with the same vertical padding (~46px, tappable) and a
   full-width hairline. Horizontal padding is zeroed so the divider spans edge to
   edge identically for every row — sub-rows get their indent from left padding
   alone (below), which lives inside the 100% width and never widens the row. */
:is(.buzz-nav, .buzz-nav-v2) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content {
	box-sizing: border-box;
	display: block;
	width: 100%;
	padding-block: var(--wp--preset--spacing--30);
	padding-inline: 0;
	font-size: var(--wp--preset--font-size--medium);
	border-block-end: 1px solid var(--wp--preset--color--line);
}
/* Sub-items: indent the text with left padding only — the row/divider stay full
   width because the box is border-box. */
:is(.buzz-nav, .buzz-nav-v2) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding-inline-start: var(--wp--preset--spacing--40);
}

/* Keep the eight-item desktop menu on one line at laptop widths. */
@media (min-width: 1200px) {
	:is(.buzz-nav, .buzz-nav-v2) .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
		padding-inline: 8px;
		white-space: nowrap;
	}
	:is(.buzz-nav, .buzz-nav-v2) .wp-block-navigation .wp-block-buttons {
		flex-shrink: 0;
	}
	:is(.buzz-nav, .buzz-nav-v2) .wp-block-navigation .wp-block-button__link {
		white-space: nowrap;
	}
}


:root :is(.buzz-nav, .buzz-nav-v2) { --buzz-nav-color:var(--wp--preset--color--ink); --buzz-nav-hover-color:var(--wp--preset--color--navigation-hover,var(--wp--preset--color--action)); --buzz-nav-active-color:var(--buzz-nav-hover-color); --buzz-nav-drawer-surface:var(--wp--preset--color--drawer-surface,var(--wp--preset--color--paper)); }
/* Approved navigation refresh, 2026-10-12.
 * Native Group / Navigation / Link / Button blocks carry content, typography,
 * colors, spacing and layout. Scoped exceptions below implement disclosure
 * state, responsive drawer geometry and target sizes not exposed by FSE.
 */
:root :is(.buzz-nav, .buzz-nav-v2) .buzz-lockup { flex:0 0 auto; z-index:auto; }
:root :is(.buzz-nav, .buzz-nav-v2) .buzz-brand-logo { margin:0; }
:root :is(.buzz-nav, .buzz-nav-v2) .buzz-brand-logo img { width:280px;max-width:100%;height:auto;display:block; }
:root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav { width:100%;margin:0; }
:root :is(.buzz-nav, .buzz-nav-v2) .buzz-drawer-logo,
:root :is(.buzz-nav, .buzz-nav-v2) .buzz-mobile-cta { display:none; }
:root :is(.buzz-nav, .buzz-nav-v2) .wp-block-navigation-item__content { text-decoration:none; }
:root :is(.buzz-nav, .buzz-nav-v2) a:focus-visible,
:root :is(.buzz-nav, .buzz-nav-v2) button:focus-visible { outline:3px solid var(--wp--preset--color--ink);outline-offset:3px;border-radius:6px; }
:root :is(.buzz-nav, .buzz-nav-v2) .wp-block-navigation-item__content[aria-current="page"] { text-decoration:underline;text-underline-offset:6px; }
:root :is(.buzz-nav, .buzz-nav-v2) .buzz-nav-heading > .wp-block-navigation-item__content { font-size:var(--wp--preset--font-size--small);font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--wp--preset--color--ink-2);pointer-events:none; }
:root :is(.buzz-nav, .buzz-nav-v2) .buzz-panel > button[aria-expanded="true"] { background:var(--wp--preset--color--card);border-radius:6px; }
@media(min-width:1200px){
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-masthead { min-height:92px;box-sizing:border-box; }
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav > .wp-block-navigation__responsive-container-open { display:none; }
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav .wp-block-navigation__container { justify-content:flex-start;gap:var(--wp--preset--spacing--40);width:100%; }
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content { padding:var(--wp--preset--spacing--40) 0;min-height:52px;box-sizing:border-box;white-space:nowrap; }
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-panel > button { gap:var(--wp--preset--spacing--20);font-weight:600; }
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-panel > .wp-block-navigation__submenu-container { top:100%;left:0;right:auto;width:310px;min-width:310px;padding:var(--wp--preset--spacing--50);gap:0;border:1px solid var(--wp--preset--color--line);border-radius:12px;box-shadow:var(--wp--preset--shadow--lg);background:var(--wp--preset--color--card);color:var(--wp--preset--color--ink); }
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-panel-wide > .wp-block-navigation__submenu-container { width:680px;min-width:680px;grid-template-columns:1fr 1fr;column-gap:var(--wp--preset--spacing--60); }
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-panel > button[aria-expanded="false"] ~ .wp-block-navigation__submenu-container { display:none; }
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-panel > button[aria-expanded="true"] ~ .wp-block-navigation__submenu-container { display:grid;visibility:visible;opacity:1;height:auto;overflow:visible; }

 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-panel .wp-block-navigation-item { width:100%; }
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-panel .wp-block-navigation-item__content { width:100%;box-sizing:border-box;padding:var(--wp--preset--spacing--30) 0;min-height:44px;line-height:1.45;font-size:var(--wp--preset--font-size--medium);font-weight:400;white-space:normal; }
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-panel .buzz-nav-heading > .wp-block-navigation-item__content { font-size:var(--wp--preset--font-size--small);font-weight:700;min-height:36px; }
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-panel .buzz-col-1 { grid-column:1; }
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-panel .buzz-col-2 { grid-column:2; }
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-panel .buzz-row-1 { grid-row:1; }
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-panel .buzz-row-2 { grid-row:2; }
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-panel .buzz-row-3 { grid-row:3; }
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-panel .buzz-row-4 { grid-row:4; }
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-panel .buzz-row-5 { grid-row:5; }
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-panel .buzz-row-6 { grid-row:6; }
}
@media(max-width:1199px){
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-desktop-cta { display:none; }
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-masthead { padding-block:var(--wp--preset--spacing--40)!important;min-height:80px;padding-inline-end:72px;box-sizing:border-box; }
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-lockup .buzz-brand-logo img { width:240px;max-width:min(240px,calc(100vw - 124px)); }
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-navigation-row { border:0;margin:0; }
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav > .wp-block-navigation__responsive-container-open { display:flex;position:absolute;right:var(--wp--preset--spacing--50);top:var(--wp--preset--spacing--40);align-items:center;gap:var(--wp--preset--spacing--20);min-width:44px;min-height:44px;padding:var(--wp--preset--spacing--20); }
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav > .wp-block-navigation__responsive-container-open::before { content:'Menu';font-size:var(--wp--preset--font-size--small); }
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav .wp-block-navigation__responsive-container:not(.is-menu-open) { display:none; }
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav .wp-block-navigation__responsive-container.is-menu-open { position:fixed;inset:0;box-sizing:border-box;width:100%;height:100dvh;padding:0;overflow:hidden;background:var(--wp--preset--color--card);color:var(--wp--preset--color--ink); }
 :root :is(.buzz-nav, .buzz-nav-v2):has(.is-menu-open) .buzz-masthead { visibility:hidden; }
 :root :is(.buzz-nav, .buzz-nav-v2) .is-menu-open .wp-block-navigation__responsive-close { width:100%;max-width:none;height:100%; }
 :root :is(.buzz-nav, .buzz-nav-v2) .is-menu-open .wp-block-navigation__responsive-dialog { margin:0;height:100%; }
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav .wp-block-navigation__responsive-container-close { top:var(--wp--preset--spacing--40);right:var(--wp--preset--spacing--40);padding:var(--wp--preset--spacing--20);min-width:44px;min-height:44px;display:flex;align-items:center;gap:var(--wp--preset--spacing--20); }
 :root :is(.buzz-nav, .buzz-nav-v2) .wp-block-navigation__responsive-container-close::before { content:'Close';font-size:var(--wp--preset--font-size--small); }
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) .wp-block-navigation__responsive-container-content { height:100%;box-sizing:border-box;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;padding:0; }
 :root :is(.buzz-nav, .buzz-nav-v2) .is-menu-open .buzz-drawer-logo { display:block;flex:0 0 80px;box-sizing:border-box;width:100%;margin:0;padding:var(--wp--preset--spacing--50);padding-inline-end:108px;background:var(--wp--preset--color--header-surface); }
 :root :is(.buzz-nav, .buzz-nav-v2) .is-menu-open .buzz-drawer-logo img { width:240px;max-width:100%;height:auto; }
 :root :is(.buzz-nav, .buzz-nav-v2) .is-menu-open .buzz-drawer-logo .wp-block-site-logo { z-index:auto; }
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav .is-menu-open .wp-block-navigation__responsive-container-content > .wp-block-navigation__container { flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;display:block;width:100%;box-sizing:border-box;padding:var(--wp--preset--spacing--40) var(--wp--preset--spacing--50);margin:0; }
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item { display:block;width:100%;border-bottom:1px solid var(--wp--preset--color--line); }
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content { display:flex;align-items:center;justify-content:space-between;gap:var(--wp--preset--spacing--40);width:100%;min-height:52px;box-sizing:border-box;border:0;padding:var(--wp--preset--spacing--30) 0;font-size:var(--wp--preset--font-size--medium);font-weight:600;text-align:left; }
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav .is-menu-open .buzz-panel .wp-block-navigation__submenu-icon { display:block;flex:0 0 12px; }
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav .is-menu-open .buzz-panel > .wp-block-navigation__submenu-container { display:none;position:static;width:100%;min-width:0;box-sizing:border-box;padding:0 0 var(--wp--preset--spacing--40) var(--wp--preset--spacing--40);margin:0;background:transparent;border:0;box-shadow:none; }
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav .is-menu-open .buzz-panel > button[aria-expanded="true"] ~ .wp-block-navigation__submenu-container { display:block;visibility:visible;opacity:1;height:auto;overflow:visible; }
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav .is-menu-open .buzz-panel .wp-block-navigation-item__content { display:flex;align-items:center;box-sizing:border-box;min-height:44px;padding:var(--wp--preset--spacing--30) 0;width:100%;border:0;font-size:var(--wp--preset--font-size--medium);font-weight:400; }
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav .is-menu-open .buzz-panel .buzz-nav-heading > .wp-block-navigation-item__content { font-size:var(--wp--preset--font-size--small);font-weight:700;padding-top:var(--wp--preset--spacing--40); }
 :root :is(.buzz-nav, .buzz-nav-v2) .is-menu-open .buzz-mobile-cta { display:flex;flex:0 0 auto;box-sizing:border-box;width:100%;margin:0;padding:var(--wp--preset--spacing--40) var(--wp--preset--spacing--50);padding-bottom:max(var(--wp--preset--spacing--40),env(safe-area-inset-bottom));border-top:1px solid var(--wp--preset--color--line);background:var(--wp--preset--color--card); }
 :root :is(.buzz-nav, .buzz-nav-v2) .is-menu-open .buzz-mobile-cta > .wp-block-button { width:100%; }
 :root :is(.buzz-nav, .buzz-nav-v2) .is-menu-open .buzz-mobile-cta .wp-block-button__link { display:block;width:100%;box-sizing:border-box;min-height:48px;text-align:center; }
 .admin-bar :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav .wp-block-navigation__responsive-container.is-menu-open { top:var(--wp-admin--admin-bar--height,32px);height:calc(100dvh - var(--wp-admin--admin-bar--height,32px)); }
 .admin-bar :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav .wp-block-navigation__responsive-container-close { top:calc(var(--wp--preset--spacing--40) + var(--wp-admin--admin-bar--height,32px)); }
}
/* Core applies important zero-width disclosure rules; explicit open panel
   dimensions must override them. Labels reserve room for native icon sibling. */
@media(min-width:1200px){
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav li.buzz-panel > .wp-block-navigation__submenu-container { width:310px!important;min-width:310px!important;max-width:calc(100vw - 64px); }
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav li.buzz-panel-wide > .wp-block-navigation__submenu-container { width:680px!important;min-width:680px!important; }
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav .wp-block-navigation__container > li.buzz-panel > button { padding-inline-end:22px; }
}
:root :is(.buzz-nav, .buzz-nav-v2) li.buzz-panel > .wp-block-navigation__submenu-icon { position:absolute;right:0;top:26px;transform:translateY(-50%);display:block;width:12px;height:12px;margin:0;pointer-events:none; }
:root :is(.buzz-nav, .buzz-nav-v2) li.buzz-panel > .wp-block-navigation__submenu-icon svg { display:block;stroke:currentColor; }
:root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav li.buzz-panel > button.wp-block-navigation-submenu__toggle { padding-inline-end:24px!important;font-weight:600!important; }
:root :is(.buzz-nav, .buzz-nav-v2) li.buzz-panel > .wp-block-navigation__submenu-icon { z-index:1; }
@media(min-width:1200px){
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav li.buzz-panel > .wp-block-navigation__submenu-container { box-sizing:border-box; }
 /* Later wide panels need room on both sides of their toggle. Use native
  * sibling order rather than requiring a label-specific legacy class. The
  * final-navigation-item rule below still wins and aligns that panel right. */
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav .wp-block-navigation__container > li.buzz-panel-wide ~ li.buzz-panel-wide > .wp-block-navigation__submenu-container,
:root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav li.buzz-panel-business > .wp-block-navigation__submenu-container { left:50%;right:auto;transform:translateX(-50%); }
}
@media(max-width:1199px){
 :root :is(.buzz-nav, .buzz-nav-v2) nav.buzz-main-nav { position:static; }
 :root :is(.buzz-nav, .buzz-nav-v2) .is-menu-open .buzz-drawer-logo { display:flex;align-items:center;flex:0 0 80px;min-height:80px;padding-block:var(--wp--preset--spacing--40); }
 :root :is(.buzz-nav, .buzz-nav-v2) .is-menu-open .buzz-drawer-logo a { padding:0!important;min-height:0;border:0; }
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav .is-menu-open li.buzz-panel > button[data-buzz-expanded="false"] ~ .wp-block-navigation__submenu-container { display:none!important; }
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav .is-menu-open li.buzz-panel > button[data-buzz-expanded="true"] ~ .wp-block-navigation__submenu-container { display:block!important; }
}

:root :is(.buzz-nav, .buzz-nav-v2) .is-menu-open .buzz-drawer-logo { background:var(--buzz-nav-drawer-surface); }

/* Shared navigation normalization. Generated into each site's parts/header.css.
 * The only site-specific inputs are --buzz-nav-color, --buzz-nav-hover-color,
 * and --buzz-nav-active-color, defined immediately before this shared source.
 * Keep menu geometry and WordPress disclosure/focus behavior unchanged. */
:root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav .wp-block-navigation-item:not(.buzz-nav-heading) > .wp-block-navigation-item__content {
 color:var(--buzz-nav-color);
}
:root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav .wp-block-navigation-item:not(.buzz-nav-heading) > .wp-block-navigation-item__content:is(:hover,:focus-visible) {
 color:var(--buzz-nav-hover-color);
}
:root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav .wp-block-navigation-item:not(.buzz-nav-heading) > .wp-block-navigation-item__content:is(:active,[aria-current="page"],[aria-expanded="true"]),
:root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav .wp-block-navigation-item:is(.current-menu-item,.current-menu-ancestor) > .wp-block-navigation-item__content {
 color:var(--buzz-nav-active-color);
}
/* The old .buzz-panel descendant rule also matches its own toggle. Set the
 * same typography and flex alignment on ALL top-level links and toggles. */
:root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
 display:flex;
 align-items:center;
 font-family:var(--wp--preset--font-family--sans);
 font-size:var(--wp--preset--font-size--medium);
 font-weight:600;
 font-style:normal;
 line-height:1.5;
}
:root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav li.buzz-panel > .wp-block-navigation__submenu-icon {
 color:var(--buzz-nav-color);
}
:root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav li.buzz-panel:has(> button:is(:hover,:focus-visible)) > .wp-block-navigation__submenu-icon {
 color:var(--buzz-nav-hover-color);
}
:root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav li.buzz-panel:has(> button:is(:active,[aria-expanded="true"])) > .wp-block-navigation__submenu-icon,
:root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav li.buzz-panel.current-menu-ancestor > .wp-block-navigation__submenu-icon {
 color:var(--buzz-nav-active-color);
}

/* Review refinement: reserve the same inset in every state to avoid shifts
 * when a disclosure opens; keep its chevron equally inset from the end. */
:root :is(.buzz-nav, .buzz-nav-v2) nav.buzz-main-nav .wp-block-navigation__responsive-container .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
 padding-inline:var(--wp--preset--spacing--30);
 border-radius:0;
}
:root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav li.buzz-panel > button.wp-block-navigation-submenu__toggle {
 padding-inline-end:calc(24px + var(--wp--preset--spacing--30))!important;
}
:root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav li.buzz-panel > .wp-block-navigation__submenu-icon {
 right:var(--wp--preset--spacing--30);
}

@media(min-width:1200px){
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav li.buzz-panel > .wp-block-navigation__submenu-container {
  border-top-left-radius:0;
 }
}

/* Tab treatment: neutral sides match the dropdown; top remains the accent. */
:root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav li.buzz-panel > button:is(:active,[aria-expanded="true"]) {
 box-shadow:inset 0 2px var(--buzz-nav-active-color),inset 1px 0 var(--wp--preset--color--line),inset -1px 0 var(--wp--preset--color--line);
}
@media(min-width:1200px){
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav li.buzz-panel > button[aria-expanded="true"] {
  position:relative;
  z-index:3;
  border-bottom-color:transparent;
 }
 /* Cover only the dropdown's top stroke directly below the open parent.
  * Absolute painting changes no dimensions and cannot intercept input. */
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav li.buzz-panel > button[aria-expanded="true"]::after {
  content:"";
  position:absolute;
  left:1px;
  right:1px;
  bottom:-1px;
  height:2px;
  background:var(--wp--preset--color--card);
  pointer-events:none;
 }
}

/* Follow menu position, not a label or site-specific panel class. Filter out
 * logo/CTA blocks so only the final top-level navigation item is end-aligned. */
@media(min-width:1200px){
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav .wp-block-navigation__container > li.buzz-panel > .wp-block-navigation__submenu-container {
  border-top-left-radius:0;
  border-top-right-radius:12px;
 }
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav .wp-block-navigation__container > li.buzz-panel:nth-last-child(1 of .wp-block-navigation-item) > .wp-block-navigation__submenu-container {
  left:auto;
  right:0;
  transform:none;
  border-top-left-radius:12px;
  border-top-right-radius:0;
 }
}
/* Keep the sibling chevron above the open tab (z-index:3). It stays inert,
 * so pointer/keyboard activation remains on the native disclosure button. */
:root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav li.buzz-panel > .wp-block-navigation__submenu-icon {
 z-index:4;
}

/* One rotation layer only. The wrapper stays centered in every disclosure,
 * hover and focus state; only its SVG changes direction. */
:root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav li.buzz-panel:has(> button[aria-expanded]) > .wp-block-navigation__submenu-icon {
 transform:translateY(-50%);
 margin:0;
 transition:none;
}
:root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav li.buzz-panel:has(> button[aria-expanded]) > .wp-block-navigation__submenu-icon svg {
 display:block;
 width:100%;
 height:100%;
 margin:0;
 transform:rotate(0deg);
 transform-origin:50% 50%;
 transition:none;
}
:root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav li.buzz-panel:has(> button[aria-expanded="true"]) > .wp-block-navigation__submenu-icon svg {
 transform:rotate(180deg);
}

/* Mobile drawer: one stable brand/control row and plain accordion parents.
 * Desktop tab styling and panel geometry remain untouched. */
@media(max-width:1199px){
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-lockup .buzz-brand-logo img,
 :root :is(.buzz-nav, .buzz-nav-v2) .is-menu-open .buzz-drawer-logo .buzz-brand-logo img {
  width:240px!important;
  max-width:min(240px,calc(100vw - 124px));
  height:auto;
 }
 :root :is(.buzz-nav, .buzz-nav-v2) .is-menu-open .buzz-drawer-logo {
  flex:0 0 auto;
  min-height:80px;
  padding-block:var(--wp--preset--spacing--40);
  padding-inline-start:var(--wp--preset--spacing--40);
  padding-inline-end:108px;
 }
 :root :is(.buzz-nav, .buzz-nav-v2) .is-menu-open .buzz-drawer-logo .buzz-brand-logo {
  flex:0 0 auto;
  margin:0;
 }
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav .is-menu-open .wp-block-navigation__responsive-dialog {
  position:relative;
  margin:0;
 }
 /* The overlay already accounts for the admin bar. Close belongs to this
  * dialog's top row, not a separately offset fixed viewport position. */
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav .is-menu-open .wp-block-navigation__responsive-container-close {
  position:absolute;
  top:var(--wp--preset--spacing--40);
  right:var(--wp--preset--spacing--50);
  margin:0;
 }
 :root :is(.buzz-nav, .buzz-nav-v2) .buzz-main-nav .is-menu-open li.buzz-panel > button:is(:active,[aria-expanded="true"]) {
  box-shadow:none;
  background:transparent;
  border-radius:0;
 }
}
