/*
Theme Name: NaviSupp
Theme URI: https://navisupp.com/
Author: NaviSupp
Author URI: https://navisupp.com/
Description: Accessible WooCommerce storefront theme for NaviSupp ceramic travel cups, with locally hosted catalog imagery and self-hosted Geist typography.
Version: 1.4.11
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: navisupp
Tags: e-commerce, custom-menu, featured-images, translation-ready, accessibility-ready
*/

/* Temporary visibility switch requested by the store owner. Keep the complete
   footer markup in place so it can be restored without rebuilding its content. */
.site-footer,
.checkout-footer {
	display: none !important;
}

/* ==========================================================================
   1. Typography, self-hosted with no third-party requests
   ========================================================================== */

@font-face {
	font-family: 'Geist';
	src: url('assets/fonts/Geist-Variable.woff2') format('woff2-variations'),
	     url('assets/fonts/Geist-Variable.woff2') format('woff2');
	font-weight: 100 900;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Geist Mono';
	src: url('assets/fonts/GeistMono-Variable.woff2') format('woff2-variations'),
	     url('assets/fonts/GeistMono-Variable.woff2') format('woff2');
	font-weight: 100 900;
	font-style: normal;
	font-display: swap;
}

/* ==========================================================================
   2. Design tokens
   ========================================================================== */

:root {
	--ink: #10231d;
	--ink-2: #17342b;
	--bone: #f2f5ef;
	--paper: #fbfcfa;

	/* Evergreen identity inspired by glazed sage stoneware. */
	--brand: #0b6b57;
	--brand-hi: #085846;
	--brand-deep: #06483b;

	--text: #17231f;
	--muted: #5b6962;
	--on-dark: #ffffff;
	--on-dark-muted: rgba(255, 255, 255, 0.68);

	--line: rgba(16, 35, 29, 0.11);
	--line-strong: rgba(16, 35, 29, 0.2);
	--line-dark: rgba(255, 255, 255, 0.14);

	--lift-1: 0 1px 2px rgba(16, 35, 29, 0.04), 0 8px 24px -14px rgba(16, 35, 29, 0.12);
	--lift-2: 0 2px 4px rgba(16, 35, 29, 0.05), 0 22px 52px -26px rgba(16, 35, 29, 0.2);

	--r-lg: 16px;
	--r-md: 12px;
	--r-sm: 8px;

	--shell: 1280px;
	--gutter: clamp(18px, 4vw, 48px);
	--section-y: clamp(56px, 7vw, 96px);

	--ease: cubic-bezier(0.32, 0.72, 0, 1);
	--ease-out: cubic-bezier(0.16, 1, 0.3, 1);
	--dur: 520ms;
	--dur-fast: 320ms;

	--font: 'Geist', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--font-mono: 'Geist Mono', ui-monospace, 'SFMono-Regular', monospace;

	--header-h: 68px;
}

/* ==========================================================================
   3. Reset & base
   ========================================================================== */

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

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--header-h) + 20px);
}

body {
	margin: 0;
	background: var(--paper);
	color: var(--text);
	font-family: var(--font);
	font-size: 1rem;
	line-height: 1.65;
	font-weight: 400;
	font-synthesis-weight: none;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
}

body.menu-open { overflow: hidden; }

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

svg {
	fill: none;
	stroke: currentColor;
	stroke-width: 1.3;
	stroke-linecap: round;
	stroke-linejoin: round;
}

a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 0.22em; }

button, input, select, textarea { font: inherit; color: inherit; }

h1, h2, h3, h4, h5, h6 {
	margin: 0 0 0.5em;
	font-weight: 560;
	line-height: 1.14;
	letter-spacing: -0.028em;
	text-wrap: balance;
}

h1 { font-size: clamp(1.9rem, 3.5vw, 2.65rem); }
h2 { font-size: clamp(1.5rem, 2.5vw, 2rem); }
h3 { font-size: clamp(1.05rem, 1.5vw, 1.25rem); }

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

::selection { background: var(--brand); color: #fff; }

/* Focus ring follows the current text colour, so it stays visible on light and
   dark surfaces without a loud accent outline appearing over content. */
:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
	border-radius: 4px;
}

.primary-navigation:focus-visible {
	outline: 3px solid var(--brand);
	outline-offset: -6px;
}

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

.skip-link:focus {
	position: fixed;
	top: 12px; left: 12px;
	z-index: 500;
	width: auto; height: auto;
	clip: auto; margin: 0;
	padding: 12px 20px;
	background: var(--ink);
	color: #fff;
	border-radius: var(--r-sm);
	font-weight: 600;
}

/* ==========================================================================
   4. Layout primitives
   ========================================================================== */

.site-shell {
	width: 100%;
	max-width: var(--shell);
	margin-inline: auto;
	padding-inline: var(--gutter);
}

.section { padding-block: var(--section-y); }

.section__title {
	margin-bottom: clamp(24px, 3vw, 40px);
	font-size: clamp(1.4rem, 2.2vw, 1.85rem);
}

.section__title--center { text-align: center; }

/* ==========================================================================
   5. Buttons & links
   ========================================================================== */

.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 13px 30px;
	border: 0;
	border-radius: var(--r-sm);
	background: var(--ink);
	color: #fff;
	font-size: 0.9375rem;
	font-weight: 540;
	letter-spacing: -0.005em;
	text-decoration: none;
	cursor: pointer;
	transition: transform var(--dur-fast) var(--ease), background-color var(--dur-fast) var(--ease);
}

.button:hover { background: var(--ink-2); }
.button:active { transform: scale(0.985); }

.button--primary { background: var(--brand); }
.button--primary:hover { background: var(--brand-hi); }

.button:focus-visible,
button[type='submit']:focus-visible,
input[type='submit']:focus-visible,
.navisupp-support-button:focus-visible {
	outline: 3px solid var(--ink);
	outline-offset: 3px;
	box-shadow: 0 0 0 2px var(--paper);
}

.button--light { background: #fff; color: var(--ink); }
.button--light:hover { background: var(--bone); }

.button--secondary {
	background: transparent;
	color: var(--text);
	border: 1px solid var(--line-strong);
}
.button--secondary:hover { background: rgba(10, 11, 13, 0.04); }

.text-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 0.9375rem;
	font-weight: 520;
	color: var(--text);
	text-decoration: none;
	border-bottom: 1px solid var(--brand);
	padding-bottom: 2px;
	transition: color var(--dur-fast) var(--ease);
}

.text-link:hover { color: var(--brand-deep); }
.text-link--light { color: #fff; border-bottom-color: rgba(255, 255, 255, 0.5); }

/* ==========================================================================
   6. Promo bar
   ========================================================================== */

.promo-bar {
	background: var(--ink);
	color: rgba(255, 255, 255, 0.9);
	text-align: center;
}

.promo-bar p {
	margin: 0;
	padding-block: 9px;
	font-family: var(--font-mono);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	line-height: 1.5;
}

/* ==========================================================================
   7. Header
   ========================================================================== */

.site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: var(--paper);
	border-bottom: 1px solid var(--line);
}

.site-header__inner {
	display: flex;
	align-items: center;
	gap: clamp(14px, 2.5vw, 36px);
	min-height: var(--header-h);
}

.site-branding__link {
	display: inline-flex;
	align-items: center;
	text-decoration: none;
	color: var(--text);
}

.site-branding__wordmark {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 44px;
	color: var(--ink);
	font-size: clamp(1.15rem, 2vw, 1.45rem);
	font-weight: 720;
	letter-spacing: -0.045em;
	text-decoration: none;
}

.site-branding__wordmark > span {
	width: 11px;
	height: 11px;
	border-radius: 50%;
	background: var(--brand);
	box-shadow: 0 0 0 5px rgba(11, 107, 87, 0.12);
}

.site-branding__wordmark--footer { color: var(--on-dark); margin-bottom: 22px; }
.site-branding__wordmark--footer > span { background: #75c8ae; box-shadow: 0 0 0 5px rgba(117, 200, 174, 0.14); }

.site-header .site-branding__logo {
	width: auto;
	height: 46px;
	max-width: 200px;
	object-fit: contain;
}

@media (max-width: 47.99rem) {
	.site-header .site-branding__logo { height: 38px; max-width: 150px; }
}

.custom-logo-link img { max-height: 40px; width: auto; }

.primary-navigation { margin-inline: auto; }

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

.primary-menu > .menu-item > a {
	display: block;
	padding: 8px 13px;
	border-radius: var(--r-sm);
	font-size: 0.875rem;
	font-weight: 470;
	color: var(--text);
	text-decoration: none;
	white-space: nowrap;
	transition: background-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}

.primary-menu > .menu-item > a:hover,
.primary-menu > .current-menu-item > a { background: var(--bone); }
.primary-menu > .current-menu-item > a { color: var(--brand-deep); }

.primary-menu .sub-menu {
	position: absolute;
	top: calc(100% - 4px);
	min-width: 232px;
	margin: 0; padding: 6px;
	list-style: none;
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: var(--r-md);
	box-shadow: var(--lift-2);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-6px);
	transition: opacity var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease), visibility var(--dur-fast);
}

.primary-menu .menu-item-has-children { position: relative; }

.primary-menu .menu-item-has-children:hover > .sub-menu,
.primary-menu .menu-item-has-children:focus-within > .sub-menu {
	opacity: 1; visibility: visible; transform: translateY(0);
}

.primary-menu .sub-menu a {
	display: block;
	padding: 8px 12px;
	border-radius: var(--r-sm);
	font-size: 0.875rem;
	text-decoration: none;
	transition: background-color var(--dur-fast) var(--ease);
}

.primary-menu .sub-menu a:hover { background: var(--bone); }

.site-header__actions {
	display: flex;
	align-items: center;
	gap: 2px;
	margin-inline-start: auto;
}

.primary-navigation + .site-header__actions { margin-inline-start: 0; }

.site-header__action {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 9px 10px;
	border-radius: var(--r-sm);
	color: var(--text);
	text-decoration: none;
	min-width: 44px;
	min-height: 44px;
	justify-content: center;
	transition: background-color var(--dur-fast) var(--ease);
}

.site-header__action:hover { background: var(--bone); }
.site-header__action svg { width: 19px; height: 19px; }

.site-header__cart-count.is-empty { display: none; }

.site-header__cart-count {
	position: absolute;
	top: 2px;
	right: 0;
	display: grid;
	place-items: center;
	min-width: 17px; height: 17px;
	padding-inline: 4px;
	border-radius: 999px;
	background: var(--brand);
	color: #fff;
	font-family: var(--font-mono);
	font-size: 0.5625rem;
	font-weight: 600;
	line-height: 1;
}

/* Hamburger */
.menu-toggle {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	margin-inline-start: auto;
	padding: 8px 14px 8px 11px;
	border: 1px solid var(--line-strong);
	border-radius: var(--r-sm);
	background: transparent;
	color: var(--text);
	font-size: 0.8125rem;
	font-weight: 500;
	cursor: pointer;
	min-height: 44px;
}

.menu-toggle:hover { background: var(--bone); }

.menu-toggle__icon { position: relative; width: 16px; height: 11px; flex: none; }

