/**
 * Nutro7 Child Theme — Header, Mega Menu & Announcement Bar Styles
 *
 * All values use --n7-* design tokens from variables.css.
 * Direction: Premium Natural + Modern Wellness
 *
 * TABLE OF CONTENTS
 *  §0   Universal Button/Control Reset (defeats Astra global button styles)
 *  §1   Announcement Bar
 *  §2   Header Container + Sticky State
 *  §3   Logo
 *  §4   Desktop Primary Navigation (standard items)
 *  §5   Mega Trigger Button
 *  §6   MEGA MENU — full-width panel
 *  §7   MEGA MENU — Category Sidebar (left column)
 *  §8   MEGA MENU — Content Area (right column)
 *  §9   MEGA MENU — Category Panels (instant-switch)
 *  §10  MEGA MENU — Product Cards
 *  §11  MEGA MENU — Sale Badge
 *  §12  MEGA MENU — Shop All Showcase
 *  §13  MEGA MENU — Progress Dots
 *  §14  MEGA MENU — Empty / CTA States
 *  §15  Utility Controls (Search, Account, Cart)
 *  §16  Hamburger Button
 *  §17  Mobile Nav Drawer
 *  §18  Mobile Nav Accordion (All Products)
 *  §19  Search Overlay
 *  §20  Responsive Breakpoints (≤ 1023px mobile/tablet)
 *  §21  Reduced Motion
 *
 * @package Nutro7
 * @version 2.1.0
 */

/* ==========================================================================
   §0. UNIVERSAL BUTTON & CONTROL RESETS
   Defeats Astra's global button styles that bleed into our header controls.
   ========================================================================== */

.n7-header button,
.n7-header a.n7-header__util-btn,
.n7-announcement-bar button,
.n7-mobile-nav button,
.n7-search-overlay button,
.n7-mega-menu button {
	background: transparent !important;
	background-color: transparent !important;
	background-image: none !important;
	border: 0 !important;
	border-color: transparent !important;
	box-shadow: none !important;
	text-shadow: none !important;
	padding: 0 !important;
	margin: 0 !important;
	-webkit-appearance: none !important;
	appearance: none !important;
	font-family: inherit !important;
	font-size: inherit !important;
	line-height: 1 !important;
	color: var(--n7-color-text-primary) !important;
	cursor: pointer !important;
	text-decoration: none !important;
}

/* ==========================================================================
   §1. ANNOUNCEMENT BAR
   ========================================================================== */

.n7-announcement-bar {
	background-color: var(--n7-color-primary);
	color: var(--n7-color-text-inverse);
	font-size: var(--n7-text-xs);
	font-weight: var(--n7-font-weight-medium);
	letter-spacing: var(--n7-tracking-wide);
	padding-block: var(--n7-space-2);
	position: relative;
	z-index: var(--n7-z-announcement);
	overflow: hidden;
	transition:
		max-height var(--n7-transition-slow),
		padding-block var(--n7-transition-slow),
		opacity var(--n7-transition-base);
}

.n7-announcement-bar.is-dismissed {
	max-height: 0;
	padding-block: 0;
	opacity: 0;
	pointer-events: none;
}

.n7-announcement-bar__inner {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--n7-space-3);
	position: relative;
}

.n7-announcement-bar__message {
	margin: 0;
	text-align: center;
	color: var(--n7-color-text-inverse);
}

.n7-announcement-bar__message a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 2px;
	transition: opacity var(--n7-transition-fast);
}
.n7-announcement-bar__message a:hover { opacity: 0.8; }

.n7-announcement-bar__close {
	position: absolute !important;
	right: 0 !important;
	top: 50% !important;
	transform: translateY(-50%) !important;
	color: var(--n7-color-text-inverse) !important;
	padding: var(--n7-space-1) !important;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--n7-radius-xs) !important;
	opacity: 0.7;
	transition: opacity var(--n7-transition-fast);
}
.n7-announcement-bar__close:hover { opacity: 1; }

/* ==========================================================================
   §2. HEADER CONTAINER + STICKY & 2-TIER DESKTOP LAYOUT
   ========================================================================== */

.n7-header {
	position: sticky;
	top: 0;
	z-index: var(--n7-z-header);
	background-color: var(--n7-color-surface);
	border-bottom: 1px solid var(--n7-color-border-subtle);
	transition:
		box-shadow var(--n7-transition-base),
		background-color var(--n7-transition-base);
}

.n7-header.is-scrolled {
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
	background-color: rgba(255, 255, 255, 0.98);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
}

.n7-header__main-row {
	border-bottom: 1px solid rgba(26, 48, 38, 0.07);
}

.n7-header__inner {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	height: 68px;
	position: relative;
}

/* Desktop Left: Clinic Phone */
.n7-header__contact {
	display: flex;
	align-items: center;
	justify-content: flex-start;
}

