/**
 * Nice Hair Wear - Design System & Stylesheet
 * Version: 2.0.1
 *
 * Editorial fashion storefront inspired by premium magazine layouts.
 * Alternating light/dark surfaces, condensed display type,
 * asymmetric compositions, generous negative space.
 */

/* ==========================================================================
   @font-face Declarations
   ========================================================================== */

@font-face {
	font-family: 'Barlow Condensed';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url('../fonts/BarlowCondensed-Regular.ttf') format('truetype');
}

@font-face {
	font-family: 'Barlow Condensed';
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url('../fonts/BarlowCondensed-SemiBold.ttf') format('truetype');
}

@font-face {
	font-family: 'Barlow Condensed';
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url('../fonts/BarlowCondensed-Bold.ttf') format('truetype');
}

@font-face {
	font-family: 'Barlow Condensed';
	font-style: normal;
	font-weight: 800;
	font-display: swap;
	src: url('../fonts/BarlowCondensed-ExtraBold.ttf') format('truetype');
}

@font-face {
	font-family: 'Barlow Condensed';
	font-style: italic;
	font-weight: 400;
	font-display: swap;
	src: url('../fonts/BarlowCondensed-Italic.ttf') format('truetype');
}

@font-face {
	font-family: 'Barlow Condensed';
	font-style: italic;
	font-weight: 700;
	font-display: swap;
	src: url('../fonts/BarlowCondensed-BoldItalic.ttf') format('truetype');
}

@font-face {
	font-family: 'Inter';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url('../fonts/Inter-Regular.ttf') format('truetype');
}

@font-face {
	font-family: 'Inter';
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url('../fonts/Inter-Medium.ttf') format('truetype');
}

@font-face {
	font-family: 'Inter';
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url('../fonts/Inter-SemiBold.ttf') format('truetype');
}

@font-face {
	font-family: 'Inter';
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url('../fonts/Inter-Bold.ttf') format('truetype');
}

/* ==========================================================================
   Design Tokens
   ========================================================================== */

:root {
	/* Palette */
	--nhw-black: #0a0a0c;
	--nhw-charcoal: #1a1a1e;
	--nhw-gray-900: #1e1e22;
	--nhw-gray-800: #27272b;
	--nhw-gray-700: #3a3a40;
	--nhw-gray-500: #6b6b73;
	--nhw-gray-400: #9a9898;
	--nhw-gray-300: #b8b6b3;
	--nhw-gray-200: #d4d2cf;
	--nhw-gray-100: #e8e6e3;
	--nhw-gray-50: #f5f4f2;
	--nhw-off-white: #faf9f7;
	--nhw-white: #ffffff;

	--nhw-cyan: #00d4ff;
	--nhw-cyan-dark: #00a8cc;

	/* Typography */
	--nhw-font-display: 'Barlow Condensed', 'Arial Narrow', 'Helvetica Neue', sans-serif;
	--nhw-font-body: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;

	/* Type Scale */
	--nhw-text-xs: 0.6875rem;
	--nhw-text-sm: 0.8125rem;
	--nhw-text-base: 0.9375rem;
	--nhw-text-md: 1rem;
	--nhw-text-lg: 1.125rem;
	--nhw-text-xl: 1.375rem;
	--nhw-text-2xl: 1.75rem;
	--nhw-text-3xl: 2.25rem;
	--nhw-text-4xl: 3rem;
	--nhw-text-5xl: clamp(2.5rem, 5vw, 4.5rem);
	--nhw-text-6xl: clamp(3rem, 7vw, 6.5rem);

	/* Spacing */
	--nhw-space-2xs: 0.125rem;
	--nhw-space-xs: 0.25rem;
	--nhw-space-sm: 0.5rem;
	--nhw-space-md: 1rem;
	--nhw-space-lg: 1.5rem;
	--nhw-space-xl: 2rem;
	--nhw-space-2xl: 3rem;
	--nhw-space-3xl: 4rem;
	--nhw-space-4xl: 6rem;
	--nhw-space-5xl: 8rem;
	--nhw-space-6xl: 10rem;

	/* Layout */
	--nhw-max-width: 1280px;
	--nhw-max-width-narrow: 680px;
	--nhw-max-width-wide: 1440px;
	--nhw-gutter: clamp(1.5rem, 4vw, 3rem);
	--nhw-radius: 2px;

	/* Transitions */
	--nhw-ease: cubic-bezier(0.4, 0, 0.2, 1);
	--nhw-transition: 0.2s var(--nhw-ease);
	--nhw-transition-slow: 0.4s var(--nhw-ease);
}

/* ==========================================================================
   Reset & Base
   ========================================================================== */

*, *::before, *::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

html {
	scroll-behavior: smooth;
	-webkit-text-size-adjust: 100%;
}

body {
	font-family: var(--nhw-font-body);
	font-size: var(--nhw-text-base);
	line-height: 1.6;
	color: var(--nhw-charcoal);
	background: var(--nhw-off-white);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

a {
	color: inherit;
	text-decoration: none;
	transition: color var(--nhw-transition);
}

a:hover {
	color: var(--nhw-cyan-dark);
}

a:focus-visible {
	outline: 2px solid var(--nhw-cyan);
	outline-offset: 3px;
}

button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
	outline: 2px solid var(--nhw-cyan);
	outline-offset: 2px;
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--nhw-font-display);
	font-weight: 700;
	line-height: 1.05;
	color: var(--nhw-black);
	letter-spacing: -0.01em;
}

p { margin-bottom: 1em; }
p:last-child { margin-bottom: 0; }

::selection {
	background: var(--nhw-cyan);
	color: var(--nhw-black);
}

/* ==========================================================================
   Accessibility
   ========================================================================== */

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

.screen-reader-text:focus {
	background: var(--nhw-black);
	clip: auto;
	clip-path: none;
	color: var(--nhw-white);
	display: block;
	font-size: var(--nhw-text-sm);
	height: auto;
	left: 5px;
	line-height: normal;
	padding: 15px 23px 14px;
	text-decoration: none;
	top: 5px;
	width: auto;
	z-index: 100000;
}

@media (prefers-reduced-motion: reduce) {
	* {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

.skip-link {
	position: absolute;
	top: -100%;
	left: 0;
	background: var(--nhw-cyan);
	color: var(--nhw-black);
	padding: var(--nhw-space-sm) var(--nhw-space-md);
	font-weight: 700;
	font-size: var(--nhw-text-sm);
	z-index: 99999;
	transition: top var(--nhw-transition);
}

.skip-link:focus {
	top: 0;
}

/* ==========================================================================
   Header
   ========================================================================== */

.site-header {
	position: sticky;
	top: 0;
	z-index: 1000;
	background: var(--nhw-black);
	border-bottom: 1px solid rgba(0, 212, 255, 0.12);
}

.site-header-inner {
	max-width: var(--nhw-max-width-wide);
	margin: 0 auto;
	padding: 0 var(--nhw-gutter);
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 110px;
}

/* Logo */
.site-branding {
	flex-shrink: 0;
}

.site-branding a {
	display: flex;
	align-items: center;
}

.site-branding img {
	height: 90px;
	width: auto;
	display: block;
	transition: filter 0.15s ease, box-shadow 0.15s ease;
}

/* Neon hover effect — desktop only */
@media (hover: hover) {
	.site-branding a:hover img,
	.site-branding a:focus img {
		filter: brightness(1.12) saturate(1.2);
		box-shadow:
			0 0 4px rgba(0, 212, 255, 0.5),
			0 0 12px rgba(0, 212, 255, 0.3),
			0 0 24px rgba(0, 168, 204, 0.15);
	}

	.site-branding a:active img {
		filter: brightness(1.2) saturate(1.3);
		box-shadow:
			0 0 2px rgba(0, 212, 255, 0.6),
			0 0 6px rgba(0, 212, 255, 0.4),
			0 0 14px rgba(0, 168, 204, 0.2);
		transition-duration: 0.05s;
	}
}

/* Reduced motion — static glow, no animation */
@media (prefers-reduced-motion: reduce) {
	.site-branding img {
		transition: none;
	}

	@media (hover: hover) {
		.site-branding a:hover img,
		.site-branding a:focus img {
			filter: brightness(1.12) saturate(1.2);
			box-shadow:
				0 0 4px rgba(0, 212, 255, 0.5),
				0 0 12px rgba(0, 212, 255, 0.3),
				0 0 24px rgba(0, 168, 204, 0.15);
		}
	}
}

/* Focus ring for keyboard navigation */
.site-branding a:focus-visible {
	outline: 2px solid var(--nhw-cyan);
	outline-offset: 4px;
	border-radius: 2px;
}

/* Navigation */
.main-navigation {
	display: flex;
	align-items: center;
}

.main-navigation__toggle {
	display: none;
	background: none;
	border: none;
	cursor: pointer;
	padding: var(--nhw-space-sm);
	color: var(--nhw-white);
	width: 44px;
	height: 44px;
	align-items: center;
	justify-content: center;
}

.main-navigation__toggle-bar {
	display: block;
	width: 22px;
	height: 1.5px;
	background: currentColor;
	position: relative;
	transition: background var(--nhw-transition);
}

.main-navigation__toggle-bar::before,
.main-navigation__toggle-bar::after {
	content: '';
	position: absolute;
	left: 0;
	width: 100%;
	height: 1.5px;
	background: currentColor;
	transition: transform var(--nhw-transition);
}

.main-navigation__toggle-bar::before { top: -6px; }
.main-navigation__toggle-bar::after { top: 6px; }

.main-navigation--open .main-navigation__toggle-bar {
	background: transparent;
}

.main-navigation--open .main-navigation__toggle-bar::before {
	top: 0;
	transform: rotate(45deg);
}

.main-navigation--open .main-navigation__toggle-bar::after {
	top: 0;
	transform: rotate(-45deg);
}

.main-navigation__menu {
	list-style: none;
	display: flex;
	align-items: center;
	gap: var(--nhw-space-2xl);
	margin: 0;
	padding: 0;
}

.main-navigation__menu a {
	font-family: var(--nhw-font-body);
	font-size: var(--nhw-text-xs);
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--nhw-gray-400);
	transition: color var(--nhw-transition);
	padding: var(--nhw-space-xs) 0;
}

.main-navigation__menu a:hover {
	color: var(--nhw-white);
}

.header-cart-link {
	position: relative;
}

.cart-count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--nhw-cyan);
	color: var(--nhw-black);
	font-size: 0.5625rem;
	font-weight: 800;
	padding: 0.15em 0.35em;
	border-radius: 1px;
	position: absolute;
	top: -8px;
	right: -12px;
	min-width: 15px;
	text-align: center;
	line-height: 1.2;
}