.menu-toggle__icon span {
	position: absolute;
	left: 0;
	width: 100%; height: 1.5px;
	border-radius: 2px;
	background: currentColor;
	transition: transform var(--dur) var(--ease);
}

.menu-toggle__icon span:first-child { top: 1px; }
.menu-toggle__icon span:last-child { bottom: 1px; }

.menu-toggle[aria-expanded='true'] .menu-toggle__icon span:first-child { transform: translateY(3.75px) rotate(45deg); }
.menu-toggle[aria-expanded='true'] .menu-toggle__icon span:last-child { transform: translateY(-3.75px) rotate(-45deg); }

@media (min-width: 64rem) { .menu-toggle { display: none; } }

.primary-navigation__account { display: none; }

/* Mobile overlay navigation */
@media (max-width: 63.99rem) {
	.site-branding,
	.menu-toggle,
	.site-header__actions { position: relative; z-index: 95; }

	/* Logo on the left; search, cart and Menu grouped together on the right. */
	.site-branding { margin-inline-end: auto; }
	.site-header__actions { order: 2; margin-inline-start: 0; gap: 0; }
	.menu-toggle { order: 3; margin-inline-start: 6px; }

	/* Account moves into the overlay so the bar stays to three controls. */
	.site-header__action--account { display: none; }

	.primary-navigation__account {
		display: inline-flex;
		align-items: center;
		gap: 10px;
		margin-top: 20px;
		padding: 14px 2px;
		font-size: 1rem;
		font-weight: 520;
		color: var(--muted);
		text-decoration: none;
	}

	.primary-navigation__account svg { width: 19px; height: 19px; }
	.primary-navigation__account:hover { color: var(--brand-deep); }

	.primary-navigation {
		position: fixed;
		inset: 0;
		z-index: 90;
		display: flex;
		flex-direction: column;
		justify-content: flex-start;
		padding: calc(var(--header-h) + 32px) var(--gutter) 48px;
		background: var(--paper);
		opacity: 0;
		visibility: hidden;
		transition: opacity var(--dur) var(--ease), visibility var(--dur);
		overflow-y: auto;
		margin-inline: 0;
	}

	.primary-navigation.is-open { opacity: 1; visibility: visible; }

	.primary-menu { flex-direction: column; align-items: stretch; gap: 0; }

	.primary-menu > .menu-item > a {
		padding: 16px 2px;
		border-radius: 0;
		border-bottom: 1px solid var(--line);
		font-size: 1.25rem;
		font-weight: 520;
		letter-spacing: -0.02em;
	}

	.primary-menu > .menu-item > a:hover { background: transparent; color: var(--brand-deep); }

	.primary-menu > .menu-item { opacity: 0; transform: translate3d(0, 18px, 0); }

	.primary-navigation.is-open .primary-menu > .menu-item {
		opacity: 1;
		transform: translate3d(0, 0, 0);
		transition: opacity 420ms var(--ease-out), transform 520ms var(--ease-out);
	}

	.primary-navigation.is-open .primary-menu > .menu-item:nth-child(1) { transition-delay: 50ms; }
	.primary-navigation.is-open .primary-menu > .menu-item:nth-child(2) { transition-delay: 90ms; }
	.primary-navigation.is-open .primary-menu > .menu-item:nth-child(3) { transition-delay: 130ms; }
	.primary-navigation.is-open .primary-menu > .menu-item:nth-child(4) { transition-delay: 170ms; }
	.primary-navigation.is-open .primary-menu > .menu-item:nth-child(5) { transition-delay: 210ms; }
	.primary-navigation.is-open .primary-menu > .menu-item:nth-child(6) { transition-delay: 250ms; }
	.primary-navigation.is-open .primary-menu > .menu-item:nth-child(7) { transition-delay: 290ms; }

	.primary-menu .sub-menu {
		position: static;
		opacity: 1;
		visibility: visible;
		transform: none;
		border: 0;
		box-shadow: none;
		padding: 4px 0 10px 2px;
	}
}

/* ==========================================================================
   8. Hero
   ========================================================================== */

/* Full-bleed split hero: copy panel on the left, photo filling the right edge
   to edge. No contained card or gaps. The value strip sits flush beneath. */
.hero {
	display: grid;
	background: #edeeef;
}

.hero__inner {
	display: flex;
	align-items: center;
	padding: clamp(32px, 6vw, 56px) var(--gutter);
}

.hero__copy { width: 100%; }

.hero__media { min-width: 0; }

.hero__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 30%;
}

.hero__eyebrow {
	margin: 0 0 10px;
	font-family: var(--font-mono);
	font-size: 0.625rem;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--muted);
}

.hero h1 {
	max-width: 16ch;
	margin-bottom: 18px;
	color: var(--text);
	font-weight: 560;
}

.hero__summary {
	max-width: 44ch;
	margin-bottom: 24px;
	color: var(--muted);
	font-size: 1rem;
}

@media (max-width: 61.99rem) {
	.hero__media { order: -1; }
	.hero__image { aspect-ratio: 16 / 11; height: auto; }
}

@media (min-width: 62rem) {
	.hero {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		/* Fix the row height so the square photo crops to the band instead of
		   stretching the whole hero to its own 1:1 proportions. */
		grid-template-rows: clamp(400px, 33vw, 520px);
		align-items: stretch;
	}

	.hero__media { overflow: hidden; }

	/* Align the copy with the site shell instead of the raw viewport edge. */
	.hero__inner {
		justify-content: flex-end;
		padding-inline: var(--gutter) clamp(32px, 4vw, 64px);
	}

	.hero__copy { max-width: calc(var(--shell) / 2 - var(--gutter)); width: 100%; }
}

/* ==========================================================================
   9. Value strip
   ========================================================================== */

.value-strip {
	background: var(--brand);
	color: #fff;
	text-align: center;
}

.value-strip p {
	margin: 0;
	padding-block: 13px;
	font-size: 0.8125rem;
	font-weight: 520;
	letter-spacing: 0.02em;
}

/* ==========================================================================
   10. Category cards
   ========================================================================== */

.section--categories { background: var(--paper); }

.category-cards {
	display: grid;
	gap: clamp(12px, 1.6vw, 20px);
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (min-width: 56rem) {
	.category-cards { grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); }
}

.category-card {
	display: block;
	text-decoration: none;
	color: var(--text);
}

.category-card__media {
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border: 1px solid var(--line);
	border-radius: var(--r-lg);
	background: var(--bone);
}

.category-card__media img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	padding: clamp(12px, 2vw, 24px);
	transition: transform var(--dur) var(--ease);
}

.category-card:hover .category-card__media img { transform: scale(1.04); }

.category-card__label {
	display: block;
	margin-top: 12px;
	font-size: 0.9375rem;
	font-weight: 540;
	letter-spacing: -0.015em;
}

.category-card:hover .category-card__label { color: var(--brand-deep); }

/* ==========================================================================
   11. Statement band
   ========================================================================== */

.section--statement { background: var(--bone); }

.statement-grid {
	display: grid;
	gap: clamp(24px, 4vw, 56px);
	align-items: center;
}

@media (min-width: 60rem) {
	.statement-grid { grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); }
}

.statement-grid__text h2 { margin-bottom: 14px; }

.statement-grid__text p {
	max-width: 52ch;
	color: var(--muted);
	font-size: 1.0625rem;
	margin-bottom: 20px;
}

.statement-grid__media img {
	width: 100%;
	border-radius: var(--r-lg);
	object-fit: cover;
}

/* ==========================================================================
   13. Quality section
   ========================================================================== */

.section--quality { background: var(--paper); }

.quality-grid {
	display: grid;
	gap: clamp(28px, 4vw, 60px);
	align-items: center;
}

@media (min-width: 60rem) {
	.quality-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}

.quality-grid__text p {
	color: var(--muted);
	max-width: 54ch;
}

.quality-grid__text .button { margin-top: 12px; }

.quality-grid__media img {
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	border-radius: var(--r-lg);
	background: #edeeef;
}

/* ==========================================================================
   14. FAQ accordion
   ========================================================================== */

.section--faq { background: var(--bone); }

.accordion {
	display: grid;
	gap: 8px;
	max-width: 820px;
	margin-inline: auto;
}

.accordion details {
	border: 1px solid var(--line);
	border-radius: var(--r-md);
	background: var(--paper);
}

.accordion summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	padding: 16px 20px;
	font-size: 0.9375rem;
	font-weight: 520;
	cursor: pointer;
	list-style: none;
}

.accordion summary::-webkit-details-marker { display: none; }

.accordion summary span { position: relative; width: 13px; height: 13px; flex: none; }

.accordion summary span::before,
.accordion summary span::after {
	content: '';
	position: absolute;
	top: 50%; left: 0;
	width: 100%; height: 1.5px;
	border-radius: 2px;
	background: var(--brand);
	transform: translateY(-50%);
	transition: transform var(--dur) var(--ease), opacity var(--dur-fast) var(--ease);
}

.accordion summary span::after { transform: translateY(-50%) rotate(90deg); }
.accordion details[open] summary span::after { transform: translateY(-50%) rotate(0deg); opacity: 0; }

.accordion details > p {
	margin: 0;
	padding: 0 20px 18px;
	font-size: 0.9375rem;
	color: var(--muted);
	max-width: 66ch;
}

/* ==========================================================================
   15. Page hero & content pages
   ========================================================================== */

.page-hero {
	background: var(--bone);
	border-bottom: 1px solid var(--line);
	padding-block: clamp(30px, 4vw, 52px);
}

.page-hero__inner { max-width: 74ch; }
.page-hero h1 { margin-bottom: 0; }
.page-hero p { color: var(--muted); max-width: 58ch; margin-top: 14px; }
.page-hero__description { color: var(--muted); margin-top: 14px; max-width: 58ch; }

.breadcrumbs {
	margin-bottom: 16px;
	font-family: var(--font-mono);
	font-size: 0.625rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--muted);
}

.breadcrumbs a { color: var(--text); text-decoration: none; }
.breadcrumbs a:hover { color: var(--brand-deep); }
.breadcrumbs span { margin-inline: 7px; opacity: 0.5; }

.page-hero .entry-meta {
	margin-bottom: 12px;
	font-family: var(--font-mono);
	font-size: 0.6875rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--muted);
}

.page-entry__body,
.single-entry__body,
.archive-layout { padding-block: clamp(36px, 5vw, 72px); }

.page-entry__featured,
.single-entry__featured { margin: 0 0 clamp(24px, 3.5vw, 44px); }

.page-entry__featured img,
.single-entry__featured img { border-radius: var(--r-lg); width: 100%; }

.prose {
	max-width: 74ch;
	font-size: 1.0625rem;
	line-height: 1.72;
	color: #24272d;
}

/* Cart and Checkout are store interfaces, not long-form articles. Give their
   WooCommerce blocks the full usable shell width on desktop. */
@media (min-width: 48.01rem) {
	body.woocommerce-cart .page-entry__body > .prose,
	body.woocommerce-checkout .page-entry__body > .prose {
		width: 100%;
		max-width: none;
		min-width: 0;
	}
}