.n7-header__phone {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	font-family: var(--n7-font-sans);
	font-size: 13px;
	font-weight: 600;
	color: var(--n7-color-primary, #1A3026);
	text-decoration: none !important;
	padding: 6px 14px;
	border-radius: var(--n7-radius-full);
	background: #F4F1EA;
	border: 1px solid rgba(26, 48, 38, 0.08);
	transition: all 0.25s ease;
}

.n7-header__phone svg {
	color: var(--n7-color-accent, #4E7C59);
	stroke: var(--n7-color-accent, #4E7C59);
	flex-shrink: 0;
	transition: stroke 0.2s ease;
}

.n7-header__phone-label {
	font-size: 11.5px;
	font-weight: 500;
	color: var(--n7-color-text-muted);
}

.n7-header__phone:hover {
	background: var(--n7-color-primary, #1A3026);
	color: #FFFFFF !important;
	border-color: var(--n7-color-primary, #1A3026);
}

.n7-header__phone:hover svg {
	color: #FFFFFF !important;
	stroke: #FFFFFF !important;
}

.n7-header__phone:hover .n7-header__phone-label {
	color: rgba(255, 255, 255, 0.8) !important;
}

/* Mobile Controls (hidden on desktop) */
.n7-header__mobile-controls {
	display: none;
}

/* Desktop Logo Center */
.n7-header__logo {
	display: flex;
	align-items: center;
	justify-content: center;
}

/* Desktop Utilities Right */
.n7-header__utils {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 8px;
}

/* Desktop Tier 2: Dedicated Centered Navigation Row */
.n7-header__nav-row {
	background: #FFFFFF;
	height: 46px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-bottom: 1px solid rgba(26, 48, 38, 0.05);
}

.n7-header__nav-container {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
}

.n7-header__nav {
	display: flex;
	align-items: center;
	justify-content: center;
}

.n7-nav__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	align-items: center;
	gap: 2px;
}

.n7-nav__item { position: relative; }

/* Vertical float animation for hover states */
@keyframes n7-float-vertical {
	0% {
		transform: translateY(0);
	}
	50% {
		transform: translateY(-4px);
	}
	100% {
		transform: translateY(0);
	}
}

/* Force normal 400 weight across all nav & mega menu text (no bold) */
.n7-header__nav a,
.n7-nav__link,
.n7-header__nav .menu-item > a,
.n7-nav__mega-trigger,
.n7-mega-menu,
.n7-mega-menu a,
.n7-mega-menu button,
.n7-mega-sidebar__tab,
.n7-mega-sidebar__label,
.n7-mega-breadcrumb,
.n7-mega-breadcrumb__item,
.n7-mega-product__name,
.n7-mega-product__price,
.n7-mega-product__price * {
	font-weight: 400 !important;
}

.n7-nav__link {
	display: inline-flex;
	align-items: center;
	padding: 8px 14px;
	font-size: 14px;
	font-weight: 400 !important;
	color: var(--n7-color-text-primary) !important;
	letter-spacing: 0.01em;
	border-radius: var(--n7-radius-sm);
	text-decoration: none !important;
	white-space: nowrap;
	background: transparent !important;
	background-color: transparent !important;
	box-shadow: none !important;
	transition: color 0.15s ease, transform 0.2s ease;
}

.n7-nav__link:hover,
.n7-header__nav .menu-item > a:hover {
	color: var(--n7-color-accent) !important;
	background: transparent !important;
	background-color: transparent !important;
	box-shadow: none !important;
	animation: n7-float-vertical 0.6s ease-in-out infinite !important;
}

.n7-nav__item.current-menu-item .n7-nav__link,
.n7-nav__link.is-active {
	color: var(--n7-color-accent) !important;
	background: transparent !important;
	background-color: transparent !important;
	font-weight: 400 !important;
}

/* ==========================================================================
   §5. MEGA TRIGGER BUTTON
   ========================================================================== */

.n7-nav__mega-trigger {
	display: inline-flex !important;
	align-items: center !important;
	gap: 5px !important;
	padding: 8px 14px !important;
	font-size: 14px !important;
	font-weight: 400 !important;
	color: var(--n7-color-text-primary) !important;
	letter-spacing: 0.01em !important;
	border-radius: var(--n7-radius-sm) !important;
	white-space: nowrap;
	background: transparent !important;
	background-color: transparent !important;
	box-shadow: none !important;
	border: none !important;
	cursor: pointer !important;
	transition: color 0.15s ease, transform 0.2s ease !important;
}

.n7-nav__mega-trigger:hover {
	color: var(--n7-color-accent) !important;
	background: transparent !important;
	background-color: transparent !important;
	box-shadow: none !important;
	animation: n7-float-vertical 0.6s ease-in-out infinite !important;
}

.n7-nav__item--mega.is-open .n7-nav__mega-trigger,
.n7-nav__item--mega:hover .n7-nav__mega-trigger {
	color: var(--n7-color-accent) !important;
	background: transparent !important;
	background-color: transparent !important;
	font-weight: 400 !important;
}

.n7-mega-trigger__chevron {
	flex-shrink: 0;
	transition: transform 0.22s cubic-bezier(0.4, 0, 0.2, 1) !important;
	pointer-events: none;
}

.n7-nav__item--mega.is-open .n7-mega-trigger__chevron,
.n7-nav__item--mega:hover .n7-mega-trigger__chevron {
	transform: rotate(180deg) !important;
}

/* ==========================================================================
   §6. FULL-WIDTH MEGA MENU (Spans 100vw across full screen)
   ========================================================================== */

.n7-header {
	position: sticky !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	width: 100% !important;
}

/* Reset positioning on all intermediate wrappers so mega menu anchors to header */
.n7-header__inner,
.n7-header__nav,
.n7-nav__list,
.n7-nav__item--mega,
li.n7-nav__item--mega {
	position: static !important;
}

.n7-mega-menu {
	position: absolute !important;
	top: 100% !important;
	left: 0 !important;
	right: 0 !important;
	width: 100% !important;
	width: 100vw !important;
	max-width: 100vw !important;
	box-sizing: border-box !important;
	background-color: var(--n7-color-surface) !important;
	border-top: 1px solid var(--n7-color-border-subtle);
	border-bottom: 1px solid var(--n7-color-border-subtle);
	box-shadow: 0 16px 40px -10px rgba(14, 28, 21, 0.10);
	z-index: calc(var(--n7-z-header) + 20);

	/* Smooth fade-in + slide-down animation */
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translateY(-8px);
	transition:
		opacity 0.22s cubic-bezier(0.4, 0, 0.2, 1),
		transform 0.22s cubic-bezier(0.4, 0, 0.2, 1),
		visibility 0.22s;
}

#n7-mega-menu[hidden] {
	display: block !important;
}

/* Reliable display on hover & focus-within & JS is-open */
.n7-nav__item--mega:hover > .n7-mega-menu,
.n7-nav__item--mega:focus-within > .n7-mega-menu,
.n7-nav__item--mega.is-open > .n7-mega-menu {
	opacity: 1 !important;
	visibility: visible !important;
	pointer-events: auto !important;
	transform: translateY(0) !important;
}

.n7-mega-menu__inner {
	display: grid;
	grid-template-columns: 260px 1fr;
	gap: var(--n7-space-8);
	max-width: var(--n7-container-max, 1360px);
	margin: 0 auto;
	padding: var(--n7-space-4) var(--n7-space-8) var(--n7-space-6);
	box-sizing: border-box;
}

/* ==========================================================================
   §6a. BREADCRUMB PATH — Nutro7 / All Products / [Category]
   ========================================================================== */

.n7-mega-breadcrumb {
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 0 0 var(--n7-space-3);
	font-size: 12px;
	font-weight: 400 !important;
	color: var(--n7-color-text-muted);
	border-bottom: 1px solid rgba(0, 0, 0, 0.06);
	grid-column: 1 / -1;
	letter-spacing: 0.01em;
}

.n7-mega-breadcrumb__sep {
	opacity: 0.45;
	font-size: 11px;
	user-select: none;
}

.n7-mega-breadcrumb__item {
	color: var(--n7-color-text-muted);
	text-decoration: none !important;
	font-weight: 400 !important;
	transition: color 0.14s ease;
}

.n7-mega-breadcrumb__item:hover {
	color: var(--n7-color-accent) !important;
}

.n7-mega-breadcrumb__item--active {
	color: var(--n7-color-primary) !important;
	font-weight: 400 !important;
}

/* ==========================================================================
   §7. CATEGORY SIDEBAR (left column)
   ========================================================================== */

.n7-mega-menu__sidebar {
	border-right: 1px solid rgba(0, 0, 0, 0.06);
	padding: var(--n7-space-2) var(--n7-space-4) var(--n7-space-2) 0;
	overflow-y: auto;
	-ms-overflow-style: none;
	scrollbar-width: none;
	background-color: transparent;
}
.n7-mega-menu__sidebar::-webkit-scrollbar { display: none; }

.n7-mega-sidebar__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.n7-mega-sidebar__tab {
	display: flex !important;
	align-items: center !important;
	justify-content: flex-start !important;
	gap: 8px !important;
	width: 100% !important;
	padding: 8px 10px !important;
	font-size: 14px !important;
	font-weight: 400 !important;
	color: var(--n7-color-text-secondary) !important;
	background: transparent !important;
	background-color: transparent !important;
	box-shadow: none !important;
	border: none !important;
	border-radius: var(--n7-radius-sm) !important;
	text-align: left !important;
	position: relative;
	cursor: pointer !important;
	transition: color 0.15s ease, transform 0.2s ease !important;
}

.n7-mega-sidebar__tab:hover,
.n7-mega-sidebar__tab:focus-visible {
	color: var(--n7-color-primary) !important;
	background: transparent !important;
	background-color: transparent !important;
	box-shadow: none !important;
	outline: none !important;
	animation: n7-float-vertical 0.6s ease-in-out infinite !important;
}

.n7-mega-sidebar__tab.is-active {
	color: var(--n7-color-primary) !important;
	background: transparent !important;
	background-color: transparent !important;
	font-weight: 400 !important;
}

.n7-mega-sidebar__label {
	pointer-events: none;
	line-height: 1.3;
	font-weight: 400 !important;
}

/* Curved arrow at start: hidden by default, slides in on hover/active */
.n7-mega-sidebar__curved-arrow {
	display: inline-block !important;
	width: 14px !important;
	height: 14px !important;
	min-width: 14px !important;
	max-width: 14px !important;
	opacity: 0 !important;
	transform: translateX(-4px) !important;
	transition: opacity 0.18s ease, transform 0.18s cubic-bezier(0.4, 0, 0.2, 1) !important;
	pointer-events: none !important;
	flex-shrink: 0 !important;
	color: var(--n7-color-accent) !important;
}

.n7-mega-sidebar__tab:hover .n7-mega-sidebar__curved-arrow,
.n7-mega-sidebar__tab.is-active .n7-mega-sidebar__curved-arrow,
.n7-mega-sidebar__tab:focus-visible .n7-mega-sidebar__curved-arrow {
	opacity: 1 !important;
	transform: translateX(0) !important;
}

/* ==========================================================================
   §8. CONTENT AREA — Only 2 Products per Category (Right Aligned)
   ========================================================================== */

.n7-mega-menu__content {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-items: flex-end; /* Align products to the right side */
	padding: var(--n7-space-2) 0;
	overflow-y: auto;
	-ms-overflow-style: none;
	scrollbar-width: none;
	width: 100%;
}
.n7-mega-menu__content::-webkit-scrollbar { display: none; }

.n7-mega-panels {
	width: 100%;
	display: flex;
	justify-content: flex-end; /* Push panels to the right side */
}

.n7-mega-panel {
	display: none !important;
	opacity: 0;
	width: 100%;
	max-width: 620px;
	margin-left: auto; /* Push active panel to the right */
	transition: opacity 0.18s ease;
}

.n7-mega-panel.is-active {
	display: block !important;
	opacity: 1 !important;
}

.n7-mega-panel[hidden] {
	display: none !important;
}

.n7-mega-panel__head {
	display: none !important; /* No large category display */
}

.n7-mega-panel__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 280px));
	gap: var(--n7-space-6);
	justify-content: end; /* Push product cards to the right side */
	align-items: stretch;
	margin-left: auto;
	width: 100%;
}

