/**
 * Jokić NZN — Design System v3.0
 * Complete premium editorial redesign
 */

/* ====================================================================
   1. DESIGN TOKENS
   ==================================================================== */

:root {
	/* Palette — warm luxury */
	--c-bg:         #FAFAF8;
	--c-stone:      #F0EAE2;
	--c-stone-deep: #E4DAD0;
	--c-deep:       #1A1612;
	--c-gold:       #9B7B4B;
	--c-gold-light: #C4A06B;
	--c-text:       #6B6158;
	--c-text-light: #9A9189;
	--c-border:     #E2D9CF;
	--c-white:      #FFFFFF;
	--c-success:    #2A5C3F;

	/* Typography */
	--f-body:    "Inter", system-ui, -apple-system, sans-serif;
	--f-display: "Cormorant Garamond", Georgia, serif;

	/* Type scale */
	--t-hero:   clamp(3.6rem, 9.5vw, 9rem);
	--t-h1:     clamp(2.6rem, 5vw, 5.5rem);
	--t-h2:     clamp(2rem, 3.5vw, 3.8rem);
	--t-h3:     clamp(1.5rem, 2.2vw, 2.2rem);
	--t-h4:     clamp(1.15rem, 1.5vw, 1.5rem);
	--t-label:  0.68rem;
	--t-body:   0.97rem;
	--t-small:  0.84rem;

	/* Spacing */
	--sp-section: clamp(90px, 12vw, 160px);
	--sp-xl:      clamp(56px, 7vw, 96px);
	--sp-lg:      clamp(36px, 4.5vw, 60px);
	--sp-md:      clamp(20px, 2.5vw, 36px);
	--sp-sm:      clamp(12px, 1.5vw, 20px);

	/* Geometry */
	--r-sm: 3px;
	--r-md: 8px;
	--r-lg: 14px;

	/* Shadows */
	--sh-sm: 0 1px 8px rgba(26,22,18,0.06);
	--sh-md: 0 6px 24px rgba(26,22,18,0.10);
	--sh-lg: 0 16px 48px rgba(26,22,18,0.14);

	/* Motion */
	--ease: cubic-bezier(0.25, 0.46, 0.45, 0.94);
	--dur:  0.3s;

	/* Layout */
	--container: 1200px;
	--header-h:  80px;

	/* Elementor kit overrides (neutralise stale Kadence tokens) */
	--e-global-color-primary:   #1A1612;
	--e-global-color-secondary: #6B6158;
	--e-global-color-text:      #6B6158;
	--e-global-color-accent:    #9B7B4B;
	--e-global-typography-primary-font-family:   "Cormorant Garamond";
	--e-global-typography-primary-font-weight:   600;
	--e-global-typography-secondary-font-family: "Inter";
	--e-global-typography-secondary-font-weight: 400;
	--e-global-typography-text-font-family:      "Inter";
	--e-global-typography-text-font-weight:      400;
	--e-global-typography-accent-font-family:    "Inter";
	--e-global-typography-accent-font-weight:    500;

	/* Astra global color palette override — kills stock Astra blue
	   (cart drawer, buttons, hovers, badges all read these vars) */
	--ast-global-color-0: #9B7B4B;
	--ast-global-color-1: #C4A06B;
	--ast-global-color-2: #1A1612;
	--ast-global-color-3: #6B6158;
	--ast-global-color-4: #F0EAE2;
	--ast-global-color-5: #FFFFFF;
	--ast-global-color-6: #1A1612;
	--ast-global-color-7: #FAFAF8;
	--ast-global-color-8: #E2D9CF;
}

/* ====================================================================
   2. BASE
   ==================================================================== */

html {
	scroll-behavior: smooth;
	background: var(--c-bg);
}

body {
	background: var(--c-bg);
	font-family: var(--f-body);
	font-size: var(--t-body);
	color: var(--c-text);
	line-height: 1.8;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

button, input, select, textarea {
	font-family: var(--f-body);
	color: var(--c-deep);
}

/* Headings */
h1, h2, h3, h4, h5, h6,
.entry-title,
.elementor-heading-title {
	font-family: var(--f-display);
	font-weight: 600;
	color: var(--c-deep);
	line-height: 1.1;
	letter-spacing: -0.01em;
}

/* Kill every outline/stroke on all headings */
.elementor-heading-title,
.elementor-widget-heading h1,
.elementor-widget-heading h2,
.elementor-widget-heading h3,
.elementor-widget-heading h4,
.elementor-widget-heading h5,
.elementor-widget-heading h6 {
	-webkit-text-stroke-width:  0 !important;
	-webkit-text-stroke-color:  transparent !important;
	stroke-width:               0 !important;
	text-shadow:                none !important;
}

a {
	color: var(--c-deep);
	text-decoration: none;
	transition: color var(--dur) var(--ease);
}
a:hover { color: var(--c-gold); }

/* Utility label style */
.nzn-label {
	font-family: var(--f-body);
	font-size: var(--t-label);
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--c-gold);
}

/* Container */
.site-content .ast-container,
.elementor-section.elementor-section-boxed > .elementor-container,
.e-con {
	max-width: var(--container) !important;
	padding-left:  clamp(20px, 4vw, 48px) !important;
	padding-right: clamp(20px, 4vw, 48px) !important;
}

/* Skip link */
.skip-link {
	position: absolute;
	top: -100%;
	left: 0;
	padding: 12px 20px;
	background: var(--c-deep);
	color: var(--c-white) !important;
	font-size: var(--t-small);
	z-index: 9999;
}
.skip-link:focus { top: 0; }

/* Remove empty headings */
.elementor-widget-heading .elementor-heading-title:empty { display: none; }

/* ====================================================================
   3. ANNOUNCEMENT BAR
   ==================================================================== */

.nzn-announcement {
	background: #A66A3F;
	color: var(--c-deep);
	font-family: var(--f-body);
	font-size: 0.72rem;
	font-weight: 500;
	letter-spacing: 0.06em;
	text-align: center;
	padding: 10px 20px;
	position: relative;
}
.nzn-announcement__inner {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 18px;
	max-width: var(--container);
	margin: 0 auto;
	flex-wrap: wrap;
}
.nzn-announcement a {
	color: var(--c-deep) !important;
	text-decoration: underline;
	text-underline-offset: 3px;
}
.nzn-sep {
	color: rgba(26,22,18,0.35);
	font-size: 0.9em;
}
.nzn-announcement__close {
	position: absolute;
	right: 16px;
	top: 50%;
	transform: translateY(-50%);
	background: none;
	border: none;
	color: rgba(26,22,18,0.5);
	cursor: pointer;
	font-size: 1rem;
	padding: 4px 8px;
	line-height: 1;
	transition: color var(--dur) var(--ease);
}
.nzn-announcement__close:hover { color: var(--c-deep); }

/* ====================================================================
   4. HEADER
   ==================================================================== */

/* Gold accent line above header */
.site-header::before,
#masthead::before {
	content: '';
	display: block;
	height: 2px;
	background: linear-gradient(90deg, var(--c-gold), var(--c-gold-light), var(--c-gold));
}

.site-header,
.main-header-bar {
	position: sticky !important;
	top: 0;
	z-index: 999;
	background: rgba(250,250,248,0.97) !important;
	backdrop-filter: blur(16px);
	-webkit-backdrop-filter: blur(16px);
	border-bottom: 1px solid var(--c-border) !important;
	box-shadow: none !important;
	transition: box-shadow var(--dur) var(--ease);
	min-height: var(--header-h);
	/* backdrop-filter + position:sticky can otherwise paint a torn/half
	   frame mid-scroll in Chrome/Safari — force it onto its own
	   compositor layer so it never blends with content passing under it. */
	isolation: isolate;
	will-change: transform;
	transform: translateZ(0);
}
.site-header.nzn-scrolled,
.main-header-bar.nzn-scrolled {
	box-shadow: 0 4px 32px rgba(26,22,18,0.08) !important;
}

/* Logo — the logo is wide relative to its height (135x42 source), and
   Astra's default logo-column width (set for a squarer logo) was
   clipping it. Give the logo room and stop anything from cropping it. */
.ast-site-logo-wrap img,
.custom-logo {
	max-height: 52px;
	width: auto;
	max-width: none;
	transition: opacity var(--dur) var(--ease);
}
.ast-site-logo-wrap img:hover { opacity: 0.72; }

.site-branding.ast-site-identity,
.ast-site-logo-wrap,
.site-logo-img {
	overflow: visible !important;
	max-width: none !important;
}
.site-header-primary-section-left,
.site-header-section.site-header-section-left {
	flex: 0 1 auto !important;
	overflow: visible !important;
	min-width: 200px;
}

.ast-site-title a {
	font-family: var(--f-display);
	font-size: 1.6rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	color: var(--c-deep) !important;
	text-transform: uppercase;
}

/* Nav */
.main-header-menu > .menu-item > .menu-link,
.ast-header-custom-item a {
	font-family: var(--f-body);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--c-deep) !important;
	padding: 8px 14px;
	position: relative;
}
.main-header-menu > .menu-item > .menu-link::after {
	content: '';
	position: absolute;
	bottom: 2px;
	left: 14px;
	right: 14px;
	height: 1px;
	background: var(--c-gold);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.28s var(--ease);
}
.main-header-menu > .menu-item > .menu-link:hover::after,
.main-header-menu > .menu-item.current-menu-item > .menu-link::after {
	transform: scaleX(1);
}
.main-header-menu > .menu-item > .menu-link:hover,
.main-header-menu > .menu-item.current-menu-item > .menu-link {
	color: var(--c-deep) !important;
}

/* Dropdown — spacious, minimal list (no per-item hover box).
   Width matches the top-level trigger item exactly (not wider). */
.main-header-menu > .menu-item {
	position: relative;
}
.main-header-menu .sub-menu {
	background: var(--c-white);
	border: none;
	border-radius: var(--r-md);
	box-shadow: var(--sh-lg);
	padding: 12px 0;
	width: 100%;
	min-width: 100%;
	left: 0;
	right: 0;
}
.main-header-menu .sub-menu .menu-item .menu-link {
	font-size: 0.95rem;
	font-weight: 400;
	letter-spacing: 0.01em;
	text-transform: none;
	padding: 13px 12px;
	color: var(--c-deep) !important;
	display: block;
	text-align: center;
	border-bottom: none !important;
	white-space: nowrap;
}
.main-header-menu .sub-menu .menu-item .menu-link:hover {
	background: transparent;
	color: var(--c-gold) !important;
}

/* Parent item: visible chevron indicating a dropdown exists, inline
   next to the label (not Astra's default absolutely-positioned/hidden
   toggle), highlights gold together with the label on hover. */
.main-header-menu > .menu-item.menu-item-has-children > .menu-link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding-right: 22px !important;
}
.main-header-menu > .menu-item.menu-item-has-children:hover > .menu-link,
.main-header-menu > .menu-item.menu-item-has-children:focus-within > .menu-link {
	color: var(--c-gold) !important;
}
.main-header-menu > .menu-item .ast-menu-toggle {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	position: absolute !important;
	top: 50% !important;
	right: 2px !important;
	transform: translateY(-50%);
	width: 14px;
	height: 14px;
	padding: 0 !important;
	color: inherit;
}
/* Only make the chevron decorative/inert above Astra's own mobile-menu
   breakpoint (921px on this site — confirmed via its generated CSS),
   where the submenu already opens on hover and a clickable chevron would
   just duplicate that. Below the breakpoint there's no hover, so this
   exact toggle is the ONLY way to expand "Ženski/Muški modeli"; killing
   its pointer-events there made every tap fall through to the link
   underneath and navigate away instead of expanding the submenu. */
@media (min-width: 922px) {
	.main-header-menu > .menu-item .ast-menu-toggle {
		pointer-events: none;
	}
}
.main-header-menu > .menu-item .ast-menu-toggle .ast-icon {
	font-size: 0.55rem;
	color: var(--c-gold);
}
/* Astra's default glyph (drawn via ::before, using its icon font) is
   replaced with a clean custom SVG chevron — thin stroke, rounded caps,
   matching a simple minimal dropdown indicator. Astra's own rotation
   logic on ::before is kept so it still flips when the menu opens. */
.main-header-menu > .menu-item .ast-menu-toggle::before {
	content: '' !important;
	display: inline-block;
	width: 10px;
	height: 10px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239B7B4B' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E") !important;
	background-size: contain !important;
	background-repeat: no-repeat !important;
	background-position: center !important;
	font-size: 0 !important;
	opacity: 1 !important;
}

/* Cart — Astra hardcodes .astra-icon{color:#fff} which is invisible
   against our light header background; override with real classes. */
.ast-site-header-cart .astra-icon,
.ast-header-woo-cart .astra-icon,
.ast-search-menu-icon .astra-icon {
	color: var(--c-deep) !important;
}
.ast-site-header-cart i.astra-icon:after {
	background: var(--c-gold) !important;
	color: var(--c-white) !important;
	border-radius: 999px;
	font-style: normal;
}

/* Search */
.ast-search-menu-icon .search-field {
	border: 1px solid var(--c-border);
	border-radius: var(--r-sm);
	background: var(--c-stone);
	padding: 8px 14px;
	font-family: var(--f-body);
}
.ast-search-menu-icon .search-field:focus {
	border-color: var(--c-gold);
	outline: none;
	box-shadow: 0 0 0 3px rgba(155,123,75,0.12);
}

/* Mobile cart icon — JS-cloned copy of the desktop cart (see
   nzn-scripts.js); hidden except at mobile widths so it never
   duplicates the real desktop cart icon. */
.nzn-mobile-cart {
	display: none !important;
}
@media (max-width: 921px) {
	.nzn-mobile-cart {
		display: flex !important;
		align-items: center;
		/* Astra's own CSS gives this element order:1, so it renders
		   after the hamburger regardless of DOM position — space it
		   from the hamburger on the left, and let the row's own edge
		   padding (already correct for the hamburger before this was
		   added) handle the outer right edge. */
		margin-left: 14px;
	}
}

/* Mobile hamburger */
.ast-button-wrap .menu-toggle,
.ast-mobile-menu-buttons .menu-toggle {
	color: var(--c-deep) !important;
	background: transparent !important;
	border: none;
	padding: 8px;
}
.ast-button-wrap .menu-toggle span,
.ast-mobile-menu-buttons .menu-toggle span {
	background: var(--c-deep) !important;
	height: 1.5px;
	border-radius: 1px;
}
/* Astra renders this as an inline SVG (fill="currentColor"), not spans —
   its own core CSS hardcodes fill: var(--ast-global-color-5), which is
   pure white on this site's global palette. Against our light/cream
   header that made the hamburger (and its close-X swap state) nearly
   invisible; force it to the same dark ink used everywhere else. */
.ast-button-wrap .mobile-menu-toggle-icon .ast-mobile-svg,
.ast-mobile-menu-buttons .mobile-menu-toggle-icon .ast-mobile-svg {
	fill: var(--c-deep) !important;
}

/* Mobile logo — Astra renders a separate "mobile logo" slot
   (.custom-mobile-logo-link) and hides the regular .custom-logo-link on
   mobile via its own generated CSS (.ast-header-break-point
   .ast-has-mobile-header-logo .custom-logo-link{display:none}). On
   environments where no distinct mobile logo was ever uploaded in
   Customizer that slot renders as an empty <a>, so mobile showed no
   logo at all — hence the :empty check below, which only force-shows
   the regular logo as a fallback in that case. Environments that DO
   have a Mobile Logo configured (that slot has a real <img> in it)
   must NOT match here, or both logos render side by side. */
.ast-header-break-point .ast-has-mobile-header-logo .custom-logo-link:has(+ .custom-mobile-logo-link:empty) {
	display: inline-block !important;
}

/* Mobile panel */
.ast-main-header-nav .main-header-menu {
	background: var(--c-stone) !important;
}
.ast-main-header-nav .main-header-menu .menu-item .menu-link {
	color: var(--c-deep) !important;
	font-family: var(--f-body);
	font-weight: 600;
	letter-spacing: 0.10em;
	text-transform: uppercase;
	border-bottom: 1px solid var(--c-border);
	padding: 16px 24px;
	font-size: 0.82rem;
}

/* ====================================================================
   5. BUTTONS
   ==================================================================== */

.button,
button,
input[type="button"],
input[type="reset"],
input[type="submit"],
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.elementor-button {
	font-family: var(--f-body);
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	font-size: 0.72rem;
	border-radius: var(--r-sm);
	transition: transform var(--dur) var(--ease),
	            box-shadow var(--dur) var(--ease),
	            background var(--dur) var(--ease),
	            color var(--dur) var(--ease),
	            border-color var(--dur) var(--ease);
	cursor: pointer;
}

/* Primary — deep */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce #respond input#submit.alt,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt {
	background: var(--c-deep) !important;
	color: var(--c-white) !important;
	border: 1.5px solid var(--c-deep) !important;
	padding: 14px 28px;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce #respond input#submit.alt:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover {
	background: var(--c-gold) !important;
	border-color: var(--c-gold) !important;
	color: var(--c-white) !important;
	transform: translateY(-2px);
	box-shadow: 0 8px 24px rgba(155,123,75,0.28) !important;
}

/* Ghost button style */
.nzn-btn-ghost {
	background: transparent !important;
	color: var(--c-deep) !important;
	border: 1.5px solid var(--c-deep) !important;
	padding: 14px 32px;
}
.nzn-btn-ghost:hover {
	background: var(--c-deep) !important;
	color: var(--c-white) !important;
}