@media (max-width: 768px) {
	.site-header-inner {
		height: 80px;
	}

	.site-branding img {
		height: 68px;
	}

	.main-navigation__toggle {
		display: flex;
	}

	.main-navigation__menu {
		display: none;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		background: var(--nhw-black);
		border-bottom: 1px solid rgba(0, 212, 255, 0.12);
		flex-direction: column;
		padding: var(--nhw-space-lg) var(--nhw-gutter);
		gap: var(--nhw-space-lg);
	}

	.main-navigation--open .main-navigation__menu {
		display: flex;
	}

	.main-navigation__menu a {
		font-size: var(--nhw-text-sm);
		padding: var(--nhw-space-sm) 0;
	}
}

/* ==========================================================================
   Buttons
   ========================================================================== */

.nhw-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--nhw-space-sm);
	padding: 0.85em 2em;
	font-family: var(--nhw-font-body);
	font-size: var(--nhw-text-xs);
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	border-radius: var(--nhw-radius);
	border: none;
	cursor: pointer;
	transition: all var(--nhw-transition);
	text-decoration: none;
	line-height: 1;
	white-space: nowrap;
}

.nhw-btn:focus-visible {
	outline: 2px solid var(--nhw-cyan);
	outline-offset: 3px;
}

.nhw-btn--dark {
	background: var(--nhw-black);
	color: var(--nhw-white);
}

.nhw-btn--dark:hover {
	background: var(--nhw-charcoal);
	color: var(--nhw-white);
}

.nhw-btn--outline {
	background: transparent;
	color: var(--nhw-gray-500);
	border: 1px solid var(--nhw-gray-300);
}

.nhw-btn--outline:hover {
	border-color: var(--nhw-black);
	color: var(--nhw-black);
}

/* ==========================================================================
   Section Utilities
   ========================================================================== */

.nhw-section {
	padding: var(--nhw-space-5xl) 0;
}

.nhw-section--dark {
	background: var(--nhw-black);
	color: var(--nhw-gray-300);
}

.nhw-section--dark h1,
.nhw-section--dark h2,
.nhw-section--dark h3 {
	color: var(--nhw-white);
}

.nhw-section--gray {
	background: var(--nhw-gray-50);
}

.nhw-section-inner {
	max-width: var(--nhw-max-width);
	margin: 0 auto;
	padding: 0 var(--nhw-gutter);
}

.nhw-section--full .nhw-section-inner {
	max-width: none;
	padding: 0;
}

.nhw-section-label {
	font-family: var(--nhw-font-body);
	font-size: var(--nhw-text-xs);
	font-weight: 600;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--nhw-gray-500);
	margin-bottom: var(--nhw-space-xl);
}

.nhw-section--dark .nhw-section-label {
	color: var(--nhw-gray-400);
}

@media (max-width: 768px) {
	.nhw-section {
		padding: var(--nhw-space-3xl) 0;
	}
}

/* ==========================================================================
   Campaign Hero
   ========================================================================== */

.nhw-hero {
	position: relative;
	min-height: 75vh;
	display: flex;
	align-items: flex-end;
	overflow: hidden;
	background: var(--nhw-gray-100);
}

.nhw-hero-bg {
	position: absolute;
	inset: 0;
}

.nhw-hero-bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 30%;
}

.nhw-hero-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to top,
		rgba(10, 10, 12, 0.85) 0%,
		rgba(10, 10, 12, 0.4) 40%,
		rgba(10, 10, 12, 0.1) 70%,
		transparent 100%
	);
}

.nhw-hero-content {
	position: relative;
	z-index: 2;
	padding: var(--nhw-space-4xl) var(--nhw-gutter);
	max-width: var(--nhw-max-width);
	margin: 0 auto;
	width: 100%;
	padding-bottom: var(--nhw-space-5xl);
}

.nhw-hero-eyebrow {
	font-family: var(--nhw-font-body);
	font-size: var(--nhw-text-xs);
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--nhw-cyan);
	margin-bottom: var(--nhw-space-lg);
}

.nhw-hero-headline {
	font-family: var(--nhw-font-display);
	font-size: var(--nhw-text-6xl);
	font-weight: 700;
	line-height: 0.92;
	color: var(--nhw-white);
	margin-bottom: var(--nhw-space-xl);
	letter-spacing: -0.02em;
	max-width: 700px;
}

.nhw-hero-headline em {
	font-style: italic;
	font-weight: 400;
}

.nhw-hero-support {
	font-size: var(--nhw-text-md);
	color: var(--nhw-gray-300);
	margin-bottom: var(--nhw-space-2xl);
	line-height: 1.6;
	max-width: 400px;
}

.nhw-hero-ctas {
	display: flex;
	gap: var(--nhw-space-md);
	flex-wrap: wrap;
}

@media (max-width: 768px) {
	.nhw-hero {
		min-height: 70vh;
	}

	.nhw-hero-content {
		padding-bottom: var(--nhw-space-3xl);
	}

	.nhw-hero-headline {
		font-size: var(--nhw-text-4xl);
	}
}

/* ==========================================================================
   Featured Product (Editorial Layout)
   ========================================================================== */

.nhw-featured {
	padding: var(--nhw-space-5xl) 0;
}

.nhw-featured-inner {
	max-width: var(--nhw-max-width);
	margin: 0 auto;
	padding: 0 var(--nhw-gutter);
}

.nhw-featured-layout {
	display: grid;
	grid-template-columns: 1.1fr 0.9fr;
	gap: var(--nhw-space-4xl);
	align-items: center;
}

.nhw-featured-layout--reverse {
	grid-template-columns: 0.9fr 1.1fr;
}

.nhw-featured-layout--reverse .nhw-featured-image {
	order: 2;
}

.nhw-featured-layout--reverse .nhw-featured-info {
	order: 1;
}

.nhw-featured-image {
	position: relative;
	overflow: hidden;
	background: var(--nhw-gray-100);
}

.nhw-featured-image img {
	width: 100%;
	height: auto;
	display: block;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	transition: transform var(--nhw-transition-slow);
	max-height: 420px;
}

.nhw-featured-image:hover img {
	transform: scale(1.02);
}

.nhw-featured-image__tag {
	position: absolute;
	top: var(--nhw-space-lg);
	left: var(--nhw-space-lg);
	font-family: var(--nhw-font-body);
	font-size: var(--nhw-text-xs);
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--nhw-white);
	background: var(--nhw-black);
	padding: 0.4em 0.8em;
}

.nhw-featured-info {
	padding: var(--nhw-space-xl) 0;
}

.nhw-featured-info__label {
	font-family: var(--nhw-font-body);
	font-size: var(--nhw-text-xs);
	font-weight: 600;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--nhw-gray-500);
	margin-bottom: var(--nhw-space-lg);
}

.nhw-featured-info__title {
	font-family: var(--nhw-font-display);
	font-size: var(--nhw-text-3xl);
	font-weight: 700;
	text-transform: uppercase;
	line-height: 1;
	margin-bottom: var(--nhw-space-md);
	letter-spacing: -0.01em;
}

.nhw-featured-info__title em {
	font-style: italic;
	font-weight: 400;
	text-transform: none;
}

.nhw-featured-info__price {
	font-family: var(--nhw-font-display);
	font-size: var(--nhw-text-xl);
	font-weight: 600;
	color: var(--nhw-cyan-dark);
	margin-bottom: var(--nhw-space-lg);
}

.nhw-featured-info__desc {
	font-size: var(--nhw-text-base);
	color: var(--nhw-gray-500);
	line-height: 1.6;
	margin-bottom: var(--nhw-space-xl);
	max-width: 380px;
}

@media (max-width: 768px) {
	.nhw-featured-layout,
	.nhw-featured-layout--reverse {
		grid-template-columns: 1fr;
		gap: var(--nhw-space-xl);
	}

	.nhw-featured-layout--reverse .nhw-featured-image,
	.nhw-featured-layout--reverse .nhw-featured-info {
		order: unset;
	}

	.nhw-featured-info__title {
		font-size: var(--nhw-text-2xl);
	}
}