/* ==========================================================================
   §9. PRODUCT CARDS (Clean, 400 normal weight, 2 products)
   ========================================================================== */

.n7-mega-product__card {
	display: flex;
	flex-direction: column;
	gap: 0;
	text-decoration: none !important;
	border-radius: var(--n7-radius-sm);
	overflow: hidden;
	background-color: var(--n7-color-surface);
	border: 1px solid rgba(0, 0, 0, 0.06);
	transition:
		box-shadow 0.2s ease,
		transform 0.2s ease,
		border-color 0.2s ease;
}

.n7-mega-product__card:hover {
	box-shadow: 0 8px 24px -4px rgba(26, 48, 38, 0.10);
	transform: translateY(-3px);
	border-color: var(--n7-color-accent-soft);
}

.n7-mega-product__card:focus-visible {
	outline: 2px solid var(--n7-color-accent) !important;
	outline-offset: 2px !important;
}

.n7-mega-product__img-wrap {
	position: relative;
	aspect-ratio: 1;
	overflow: hidden;
	background-color: var(--n7-color-surface-subtle);
}

.n7-mega-product__img,
.n7-mega-product__img-wrap img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.28s ease;
}

.n7-mega-product__card:hover .n7-mega-product__img,
.n7-mega-product__card:hover .n7-mega-product__img-wrap img {
	transform: scale(1.05);
}

