/**
 * WOWOOOCART Header Stylesheet
 * Styles: announcement top bar, main header (logo, category button,
 * AJAX mega search + suggestions dropdown, action icons, mega menu),
 * desktop navigation, mobile header + slide-out menu, sticky header
 * behavior, hover/focus states, and responsive breakpoints.
 *
 * Uses CSS custom properties so values set in inc/customizer.php's
 * dynamic inline block (--wowooocart-primary, --wowooocart-secondary,
 * --wowooocart-text, --wowooocart-container-width, etc.) apply here
 * automatically. Fallback values are provided on every var() so this
 * file never breaks if the Customizer output is missing.
 *
 * @package WOWOOOCART
 */

/* ==============================================================
   BASE VARIABLES (fallbacks; overridden by Customizer inline CSS)
   ============================================================== */

:root {
	--wowooocart-primary: #1a7d3a;
	--wowooocart-secondary: #0f5c28;
	--wowooocart-text: #1a1a1a;
	--wowooocart-container-width: 1280px;
	--wowooocart-font-size-base: 16px;
	--wowooocart-button-radius: 6px;

	--wowooocart-white: #ffffff;
	--wowooocart-gray-50: #f7f8f9;
	--wowooocart-gray-100: #eef0f2;
	--wowooocart-gray-200: #e2e5e9;
	--wowooocart-gray-400: #9aa1a9;
	--wowooocart-gray-600: #6b6b6b;
	--wowooocart-danger: #d92d20;
	--wowooocart-header-height: 76px;
	--wowooocart-topbar-height: 36px;
	--wowooocart-transition-fast: 150ms ease;
	--wowooocart-transition-medium: 250ms ease;
	--wowooocart-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.06);
	--wowooocart-shadow-md: 0 4px 16px rgba(0, 0, 0, 0.10);
	--wowooocart-z-header: 500;
	--wowooocart-z-dropdown: 600;
	--wowooocart-z-mobile-menu: 700;
}

/* ==============================================================
   LAYOUT UTILITY
   ============================================================== */

.wowooocart-container {
	width: 100%;
	max-width: var(--wowooocart-container-width);
	margin-left: auto;
	margin-right: auto;
	padding-left: 20px;
	padding-right: 20px;
	box-sizing: border-box;
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

.wowooocart-skip-link {
	position: absolute;
	top: -100px;
	left: 12px;
	z-index: 9999;
	background: var(--wowooocart-primary);
	color: var(--wowooocart-white);
	padding: 10px 16px;
	border-radius: 4px;
	font-size: 14px;
	transition: top var(--wowooocart-transition-fast);
}

.wowooocart-skip-link:focus {
	top: 12px;
}

/* ==============================================================
   TOP BAR
   ============================================================== */

.wowooocart-topbar {
	background: var(--wowooocart-text);
	color: var(--wowooocart-gray-100);
	font-size: 13px;
	line-height: var(--wowooocart-topbar-height);
}

.wowooocart-topbar__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
}

.wowooocart-topbar__left {
	display: flex;
	align-items: center;
	gap: 20px;
	overflow: hidden;
	white-space: nowrap;
}

.wowooocart-topbar__shipping {
	color: var(--wowooocart-gray-100);
}

.wowooocart-topbar__phone,
.wowooocart-topbar__email {
	color: var(--wowooocart-gray-100);
	text-decoration: none;
}

.wowooocart-topbar__phone:hover,
.wowooocart-topbar__email:hover {
	color: var(--wowooocart-white);
	text-decoration: underline;
}

.wowooocart-topbar__links {
	display: flex;
	align-items: center;
	gap: 18px;
	white-space: nowrap;
}

.wowooocart-topbar__links a {
	color: var(--wowooocart-gray-100);
	text-decoration: none;
	transition: color var(--wowooocart-transition-fast);
}

.wowooocart-topbar__links a:hover,
.wowooocart-topbar__links a:focus-visible {
	color: var(--wowooocart-white);
}

.wowooocart-topbar__become-seller {
	color: var(--wowooocart-primary) !important;
	font-weight: 600;
}

/* ==============================================================
   MAIN HEADER
   ============================================================== */

.wowooocart-header {
	background: var(--wowooocart-white);
	border-bottom: 1px solid var(--wowooocart-gray-200);
	position: relative;
	z-index: var(--wowooocart-z-header);
}

.wowooocart-header--sticky {
	position: sticky;
	top: 0;
}