/* ==========================================================================
   Product Grid
   ========================================================================== */

.nhw-product-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--nhw-space-xl);
}

.nhw-product-card {
	position: relative;
}

.nhw-product-card__link {
	display: block;
	text-decoration: none;
	color: inherit;
}

.nhw-product-card__image-wrap {
	position: relative;
	overflow: hidden;
	background: var(--nhw-gray-100);
	aspect-ratio: 3 / 4;
	margin-bottom: var(--nhw-space-md);
}

.nhw-product-card__image-wrap img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--nhw-transition-slow);
}

.nhw-product-card__link:hover .nhw-product-card__image-wrap img {
	transform: scale(1.03);
}

.nhw-product-card__overlay {
	position: absolute;
	inset: 0;
	background: rgba(10, 10, 12, 0.3);
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	transition: opacity var(--nhw-transition);
}

.nhw-product-card__link:hover .nhw-product-card__overlay {
	opacity: 1;
}

.nhw-product-card__overlay-btn {
	font-size: var(--nhw-text-xs);
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--nhw-white);
	padding: 0.7em 1.8em;
	border: 1px solid rgba(255, 255, 255, 0.7);
	transition: all var(--nhw-transition);
}

.nhw-product-card__link:hover .nhw-product-card__overlay-btn {
	background: var(--nhw-white);
	color: var(--nhw-black);
	border-color: var(--nhw-white);
}

.nhw-product-card__title {
	font-family: var(--nhw-font-display);
	font-size: var(--nhw-text-sm);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	margin-bottom: var(--nhw-space-2xs);
}

.nhw-product-card__title a {
	color: var(--nhw-black);
}

.nhw-product-card__title a:hover {
	color: var(--nhw-cyan-dark);
}

.nhw-product-card__price {
	font-family: var(--nhw-font-body);
	font-size: var(--nhw-text-sm);
	font-weight: 600;
	color: var(--nhw-gray-500);
}

@media (max-width: 1024px) {
	.nhw-product-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 480px) {
	.nhw-product-grid {
		grid-template-columns: 1fr;
		gap: var(--nhw-space-2xl);
	}
}

/* ==========================================================================
   Brand Statement
   ========================================================================== */

.nhw-statement {
	padding: var(--nhw-space-4xl) 0;
	text-align: center;
}

.nhw-statement-text {
	font-family: var(--nhw-font-display);
	font-size: var(--nhw-text-3xl);
	font-weight: 400;
	font-style: italic;
	line-height: 1.2;
	color: var(--nhw-gray-700);
	max-width: 800px;
	margin: 0 auto;
	letter-spacing: -0.01em;
}

.nhw-statement-text strong {
	font-weight: 700;
	font-style: normal;
	color: var(--nhw-black);
}

@media (max-width: 768px) {
	.nhw-statement-text {
		font-size: var(--nhw-text-2xl);
	}
}

/* ==========================================================================
   Gifting Workflow
   ========================================================================== */

.nhw-gifting {
	padding: var(--nhw-space-5xl) 0;
	background: var(--nhw-gray-50);
}

.nhw-gifting-inner {
	max-width: var(--nhw-max-width);
	margin: 0 auto;
	padding: 0 var(--nhw-gutter);
}

.nhw-gifting-layout {
	display: grid;
	grid-template-columns: 0.4fr 1fr;
	gap: var(--nhw-space-4xl);
	align-items: start;
}

.nhw-gifting-header {
	position: sticky;
	top: 100px;
}

.nhw-gifting-title {
	font-family: var(--nhw-font-display);
	font-size: var(--nhw-text-4xl);
	font-weight: 700;
	text-transform: uppercase;
	line-height: 0.95;
	margin-bottom: var(--nhw-space-lg);
}

.nhw-gifting-title em {
	font-style: italic;
	font-weight: 400;
	text-transform: none;
}

.nhw-gifting-intro {
	font-size: var(--nhw-text-base);
	color: var(--nhw-gray-500);
	line-height: 1.6;
	max-width: 300px;
}

.nhw-gifting-steps {
	list-style: none;
	counter-reset: nhw-gift;
}

.nhw-gifting-step {
	display: grid;
	grid-template-columns: 60px 1fr;
	gap: var(--nhw-space-lg);
	padding: var(--nhw-space-2xl) 0;
	border-bottom: 1px solid var(--nhw-gray-200);
	counter-increment: nhw-gift;
	align-items: start;
}

.nhw-gifting-step:last-child {
	border-bottom: none;
}

.nhw-gifting-step__number {
	font-family: var(--nhw-font-display);
	font-size: var(--nhw-text-4xl);
	font-weight: 700;
	color: var(--nhw-gray-300);
	line-height: 1;
}

.nhw-gifting-step__content h3 {
	font-family: var(--nhw-font-display);
	font-size: var(--nhw-text-lg);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	margin-bottom: var(--nhw-space-sm);
}

.nhw-gifting-step__content p {
	font-size: var(--nhw-text-base);
	color: var(--nhw-gray-500);
	line-height: 1.6;
}

@media (max-width: 768px) {
	.nhw-gifting-layout {
		grid-template-columns: 1fr;
		gap: var(--nhw-space-2xl);
	}

	.nhw-gifting-header {
		position: static;
	}

	.nhw-gifting-title {
		font-size: var(--nhw-text-3xl);
	}

	.nhw-gifting-step {
		grid-template-columns: 40px 1fr;
		gap: var(--nhw-space-md);
		padding: var(--nhw-space-xl) 0;
	}
}

/* ==========================================================================
   Closing Brand Moment
   ========================================================================== */

.nhw-closing {
	padding: var(--nhw-space-6xl) 0;
	background: var(--nhw-black);
	text-align: center;
	overflow: hidden;
	position: relative;
}

.nhw-closing-logo {
	max-width: 180px;
	height: auto;
	margin: 0 auto var(--nhw-space-xl);
	opacity: 0.9;
}

.nhw-closing-text {
	font-family: var(--nhw-font-display);
	font-size: var(--nhw-text-sm);
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--nhw-gray-500);
}

/* ==========================================================================
   Footer
   ========================================================================== */

.site-footer {
	padding: var(--nhw-space-3xl) 0 var(--nhw-space-xl);
	background: var(--nhw-off-white);
	border-top: 1px solid var(--nhw-gray-200);
}

.site-footer-inner {
	max-width: var(--nhw-max-width);
	margin: 0 auto;
	padding: 0 var(--nhw-gutter);
}

.site-footer-top {
	display: grid;
	grid-template-columns: 1.5fr 1fr 1fr 1fr;
	gap: var(--nhw-space-2xl);
	padding-bottom: var(--nhw-space-2xl);
	border-bottom: 1px solid var(--nhw-gray-200);
	margin-bottom: var(--nhw-space-lg);
}

.site-footer-brand-name {
	font-family: var(--nhw-font-display);
	font-size: var(--nhw-text-lg);
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--nhw-black);
	margin-bottom: var(--nhw-space-sm);
}

.site-footer-brand-logo {
	display: block;
	margin-bottom: var(--nhw-space-md);
	border-radius: var(--nhw-radius);
}

.site-footer-brand-tagline {
	font-size: var(--nhw-text-sm);
	color: var(--nhw-gray-500);
	line-height: 1.5;
	max-width: 260px;
}

.site-footer-col h4 {
	font-family: var(--nhw-font-body);
	font-size: var(--nhw-text-xs);
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--nhw-gray-500);
	margin-bottom: var(--nhw-space-md);
}

.site-footer-col ul {
	list-style: none;
}

.site-footer-col li {
	margin-bottom: var(--nhw-space-sm);
}

.site-footer-col a {
	font-size: var(--nhw-text-sm);
	color: var(--nhw-gray-700);
	transition: color var(--nhw-transition);
}

.site-footer-col a:hover {
	color: var(--nhw-cyan-dark);
}

.site-footer-bottom {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: var(--nhw-space-lg);
}

.site-footer-copy {
	font-size: var(--nhw-text-xs);
	color: var(--nhw-gray-500);
}

.site-footer-fulfillment {
	font-size: var(--nhw-text-xs);
	color: var(--nhw-gray-400);
	font-style: italic;
}

@media (max-width: 768px) {
	.site-footer-top {
		grid-template-columns: 1fr 1fr;
		gap: var(--nhw-space-xl);
	}

	.site-footer-brand {
		grid-column: 1 / -1;
		padding-bottom: var(--nhw-space-lg);
		border-bottom: 1px solid var(--nhw-gray-200);
		margin-bottom: var(--nhw-space-sm);
	}

	.site-footer-bottom {
		flex-direction: column;
		text-align: center;
		gap: var(--nhw-space-sm);
	}
}

@media (max-width: 480px) {
	.site-footer-top {
		grid-template-columns: 1fr;
	}
}

/* ==========================================================================
   Single Product Page
   ========================================================================== */

/* Breadcrumb */
.woocommerce-breadcrumb {
	font-size: var(--nhw-text-xs);
	color: var(--nhw-gray-400);
	margin-bottom: var(--nhw-space-xl);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	max-width: 1240px;
	margin-left: auto;
	margin-right: auto;
	padding: 0 var(--nhw-gutter);
}