.prose > *:first-child { margin-top: 0; }
.prose h2 { margin-top: 2em; margin-bottom: 0.5em; font-size: clamp(1.25rem, 2vw, 1.5rem); }
.prose h3 { margin-top: 1.6em; font-size: 1.125rem; }
.prose a { color: var(--brand-deep); }
.prose ul, .prose ol { padding-left: 1.25em; }
.prose li { margin-bottom: 0.45em; }
.prose strong { font-weight: 600; }

.prose table { width: 100%; border-collapse: collapse; margin: 1.5em 0; font-size: 0.9375rem; }
.prose th, .prose td { padding: 11px 13px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.prose th { font-weight: 560; background: var(--bone); }

.prose blockquote {
	margin: 1.5em 0;
	padding: 4px 0 4px 22px;
	border-left: 2px solid var(--brand);
	color: var(--muted);
}

.post-grid {
	display: grid;
	gap: clamp(14px, 2vw, 24px);
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 290px), 1fr));
}

.post-card {
	display: flex;
	flex-direction: column;
	margin: 0;
	border: 1px solid var(--line);
	border-radius: var(--r-lg);
	background: var(--paper);
	overflow: hidden;
	transition: box-shadow var(--dur) var(--ease);
}

.post-card:hover { box-shadow: var(--lift-2); }

.post-card__media { display: block; background: var(--bone); }
.post-card__media img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.post-card__placeholder { display: block; aspect-ratio: 16 / 10; background: var(--bone); }
.post-card__content { flex: 1; padding: clamp(18px, 2.2vw, 26px); }

.post-card__content .entry-meta {
	margin: 0 0 8px;
	font-family: var(--font-mono);
	font-size: 0.625rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--muted);
}

.post-card h2 { font-size: 1.125rem; margin-bottom: 8px; }
.post-card h2 a { text-decoration: none; }
.post-card h2 a:hover { color: var(--brand-deep); }
.post-card p { font-size: 0.9375rem; color: var(--muted); }

.post-navigation {
	display: grid;
	gap: 14px;
	padding-block: clamp(24px, 3.5vw, 48px);
	border-top: 1px solid var(--line);
}

@media (min-width: 44rem) { .post-navigation { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.post-navigation div { display: grid; gap: 5px; }
.post-navigation span {
	font-family: var(--font-mono);
	font-size: 0.625rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--muted);
}
.post-navigation a { font-weight: 520; text-decoration: none; }
.post-navigation a:hover { color: var(--brand-deep); }

.navigation.pagination { padding-top: 12px; }
.navigation.pagination .nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; }

.navigation.pagination .page-numbers {
	display: grid;
	place-items: center;
	min-width: 40px; height: 40px;
	padding: 0 12px;
	border: 1px solid var(--line);
	border-radius: var(--r-sm);
	font-size: 0.875rem;
	text-decoration: none;
}

.navigation.pagination .page-numbers.current { background: var(--ink); color: #fff; border-color: var(--ink); }

.empty-state {
	padding: clamp(36px, 6vw, 72px);
	border: 1px dashed var(--line-strong);
	border-radius: var(--r-lg);
	text-align: center;
	background: var(--bone);
}

.empty-state p { color: var(--muted); margin: 0; }
.empty-state h2 { font-size: 1.4rem; }
.empty-state .search-form { max-width: 420px; margin: 20px auto; }

/* 404 */
.not-found { padding-block: clamp(56px, 8vw, 120px); }

.not-found__grid { display: grid; gap: clamp(28px, 4vw, 56px); align-items: start; }

@media (min-width: 56rem) {
	.not-found__grid { grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); }
}

.not-found__grid > div > p { color: var(--muted); max-width: 46ch; }
.not-found__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin-top: 24px; }

.not-found__search {
	padding: clamp(20px, 2.6vw, 30px);
	border: 1px solid var(--line);
	border-radius: var(--r-lg);
	background: var(--bone);
}

.not-found__search h2 { font-size: 1.0625rem; margin-bottom: 14px; }

.search-form { display: flex; gap: 8px; align-items: center; }
.search-form label { flex: 1; margin: 0; }
.search-form input[type='submit'] { flex: none; padding-inline: 22px; }

.commerce-main { background: var(--paper); }
.commerce-shell { padding-block: clamp(32px, 4.5vw, 68px); }

/* ==========================================================================
   16. Forms
   ========================================================================== */

input[type='text'],
input[type='email'],
input[type='url'],
input[type='password'],
input[type='search'],
input[type='number'],
input[type='tel'],
input[type='date'],
textarea,
select {
	width: 100%;
	padding: 12px 15px;
	border: 1px solid var(--line-strong);
	border-radius: var(--r-sm);
	background: var(--paper);
	font-size: 0.9375rem;
	line-height: 1.4;
	height: auto;
	transition: border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);
}

input:focus, textarea:focus, select:focus {
	border-color: var(--brand);
	box-shadow: 0 0 0 3px rgba(11, 107, 87, 0.22);
	outline: none;
}

label { display: block; font-size: 0.875rem; font-weight: 510; margin-bottom: 6px; }

input[type='submit'],
button[type='submit'],
.wp-block-search__button {
	padding: 12px 26px;
	border: 0;
	border-radius: var(--r-sm);
	background: var(--ink);
	color: #fff;
	font-size: 0.9375rem;
	font-weight: 540;
	cursor: pointer;
	transition: background-color var(--dur-fast) var(--ease);
}

input[type='submit']:hover, button[type='submit']:hover { background: var(--brand); }

/* ==========================================================================
   17. WooCommerce

   WooCommerce ships its loop styles through the standard product selector.
   `:is(.woocommerce, body)` matches that specificity so these rules win on shop
   pages, and still matches the homepage loop, which has no .woocommerce wrapper.
   ========================================================================== */

.woocommerce-breadcrumb {
	margin-bottom: 22px;
	font-family: var(--font-mono);
	font-size: 0.625rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--muted);
}

.woocommerce-breadcrumb a { color: var(--text); text-decoration: none; }

.woocommerce-products-header__title,
.woocommerce-products-header h1 { margin-bottom: 8px; }

.woocommerce-result-count {
	font-family: var(--font-mono);
	font-size: 0.6875rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--muted);
	margin: 0;
}

.woocommerce-ordering select { width: auto; min-width: 210px; padding-block: 10px; }

.woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-message {
	position: relative;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 14px;
	margin: 0 0 24px;
	padding: 15px 20px 15px 52px;
	border: 1px solid var(--line);
	border-left: 3px solid var(--brand);
	border-radius: var(--r-sm);
	background: var(--bone);
	font-size: 0.9375rem;
	list-style: none;
}

.woocommerce-message::before,
.woocommerce-info::before {
	top: 50%;
	left: 20px;
	margin: 0;
	line-height: 1;
	transform: translateY(-50%);
}

.woocommerce-error { border-left-color: #c0392b; }
.woocommerce-message .button, .woocommerce-info .button { margin-inline-start: auto; }

/* Product loop */
:is(.woocommerce, body) ul.products {
	display: grid;
	gap: clamp(12px, 1.6vw, 22px);
	margin: 0; padding: 0;
	list-style: none;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (min-width: 48rem) { :is(.woocommerce, body) ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 64rem) { :is(.woocommerce, body) ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

:is(.woocommerce, body) ul.products::before,
:is(.woocommerce, body) ul.products::after { content: none !important; }

:is(.woocommerce, body) ul.products li.product {
	position: relative;
	display: flex;
	flex-direction: column;
	margin: 0;
	padding: 0;
	border: 1px solid var(--line);
	border-radius: var(--r-lg);
	background: var(--paper);
	overflow: hidden;
	transition: box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease);
	width: auto !important;
	float: none !important;
	clear: none !important;
}

:is(.woocommerce, body) ul.products li.product:hover {
	box-shadow: var(--lift-2);
	border-color: var(--line-strong);
}

:is(.woocommerce, body) ul.products li.product > a.woocommerce-LoopProduct-link {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: 0;
	text-decoration: none;
	color: inherit;
}

:is(.woocommerce, body) ul.products li.product img {
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: contain;
	background: #fff;
	padding: clamp(12px, 2vw, 22px);
	margin: 0;
	transition: transform var(--dur) var(--ease);
}

:is(.woocommerce, body) ul.products li.product:hover img { transform: scale(1.035); }

:is(.woocommerce, body) ul.products li.product .navisupp-loop-brand {
	display: block;
	padding: clamp(10px, 1.5vw, 14px) clamp(13px, 1.6vw, 18px) 0;
	font-family: var(--font-mono);
	font-size: 0.5625rem;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--muted);
}

:is(.woocommerce, body) ul.products li.product .woocommerce-loop-product__title {
	padding: 4px clamp(13px, 1.6vw, 18px) 0;
	font-size: 0.9375rem;
	font-weight: 520;
	line-height: 1.35;
	letter-spacing: -0.015em;
	color: var(--text);
	margin: 0 0 8px;
	/* The title is a flex item, and flexbox blockifies `-webkit-box`, which
	   silently disables -webkit-line-clamp. A fixed three-line box clips
	   reliably and keeps every price on the same baseline across a row. */
	display: block;
	height: calc(3 * 1.35em);
	overflow: hidden;
}

:is(.woocommerce, body) ul.products li.product .price {
	display: block;
	margin: auto 0 0;
	padding: 0 clamp(13px, 1.6vw, 18px) clamp(12px, 1.6vw, 16px);
	font-size: 1.0625rem;
	font-weight: 600;
	letter-spacing: -0.02em;
	color: var(--text);
}

:is(.woocommerce, body) ul.products li.product .price del { opacity: 0.45; font-weight: 400; margin-right: 6px; font-size: 0.85em; }
:is(.woocommerce, body) ul.products li.product .price ins { text-decoration: none; color: var(--brand); }

:is(.woocommerce, body) ul.products li.product .button,
:is(.woocommerce, body) ul.products li.product .added_to_cart {
	margin: 0 clamp(13px, 1.6vw, 18px) clamp(13px, 1.6vw, 18px);
	justify-content: center;
	padding: 11px 18px;
	font-size: 0.8125rem;
}

:is(.woocommerce, body) ul.products li.product .onsale,
.navisupp-badge {
	position: absolute;
	top: 12px; left: 12px;
	z-index: 2;
	margin: 0;
	padding: 5px 10px;
	border-radius: var(--r-sm);
	background: var(--brand);
	color: #fff;
	font-family: var(--font-mono);
	font-size: 0.5625rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	line-height: 1;
	min-height: 0; min-width: 0;
}

/* Single product */
.woocommerce.single-product div.product {
	display: grid;
	gap: clamp(28px, 4vw, 60px);
	align-items: start;
}

@media (min-width: 64rem) {
	.woocommerce.single-product div.product { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
	.woocommerce.single-product div.product .woocommerce-product-gallery { position: sticky; top: calc(var(--header-h) + 24px); }
}

.woocommerce.single-product .woocommerce-product-gallery {
	width: 100% !important;
	float: none !important;
	margin: 0 !important;
	border: 1px solid var(--line);
	border-radius: var(--r-lg);
	background: #fff;
	overflow: hidden;
}

.woocommerce.single-product .woocommerce-product-gallery img { background: #fff; }

.woocommerce.single-product .flex-control-thumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 8px;
	padding: 0;
	list-style: none;
}

.woocommerce.single-product .flex-control-thumbs li { margin: 0; width: 76px !important; }

.woocommerce.single-product .flex-control-thumbs img {
	border: 1px solid var(--line);
	border-radius: var(--r-sm);
	background: #fff;
	opacity: 0.6;
	cursor: pointer;
	transition: opacity var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);
}

.woocommerce.single-product .flex-control-thumbs img:hover,
.woocommerce.single-product .flex-control-thumbs img.flex-active { opacity: 1; border-color: var(--brand); }

.woocommerce.single-product div.product .summary {
	width: 100% !important;
	float: none !important;
	margin: 0 !important;
}

.woocommerce.single-product .product_title { font-size: clamp(1.5rem, 2.6vw, 2.1rem); margin-bottom: 14px; }

.navisupp-product-brand {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 12px;
	font-family: var(--font-mono);
	font-size: 0.625rem;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--muted);
}