.wowooocart-header--sticky.is-scrolled {
	box-shadow: var(--wowooocart-shadow-md);
}

.wowooocart-header__inner {
	display: flex;
	align-items: center;
	gap: 20px;
	min-height: var(--wowooocart-header-height);
}

.wowooocart-header__logo {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
}

.wowooocart-logo,
.wowooocart-logo-text {
	display: inline-flex;
	align-items: center;
	text-decoration: none;
	color: var(--wowooocart-text);
	font-weight: 700;
	font-size: 22px;
}

.wowooocart-logo img {
	display: block;
	height: auto;
	max-width: 180px;
	width: 100%;
}

/* ==============================================================
   CATEGORY MENU TOGGLE + PANEL
   ============================================================== */

.wowooocart-category-menu__toggle {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: var(--wowooocart-gray-50);
	border: 1px solid var(--wowooocart-gray-200);
	border-radius: var(--wowooocart-button-radius);
	padding: 10px 14px;
	font-size: 14px;
	font-weight: 600;
	color: var(--wowooocart-text);
	cursor: pointer;
	transition: background var(--wowooocart-transition-fast), border-color var(--wowooocart-transition-fast);
	flex: 0 0 auto;
	white-space: nowrap;
}

.wowooocart-category-menu__toggle:hover,
.wowooocart-category-menu__toggle:focus-visible,
.wowooocart-category-menu__toggle[aria-expanded="true"] {
	background: var(--wowooocart-gray-100);
	border-color: var(--wowooocart-primary);
}

.wowooocart-category-menu {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	background: var(--wowooocart-white);
	border-top: 1px solid var(--wowooocart-gray-200);
	box-shadow: var(--wowooocart-shadow-md);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-8px);
	transition: opacity var(--wowooocart-transition-medium), transform var(--wowooocart-transition-medium), visibility var(--wowooocart-transition-medium);
	z-index: var(--wowooocart-z-dropdown);
}