.n7-mega-product__info {
	display: flex;
	flex-direction: column;
	gap: 3px;
	padding: 8px 10px 10px;
}

.n7-mega-product__name {
	font-size: 13px;
	font-weight: 400 !important;
	color: var(--n7-color-text-primary);
	line-height: 1.35;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.n7-mega-product__price {
	font-size: 13px;
	font-weight: 400 !important;
	color: var(--n7-color-accent);
	line-height: 1.2;
}

/* WooCommerce struck-through price */
.n7-mega-product__price del,
.n7-mega-product__price del .woocommerce-Price-amount {
	color: var(--n7-color-text-muted);
	font-weight: 400 !important;
}

.n7-mega-product__badge {
	position: absolute;
	top: 6px;
	left: 6px;
	padding: 2px 6px;
	font-size: 9px;
	font-weight: 400 !important;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: #fff;
	background-color: var(--n7-color-sale);
	border-radius: var(--n7-radius-xs);
	line-height: 1.4;
	z-index: 1;
	pointer-events: none;
}

/* Hide Shop All showcase */
.n7-mega-shop-all {
	display: none !important;
}

/* Empty states */
.n7-mega-panel__empty {
	padding: var(--n7-space-4) 0;
}

.n7-mega-panel__empty-msg {
	font-size: 13px;
	font-weight: 400 !important;
	color: var(--n7-color-text-muted);
	margin: 0;
}

.n7-mega-panel__cta-btn {
	display: inline-flex;
	align-items: center;
	gap: var(--n7-space-2);
	padding: 8px 16px;
	font-size: 13px;
	font-weight: 500;
	color: var(--n7-color-accent) !important;
	border: 1px solid var(--n7-color-accent-soft);
	border-radius: var(--n7-radius-sm);
	text-decoration: none !important;
	background-color: var(--n7-color-accent-light);
	transition:
		background-color 0.15s ease,
		border-color 0.15s ease,
		gap 0.15s ease;
}
.n7-mega-panel__cta-btn:hover {
	background-color: var(--n7-color-accent-soft);
	border-color: var(--n7-color-accent);
	gap: var(--n7-space-3);
}

/* Large CTA for custom links like "More" */
.n7-mega-panel__empty--custom {
	padding: var(--n7-space-6) 0;
	align-items: center;
}
.n7-mega-panel__cta-btn--large {
	padding: 12px 24px;
	font-size: 14px;
}

/* ==========================================================================
   §15. UTILITY CONTROLS (Search, Account, Cart)
   ========================================================================== */

.n7-header__utils {
	display: flex;
	align-items: center;
	gap: 4px;
	flex-shrink: 0;
}

/* Shared styles for all utility icon buttons/links */
.n7-header .n7-header__util-btn,
.n7-header button.n7-header__util-btn,
.n7-header a.n7-header__util-btn {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 40px !important;
	height: 40px !important;
	min-width: 40px !important;
	min-height: 40px !important;
	max-width: 40px !important;
	max-height: 40px !important;
	border-radius: var(--n7-radius-sm) !important;
	background: transparent !important;
	color: var(--n7-color-text-primary) !important;
	text-decoration: none !important;
	position: relative !important;
	flex-shrink: 0 !important;
	border: 0 !important;
	padding: 0 !important;
	box-shadow: none !important;
	transition: color 0.15s ease, background-color 0.15s ease !important;
}

.n7-header .n7-header__util-btn:hover,
.n7-header a.n7-header__util-btn:hover {
	color: var(--n7-color-accent) !important;
	background-color: var(--n7-color-accent-light) !important;
}

.n7-header .n7-header__util-btn:focus-visible,
.n7-header a.n7-header__util-btn:focus-visible {
	outline: 2px solid var(--n7-color-accent) !important;
	outline-offset: 2px !important;
}

.n7-header .n7-header__util-btn svg {
	display: block;
	width: 20px;
	height: 20px;
	stroke: currentColor;
	fill: none;
	pointer-events: none;
}

/* Cart item count badge */
.n7-header__cart-count {
	position: absolute;
	top: 3px;
	right: 3px;
	min-width: 16px;
	height: 16px;
	padding: 0 4px;
	background-color: var(--n7-color-accent);
	color: #fff;
	font-size: 10px;
	font-weight: 700;
	line-height: 16px;
	border-radius: var(--n7-radius-full);
	display: none;
	align-items: center;
	justify-content: center;
	pointer-events: none;
}
.n7-header__cart-count.is-visible { display: flex; }

/* ==========================================================================
   §16. HAMBURGER BUTTON (mobile only, shown via §20)
   ========================================================================== */

.n7-header .n7-header__hamburger,
.n7-header button.n7-header__hamburger {
	display: none;
	align-items: center !important;
	justify-content: center !important;
	width: 40px !important;
	height: 40px !important;
	min-width: 40px !important;
	border-radius: var(--n7-radius-sm) !important;
	background: transparent !important;
	color: var(--n7-color-text-primary) !important;
	border: 0 !important;
	padding: 0 !important;
	box-shadow: none !important;
	cursor: pointer !important;
	transition: color 0.15s ease, background-color 0.15s ease !important;
}

.n7-header .n7-header__hamburger:hover {
	background-color: var(--n7-color-accent-light) !important;
}

.n7-hamburger__svg {
	display: block;
	width: 22px;
	height: 22px;
	stroke: currentColor;
	fill: none;
	pointer-events: none;
}

.n7-hamburger__line {
	transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.2s ease;
	transform-box: fill-box;
}

/* Animate hamburger → X when nav is open */
.n7-header__hamburger[aria-expanded="true"] .n7-hamburger__line--top {
	transform: translate(0, 6px) rotate(45deg);
	transform-origin: 12px 6px;
}
.n7-header__hamburger[aria-expanded="true"] .n7-hamburger__line--mid {
	opacity: 0;
}
.n7-header__hamburger[aria-expanded="true"] .n7-hamburger__line--bot {
	transform: translate(0, -6px) rotate(-45deg);
	transform-origin: 12px 18px;
}

/* ==========================================================================
   §17. MOBILE NAV DRAWER
   ========================================================================== */

.n7-mobile-nav {
	position: fixed;
	top: 0;
	left: 0;
	bottom: 0;
	width: min(340px, 88vw);
	background-color: var(--n7-color-surface);
	box-shadow: var(--n7-shadow-drawer);
	z-index: var(--n7-z-drawer);
	transform: translateX(-100%);
	transition: transform var(--n7-transition-slow);
	overflow-y: auto;
	overscroll-behavior: contain;
}
.n7-mobile-nav.is-open { transform: translateX(0); }

.n7-nav-backdrop {
	position: fixed;
	inset: 0;
	background-color: rgba(14, 28, 21, 0.45);
	z-index: var(--n7-z-drawer-backdrop);
	opacity: 0;
	transition: opacity var(--n7-transition-slow);
}
.n7-nav-backdrop.is-active { opacity: 1; }

.n7-mobile-nav__inner {
	display: flex;
	flex-direction: column;
	min-height: 100%;
	padding: var(--n7-space-4);
}

.n7-mobile-nav__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-bottom: var(--n7-space-4);
	border-bottom: 1px solid var(--n7-color-border-subtle);
	margin-bottom: var(--n7-space-3);
}

