/* Shared site navbar styles — MACHINE-ASSISTED port of every `header`-scoped
   rule in the marketing site's assets/css/style.css, re-scoped to
   .uwh-site-header so nothing leaks into console/cart content, with z-indexes
   remapped below Bootstrap's modal layer (1040): header 1036, mega-menu 1035,
   dim overlay 1031 (site uses 3000/2990/1020). Loaded by head.tpl AND
   cart-head.tpl. If the site's header styling changes, regenerate this port
   (see .meta/plans/unified_site_header.md). Nunito Sans comes from each
   surface's own sheet. */

.uwh-site-header { background-color: var(--bg-black, #181818); }
.uwh-site-header .rounded-xxl { border-radius: 15px; }

.uwh-site-header.sticky-top {
	top: 0px !important;
	z-index: 1036;
}

.uwh-site-header {
	background-color: var(--bg-black, #181818);
}

.uwh-site-header .navbar .nav-link {
	font-size: 0.9rem;
	color: inherit;
	outline: none;
	box-shadow: none;
	border-color: transparent;
}

.uwh-site-header .navbar .nav-link:hover,
.uwh-site-header .navbar .nav-link:focus,
.uwh-site-header .navbar .nav-link:active {
	outline: none;
	box-shadow: none;
	border-color: transparent;
}

/* Keyboard focus stays visible (WCAG 2.4.7): the resets above kill
   Bootstrap's mouse-click halo, but :focus-visible gets a real indicator.
   currentColor adapts per context — white text on the ink bar, dark text
   in the white mobile drawer — so one rule reads in both layouts. */
.uwh-site-header .navbar .nav-link:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
	box-shadow: none;
	border-color: transparent;
}

.uwh-site-header .navbar .navbar-nav .dropdown-menu .container {
	padding: 0;
}

.uwh-site-header .navbar .navbar-nav .dropdown-menu {
	border: 0;
	background-color: transparent;
	padding: 0;
}

.uwh-site-header .navbar .navbar-nav .dropdown-menu .dropdown-item {
	padding: 0.5rem 0;
	color: inherit;
	margin: 0;
	font-size: 1.125rem;
}

.uwh-site-header .navbar .navbar-nav .dropdown-menu .dropdown-item .small {
	font-size: 0.95rem;
}

.uwh-site-header .navbar .navbar-nav .nav-item.show .nav-link {
	background-color: transparent;
	margin-left: -15px;
	margin-right: -15px;
	padding-left: 15px;
	padding-right: 15px;
	margin-bottom: 15px;
	border-radius: 0.25rem;
}

@media (min-width: 1200px) {
.uwh-site-header .navbar .nav-link {
		color: #fff;
}

.uwh-site-header .navbar .dropdown::after {
		content: "";
		top: 74px;
		right: 0;
		bottom: 0;
		left: 0;
		transition: opacity 0.2s ease-in-out;
		opacity: 0;
		visibility: hidden;
		background-color: rgba(0, 0, 0, 0.25);
		pointer-events: none;
}

.uwh-site-header .navbar .dropdown.show .nav-link {
		position: relative;
		z-index: 12;
}

.uwh-site-header .navbar .dropdown.show::after {
		position: fixed;
		z-index: 1031;
		opacity: 1;
		visibility: visible;
}

.uwh-site-header .navbar .navbar-nav .dropdown {
		position: static;
}

.uwh-site-header .navbar .navbar-nav .dropdown-menu {
		position: fixed;
		top: 74px;
		z-index: 1035;
		left: 0;
		right: 0;
		width: 100%;
		display: block;
		margin-top: 0;
		padding-top: 1.5rem;
		padding-bottom: 1.5rem;
		background-color: #fff;
		border-top: 1px solid rgba(0, 0, 0, 0.06);
		box-shadow: 0 20px 44px rgba(16, 24, 40, 0.14);
		opacity: 0;
		visibility: hidden;
		transform: translateY(-8px);
		pointer-events: none;
		overflow: hidden;
		will-change: opacity, transform;
		transition: none;
}

.uwh-site-header .navbar .navbar-nav .dropdown-menu.show {
		opacity: 1;
		visibility: visible;
		transform: translateY(0);
		pointer-events: auto;
		transition: opacity 0.22s ease, transform 0.3s cubic-bezier(0.2, 0.8, 0.2, 1), visibility 0s linear 0s;
}

.uwh-site-header .navbar .navbar-nav .dropdown-menu .container {
		padding-left: 15px;
		padding-right: 15px;
		opacity: 0;
}

.uwh-site-header .navbar .navbar-nav .dropdown-menu.show .container {
		opacity: 1;
}

.uwh-site-header.dropdown-switching .navbar .dropdown::after,
.uwh-site-header.dropdown-switching .navbar .navbar-nav .dropdown-menu {
		transition: none !important;
		transition-delay: 0s !important;
}

/* Zero, NOT `inherit`: this reverts the base rule's -15px/15px accordion
   margins for desktop. `inherit` pulls the LI's own margin onto the open link,
   so a margin-bearing item (the account li carries mx-xl-2 = 8px, unlike the
   px-xl-3 mega-menu items) grew 8px each side on open and shoved its left
   neighbours 16px along. The max-width:1199.98px block below already zeroes
   these the correct way. */
.uwh-site-header .navbar .navbar-nav .nav-item.show .nav-link {
		background-color: transparent;
		margin-left: 0;
		margin-right: 0;
		padding-right: 0.5rem;
		padding-left: 0.5rem;
		margin-bottom: 0;
		border-radius: inherit;
}

.uwh-site-header .navbar .navbar-nav .dropdown-menu .dropdown-item {
		width: 100%;
		white-space: normal;
		color: #212529;
		padding: 15px;
		margin-bottom: 1.5rem;
		border-radius: 15px !important;
}

.uwh-site-header .navbar .navbar-nav .dropdown-menu .dropdown-item:last-child {
		margin-bottom: 0;
}

.uwh-site-header .navbar .navbar-nav .dropdown-menu .dropdown-item:active {
		background-color: transparent !important;
		border-radius: 15px !important;
}

.uwh-site-header .navbar .navbar-nav .dropdown-menu .dropdown-item .icon {
		font-size: 1.5em;
}

}

@media (max-width: 1199.98px) {
.uwh-site-header .navbar .navbar-nav {
		margin-top: 0;
		margin-bottom: 0;
}

.uwh-site-header .navbar .navbar-nav.mr-auto {
		margin-right: 0 !important;
}

.uwh-site-header .navbar .navbar-nav.ml-auto {
		margin-top: 0;
		margin-left: 0 !important;
		padding-top: 0;
}

.uwh-site-header .navbar .navbar-nav .nav-item {
		border-bottom: 1px solid rgba(0, 0, 0, 0.12);
}

.uwh-site-header .navbar .navbar-nav:nth-of-type(2) .nav-item:last-child {
		border-bottom: 0;
}

.uwh-site-header .navbar .navbar-nav .nav-link {
		padding: 1rem 0;
}

.uwh-site-header .navbar .navbar-nav .nav-item.show .nav-link {
		margin-left: 0;
		margin-right: 0;
		margin-bottom: 0;
		padding-left: 0;
		padding-right: 0;
		border-radius: 0;
}

.uwh-site-header .navbar .navbar-nav .dropdown-menu {
		margin-top: 0;
		padding-top: 0;
		padding-bottom: 0;
		display: grid;
		grid-template-rows: 0fr;
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		overflow: hidden;
		transition: grid-template-rows 0.42s cubic-bezier(0.22, 1, 0.36, 1), visibility 0.18s step-end, opacity 0.18s ease, padding-bottom 0.42s cubic-bezier(0.22, 1, 0.36, 1);
}

.uwh-site-header .navbar .navbar-nav .dropdown-menu > .container {
		min-height: 0;
		overflow: hidden;
}

.uwh-site-header .navbar .navbar-nav .dropdown-menu.show {
		grid-template-rows: 1fr;
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
		padding-bottom: 0.5rem;
		transition: grid-template-rows 0.42s cubic-bezier(0.22, 1, 0.36, 1), visibility 0.18s step-start, opacity 0.18s ease, padding-bottom 0.42s cubic-bezier(0.22, 1, 0.36, 1);
}

.uwh-site-header .navbar .navbar-nav .dropdown-menu .dropdown-item {
		font-size: 1rem;
		padding: 0.75rem 1rem;
}

.uwh-site-header .navbar .navbar-nav .dropdown-menu .dropdown-item:hover,
.uwh-site-header .navbar .navbar-nav .dropdown-menu .dropdown-item:focus,
.uwh-site-header .navbar .navbar-nav .dropdown-menu .dropdown-item:active,
.uwh-site-header .navbar .navbar-nav .dropdown-menu .dropdown-item.active {
		background-color: transparent !important;
}

/* Keyboard focus indicator for dropdown items (the reset above is for the
   mouse states; keyboard users need to see where they are). */
.uwh-site-header .navbar .navbar-nav .dropdown-menu .dropdown-item:focus-visible {
		background-color: rgba(0, 0, 0, .06) !important;
		outline: 2px solid var(--uwx-link, #0056b8);
		outline-offset: -2px;
}

.uwh-site-header .offcanvas-collapse {
		position: fixed;
		top: 74px;
		bottom: 0;
		left: 100%;
		width: 40%;
		padding-left: 1rem;
		padding-right: 1rem;
		overflow-y: auto;
		visibility: hidden;
		background-color: #fff;
		transition: transform 0.3s ease-in-out, visibility 0.3s ease-in-out, -webkit-transform 0.3s ease-in-out;
}

.uwh-site-header .offcanvas-collapse.open {
		visibility: visible;
		-webkit-transform: translateX(-100%);
		transform: translateX(-100%);
}

}

@media (max-width: 991.98px) {
.uwh-site-header .offcanvas-collapse {
		width: 50%;
}

}

@media (max-width: 575.98px) {
.uwh-site-header .offcanvas-collapse {
		width: 100%;
}

}

.uwh-site-header .navbar .dropdown .dropdown-toggle::after {
	transition: transform 0.25s ease;
	transform-origin: 50% 45%;
}

.uwh-site-header .navbar .dropdown.show .dropdown-toggle::after {
	transform: rotate(-180deg);
}

.uwh-site-header .navbar .navbar-toggler-icon {
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 1%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") !important;
}

.uwh-site-header .navbar .navbar-toggler {
	border: none !important;
}


/* Mega-menu item icons (the `.icon` wrapper + inline SVG that navbar.php's
   uwh_nav_svg() emits for every dropdown-item). The site's own rules for these
   live in assets/css/style.css's generic "/* icons *\/" block, NOT under a
   `header` selector, so this sheet's header-scoped port missed them and the
   SVGs arrived unstyled: the files carry a viewBox but no width/height
   attributes, so an unstyled inline SVG computes to 0x0 — present in the DOM,
   invisible on the page. `.dropdown-item .icon { font-size: 1.5em }` above
   (~L195) sizes the em box; these two rules are what turn it into pixels.
   Scoped to .uwh-site-header because `.icon` is far too generic to import
   wholesale into the console, where it would collide with theme markup. */
.uwh-site-header .icon {
	display: inline-flex;
	align-self: center;
	font-size: 1em;
}

.uwh-site-header .icon svg,
.uwh-site-header .icon img {
	height: 1em;
	width: 1em;
	fill: currentColor;
	top: .125em;
	position: relative;
}

/* shared navbar cart icon (#uwhNavCart) — keep in step with the same rules in
   the site's assets/css/style.css */
.uwh-site-header .navbar .uwh-nav-icon {
	display: inline-flex;
	width: 1.25em;
	height: 1.25em;
	vertical-align: -0.25em;
}
.uwh-site-header .navbar .uwh-nav-icon svg {
	width: 100%;
	height: 100%;
	fill: currentColor;
}

/* account dropdown (#uwhNavAccount .uwh-acct in includes/templates/navbar.php,
   also built client-side by assets/js/uwh-session.js) — a COMPACT right-aligned
   menu, opting out of the mega-menu treatment the generic header dropdown rules
   apply. Keep in step across the site's assets/css/style.css(+.min) and the
   unlimited-next theme's css/site-nav.css (scope prefix aside, same rules). */

@media (min-width: 1200px) {
	.uwh-site-header .navbar .navbar-nav .dropdown.uwh-acct {
		position: relative;
	}

	.uwh-site-header .navbar .dropdown.uwh-acct::after,
	.uwh-site-header .navbar .dropdown.uwh-acct.show::after {
		content: none;
	}

	.uwh-site-header .navbar .navbar-nav .dropdown-menu.uwh-acct-menu {
		position: absolute;
		top: 100%;
		left: auto;
		right: 0;
		width: auto;
		min-width: 240px;
		margin-top: 18px;
		padding: 0.75rem 0;
		background-color: #fff;
		border: 1px solid rgba(0, 0, 0, 0.06);
		border-radius: 15px;
		box-shadow: 0 20px 44px rgba(16, 24, 40, 0.14);
	}

	.uwh-site-header .navbar .navbar-nav .dropdown-menu.uwh-acct-menu .dropdown-item {
		width: 100%;
		padding: 0.4rem 1.5rem;
		margin: 0;
		font-size: 0.95rem;
		color: #212529;
		white-space: nowrap;
		border-radius: 0 !important;
	}

	.uwh-site-header .navbar .navbar-nav .dropdown-menu.uwh-acct-menu .dropdown-item:hover,
	.uwh-site-header .navbar .navbar-nav .dropdown-menu.uwh-acct-menu .dropdown-item:focus {
		background-color: #f4f6f9 !important;
	}

	.uwh-site-header .navbar .navbar-nav .dropdown-menu.uwh-acct-menu .dropdown-divider {
		margin: 0.5rem 0;
	}
}

/* Cross-surface lockstep: short pages (e.g. an empty cart view) otherwise lose
   the scrollbar and the centred header shifts ~15px vs scrolling pages. Reserve
   the gutter everywhere this shared navbar renders (console + cart; marketing
   pages are all tall enough to scroll). Deliberate exception to this sheet's
   "header-scoped only" promise — it exists purely so the header stays put. */
html {
	overflow-y: scroll;
}

@supports (scrollbar-gutter: stable) {
	html {
		overflow-y: auto;
		scrollbar-gutter: stable;
	}
}