/* Elementor homepage buttons */
.elementor-page-2888 .elementor-button {
	background: transparent !important;
	color: var(--c-white) !important;
	border: 1.5px solid rgba(255,255,255,0.7) !important;
	padding: 16px 36px !important;
	font-size: 0.72rem !important;
	letter-spacing: 0.14em !important;
	border-radius: var(--r-sm) !important;
}
.elementor-page-2888 .elementor-button:hover {
	background: var(--c-white) !important;
	color: var(--c-deep) !important;
	border-color: var(--c-white) !important;
}

/* ====================================================================
   6. HOMEPAGE — HERO (M3)
   ==================================================================== */

.elementor-page-2888 .elementor-element-5ffd1adc {
	min-height: 96vh !important;
	padding: 0 !important;
	display: flex !important;
	align-items: flex-end !important;
}
.elementor-page-2888 .elementor-element-5ffd1adc > .elementor-container {
	padding: clamp(60px, 8vw, 100px) clamp(24px, 5vw, 80px) !important;
	max-width: 100% !important;
	width: 100%;
}

/* At mobile widths the clamp() floor (24px) plus the widget-wrap's own
   10px plus the site's 20px container padding stack up to 54px of
   indentation per side — much more than the rest of the page (20px).
   Drop this element's own two padding layers so the hero lines up with
   everything else instead of looking squeezed/off-center. */
@media (max-width: 767px) {
	.elementor-page-2888 .elementor-element-5ffd1adc > .elementor-container {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}
	.elementor-page-2888 .elementor-element-5ffd1adc .elementor-widget-wrap {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}
}

/* Hero overlay — cinematic gradient */
.elementor-page-2888 .elementor-element-5ffd1adc > .elementor-background-overlay {
	background: linear-gradient(
		15deg,
		rgba(26,22,18,0.80) 0%,
		rgba(26,22,18,0.48) 45%,
		rgba(26,22,18,0.12) 100%
	) !important;
	opacity: 1 !important;
}

/* Hero text — editorial large italic */
.elementor-page-2888 .elementor-element-5ffd1adc .elementor-heading-title {
	font-size: var(--t-hero) !important;
	font-style: italic !important;
	font-weight: 400 !important;
	color: var(--c-white) !important;
	line-height: 0.95 !important;
	letter-spacing: -0.02em;
	max-width: 900px;
}
.elementor-page-2888 .elementor-element-5ffd1adc .elementor-widget-text-editor p {
	color: rgba(250,250,248,0.82) !important;
	font-size: clamp(1rem, 1.4vw, 1.1rem);
	line-height: 1.75;
	max-width: 480px;
	margin-top: 20px;
}

/* ====================================================================
   7. HOMEPAGE — CATEGORIES (M4)
   ==================================================================== */

.elementor-page-2888 .elementor-element-51d346dc {
	padding: var(--sp-section) 0 !important;
}

/* At mobile widths these two columns wrap onto separate lines (since
   they don't fit side by side). The real cause of the narrow/offset
   look: each still carries its desktop margin-right/margin-left:12px
   (below, for the side-by-side gap), and a flex item's outer size
   (width + its own margin) can't exceed its line's available space —
   so the browser was shrinking the *width* by that 12px to compensate,
   instead of the margin just being dropped. Zero the desktop gap out
   here and use a vertical margin between the stacked cards instead. */
@media (max-width: 767px) {
	.elementor-page-2888 .elementor-element-7020ec8e,
	.elementor-page-2888 .elementor-element-7f90fb31 {
		flex: 1 1 100% !important;
		width: 100% !important;
		max-width: 100% !important;
	}
	.elementor-page-2888 .elementor-element-51d346dc .elementor-container {
		column-gap: 0 !important;
	}
}

/* Category columns */
.elementor-page-2888 .elementor-element-7020ec8e > .elementor-element-populated,
.elementor-page-2888 .elementor-element-7f90fb31 > .elementor-element-populated {
	border-radius: var(--r-lg) !important;
	overflow: hidden;
	min-height: 580px;
	box-shadow: var(--sh-lg);
	transition: transform 0.4s var(--ease), box-shadow 0.4s var(--ease);
	position: relative;
}
.elementor-page-2888 .elementor-element-7020ec8e > .elementor-element-populated:hover,
.elementor-page-2888 .elementor-element-7f90fb31 > .elementor-element-populated:hover {
	transform: translateY(-8px);
	box-shadow: 0 24px 64px rgba(26,22,18,0.20);
}

/* Category overlay */
.elementor-page-2888 .elementor-element-7020ec8e > .elementor-element-populated > .elementor-background-overlay,
.elementor-page-2888 .elementor-element-7f90fb31 > .elementor-element-populated > .elementor-background-overlay {
	background: linear-gradient(
		to top,
		rgba(26,22,18,0.86) 0%,
		rgba(26,22,18,0.34) 50%,
		rgba(26,22,18,0.0) 100%
	) !important;
	opacity: 1 !important;
}

/* Category titles */
.elementor-page-2888 .elementor-element-f32534d .elementor-image-box-title,
.elementor-page-2888 .elementor-element-a1daf3f .elementor-image-box-title {
	font-family: var(--f-display);
	font-size: clamp(2rem, 3.5vw, 3rem) !important;
	font-weight: 400;
	font-style: italic;
	color: var(--c-white) !important;
	margin-bottom: 6px;
	line-height: 1.1;
}
.elementor-page-2888 .elementor-element-f32534d .elementor-image-box-description,
.elementor-page-2888 .elementor-element-a1daf3f .elementor-image-box-description {
	color: rgba(250,250,248,0.75) !important;
	font-size: 0.88rem;
	line-height: 1.6;
	letter-spacing: 0.06em;
}

/* Generic image-box-title on page */
.elementor-page-2888 .elementor-image-box-title {
	font-family: var(--f-display);
}

/* ====================================================================
   8. HOMEPAGE — BEST SELLERS (Najprodavaniji proizvodi)
   ==================================================================== */

.elementor-page-2888 .elementor-element-2afe0c24 {
	padding: var(--sp-section) clamp(24px, 5vw, 80px) !important;
	background: var(--c-stone) !important;
}
.elementor-page-2888 .elementor-element-36b43d4e .elementor-heading-title {
	font-size: var(--t-h2) !important;
	font-weight: 400 !important;
	font-style: italic !important;
	line-height: 1.1 !important;
	color: var(--c-deep) !important;
	text-align: center;
	margin-bottom: var(--sp-lg) !important;
	-webkit-text-stroke-width: 0 !important;
}
.elementor-page-2888 .elementor-element-440e40f8 .elementor-widget-container {
	background: transparent !important;
	background-image: none !important;
	padding: 0 !important;
	margin: 0 !important;
}
/* Decorative divider */
.elementor-page-2888 .elementor-element-f6943a6 .elementor-divider-separator {
	border-color: var(--c-gold) !important;
	width: 48px;
	margin: 0;
}
.elementor-page-2888 .elementor-element-f6943a6 .elementor-divider { text-align: left; }

/* ====================================================================
   9. HOMEPAGE — BENEFITS
   ==================================================================== */

.elementor-page-2888 .elementor-element-64a5d7df {
	margin-top: 0 !important;
	padding: var(--sp-xl) clamp(24px, 5vw, 80px) !important;
	background: var(--c-white) !important;
	border-top: 1px solid var(--c-border);
	border-bottom: 1px solid var(--c-border);
}
.elementor-page-2888 .elementor-element-64a5d7df .elementor-image-box-wrapper {
	text-align: center;
	padding: 20px 12px;
}
.elementor-page-2888 .elementor-element-64a5d7df .elementor-image-box-title {
	font-size: var(--t-label) !important;
	font-family: var(--f-body) !important;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	color: var(--c-deep) !important;
	margin-bottom: 10px;
}
.elementor-page-2888 .elementor-element-64a5d7df .elementor-image-box-description {
	color: var(--c-text);
	line-height: 1.7;
	font-size: 0.88rem;
}
.elementor-page-2888 .elementor-element-2afe0c24 {
	background: var(--c-bg) !important;
}

/* Gap between the Ženska/Muška obuća cards, without reintroducing the
   outer beige frame (outer/top/bottom edges stay flush at margin:0). */
.elementor-page-2888 .elementor-element-7020ec8e {
	margin-right: 12px !important;
}
.elementor-page-2888 .elementor-element-7f90fb31 {
	margin-left: 12px !important;
}
/* On mobile the cards stack instead of sitting side by side, so the
   desktop gap above doesn't apply — must win the cascade tie by coming
   later in the file (same selector specificity, both !important, so
   source order decides). Leaving that horizontal margin in place here
   was shrinking each card's WIDTH by 12px too: a flex item's outer size
   (width + margin) can't exceed its line's available space, so instead
   of just dropping the margin the browser was shrinking the box itself,
   leaving the "full-width" card visibly narrower and off-center. */
@media (max-width: 767px) {
	.elementor-page-2888 .elementor-element-7020ec8e,
	.elementor-page-2888 .elementor-element-7f90fb31 {
		margin-left: 0 !important;
		margin-right: 0 !important;
	}
	.elementor-page-2888 .elementor-element-7020ec8e {
		margin-bottom: var(--sp-sm) !important;
	}
}

/* ====================================================================
   10. HOMEPAGE — CTA BAND
   ==================================================================== */

.elementor-page-2888 .elementor-element-ea3778e {
	background: #A66A3F !important;
	background-image: none !important;
	padding: var(--sp-xl) clamp(24px, 5vw, 80px) !important;
}
.elementor-page-2888 .elementor-element-ea3778e .elementor-heading-title {
	color: var(--c-white) !important;
	font-size: clamp(2rem, 4vw, 3.6rem) !important;
	font-style: italic;
	font-weight: 400;
}
.elementor-page-2888 .elementor-element-ea3778e .elementor-button {
	background: var(--c-gold) !important;
	border-color: var(--c-gold) !important;
	color: var(--c-white) !important;
}
.elementor-page-2888 .elementor-element-ea3778e .elementor-button:hover {
	background: var(--c-gold-light) !important;
	border-color: var(--c-gold-light) !important;
}

/* ====================================================================
   11. TESTIMONIALS — PHP-INJECTED
   ==================================================================== */

.nzn-testimonials {
	background: #FAFAF8;
	padding: var(--sp-section) clamp(24px, 5vw, 80px);
	text-align: center;
}
.nzn-testimonials__header {
	margin-bottom: var(--sp-lg);
}
.nzn-testimonials__header h2 {
	font-size: var(--t-h2);
	font-style: italic;
	font-weight: 400;
	color: var(--c-deep);
	margin-top: 12px;
}
.nzn-testimonials__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
	max-width: var(--container);
	margin: 0 auto;
}
.nzn-testimonial {
	background: var(--c-white);
	border-radius: var(--r-lg);
	padding: 36px 32px;
	text-align: left;
	box-shadow: var(--sh-sm);
	position: relative;
}
.nzn-testimonial::before {
	content: '"';
	font-family: var(--f-display);
	font-size: 5rem;
	color: var(--c-gold);
	opacity: 0.25;
	position: absolute;
	top: 10px;
	left: 28px;
	line-height: 1;
}
.nzn-testimonial__stars {
	display: flex;
	gap: 3px;
	margin-bottom: 16px;
}
.nzn-testimonial__stars span {
	color: var(--c-gold);
	font-size: 0.9rem;
}
.nzn-testimonial__text {
	font-size: 0.97rem;
	line-height: 1.78;
	color: var(--c-text);
	margin-bottom: 20px;
	font-style: italic;
}
.nzn-testimonial__author {
	font-size: var(--t-label);
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--c-deep);
}
.nzn-testimonial__location {
	font-size: 0.78rem;
	color: var(--c-text-light);
	margin-top: 3px;
}

/* ====================================================================
   12. NEWSLETTER — PHP-INJECTED
   ==================================================================== */

.nzn-newsletter {
	background: #FAFAF8;
	padding: var(--sp-xl) clamp(24px, 5vw, 80px);
}
.nzn-newsletter__inner {
	max-width: var(--container);
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 60px;
	align-items: center;
}
.nzn-newsletter .nzn-label { color: var(--c-gold); }
.nzn-newsletter h2 {
	font-size: var(--t-h2);
	font-style: italic;
	font-weight: 400;
	color: var(--c-deep);
	margin: 12px 0 0;
}
.nzn-newsletter p {
	color: var(--c-text);
	font-size: 0.92rem;
	line-height: 1.75;
	margin-top: 12px;
}
.nzn-newsletter__form {
	display: flex;
	gap: 0;
}
.nzn-newsletter__form input[type="email"] {
	flex: 1;
	background: var(--c-white);
	border: 1px solid var(--c-border);
	border-right: none;
	border-radius: var(--r-sm) 0 0 var(--r-sm);
	padding: 16px 20px;
	color: var(--c-deep);
	font-family: var(--f-body);
	font-size: 0.92rem;
}
.nzn-newsletter__form input[type="email"]::placeholder {
	color: var(--c-text-light);
}
.nzn-newsletter__form input[type="email"]:focus {
	outline: none;
	border-color: var(--c-gold);
	background: var(--c-white);
}
.nzn-newsletter__form button {
	background: var(--c-gold) !important;
	color: var(--c-white) !important;
	border: none;
	border-radius: 0 var(--r-sm) var(--r-sm) 0;
	padding: 16px 28px;
	font-family: var(--f-body);
	font-size: var(--t-label);
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	cursor: pointer;
	white-space: nowrap;
	transition: background var(--dur) var(--ease);
}
.nzn-newsletter__form button:hover {
	background: var(--c-gold-light) !important;
}

/* ====================================================================
   13. PRODUCT GRID — EDITORIAL CARDS (M6)
   Restyles Astra's own default WooCommerce loop markup:
   li.product > .astra-shop-thumbnail-wrap (image) + .astra-shop-summary-wrap
   (title/category/price/rating/button). A custom content-product.php
   override was tried earlier and caused malformed/duplicated HTML because
   Astra unhooks and re-wires WooCommerce's default loop hooks itself —
   restyling Astra's native structure via CSS is the safe approach.
   ==================================================================== */

/* Grid list reset */
.woocommerce ul.products,
.woocommerce-page ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr);
	gap: 48px 32px;
	list-style: none;
	padding: 0;
	margin: 0;
	float: none !important;
}
/* WooCommerce's old float-era clearfix (content:" "; display:table on
   ::before/::after) turns into an actual phantom GRID ITEM once the
   container becomes display:grid — silently eating the first cell and
   shifting every real product one slot to the right. Kill it. */
.woocommerce ul.products::before,
.woocommerce ul.products::after,
.woocommerce-page ul.products::before,
.woocommerce-page ul.products::after {
	content: none !important;
	display: none !important;
}

/* Product item — editorial, no card box */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
	background: transparent !important;
	border: none !important;
	border-radius: 0 !important;
	padding: 0 !important;
	box-shadow: none !important;
	overflow: visible !important;
	width: auto !important;
	margin: 0 !important;
	float: none !important;
	display: flex;
	flex-direction: column;
}

/* ---- Image wrap ---- */
/* Fixed-ratio box + absolutely-filled image: immune to each product's
   native upload dimensions, so every card in the grid renders identically
   regardless of source image size (some uploads were huge, some tiny). */
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap {
	position: relative;
	overflow: hidden;
	border-radius: var(--r-md);
	/* White, matching the product photos' own baked-in white backdrop —
	   var(--c-stone) here created a jarring "white box inside a beige
	   box" look since the photos aren't transparent. */
	background: var(--c-white);
	margin-bottom: 16px;
	/* 4:3 to match the actual source photos (2560x1920 landscape) —
	   the previous 3:4 portrait box left huge empty top/bottom margins
	   under object-fit:contain, making the product look tiny. */
	aspect-ratio: 4 / 3;
	width: 100%;
	display: block;
}
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap a {
	display: block;
	position: absolute;
	inset: 0;
}

/* Product thumbnail — including Astra's hover-swap second image.
   object-fit:contain (not cover) so the full product is always
   visible — most source photos are wide side-profile shots that
   "cover" would crop into a portrait box. Inset padding keeps the
   product off the card edges instead of touching them. */
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap img {
	position: absolute !important;
	inset: 8px !important;
	width: calc(100% - 16px) !important;
	height: calc(100% - 16px) !important;
	max-width: none !important;
	aspect-ratio: auto !important;
	object-fit: contain !important;
	object-position: center !important;
	display: block;
	margin: 0 !important;
	border-radius: 0;
	background: transparent;
	transition: opacity 0.35s var(--ease), transform 0.5s var(--ease) !important;
}
/* Always show the first product photo in the grid — no hover-swap to
   a second image. The full set of photos is only shown once the
   shopper opens the actual product page. */
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap img.show-on-hover {
	display: none !important;
}
.woocommerce ul.products li.product:hover .astra-shop-thumbnail-wrap img:not(.show-on-hover) {
	transform: scale(1.05);
}

/* Sale badge */
.woocommerce span.onsale {
	position: absolute !important;
	top: 14px !important;
	left: 14px !important;
	background: var(--c-gold) !important;
	color: var(--c-white) !important;
	border-radius: var(--r-sm) !important;
	font-family: var(--f-body) !important;
	font-size: 0.62rem !important;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	padding: 5px 11px;
	min-height: auto !important;
	min-width: auto !important;
	line-height: 1;
}