.woocommerce.single-product div.product p.price,
.woocommerce.single-product div.product span.price {
	display: block;
	margin: 0 0 6px;
	font-size: clamp(1.4rem, 2.3vw, 1.85rem);
	font-weight: 620;
	letter-spacing: -0.03em;
	color: var(--text);
}

.woocommerce.single-product div.product p.price del { opacity: 0.4; font-weight: 400; font-size: 0.6em; }
.woocommerce.single-product div.product p.price ins { text-decoration: none; color: var(--brand); }

.woocommerce-product-details__short-description {
	margin: 18px 0 22px;
	padding-top: 20px;
	border-top: 1px solid var(--line);
	font-size: 0.9375rem;
	color: var(--muted);
}

.woocommerce.single-product .stock {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 18px;
	font-family: var(--font-mono);
	font-size: 0.6875rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	font-weight: 500;
}

.woocommerce.single-product .stock::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.woocommerce.single-product .stock.in-stock { color: #1a7f47; }
.woocommerce.single-product .stock.out-of-stock { color: #b3341f; }

.woocommerce.single-product .navisupp-stock-status { margin: -4px 0 14px; }

.woocommerce.single-product form.cart {
	display: flex;
	flex-wrap: nowrap;
	align-items: stretch;
	width: 100%;
	gap: 12px;
	margin: 0 0 12px !important;
}

/* Clear WooCommerce pseudo-elements so the native cart form keeps its width. */
.woocommerce.single-product form.cart::before,
.woocommerce.single-product form.cart::after { content: none !important; display: none !important; }

.woocommerce.single-product form.cart .quantity { flex: none; margin: 0; }

.woocommerce.single-product form.cart .quantity input[type='number'] {
	width: 88px;
	height: 54px;
	padding: 0 10px;
	text-align: center;
	font-family: var(--font-mono);
}

.woocommerce.single-product form.cart .single_add_to_cart_button {
	flex: 1 1 auto;
	min-width: 0;
	height: 54px;
	justify-content: center;
	padding: 0 30px;
	border: 0;
	border-radius: var(--r-sm);
	background: var(--brand);
	color: #fff;
	font-size: 1rem;
	font-weight: 560;
	cursor: pointer;
	transition: background-color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);
}

.woocommerce.single-product form.cart .single_add_to_cart_button:hover { background: var(--brand-hi); }
.woocommerce.single-product form.cart .single_add_to_cart_button:active { transform: scale(0.985); }

.navisupp-assurance {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1px;
	margin: 0 0 22px;
	padding: 0;
	list-style: none;
	background: var(--line);
	border: 1px solid var(--line);
	border-radius: var(--r-lg);
	overflow: hidden;
}

@media (min-width: 40rem) { .navisupp-assurance { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

.navisupp-assurance li {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 16px 14px;
	background: var(--paper);
	font-size: 0.75rem;
	line-height: 1.4;
	color: var(--muted);
}

.navisupp-assurance svg { width: 18px; height: 18px; color: var(--brand); }
.navisupp-assurance strong { display: block; font-size: 0.8125rem; font-weight: 540; color: var(--text); }

.product__shipping-note {
	margin: 0 0 16px;
	font-size: 0.8125rem;
	color: var(--muted);
}

.product__shipping-note a { color: var(--brand-deep); }

/* The description spans the full width below the buy column: long spec lists
   read badly in a narrow sticky column. */
.product__description {
	grid-column: 1 / -1;
	margin: clamp(40px, 5vw, 72px) 0 0;
	padding-top: clamp(26px, 3.4vw, 44px);
	border-top: 1px solid var(--line);
	font-size: 0.9375rem;
	line-height: 1.7;
	color: #24272d;
}

.product__description > p { max-width: 78ch; }
.product__description > *:first-child { margin-top: 0; }
.product__description img { display: none; }

/* Each section gets a real heading with a brand rule, not a caption. */
.product__description h2,
.product__description h3 {
	margin: 2.1em 0 1em;
	padding: 0 0 0 14px;
	border: 0;
	border-left: 3px solid var(--brand);
	font-family: var(--font);
	font-size: 1.0625rem;
	font-weight: 580;
	letter-spacing: -0.02em;
	text-transform: none;
	color: var(--text);
}

.product__description > h2:first-child,
.product__description > h3:first-child { margin-top: 0; }

/* Two columns so a 15-item feature list is eight rows, not fifteen. */
.product__description ul,
.product__description ol {
	max-width: 1000px;
	padding-left: 1.15em;
	margin: 0;
}

.product__description li {
	margin-bottom: 0.55em;
	break-inside: avoid;
	padding-left: 2px;
}

.product__description li::marker { color: var(--brand); }

@media (min-width: 48rem) {
	.product__description ul,
	.product__description ol { columns: 2; column-gap: clamp(32px, 4vw, 64px); }
}

.product__accordions { margin-top: 24px; max-width: none; }

.product__accordions details {
	border-top: 1px solid var(--line);
}

.product__accordions details:last-child { border-bottom: 1px solid var(--line); }

.product__accordions summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 48px;
	padding: 13px 2px;
	font-size: 0.9375rem;
	font-weight: 560;
	cursor: pointer;
	list-style: none;
}

.product__accordions summary::-webkit-details-marker { display: none; }
.product__accordions summary::after { content: '+'; color: var(--brand-deep); font-size: 1.2rem; line-height: 1; }
.product__accordions details[open] summary::after { content: '-'; }

.product__accordion-body {
	padding: 0 20px 18px;
	font-size: 0.9375rem;
	color: var(--muted);
}

.product__accordion-body p { margin: 0; }
.product__accordion-body ul { margin: 0; padding-left: 1.1em; }
.product__accordion-body li { margin-bottom: 0.45em; }
.product__accordion-body table { width: 100%; border-collapse: collapse; font-size: 0.875rem; }
.product__accordion-body th,
.product__accordion-body td { padding: 9px 0; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.product__accordion-body th { width: 42%; font-weight: 540; color: var(--text); }
.product__accordion-body p:last-child,
.product__accordion-body tr:last-child th,
.product__accordion-body tr:last-child td { border-bottom: 0; }

.product_meta {
	padding-top: 18px;
	border-top: 1px solid var(--line);
	font-size: 0.8125rem;
	color: var(--muted);
}

.product_meta > span { display: block; margin-bottom: 5px; }
.product_meta a { color: var(--text); }

/* Product tabs */
.woocommerce div.product .woocommerce-tabs { margin-top: clamp(40px, 5vw, 72px); grid-column: 1 / -1; }

.woocommerce div.product .woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	margin: 0 0 24px !important;
	padding: 0 !important;
	list-style: none;
	border-bottom: 1px solid var(--line);
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs::after { content: none !important; }

.woocommerce div.product .woocommerce-tabs ul.tabs li {
	margin: 0; padding: 0;
	border: 0;
	background: none;
	border-radius: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { content: none !important; }

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	display: block;
	padding: 12px 18px;
	border-bottom: 2px solid transparent;
	font-size: 0.875rem;
	font-weight: 520;
	color: var(--muted);
	text-decoration: none;
	transition: color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover { color: var(--text); border-bottom-color: var(--brand); }

.woocommerce div.product .woocommerce-tabs .panel { max-width: 78ch; font-size: 0.9375rem; line-height: 1.7; color: #24272d; }
.woocommerce div.product .woocommerce-tabs .panel h2 { font-size: 1.25rem; }
.woocommerce div.product .woocommerce-tabs .panel table { width: 100%; border-collapse: collapse; }
.woocommerce div.product .woocommerce-tabs .panel th,
.woocommerce div.product .woocommerce-tabs .panel td { padding: 11px 13px; border-bottom: 1px solid var(--line); text-align: left; }
.woocommerce div.product .woocommerce-tabs .panel th { font-weight: 550; width: 34%; }

/* Product reviews sit at the bottom of the page because the native tab strip
   is replaced by the custom description and specification layout above. */
.navisupp-product-reviews {
	grid-column: 1 / -1;
	margin-top: clamp(48px, 6vw, 84px);
	padding-top: clamp(30px, 4vw, 48px);
	border-top: 1px solid var(--line);
}

.woocommerce.single-product .navisupp-product-reviews #reviews {
	display: grid;
	gap: clamp(28px, 5vw, 64px);
	align-items: start;
}

@media (min-width: 64rem) {
	.woocommerce.single-product .navisupp-product-reviews #reviews {
		grid-template-columns: minmax(0, 0.9fr) minmax(360px, 1.1fr);
	}
}

.woocommerce.single-product .navisupp-product-reviews #comments,
.woocommerce.single-product .navisupp-product-reviews #review_form_wrapper { min-width: 0; }

.woocommerce.single-product .navisupp-product-reviews .woocommerce-Reviews-title,
.woocommerce.single-product .navisupp-product-reviews .comment-reply-title {
	display: block;
	margin: 0 0 18px;
	font-size: clamp(1.35rem, 2.2vw, 1.75rem);
	font-weight: 620;
	line-height: 1.2;
	letter-spacing: -0.035em;
	color: var(--text);
}

.woocommerce.single-product .navisupp-product-reviews .woocommerce-noreviews {
	max-width: 42ch;
	margin: 0;
	color: var(--muted);
}

.woocommerce.single-product .navisupp-product-reviews #review_form_wrapper,
.woocommerce.single-product .navisupp-product-reviews > #reviews > .woocommerce-verification-required {
	padding: clamp(20px, 3vw, 30px);
	border: 1px solid var(--line);
	border-radius: var(--r-lg);
	background: var(--bone);
}

.woocommerce.single-product .navisupp-product-reviews .comment-notes,
.woocommerce.single-product .navisupp-product-reviews .must-log-in,
.woocommerce.single-product .navisupp-product-reviews .woocommerce-verification-required {
	font-size: 0.875rem;
	line-height: 1.6;
	color: var(--muted);
}

.woocommerce.single-product .navisupp-product-reviews .must-log-in a,
.woocommerce.single-product .navisupp-product-reviews .woocommerce-verification-required a { color: var(--brand-deep); }

.woocommerce.single-product .navisupp-product-reviews #review_form .comment-form { margin-top: 22px; }
.woocommerce.single-product .navisupp-product-reviews #review_form .comment-form > p { margin: 0 0 16px; }

.woocommerce.single-product .navisupp-product-reviews #review_form .comment-form-rating {
	display: grid;
	gap: 8px;
	margin-bottom: 18px;
}

.woocommerce.single-product .navisupp-product-reviews #review_form p.stars {
	margin: 0;
	font-size: 1.25rem;
	line-height: 1;
	color: var(--brand);
}