.wowooocart-category-menu.is-open {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.wowooocart-category-menu__list {
	list-style: none;
	margin: 0;
	padding: 20px 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
	gap: 4px 24px;
}

.wowooocart-category-menu__item {
	position: relative;
}

.wowooocart-category-menu__item > a {
	display: block;
	padding: 8px 4px;
	color: var(--wowooocart-text);
	font-weight: 600;
	font-size: 14px;
	text-decoration: none;
	border-bottom: 1px solid transparent;
	transition: color var(--wowooocart-transition-fast), border-color var(--wowooocart-transition-fast);
}

.wowooocart-category-menu__item > a:hover,
.wowooocart-category-menu__item > a:focus-visible {
	color: var(--wowooocart-primary);
	border-color: var(--wowooocart-primary);
}

.wowooocart-category-menu__submenu {
	list-style: none;
	margin: 4px 0 0;
	padding: 0;
}

.wowooocart-category-menu__submenu li a {
	display: block;
	padding: 4px;
	font-size: 13px;
	color: var(--wowooocart-gray-600);
	text-decoration: none;
	transition: color var(--wowooocart-transition-fast);
}

.wowooocart-category-menu__submenu li a:hover,
.wowooocart-category-menu__submenu li a:focus-visible {
	color: var(--wowooocart-primary);
}

/* ==============================================================
   MEGA SEARCH
   ============================================================== */

.wowooocart-header__search {
	flex: 1 1 auto;
	min-width: 0;
	position: relative;
}

.wowooocart-mega-search {
	display: flex;
	align-items: stretch;
	border: 2px solid var(--wowooocart-primary);
	border-radius: var(--wowooocart-button-radius);
	overflow: hidden;
	background: var(--wowooocart-white);
}

.wowooocart-mega-search__category {
	border: none;
	border-right: 1px solid var(--wowooocart-gray-200);
	background: var(--wowooocart-gray-50);
	padding: 0 12px;
	font-size: 13px;
	color: var(--wowooocart-gray-600);
	max-width: 150px;
	cursor: pointer;
}

.wowooocart-mega-search__category:focus-visible {
	outline: 2px solid var(--wowooocart-primary);
	outline-offset: -2px;
}

.wowooocart-mega-search__input {
	flex: 1 1 auto;
	min-width: 0;
	border: none;
	padding: 0 14px;
	font-size: 15px;
	color: var(--wowooocart-text);
	background: transparent;
}

.wowooocart-mega-search__input:focus {
	outline: none;
}

.wowooocart-mega-search__input::placeholder {
	color: var(--wowooocart-gray-400);
}

.wowooocart-mega-search__submit {
	flex: 0 0 auto;
	background: var(--wowooocart-primary);
	border: none;
	color: var(--wowooocart-white);
	padding: 0 18px;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background var(--wowooocart-transition-fast);
}

.wowooocart-mega-search__submit:hover,
.wowooocart-mega-search__submit:focus-visible {
	background: var(--wowooocart-secondary);
}

.wowooocart-mega-search__suggestions {
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	right: 0;
	background: var(--wowooocart-white);
	border: 1px solid var(--wowooocart-gray-200);
	border-radius: var(--wowooocart-button-radius);
	box-shadow: var(--wowooocart-shadow-md);
	max-height: 420px;
	overflow-y: auto;
	z-index: var(--wowooocart-z-dropdown);
	display: none;
}

.wowooocart-mega-search__suggestions.is-visible {
	display: block;
}

.wowooocart-mega-search__suggestions [role="option"] {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 14px;
	text-decoration: none;
	color: var(--wowooocart-text);
	cursor: pointer;
	transition: background var(--wowooocart-transition-fast);
}

.wowooocart-mega-search__suggestions [role="option"]:hover,
.wowooocart-mega-search__suggestions [role="option"][aria-selected="true"] {
	background: var(--wowooocart-gray-50);
}

.wowooocart-mega-search__suggestions [role="option"] img {
	width: 40px;
	height: 40px;
	object-fit: cover;
	border-radius: 4px;
	flex: 0 0 auto;
}

/* ==============================================================
   HEADER ACTION ICONS
   ============================================================== */

.wowooocart-header__actions {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	gap: 4px;
}

.wowooocart-header__icon-link {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	padding: 8px 10px;
	color: var(--wowooocart-text);
	text-decoration: none;
	border-radius: var(--wowooocart-button-radius);
	transition: background var(--wowooocart-transition-fast), color var(--wowooocart-transition-fast);
}

.wowooocart-header__icon-link:hover,
.wowooocart-header__icon-link:focus-visible {
	background: var(--wowooocart-gray-50);
	color: var(--wowooocart-primary);
}

.wowooocart-header__icon-label {
	font-size: 11px;
	font-weight: 600;
	line-height: 1;
	white-space: nowrap;
}

[class^="wowooocart-icon-"] {
	display: inline-block;
	width: 22px;
	height: 22px;
	background-color: currentColor;
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
}

.wowooocart-header__count {
	position: absolute;
	top: 2px;
	right: 2px;
	min-width: 16px;
	height: 16px;
	padding: 0 4px;
	border-radius: 999px;
	background: var(--wowooocart-danger);
	color: var(--wowooocart-white);
	font-size: 10px;
	font-weight: 700;
	line-height: 16px;
	text-align: center;
}

.wowooocart-header__vendor {
	color: var(--wowooocart-primary);
}

.wowooocart-header__mobile-toggle {
	display: none;
	background: none;
	border: none;
	padding: 8px;
	cursor: pointer;
	color: var(--wowooocart-text);
}

/* ==============================================================
   DESKTOP PRIMARY NAVIGATION
   ============================================================== */

.wowooocart-header__nav {
	border-top: 1px solid var(--wowooocart-gray-200);
	background: var(--wowooocart-gray-50);
}

.wowooocart-primary-menu,
.wowooocart-primary-menu--fallback {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	align-items: center;
	gap: 4px;
	flex-wrap: wrap;
}

.wowooocart-primary-menu > .menu-item {
	position: relative;
}

.wowooocart-primary-menu > .menu-item > a {
	display: block;
	padding: 12px 14px;
	font-size: 14px;
	font-weight: 600;
	color: var(--wowooocart-text);
	text-decoration: none;
	transition: color var(--wowooocart-transition-fast);
}

.wowooocart-primary-menu > .menu-item > a:hover,
.wowooocart-primary-menu > .menu-item > a:focus-visible,
.wowooocart-primary-menu > .current-menu-item > a,
.wowooocart-primary-menu > .current-menu-ancestor > a {
	color: var(--wowooocart-primary);
}

.wowooocart-primary-menu__submenu {
	list-style: none;
	margin: 0;
	padding: 10px 0;
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 220px;
	background: var(--wowooocart-white);
	border: 1px solid var(--wowooocart-gray-200);
	border-radius: var(--wowooocart-button-radius);
	box-shadow: var(--wowooocart-shadow-md);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-6px);
	transition: opacity var(--wowooocart-transition-fast), transform var(--wowooocart-transition-fast), visibility var(--wowooocart-transition-fast);
	z-index: var(--wowooocart-z-dropdown);
}