/* ---- Summary wrap (title / category / price / rating / button) ---- */
.woocommerce ul.products li.product .astra-shop-summary-wrap {
	display: flex;
	flex-direction: column;
}

/* Category label (Astra's own — restyled to match brand) */
.woocommerce ul.products li.product .ast-woo-product-category {
	font-family: var(--f-body);
	font-size: var(--t-label);
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--c-gold);
	order: -1;
	margin-bottom: 6px;
}

/* Product title — reserve space for 2 lines regardless of actual length
   (e.g. "Bela" vs "Bebi roze-srebro"), so price/button stay aligned
   across a grid row instead of shifting card-to-card. */
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--f-display);
	font-size: 1.15rem;
	font-weight: 600;
	color: var(--c-deep);
	line-height: 1.3;
	min-height: 2.6em;
	padding: 0 !important;
	margin: 0 0 8px !important;
	transition: color var(--dur) var(--ease);
}
.woocommerce ul.products li.product:hover .woocommerce-loop-product__title {
	color: var(--c-gold);
}

/* Price */
.woocommerce ul.products li.product .price {
	font-family: var(--f-body);
	font-size: 0.88rem;
	font-weight: 600;
	color: var(--c-text);
	padding: 0 !important;
	margin-bottom: 14px !important;
}
.woocommerce ul.products li.product .price del {
	color: var(--c-text-light);
	opacity: 0.8;
	font-weight: 400;
	margin-right: 6px;
}
.woocommerce ul.products li.product .price ins { text-decoration: none; }

/* Star rating (single product page only — hidden in the grid below) */
.woocommerce .star-rating {
	color: var(--c-gold) !important;
	font-size: 0.72rem;
	margin: 0 0 8px;
}
/* Removed from the main shop/category grid overview per request. */
.woocommerce ul.products li.product .star-rating {
	display: none !important;
}

/* Add to cart / "Select options" button removed from grid cards —
   product cards are click-through to the product page only. */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart {
	display: none !important;
}

/* Shop page header */
.woocommerce-products-header {
	padding: var(--sp-xl) 0 var(--sp-lg);
	border-bottom: 1px solid var(--c-border);
	margin-bottom: var(--sp-lg);
}
.woocommerce-products-header__title {
	font-family: var(--f-display) !important;
	font-size: var(--t-h1) !important;
	font-style: italic;
	font-weight: 400;
	color: var(--c-deep);
}

/* Ordering strip */
.woocommerce-ordering,
.woocommerce .woocommerce-result-count {
	font-family: var(--f-body);
	font-size: var(--t-small);
	color: var(--c-text-light);
	margin-bottom: var(--sp-lg) !important;
}
.woocommerce-ordering {
	display: flex !important;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
}
.woocommerce-ordering select {
	border: 1px solid var(--c-border);
	border-radius: var(--r-sm);
	background: var(--c-white);
	padding: 8px 12px;
	font-family: var(--f-body);
}

/* Custom sort dropdown (progressive enhancement over the native
   <select> — see nzn-scripts.js). Pill trigger + checkmark list panel. */
.nzn-sort {
	position: relative;
	display: inline-block;
	flex-shrink: 0;
}
.nzn-sort__trigger span:not(.nzn-sort__chevron) {
	white-space: nowrap;
}
.nzn-sort__trigger {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: var(--c-white);
	border: 1px solid var(--c-border);
	border-radius: 999px;
	padding: 10px 18px;
	font-family: var(--f-body);
	font-size: 0.85rem;
	font-weight: 500;
	color: var(--c-deep);
	cursor: pointer;
	transition: border-color var(--dur) var(--ease);
}
.nzn-sort__trigger:hover,
.nzn-sort.is-open .nzn-sort__trigger {
	border-color: var(--c-gold);
}
.nzn-sort__trigger .nzn-sort__chevron {
	width: 10px;
	height: 10px;
	flex-shrink: 0;
	transition: transform var(--dur) var(--ease);
}
.nzn-sort.is-open .nzn-sort__chevron {
	transform: rotate(180deg);
}
.nzn-sort__panel {
	position: absolute;
	top: calc(100% + 8px);
	right: 0;
	min-width: 240px;
	background: var(--c-white);
	border-radius: var(--r-md);
	box-shadow: var(--sh-lg);
	padding: 8px;
	z-index: 50;
}
.nzn-sort__panel[hidden] {
	display: none;
}
.nzn-sort__option {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	background: none;
	border: none;
	text-align: left;
	padding: 11px 14px;
	border-radius: var(--r-sm);
	font-family: var(--f-body);
	font-size: 0.88rem;
	color: var(--c-deep);
	cursor: pointer;
	transition: background var(--dur) var(--ease);
}
.nzn-sort__option:hover {
	background: var(--c-stone);
}
.nzn-sort__option .nzn-sort__check {
	width: 16px;
	flex-shrink: 0;
	color: var(--c-gold);
	font-weight: 700;
	opacity: 0;
}
.nzn-sort__option[aria-checked="true"] {
	font-weight: 600;
}
.nzn-sort__option[aria-checked="true"] .nzn-sort__check {
	opacity: 1;
}

/* Shop filters (size + price) — same pill/panel language as the sort
   control, but with a form panel instead of a checkmark list. */
.nzn-shop-filters {
	position: relative;
	display: inline-block;
}
.nzn-shop-filters.is-open .nzn-shop-filters__trigger {
	border-color: var(--c-gold);
}
.nzn-shop-filters.is-open .nzn-sort__chevron {
	transform: rotate(180deg);
}
.nzn-shop-filters__panel {
	position: absolute;
	top: calc(100% + 8px);
	left: 0;
	width: 320px;
	max-width: 90vw;
	max-height: 70vh;
	overflow-y: auto;
	background: var(--c-white);
	border-radius: var(--r-md);
	box-shadow: var(--sh-lg);
	padding: 20px;
	z-index: 50;
}
.nzn-shop-filters__panel[hidden] {
	display: none;
}
.nzn-shop-filters__group {
	margin-bottom: 20px;
}
.nzn-shop-filters__label {
	font-family: var(--f-body);
	font-size: var(--t-label);
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--c-text-light);
	margin: 0 0 12px;
}
.nzn-shop-filters__price {
	display: flex;
	align-items: center;
	gap: 10px;
}
.nzn-shop-filters__price span {
	color: var(--c-text-light);
}
.nzn-shop-filters__price input[type="number"] {
	width: 100%;
	min-width: 0;
	border: 1px solid var(--c-border);
	border-radius: var(--r-sm);
	padding: 10px 12px;
	font-family: var(--f-body);
	font-size: 0.88rem;
	color: var(--c-deep);
}
.nzn-shop-filters__price input[type="number"]:focus {
	outline: none;
	border-color: var(--c-gold);
}
.nzn-shop-filters__actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-top: 4px;
}
.nzn-shop-filters__reset {
	font-family: var(--f-body);
	font-size: 0.82rem;
	color: var(--c-text-light) !important;
	text-decoration: underline;
	text-underline-offset: 3px;
}
.nzn-shop-filters__reset:hover { color: var(--c-deep) !important; }
.nzn-shop-filters__apply {
	font-family: var(--f-body);
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	font-size: 0.72rem;
	color: var(--c-white) !important;
	background: var(--c-deep) !important;
	border: none !important;
	border-radius: var(--r-sm);
	padding: 12px 22px;
	cursor: pointer;
	transition: background var(--dur) var(--ease);
}
.nzn-shop-filters__apply:hover { background: var(--c-gold) !important; }

/* Pagination */
.woocommerce nav.woocommerce-pagination ul {
	display: flex;
	gap: 8px;
	list-style: none;
	padding: 0;
	margin: var(--sp-xl) 0 0;
}
.woocommerce nav.woocommerce-pagination ul li {
	flex-shrink: 0;
}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	box-sizing: border-box !important;
	display: inline-block !important;
	width: 42px !important;
	height: 42px !important;
	line-height: 40px !important;
	text-align: center !important;
	padding: 0 !important;
	margin: 0 !important;
	vertical-align: middle;
	border: 1px solid var(--c-border);
	border-radius: var(--r-sm);
	font-family: var(--f-body);
	font-size: var(--t-small);
	font-weight: 600;
	color: var(--c-text);
	transition: all var(--dur) var(--ease);
}
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li span.current {
	background: var(--c-deep);
	border-color: var(--c-deep);
	color: var(--c-white);
}
/* Stacked mode: when there isn't room for both the numbers and the
   prev/next arrows on one row, the arrows move to their own centered
   row below the numbers (JS toggles this class + builds the row). */
.woocommerce nav.woocommerce-pagination.nzn-pagination--stacked {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
}
.woocommerce nav.woocommerce-pagination.nzn-pagination--stacked ul.page-numbers {
	flex-wrap: wrap;
	justify-content: center;
}
.woocommerce nav.woocommerce-pagination .nzn-pagination-arrows {
	display: none;
	justify-content: center;
	margin: 0 !important;
}
.woocommerce nav.woocommerce-pagination.nzn-pagination--stacked .nzn-pagination-arrows {
	display: flex;
}

/* ====================================================================
   14. SINGLE PRODUCT (M7)
   ==================================================================== */

.woocommerce div.product {
	padding-top: clamp(32px, 5vw, 64px);
}

/* Breadcrumb */
.woocommerce-breadcrumb {
	font-family: var(--f-body);
	font-size: 0.8rem;
	color: var(--c-text-light);
	margin-bottom: 20px;
}
.woocommerce-breadcrumb a {
	color: var(--c-text-light);
}
.woocommerce-breadcrumb a:hover {
	color: var(--c-gold);
}

/* Gallery — light neutral box behind the product photo, matching the
   photos' own white backdrop instead of a contrasting card colour */
.woocommerce div.product div.images {
	background: var(--c-white);
	border-radius: var(--r-lg);
	padding: 24px;
}
.woocommerce div.product div.images img {
	border-radius: var(--r-sm);
	background: transparent;
	object-fit: contain;
}
.woocommerce div.product div.images .woocommerce-product-gallery__image {
	border-radius: var(--r-sm);
	overflow: hidden;
}
.woocommerce div.product div.images ol.flex-control-thumbs li img {
	border-radius: var(--r-sm);
	border: 2px solid transparent;
	transition: border-color var(--dur) var(--ease), opacity var(--dur) var(--ease);
	opacity: 0.65;
}
.woocommerce div.product div.images ol.flex-control-thumbs li img.flex-active,
.woocommerce div.product div.images ol.flex-control-thumbs li img:hover {
	border-color: var(--c-gold);
	opacity: 1;
}

/* Product title */
.woocommerce div.product .product_title {
	font-family: var(--f-display);
	font-size: clamp(1.8rem, 2.8vw, 2.6rem);
	font-weight: 700;
	font-style: normal;
	line-height: 1.15;
	letter-spacing: -0.01em;
	margin-bottom: 10px;
	color: var(--c-deep);
}
.woocommerce div.product p.sku_wrapper {
	font-family: var(--f-body);
	font-size: 0.78rem;
	color: var(--c-text-light);
	margin-bottom: 16px;
}
.woocommerce div.product p.sku_wrapper .sku {
	color: var(--c-text-light);
}

/* Price */
.woocommerce div.product p.price,
.woocommerce div.product span.price {
	font-size: 1.6rem;
	font-weight: 700;
	color: var(--c-deep);
	font-family: var(--f-body);
	margin-bottom: 24px;
	display: block;
}
.woocommerce div.product p.price del,
.woocommerce div.product span.price del {
	color: var(--c-text-light);
	font-size: 1.1rem;
	font-weight: 400;
	margin-right: 10px;
	opacity: 0.65;
}
.woocommerce div.product p.price ins,
.woocommerce div.product span.price ins {
	text-decoration: none;
	color: var(--c-gold);
}

/* Short description */
.woocommerce div.product .woocommerce-product-details__short-description {
	font-size: 0.97rem;
	line-height: 1.8;
	color: var(--c-text);
	margin-bottom: 28px;
	padding-bottom: 28px;
	border-bottom: 1px solid var(--c-border);
}

/* Color swatches — links to sibling color-variant products */
.nzn-color-swatches {
	margin-bottom: 28px;
}
.nzn-color-swatches__label {
	font-family: var(--f-body);
	font-weight: 700;
	letter-spacing: 0.10em;
	text-transform: uppercase;
	font-size: 0.68rem;
	color: var(--c-deep);
	margin: 0 0 12px;
}
.nzn-color-swatches__list {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}
.nzn-color-swatches__item {
	display: block;
	width: 60px;
	height: 60px;
	border-radius: var(--r-sm);
	border: 2px solid var(--c-border);
	overflow: hidden;
	background: var(--c-white);
	transition: border-color var(--dur) var(--ease);
}
.nzn-color-swatches__item img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	display: block;
}
.nzn-color-swatches__item:hover {
	border-color: var(--c-gold-light);
}
.nzn-color-swatches__item.is-active {
	border-color: var(--c-gold);
}

/* Variations */
.woocommerce div.product form.cart .variations label {
	font-family: var(--f-body);
	font-weight: 700;
	letter-spacing: 0.10em;
	text-transform: uppercase;
	font-size: 0.68rem;
	color: var(--c-deep);
}
.woocommerce div.product form.cart .variations select {
	border: 1.5px solid var(--c-border);
	border-radius: var(--r-sm);
	background: var(--c-stone);
	padding: 10px 14px;
	font-family: var(--f-body);
	min-height: 46px;
	min-width: 200px;
	color: var(--c-deep);
}
.woocommerce div.product form.cart .variations select:focus {
	border-color: var(--c-gold);
	outline: none;
	box-shadow: 0 0 0 3px rgba(155,123,75,0.12);
}
/* Size selector, enhanced by JS into a button grid (native select is
   hidden once the grid is built; still functions if JS fails). */
.nzn-size-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 4px;
}
.nzn-size-grid__btn {
	min-width: 46px;
	height: 46px;
	padding: 0 10px;
	border: 1.5px solid var(--c-border);
	border-radius: var(--r-sm);
	background: var(--c-white);
	color: var(--c-deep);
	font-family: var(--f-body);
	font-size: 0.88rem;
	font-weight: 500;
	cursor: pointer;
	transition: border-color var(--dur) var(--ease), background var(--dur) var(--ease), color var(--dur) var(--ease);
}
.nzn-size-grid__btn:hover {
	border-color: var(--c-gold-light);
}
.nzn-size-grid__btn.is-selected {
	border-color: var(--c-deep);
	background: var(--c-deep);
	color: var(--c-white);
}
.nzn-size-grid__btn:disabled {
	opacity: 0.35;
	cursor: not-allowed;
	text-decoration: line-through;
}

/* Size guide trigger — sits next to the size label, same row */
.nzn-size-label-row {
	display: flex !important;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	width: 100%;
}
.nzn-size-guide-trigger {
	background: none;
	border: none;
	padding: 0;
	margin-left: auto;
	font-family: var(--f-body);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--c-gold);
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
	white-space: nowrap;
}
.nzn-size-guide-trigger:hover {
	color: var(--c-deep);
}

/* Size guide modal */
.nzn-size-guide-modal {
	display: none;
	position: fixed;
	inset: 0;
	z-index: 1100;
	align-items: center;
	justify-content: center;
	padding: 24px;
}
.nzn-size-guide-modal.is-open {
	display: flex;
}
.nzn-size-guide-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(26, 22, 18, 0.55);
}
.nzn-size-guide-modal__panel {
	position: relative;
	background: var(--c-white);
	border-radius: 16px;
	padding: 36px 32px 28px;
	max-width: 420px;
	width: 100%;
	max-height: 85vh;
	overflow-y: auto;
	box-shadow: 0 20px 60px rgba(26,22,18,0.25);
}
.nzn-size-guide-modal__close {
	position: absolute;
	top: 14px;
	right: 16px;
	background: none;
	border: none;
	font-size: 1.6rem;
	line-height: 1;
	color: var(--c-text-light);
	cursor: pointer;
	padding: 6px;
}
.nzn-size-guide-modal__close:hover {
	color: var(--c-deep);
}
.nzn-size-guide-modal__title {
	font-family: var(--f-display);
	font-size: 1.6rem;
	font-style: italic;
	font-weight: 500;
	color: var(--c-deep);
	margin: 0 0 4px;
	text-align: center;
}
.nzn-size-guide-modal__subtitle {
	font-family: var(--f-body);
	font-size: 0.78rem;
	color: var(--c-text-light);
	text-align: center;
	margin: 0 0 26px;
}
.nzn-size-guide-modal__table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	font-family: var(--f-body);
}
.nzn-size-guide-modal__table thead th {
	font-size: 0.66rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--c-text-light);
	text-align: left;
	padding: 0 16px 12px;
	border-bottom: 2px solid var(--c-gold);
}
.nzn-size-guide-modal__table thead th:last-child {
	text-align: right;
}
.nzn-size-guide-modal__table tbody tr:nth-child(odd) {
	background: var(--c-bg);
}
.nzn-size-guide-modal__table td {
	padding: 13px 16px;
	color: var(--c-deep);
	font-size: 0.95rem;
}
.nzn-size-guide-modal__table td:first-child {
	font-family: var(--f-display);
	font-style: italic;
	font-weight: 600;
	font-size: 1.2rem;
	color: var(--c-gold);
	border-radius: 8px 0 0 8px;
}
.nzn-size-guide-modal__table td:last-child {
	text-align: right;
	border-radius: 0 8px 8px 0;
}
body.nzn-modal-open {
	overflow: hidden;
}