.woocommerce.single-product .navisupp-product-reviews #review_form p.stars a { color: var(--brand); }

.woocommerce.single-product .navisupp-product-reviews #review_form textarea {
	min-height: 148px;
	resize: vertical;
	background: var(--paper);
}

.woocommerce.single-product .navisupp-product-reviews #review_form .form-submit { margin: 4px 0 0; }

.woocommerce.single-product .navisupp-product-reviews #review_form .form-submit input {
	min-height: 48px;
	background: var(--brand);
}

.woocommerce.single-product .navisupp-product-reviews #review_form .form-submit input:hover { background: var(--brand-deep); }

@media (min-width: 40rem) {
	.woocommerce.single-product .navisupp-product-reviews #review_form .comment-form {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: 14px;
	}

	.woocommerce.single-product .navisupp-product-reviews #review_form .comment-notes,
	.woocommerce.single-product .navisupp-product-reviews #review_form .comment-form-rating,
	.woocommerce.single-product .navisupp-product-reviews #review_form .comment-form-comment,
	.woocommerce.single-product .navisupp-product-reviews #review_form .comment-form-cookies-consent,
	.woocommerce.single-product .navisupp-product-reviews #review_form .logged-in-as,
	.woocommerce.single-product .navisupp-product-reviews #review_form .must-log-in,
	.woocommerce.single-product .navisupp-product-reviews #review_form .form-submit { grid-column: 1 / -1; }
}

@media (max-width: 39.99rem) {
	.woocommerce.single-product .navisupp-product-reviews input,
	.woocommerce.single-product .navisupp-product-reviews select,
	.woocommerce.single-product .navisupp-product-reviews textarea { font-size: 1rem; }
}

.woocommerce.single-product .navisupp-product-reviews ol.commentlist {
	display: grid;
	gap: 0;
	margin: 22px 0 0;
	padding: 0;
	list-style: none;
}

.woocommerce.single-product .navisupp-product-reviews ol.commentlist > li {
	margin: 0;
	padding: 20px 0;
	border-bottom: 1px solid var(--line);
}

.woocommerce.single-product .navisupp-product-reviews ol.commentlist > li:first-child { padding-top: 0; }

.woocommerce.single-product .navisupp-product-reviews ol.commentlist li .comment_container {
	display: grid;
	grid-template-columns: 42px minmax(0, 1fr);
	gap: 14px;
}

.woocommerce.single-product .navisupp-product-reviews ol.commentlist li img.avatar {
	position: static;
	float: none;
	width: 42px;
	height: 42px;
	margin: 0;
	padding: 0;
	border: 1px solid var(--line);
	border-radius: 50%;
	background: var(--bone);
}

.woocommerce.single-product .navisupp-product-reviews ol.commentlist li .comment-text {
	margin: 0;
	padding: 0;
	border: 0;
	color: var(--text);
}

.woocommerce.single-product .navisupp-product-reviews .comment-text .star-rating {
	float: none;
	margin: 0 0 8px;
	color: var(--brand);
}

.woocommerce.single-product .navisupp-product-reviews .comment-text .meta {
	margin: 0 0 8px;
	font-size: 0.8125rem;
	color: var(--muted);
}

.woocommerce.single-product .navisupp-product-reviews .comment-text .woocommerce-review__author {
	font-weight: 580;
	color: var(--text);
}

.woocommerce.single-product .navisupp-product-reviews .comment-text .description { font-size: 0.9375rem; line-height: 1.7; }
.woocommerce.single-product .navisupp-product-reviews .comment-text .description p { margin: 0; }
.woocommerce.single-product .navisupp-product-reviews .clear { display: none; }

.related.products,
.upsells.products { grid-column: 1 / -1; margin-top: clamp(40px, 5vw, 72px); }
.related.products > h2, .upsells.products > h2 { margin-bottom: 24px; }

/* Sticky mobile buy bar */
.navisupp-buybar {
	position: fixed;
	left: 0; right: 0; bottom: 0;
	z-index: 95;
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 10px var(--gutter) calc(10px + env(safe-area-inset-bottom));
	background: rgba(255, 255, 255, 0.97);
	border-top: 1px solid var(--line);
	box-shadow: 0 -6px 24px -18px rgba(10, 11, 13, 0.4);
	transform: translate3d(0, 110%, 0);
	transition: transform var(--dur) var(--ease);
}

.navisupp-buybar.is-visible { transform: translate3d(0, 0, 0); }
.navisupp-buybar__info { min-width: 0; flex: 1; }

.navisupp-buybar__title {
	display: block;
	font-size: 0.75rem;
	color: var(--muted);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.navisupp-buybar__price { display: block; font-size: 1rem; font-weight: 600; letter-spacing: -0.02em; }

.navisupp-buybar__action {
	flex: none;
	padding: 12px 24px;
	border: 0;
	border-radius: var(--r-sm);
	background: var(--brand);
	color: #fff;
	font-size: 0.875rem;
	font-weight: 550;
	cursor: pointer;
	text-decoration: none;
}

@media (min-width: 64rem) { .navisupp-buybar { display: none; } }
@media (max-width: 63.99rem) { body.single-product { padding-bottom: 84px; } }

/* Cart, checkout and account classic markup. */
.woocommerce table.shop_table {
	width: 100%;
	border-collapse: collapse;
	border: 1px solid var(--line);
	border-radius: var(--r-lg);
	overflow: hidden;
	font-size: 0.9375rem;
}

.woocommerce table.shop_table th {
	padding: 14px 15px;
	background: var(--bone);
	font-family: var(--font-mono);
	font-size: 0.6875rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--muted);
	font-weight: 500;
	text-align: left;
	border: 0;
}

.woocommerce table.shop_table td { padding: 15px; border-top: 1px solid var(--line); vertical-align: middle; }
.woocommerce table.shop_table img { width: 60px; border-radius: var(--r-sm); background: #fff; }

.woocommerce .cart_totals,
.woocommerce-checkout-review-order,
.woocommerce-order,
.woocommerce-MyAccount-content {
	padding: clamp(20px, 2.6vw, 30px);
	border: 1px solid var(--line);
	border-radius: var(--r-lg);
	background: var(--bone);
}

.woocommerce .cart_totals h2,
.woocommerce-billing-fields h3,
.woocommerce-shipping-fields h3,
#order_review_heading { font-size: 1.125rem; }

@media (min-width: 62rem) {
	.woocommerce-checkout form.checkout { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); gap: clamp(26px, 3.2vw, 48px); align-items: start; }
	.woocommerce-checkout form.checkout > .col2-set { grid-column: 1; }
	.woocommerce-checkout form.checkout > #order_review_heading,
	.woocommerce-checkout form.checkout > #order_review { grid-column: 2; }
}

.woocommerce .quantity { display: inline-flex; }

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce a.button.alt,
.woocommerce button.button.alt {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 12px 24px;
	border: 0;
	border-radius: var(--r-sm);
	background: var(--ink);
	color: #fff;
	font-size: 0.875rem;
	font-weight: 530;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: background-color var(--dur-fast) var(--ease);
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover { background: var(--brand); color: #fff; }

.woocommerce .checkout-button,
.woocommerce #place_order,
.woocommerce button.button.alt { background: var(--brand); }
.woocommerce .checkout-button:hover, .woocommerce #place_order:hover { background: var(--brand-hi); }

.woocommerce a.button.wc-backward { background: transparent; color: var(--text); border: 1px solid var(--line-strong); }

.woocommerce .woocommerce-form-login,
.woocommerce .woocommerce-form-coupon,
.woocommerce form.checkout_coupon {
	padding: clamp(18px, 2.4vw, 26px);
	border: 1px solid var(--line);
	border-radius: var(--r-lg);
	background: var(--bone);
}

.woocommerce-MyAccount-navigation ul {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0 0 24px;
	padding: 0;
	list-style: none;
}

.woocommerce-MyAccount-navigation a {
	display: block;
	padding: 9px 16px;
	border: 1px solid var(--line);
	border-radius: var(--r-sm);
	font-size: 0.875rem;
	text-decoration: none;
}

.woocommerce-MyAccount-navigation li.is-active a { background: var(--ink); color: #fff; border-color: var(--ink); }

.woocommerce nav.woocommerce-pagination ul {
	display: flex;
	gap: 6px;
	border: 0;
	margin: 40px 0 0;
	padding: 0;
	list-style: none;
	justify-content: center;
}

.woocommerce nav.woocommerce-pagination ul li { border: 0; margin: 0; overflow: visible; }

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	display: grid;
	place-items: center;
	min-width: 40px; height: 40px;
	padding: 0 12px;
	border: 1px solid var(--line);
	border-radius: var(--r-sm);
	font-size: 0.875rem;
	text-decoration: none;
}

.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--ink); color: #fff; border-color: var(--ink); }

/* ==========================================================================
   18. WooCommerce Blocks (Cart & Checkout)
   ========================================================================== */

.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout { margin-block: clamp(32px, 4.5vw, 64px); }

.wc-block-components-sidebar .wc-block-components-title,
.wc-block-cart__totals-title {
	font-family: var(--font-mono);
	font-size: 0.625rem !important;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--muted);
}

/* Only the outer sidebar gets the card treatment. The order-summary block sits
   inside it, so styling both produced a panel-inside-a-panel and doubled the
   padding, which crushed the product name to one word per line. */
.wc-block-components-sidebar,
.wc-block-cart__sidebar {
	padding: clamp(20px, 2.4vw, 28px);
	border: 1px solid var(--line);
	border-radius: var(--r-lg);
	background: var(--bone);
}

.wc-block-components-sidebar .wp-block-woocommerce-checkout-order-summary-block {
	padding: 0;
	border: 0;
	background: transparent;
}

/* The short description is noise in a narrow summary column. */
.wc-block-components-order-summary-item__description .wc-block-components-product-metadata { display: none; }

.wc-block-components-order-summary-item__description { min-width: 0; }

.wc-block-cart-item__product a.wc-block-components-product-name,
.wc-block-components-product-name {
	font-size: 0.9375rem;
	font-weight: 520;
	letter-spacing: -0.015em;
	color: var(--text);
	text-decoration: none;
}

.wc-block-cart-item__image img,
.wc-block-components-order-summary-item__image img { border-radius: var(--r-sm); background: #fff; }

.wc-block-components-totals-item__label { color: var(--muted); font-size: 0.9375rem; }
.wc-block-components-totals-item__value { font-weight: 550; color: var(--text); }

.wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	font-size: 1.1875rem;
	font-weight: 620;
	letter-spacing: -0.025em;
	color: var(--text);
}