.n7-mobile-nav__title {
	font-size: var(--n7-text-sm);
	font-weight: 500;
	letter-spacing: var(--n7-tracking-wider);
	text-transform: uppercase;
	color: var(--n7-color-text-muted);
}

.n7-mobile-nav__close {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 36px !important;
	height: 36px !important;
	background: transparent !important;
	border: 1px solid var(--n7-color-border) !important;
	border-radius: var(--n7-radius-sm) !important;
	color: var(--n7-color-text-primary) !important;
	transition: background-color var(--n7-transition-fast), color var(--n7-transition-fast), border-color var(--n7-transition-fast) !important;
}

.n7-mobile-nav__close:hover {
	background-color: var(--n7-color-accent-light) !important;
	color: var(--n7-color-accent) !important;
	border-color: var(--n7-color-accent-soft) !important;
}

.n7-mobile-nav__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.n7-mobile-nav__link {
	display: block;
	padding: 13px var(--n7-space-2);
	font-size: var(--n7-text-base);
	font-weight: 500;
	color: var(--n7-color-text-primary) !important;
	border-bottom: 1px solid var(--n7-color-border-subtle);
	text-decoration: none !important;
	transition: color var(--n7-transition-fast), background-color var(--n7-transition-fast);
}

.n7-mobile-nav__link:hover,
.n7-mobile-nav__link.is-active {
	color: var(--n7-color-accent) !important;
	background-color: var(--n7-color-accent-light) !important;
}