.woocommerce-breadcrumb a {
	color: var(--nhw-gray-400);
}

.woocommerce-breadcrumb a:hover {
	color: var(--nhw-cyan-dark);
}

.woocommerce-breadcrumb .separator {
	margin: 0 var(--nhw-space-sm);
}

/* Product Layout */
.nhw-product {
	display: grid;
	grid-template-columns: 1.35fr 1fr;
	gap: var(--nhw-space-3xl);
	max-width: 1240px;
	margin: 0 auto;
	padding: 0 var(--nhw-gutter) var(--nhw-space-2xl);
	align-items: start;
}

/* Gallery */
.nhw-product-gallery {
	position: sticky;
	top: 100px;
	align-self: start;
}

.nhw-product-gallery .woocommerce-product-gallery {
	margin: 0;
	opacity: 1 !important;
	float: none !important;
	width: 100% !important;
	max-width: 100%;
	min-width: 0;
}

.nhw-product-gallery .woocommerce-product-gallery__image {
	max-width: 100%;
	border-radius: var(--nhw-radius);
	overflow: hidden;
	background: var(--nhw-gray-100);
	margin-bottom: var(--nhw-space-sm);
}

.nhw-product-gallery .woocommerce-product-gallery .woocommerce-product-gallery__image img {
	display: block;
	max-width: 100%;
	height: auto;
	object-fit: contain;
	margin-inline: auto;
	border-radius: var(--nhw-radius);
}

.woocommerce-product-gallery__trigger {
	display: none !important;
}

/* Gallery thumbnails */
.woocommerce-product-gallery__thumbnails {
	display: flex;
	gap: var(--nhw-space-sm);
	list-style: none;
	padding: 0;
	margin: var(--nhw-space-md) 0 0;
}

.woocommerce-product-gallery__thumbnails li {
	flex: 0 0 auto;
	width: 80px;
	height: 80px;
	border-radius: var(--nhw-radius);
	overflow: hidden;
	border: 2px solid transparent;
	transition: border-color var(--nhw-transition);
	cursor: pointer;
}

.woocommerce-product-gallery__thumbnails li.active-thumb,
.woocommerce-product-gallery__thumbnails li:hover {
	border-color: var(--nhw-black);
}

.woocommerce-product-gallery__thumbnails img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: var(--nhw-radius);
}

/* Summary */
.nhw-product-summary {
	padding: var(--nhw-space-md) 0 0;
}

.woocommerce div.product .product_title {
	font-family: var(--nhw-font-display);
	font-size: var(--nhw-text-3xl);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: -0.01em;
	color: var(--nhw-black);
	margin-bottom: var(--nhw-space-sm);
	line-height: 1.1;
	word-wrap: break-word;
	overflow-wrap: break-word;
	max-width: 500px;
}

.woocommerce div.product p.price {
	font-family: var(--nhw-font-body);
	font-size: var(--nhw-text-xl);
	font-weight: 600;
	color: var(--nhw-cyan-dark);
	margin-bottom: var(--nhw-space-lg);
}

.woocommerce div.product .woocommerce-product-details__short-description {
	font-size: var(--nhw-text-base);
	color: var(--nhw-gray-500);
	margin-bottom: var(--nhw-space-xl);
	line-height: 1.6;
}

/* Variation form */
.woocommerce div.product form.cart {
	margin-bottom: var(--nhw-space-lg);
}

.woocommerce div.product form.cart table.variations {
	width: 100%;
	margin-bottom: var(--nhw-space-lg);
	border: none;
	background: transparent;
}

.woocommerce div.product form.cart table.variations td,
.woocommerce div.product form.cart table.variations th {
	padding: var(--nhw-space-sm) var(--nhw-space-sm) var(--nhw-space-sm) 0;
	vertical-align: middle;
	border: none;
	background: transparent;
}

.woocommerce div.product form.cart table.variations label {
	font-family: var(--nhw-font-body);
	font-size: var(--nhw-text-xs);
	font-weight: 600;
	color: var(--nhw-gray-500);
	text-transform: uppercase;
	letter-spacing: 0.08em;
}

.woocommerce div.product form.cart table.variations select {
	background: var(--nhw-white);
	color: var(--nhw-black);
	border: 1px solid var(--nhw-gray-300);
	padding: 0.75em 2.4em 0.75em 1em;
	border-radius: var(--nhw-radius);
	font-size: var(--nhw-text-sm);
	font-family: var(--nhw-font-body);
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%235a5858' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 1em center;
	cursor: pointer;
	transition: border-color var(--nhw-transition);
	width: 100%;
}

.woocommerce div.product form.cart table.variations select:hover {
	border-color: var(--nhw-gray-500);
}

.woocommerce div.product form.cart table.variations select:focus {
	border-color: var(--nhw-cyan);
	outline: none;
}

.woocommerce div.product form.cart .variations .reset_variations {
	font-size: var(--nhw-text-xs);
	color: var(--nhw-gray-400);
	vertical-align: middle;
}

/* Purchase row */
.woocommerce div.product form.cart .single_add_to_cart_button {
	background: var(--nhw-black) !important;
	color: var(--nhw-white) !important;
	border: none !important;
	padding: 1em 2.5em;
	border-radius: var(--nhw-radius);
	font-family: var(--nhw-font-body);
	font-size: var(--nhw-text-sm);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	cursor: pointer;
	transition: background var(--nhw-transition);
	vertical-align: middle;
}

.woocommerce div.product form.cart .single_add_to_cart_button:hover {
	background: var(--nhw-charcoal) !important;
}

.woocommerce div.product form.cart .single_add_to_cart_button:focus-visible {
	outline: 2px solid var(--nhw-cyan);
	outline-offset: 2px;
}

.woocommerce div.product form.cart .single_add_to_cart_button.disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

.woocommerce div.product form.cart .quantity {
	display: inline-block;
	margin-right: var(--nhw-space-md);
	vertical-align: middle;
}

.woocommerce div.product form.cart .quantity input {
	background: var(--nhw-white);
	color: var(--nhw-black);
	border: 1px solid var(--nhw-gray-300);
	padding: 0.75em;
	border-radius: var(--nhw-radius);
	font-size: var(--nhw-text-base);
	width: 64px;
	text-align: center;
	transition: border-color var(--nhw-transition);
}

.woocommerce div.product form.cart .quantity input:focus {
	border-color: var(--nhw-cyan);
	outline: none;
}

/* Stock status */
.woocommerce div.product .stock {
	font-size: var(--nhw-text-sm);
	color: var(--nhw-gray-500);
	font-weight: 500;
	display: block;
	margin-bottom: var(--nhw-space-md);
}

.woocommerce div.product .in-stock {
	color: #16a34a;
}

.woocommerce div.product .out-of-stock {
	color: #dc2626;
}

/* Product meta */
.woocommerce div.product .product_meta {
	margin-bottom: var(--nhw-space-lg);
	padding-top: var(--nhw-space-md);
	border-top: 1px solid var(--nhw-gray-200);
}

.woocommerce div.product .product_meta span {
	display: block;
	font-size: var(--nhw-text-xs);
	color: var(--nhw-gray-400);
	margin-bottom: var(--nhw-space-xs);
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.woocommerce div.product .product_meta a {
	color: var(--nhw-gray-500);
}

.woocommerce div.product .product_meta a:hover {
	color: var(--nhw-cyan-dark);
}

/* Hide empty SKU */
.sku_wrapper:empty,
.sku_wrapper .sku:empty,
.sku_wrapper {
	display: none;
}

/* Hide default WooCommerce tabs (handled by template) */
.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product .wc-tab {
	display: none !important;
}

/* Gifting callout beneath Add to Cart */
.nhw-gift-callout {
	border-top: 1px solid var(--nhw-gray-200);
	padding-top: var(--nhw-space-lg);
	margin-top: var(--nhw-space-lg);
}

.nhw-gift-callout__heading {
	font-family: var(--nhw-font-body);
	font-size: var(--nhw-text-sm);
	font-weight: 600;
	color: var(--nhw-black);
	margin-bottom: var(--nhw-space-xs);
}

.nhw-gift-callout__text {
	font-size: var(--nhw-text-sm);
	color: var(--nhw-gray-500);
	line-height: 1.5;
	margin: 0;
}

/* Product Info Sections */
.nhw-product-info {
	max-width: 1240px;
	margin: 0 auto;
	padding: var(--nhw-space-2xl) var(--nhw-gutter) var(--nhw-space-4xl);
	border-top: 1px solid var(--nhw-gray-200);
}

.nhw-info-section {
	margin-bottom: var(--nhw-space-3xl);
}

.nhw-info-section:last-child {
	margin-bottom: 0;
}

.nhw-info-section__title {
	font-family: var(--nhw-font-display);
	font-size: var(--nhw-text-sm);
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--nhw-black);
	margin-bottom: var(--nhw-space-lg);
	padding-bottom: var(--nhw-space-sm);
	border-bottom: 1px solid var(--nhw-gray-200);
}

.nhw-info-section__content {
	color: var(--nhw-gray-500);
	line-height: 1.7;
	font-size: var(--nhw-text-base);
	max-width: var(--nhw-max-width-narrow);
}

.nhw-info-section__content p {
	margin-bottom: 0.75em;
}

.nhw-info-section__content p:last-child {
	margin-bottom: 0;
}