.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button,
.wc-block-components-button.contained {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 50px;
	padding: 13px 26px;
	border: 0;
	border-radius: var(--r-sm);
	background: var(--brand);
	color: #fff;
	font-family: var(--font);
	font-size: 1rem;
	font-weight: 560;
	transition: background-color var(--dur-fast) var(--ease);
}

.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover,
.wc-block-components-button.contained:hover { background: var(--brand-hi); color: #fff; }

.wc-block-components-text-input input[type='text'],
.wc-block-components-text-input input[type='email'],
.wc-block-components-text-input input[type='tel'],
.wc-block-components-text-input input[type='number'],
.wc-block-components-address-form input,
.wc-block-components-combobox input {
	border-radius: var(--r-sm);
	border-color: var(--line-strong);
	font-family: var(--font);
}

.wc-block-components-text-input.is-active input:focus,
.wc-block-components-address-form input:focus {
	border-color: var(--brand);
	box-shadow: 0 0 0 3px rgba(11, 107, 87, 0.22);
	outline: none;
}

.wc-block-components-quantity-selector { border-radius: var(--r-sm); border-color: var(--line-strong); }
.wc-block-components-notice-banner { border-radius: var(--r-sm); font-family: var(--font); }

/* On phones, let WooCommerce's own row separators define the summary instead
   of nesting coupons, shipping, total and payment actions inside one card. */
@media (max-width: 48rem) {
	body.woocommerce-cart .wc-block-components-sidebar.wc-block-cart__sidebar {
		padding: 0 !important;
		border: 0 !important;
		border-radius: 0 !important;
		background: transparent !important;
		overflow: visible !important;
	}

	body.woocommerce-cart .wc-block-cart__payment-options,
	body.woocommerce-cart .wc-block-cart__submit {
		margin-top: 14px;
		padding: 0 !important;
	}

	body.woocommerce-cart .wc-block-components-totals-coupon__form {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		gap: 8px;
		align-items: end;
	}

	body.woocommerce-cart .wc-block-components-totals-coupon__form .wc-block-components-text-input {
		min-width: 0;
	}

	body.woocommerce-cart .wc-block-components-totals-coupon__button.wc-block-components-button.contained {
		width: auto;
		min-height: 46px;
		padding: 11px 16px;
		flex: 0 0 auto;
		font-size: 0.875rem;
	}

}

@media (max-width: 21.25rem) {
	body.woocommerce-cart .wc-block-components-totals-coupon__form {
		grid-template-columns: 1fr;
	}

	body.woocommerce-cart .wc-block-components-totals-coupon__button.wc-block-components-button.contained {
		width: 100%;
	}
}

.wc-block-components-checkout-step__heading,
.wc-block-components-checkout-step__title {
	font-family: var(--font);
	font-size: 1.0625rem;
	font-weight: 560;
	letter-spacing: -0.02em;
}

/* WooCommerce Blocks product grid used by the empty-cart cross-sell. It has
   its own markup, so the classic loop styles above never reached it. */
/* Woo lays this grid out with flex and a `max-width: 25%` per card. Overriding
   the container to CSS grid makes that percentage resolve against the cell
   instead of the row and collapses every card, so only the visuals are styled
   here. The column layout stays WooCommerce's. */
/* ========================================================================== 
   Checkout shell: WooCommerce remains responsible for every form and state.
   The composition uses a focused dark order summary without bypassing
   Woo orders, inventory, shipping, refunds, or gateway-hosted payment fields.
   ========================================================================== */

body.woocommerce-checkout { background: var(--bone); }

.site-header--checkout {
	position: relative;
	background: var(--paper);
}

.checkout-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	min-height: 76px;
}

.site-branding--checkout { margin: 0; }

.checkout-header__actions,
.checkout-header__secure,
.checkout-header__cart {
	display: flex;
	align-items: center;
}

.checkout-header__actions { gap: clamp(16px, 3vw, 32px); }

.checkout-header__secure {
	gap: 10px;
	color: var(--muted);
}

.checkout-header__secure > svg {
	width: 20px;
	height: 20px;
	color: var(--brand-deep);
	stroke-width: 1.7;
}

.checkout-header__secure span { display: grid; line-height: 1.25; }
.checkout-header__secure strong { color: var(--text); font-size: 0.8125rem; font-weight: 590; }
.checkout-header__secure small { margin-top: 2px; font-size: 0.6875rem; }

.checkout-header__cart {
	justify-content: center;
	gap: 7px;
	min-height: 44px;
	padding: 9px 14px;
	border: 1px solid var(--line-strong);
	border-radius: var(--r-sm);
	background: var(--paper);
	font-size: 0.8125rem;
	font-weight: 540;
	text-decoration: none;
	transition: border-color 200ms var(--ease), background-color 200ms var(--ease);
}

.checkout-header__cart:hover { border-color: var(--brand); background: rgba(11, 107, 87, 0.06); }
.checkout-header__cart svg { width: 16px; height: 16px; stroke-width: 1.8; }

.checkout-intro {
	padding-block: 36px 20px;
	background: var(--bone);
}

.checkout-intro__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: end;
	gap: 24px 48px;
	max-width: 1184px;
}

.checkout-intro__eyebrow {
	margin: 0 0 8px;
	font-family: var(--font-mono);
	font-size: 0.625rem;
	font-weight: 550;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--brand-deep);
}

.checkout-intro h1 { margin: 0; font-size: 2rem; }
.checkout-intro__copy > p:last-child { max-width: 64ch; margin: 10px 0 0; color: var(--muted); font-size: 0.9375rem; }

.checkout-intro__assurance {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: 8px 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.checkout-intro__assurance li {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	color: var(--muted);
	font-size: 0.75rem;
	font-weight: 510;
	white-space: nowrap;
}

.checkout-intro__assurance svg {
	width: 17px;
	height: 17px;
	color: var(--brand-deep);
	stroke-width: 1.6;
}

body.woocommerce-checkout .page-entry__body--checkout {
	max-width: 1184px;
	padding-block: 18px 64px;
}

body.woocommerce-checkout .checkout-content {
	width: 100%;
	max-width: none;
	font-size: 1rem;
	line-height: 1.5;
	color: var(--text);
}

body.woocommerce-checkout .checkout-content > .wp-block-woocommerce-checkout { margin-block: 0; }

body.woocommerce-checkout .wc-block-components-sidebar-layout {
	display: flex !important;
	align-items: flex-start;
	gap: clamp(24px, 3vw, 44px);
	margin-bottom: 0;
}

body.woocommerce-checkout .wc-block-checkout__main,
body.woocommerce-checkout .wc-block-checkout__sidebar {
	min-width: 0;
	border-radius: var(--r-lg);
	box-shadow: var(--lift-1);
}

body.woocommerce-checkout .wc-block-checkout__main {
	padding: clamp(26px, 3.5vw, 44px) !important;
	border: 1px solid var(--line);
	background: var(--paper);
}

body.woocommerce-checkout .wc-block-checkout__sidebar {
	padding: clamp(24px, 3vw, 34px) !important;
	border: 1px solid var(--ink);
	background: var(--ink);
	color: var(--on-dark);
}

body.woocommerce-checkout .wc-block-checkout__sidebar :is(h2, h3, h4, strong),
body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-title,
body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-product-name,
body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	color: var(--on-dark) !important;
}

body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-title {
	font-family: var(--font);
	font-size: 1.0625rem !important;
	font-weight: 590;
	letter-spacing: -0.02em;
	text-transform: none;
}

body.woocommerce-checkout .wc-block-checkout__sidebar :is(.wc-block-components-totals-item__label, .wc-block-components-product-metadata, .wc-block-components-order-summary-item__individual-price) {
	color: rgba(255, 255, 255, 0.68) !important;
}

body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-totals-item__value,
body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-product-price,
body.woocommerce-checkout .wc-block-checkout__sidebar a,
body.woocommerce-checkout .wc-block-checkout__sidebar button {
	color: rgba(255, 255, 255, 0.94) !important;
}

body.woocommerce-checkout .wc-block-checkout__sidebar :is(.wc-block-components-totals-wrapper, .wc-block-components-panel, .wc-block-components-order-summary-item, .wc-block-components-totals-footer-item) {
	border-color: rgba(255, 255, 255, 0.14) !important;
}

body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-order-summary-item__image img {
	background: var(--paper);
	border-radius: var(--r-sm);
}

body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-order-summary-item__quantity {
	background: var(--paper);
	color: var(--ink);
	box-shadow: 0 0 0 2px var(--ink);
}

body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-totals-coupon__form { padding-top: 12px; }

body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-totals-coupon__form input {
	background: var(--paper);
	color: var(--text);
}

body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-totals-coupon__button {
	border-color: rgba(255, 255, 255, 0.34) !important;
	background: transparent !important;
}

body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-totals-coupon__button:hover {
	border-color: var(--brand-hi) !important;
	background: rgba(255, 255, 255, 0.08) !important;
}

body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-validation-error {
	color: #ffb4a8 !important;
}

body.woocommerce-checkout .wc-block-components-checkout-step { margin-bottom: 28px; }
body.woocommerce-checkout .wc-block-components-checkout-step:last-of-type { margin-bottom: 0; }

body.woocommerce-checkout .wc-block-components-checkout-step__heading,
body.woocommerce-checkout .wc-block-components-checkout-step__title {
	font-size: 1.125rem;
	font-weight: 590;
}

body.woocommerce-checkout .wc-block-components-text-input input,
body.woocommerce-checkout .wc-block-components-address-form input,
body.woocommerce-checkout .wc-block-components-combobox input,
body.woocommerce-checkout .wc-block-components-combobox-control input {
	min-height: 52px;
	border: 1px solid var(--line-strong);
	background: var(--paper);
	font-size: 1rem;
}

body.woocommerce-checkout .wc-block-components-text-input input:focus,
body.woocommerce-checkout .wc-block-components-address-form input:focus,
body.woocommerce-checkout .wc-block-components-combobox input:focus,
body.woocommerce-checkout .wc-block-components-combobox-control input:focus {
	border-color: var(--brand);
	box-shadow: 0 0 0 3px rgba(11, 107, 87, 0.22);
	outline: none;
}

body.woocommerce-checkout .wc-block-components-text-input.has-error input,
body.woocommerce-checkout .wc-block-components-text-input.is-error input,
body.woocommerce-checkout .wc-block-components-combobox.is-error input {
	border-color: #b42318;
	box-shadow: 0 0 0 3px rgba(180, 35, 24, 0.14);
}