.n7-mobile-nav__utils {
	display: flex;
	flex-direction: column;
	gap: var(--n7-space-2);
	margin-top: auto;
	padding-top: var(--n7-space-6);
	border-top: 1px solid var(--n7-color-border-subtle);
}

.n7-mobile-nav__util-link {
	display: flex;
	align-items: center;
	gap: var(--n7-space-3);
	padding: var(--n7-space-3);
	font-size: var(--n7-text-sm);
	font-weight: 500;
	color: var(--n7-color-text-secondary) !important;
	border-radius: var(--n7-radius-sm);
	text-decoration: none !important;
	transition: color var(--n7-transition-fast), background-color var(--n7-transition-fast);
}

.n7-mobile-nav__util-link:hover {
	color: var(--n7-color-accent) !important;
	background-color: var(--n7-color-accent-light) !important;
}

.n7-mobile-nav__cart-count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 20px;
	height: 20px;
	padding-inline: var(--n7-space-1);
	background-color: var(--n7-color-accent);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	border-radius: var(--n7-radius-full);
	margin-left: auto;
}

/* ==========================================================================
   §18. MOBILE NAV ACCORDION — All Products expand/collapse
   ========================================================================== */

.n7-mobile-nav__item--accordion {
	border-bottom: 1px solid var(--n7-color-border-subtle);
}

.n7-mobile-nav__accordion-btn {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	width: 100% !important;
	padding: 13px var(--n7-space-2) !important;
	font-size: var(--n7-text-base) !important;
	font-weight: 500 !important;
	color: var(--n7-color-text-primary) !important;
	background: transparent !important;
	border: 0 !important;
	text-align: left !important;
	cursor: pointer !important;
	transition: color var(--n7-transition-fast), background-color var(--n7-transition-fast) !important;
}

.n7-mobile-nav__accordion-btn:hover,
.n7-mobile-nav__accordion-btn[aria-expanded="true"] {
	color: var(--n7-color-accent) !important;
	background-color: var(--n7-color-accent-light) !important;
}

.n7-mobile-accordion__chevron {
	flex-shrink: 0;
	pointer-events: none;
	transition: transform 0.22s var(--n7-ease-standard);
}

.n7-mobile-nav__accordion-btn[aria-expanded="true"] .n7-mobile-accordion__chevron {
	transform: rotate(180deg);
}

.n7-mobile-nav__submenu {
	list-style: none;
	margin: 0;
	padding: 0;
	background-color: var(--n7-color-bg);
	border-top: 1px solid var(--n7-color-border-subtle);
}