.nhw-info-section__content ul,
.nhw-info-section__content ol {
	padding-left: 1.5em;
	margin: var(--nhw-space-md) 0;
}

.nhw-info-section__content li {
	margin-bottom: var(--nhw-space-sm);
}

/* Related Products */
.nhw-related {
	max-width: 1240px;
	margin: 0 auto;
	padding: var(--nhw-space-4xl) var(--nhw-gutter);
	border-top: 1px solid var(--nhw-gray-200);
}

.nhw-related__title {
	font-family: var(--nhw-font-display);
	font-size: var(--nhw-text-sm);
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--nhw-black);
	margin-bottom: var(--nhw-space-xl);
}

/* Responsive product page */
@media (max-width: 768px) {
	.nhw-product {
		grid-template-columns: 1fr;
		gap: var(--nhw-space-xl);
		padding-bottom: var(--nhw-space-lg);
	}

	.nhw-product-gallery {
		position: static;
	}

	.woocommerce-product-gallery__thumbnails {
		gap: var(--nhw-space-xs);
	}

	.woocommerce-product-gallery__thumbnails li {
		width: 60px;
		height: 60px;
	}

	.woocommerce div.product .product_title {
		font-size: var(--nhw-text-2xl);
		max-width: none;
	}

	.woocommerce div.product form.cart table.variations select {
		min-width: 100%;
	}

	.woocommerce div.product form.cart .quantity {
		display: block;
		margin-right: 0;
		margin-bottom: var(--nhw-space-md);
	}

	.woocommerce div.product form.cart .quantity input {
		width: 100%;
	}

	.woocommerce div.product form.cart .single_add_to_cart_button {
		width: 100%;
		padding: 1em;
	}

	.nhw-gift-callout {
		padding-top: var(--nhw-space-md);
		margin-top: var(--nhw-space-md);
	}

	.nhw-product-info {
		padding-top: var(--nhw-space-xl);
		padding-bottom: var(--nhw-space-2xl);
	}

	.nhw-related {
		padding-top: var(--nhw-space-2xl);
		padding-bottom: var(--nhw-space-2xl);
	}
}

/* ==========================================================================
   Gift Note
   ========================================================================== */

.nhw-gift-note {
	background: var(--nhw-gray-50);
	border: 1px solid var(--nhw-gray-200);
	border-left: 2px solid var(--nhw-cyan);
	padding: var(--nhw-space-md) var(--nhw-space-lg);
	margin-bottom: var(--nhw-space-xl);
	font-size: var(--nhw-text-sm);
	color: var(--nhw-gray-500);
	line-height: 1.5;
}

/* ==========================================================================
   WooCommerce: Global Overrides (Minimal - no template changes)
   ========================================================================== */

.woocommerce-notices-wrapper:empty {
	display: none;
}

.woocommerce-info,
.woocommerce-message,
.woocommerce-error {
	background: var(--nhw-gray-50);
	border: 1px solid var(--nhw-gray-200);
	color: var(--nhw-charcoal);
	border-radius: var(--nhw-radius);
	font-size: var(--nhw-text-sm);
	padding: var(--nhw-space-md) var(--nhw-space-lg);
}

.woocommerce-info { border-left: 3px solid var(--nhw-cyan); }
.woocommerce-error { border-left: 3px solid #e74c3c; }
.woocommerce-message { border-left: 3px solid var(--nhw-cyan); }

/* Buttons - minimal global override */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt {
	background: var(--nhw-black);
	color: var(--nhw-white);
	border: none;
	padding: 0.85em 2em;
	border-radius: var(--nhw-radius);
	font-family: var(--nhw-font-body);
	font-size: var(--nhw-text-xs);
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background var(--nhw-transition);
	line-height: 1;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover {
	background: var(--nhw-charcoal);
	color: var(--nhw-white);
}

/* ==========================================================================
   WooCommerce Shop Archive
   ========================================================================== */

/* Hide default WooCommerce shop header */
.woocommerce-products-header {
	display: none;
}

/* Shop layout */
.nhw-shop-inner {
	max-width: var(--nhw-max-width);
	margin: 0 auto;
	padding: 0 var(--nhw-gutter) var(--nhw-space-4xl);
}

/* Shop header */
.nhw-shop-header {
	padding: var(--nhw-space-4xl) 0 var(--nhw-space-2xl);
}

.nhw-shop-eyebrow {
	font-family: var(--nhw-font-body);
	font-size: var(--nhw-text-xs);
	font-weight: 600;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--nhw-gray-500);
	margin-bottom: var(--nhw-space-lg);
}

.nhw-shop-title {
	font-family: var(--nhw-font-display);
	font-size: var(--nhw-text-5xl);
	font-weight: 700;
	line-height: 0.95;
	color: var(--nhw-black);
	letter-spacing: -0.02em;
	margin-bottom: var(--nhw-space-lg);
}

.nhw-shop-support {
	font-size: var(--nhw-text-md);
	color: var(--nhw-gray-500);
	line-height: 1.6;
	max-width: 500px;
}

/* Utility row — wraps woocommerce_before_shop_loop action output */
.nhw-shop .woocommerce-result-count,
.nhw-shop .woocommerce-ordering {
	float: none;
}

.nhw-shop .woocommerce-result-count {
	font-family: var(--nhw-font-body);
	font-size: var(--nhw-text-xs);
	color: var(--nhw-gray-500);
	letter-spacing: 0.05em;
	text-transform: uppercase;
	margin: 0;
}

.nhw-shop .woocommerce-ordering {
	margin: 0;
}

.nhw-shop .woocommerce-ordering select {
	font-family: var(--nhw-font-body);
	font-size: var(--nhw-text-xs);
	font-weight: 500;
	color: var(--nhw-charcoal);
	background: transparent;
	border: 1px solid var(--nhw-gray-300);
	padding: 0.5em 2em 0.5em 0.75em;
	border-radius: var(--nhw-radius);
	cursor: pointer;
	transition: border-color var(--nhw-transition);
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%235a5858' d='M0 0l5 6 5-6z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 0.75em center;
}

.nhw-shop .woocommerce-ordering select:focus {
	border-color: var(--nhw-cyan);
	outline: none;
}

/* ==========================================================================
   Product Grid — Neutralize WooCommerce float/width layout
   ========================================================================== */

/* Override WooCommerce's float-based layout with CSS Grid */
.nhw-shop ul.products {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr) !important;
	gap: var(--nhw-space-2xl) var(--nhw-space-xl);
	list-style: none;
	margin: 0 !important;
	padding: 0;
	clear: none !important;
}

.nhw-shop ul.products::before,
.nhw-shop ul.products::after {
	display: none !important;
}

/* Neutralize WooCommerce float/width/margin/clear on product cards */
.nhw-shop ul.products li.product,
.woocommerce-page.nhw-shop ul.products li.product,
.woocommerce.nhw-shop ul.products li.product {
	float: none !important;
	clear: none !important;
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0;
	position: relative;
	min-width: 0;
}

.nhw-shop ul.products li.first,
.nhw-shop ul.products li.last {
	clear: none !important;
}

.nhw-shop ul.products li.first {
	margin-left: 0 !important;
}

.nhw-shop ul.products li.last {
	margin-right: 0 !important;
}

/* Neutralize columns-3 width rules */
.nhw-shop ul.products.columns-3 li.product,
.woocommerce.nhw-shop ul.products.columns-3 li.product,
.woocommerce-page.nhw-shop ul.products.columns-3 li.product {
	width: auto !important;
}

/* ==========================================================================
   Product Card
   ========================================================================== */

/* Product link wrapper */
.nhw-shop ul.products li.product a.woocommerce-LoopProduct-link {
	display: block;
	text-decoration: none;
	color: inherit;
	width: 100%;
}

/* Image area */
.nhw-shop ul.products li.product a.woocommerce-LoopProduct-link img,
.woocommerce.nhw-shop ul.products li.product a.woocommerce-LoopProduct-link img {
	display: block;
	width: 100% !important;
	height: auto;
	aspect-ratio: 4 / 5;
	object-fit: contain;
	background: var(--nhw-gray-50);
	border-radius: var(--nhw-radius);
	transition: transform var(--nhw-transition-slow);
}

.nhw-shop ul.products li.product a.woocommerce-LoopProduct-link:hover img,
.nhw-shop ul.products li.product a.woocommerce-LoopProduct-link:focus img {
	transform: scale(1.02);
}

/* Product title */
.nhw-shop ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--nhw-font-display);
	font-size: var(--nhw-text-sm);
	font-weight: 600;
	color: var(--nhw-black);
	letter-spacing: 0.02em;
	margin: var(--nhw-space-md) 0 var(--nhw-space-xs);
	padding: 0;
	text-transform: none;
	line-height: 1.3;
}

/* Price */
.nhw-shop ul.products li.product .price {
	font-family: var(--nhw-font-body);
	font-size: var(--nhw-text-sm);
	font-weight: 600;
	color: var(--nhw-cyan-dark);
	margin: 0;
}

.nhw-shop ul.products li.product .price .woocommerce-Price-currencySymbol {
	display: none;
}