/* Qty + ATC */
.woocommerce div.product form.cart {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
}
.woocommerce div.product form.cart .qty {
	border: 1.5px solid var(--c-border);
	border-radius: var(--r-sm);
	background: var(--c-stone);
	font-size: 1rem;
	font-weight: 600;
	padding: 13px 16px;
	width: 70px;
	text-align: center;
	min-height: 52px;
	color: var(--c-deep);
}
.woocommerce div.product form.cart .button {
	flex: 1;
	min-width: 200px;
	padding: 16px 32px;
	font-size: 0.72rem;
	letter-spacing: 0.14em;
	min-height: 52px;
}

/* Trust badges — 3-column icon + two-line text, matching a clean
   editorial reference layout */
.nzn-trust-badges {
	/* Sits right after the qty+ATC row inside form.cart (display:flex),
	   so force full width — otherwise it just sits inline next to the
	   button instead of dropping to its own row below. */
	width: 100%;
	flex-basis: 100%;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
	margin-top: 28px;
	padding: 20px 0;
	border-top: 1px solid var(--c-border);
	border-bottom: 1px solid var(--c-border);
}
.nzn-trust-badge {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-family: var(--f-body);
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	text-transform: none;
	color: var(--c-text);
	line-height: 1.5;
}
.nzn-trust-badge svg {
	width: 22px;
	height: 22px;
	margin-top: 2px;
	color: var(--c-gold);
	flex-shrink: 0;
}

/* Delivery info */
.nzn-delivery-info {
	background: var(--c-stone);
	border-radius: var(--r-md);
	padding: 20px 24px;
	margin-top: 20px;
	border: 1px solid var(--c-border);
}
.nzn-delivery-info strong {
	font-family: var(--f-body);
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--c-deep);
	display: block;
	margin-bottom: 10px;
}
.nzn-delivery-info ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
.nzn-delivery-info ul li {
	padding: 3px 0 3px 18px;
	position: relative;
	font-size: var(--t-small);
	color: var(--c-text);
	line-height: 1.7;
}
.nzn-delivery-info ul li::before {
	content: '→';
	position: absolute;
	left: 0;
	color: var(--c-gold);
	font-size: 0.72rem;
	line-height: 1.8;
}

/* Color-disclaimer note */
.nzn-color-disclaimer {
	margin: 14px 0 0;
	font-family: var(--f-body);
	font-size: 0.78rem;
	font-weight: 400;
	font-style: italic;
	line-height: 1.6;
	color: var(--c-text-light);
}

/* Tabs */
.woocommerce div.product .woocommerce-tabs ul.tabs {
	border-bottom: 1px solid var(--c-border);
	padding: 0;
	margin-bottom: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: transparent;
	border: none;
	border-radius: 0;
	border-bottom: 2px solid transparent;
	margin-bottom: -1px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	font-family: var(--f-body);
	font-weight: 700;
	font-size: var(--t-label);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--c-text-light);
	padding: 16px 20px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
	border-bottom-color: var(--c-gold);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
	color: var(--c-deep);
}
.woocommerce div.product .woocommerce-tabs .panel {
	padding: 32px 0;
	font-size: 0.97rem;
	line-height: 1.85;
	color: var(--c-text);
}

/* Accordion — replaces the horizontal tabs above via JS (nzn-scripts.js).
   The .woocommerce-tabs CSS above stays as a no-JS fallback. */
.nzn-accordion {
	border-top: 1px solid var(--c-border);
	margin-top: 8px;
}
.nzn-accordion__item {
	border-bottom: 1px solid var(--c-border);
}
.nzn-accordion__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	padding: 20px 4px;
	background: none;
	border: none;
	text-align: left;
	cursor: pointer;
	font-family: var(--f-body);
	font-weight: 700;
	font-size: 0.82rem;
	letter-spacing: 0.10em;
	text-transform: uppercase;
	color: var(--c-deep);
}
.nzn-accordion__chevron {
	width: 12px;
	height: 12px;
	flex-shrink: 0;
	color: var(--c-gold);
	transition: transform var(--dur) var(--ease);
}
.nzn-accordion__header[aria-expanded="true"] .nzn-accordion__chevron {
	transform: rotate(180deg);
}
.nzn-accordion__body {
	padding: 0 4px 24px;
	font-size: 0.97rem;
	line-height: 1.85;
	color: var(--c-text);
}
.nzn-accordion__body[hidden] {
	display: none;
}

/* Related products */
.related.products > h2,
.upsells.products > h2 {
	font-family: var(--f-display);
	font-size: var(--t-h2);
	font-style: italic;
	font-weight: 400;
	text-align: center;
	margin-bottom: var(--sp-lg);
	padding-bottom: 20px;
	border-bottom: 1px solid var(--c-border);
}

/* ====================================================================
   15. CART & CHECKOUT (M8)
   ==================================================================== */

/* Cart table */
.woocommerce-cart table.cart {
	border-collapse: collapse;
}
.woocommerce-cart table.cart th {
	font-family: var(--f-body);
	font-size: var(--t-label);
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--c-text-light);
	border-bottom: 1px solid var(--c-border);
	padding: 14px 12px;
}
.woocommerce-cart table.cart td {
	border-bottom: 1px solid var(--c-border);
	padding: 22px 12px;
	vertical-align: middle;
}
.woocommerce-cart table.cart img {
	border-radius: var(--r-md);
	max-width: 80px;
}
.woocommerce-cart table.cart .product-name a {
	font-family: var(--f-display);
	font-size: 1.1rem;
	color: var(--c-deep);
	font-weight: 600;
}
.woocommerce-cart table.cart input.qty {
	border: 1.5px solid var(--c-border);
	border-radius: var(--r-sm);
	width: 60px;
	text-align: center;
	padding: 8px;
	background: var(--c-stone);
	color: var(--c-deep);
}

/* Checkout panels */
.woocommerce-checkout h3,
#order_review_heading {
	font-family: var(--f-display);
	font-size: var(--t-h3);
	font-style: italic;
	font-weight: 400;
	color: var(--c-deep) !important;
	margin-bottom: 24px;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--c-border);
}

/* Cart trust strip (injected under cart totals) */
.nzn-cart-trust-row td {
	border-bottom: none !important;
	padding: 20px 0 0 !important;
}
.nzn-cart-trust {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.nzn-cart-trust__item {
	display: flex;
	align-items: center;
	gap: 10px;
	font-family: var(--f-body);
	font-size: 0.8rem;
	color: var(--c-text);
}
.nzn-cart-trust__item svg {
	width: 18px;
	height: 18px;
	flex-shrink: 0;
	color: var(--c-gold);
}

/* Cross-sell / empty-cart product strip */
.nzn-cart-crosssell {
	margin-top: var(--sp-lg);
	padding-top: var(--sp-lg);
	border-top: 1px solid var(--c-border);
}
.nzn-cart-crosssell__title {
	font-family: var(--f-display);
	font-size: var(--t-h3);
	font-style: italic;
	font-weight: 400;
	color: var(--c-deep);
	margin-bottom: var(--sp-md);
}

/* Checkout info / trust / phone blocks (injected around place-order) */
.nzn-checkout-info {
	background: var(--c-white);
	border: 1px solid var(--c-border);
	border-radius: var(--r-sm);
	padding: 16px 18px;
	margin: 20px 0;
}
.nzn-checkout-info__line {
	font-size: 0.85rem;
	color: var(--c-text);
	margin: 0;
}
.nzn-checkout-info__line + .nzn-checkout-info__line {
	margin-top: 8px;
}
.nzn-checkout-info__line strong {
	color: var(--c-deep);
}
.nzn-checkout-trust {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	font-family: var(--f-body);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.03em;
	color: var(--c-text-light);
	margin-bottom: 14px;
	text-align: center;
}
.nzn-checkout-phone {
	text-align: center;
	font-size: 0.82rem;
	color: var(--c-text);
	margin-top: 16px;
}
.nzn-checkout-phone a {
	color: var(--c-gold);
	font-weight: 600;
}

/* Form labels */
.woocommerce form .form-row label {
	font-family: var(--f-body);
	font-size: var(--t-label);
	font-weight: 700;
	letter-spacing: 0.10em;
	text-transform: uppercase;
	color: var(--c-deep);
	margin-bottom: 8px;
}

/* Form inputs */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.select2-container--default .select2-selection--single {
	border: 1.5px solid var(--c-border);
	border-radius: var(--r-sm);
	min-height: 50px;
	padding: 13px 16px;
	background: var(--c-stone);
	font-family: var(--f-body);
	font-size: 0.95rem;
	color: var(--c-deep);
	transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus {
	border-color: var(--c-gold);
	box-shadow: 0 0 0 3px rgba(155,123,75,0.12);
	outline: none;
	background: var(--c-white);
}
.select2-container--default .select2-selection--single {
	display: flex;
	align-items: center;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
	font-family: var(--f-body);
	color: var(--c-deep);
	padding: 0;
}

/* Place order */
.woocommerce #payment #place_order,
.woocommerce-checkout #payment #place_order {
	width: 100%;
	padding: 18px 32px !important;
	font-size: 0.72rem !important;
	letter-spacing: 0.14em !important;
	margin-top: 20px;
}

/* Payment methods */
#payment .payment_methods { border: none !important; padding: 0 !important; }
#payment .payment_methods li {
	padding: 14px 16px;
	margin-bottom: 8px;
	background: var(--c-white);
	border-radius: var(--r-sm);
	border: 1.5px solid var(--c-border);
}

/* CartFlows */
.wcf-embed-checkout-form .woocommerce { font-family: var(--f-body); }
.wcf-embed-checkout-form .woocommerce #order_review button,
.wcf-embed-checkout-form .woocommerce #payment #place_order {
	background: var(--c-deep) !important;
	border-color: var(--c-deep) !important;
	color: var(--c-white) !important;
}
.wcf-embed-checkout-form .woocommerce #order_review button:hover,
.wcf-embed-checkout-form .woocommerce #payment #place_order:hover {
	background: var(--c-gold) !important;
	border-color: var(--c-gold) !important;
}

/* WC notices */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	border-radius: var(--r-sm) !important;
	font-family: var(--f-body);
	font-size: var(--t-small);
}
.woocommerce-message { border-top-color: var(--c-success) !important; }

/* ====================================================================
   16. FOOTER — EDITORIAL 4-COLUMN (M9)
   ==================================================================== */

/* Custom footer section (PHP-injected) */
.nzn-footer {
	background: #A66A3F;
	color: rgba(255,255,255,0.9);
}
.nzn-footer__top {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr 1fr;
	gap: 60px;
	max-width: var(--container);
	margin: 0 auto;
	padding: var(--sp-xl) clamp(24px, 5vw, 80px);
}
.nzn-footer__brand-name {
	font-family: var(--f-display);
	font-size: 1.8rem;
	font-style: italic;
	font-weight: 400;
	color: var(--c-white);
	margin-bottom: 16px;
	letter-spacing: 0.04em;
}
.nzn-footer__tagline {
	font-size: 0.88rem;
	line-height: 1.75;
	margin-bottom: 24px;
}
.nzn-footer__social {
	display: flex;
	gap: 12px;
}
.nzn-footer__social a {
	width: 36px;
	height: 36px;
	border-radius: var(--r-sm);
	border: 1px solid rgba(255,255,255,0.18);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--c-white) !important;
	font-size: 0.85rem;
	transition: border-color var(--dur) var(--ease), color var(--dur) var(--ease);
}
.nzn-footer__social a:hover {
	border-color: var(--c-gold);
	color: var(--c-gold) !important;
}
.nzn-footer__col-title {
	font-family: var(--f-body);
	font-size: var(--t-label);
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--c-white);
	margin-bottom: 20px;
}
.nzn-footer__links {
	list-style: none;
	padding: 0;
	margin: 0;
}
.nzn-footer__links li { padding: 4px 0; }
.nzn-footer__links a {
	color: var(--c-white) !important;
	font-size: 0.88rem;
	line-height: 1.8;
	transition: color var(--dur) var(--ease);
}
.nzn-footer__links a:hover { color: var(--c-deep) !important; }

.nzn-footer__bottom {
	border-top: 1px solid rgba(255,255,255,0.08);
}
.nzn-footer__bottom-inner {
	max-width: var(--container);
	margin: 0 auto;
	padding: 20px clamp(24px, 5vw, 80px);
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 20px;
	flex-wrap: wrap;
}
.nzn-footer__copy {
	font-size: 0.72rem;
	color: var(--c-white);
	letter-spacing: 0.04em;
}
.nzn-footer__legal {
	display: flex;
	gap: 20px;
}
.nzn-footer__legal a {
	font-size: 0.72rem;
	color: var(--c-white) !important;
	letter-spacing: 0.04em;
	transition: color var(--dur) var(--ease);
}
.nzn-footer__legal a:hover { color: var(--c-deep) !important; }

/* Hide Astra's default footer — replaced by PHP custom footer */
.site-footer,
.footer-widget-area,
.ast-small-footer {
	display: none !important;
}

/* ====================================================================
   17. POPUPS & MISC
   ==================================================================== */

.pum .pum-close {
	background: var(--c-deep) !important;
	border-radius: var(--r-sm);
	color: var(--c-white) !important;
}

#scroll-to-top {
	background: var(--c-deep) !important;
	border-radius: var(--r-sm) !important;
	width: 42px;
	height: 42px;
	bottom: 88px;
	right: 20px;
	transition: background var(--dur) var(--ease), transform var(--dur) var(--ease);
}
#scroll-to-top:hover {
	background: var(--c-gold) !important;
	transform: translateY(-2px);
}
#scroll-to-top svg,
#scroll-to-top .dashicons { color: var(--c-white) !important; }

/* ====================================================================
   18. ACCESSIBILITY
   ==================================================================== */

*:focus-visible {
	outline: 2px solid var(--c-gold);
	outline-offset: 3px;
	border-radius: 2px;
}
*:focus:not(:focus-visible) { outline: none; }
::placeholder { color: var(--c-text-light); opacity: 1; }

/* ====================================================================
   20. RESPONSIVE
   ==================================================================== */

/* Tablet — 1024px */
@media (max-width: 1024px) {
	.woocommerce ul.products,
	.woocommerce-page ul.products {
		grid-template-columns: repeat(3, 1fr);
		gap: 36px 24px;
	}
	.nzn-footer__top {
		grid-template-columns: 1fr 1fr;
		gap: 40px;
	}
	.nzn-testimonials__grid {
		grid-template-columns: 1fr 1fr;
		gap: 24px;
	}
	.nzn-newsletter__inner {
		grid-template-columns: 1fr;
		gap: 32px;
	}
	.nzn-newsletter__form { max-width: 520px; }

	.elementor-page-2888 .elementor-element-7020ec8e > .elementor-element-populated,
	.elementor-page-2888 .elementor-element-7f90fb31 > .elementor-element-populated {
		min-height: 420px;
	}

	.woocommerce div.product form.cart {
		flex-direction: column;
		align-items: stretch;
	}
	.woocommerce div.product form.cart .qty {
		width: 100%;
		text-align: left;
	}
}

/* Mobile — 767px */
@media (max-width: 767px) {
	.woocommerce ul.products,
	.woocommerce-page ul.products {
		grid-template-columns: repeat(2, 1fr);
		gap: 28px 16px;
	}

	.elementor-page-2888 .elementor-element-5ffd1adc {
		min-height: 78vh !important;
		align-items: flex-end;
	}
	.elementor-page-2888 .elementor-element-5ffd1adc .elementor-heading-title {
		font-size: clamp(2.8rem, 9vw, 5rem) !important;
	}
	.elementor-page-2888 .elementor-element-7020ec8e > .elementor-element-populated,
	.elementor-page-2888 .elementor-element-7f90fb31 > .elementor-element-populated {
		min-height: 320px;
	}

	.nzn-testimonials__grid { grid-template-columns: 1fr; }
	.nzn-testimonial:nth-child(n+2) { display: none; }

	.nzn-footer__top {
		grid-template-columns: 1fr;
		gap: 36px;
	}
	.nzn-footer__bottom-inner {
		flex-direction: column;
		text-align: center;
	}
	.nzn-trust-badges { gap: 16px; }

	.woocommerce-checkout .col2-set .col-1,
	.woocommerce-checkout .col2-set .col-2 {
		float: none;
		width: 100%;
		margin-bottom: 20px;
	}
}

/* Small — 480px */
@media (max-width: 480px) {
	.woocommerce ul.products,
	.woocommerce-page ul.products {
		grid-template-columns: repeat(2, 1fr);
		gap: 20px 12px;
	}
	.nzn-announcement__inner {
		flex-direction: column;
		gap: 6px;
	}
	.nzn-sep { display: none; }
}

@media print {
	.site-header, .nzn-footer { display: none !important; }
}

/* Single product: no left sidebar (fixed via Astra customizer option),
   and give the hero image more room than the default 48/48 split so
   it reads as the dominant element next to the summary column. */
@media (min-width: 769px) {
	.woocommerce div.product div.images {
		float: left;
		width: 56%;
		margin-right: 4%;
	}
	.woocommerce div.product div.summary {
		float: right;
		width: 40%;
		margin-left: 0;
		clear: none;
	}
}