.n7-mobile-nav__submenu[hidden] { display: none; }

.n7-mobile-nav__sublink {
	display: block;
	padding: 12px var(--n7-space-6);
	font-size: var(--n7-text-sm);
	font-weight: 400;
	color: var(--n7-color-text-secondary) !important;
	border-bottom: 1px solid var(--n7-color-border-subtle);
	text-decoration: none !important;
	transition: color var(--n7-transition-fast), background-color var(--n7-transition-fast);
}

.n7-mobile-nav__subitem:last-child .n7-mobile-nav__sublink {
	border-bottom: none;
}

.n7-mobile-nav__sublink--all {
	font-weight: 500;
	color: var(--n7-color-accent) !important;
}

.n7-mobile-nav__sublink:hover {
	color: var(--n7-color-accent) !important;
	background-color: var(--n7-color-accent-light) !important;
}

/* ==========================================================================
   §19. SEARCH OVERLAY
   ========================================================================== */

.n7-search-overlay {
	position: fixed;
	inset: 0;
	background-color: rgba(14, 28, 21, 0.6);
	z-index: var(--n7-z-modal);
	display: flex;
	align-items: flex-start;
	justify-content: center;
	padding-top: 100px;
	opacity: 0;
	visibility: hidden;
	transition: opacity var(--n7-transition-base), visibility var(--n7-transition-base);
}

.n7-search-overlay.is-open { opacity: 1; visibility: visible; }

.n7-search-overlay__inner {
	background-color: var(--n7-color-surface);
	border-radius: var(--n7-radius-lg);
	padding: var(--n7-space-6);
	width: min(640px, calc(100vw - 2rem));
	box-shadow: var(--n7-shadow-lg);
	display: flex;
	align-items: center;
	gap: var(--n7-space-3);
	transform: translateY(-12px);
	transition: transform var(--n7-transition-base);
}

.n7-search-overlay.is-open .n7-search-overlay__inner { transform: translateY(0); }

.n7-search-overlay__form {
	display: flex;
	align-items: center;
	gap: var(--n7-space-3);
	flex: 1;
}

.n7-search-overlay__input {
	flex: 1;
	border: none !important;
	outline: none !important;
	box-shadow: none !important;
	font-family: var(--n7-font-sans);
	font-size: var(--n7-text-lg);
	font-weight: 400;
	color: var(--n7-color-text-primary);
	background: transparent;
	padding: var(--n7-space-2) 0;
}

.n7-search-overlay__input::placeholder { color: var(--n7-color-text-muted); }

.n7-search-overlay__submit,
.n7-search-overlay__close {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 40px !important;
	height: 40px !important;
	border: none !important;
	background: transparent !important;
	color: var(--n7-color-text-muted) !important;
	border-radius: var(--n7-radius-sm) !important;
	flex-shrink: 0;
	box-shadow: none !important;
	cursor: pointer !important;
	transition: color var(--n7-transition-fast), background-color var(--n7-transition-fast) !important;
}

.n7-search-overlay__submit:hover,
.n7-search-overlay__close:hover {
	color: var(--n7-color-accent) !important;
	background-color: var(--n7-color-accent-light) !important;
}

/* ==========================================================================
   §20. RESPONSIVE BREAKPOINTS
   ========================================================================== */