/* Select Options button — outside the product link */
.nhw-shop ul.products li.product .button,
.nhw-shop ul.products li.product .add_to_cart_button {
	font-family: var(--nhw-font-body);
	font-size: var(--nhw-text-xs);
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--nhw-gray-500);
	background: transparent;
	border: 1px solid var(--nhw-gray-300);
	padding: 0.6em 1.5em;
	margin-top: var(--nhw-space-sm);
	border-radius: var(--nhw-radius);
	transition: all var(--nhw-transition);
	display: inline-block;
}

.nhw-shop ul.products li.product .button:hover,
.nhw-shop ul.products li.product .add_to_cart_button:hover {
	background: var(--nhw-black);
	color: var(--nhw-white);
	border-color: var(--nhw-black);
}

/* Focus states */
.nhw-shop ul.products li.product a.woocommerce-LoopProduct-link:focus {
	outline: 2px solid var(--nhw-cyan);
	outline-offset: 3px;
	border-radius: var(--nhw-radius);
}

.nhw-shop ul.products li.product .button:focus-visible,
.nhw-shop ul.products li.product .add_to_cart_button:focus-visible {
	outline: 2px solid var(--nhw-cyan);
	outline-offset: 2px;
}

/* ==========================================================================
   Responsive Grid
   ========================================================================== */

@media (max-width: 1024px) {
	.nhw-shop ul.products,
	.woocommerce.nhw-shop ul.products,
	.woocommerce-page.nhw-shop ul.products {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: var(--nhw-space-xl) var(--nhw-space-lg);
	}

	.nhw-shop-title {
		font-size: var(--nhw-text-4xl);
	}
}

@media (max-width: 768px) {
	.nhw-shop-header {
		padding: var(--nhw-space-3xl) 0 var(--nhw-space-xl);
	}

	.nhw-shop-title {
		font-size: var(--nhw-text-3xl);
	}

	.nhw-shop ul.products,
	.woocommerce.nhw-shop ul.products,
	.woocommerce-page.nhw-shop ul.products {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: var(--nhw-space-lg) var(--nhw-space-md);
	}

	.nhw-shop ul.products li.product .woocommerce-loop-product__title {
		font-size: var(--nhw-text-xs);
	}

	.nhw-shop ul.products li.product .price {
		font-size: var(--nhw-text-xs);
	}

	.nhw-shop ul.products li.product .button,
	.nhw-shop ul.products li.product .add_to_cart_button {
		font-size: 0.625rem;
		padding: 0.5em 1em;
	}
}

@media (max-width: 480px) {
	.nhw-shop ul.products,
	.woocommerce.nhw-shop ul.products,
	.woocommerce-page.nhw-shop ul.products {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: var(--nhw-space-md) var(--nhw-space-sm);
	}

	.nhw-shop ul.products li.product a.woocommerce-LoopProduct-link img {
		aspect-ratio: 3 / 4;
	}

	.nhw-shop ul.products li.product .woocommerce-loop-product__title {
		font-size: 0.6875rem;
		line-height: 1.2;
	}

	.nhw-shop ul.products li.product .price {
		font-size: 0.6875rem;
	}

	.nhw-shop ul.products li.product .button,
	.nhw-shop ul.products li.product .add_to_cart_button {
		display: none;
	}
}

/* ==========================================================================
   WooCommerce Cart & Checkout — Block-based
   ========================================================================== */

/* Shared page structure */
.woocommerce-cart,
.woocommerce-checkout {
	background: var(--nhw-off-white);
}

.woocommerce-cart .site-main,
.woocommerce-checkout .site-main {
	max-width: var(--nhw-max-width);
	margin: 0 auto;
	padding: 0 var(--nhw-gutter) var(--nhw-space-4xl);
}

/* Suppress default WordPress page title on Cart and Checkout */
body.woocommerce-cart .entry-header,
body.woocommerce-checkout .entry-header {
	display: none !important;
}

body.woocommerce-cart .entry-title,
body.woocommerce-checkout .entry-title {
	display: none !important;
}

/* Editorial page introduction */
.nhw-cart-header,
.nhw-checkout-header {
	padding: var(--nhw-space-4xl) 0 var(--nhw-space-xl);
}

.nhw-cart-eyebrow,
.nhw-checkout-eyebrow {
	font-family: var(--nhw-font-body);
	font-size: var(--nhw-text-xs);
	font-weight: 600;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--nhw-gray-500);
	margin-bottom: var(--nhw-space-lg);
}

.nhw-cart-title,
.nhw-checkout-title {
	font-family: var(--nhw-font-display);
	font-size: var(--nhw-text-4xl);
	font-weight: 700;
	line-height: 1;
	color: var(--nhw-black);
	letter-spacing: -0.01em;
	margin-bottom: var(--nhw-space-lg);
}

.nhw-cart-support,
.nhw-checkout-support {
	font-size: var(--nhw-text-md);
	color: var(--nhw-gray-500);
	line-height: 1.6;
	max-width: 500px;
}

/* ==========================================================================
   Cart Blocks Styling
   ========================================================================== */

/* Main cart container */
.wp-block-woocommerce-cart {
	background: transparent;
	border: none;
	box-shadow: none;
	border-radius: 0;
}

/* Two-column layout — merchandise gets priority */
.wp-block-woocommerce-filled-cart-block {
	display: grid;
	grid-template-columns: minmax(0, 1.5fr) minmax(320px, 0.75fr);
	gap: var(--nhw-space-3xl);
	align-items: start;
}

/* Cart items section */
.wp-block-woocommerce-cart-items-block {
	background: transparent;
	border: none;
	box-shadow: none;
	border-radius: 0;
	padding: 0;
}

.wp-block-woocommerce-cart-line-items-block {
	background: transparent;
	border: none;
	box-shadow: none;
	border-radius: 0;
	padding: 0;
}

/* Individual cart item — full-width merchandise row */
.wp-block-woocommerce-cart-line-items-block .wc-block-components-totals-item,
.wp-block-woocommerce-cart-line-items-block .woocommerce-cart-form__cart-item {
	background: transparent;
	border: none;
	border-radius: 0;
	padding: var(--nhw-space-xl) 0;
	margin-bottom: 0;
	display: grid;
	grid-template-columns: 120px 1fr;
	gap: var(--nhw-space-xl);
	align-items: start;
	border-bottom: 1px solid var(--nhw-gray-200);
}

.wp-block-woocommerce-cart-line-items-block .wc-block-components-totals-item:last-child,
.wp-block-woocommerce-cart-line-items-block .woocommerce-cart-form__cart-item:last-child {
	border-bottom: none;
}

/* Cart item image — substantial size */
.wp-block-woocommerce-cart-line-items-block .wc-block-components-totals-item__image,
.wp-block-woocommerce-cart-line-items-block .product-thumbnail {
	width: 120px;
	height: 120px;
	border-radius: var(--nhw-radius);
	overflow: hidden;
	background: var(--nhw-gray-50);
	flex-shrink: 0;
}

.wp-block-woocommerce-cart-line-items-block .wc-block-components-totals-item__image img,
.wp-block-woocommerce-cart-line-items-block .product-thumbnail img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	display: block;
}

/* Cart item details */
.wp-block-woocommerce-cart-line-items-block .wc-block-components-totals-item__name,
.wp-block-woocommerce-cart-line-items-block .product-name {
	font-family: var(--nhw-font-display);
	font-size: var(--nhw-text-base);
	font-weight: 600;
	color: var(--nhw-black);
	margin-bottom: var(--nhw-space-xs);
	line-height: 1.3;
}

.wp-block-woocommerce-cart-line-items-block .wc-block-components-totals-item__name a,
.wp-block-woocommerce-cart-line-items-block .product-name a {
	color: var(--nhw-black);
	text-decoration: none;
	transition: color var(--nhw-transition);
}

.wp-block-woocommerce-cart-line-items-block .wc-block-components-totals-item__name a:hover,
.wp-block-woocommerce-cart-line-items-block .product-name a:hover {
	color: var(--nhw-cyan-dark);
}

/* Variation details */
.wp-block-woocommerce-cart-line-items-block .wc-block-components-totals-item__description,
.wp-block-woocommerce-cart-line-items-block .product-attributes {
	font-size: var(--nhw-text-sm);
	color: var(--nhw-gray-500);
	line-height: 1.5;
	margin-bottom: var(--nhw-space-sm);
}

/* Quantity input */
.wp-block-woocommerce-cart-line-items-block .wc-block-components-quantity-selector,
.wp-block-woocommerce-cart-line-items-block .quantity {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--nhw-gray-300);
	border-radius: var(--nhw-radius);
	overflow: hidden;
}

.wp-block-woocommerce-cart-line-items-block .wc-block-components-quantity-selector input,
.wp-block-woocommerce-cart-line-items-block .quantity input {
	width: 48px;
	height: 40px;
	text-align: center;
	font-family: var(--nhw-font-body);
	font-size: var(--nhw-text-sm);
	border: none;
	background: transparent;
	color: var(--nhw-black);
	padding: 0;
}

.wp-block-woocommerce-cart-line-items-block .wc-block-components-quantity-selector button,
.wp-block-woocommerce-cart-line-items-block .quantity .minus,
.wp-block-woocommerce-cart-line-items-block .quantity .plus {
	width: 40px;
	height: 40px;
	background: transparent;
	border: none;
	color: var(--nhw-gray-500);
	cursor: pointer;
	font-size: var(--nhw-text-md);
	display: flex;
	align-items: center;
	justify-content: center;
	transition: color var(--nhw-transition);
}