/* ====================================================================
   CONTACT PAGE — custom template (page-contact.php)
   ==================================================================== */

.nzn-contact-page { background: var(--c-bg); }

.nzn-contact-hero {
	text-align: center;
	padding: var(--sp-xl) clamp(24px, 5vw, 80px) var(--sp-lg);
}
.nzn-contact-hero__eyebrow {
	display: block;
	font-family: var(--f-body);
	font-size: var(--t-label);
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--c-gold);
	margin-bottom: 14px;
}
.nzn-contact-hero__title {
	font-family: var(--f-display);
	font-size: var(--t-h1);
	font-style: italic;
	font-weight: 400;
	color: var(--c-deep);
	margin: 0 0 16px;
	line-height: 1.1;
}
.nzn-contact-hero__subtitle {
	font-family: var(--f-body);
	font-size: var(--t-body);
	color: var(--c-text);
	max-width: 560px;
	margin: 0 auto;
	line-height: 1.7;
}

.nzn-contact-main__inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 clamp(24px, 5vw, 80px) var(--sp-section);
	display: grid;
	grid-template-columns: 0.85fr 1.15fr;
	gap: var(--sp-lg);
	align-items: start;
}

.nzn-contact-info__title {
	font-family: var(--f-display);
	font-size: var(--t-h3);
	font-style: italic;
	font-weight: 400;
	color: var(--c-deep);
	margin: 0 0 var(--sp-md);
}

.nzn-contact-card {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	padding: 20px;
	margin-bottom: 14px;
	background: var(--c-white);
	border: 1px solid var(--c-border);
	border-radius: var(--r-md);
	transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease);
}
a.nzn-contact-card:hover {
	border-color: var(--c-gold);
	box-shadow: 0 8px 24px rgba(155,123,75,0.14);
	transform: translateY(-2px);
}
.nzn-contact-card__icon {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--c-stone);
	color: var(--c-gold);
}
.nzn-contact-card__icon svg {
	width: 20px;
	height: 20px;
}
.nzn-contact-card__text {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding-top: 4px;
}
.nzn-contact-card__label {
	font-family: var(--f-body);
	font-size: var(--t-label);
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--c-text-light);
}
.nzn-contact-card__value {
	font-family: var(--f-body);
	font-size: 1rem;
	font-weight: 600;
	color: var(--c-deep);
}
.nzn-contact-card--static { cursor: default; }

.nzn-contact-form-card {
	background: var(--c-white);
	border: 1px solid var(--c-border);
	border-radius: var(--r-lg);
	padding: var(--sp-lg) clamp(24px, 3vw, 48px);
	box-shadow: 0 12px 40px rgba(26,22,18,0.06);
}
.nzn-contact-form-card__title {
	font-family: var(--f-display);
	font-size: var(--t-h3);
	font-style: italic;
	font-weight: 400;
	color: var(--c-deep);
	margin: 0 0 8px;
}
.nzn-contact-form-card__subtitle {
	font-family: var(--f-body);
	font-size: var(--t-small);
	color: var(--c-text);
	margin: 0 0 var(--sp-md);
}

/* WPForms — restyle to match the site instead of plugin defaults */
.nzn-contact-form-card .wpforms-container { margin: 0 !important; }
.nzn-contact-form-card .wpforms-field { padding: 0 0 20px !important; }
.nzn-contact-form-card .wpforms-field-label {
	font-family: var(--f-body) !important;
	font-size: var(--t-label) !important;
	font-weight: 700 !important;
	letter-spacing: 0.08em !important;
	text-transform: uppercase !important;
	color: var(--c-text-light) !important;
	margin-bottom: 8px !important;
}
.nzn-contact-form-card input[type="text"],
.nzn-contact-form-card input[type="email"],
.nzn-contact-form-card input[type="tel"],
.nzn-contact-form-card textarea,
.nzn-contact-form-card select {
	font-family: var(--f-body) !important;
	font-size: var(--t-body) !important;
	color: var(--c-deep) !important;
	background: var(--c-bg) !important;
	border: 1px solid var(--c-border) !important;
	border-radius: var(--r-sm) !important;
	padding: 12px 14px !important;
	transition: border-color var(--dur) var(--ease) !important;
}
.nzn-contact-form-card input[type="text"]:focus,
.nzn-contact-form-card input[type="email"]:focus,
.nzn-contact-form-card input[type="tel"]:focus,
.nzn-contact-form-card textarea:focus,
.nzn-contact-form-card select:focus {
	border-color: var(--c-gold) !important;
	outline: none !important;
}
.nzn-contact-form-card .wpforms-submit-container .wpforms-submit {
	font-family: var(--f-body) !important;
	font-weight: 600 !important;
	letter-spacing: 0.12em !important;
	text-transform: uppercase !important;
	font-size: 0.72rem !important;
	background: var(--c-deep) !important;
	color: var(--c-white) !important;
	border: 1.5px solid var(--c-deep) !important;
	border-radius: var(--r-sm) !important;
	padding: 14px 32px !important;
	transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), background var(--dur) var(--ease) !important;
}
.nzn-contact-form-card .wpforms-submit-container .wpforms-submit:hover {
	background: var(--c-gold) !important;
	border-color: var(--c-gold) !important;
	transform: translateY(-2px);
	box-shadow: 0 8px 24px rgba(155,123,75,0.28) !important;
}

/* Reusable 4-icon trust strip (Isporuka / Vrhunski kvalitet / itd.) —
   used on the contact page and the homepage via [nzn_feature_strip]. */
.nzn-feature-strip {
	background: var(--c-bg);
	padding: var(--sp-xl) clamp(24px, 5vw, 80px);
}
.nzn-feature-strip__inner {
	max-width: 1200px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--sp-md);
}
.nzn-feature-strip__item {
	text-align: center;
}
.nzn-feature-strip__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--c-white);
	color: var(--c-gold);
	margin-bottom: 16px;
}
.nzn-feature-strip__icon svg {
	width: 26px;
	height: 26px;
}
.nzn-feature-strip__item h3 {
	font-family: var(--f-display);
	font-size: 1.3rem;
	font-style: italic;
	font-weight: 400;
	color: var(--c-deep);
	margin: 0 0 8px;
}
.nzn-feature-strip__item p {
	font-family: var(--f-body);
	font-size: var(--t-small);
	color: var(--c-text);
	line-height: 1.6;
	margin: 0;
}

@media (max-width: 1024px) {
	.nzn-contact-main__inner { grid-template-columns: 1fr; }
	.nzn-feature-strip__inner { grid-template-columns: repeat(2, 1fr); gap: var(--sp-lg); }
}
@media (max-width: 480px) {
	.nzn-feature-strip__inner { grid-template-columns: 1fr; }
}

/* Larger variant — homepage instance, where the section sits next to
   much bigger elements (hero, carousel) and reads too small otherwise. */
.nzn-feature-strip--lg {
	padding: var(--sp-lg) clamp(24px, 5vw, 80px);
}
.nzn-feature-strip--lg .nzn-feature-strip__inner {
	max-width: 1400px;
	gap: var(--sp-lg);
}
.nzn-feature-strip--lg .nzn-feature-strip__icon {
	width: 90px;
	height: 90px;
	margin-bottom: 22px;
}
.nzn-feature-strip--lg .nzn-feature-strip__icon svg {
	width: 40px;
	height: 40px;
}
.nzn-feature-strip--lg .nzn-feature-strip__item h3 {
	font-size: 1.6rem;
	margin-bottom: 12px;
}
.nzn-feature-strip--lg .nzn-feature-strip__item p {
	font-size: 0.98rem;
	line-height: 1.65;
}
@media (max-width: 1024px) {
	.nzn-feature-strip--lg .nzn-feature-strip__icon { width: 76px; height: 76px; }
	.nzn-feature-strip--lg .nzn-feature-strip__icon svg { width: 34px; height: 34px; }
	.nzn-feature-strip--lg .nzn-feature-strip__item h3 { font-size: 1.4rem; }
}

/* Contact page — retail store locations + map */
.nzn-contact-locations {
	padding: var(--sp-xl) clamp(24px, 5vw, 80px);
}
.nzn-contact-locations__inner {
	max-width: 1200px;
	margin: 0 auto;
}
.nzn-contact-locations__title {
	font-family: var(--f-display);
	font-size: var(--t-h2);
	font-style: italic;
	font-weight: 400;
	text-align: center;
	color: var(--c-deep);
	margin: 0 0 10px;
}
.nzn-contact-locations__subtitle {
	font-family: var(--f-body);
	font-size: var(--t-body);
	color: var(--c-text);
	text-align: center;
	max-width: 520px;
	margin: 0 auto var(--sp-lg);
}
.nzn-location-blocks {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	grid-template-rows: auto auto auto;
	gap: var(--sp-md);
	align-items: stretch;
}
.nzn-location-block {
	display: grid;
	grid-template-rows: subgrid;
	grid-row: span 3;
	background: var(--c-white);
	border: 1px solid var(--c-border);
	border-radius: var(--r-lg);
	overflow: hidden;
	box-shadow: 0 12px 40px rgba(26,22,18,0.06);
}
.nzn-location-block__info {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	padding: 20px;
}
.nzn-location-card__icon {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--c-stone);
	color: var(--c-gold);
}
.nzn-location-card__icon svg { width: 20px; height: 20px; }
.nzn-location-card__text {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding-top: 2px;
	min-width: 0;
}
.nzn-location-card__city {
	font-family: var(--f-body);
	font-size: 0.92rem;
	font-weight: 700;
	line-height: 1.35;
	color: var(--c-deep);
}
.nzn-location-card__address {
	font-family: var(--f-body);
	font-size: var(--t-small);
	color: var(--c-text);
	line-height: 1.5;
}
.nzn-location-card__phone {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-family: var(--f-body);
	font-size: var(--t-small);
	font-weight: 700;
	color: var(--c-gold);
	margin-top: 4px;
}
.nzn-location-card__phone svg { width: 15px; height: 15px; flex-shrink: 0; }
.nzn-location-card__phone:hover { color: var(--c-deep); }

.nzn-location-hours {
	list-style: none;
	margin: 0;
	padding: 14px 20px;
	border-top: 1px solid var(--c-border);
	background: var(--c-bg);
}
.nzn-location-hours__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 4px 0;
	font-family: var(--f-body);
	font-size: 0.8rem;
}
.nzn-location-hours__day { color: var(--c-text); }
.nzn-location-hours__time { color: var(--c-deep); font-weight: 600; }
.nzn-location-hours__row.is-closed .nzn-location-hours__time {
	color: var(--c-text-light);
	font-weight: 400;
	font-style: italic;
}
.nzn-store-map {
	display: block;
	width: 100%;
	height: 340px;
	border: 0;
	border-top: 1px solid var(--c-border);
}

@media (max-width: 1024px) {
	.nzn-location-blocks { grid-template-columns: 1fr; }
}

/* ====================================================================
   HOMEPAGE — featured models carousel
   ==================================================================== */
.nzn-home-carousel {
	background: var(--c-bg);
	padding: var(--sp-xl) clamp(24px, 5vw, 80px);
}
.nzn-home-carousel__inner {
	max-width: 1280px;
	margin: 0 auto;
}
.nzn-home-carousel__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	margin-bottom: var(--sp-lg);
}
.nzn-home-carousel__title {
	font-family: var(--f-display);
	font-size: var(--t-h2);
	font-style: italic;
	font-weight: 400;
	color: var(--c-deep);
	margin: 0;
}
.nzn-home-carousel__nav {
	display: flex;
	gap: 10px;
	flex-shrink: 0;
}
.nzn-carousel-btn {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex-shrink: 0;
	box-sizing: border-box;
	width: 44px !important;
	height: 44px !important;
	min-width: 44px;
	min-height: 44px;
	padding: 0 !important;
	margin: 0;
	border-radius: 50% !important;
	background: var(--c-white) !important;
	border: 1.5px solid var(--c-border) !important;
	color: var(--c-deep) !important;
	line-height: 1;
	text-transform: none !important;
	transition: background var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.nzn-carousel-btn svg {
	width: 20px !important;
	height: 20px !important;
	stroke-width: 2.2;
	overflow: visible;
}
.nzn-carousel-btn:hover {
	background: var(--c-deep) !important;
	border-color: var(--c-deep) !important;
	color: var(--c-white) !important;
	transform: translateY(-2px);
}
.nzn-carousel-btn.is-disabled {
	opacity: 0.35;
	pointer-events: none;
}

.nzn-home-carousel__track {
	display: flex;
	gap: var(--sp-md);
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	padding-bottom: 6px;
	-ms-overflow-style: none;
	scrollbar-width: none;
}
.nzn-home-carousel__track::-webkit-scrollbar { display: none; }

.nzn-carousel-card {
	flex: 0 0 auto;
	scroll-snap-align: start;
	width: 270px;
	background: var(--c-white);
	border: 1px solid var(--c-border);
	border-radius: var(--r-lg);
	overflow: hidden;
	box-shadow: 0 12px 32px rgba(26,22,18,0.05);
	transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.nzn-carousel-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 16px 40px rgba(26,22,18,0.12);
	border-color: var(--c-gold);
}
.nzn-carousel-card__image {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 210px;
	background: var(--c-white);
	padding: 16px;
}
.nzn-carousel-card__image img {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
}
.nzn-carousel-card__body {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 16px 18px 20px;
}
.nzn-carousel-card__name {
	font-family: var(--f-body);
	font-size: 0.9rem;
	font-weight: 600;
	color: var(--c-deep);
	line-height: 1.35;
}
.nzn-carousel-card__price {
	font-family: var(--f-body);
	font-size: 0.85rem;
	font-weight: 700;
	color: var(--c-gold);
}

@media (max-width: 600px) {
	.nzn-carousel-card { width: 210px; }
	.nzn-carousel-card__image { height: 170px; }
}

/* ====================================================================
   HOMEPAGE — hero carousel (replaces the single flat hero image)
   ==================================================================== */
.nzn-hero-carousel {
	position: relative;
	min-height: clamp(520px, 88vh, 840px);
	overflow: hidden;
	background: var(--c-stone);
}
.nzn-hero-carousel__track {
	position: absolute;
	inset: 0;
}
.nzn-hero-slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity 1s var(--ease);
	pointer-events: none;
}
.nzn-hero-slide.is-active {
	opacity: 1;
	pointer-events: auto;
}
.nzn-hero-slide__bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
}
.nzn-hero-slide__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(250,250,248,0.94) 0%, rgba(250,250,248,0.55) 42%, rgba(26,22,18,0.12) 100%);
}

.nzn-hero-carousel__content {
	position: relative;
	z-index: 2;
	max-width: 1200px;
	margin: 0 auto;
	height: 100%;
	min-height: clamp(520px, 88vh, 840px);
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 0 clamp(24px, 6vw, 80px);
}
.nzn-hero-carousel__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--f-body);
	font-size: var(--t-label);
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--c-deep);
	background: rgba(255,255,255,0.55);
	border: 1px solid rgba(155,123,75,0.35);
	border-radius: 999px;
	padding: 8px 18px;
	margin-bottom: 20px;
	width: fit-content;
}
.nzn-hero-carousel__title {
	font-family: var(--f-display);
	font-size: clamp(2.8rem, 6.5vw, 4.6rem);
	font-weight: 600;
	line-height: 1.05;
	color: var(--c-gold);
	margin: 0 0 24px;
}
.nzn-hero-carousel__divider {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-bottom: 32px;
	max-width: 320px;
}
.nzn-hero-carousel__line {
	flex: 1;
	height: 1px;
	background: var(--c-gold);
	opacity: 0.55;
}
.nzn-hero-carousel__divider svg {
	width: 20px;
	height: 20px;
	color: var(--c-gold);
	flex-shrink: 0;
}
.nzn-hero-carousel__features {
	display: flex;
	flex-direction: column;
	gap: 18px;
}
.nzn-hero-carousel__feature {
	display: flex;
	align-items: center;
	gap: 14px;
	font-family: var(--f-body);
	font-size: 1.15rem;
	font-weight: 500;
	color: var(--c-deep);
}
.nzn-hero-carousel__feature svg {
	width: 30px;
	height: 30px;
	color: var(--c-gold);
	flex-shrink: 0;
}
.nzn-hero-carousel__cta {
	display: inline-flex;
	align-items: center;
	margin-top: 36px;
	width: fit-content;
	font-family: var(--f-body);
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	font-size: 0.78rem;
	color: var(--c-white) !important;
	background: var(--c-deep) !important;
	border: 1.5px solid var(--c-deep) !important;
	border-radius: var(--r-sm);
	padding: 16px 34px;
	transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), background var(--dur) var(--ease);
}
.nzn-hero-carousel__cta:hover {
	background: var(--c-gold) !important;
	border-color: var(--c-gold) !important;
	transform: translateY(-2px);
	box-shadow: 0 10px 28px rgba(155,123,75,0.32);
}

.nzn-hero-carousel__dots {
	position: absolute;
	left: 50%;
	bottom: 28px;
	transform: translateX(-50%);
	z-index: 3;
	display: flex;
	gap: 10px;
}
.nzn-hero-carousel__dot {
	width: 22px;
	height: 1px;
	border-radius: 1px;
	background: rgba(26,22,18,0.25);
	transition: background var(--dur) var(--ease), width var(--dur) var(--ease);
}
.nzn-hero-carousel__dot.is-active {
	background: var(--c-gold);
	width: 34px;
}