/* ── Tablet & Mobile (< 1024px) ─────────────────────────────────────────── */
@media (max-width: 1023px) {
	.n7-header__nav-row,
	.n7-header__contact,
	.n7-header__utils .n7-header__search-btn {
		display: none !important;
	}

	.n7-header__main-row {
		border-bottom: none !important;
	}

	.n7-header__inner {
		height: 64px;
		display: flex !important;
		align-items: center !important;
		justify-content: space-between !important;
		position: relative !important;
		padding: 0 16px;
	}

	/* Mobile Controls Group on Left (Hamburger + Search) */
	.n7-header__mobile-controls {
		display: inline-flex !important;
		align-items: center !important;
		gap: 2px !important;
		order: 1 !important;
		z-index: 10 !important;
		margin-right: auto !important;
	}

	.n7-header .n7-header__hamburger,
	.n7-header button.n7-header__hamburger {
		display: inline-flex !important;
		width: 40px !important;
		height: 40px !important;
		min-width: 40px !important;
		min-height: 40px !important;
		border-radius: var(--n7-radius-sm) !important;
		padding: 8px !important;
		cursor: pointer;
	}

	.n7-header .n7-header__mobile-search-btn {
		display: inline-flex !important;
		width: 40px !important;
		height: 40px !important;
		min-width: 40px !important;
		min-height: 40px !important;
		align-items: center !important;
		justify-content: center !important;
		border-radius: var(--n7-radius-sm) !important;
		color: var(--n7-color-text-primary) !important;
		cursor: pointer;
	}

	/* Logo dead-centered */
	.n7-header__logo {
		order: 2 !important;
		position: absolute !important;
		left: 50% !important;
		top: 50% !important;
		transform: translate(-50%, -50%) !important;
		margin: 0 !important;
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		max-width: calc(100% - 190px);
		z-index: 8;
		pointer-events: auto;
	}

	.n7-header__logo-link {
		display: inline-flex !important;
		align-items: center !important;
		justify-content: center !important;
		text-align: center;
		line-height: 1;
	}

	.n7-header__logo-link img,
	.n7-header__logo-img {
		height: 36px !important;
		max-height: 36px !important;
		width: auto !important;
		max-width: 100% !important;
		object-fit: contain !important;
		display: block;
	}

	.n7-header__logo-text {
		font-size: 19px !important;
		white-space: nowrap;
		letter-spacing: -0.01em;
	}

	/* Hide desktop navigation */
	.n7-header__nav {
		display: none !important;
	}

	/* Utils container right-aligned (Account + Cart) */
	.n7-header__utils {
		order: 3 !important;
		display: flex !important;
		align-items: center !important;
		gap: 4px !important;
		margin-left: auto !important;
		z-index: 10 !important;
		flex-shrink: 0 !important;
	}

	/* Cart button visible with count badge */
	.n7-header .n7-header__cart-btn,
	.n7-header a.n7-header__cart-btn {
		display: inline-flex !important;
		width: 40px !important;
		height: 40px !important;
		min-width: 40px !important;
		min-height: 40px !important;
		align-items: center !important;
		justify-content: center !important;
		position: relative !important;
		border-radius: var(--n7-radius-sm) !important;
		color: var(--n7-color-text-primary) !important;
		cursor: pointer;
	}

	.n7-header__cart-count {
		position: absolute !important;
		top: 2px !important;
		right: 2px !important;
		min-width: 17px !important;
		height: 17px !important;
		padding: 0 4px !important;
		font-size: 10px !important;
		font-weight: 700 !important;
		line-height: 17px !important;
		background-color: var(--n7-color-accent, #2E5A44) !important;
		color: #FFFFFF !important;
		border-radius: 9999px !important;
		box-shadow: 0 2px 5px rgba(0, 0, 0, 0.18) !important;
	}

	/* Hide account from top bar on small screens (accessible inside mobile drawer menu) */
	.n7-header__account-btn {
		display: none !important;
	}

	/* Mega menu must not open on mobile */
	.n7-mega-menu {
		display: none !important;
	}
}

/* ── Very Small Phones (< 400px) ────────────────────────────────────────── */
@media (max-width: 399px) {
	.n7-header__inner {
		padding: 0 10px;
		height: 58px;
	}

	.n7-header__logo {
		max-width: calc(100% - 145px);
	}

	.n7-header__logo-link img,
	.n7-header__logo-img {
		height: 32px !important;
		max-height: 32px !important;
	}

	.n7-header__utils {
		gap: 2px;
	}

	.n7-header .n7-header__hamburger,
	.n7-header button.n7-header__hamburger,
	.n7-header .n7-header__search-btn,
	.n7-header button.n7-header__search-btn,
	.n7-header .n7-header__cart-btn,
	.n7-header a.n7-header__cart-btn {
		width: 36px !important;
		height: 36px !important;
		min-width: 36px !important;
		min-height: 36px !important;
	}
}

/* ── Mobile Search Overlay ────────────────────────────────────────────────── */
@media (max-width: 640px) {
	.n7-search-overlay {
		padding-top: 24px;
		padding-left: 12px;
		padding-right: 12px;
	}

	.n7-search-overlay__inner {
		width: 100% !important;
		padding: 12px 16px !important;
		border-radius: var(--n7-radius-md) !important;
	}

	.n7-search-overlay__input {
		font-size: 16px !important; /* Prevents iOS auto-zoom on input focus */
	}
}

/* ==========================================================================
   §21. REDUCED MOTION
   Respect user prefers-reduced-motion preference.
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	/* Cancel all transitions and animations */
	.n7-mega-menu,
	.n7-mega-panel,
	.n7-mega-product__card,
	.n7-mega-product__img,
	.n7-mega-product__img-wrap img,
	.n7-mega-sidebar__tab,
	.n7-mega-sidebar__tab::before,
	.n7-mega-sidebar__arrow,
	.n7-mega-trigger__chevron,
	.n7-mobile-accordion__chevron,
	.n7-mobile-nav,
	.n7-nav-backdrop,
	.n7-search-overlay,
	.n7-search-overlay__inner,
	.n7-hamburger__line,
	.n7-nav__mega-trigger,
	.n7-nav__link,
	.n7-announcement-bar,
	.n7-shop-all__group,
	.n7-shop-all__dot,
	.n7-mega-panel__shop-link,
	.n7-mega-shop-all__view-all {
		transition: none !important;
		animation: none !important;
	}

	/* Disable hover lift on product cards */
	.n7-mega-product__card:hover {
		transform: none;
	}

	/* Shop All rotation still works but without fade
	   (JS respects prefers-reduced-motion and disables auto-rotation) */
}