.wp-block-woocommerce-cart-line-items-block .wc-block-components-quantity-selector button:hover,
.wp-block-woocommerce-cart-line-items-block .quantity .minus:hover,
.wp-block-woocommerce-cart-line-items-block .quantity .plus:hover {
	color: var(--nhw-black);
}

/* Price styling */
.wp-block-woocommerce-cart-line-items-block .wc-block-components-totals-item__price,
.wp-block-woocommerce-cart-line-items-block .product-price {
	font-family: var(--nhw-font-body);
	font-size: var(--nhw-text-sm);
	font-weight: 600;
	color: var(--nhw-cyan-dark);
}

/* Remove button */
.wp-block-woocommerce-cart-line-items-block .wc-block-components-order-summary-item-remove-button,
.wp-block-woocommerce-cart-line-items-block .product-remove a {
	color: var(--nhw-gray-400);
	font-size: var(--nhw-text-xs);
	text-decoration: none;
	transition: color var(--nhw-transition);
	background: none;
	border: none;
	cursor: pointer;
	padding: var(--nhw-space-xs);
	margin: 0;
}

.wp-block-woocommerce-cart-line-items-block .wc-block-components-order-summary-item-remove-button:hover,
.wp-block-woocommerce-cart-line-items-block .product-remove a:hover {
	color: var(--nhw-cyan-dark);
}

/* Cart totals / order summary — editorial panel */
.wp-block-woocommerce-cart-totals-block {
	background: var(--nhw-gray-50);
	border: none;
	border-radius: var(--nhw-radius);
	padding: var(--nhw-space-xl);
	position: sticky;
	top: 120px;
	border-top: 3px solid var(--nhw-cyan);
}

.wp-block-woocommerce-cart-order-summary-block {
	background: transparent;
	border: none;
	box-shadow: none;
	border-radius: 0;
	padding: 0;
}

/* Order summary heading */
.wp-block-woocommerce-cart-order-summary-heading-block h2,
.wp-block-woocommerce-cart-order-summary-heading-block h3 {
	font-family: var(--nhw-font-display);
	font-size: var(--nhw-text-lg);
	font-weight: 700;
	color: var(--nhw-black);
	margin-bottom: var(--nhw-space-lg);
	padding-bottom: 0;
	border-bottom: none;
}

/* Subtotal, shipping, taxes, fees */
.wp-block-woocommerce-cart-order-summary-subtotal-block,
.wp-block-woocommerce-cart-order-summary-shipping-block,
.wp-block-woocommerce-cart-order-summary-taxes-block,
.wp-block-woocommerce-cart-order-summary-fee-block,
.wp-block-woocommerce-cart-order-summary-discount-block {
	padding: var(--nhw-space-sm) 0;
	font-size: var(--nhw-text-sm);
	color: var(--nhw-gray-700);
	border-bottom: none;
}

/* Total row — prominent */
.wp-block-woocommerce-cart-order-summary-totals-block {
	border-top: 1px solid var(--nhw-gray-300);
	padding-top: var(--nhw-space-lg);
	margin-top: var(--nhw-space-md);
	font-weight: 700;
}

.wp-block-woocommerce-cart-order-summary-totals-block .wc-block-components-totals-item {
	font-size: var(--nhw-text-xl);
	font-weight: 700;
	color: var(--nhw-black);
}

/* Checkout button */
.wp-block-woocommerce-proceed-to-checkout-block {
	margin-top: var(--nhw-space-lg);
}

.wp-block-woocommerce-proceed-to-checkout-block .wc-block-components-checkout-button {
	background: var(--nhw-black) !important;
	color: var(--nhw-white) !important;
	border: none !important;
	padding: 1em 2em !important;
	border-radius: var(--nhw-radius) !important;
	font-family: var(--nhw-font-body) !important;
	font-size: var(--nhw-text-sm) !important;
	font-weight: 600 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.08em !important;
	cursor: pointer !important;
	transition: background var(--nhw-transition) !important;
	width: 100% !important;
	text-align: center !important;
	display: block !important;
}

.wp-block-woocommerce-proceed-to-checkout-block .wc-block-components-checkout-button:hover {
	background: var(--nhw-charcoal) !important;
}

.wp-block-woocommerce-proceed-to-checkout-block .wc-block-components-checkout-button:focus-visible {
	outline: 2px solid var(--nhw-cyan);
	outline-offset: 2px;
}

/* Coupon — secondary disclosure action */
.wp-block-woocommerce-cart-order-summary-coupon-form-block {
	padding: var(--nhw-space-md) 0;
	border-bottom: 1px solid var(--nhw-gray-200);
	margin-bottom: var(--nhw-space-md);
}

/* Coupon toggle/disclosure link */
.wp-block-woocommerce-cart-order-summary-coupon-form-block .wc-block-components-totals-form__toggle,
.wp-block-woocommerce-cart-order-summary-coupon-form-block button[aria-expanded] {
	font-family: var(--nhw-font-body);
	font-size: var(--nhw-text-sm);
	color: var(--nhw-gray-500);
	background: none;
	border: none;
	cursor: pointer;
	padding: 0;
	text-decoration: underline;
	text-underline-offset: 3px;
	transition: color var(--nhw-transition);
}

.wp-block-woocommerce-cart-order-summary-coupon-form-block .wc-block-components-totals-form__toggle:hover,
.wp-block-woocommerce-cart-order-summary-coupon-form-block button[aria-expanded]:hover {
	color: var(--nhw-cyan-dark);
}

/* Coupon expanded form */
.wp-block-woocommerce-cart-order-summary-coupon-form-block .wc-block-components-totals-form {
	display: flex;
	gap: var(--nhw-space-sm);
	margin-top: var(--nhw-space-sm);
}

.wp-block-woocommerce-cart-order-summary-coupon-form-block input {
	font-family: var(--nhw-font-body);
	font-size: var(--nhw-text-sm);
	border: 1px solid var(--nhw-gray-300);
	border-radius: var(--nhw-radius);
	padding: 0.5em 0.75em;
	background: var(--nhw-white);
	color: var(--nhw-black);
	transition: border-color var(--nhw-transition);
	flex: 1;
	height: 40px;
	box-sizing: border-box;
}

.wp-block-woocommerce-cart-order-summary-coupon-form-block input:focus {
	border-color: var(--nhw-cyan);
	outline: none;
}

.wp-block-woocommerce-cart-order-summary-coupon-form-block button {
	font-family: var(--nhw-font-body);
	font-size: var(--nhw-text-xs);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	background: transparent;
	color: var(--nhw-gray-500);
	border: 1px solid var(--nhw-gray-300);
	padding: 0.5em 1em;
	border-radius: var(--nhw-radius);
	cursor: pointer;
	transition: all var(--nhw-transition);
	height: 40px;
	box-sizing: border-box;
}

.wp-block-woocommerce-cart-order-summary-coupon-form-block button:hover {
	background: var(--nhw-black);
	color: var(--nhw-white);
	border-color: var(--nhw-black);
}

/* Express payment */
.wp-block-woocommerce-cart-express-payment-block {
	margin-top: var(--nhw-space-lg);
	padding-top: var(--nhw-space-lg);
	border-top: 1px solid var(--nhw-gray-200);
}

/* Empty cart */
.wp-block-woocommerce-empty-cart-block {
	text-align: center;
	padding: var(--nhw-space-4xl) 0;
}

.wp-block-woocommerce-empty-cart-block h2 {
	font-family: var(--nhw-font-display);
	font-size: var(--nhw-text-3xl);
	font-weight: 700;
	color: var(--nhw-black);
	margin-bottom: var(--nhw-space-lg);
}

.wp-block-woocommerce-empty-cart-block p {
	font-size: var(--nhw-text-md);
	color: var(--nhw-gray-500);
	margin-bottom: var(--nhw-space-xl);
}

.wp-block-woocommerce-empty-cart-block a {
	color: var(--nhw-black);
	text-decoration: underline;
	text-underline-offset: 3px;
	transition: color var(--nhw-transition);
}

.wp-block-woocommerce-empty-cart-block a:hover {
	color: var(--nhw-cyan-dark);
}

/* ==========================================================================
   Checkout Blocks Styling
   ========================================================================== */

/* Remove wrapper border — single field boundary only */
.woocommerce-checkout .wc-block-components-text-input {
	border: none !important;
	background: transparent !important;
	padding: 0 !important;
	box-shadow: none !important;
}

/* Single field boundary on the actual input */
.woocommerce-checkout .wc-block-components-text-input input,
.woocommerce-checkout .wc-block-components-text-input textarea,
.woocommerce-checkout .wc-block-components-combobox-control input,
.woocommerce-checkout .wc-block-components-country-input input,
.woocommerce-checkout .wc-block-components-state-input input,
.woocommerce-checkout .form-row input,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .form-row textarea {
	font-family: var(--nhw-font-body);
	font-size: var(--nhw-text-sm);
	border: 1px solid var(--nhw-gray-300);
	border-radius: var(--nhw-radius);
	padding: 0.85em 1em;
	background: var(--nhw-white);
	color: var(--nhw-black);
	transition: border-color var(--nhw-transition);
	width: 100%;
	box-sizing: border-box;
	height: 48px;
}