@media (max-width: 767px) {
	/* Shorter than before (was clamp(480px,92vh,720px)) — the text
	   content only needs ~370px, and a much taller box makes the
	   cover-cropped product photos (see below) worse: the box's width
	   is fixed by the viewport, so a taller box forces a bigger zoom,
	   which shows a NARROWER slice of the (very wide, 1800x1000)
	   source image. Shrinking the box lets much more of the shoe
	   fit in frame. */
	.nzn-hero-carousel { min-height: clamp(400px, 58vh, 460px); }
	.nzn-hero-carousel__content { min-height: clamp(400px, 58vh, 460px); }
	.nzn-hero-slide__overlay { background: linear-gradient(180deg, rgba(250,250,248,0.96) 0%, rgba(250,250,248,0.6) 55%, rgba(26,22,18,0.1) 100%); }
	.nzn-hero-carousel__feature { font-size: 1rem; }

	/* Slides 2-5 are composited product-on-gradient photos: the shoe
	   sits in the right ~half of a wide (1800x1000) frame, left half is
	   empty backdrop (designed for desktop, where text overlaps that
	   empty space). At mobile's much taller/narrower box, background-
	   size:cover crops most of it away regardless of focal point — so
	   instead of centering the crop (which clipped a bit off both the
	   toe and the heel), anchor it to the shoe's left/front edge: the
	   front is never clipped, all the unavoidable cropping happens at
	   the back/heel end instead. */
	.nzn-hero-slide--product .nzn-hero-slide__bg {
		background-position: 70% center;
	}

	/* Tighten the text stack's spacing so it takes less vertical room
	   in the now-shorter box, leaving guaranteed clearance between the
	   CTA button and the dots indicator below it (both were fighting
	   for the same space once the box got shorter — the button's
	   bottom edge was landing right on top of the dots). */
	.nzn-hero-carousel__eyebrow { margin-bottom: 14px; }
	.nzn-hero-carousel__title { margin-bottom: 16px; }
	.nzn-hero-carousel__divider { margin-bottom: 20px; }
	.nzn-hero-carousel__cta { margin-top: 20px; }
	.nzn-hero-carousel__content { padding-bottom: 68px; }
}

/* Contact page — social follow section */
.nzn-contact-social {
	padding: var(--sp-xl) clamp(24px, 5vw, 80px);
	text-align: center;
}
.nzn-contact-social__inner {
	max-width: 640px;
	margin: 0 auto;
}
.nzn-contact-social__title {
	font-family: var(--f-display);
	font-size: var(--t-h2);
	font-style: italic;
	font-weight: 400;
	color: var(--c-deep);
	margin: 0 0 16px;
}
.nzn-contact-social__text {
	font-family: var(--f-body);
	font-size: var(--t-body);
	color: var(--c-text);
	line-height: 1.8;
	margin: 0 0 var(--sp-md);
}
.nzn-contact-social__text strong {
	color: var(--c-deep);
	font-weight: 700;
}
.nzn-contact-social__icons {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
}
.nzn-contact-social__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: var(--c-stone);
	color: var(--c-deep);
	transition: transform var(--dur) var(--ease), background var(--dur) var(--ease), color var(--dur) var(--ease);
}
.nzn-contact-social__icon:hover {
	transform: translateY(-3px);
	color: var(--c-white);
}
.nzn-contact-social__icon--instagram:hover {
	background: linear-gradient(45deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888);
}
.nzn-contact-social__icon--facebook:hover {
	background: #1877f2;
}

/* ====================================================================
   ABOUT PAGE — custom template (page-about.php)
   ==================================================================== */
.nzn-about-page { background: var(--c-bg); }

.nzn-about-hero {
	text-align: center;
	padding: var(--sp-xl) clamp(24px, 5vw, 80px) var(--sp-lg);
}
.nzn-about-hero__eyebrow {
	display: block;
	font-family: var(--f-body);
	font-size: var(--t-label);
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--c-gold);
	margin-bottom: 14px;
}
.nzn-about-hero__title {
	font-family: var(--f-display);
	font-size: var(--t-h1);
	font-style: italic;
	font-weight: 400;
	color: var(--c-deep);
	margin: 0 0 16px;
	line-height: 1.1;
}
.nzn-about-hero__subtitle {
	font-family: var(--f-body);
	font-size: var(--t-body);
	color: var(--c-text);
	max-width: 620px;
	margin: 0 auto;
	line-height: 1.7;
}

.nzn-about-story {
	padding: var(--sp-lg) clamp(24px, 5vw, 80px) var(--sp-section);
}
.nzn-about-story__inner {
	max-width: 1200px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1.3fr 0.7fr;
	gap: var(--sp-xl);
	align-items: center;
}
.nzn-about-story__text p {
	font-family: var(--f-body);
	font-size: 1.05rem;
	line-height: 1.9;
	color: var(--c-text);
	margin: 0 0 22px;
}
.nzn-about-story__text p:last-child { margin-bottom: 0; }
.nzn-about-story__text strong { color: var(--c-deep); font-weight: 700; }

.nzn-about-story__stat {
	background: var(--c-white);
	border: 1px solid var(--c-border);
	border-radius: var(--r-lg);
	padding: var(--sp-lg) var(--sp-md);
	text-align: center;
	box-shadow: 0 12px 40px rgba(26,22,18,0.06);
}
.nzn-about-story__stat-number {
	display: block;
	font-family: var(--f-display);
	font-size: clamp(3rem, 6vw, 4.5rem);
	font-weight: 600;
	color: var(--c-gold);
	line-height: 1;
}
.nzn-about-story__stat-label {
	display: block;
	font-family: var(--f-body);
	font-size: var(--t-label);
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--c-text-light);
	margin-top: 10px;
}
.nzn-about-story__divider {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 20px auto;
	max-width: 160px;
}
.nzn-about-story__line {
	flex: 1;
	height: 1px;
	background: var(--c-border);
}
.nzn-about-story__divider svg {
	width: 16px;
	height: 16px;
	color: var(--c-gold);
	flex-shrink: 0;
}
.nzn-about-story__stat-note {
	display: block;
	font-family: var(--f-body);
	font-size: 0.82rem;
	color: var(--c-text);
	line-height: 1.6;
}

.nzn-about-pillars {
	background: var(--c-stone);
	padding: var(--sp-section) clamp(24px, 5vw, 80px);
}
.nzn-about-pillars__inner {
	max-width: 1200px;
	margin: 0 auto;
}
.nzn-about-pillars__title {
	font-family: var(--f-display);
	font-size: var(--t-h2);
	font-style: italic;
	font-weight: 400;
	text-align: center;
	color: var(--c-deep);
	margin: 0 0 var(--sp-lg);
}
.nzn-about-pillars__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--sp-md);
}
.nzn-about-pillar {
	background: var(--c-white);
	border-radius: var(--r-lg);
	padding: var(--sp-md) 24px;
	text-align: center;
	box-shadow: 0 12px 32px rgba(26,22,18,0.05);
}
.nzn-about-pillar__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--c-stone);
	color: var(--c-gold);
	margin-bottom: 16px;
}
.nzn-about-pillar__icon svg { width: 26px; height: 26px; }
.nzn-about-pillar h3 {
	font-family: var(--f-display);
	font-size: 1.25rem;
	font-style: italic;
	font-weight: 400;
	color: var(--c-deep);
	margin: 0 0 8px;
}
.nzn-about-pillar p {
	font-family: var(--f-body);
	font-size: var(--t-small);
	color: var(--c-text);
	line-height: 1.6;
	margin: 0;
}

.nzn-about-stats {
	background: #A66A3F;
	padding: var(--sp-lg) clamp(24px, 5vw, 80px);
}
.nzn-about-stats__inner {
	max-width: 900px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--sp-md);
	text-align: center;
}
.nzn-about-stat__number {
	display: block;
	font-family: var(--f-display);
	font-size: clamp(2rem, 3.5vw, 2.8rem);
	font-weight: 600;
	color: var(--c-white);
	line-height: 1;
}
.nzn-about-stat__label {
	display: block;
	font-family: var(--f-body);
	font-size: 0.82rem;
	color: rgba(255,255,255,0.85);
	margin-top: 10px;
	letter-spacing: 0.02em;
}

.nzn-about-cta {
	text-align: center;
	padding: var(--sp-section) clamp(24px, 5vw, 80px);
}
.nzn-about-cta__inner { max-width: 560px; margin: 0 auto; }
.nzn-about-cta__title {
	font-family: var(--f-display);
	font-size: var(--t-h2);
	font-style: italic;
	font-weight: 400;
	color: var(--c-deep);
	margin: 0 0 14px;
}
.nzn-about-cta__text {
	font-family: var(--f-body);
	font-size: var(--t-body);
	color: var(--c-text);
	line-height: 1.7;
	margin: 0 0 var(--sp-md);
}
.nzn-about-cta__button {
	display: inline-flex;
	font-family: var(--f-body);
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	font-size: 0.78rem;
	color: var(--c-white) !important;
	background: var(--c-deep) !important;
	border: 1.5px solid var(--c-deep) !important;
	border-radius: var(--r-sm);
	padding: 16px 34px;
	transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), background var(--dur) var(--ease);
}
.nzn-about-cta__button:hover {
	background: var(--c-gold) !important;
	border-color: var(--c-gold) !important;
	transform: translateY(-2px);
	box-shadow: 0 10px 28px rgba(155,123,75,0.32);
}

@media (max-width: 1024px) {
	.nzn-about-story__inner { grid-template-columns: 1fr; }
	.nzn-about-pillars__grid { grid-template-columns: repeat(2, 1fr); }
	.nzn-about-stats__inner { grid-template-columns: 1fr; gap: var(--sp-lg); }
}
@media (max-width: 600px) {
	.nzn-about-pillars__grid { grid-template-columns: 1fr; }
}

/* About page — heritage diploma section */
.nzn-about-diploma {
	background: var(--c-stone);
	padding: var(--sp-section) clamp(24px, 5vw, 80px);
}
.nzn-about-diploma__inner {
	max-width: 1000px;
	margin: 0 auto;
	text-align: center;
}
.nzn-about-diploma__text {
	max-width: 640px;
	margin: 0 auto var(--sp-lg);
}
.nzn-about-diploma__frame {
	position: relative;
	background: var(--c-white);
	border-radius: var(--r-md);
	padding: 18px;
	box-shadow: 0 24px 60px rgba(26,22,18,0.16);
	transform: rotate(-0.8deg);
	max-width: 820px;
	margin: 0 auto;
}
.nzn-about-diploma__frame img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 2px;
}
.nzn-about-diploma__title {
	font-family: var(--f-display);
	font-size: var(--t-h2);
	font-style: italic;
	font-weight: 400;
	color: var(--c-deep);
	margin: 8px 0 18px;
}
.nzn-about-diploma__text p {
	font-family: var(--f-body);
	font-size: 1.02rem;
	line-height: 1.85;
	color: var(--c-text);
	margin: 0;
}
.nzn-about-diploma__caption {
	display: block;
	font-family: var(--f-body);
	font-size: 0.82rem;
	font-style: italic;
	letter-spacing: 0.02em;
	color: var(--c-text-light);
	margin-top: var(--sp-md);
}

@media (max-width: 640px) {
	.nzn-about-diploma__frame { transform: rotate(0deg); padding: 10px; }
}

/* Temporarily hide the "Novo" product badge (BeRocket Better Labels
   plugin) on product grid/archive listings, per request — easy to
   bring back by removing this rule. */
.woocommerce ul.products .berocket_better_labels {
	display: none !important;
}

/* ====================================================================
   CART PAGE — custom NZN design
   ==================================================================== */

.woocommerce-cart .entry-content,
.woocommerce-cart #content .ast-container {
	max-width: 1280px;
	margin-left: auto;
	margin-right: auto;
	width: 100%;
}

.nzn-cart {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 380px;
	gap: var(--sp-lg);
	align-items: start;
	padding: var(--sp-md) 0 var(--sp-section);
	font-family: var(--f-body);
	min-width: 0;
	width: 100%;
	box-sizing: border-box;
}

@media (max-width: 1180px) {
	.nzn-cart {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* ---- Items list ---- */

.nzn-cart__items {
	background: var(--c-white);
	border: 1px solid var(--c-border);
	border-radius: 14px;
	overflow: hidden;
	container-type: inline-size;
	container-name: nzn-cart-items;
}

.nzn-cart__items-head {
	display: grid;
	grid-template-columns: minmax(220px, 1fr) 130px 150px 130px 48px;
	gap: var(--sp-sm);
	align-items: center;
	padding: 18px 24px;
	background: var(--c-stone);
	font-family: var(--f-body);
	font-size: var(--t-label);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--c-text-light);
}

.nzn-cart__head-price,
.nzn-cart__head-qty,
.nzn-cart__head-subtotal {
	text-align: center;
}

@container nzn-cart-items (max-width: 780px) {
	.nzn-cart__items-head { display: none; }
}

.nzn-cart__row {
	display: grid;
	grid-template-columns: minmax(220px, 1fr) 130px 150px 130px 48px;
	gap: var(--sp-sm);
	align-items: center;
	padding: 22px 24px;
	border-top: 1px solid var(--c-border);
}

.nzn-cart__row:first-of-type { border-top: none; }

@container nzn-cart-items (max-width: 780px) {
	.nzn-cart__row {
		grid-template-columns: 1fr auto;
		grid-template-areas:
			"product remove"
			"qty     subtotal";
		row-gap: 14px;
	}
	.nzn-cart__row-product { grid-area: product; }
	.nzn-cart__row-remove  { grid-area: remove; }
	.nzn-cart__row-qty     { grid-area: qty; }
	.nzn-cart__row-subtotal{ grid-area: subtotal; text-align: right; max-width: 110px; }
	.nzn-cart__row-price   { display: none; }
}

/* Extra-narrow tier (very small phones, or a squeezed mid-width container).
   !important because the unconditional .nzn-cart__thumb size rule below
   this block would otherwise win the cascade (same specificity, later
   in source order) regardless of whether this container query matches. */
@container nzn-cart-items (max-width: 300px) {
	.nzn-cart__row {
		grid-template-columns: 1fr auto !important;
		grid-template-areas:
			"product  remove"
			"qty      qty"
			"subtotal subtotal" !important;
		padding: 16px 14px !important;
		gap: 8px !important;
	}
	.nzn-cart__row-subtotal {
		max-width: none !important;
		text-align: left !important;
		font-size: var(--t-small) !important;
		font-weight: 600;
	}
	.nzn-cart__thumb { width: 72px !important; height: 54px !important; }
}

.nzn-cart__row-product {
	display: flex;
	align-items: center;
	gap: 16px;
}

.nzn-cart__thumb {
	flex: 0 0 auto;
	width: 108px;
	height: 78px;
	border-radius: 10px;
	overflow: hidden;
	background: var(--c-white);
	border: 1px solid var(--c-border);
}

.nzn-cart__thumb img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	display: block;
}

.nzn-cart__meta {
	flex: 1 1 auto;
}

.nzn-cart__name {
	font-family: var(--f-display);
	font-size: 1.25rem;
	font-weight: 500;
	line-height: 1.25;
	margin: 0 0 4px;
}

.nzn-cart__name a {
	color: var(--c-deep);
	text-decoration: none;
}

.nzn-cart__name a:hover { color: var(--c-gold); }

.nzn-cart__item-data {
	font-size: var(--t-small);
	color: var(--c-text-light);
}

.nzn-cart__item-data p { margin: 0; }

.nzn-cart__price-mobile {
	display: none;
	font-size: var(--t-small);
	color: var(--c-text);
	margin-top: 4px;
}

@container nzn-cart-items (max-width: 780px) {
	.nzn-cart__price-mobile { display: inline-block; }
}

.nzn-cart__row-price,
.nzn-cart__row-subtotal {
	text-align: center;
	font-size: var(--t-body);
	color: var(--c-deep);
	white-space: nowrap;
}

.nzn-cart__row-subtotal {
	font-weight: 600;
	color: var(--c-deep);
}

.nzn-cart__row-price .woocommerce-Price-amount,
.nzn-cart__row-subtotal .woocommerce-Price-amount {
	font-family: var(--f-body);
}

/* Quantity stepper */

.nzn-cart__row-qty { display: flex; justify-content: center; }

.nzn-qty-stepper {
	display: inline-flex;
	align-items: stretch;
	border: 1px solid var(--c-border);
	border-radius: 10px;
	overflow: hidden;
	background: var(--c-white);
	height: 40px;
}

.nzn-qty-stepper__btn {
	appearance: none;
	border: none;
	background: var(--c-bg);
	width: 36px;
	color: var(--c-text);
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: color 0.15s ease, background 0.15s ease;
}

.nzn-qty-stepper__btn svg {
	display: block !important;
	width: 13px !important;
	height: 13px !important;
	flex-shrink: 0;
	pointer-events: none;
	color: inherit;
}

.nzn-qty-stepper__btn:hover {
	color: var(--c-deep);
	background: var(--c-stone);
}

.nzn-qty-stepper__btn:active {
	color: var(--c-white);
	background: var(--c-gold);
}

.nzn-qty-stepper__btn--minus { border-right: 1px solid var(--c-border); }
.nzn-qty-stepper__btn--plus  { border-left: 1px solid var(--c-border); }

.nzn-qty-stepper .quantity { margin: 0; height: 100%; }