body.woocommerce-checkout .wc-block-components-validation-error { color: #9f1c13; }

body.woocommerce-checkout .wc-block-components-checkbox__input,
body.woocommerce-checkout input[type='checkbox'],
body.woocommerce-checkout input[type='radio'] {
	min-width: 20px;
	min-height: 20px;
	accent-color: var(--brand);
}

body.woocommerce-checkout .wc-block-components-radio-control-accordion-option,
body.woocommerce-checkout .wc-block-components-radio-control__option {
	border-color: var(--line-strong);
	border-radius: var(--r-sm);
}

body.woocommerce-checkout .wc-block-components-checkout-place-order-button {
	min-height: 54px;
	margin-top: 18px;
	font-weight: 620;
}

body.woocommerce-checkout .wc-block-components-checkout-place-order-button:disabled {
	opacity: 0.58;
	cursor: not-allowed;
}

body.woocommerce-checkout .wc-block-components-button.is-loading { cursor: wait; }
body.woocommerce-checkout .wc-block-components-notice-banner.is-error { border-color: #b42318; }
body.woocommerce-checkout .wc-block-components-notice-banner.is-success { border-color: #18794e; }

@media (min-width: 64rem) {
	body.woocommerce-checkout .wc-block-components-sidebar-layout { flex-direction: row-reverse; }
	body.woocommerce-checkout .wc-block-checkout__main { width: 64% !important; flex: 1 1 64%; }
	body.woocommerce-checkout .wc-block-checkout__sidebar {
		position: sticky;
		top: 24px;
		width: 36% !important;
		flex: 0 0 calc(36% - 22px);
	}
}

@media (max-width: 63.99rem) {
	.checkout-intro__inner { grid-template-columns: 1fr; align-items: start; }
	.checkout-intro__assurance { justify-content: flex-start; }

	body.woocommerce-checkout .wc-block-components-sidebar-layout {
		flex-direction: column !important;
		gap: 18px;
	}

	body.woocommerce-checkout .wc-block-checkout__main,
	body.woocommerce-checkout .wc-block-checkout__sidebar {
		width: 100% !important;
		flex: 0 0 auto;
		position: static;
	}

	body.woocommerce-checkout .wc-block-checkout__sidebar { order: -1; }
}

@media (max-width: 47.99rem) {
	.checkout-header__inner { min-height: 68px; gap: 14px; }
	.checkout-header__secure { gap: 7px; }
	.checkout-header__secure small { display: none; }
	.checkout-header__secure strong { font-size: 0.75rem; }
	.checkout-header__cart { padding-inline: 10px; }

	.checkout-intro { padding-block: 28px 14px; }
	.checkout-intro h1 { font-size: 1.75rem; }
	.checkout-intro__copy > p:last-child { font-size: 0.875rem; }
	.checkout-intro__assurance { display: grid; gap: 7px; }

	body.woocommerce-checkout .page-entry__body--checkout { padding-block: 12px 40px; }
	body.woocommerce-checkout .wc-block-components-sidebar-layout { gap: 12px; }
	body.woocommerce-checkout .wc-block-checkout__main,
	body.woocommerce-checkout .wc-block-checkout__sidebar {
		padding: 20px 16px !important;
		border-radius: var(--r-md);
		box-shadow: none;
	}

	body.woocommerce-checkout .wc-block-components-checkout-step { margin-bottom: 24px; }
	body.woocommerce-checkout .wc-block-components-checkout-step__heading,
	body.woocommerce-checkout .wc-block-components-checkout-step__title { font-size: 1.0625rem; }
	body.woocommerce-checkout :is(input, select, textarea, button) { font-size: 1rem; }
}

.checkout-footer {
	border-top: 1px solid var(--line);
	background: var(--paper);
	color: var(--muted);
}

.checkout-footer__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: start;
	gap: 22px 36px;
	padding-block: 30px;
}

.checkout-footer__support { display: grid; gap: 4px; font-size: 0.8125rem; }
.checkout-footer__support strong { color: var(--text); font-weight: 590; }
.checkout-footer a { color: inherit; text-decoration: none; }
.checkout-footer a:hover { color: var(--brand-deep); }

.checkout-footer__policies {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: 8px 18px;
	font-size: 0.8125rem;
}

.checkout-footer__bottom {
	grid-column: 1 / -1;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	padding-top: 20px;
	border-top: 1px solid var(--line);
	font-size: 0.75rem;
}

.checkout-footer__bottom p { margin: 0; }
@media (max-width: 47.99rem) {
	.checkout-footer__inner { grid-template-columns: 1fr; gap: 18px; padding-block: 24px; }
	.checkout-footer__policies { justify-content: flex-start; }
	.checkout-footer__bottom { grid-column: 1; align-items: flex-start; }
}

.wc-block-grid__products {
	gap: clamp(12px, 1.6vw, 22px);
	margin: 0;
	padding: 0;
	list-style: none;
}

.wc-block-grid__product {
	margin: 0;
	padding: 0 0 clamp(13px, 1.6vw, 18px);
	border: 1px solid var(--line);
	border-radius: var(--r-lg);
	background: var(--paper);
	overflow: hidden;
	text-align: left;
	transition: box-shadow var(--dur) var(--ease);
}

.wc-block-grid__product:hover { box-shadow: var(--lift-2); }

.wc-block-grid__product-link { text-decoration: none; }

.wc-block-grid__product-image img {
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: contain;
	background: #fff;
	padding: clamp(12px, 2vw, 22px);
	margin: 0;
}

.wc-block-grid__product-title {
	padding: 0 clamp(13px, 1.6vw, 18px);
	margin: 0 0 8px;
	font-size: 0.9375rem;
	font-weight: 520;
	line-height: 1.35;
	letter-spacing: -0.015em;
	color: var(--text);
	text-decoration: none;
}

.wc-block-grid__product-title a { color: inherit; text-decoration: none; }
.wc-block-grid__product:hover .wc-block-grid__product-title { color: var(--brand-deep); }

.wc-block-grid__product-price {
	display: block;
	margin: 0 0 12px;
	padding: 0 clamp(13px, 1.6vw, 18px);
	font-size: 1.0625rem;
	font-weight: 600;
	letter-spacing: -0.02em;
	color: var(--text);
}

/* Woo's default block button is dark grey with a link-coloured label, which is
   unreadable. Give it the storefront's primary button treatment. */
.wc-block-grid__product-add-to-cart { margin: 0 clamp(13px, 1.6vw, 18px); }

.wc-block-grid__product-add-to-cart .wp-block-button__link,
.wc-block-grid__product .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	padding: 11px 18px;
	border: 0;
	border-radius: var(--r-sm);
	background: var(--brand);
	color: #fff;
	font-family: var(--font);
	font-size: 0.8125rem;
	font-weight: 540;
	text-decoration: none;
	transition: background-color var(--dur-fast) var(--ease);
}

.wc-block-grid__product-add-to-cart .wp-block-button__link:hover,
.wc-block-grid__product .wp-block-button__link:hover { background: var(--brand-hi); color: #fff; }

.wc-block-grid__product-onsale {
	margin: 0;
	padding: 5px 10px;
	border: 0;
	border-radius: var(--r-sm);
	background: var(--brand);
	color: #fff;
	font-family: var(--font-mono);
	font-size: 0.5625rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

/* ==========================================================================
   19. Footer
   ========================================================================== */

.site-footer {
	--footer-text: #f2f5ef;
	--footer-muted: rgba(242, 245, 239, 0.76);
	--footer-subtle: rgba(242, 245, 239, 0.58);
	--footer-line: rgba(242, 245, 239, 0.16);
	--footer-link-hover: #75c8ae;
	--footer-focus: #b4ead9;
	background: var(--ink);
	color: var(--footer-text);
	padding-top: clamp(36px, 5vw, 64px);
}

.site-footer--compact {
	padding-top: 0;
}

.site-footer__masthead {
	display: flex;
	align-items: center;
	padding-bottom: clamp(28px, 4vw, 44px);
	border-bottom: 1px solid var(--footer-line);
}

.site-footer__logo {
	display: inline-flex;
	align-items: center;
	padding: 9px 12px;
	border-radius: 12px;
	background: #fbfcfa;
}

.site-footer__logo-image {
	width: auto;
	height: 38px;
	max-width: 176px;
	object-fit: contain;
}

.site-footer__heading {
	margin-bottom: 14px;
	font-size: 1.125rem;
	font-weight: 620;
	letter-spacing: -0.02em;
	color: var(--footer-text);
}

.site-footer__heading--lg { font-size: clamp(1.25rem, 2vw, 1.6rem); }

.site-footer__directory {
	display: grid;
	gap: clamp(32px, 5vw, 60px) clamp(24px, 4vw, 56px);
	padding-block: clamp(42px, 6vw, 72px);
}

.site-footer__directory > * { min-width: 0; }

.site-footer__links {
	display: grid;
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-footer__links + .site-footer__links { margin-top: 10px; }

.site-footer__links a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	color: var(--footer-muted);
	font-size: 0.9375rem;
	line-height: 1.45;
	text-decoration: underline;
	text-decoration-color: transparent;
	text-underline-offset: 0.28em;
	transition: color var(--dur-fast) var(--ease), text-decoration-color var(--dur-fast) var(--ease);
}

.site-footer__links a:hover,
.site-footer__links a:focus-visible {
	color: var(--footer-link-hover);
	text-decoration-color: currentColor;
}

.site-footer :is(a, button, input):focus-visible {
	outline-color: var(--footer-focus);
	box-shadow: 0 0 0 2px var(--ink);
}

.site-footer__contact-grid {
	display: grid;
	gap: clamp(32px, 6vw, 80px);
	padding-block: clamp(38px, 5vw, 62px);
	border-top: 1px solid var(--footer-line);
}

.site-footer__newsletter {
	display: grid;
	gap: clamp(28px, 5vw, 72px);
	padding-block: clamp(38px, 5vw, 62px);
	border-top: 1px solid var(--footer-line);
}

.site-footer__newsletter-copy { max-width: 34rem; }

.site-footer__newsletter-kicker {
	margin: 0 0 12px;
	font-family: var(--font-mono);
	font-size: 0.6875rem;
	font-weight: 650;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--footer-link-hover);
}

.site-footer__newsletter h2 {
	margin: 0 0 12px;
	font-size: clamp(1.45rem, 2.6vw, 2.15rem);
	line-height: 1.15;
	letter-spacing: -0.035em;
	color: var(--footer-text);
}

.site-footer__newsletter-copy > p:last-child {
	max-width: 46ch;
	margin: 0;
	font-size: 0.9375rem;
	line-height: 1.65;
	color: var(--footer-muted);
}

.site-footer__newsletter-form {
	position: relative;
	width: 100%;
	max-width: 36rem;
}

.site-footer__newsletter-form > label {
	display: block;
	margin-bottom: 9px;
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--footer-text);
}

.site-footer__newsletter-fields {
	display: grid;
	gap: 10px;
}

.site-footer__newsletter-fields input,
.site-footer__newsletter-fields button {
	min-height: 52px;
	border-radius: var(--r-sm);
	font-family: var(--font-sans);
	font-size: 1rem;
}

.site-footer__newsletter-fields input {
	width: 100%;
	padding: 13px 15px;
	border: 1px solid rgba(242, 245, 239, 0.4);
	background: rgba(242, 245, 239, 0.08);
	color: var(--footer-text);
}

.site-footer__newsletter-fields input::placeholder { color: var(--footer-subtle); }

.site-footer__newsletter-fields input:focus-visible {
	border-color: var(--footer-focus);
	box-shadow: 0 0 0 3px rgba(180, 234, 217, 0.24);
}

.site-footer__newsletter-fields button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 13px 24px;
	border: 1px solid var(--footer-text);
	background: var(--footer-text);
	color: var(--ink);
	font-family: var(--font-mono);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.13em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}