.woocommerce-checkout .wc-block-components-text-input input:focus,
.woocommerce-checkout .wc-block-components-text-input textarea:focus,
.woocommerce-checkout .wc-block-components-combobox-control input:focus,
.woocommerce-checkout .wc-block-components-country-input input:focus,
.woocommerce-checkout .wc-block-components-state-input input:focus,
.woocommerce-checkout .form-row input:focus,
.woocommerce-checkout .form-row select:focus,
.woocommerce-checkout .form-row textarea:focus {
	border-color: var(--nhw-cyan);
	outline: none;
	box-shadow: 0 0 0 2px rgba(0, 212, 255, 0.15);
}

/* Select/combobox fields */
.woocommerce-checkout .wc-block-components-combobox-control,
.woocommerce-checkout .wc-block-components-country-input,
.woocommerce-checkout .wc-block-components-state-input {
	position: relative;
}

.woocommerce-checkout .wc-block-components-combobox-control input,
.woocommerce-checkout .wc-block-components-country-input input,
.woocommerce-checkout .wc-block-components-state-input input {
	padding-right: 2.5em;
}

/* Labels — consistent position and style */
.woocommerce-checkout .wc-block-components-text-input label,
.woocommerce-checkout .form-row label {
	font-family: var(--nhw-font-body);
	font-size: var(--nhw-text-xs);
	font-weight: 600;
	color: var(--nhw-gray-700);
	margin-bottom: var(--nhw-space-xs);
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

/* Required indicators */
.woocommerce-checkout .required {
	color: var(--nhw-cyan-dark);
}

/* Checkout order summary sidebar */
.woocommerce-checkout .wc-block-components-order-summary {
	background: var(--nhw-white);
	border: 1px solid var(--nhw-gray-200);
	border-radius: var(--nhw-radius);
	padding: var(--nhw-space-xl);
	position: sticky;
	top: 120px;
}

/* Place order button */
.woocommerce-checkout .wc-block-components-checkout-place-order-button,
.woocommerce-checkout #place_order {
	background: var(--nhw-black) !important;
	color: var(--nhw-white) !important;
	border: none !important;
	padding: 1em 2em !important;
	border-radius: var(--nhw-radius) !important;
	font-family: var(--nhw-font-body) !important;
	font-size: var(--nhw-text-sm) !important;
	font-weight: 600 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.08em !important;
	cursor: pointer !important;
	transition: background var(--nhw-transition) !important;
	width: 100% !important;
	text-align: center !important;
}

.woocommerce-checkout .wc-block-components-checkout-place-order-button:hover,
.woocommerce-checkout #place_order:hover {
	background: var(--nhw-charcoal) !important;
}

.woocommerce-checkout .wc-block-components-checkout-place-order-button:focus-visible,
.woocommerce-checkout #place_order:focus-visible {
	outline: 2px solid var(--nhw-cyan);
	outline-offset: 2px;
}

/* Checkbox and radio styling */
.woocommerce-checkout input[type="checkbox"],
.woocommerce-checkout input[type="radio"] {
	accent-color: var(--nhw-black);
}

/* Select2 overrides */
.woocommerce-checkout .select2-container--default .select2-selection--single {
	border: 1px solid var(--nhw-gray-300);
	border-radius: var(--nhw-radius);
	height: 48px;
	padding: 0;
}

.woocommerce-checkout .select2-container--default .select2-selection--single:focus {
	border-color: var(--nhw-cyan);
	outline: none;
}

.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
	font-family: var(--nhw-font-body);
	font-size: var(--nhw-text-sm);
	color: var(--nhw-black);
	line-height: 46px;
	padding-left: 1em;
}

.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 46px;
}

/* Payment method containers */
.woocommerce-checkout .wc_payment_method {
	border: 1px solid var(--nhw-gray-200);
	border-radius: var(--nhw-radius);
	margin-bottom: var(--nhw-space-md);
	padding: var(--nhw-space-lg);
	background: var(--nhw-white);
}

.woocommerce-checkout .wc_payment_method label {
	font-weight: 600;
}

/* Terms and conditions */
.woocommerce-checkout .woocommerce-terms-and-conditions {
	border: 1px solid var(--nhw-gray-200);
	border-radius: var(--nhw-radius);
	padding: var(--nhw-space-lg);
	margin-bottom: var(--nhw-space-xl);
	background: var(--nhw-white);
}

/* Error states */
.woocommerce-checkout .woocommerce-error,
.woocommerce-checkout .woocommerce-invalid input,
.woocommerce-checkout .woocommerce-invalid select,
.woocommerce-checkout .wc-block-components-text-input.has-error input {
	border-color: #dc2626;
}

.woocommerce-checkout .woocommerce-error {
	background: #fef2f2;
	border: 1px solid #fecaca;
	border-left: 3px solid #dc2626;
	border-radius: var(--nhw-radius);
	padding: var(--nhw-space-md) var(--nhw-space-lg);
	margin-bottom: var(--nhw-space-lg);
	font-size: var(--nhw-text-sm);
	color: #991b1b;
}

/* Success notices */
.woocommerce-checkout .woocommerce-message,
.woocommerce-cart .woocommerce-message {
	background: #f0fdf4;
	border: 1px solid #bbf7d0;
	border-left: 3px solid #16a34a;
	border-radius: var(--nhw-radius);
	padding: var(--nhw-space-md) var(--nhw-space-lg);
	margin-bottom: var(--nhw-space-lg);
	font-size: var(--nhw-text-sm);
	color: #166534;
}

/* Info notices */
.woocommerce-checkout .woocommerce-info {
	background: #eff6ff;
	border: 1px solid #bfdbfe;
	border-left: 3px solid #2563eb;
	border-radius: var(--nhw-radius);
	padding: var(--nhw-space-md) var(--nhw-space-lg);
	margin-bottom: var(--nhw-space-lg);
	font-size: var(--nhw-text-sm);
	color: #1e40af;
}

/* ==========================================================================
   Cart & Checkout Responsive
   ========================================================================== */

@media (max-width: 1024px) {
	.wp-block-woocommerce-filled-cart-block {
		grid-template-columns: minmax(0, 1.2fr) minmax(280px, 0.8fr);
		gap: var(--nhw-space-2xl);
	}
}

@media (max-width: 768px) {
	.woocommerce-cart .site-main,
	.woocommerce-checkout .site-main {
		padding: 0 var(--nhw-gutter) var(--nhw-space-2xl);
	}

	.nhw-cart-header,
	.nhw-checkout-header {
		padding: var(--nhw-space-3xl) 0 var(--nhw-space-xl);
	}

	.nhw-cart-title,
	.nhw-checkout-title {
		font-size: var(--nhw-text-3xl);
	}

	/* Stack cart columns */
	.wp-block-woocommerce-filled-cart-block {
		grid-template-columns: 1fr;
		gap: var(--nhw-space-xl);
	}

	/* Totals not sticky on mobile */
	.wp-block-woocommerce-cart-totals-block {
		position: static;
	}

	/* Cart item — compact mobile row */
	.wp-block-woocommerce-cart-line-items-block .wc-block-components-totals-item,
	.wp-block-woocommerce-cart-line-items-block .woocommerce-cart-form__cart-item {
		grid-template-columns: 80px 1fr;
		gap: var(--nhw-space-md);
		padding: var(--nhw-space-lg) 0;
	}

	.wp-block-woocommerce-cart-line-items-block .wc-block-components-totals-item__image,
	.wp-block-woocommerce-cart-line-items-block .product-thumbnail {
		width: 80px;
		height: 80px;
	}

	/* Checkout sidebar not sticky on mobile */
	.woocommerce-checkout .wc-block-components-order-summary {
		position: static;
	}

	/* Full-width buttons */
	.wp-block-woocommerce-proceed-to-checkout-block .wc-block-components-checkout-button,
	.woocommerce-checkout .wc-block-components-checkout-place-order-button,
	.woocommerce-checkout #place_order {
		width: 100% !important;
	}
}

@media (max-width: 480px) {
	.nhw-cart-title,
	.nhw-checkout-title {
		font-size: var(--nhw-text-2xl);
	}

	.nhw-cart-support,
	.nhw-checkout-support {
		font-size: var(--nhw-text-sm);
	}

	/* Cart item — small mobile */
	.wp-block-woocommerce-cart-line-items-block .wc-block-components-totals-item,
	.wp-block-woocommerce-cart-line-items-block .woocommerce-cart-form__cart-item {
		grid-template-columns: 72px 1fr;
		gap: var(--nhw-space-sm);
		padding: var(--nhw-space-md) 0;
	}

	.wp-block-woocommerce-cart-line-items-block .wc-block-components-totals-item__image,
	.wp-block-woocommerce-cart-line-items-block .product-thumbnail {
		width: 72px;
		height: 72px;
	}

	.wp-block-woocommerce-cart-line-items-block .wc-block-components-totals-item__name,
	.wp-block-woocommerce-cart-line-items-block .product-name {
		font-size: var(--nhw-text-sm);
	}

	/* Compact totals */
	.wp-block-woocommerce-cart-totals-block {
		padding: var(--nhw-space-lg);
	}

	/* Checkout form fields */
	.woocommerce-checkout .wc-block-components-text-input,
	.woocommerce-checkout .form-row input,
	.woocommerce-checkout .form-row select {
		font-size: 16px; /* Prevent iOS zoom */
	}
}