.nzn-qty-stepper input.qty {
	width: 44px;
	height: 100%;
	border: none;
	background: none;
	text-align: center;
	font-family: var(--f-body);
	font-size: 0.95rem;
	font-weight: 600;
	color: var(--c-deep);
	-moz-appearance: textfield;
	padding: 0;
}

.nzn-qty-stepper input.qty:focus {
	outline: none;
	background: var(--c-stone);
}

.nzn-qty-stepper input.qty::-webkit-outer-spin-button,
.nzn-qty-stepper input.qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

/* Remove button */

.nzn-cart__row-remove { display: flex; justify-content: center; }

.nzn-cart__remove {
	width: 34px;
	height: 34px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	color: var(--c-text-light);
	transition: color 0.15s ease, background 0.15s ease;
}

.nzn-cart__remove svg {
	width: 17px;
	height: 17px;
}

.nzn-cart__remove:hover {
	color: #B23A3A;
	background: #FBEAEA;
}

/* Actions row: coupon + update cart */

.nzn-cart__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--sp-sm);
	padding: 20px 24px;
	border-top: 1px solid var(--c-border);
	background: var(--c-stone);
}

.nzn-cart__coupon { position: relative; }

.nzn-cart__coupon-toggle {
	appearance: none;
	background: none;
	border: none;
	padding: 0;
	font-family: var(--f-body);
	font-size: var(--t-small);
	color: var(--c-gold);
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}

.nzn-cart__coupon-panel {
	display: none;
	align-items: center;
	gap: 8px;
	margin-top: 12px;
}

.nzn-cart__coupon-panel.is-open { display: flex; }

.nzn-cart__coupon-panel input[type="text"] {
	height: 42px;
	padding: 0 14px;
	border: 1px solid var(--c-border);
	border-radius: 8px;
	background: var(--c-white);
	font-family: var(--f-body);
	font-size: var(--t-body);
	min-width: 200px;
}

.nzn-cart__coupon-apply {
	appearance: none;
	cursor: pointer;
	height: 42px;
	padding: 0 22px;
	border-radius: 999px;
	font-family: var(--f-body);
	font-size: var(--t-small);
	font-weight: 600;
	letter-spacing: 0.02em;
	border: 1px solid var(--c-deep);
	background: transparent;
	color: var(--c-deep);
	transition: background 0.15s ease, color 0.15s ease;
}

.nzn-cart__coupon-apply:hover {
	background: var(--c-deep);
	color: var(--c-white);
}

/* ---- Order summary card ---- */

body.woocommerce-cart .nzn-cart .nzn-cart__collaterals.cart-collaterals {
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0;
	box-sizing: border-box;
}

body.woocommerce-cart .nzn-cart-summary.cart_totals {
	width: 100% !important;
	max-width: 100% !important;
	float: none !important;
}

.nzn-cart-summary {
	position: sticky;
	top: 24px;
	background: var(--c-white);
	border: 1px solid var(--c-border);
	border-radius: 14px;
	padding: 28px 26px;
}

.nzn-cart-summary__title {
	font-family: var(--f-display);
	font-size: 1.6rem;
	font-weight: 500;
	color: var(--c-deep);
	margin: 0 0 20px;
}

.nzn-cart-summary__lines {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin-bottom: 22px;
}

.nzn-cart-summary__line {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	font-size: var(--t-body);
	color: var(--c-text);
	padding-bottom: 14px;
	border-bottom: 1px solid var(--c-border);
}

.nzn-cart-summary__line:last-child {
	border-bottom: none;
	padding-bottom: 0;
}

.nzn-cart-summary__line--discount { color: var(--c-success); }

.nzn-cart-summary__line--total {
	font-family: var(--f-display);
	font-size: 1.4rem;
	color: var(--c-deep);
	border-bottom: none;
	padding-top: 4px;
}

.nzn-cart-summary__line--total .woocommerce-Price-amount {
	color: var(--c-gold);
	font-weight: 600;
}

.nzn-cart-summary__checkout .checkout-button {
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	width: 100%;
	min-height: 54px;
	padding: 12px 24px !important;
	border-radius: 999px;
	background: var(--c-deep);
	color: var(--c-white) !important;
	font-family: var(--f-body);
	font-size: 1rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	text-decoration: none;
	transition: background 0.15s ease, transform 0.15s ease;
}

.nzn-cart-summary__checkout .checkout-button:hover {
	background: var(--c-gold);
	transform: translateY(-1px);
}

.nzn-cart-summary__note {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	margin: 16px 0 0;
	font-size: var(--t-small);
	color: var(--c-text-light);
	line-height: 1.4;
}

.nzn-cart-summary__note svg {
	width: 18px;
	height: 18px;
	flex: 0 0 auto;
	color: var(--c-gold);
	margin-top: 1px;
}

.nzn-cart-summary .shipping-calculator-form,
.nzn-cart-summary select,
.nzn-cart-summary input[type="text"] {
	font-family: var(--f-body);
	font-size: var(--t-small);
}

/* ---- Empty cart state ---- */

.nzn-cart-empty {
	max-width: 560px;
	margin: var(--sp-xl) auto var(--sp-section);
	text-align: center;
	padding: var(--sp-lg) var(--sp-md);
}

.nzn-cart-empty__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 120px;
	height: 120px;
	border-radius: 50%;
	background: var(--c-stone);
	color: var(--c-gold);
	margin-bottom: 32px;
}

.nzn-cart-empty__icon svg { width: 54px; height: 54px; }

.nzn-cart-empty__title {
	font-family: var(--f-display);
	font-size: 2.6rem;
	color: var(--c-deep);
	margin: 0 0 14px;
}

.nzn-cart-empty__text {
	color: var(--c-text);
	font-size: 1.1rem;
	margin: 0 0 32px;
}

.nzn-cart-empty__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 58px;
	padding: 0 40px;
	font-size: 1.05rem;
	border-radius: 999px;
	background: var(--c-deep);
	color: var(--c-white) !important;
	font-family: var(--f-body);
	font-weight: 600;
	text-decoration: none;
	transition: background 0.15s ease, transform 0.15s ease;
}

.nzn-cart-empty__button:hover {
	background: var(--c-gold);
	transform: translateY(-1px);
}

/* Cross-sells (if shown above the summary) */
.nzn-cart .cross-sells {
	grid-column: 1 / -1;
	margin-top: var(--sp-md);
}

.nzn-cart .cross-sells h2 {
	font-family: var(--f-display);
	font-size: 1.7rem;
	color: var(--c-deep);
}

/* ====================================================================
   HEADER MINI-CART FLYOUT — custom NZN design
   (desktop dropdown: .ast-site-header-cart-data / mobile drawer: .astra-cart-drawer)
   ==================================================================== */

.ast-site-header-cart-data .widget_shopping_cart,
.astra-cart-drawer .widget_shopping_cart_content {
	font-family: var(--f-body);
	background: var(--c-white) !important;
	border: 1px solid var(--c-border) !important;
	box-shadow: 0 12px 32px rgba(26, 22, 18, 0.1) !important;
	border-radius: 14px;
	padding: 22px !important;
}

.astra-cart-drawer {
	background: var(--c-white) !important;
}

.astra-cart-drawer-header {
	border-bottom: 1px solid var(--c-border) !important;
	padding: 18px 22px !important;
}

.astra-cart-drawer-title {
	font-family: var(--f-display) !important;
	font-size: 1.3rem !important;
	color: var(--c-deep) !important;
}

/* Items list */
.ast-site-header-cart-data .woocommerce-mini-cart,
.astra-cart-drawer .woocommerce-mini-cart {
	margin: 0 0 16px !important;
	padding: 0 !important;
	max-height: 360px;
	overflow-y: auto;
}

.ast-site-header-cart-data .mini_cart_item,
.astra-cart-drawer .mini_cart_item {
	display: flex !important;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 12px;
	padding: 14px 0 !important;
	border-bottom: 1px solid var(--c-border) !important;
	position: relative;
}

.ast-site-header-cart-data .mini_cart_item:first-child,
.astra-cart-drawer .mini_cart_item:first-child {
	padding-top: 0 !important;
}

.ast-site-header-cart-data .mini_cart_item img,
.astra-cart-drawer .mini_cart_item img {
	/* Astra's default .product_list_widget li img rule absolutely
	   positions + center-crops this image (position:absolute, top:50%,
	   translateY(-50%), object-fit:cover) — all overridden below so it
	   sits normally in flow, uncropped. */
	position: static !important;
	top: auto !important;
	left: auto !important;
	transform: none !important;
	width: 64px !important;
	max-width: 64px !important;
	height: 52px !important;
	max-height: 52px !important;
	min-width: 64px !important;
	object-fit: contain !important;
	border-radius: 8px;
	background: var(--c-white) !important;
	border: 1px solid var(--c-border);
	flex: 0 0 auto;
	margin: 0 !important;
}

.ast-site-header-cart-data .mini_cart_item a:not(.remove),
.astra-cart-drawer .mini_cart_item a:not(.remove) {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	flex: 1 1 auto;
	min-width: 0;
	color: var(--c-deep) !important;
	font-family: var(--f-display);
	font-size: 1.05rem;
	line-height: 1.3;
	text-decoration: none !important;
}

.ast-site-header-cart-data .mini_cart_item a:not(.remove):hover,
.astra-cart-drawer .mini_cart_item a:not(.remove):hover {
	color: var(--c-gold) !important;
}

.ast-site-header-cart-data .mini_cart_item .quantity,
.astra-cart-drawer .mini_cart_item .quantity {
	display: block;
	font-family: var(--f-body) !important;
	font-size: var(--t-small) !important;
	color: var(--c-text-light) !important;
	margin-top: 4px;
}

.ast-site-header-cart-data .mini_cart_item a.remove,
.astra-cart-drawer .mini_cart_item a.remove {
	position: absolute !important;
	top: 14px;
	right: 0;
	width: 24px !important;
	height: 24px !important;
	display: flex !important;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	color: var(--c-text-light) !important;
	font-size: 1.1rem;
	line-height: 1 !important;
	border: none !important;
	background: none !important;
	transition: color 0.15s ease, background 0.15s ease;
}

.ast-site-header-cart-data .mini_cart_item a.remove:hover,
.astra-cart-drawer .mini_cart_item a.remove:hover {
	color: #B23A3A !important;
	background: #FBEAEA !important;
}

/* Subtotal */
.ast-site-header-cart-data .woocommerce-mini-cart__total,
.astra-cart-drawer .woocommerce-mini-cart__total {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	flex-wrap: nowrap;
	font-family: var(--f-display) !important;
	font-size: 1.15rem !important;
	color: var(--c-deep) !important;
	border-top: 1px solid var(--c-border) !important;
	padding-top: 16px !important;
	margin: 0 0 16px !important;
	white-space: nowrap;
}

.ast-site-header-cart-data .woocommerce-mini-cart__total strong,
.astra-cart-drawer .woocommerce-mini-cart__total strong {
	flex-shrink: 0;
}

.ast-site-header-cart-data .woocommerce-mini-cart__total .woocommerce-Price-amount,
.astra-cart-drawer .woocommerce-mini-cart__total .woocommerce-Price-amount {
	color: var(--c-gold) !important;
	font-weight: 600;
}

/* Buttons */
.ast-site-header-cart-data .woocommerce-mini-cart__buttons,
.astra-cart-drawer .woocommerce-mini-cart__buttons {
	display: flex !important;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0 !important;
}

.ast-site-header-cart-data .woocommerce-mini-cart__buttons a.button,
.astra-cart-drawer .woocommerce-mini-cart__buttons a.button {
	flex: 1 1 120px;
	display: flex !important;
	align-items: center;
	justify-content: center;
	height: 46px !important;
	padding: 0 12px !important;
	border-radius: 999px !important;
	font-family: var(--f-body) !important;
	font-size: var(--t-small) !important;
	font-weight: 600;
	text-align: center;
	white-space: nowrap;
	text-decoration: none !important;
	border: 1px solid var(--c-deep) !important;
	background: transparent !important;
	color: var(--c-deep) !important;
	transition: background 0.15s ease, color 0.15s ease;
	margin: 0 !important;
}

.ast-site-header-cart-data .woocommerce-mini-cart__buttons a.button:hover,
.astra-cart-drawer .woocommerce-mini-cart__buttons a.button:hover {
	background: var(--c-deep) !important;
	color: var(--c-white) !important;
}

.ast-site-header-cart-data .woocommerce-mini-cart__buttons a.button.checkout,
.astra-cart-drawer .woocommerce-mini-cart__buttons a.button.checkout {
	background: var(--c-deep) !important;
	color: var(--c-white) !important;
}

.ast-site-header-cart-data .woocommerce-mini-cart__buttons a.button.checkout:hover,
.astra-cart-drawer .woocommerce-mini-cart__buttons a.button.checkout:hover {
	background: var(--c-gold) !important;
	border-color: var(--c-gold) !important;
}

/* Empty state */
.ast-mini-cart-empty {
	text-align: center;
	padding: 20px 4px 4px;
}

.ast-site-header-cart-data .woocommerce-mini-cart__empty-message,
.astra-cart-drawer .woocommerce-mini-cart__empty-message {
	font-family: var(--f-display) !important;
	font-size: 1.15rem !important;
	color: var(--c-deep) !important;
	margin: 0 0 18px !important;
}

.ast-mini-cart-empty .woocommerce-mini-cart__buttons {
	display: flex !important;
	margin: 0 !important;
}

.ast-mini-cart-empty .ast-continue-shopping {
	width: 100%;
	display: flex !important;
	align-items: center;
	justify-content: center;
	height: 46px !important;
	border-radius: 999px !important;
	background: var(--c-deep) !important;
	color: var(--c-white) !important;
	font-family: var(--f-body) !important;
	font-size: var(--t-small) !important;
	font-weight: 600;
	text-decoration: none !important;
	border: none !important;
	transition: background 0.15s ease;
}

.ast-mini-cart-empty .ast-continue-shopping:hover {
	background: var(--c-gold) !important;
}

/* ====================================================================
   CHECKOUT PAGE — custom NZN design
   ==================================================================== */

.woocommerce-checkout .entry-content,
.woocommerce-checkout #content .ast-container {
	max-width: 1280px;
	margin-left: auto;
	margin-right: auto;
	width: 100%;
}

.nzn-checkout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 400px;
	gap: var(--sp-lg);
	align-items: start;
	padding: var(--sp-md) 0 var(--sp-section);
	font-family: var(--f-body);
	min-width: 0;
	width: 100%;
	box-sizing: border-box;
}

@media (max-width: 1180px) {
	.nzn-checkout {
		grid-template-columns: minmax(0, 1fr);
	}
	.nzn-checkout__sidebar { order: -1; }
}

.nzn-checkout__main,
.nzn-checkout__sidebar {
	min-width: 0;
}

/* WooCommerce's checkout.js prepends validation-error notices directly
   into the form on failed submit (form.prepend('<div class="woocommerce-
   NoticeGroup">...</div>')) — since the form IS the grid, that wrapper
   would otherwise land as a rogue 3rd grid item and shove main/sidebar
   into the wrong columns. Force it to span full width so it just sits
   above them instead; the notice itself keeps its normal WC styling. */
.nzn-checkout > .woocommerce-NoticeGroup,
.nzn-checkout > .woocommerce-error,
.nzn-checkout > .woocommerce-message,
.nzn-checkout > .woocommerce-info {
	grid-column: 1 / -1;
	margin: 0 0 var(--sp-lg);
}

/* Neutralize WooCommerce's classic float-based 2-col layout entirely —
   we lay out billing/shipping with our own grid instead. */
.nzn-checkout .col2-set {
	width: 100% !important;
	display: block;
}
.nzn-checkout .col2-set::before,
.nzn-checkout .col2-set::after {
	content: none !important;
}
.nzn-checkout .col-1,
.nzn-checkout .col-2 {
	float: none !important;
	width: 100% !important;
}
.nzn-checkout .col-2:empty { display: none; }

.nzn-checkout__section {
	background: var(--c-white);
	border: 1px solid var(--c-border);
	border-radius: 14px;
	padding: 28px 26px;
}

.woocommerce-billing-fields h3,
.woocommerce-shipping-fields h3,
.woocommerce-account-fields h3 {
	font-family: var(--f-display);
	font-size: 1.6rem;
	font-weight: 500;
	font-style: italic;
	color: var(--c-deep);
	margin: 0 0 20px;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--c-border);
}

.nzn-checkout .col-2 .woocommerce-shipping-fields h3 {
	margin-top: 28px;
}

/* Field grid — replaces WC's float:left/right 47% pairing */
.nzn-checkout__section {
	container-type: inline-size;
	container-name: nzn-checkout-fields;
}

.woocommerce-billing-fields__field-wrapper,
.woocommerce-shipping-fields__field-wrapper,
.nzn-checkout .create-account {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 4px 20px;
}

.nzn-checkout .form-row {
	grid-column: span 2;
	float: none !important;
	width: auto !important;
	clear: none !important;
	overflow: visible;
	margin: 0 0 16px;
}

.nzn-checkout .form-row-first,
.nzn-checkout .form-row-last {
	grid-column: span 1;
}

@container nzn-checkout-fields (max-width: 420px) {
	.woocommerce-billing-fields__field-wrapper,
	.woocommerce-shipping-fields__field-wrapper,
	.nzn-checkout .create-account {
		grid-template-columns: 1fr;
	}
	.nzn-checkout .form-row,
	.nzn-checkout .form-row-first,
	.nzn-checkout .form-row-last {
		grid-column: span 1;
	}
}