.site-footer__newsletter-fields button:hover {
	border-color: var(--footer-link-hover);
	background: var(--footer-link-hover);
}

.site-footer__newsletter-consent,
.site-footer__newsletter-message {
	margin: 10px 0 0;
	font-size: 0.75rem;
	line-height: 1.55;
	color: var(--footer-subtle);
}

.site-footer__newsletter-consent a {
	color: var(--footer-muted);
	text-underline-offset: 0.2em;
}

.site-footer__newsletter-message.is-success { color: #9fe0bd; }
.site-footer__newsletter-message.is-error { color: #ffc2b8; }

.navisupp-newsletter__trap {
	position: absolute !important;
	left: -10000px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}

.site-footer__store,
.site-footer__support { min-width: 0; }

.site-footer__store p,
.site-footer__support p {
	margin: 0 0 12px;
	font-size: 0.9375rem;
	line-height: 1.7;
	color: var(--footer-muted);
	max-width: 58ch;
}

.site-footer__store address { font-style: normal; }
.site-footer__store strong { color: var(--footer-text); font-weight: 620; }
.site-footer__note { color: var(--footer-subtle) !important; font-size: 0.8125rem !important; }

.site-footer__contact-links {
	display: grid;
	gap: 1px;
	margin: 20px 0 0;
	padding: 0;
	list-style: none;
	background: var(--footer-line);
}

.site-footer__contact-links li {
	display: grid;
	grid-template-columns: minmax(72px, 0.3fr) minmax(0, 1fr);
	align-items: center;
	gap: 12px;
	min-height: 54px;
	padding: 8px 14px;
	background: var(--ink);
}

.site-footer__contact-links span {
	color: var(--footer-subtle);
	font-family: var(--font-mono);
	font-size: 0.6875rem;
	letter-spacing: 0.055em;
	text-transform: uppercase;
}

.site-footer__contact-links .site-footer__contact-value {
	color: var(--footer-text);
	font-family: var(--font-sans);
	font-size: 0.9375rem;
	font-weight: 560;
	letter-spacing: normal;
	line-height: 1.45;
	text-transform: none;
}

.site-footer__contact-links a {
	display: inline-flex;
	align-items: center;
	min-width: 0;
	min-height: 44px;
	color: var(--footer-text);
	font-weight: 560;
	overflow-wrap: anywhere;
}

.site-footer__contact-links a:hover { color: var(--footer-link-hover); }

.site-footer__payments {
	padding-block: 4px;
	border-top: 1px solid var(--footer-line);
}

.site-footer__payments .navisupp-payments {
	border: 0;
	background: transparent;
	color: var(--footer-text);
}

.site-footer__payments .navisupp-payments__inner {
	width: 100%;
	padding-block: 28px;
}

.site-footer__payments .navisupp-payments p { color: var(--footer-muted); }

.site-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	padding-block: 22px;
	border-top: 1px solid var(--footer-line);
	font-size: 0.75rem;
	color: var(--footer-subtle);
}

.site-footer__bottom p { margin: 0; }

@media (min-width: 48rem) {
	.site-footer__directory { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.site-footer__contact-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.site-footer__newsletter { grid-template-columns: minmax(0, 0.9fr) minmax(20rem, 1.1fr); align-items: start; }
	.site-footer__newsletter-fields { grid-template-columns: minmax(0, 1fr) auto; }
}

@media (min-width: 70rem) {
	.site-footer__directory { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* Direct email support control. */
.navisupp-support-button {
	position: fixed;
	right: max(18px, env(safe-area-inset-right));
	bottom: max(18px, env(safe-area-inset-bottom));
	z-index: 80;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 52px;
	padding: 12px 17px;
	border: 1px solid rgba(255, 255, 255, 0.24);
	border-radius: 999px;
	background: var(--brand);
	box-shadow: 0 12px 34px -14px rgba(10, 11, 13, 0.5);
	color: #f7fffc;
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
	transition: background-color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
}

.navisupp-support-button:hover {
	background: var(--brand-hi);
	box-shadow: 0 16px 38px -14px rgba(10, 11, 13, 0.62);
	color: #f7fffc;
	transform: translate3d(0, -2px, 0);
}

a.navisupp-support-button:focus-visible {
	outline: 3px solid var(--ink);
	outline-offset: 3px;
	box-shadow: 0 0 0 2px var(--paper);
}

.navisupp-support-button__icon {
	width: 22px;
	height: 22px;
	flex: none;
	stroke-width: 1.7;
}

/* Keep support controls clear of cart payment and checkout actions. */
body.woocommerce-cart .navisupp-support-button { display: none; }

@media (max-width: 63.99rem) {
	body.single-product .navisupp-support-button {
		bottom: calc(94px + env(safe-area-inset-bottom));
	}
}

@media (max-width: 30rem) {
	.navisupp-support-button {
		right: max(14px, env(safe-area-inset-right));
		bottom: max(14px, env(safe-area-inset-bottom));
		min-width: 50px;
		min-height: 50px;
		padding: 12px;
	}

	.navisupp-support-button span { display: none; }

	body.single-product .navisupp-support-button {
		bottom: calc(92px + env(safe-area-inset-bottom));
	}
}

/* ==========================================================================
   20. Scroll reveals
   ========================================================================== */

.js [data-reveal] {
	opacity: 0;
	transform: translate3d(0, 18px, 0);
	transition: opacity 620ms var(--ease-out), transform 720ms var(--ease-out);
	transition-delay: var(--reveal-delay, 0ms);
}

.js [data-reveal].is-revealed { opacity: 1; transform: translate3d(0, 0, 0); }

/* ==========================================================================
   21. NaviSupp catalog composition
   ========================================================================== */

.section-heading-row {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: clamp(28px, 4vw, 48px);
}

.section-heading-row .section__title { margin-bottom: 0; }

.section-kicker {
	margin: 0 0 10px;
	color: var(--brand-deep);
	font-family: var(--font-mono);
	font-size: 0.6875rem;
	font-weight: 650;
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

.hero { display: block; background: #e8f0eb; }

.hero__inner {
	display: grid;
	grid-template-columns: minmax(0, 0.86fr) minmax(0, 1.14fr);
	gap: clamp(24px, 5vw, 72px);
	align-items: center;
	min-height: clamp(500px, 66vw, 680px);
	padding-block: clamp(42px, 6vw, 78px);
	padding-inline: var(--gutter);
	justify-content: initial;
}

.hero__copy { max-width: 560px; }
.hero h1 { font-size: clamp(2.4rem, 5.5vw, 5.8rem); line-height: 0.96; max-width: 10ch; }
.hero__summary { font-size: clamp(1rem, 1.4vw, 1.15rem); }

.hero-photo {
	min-width: 0;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	border: 1px solid rgba(16, 35, 29, 0.1);
	border-radius: clamp(14px, 2vw, 24px);
	background: #e9e2d7;
}

.hero-photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.value-strip .site-shell {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px 14px;
	padding-block: 13px;
	font-size: 0.8125rem;
	font-weight: 540;
}

.catalog-empty {
	margin: 0;
	padding: clamp(28px, 5vw, 54px);
	border: 1px solid var(--line);
	border-radius: var(--r-lg);
	background: var(--bone);
	color: var(--muted);
	text-align: center;
}

.product-purchase-anchor { display: block; scroll-margin-top: calc(var(--header-h) + 24px); }

.category-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
	gap: clamp(14px, 2vw, 24px);
}

.category-card {
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: end;
	gap: 8px 16px;
	min-height: 180px;
	padding: 22px;
	border: 1px solid var(--line);
	border-radius: var(--r-lg);
	background: var(--bone);
}

.category-card > img {
	grid-column: 1 / -1;
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	border-radius: var(--r-md);
}
.category-card__name { font-weight: 650; }
.category-card__count { color: var(--muted); font-size: 0.8125rem; }

.statement-grid__media img,
.quality-grid__media img {
	display: block;
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	padding: 0;
	border: 1px solid var(--line);
	border-radius: clamp(14px, 2vw, 22px);
	background: #e9e2d7;
}

.faq-layout { display: grid; gap: clamp(24px, 5vw, 72px); }
.faq-list { display: grid; gap: 8px; }
.faq-item { border: 1px solid var(--line); border-radius: var(--r-md); background: var(--paper); }
.faq-item summary { padding: 17px 20px; min-height: 56px; font-weight: 570; cursor: pointer; }
.faq-item p { margin: 0; padding: 0 20px 19px; max-width: 68ch; color: var(--muted); }
.faq-list--page { max-width: 880px; }
.faq-page__intro { max-width: 65ch; margin: 0 0 clamp(24px, 4vw, 38px); color: var(--muted); }

.woocommerce .woocommerce-form-track-order {
	display: grid;
	gap: 16px;
	max-width: 760px;
	margin-top: 28px;
	padding: clamp(20px, 3vw, 32px);
	border: 1px solid var(--line);
	border-radius: var(--r-lg);
	background: var(--bone);
}

.woocommerce .woocommerce-form-track-order .form-row { float: none; width: 100%; margin: 0; }
.woocommerce .woocommerce-form-track-order label { display: block; margin-bottom: 8px; font-weight: 580; }
.woocommerce .woocommerce-form-track-order input { width: 100%; min-height: 50px; }
.woocommerce .woocommerce-form-track-order button { min-height: 50px; }
.track-order-help { max-width: 68ch; margin-top: 24px; }

.checkout-footer__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px 24px;
	padding-block: 22px;
	font-size: 0.8125rem;
}
.checkout-footer__inner p { margin: 0; }
.checkout-footer__links { display: flex; flex-wrap: wrap; gap: 10px 18px; }
.checkout-footer a { display: inline-flex; align-items: center; min-height: 44px; }

@media (min-width: 48rem) {
	:is(.woocommerce, body) ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.faq-layout { grid-template-columns: minmax(0, 0.6fr) minmax(0, 1.4fr); }
}

@media (max-width: 61.99rem) {
	.hero__inner { grid-template-columns: 1fr; min-height: 0; }
	.hero-photo { order: -1; }
}

@media (max-width: 39.99rem) {
	.section-heading-row { align-items: flex-start; flex-direction: column; }
	.hero h1 { font-size: clamp(2.35rem, 13vw, 3.8rem); }
}

@media (max-width: 47.99rem) {
	input[type='text'],
	input[type='email'],
	input[type='url'],
	input[type='password'],
	input[type='search'],
	input[type='number'],
	input[type='tel'],
	input[type='date'],
	textarea,
	select { font-size: 1rem; }
}

/* ==========================================================================
   22. Reduced motion & print
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }

	*, *::before, *::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
		scroll-behavior: auto !important;
	}

	.js [data-reveal] { opacity: 1; transform: none; }
	:is(.woocommerce, body) ul.products li.product:hover img,
	.category-card:hover .category-card__media img { transform: none; }
}

@media print {
	.promo-bar,
	.site-header,
	.site-footer,
	.navisupp-buybar,
	.navisupp-support-button,
	.menu-toggle { display: none !important; }

	body { color: #000; background: #fff; }
	.hero__image,
	.hero-photo { display: none; }
	.hero h1, .hero__eyebrow { color: #000; }
}