.menu-item-has-children:hover > .wowooocart-primary-menu__submenu,
.menu-item-has-children > a:focus-visible + .wowooocart-primary-menu__submenu,
.wowooocart-primary-menu__submenu:hover {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.wowooocart-primary-menu__submenu .wowooocart-primary-menu__submenu {
	top: 0;
	left: 100%;
}

.wowooocart-primary-menu__submenu li a {
	display: block;
	padding: 8px 16px;
	font-size: 13px;
	font-weight: 500;
	color: var(--wowooocart-text);
	text-decoration: none;
	white-space: nowrap;
}

.wowooocart-primary-menu__submenu li a:hover,
.wowooocart-primary-menu__submenu li a:focus-visible {
	background: var(--wowooocart-gray-50);
	color: var(--wowooocart-primary);
}

/* ==============================================================
   MOBILE HEADER
   ============================================================== */

.wowooocart-mobile-header {
	display: none;
	background: var(--wowooocart-white);
	border-bottom: 1px solid var(--wowooocart-gray-200);
	position: sticky;
	top: 0;
	z-index: var(--wowooocart-z-header);
}

.wowooocart-mobile-header__bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	min-height: 60px;
}

.wowooocart-mobile-header__hamburger,
.wowooocart-mobile-header__search-toggle {
	background: none;
	border: none;
	padding: 8px;
	cursor: pointer;
	color: var(--wowooocart-text);
	flex: 0 0 auto;
}

.wowooocart-mobile-header__logo {
	flex: 1 1 auto;
	display: flex;
	justify-content: center;
}

.wowooocart-mobile-header__logo img {
	max-height: 32px;
	width: auto;
}

.wowooocart-mobile-header__cart {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--wowooocart-text);
	padding: 8px;
	flex: 0 0 auto;
}

.wowooocart-mobile-header__search-panel {
	max-height: 0;
	overflow: hidden;
	transition: max-height var(--wowooocart-transition-medium);
	padding: 0 16px;
}

.wowooocart-mobile-header__search-panel.is-open {
	max-height: 120px;
	padding: 10px 16px;
}

.wowooocart-mobile-header__search-panel form {
	display: flex;
	border: 2px solid var(--wowooocart-primary);
	border-radius: var(--wowooocart-button-radius);
	overflow: hidden;
	position: relative;
}

.wowooocart-mobile-header__search-panel input[type="search"] {
	flex: 1 1 auto;
	border: none;
	padding: 10px 12px;
	font-size: 14px;
}

.wowooocart-mobile-header__search-panel button {
	background: var(--wowooocart-primary);
	border: none;
	color: var(--wowooocart-white);
	padding: 0 16px;
	cursor: pointer;
}

/* ==============================================================
   MOBILE SLIDE-OUT MENU
   ============================================================== */

.wowooocart-mobile-menu {
	position: fixed;
	top: 0;
	left: -320px;
	width: 300px;
	max-width: 85vw;
	height: 100%;
	background: var(--wowooocart-white);
	box-shadow: var(--wowooocart-shadow-md);
	z-index: var(--wowooocart-z-mobile-menu);
	overflow-y: auto;
	transition: left var(--wowooocart-transition-medium);
}

.wowooocart-mobile-menu.is-open {
	left: 0;
}

.wowooocart-mobile-menu__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px;
	border-bottom: 1px solid var(--wowooocart-gray-200);
}

.wowooocart-mobile-menu__title {
	font-weight: 700;
	font-size: 16px;
}

.wowooocart-mobile-menu__close {
	background: none;
	border: none;
	cursor: pointer;
	color: var(--wowooocart-text);
	padding: 6px;
}

.wowooocart-mobile-menu__account {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 16px;
	border-bottom: 1px solid var(--wowooocart-gray-200);
}

.wowooocart-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 10px 16px;
	background: var(--wowooocart-primary);
	color: var(--wowooocart-white);
	border-radius: var(--wowooocart-button-radius);
	text-decoration: none;
	font-weight: 600;
	font-size: 14px;
	border: 2px solid var(--wowooocart-primary);
	transition: background var(--wowooocart-transition-fast), color var(--wowooocart-transition-fast);
}