.nzn-checkout .form-row label {
	display: block;
	font-family: var(--f-body);
	font-size: var(--t-label);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--c-text-light);
	margin-bottom: 8px;
}

.nzn-checkout .form-row label .required {
	color: var(--c-gold);
	text-decoration: none;
}

.nzn-checkout .form-row label .optional {
	text-transform: none;
	letter-spacing: 0;
	color: var(--c-text-light);
	font-size: var(--t-small);
}

.nzn-checkout .form-row input.input-text,
.nzn-checkout .form-row textarea,
.nzn-checkout .form-row select,
.nzn-checkout .select2-container .select2-selection--single {
	width: 100%;
	height: 50px;
	padding: 0 16px;
	border: 1px solid var(--c-border);
	border-radius: 10px;
	background: var(--c-bg);
	font-family: var(--f-body);
	font-size: var(--t-body);
	color: var(--c-deep);
	box-sizing: border-box;
	transition: border-color 0.15s ease, background 0.15s ease;
}

.nzn-checkout .form-row textarea {
	height: auto;
	min-height: 100px;
	padding-top: 14px;
}

.nzn-checkout .form-row input.input-text:focus,
.nzn-checkout .form-row textarea:focus,
.nzn-checkout .form-row select:focus {
	outline: none;
	border-color: var(--c-gold);
	background: var(--c-white);
}

.nzn-checkout .select2-container .select2-selection--single {
	display: flex;
	align-items: center;
}

.nzn-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
	padding: 0;
	line-height: normal;
	color: var(--c-deep);
}

.nzn-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 48px;
}

.nzn-checkout .form-row.woocommerce-invalid input.input-text {
	border-color: #B23A3A;
}

.nzn-checkout .woocommerce-input-wrapper .description {
	font-size: var(--t-small);
	color: var(--c-text-light);
	margin-top: 6px;
	background: var(--c-stone);
	padding: 10px 12px;
	border-radius: 8px;
}

/* Checkbox rows (create account, ship to different address) */
.nzn-checkout .form-row.create-account,
.nzn-checkout p.form-row.woocommerce-form__label-for-checkbox,
.nzn-checkout .woocommerce-shipping-fields > label,
#ship-to-different-address {
	grid-column: span 2;
}

.nzn-checkout label.checkbox,
.nzn-checkout .woocommerce-form__label-for-checkbox {
	display: flex !important;
	align-items: center;
	gap: 10px;
	text-transform: none;
	font-size: var(--t-body);
	color: var(--c-text);
	cursor: pointer;
}

.nzn-checkout input.woocommerce-form__input-checkbox,
.nzn-checkout #ship-to-different-address input[type="checkbox"] {
	width: 18px;
	height: 18px;
	accent-color: var(--c-gold);
}

#ship-to-different-address {
	font-family: var(--f-display);
	font-size: 1.15rem;
	font-style: italic;
	color: var(--c-deep);
}

/* Order notes textarea section */
.nzn-checkout #order_comments_field {
	grid-column: span 2;
}

/* Login / coupon collapsible notices */
.nzn-checkout .woocommerce-form-login-toggle,
.nzn-checkout .woocommerce-form-coupon-toggle {
	margin-bottom: 16px;
}

.nzn-checkout .woocommerce-form-login-toggle .woocommerce-info,
.nzn-checkout .woocommerce-form-coupon-toggle .woocommerce-info {
	display: flex;
	align-items: center;
	gap: 8px;
	background: var(--c-stone);
	border: 1px solid var(--c-border);
	border-radius: 10px;
	padding: 14px 18px;
	color: var(--c-text);
	font-size: var(--t-small);
	list-style: none;
}

.nzn-checkout .woocommerce-form-login-toggle .woocommerce-info::before,
.nzn-checkout .woocommerce-form-coupon-toggle .woocommerce-info::before {
	display: none;
}

.nzn-checkout .showlogin,
.nzn-checkout .showcoupon {
	color: var(--c-gold);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.nzn-checkout .woocommerce-form-login,
.nzn-checkout .woocommerce-form-coupon {
	background: var(--c-stone);
	border: 1px solid var(--c-border);
	border-radius: 10px;
	padding: 20px;
	margin-bottom: 20px;
}

.nzn-checkout .woocommerce-form-coupon .form-row-first,
.nzn-checkout .woocommerce-form-coupon .form-row-last {
	float: none !important;
	width: auto !important;
	display: inline-block;
}

/* ---- Order summary sidebar ---- */

.nzn-checkout__summary {
	position: sticky;
	top: 24px;
	background: var(--c-white);
	border: 1px solid var(--c-border);
	border-radius: 14px;
	padding: 28px 26px;
}

/* Astra generates its own inline CSS (id: woocommerce-general-inline-css)
   that floats #order_review right at 40% width and #customer_details at
   55% — the classic side-by-side checkout layout. That's a high-specificity
   (ID selector) rule we can't edit at the source, so it's neutralized here
   with matching ID specificity + !important. */
#order_review,
#customer_details.col2-set,
#payment,
.woocommerce-checkout-payment,
.woocommerce-checkout-review-order {
	float: none !important;
	width: 100% !important;
	margin-right: 0 !important;
	clear: none !important;
	box-sizing: border-box;
}

/* Astra's generated CSS also puts its own "padding:0 2em; border:0 2px 2px"
   frame directly on #order_review — redundant with (and narrower than)
   the padding already on .nzn-checkout__summary that wraps it. */
#order_review {
	padding: 0 !important;
	border: none !important;
}

.nzn-checkout__summary-title {
	font-family: var(--f-display);
	font-size: 1.6rem;
	font-weight: 500;
	font-style: italic;
	color: var(--c-deep);
	margin: 0 0 20px;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--c-border);
}

.nzn-checkout-items {
	display: flex;
	flex-direction: column;
	gap: 16px;
	max-height: 340px;
	overflow-y: auto;
	margin-bottom: 20px;
}

.nzn-checkout-item {
	display: flex;
	align-items: center;
	gap: 12px;
}

.nzn-checkout-item__thumb {
	flex: 0 0 auto;
	width: 84px;
	height: 84px;
	border-radius: 10px;
	overflow: hidden;
	background: var(--c-white);
	border: 1px solid var(--c-border);
}

.nzn-checkout-item__thumb img {
	position: static !important;
	width: 100% !important;
	height: 100% !important;
	max-width: 100% !important;
	max-height: 100% !important;
	object-fit: contain !important;
	transform: none !important;
	margin: 0 !important;
}

.nzn-checkout-item__meta {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.nzn-checkout-item__name {
	font-family: var(--f-display);
	font-size: 1rem;
	color: var(--c-deep);
	line-height: 1.3;
}

.nzn-checkout-item__qty {
	font-size: var(--t-small);
	color: var(--c-text-light);
}

.nzn-checkout-item__total {
	flex: 0 0 auto;
	font-size: var(--t-small);
	font-weight: 600;
	color: var(--c-deep);
	white-space: nowrap;
}

.nzn-checkout-totals {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding-top: 4px;
	border-top: 1px solid var(--c-border);
}

.nzn-checkout-totals__line {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	font-size: var(--t-body);
	color: var(--c-text);
	white-space: nowrap;
}

.nzn-checkout-totals__line--discount { color: var(--c-success); }

.nzn-checkout-totals__line--total {
	font-family: var(--f-display);
	font-size: 1.35rem;
	color: var(--c-deep);
	padding-top: 10px;
	border-top: 1px solid var(--c-border);
}

.nzn-checkout-totals__line--total .woocommerce-Price-amount {
	color: var(--c-gold);
	font-weight: 600;
}

/* Payment methods */
.nzn-payment-methods {
	list-style: none;
	margin: 24px 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.nzn-payment-methods .wc_payment_method {
	border: 1px solid var(--c-border);
	border-radius: 10px;
	background: var(--c-bg);
	padding: 14px 16px;
}

.nzn-payment-methods .wc_payment_method label {
	display: flex;
	align-items: center;
	gap: 10px;
	font-family: var(--f-body);
	font-weight: 600;
	color: var(--c-deep);
	cursor: pointer;
}

.nzn-payment-methods input.input-radio {
	width: 18px;
	height: 18px;
	accent-color: var(--c-gold);
}

.nzn-payment-methods .payment_box {
	margin-top: 12px;
	padding: 12px 14px;
	background: var(--c-stone);
	border-radius: 8px;
	font-size: var(--t-small);
	color: var(--c-text);
}

.nzn-payment-methods .payment_box p { margin: 0; }

/* Place order */
.nzn-checkout-place-order {
	margin-top: 20px;
}

.woocommerce-terms-and-conditions-wrapper {
	margin-bottom: 16px;
	font-size: var(--t-small);
	color: var(--c-text);
}

.nzn-checkout-place-order {
	width: 100% !important;
}

.nzn-checkout-place-order__button {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 100% !important;
	height: 56px !important;
	border-radius: 999px !important;
	background: var(--c-deep) !important;
	color: var(--c-white) !important;
	border: none !important;
	font-family: var(--f-body) !important;
	font-size: 1.05rem !important;
	font-weight: 600;
	letter-spacing: 0.02em;
	cursor: pointer;
	transition: background 0.15s ease, transform 0.15s ease;
	box-sizing: border-box;
}

.nzn-checkout-place-order__button:hover {
	background: var(--c-gold);
	transform: translateY(-1px);
}

/* WooCommerce injects a blockUI overlay while validating — keep it tidy */
.nzn-checkout__summary.processing,
.woocommerce-checkout.processing .nzn-checkout__sidebar {
	opacity: 0.6;
}

/* ====================================================================
   THANK YOU / ORDER RECEIVED PAGE — custom NZN design
   ==================================================================== */

.woocommerce-order-received .entry-content,
.woocommerce-order-received #content .ast-container {
	max-width: 900px;
	margin-left: auto;
	margin-right: auto;
	width: 100%;
}

.nzn-thankyou {
	padding: var(--sp-md) 0 var(--sp-section);
	font-family: var(--f-body);
	text-align: center;
}

.nzn-thankyou__badge {
	width: 64px;
	height: 64px;
	margin: 0 auto 20px;
	border-radius: 50%;
	background: var(--c-stone);
	color: var(--c-success);
	display: flex;
	align-items: center;
	justify-content: center;
}

.nzn-thankyou__message.woocommerce-notice--success {
	background: none;
	border: none;
	padding: 0;
	margin: 0;
	font-family: var(--f-display);
	font-size: 1.7rem;
	font-style: italic;
	font-weight: 500;
	color: var(--c-deep);
	text-align: center;
}

.nzn-thankyou__message::before {
	display: none !important;
	content: none !important;
}

.nzn-thankyou__overview {
	list-style: none;
	margin: 28px auto 0;
	padding: 22px 26px;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 22px 36px;
	background: var(--c-white);
	border: 1px solid var(--c-border);
	border-radius: 14px;
	max-width: 720px;
}

.nzn-thankyou__overview-item {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
	text-align: center;
}

.nzn-thankyou__overview-label {
	font-family: var(--f-body);
	font-size: var(--t-label);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--c-text-light);
}

.nzn-thankyou__overview-value {
	font-family: var(--f-body);
	font-size: 1rem;
	font-weight: 600;
	color: var(--c-deep);
}

/* Order details card */
.nzn-order-details {
	max-width: 900px;
	margin: 40px auto 0;
	background: var(--c-white);
	border: 1px solid var(--c-border);
	border-radius: 14px;
	padding: 28px 26px;
	text-align: left;
}

.nzn-order-details__title {
	font-family: var(--f-display);
	font-size: 1.5rem;
	font-style: italic;
	font-weight: 500;
	color: var(--c-deep);
	margin: 0 0 20px;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--c-border);
}

.nzn-order-items {
	display: flex;
	flex-direction: column;
	gap: 20px;
	padding-bottom: 20px;
	margin-bottom: 20px;
	border-bottom: 1px solid var(--c-border);
}

.nzn-order-item {
	display: flex;
	align-items: center;
	gap: 16px;
}

.nzn-order-item__thumb {
	flex: 0 0 auto;
	width: 84px;
	height: 84px;
	border-radius: 10px;
	overflow: hidden;
	background: var(--c-white);
	border: 1px solid var(--c-border);
}

.nzn-order-item__thumb img {
	position: static !important;
	width: 100% !important;
	height: 100% !important;
	max-width: 100% !important;
	max-height: 100% !important;
	object-fit: contain !important;
	transform: none !important;
	margin: 0 !important;
}

.nzn-order-item__meta {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.nzn-order-item__name {
	font-family: var(--f-display);
	font-size: 1.05rem;
	color: var(--c-deep);
	line-height: 1.3;
}

.nzn-order-item__name a {
	color: inherit;
	text-decoration: none;
}

.nzn-order-item__name a:hover {
	color: var(--c-gold);
}

.nzn-order-item__meta .wc-item-meta {
	list-style: none;
	margin: 0;
	padding: 0;
	font-size: var(--t-small);
	color: var(--c-text-light);
}

.nzn-order-item__meta .wc-item-meta li {
	margin: 0;
}

.nzn-order-item__meta .wc-item-meta-label {
	font-weight: 500;
	color: var(--c-text);
}

.nzn-order-item__meta .wc-item-meta p {
	display: inline;
	margin: 0;
}

.nzn-order-item__qty {
	font-size: var(--t-small);
	color: var(--c-text-light);
}

.nzn-order-item__total {
	flex: 0 0 auto;
	font-size: 1rem;
	font-weight: 600;
	color: var(--c-deep);
	white-space: nowrap;
}

.nzn-order-item__purchase-note {
	font-size: var(--t-small);
	color: var(--c-text);
	margin-top: -8px;
}

.nzn-order-totals {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.nzn-order-totals__line {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	font-size: var(--t-body);
	color: var(--c-text);
}

.nzn-order-totals__line--total {
	font-family: var(--f-display);
	font-size: 1.35rem;
	color: var(--c-deep);
	padding-top: 10px;
	border-top: 1px solid var(--c-border);
	margin-top: 4px;
}

.nzn-order-totals__line--total .woocommerce-Price-amount {
	color: var(--c-gold);
	font-weight: 600;
}

.nzn-order-totals__note {
	margin-top: 8px;
	padding-top: 12px;
	border-top: 1px solid var(--c-border);
	font-size: var(--t-small);
	color: var(--c-text);
}

.nzn-order-totals__note-label {
	font-weight: 600;
	color: var(--c-deep);
	display: block;
	margin-bottom: 4px;
}

.nzn-order-totals__note p {
	margin: 0;
}

/* Customer address cards (only shown to logged-in customers viewing their own order) */
.nzn-order-customer {
	max-width: 900px;
	margin: 24px auto 0;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--sp-lg);
	text-align: left;
}

@media (max-width: 700px) {
	.nzn-order-customer {
		grid-template-columns: 1fr;
	}
}

.nzn-order-customer__col {
	background: var(--c-white);
	border: 1px solid var(--c-border);
	border-radius: 14px;
	padding: 24px 26px;
}

.nzn-order-customer__title {
	font-family: var(--f-display);
	font-size: 1.2rem;
	font-style: italic;
	font-weight: 500;
	color: var(--c-deep);
	margin: 0 0 14px;
}

.nzn-order-customer address {
	font-style: normal;
	font-size: var(--t-body);
	color: var(--c-text);
	line-height: 1.6;
}

@media (max-width: 480px) {
	.nzn-order-item__total {
		flex: 1 1 100%;
		text-align: right;
	}
	.nzn-order-item {
		flex-wrap: wrap;
	}
}

/* ====================================================================
   LEGAL PAGES (Uslovi korišćenja, Politika privatnosti, Kolačići)
   Plain WordPress Page content — without this it renders in Astra's
   raw default typography (Merriweather headings, no real hierarchy),
   completely inconsistent with the rest of the site.
   ==================================================================== */
.nzn-legal-content {
	max-width: 760px !important;
	margin: 0 auto !important;
	padding: var(--sp-lg) 0 var(--sp-xl);
}
.nzn-legal-content > p {
	font-family: var(--f-body);
	font-size: var(--t-body);
	line-height: 1.75;
	color: var(--c-text);
	margin: 0 0 20px;
}
.nzn-legal-content h2 {
	font-family: var(--f-display) !important;
	font-size: 1.5rem !important;
	font-weight: 600 !important;
	color: var(--c-deep) !important;
	line-height: 1.3;
	margin: 44px 0 16px !important;
	padding-bottom: 10px;
	border-bottom: 1px solid var(--c-border);
}
.nzn-legal-content > p:first-of-type + h2,
.nzn-legal-content > h2:first-child {
	margin-top: 0 !important;
}
.nzn-legal-content ul {
	margin: 0 0 20px;
	padding-left: 0;
	list-style: none;
}
.nzn-legal-content ul li {
	font-family: var(--f-body);
	font-size: var(--t-body);
	line-height: 1.7;
	color: var(--c-text);
	padding: 4px 0 4px 20px;
	position: relative;
}
.nzn-legal-content ul li::before {
	content: '—';
	position: absolute;
	left: 0;
	color: var(--c-gold);
}
.nzn-legal-content strong {
	color: var(--c-deep);
	font-weight: 600;
}
.nzn-legal-content a {
	color: var(--c-gold);
	text-decoration: underline;
}