.wowooocart-btn:hover,
.wowooocart-btn:focus-visible {
	background: var(--wowooocart-secondary);
	border-color: var(--wowooocart-secondary);
	color: var(--wowooocart-white);
}

.wowooocart-btn--outline {
	background: transparent;
	color: var(--wowooocart-primary);
}

.wowooocart-btn--outline:hover,
.wowooocart-btn--outline:focus-visible {
	background: var(--wowooocart-primary);
	color: var(--wowooocart-white);
}

.wowooocart-mobile-menu__quick-links {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 8px;
	padding: 16px;
	border-bottom: 1px solid var(--wowooocart-gray-200);
}

.wowooocart-mobile-menu__quick-link {
	position: relative;
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 10px;
	border-radius: var(--wowooocart-button-radius);
	background: var(--wowooocart-gray-50);
	color: var(--wowooocart-text);
	text-decoration: none;
	font-size: 13px;
	font-weight: 600;
}

.wowooocart-mobile-menu__quick-link:hover,
.wowooocart-mobile-menu__quick-link:focus-visible {
	background: var(--wowooocart-gray-100);
	color: var(--wowooocart-primary);
}

.wowooocart-mobile-menu__categories {
	padding: 16px;
	border-bottom: 1px solid var(--wowooocart-gray-200);
}

.wowooocart-mobile-menu__categories-title {
	margin: 0 0 10px;
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: var(--wowooocart-gray-600);
}

.wowooocart-mobile-menu__categories ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.wowooocart-mobile-menu__categories li a {
	display: block;
	padding: 8px 0;
	font-size: 14px;
	color: var(--wowooocart-text);
	text-decoration: none;
	border-bottom: 1px solid var(--wowooocart-gray-100);
}

.wowooocart-mobile-menu__categories li a:hover,
.wowooocart-mobile-menu__categories li a:focus-visible {
	color: var(--wowooocart-primary);
}

.wowooocart-mobile-menu__list {
	list-style: none;
	margin: 0;
	padding: 8px 16px;
}

.wowooocart-mobile-menu__list li a {
	display: block;
	padding: 10px 0;
	font-size: 14px;
	font-weight: 600;
	color: var(--wowooocart-text);
	text-decoration: none;
	border-bottom: 1px solid var(--wowooocart-gray-100);
}

.wowooocart-mobile-menu__list li a:hover,
.wowooocart-mobile-menu__list li a:focus-visible {
	color: var(--wowooocart-primary);
}

.wowooocart-mobile-menu__list ul {
	list-style: none;
	padding-left: 14px;
}

.wowooocart-mobile-menu__utility-links {
	display: flex;
	gap: 16px;
	padding: 16px;
}

.wowooocart-mobile-menu__utility-links a {
	font-size: 13px;
	color: var(--wowooocart-gray-600);
	text-decoration: none;
}

.wowooocart-mobile-menu__utility-links a:hover,
.wowooocart-mobile-menu__utility-links a:focus-visible {
	color: var(--wowooocart-primary);
}

/* ==============================================================
   MOBILE MENU BACKDROP
   ============================================================== */

.wowooocart-mobile-menu::before {
	content: "";
}

body.wowooocart-mobile-menu-open {
	overflow: hidden;
}

/* ==============================================================
   RESPONSIVE BREAKPOINTS
   ============================================================== */

/* Tablet */
@media (max-width: 1024px) {
	.wowooocart-header__icon-label {
		display: none;
	}

	.wowooocart-category-menu__label {
		display: none;
	}

	.wowooocart-header__inner {
		gap: 12px;
	}
}

/* Mobile */
@media (max-width: 767px) {
	.wowooocart-topbar__left {
		display: none;
	}

	.wowooocart-topbar__links {
		gap: 10px;
		font-size: 12px;
	}

	.wowooocart-header,
	.wowooocart-header__nav {
		display: none;
	}

	.wowooocart-mobile-header {
		display: block;
	}
}

@media (min-width: 768px) {
	.wowooocart-mobile-header,
	.wowooocart-mobile-menu {
		display: none;
	}
}

/* Small mobile */
@media (max-width: 420px) {
	.wowooocart-topbar__links {
		flex-wrap: wrap;
		row-gap: 4px;
	}

	.wowooocart-mobile-menu {
		width: 260px;
	}
}