/* ==========================================================================
   Harvest — market-stall storefront (original design; default example: spices & nuts)
   --------------------------------------------------------------------------
   Loaded only while Harvest renders (after designs/base.css). EVERY selector is scoped under
   html[data-yz-design="harvest"]; components add `.yz-design-preset` (the body class printed only
   under a preset) so each rule out-ranks the base rule it restyles without !important.
   !important appears only where the theme's own sheets already use it (buttons, drawer, footer).
   Logical properties throughout (RTL); directional gradients flip under [dir="rtl"].

   Palette (contrast on the cream ground, WCAG 2.x):
     text #2E2016 14.4:1 · text-2 #4E3B2C 9.7:1 · muted #6A5443 6.5:1 (5.8:1 on cream-2)
     paprika #A83C1C: cream on it 6.0:1, as link text 5.8:1 · cardamom #56662C: cream on it 6.0:1
     walnut #3F2A1C: cream on it 12.3:1, saffron on it 6.1:1 · walnut on saffron #E6A21A 7.2:1
   Rationale + section list: docs/store-designs/DESIGN-harvest.md
   ========================================================================== */

/* --------------------------------------------------------------------------
   0. Tokens
   base.css keeps its defaults inside :where() (specificity 0), so a plain preset scope wins.
   -------------------------------------------------------------------------- */
html[data-yz-design="harvest"] {
	--yzh-cream: #FBF4E6;
	--yzh-cream-2: #F4E7CD;
	--yzh-paper: #FFFCF5;
	--yzh-line: #E6D5B5;
	--yzh-field: #94795A; /* form-field outlines: 3.7:1 on cream, 4.0:1 on paper, 3.3:1 on cream-2 (WCAG 1.4.11) */
	--yzh-walnut: #3F2A1C;
	--yzh-walnut-2: #5A3D28;
	--yzh-paprika-deep: #8A2F14;
	--yzh-saffron-soft: #F6D78E;
	--yzh-cardamom: #56662C;
	--yzh-cardamom-deep: #44521F;
	--yzh-font-label: 'Harvest Sans', 'Jost', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
	--yzh-shadow: 0 18px 36px -24px rgba(63, 42, 28, 0.55);
	--yzh-awning: 14px;
	/* Hover / pressed shades DERIVED from the (owner-editable) palette, so a changed primary or accent
	   keeps a consistent hover instead of falling back to paprika. */
	--yzh-primary-deep: color-mix(in srgb, var(--yzd-primary) 80%, #000);
	--yzh-accent-deep: color-mix(in srgb, var(--yzd-accent) 78%, #000);

	--yzd-bg: var(--yzh-cream);
	--yzd-surface: var(--yzh-cream-2);
	--yzd-surface-2: var(--yzh-paper);
	--yzd-text: #2E2016;
	--yzd-text-2: #4E3B2C;
	--yzd-muted: #6A5443;
	--yzd-border: var(--yzh-line);
	--yzd-on-primary: #FFF8EC;
	--yzd-on-accent: #2E2016;
	--yzd-dark: var(--yzh-walnut);
	--yzd-on-dark: #FBF4E6;
	--yzd-sale: #B3261E;

	--yzd-font-display: 'Harvest Serif', 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
	--yzd-font-body: system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
	--yzd-display-weight: 700;
	--yzd-display-tracking: -0.005em;
	--yzd-h1: clamp(2.5rem, 4.8vw, 4.25rem);
	--yzd-h2: clamp(1.9rem, 3vw, 2.75rem);
	--yzd-eyebrow-size: 0.75rem;
	--yzd-eyebrow-tracking: 0.18em;

	--yzd-container: 1280px;
	--yzd-space: clamp(44px, 6vw, 84px);
	--yzd-gap: clamp(12px, 1.6vw, 22px);

	--yzd-radius: 18px;
	--yzd-card-radius: 14px;
	--yzd-btn-radius: 10px;
	--yzd-btn-pad-y: 14px;
	--yzd-btn-pad-x: 26px;
	--yzd-btn-weight: 600;
	--yzd-btn-transform: uppercase;
	--yzd-btn-tracking: 0.1em;
	--yzd-card-ratio: 1 / 1;
	--yzd-hero-height: clamp(440px, 64vh, 620px);
	--yzd-hero-scrim: transparent;
	--yzd-shadow: var(--yzh-shadow);

	/* Theme tokens base.css does not remap, used by the header/cart/product sheets. */
	--yz-silver: var(--yzd-muted);
	--yz-radius: 10px;

	/* --yzd-primary / --yzd-accent are NOT declared here: they come from the registry colors
	   (paprika #A83C1C / saffron #E6A21A), printed inline after this sheet, so the owner's colour
	   pickers in /dashboard keep working. */
}

/* base.css remaps the theme tokens at (0,2,1); overriding one of them needs the same weight. */
html[data-yz-design="harvest"]:not([data-yz-design="heritage"]) {
	/* --yz-agate is the theme's dark accent-as-TEXT token (filter "View more", serial links, account
	   links…). base.css points it at the accent, and saffron as text on cream is 2.15:1 — so under
	   Harvest it is paprika-deep (8.2:1 on paper). Surfaces that want saffron set it explicitly. */
	--yz-agate: var(--yzh-paprika-deep);
}

/* --------------------------------------------------------------------------
   1. Page + typography
   -------------------------------------------------------------------------- */
html[data-yz-design="harvest"] body.yz-design-preset {
	background: var(--yzh-cream);
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-eyebrow {
	font-family: var(--yzh-font-label);
	color: var(--yzh-paprika-deep);
	font-weight: 600;
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-head__title {
	line-height: 1.05;
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-head__link {
	font-family: var(--yzh-font-label);
	font-size: max(13px, 0.8125rem);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--yzd-primary);
	text-decoration-thickness: 2px;
	text-decoration-color: var(--yzd-accent);
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-btn {
	font-family: var(--yzh-font-label);
	font-size: max(13px, 0.8125rem);
	box-shadow: 0 3px 0 var(--yzh-primary-deep);
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-btn:hover {
	background: var(--yzh-primary-deep);
	border-color: var(--yzh-primary-deep);
	color: var(--yzd-on-primary);
	transform: translateY(1px);
	box-shadow: 0 2px 0 var(--yzh-walnut);
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-btn--ghost {
	background: transparent;
	color: var(--yzd-text);
	border: 2px solid var(--yzd-text);
	box-shadow: none;
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-btn--ghost:hover {
	background: var(--yzd-text);
	border-color: var(--yzd-text);
	color: var(--yzh-cream);
	box-shadow: none;
}

/* Keyboard focus: the theme's single ring system (a11y.css) is token-driven. Its default ring is the
   accent — saffron here, only ~2:1 on cream — so Harvest points it at the ink (14:1) with a paper halo.
   On walnut surfaces (menu band, story, footer) the ring turns saffron (6.1:1 on walnut). */
html[data-yz-design="harvest"] {
	--yz-focus-ring: #2E2016;
	--yz-focus-halo: #FFFCF5;
}

html[data-yz-design="harvest"] .yz-design-preset #ast-desktop-header .ast-below-header-bar .main-header-menu > .menu-item > :focus-visible,
html[data-yz-design="harvest"] .yz-design-preset .yzd-story :focus-visible,
html[data-yz-design="harvest"] .yz-design-preset #colophon :focus-visible,
html[data-yz-design="harvest"] .yz-design-preset .yz-legal-bar :focus-visible {
	outline-color: #E6A21A !important;
	box-shadow: 0 0 0 5px rgba(46, 32, 22, 0.9);
}

/* --------------------------------------------------------------------------
   2. The awning — a striped canopy with a scalloped edge (hero, header row, drawer, footer)
   -------------------------------------------------------------------------- */
html[data-yz-design="harvest"] .yz-design-preset .yzd-hero__inner::before,
html[data-yz-design="harvest"] .yz-design-preset #ast-desktop-header .ast-below-header-wrap::after,
html[data-yz-design="harvest"] .yz-design-preset .moderncart-slide-out-header::before {
	content: "";
	position: absolute;
	inset-inline: 0;
	inset-block-start: 0;
	z-index: 2;
	height: calc(var(--yzh-awning) * 2);
	pointer-events: none;
	background:
		repeating-linear-gradient(90deg, var(--yzd-primary) 0 28px, var(--yzh-paper) 28px 56px) 0 0 / 100% var(--yzh-awning) no-repeat,
		radial-gradient(circle at 14px 0, var(--yzd-primary) 13.5px, transparent 14px) 0 var(--yzh-awning) / 56px var(--yzh-awning) repeat-x,
		radial-gradient(circle at 42px 0, var(--yzh-paper) 13.5px, transparent 14px) 0 var(--yzh-awning) / 56px var(--yzh-awning) repeat-x;
}

/* --------------------------------------------------------------------------
   3. Header — logo | wide search | account + bag, menu on its own awning row
   -------------------------------------------------------------------------- */
html[data-yz-design="harvest"] .yz-design-preset #masthead,
html[data-yz-design="harvest"] .yz-design-preset .ast-primary-header-bar,
html[data-yz-design="harvest"] .yz-design-preset .main-header-bar {
	background: var(--yzh-cream);
}

html[data-yz-design="harvest"] .yz-design-preset .ast-primary-header-bar {
	border-block-end: 0;
}

/* Three tracks: logo · search · cluster (the theme's comma header assumes two). */
html[data-yz-design="harvest"] .yz-design-preset #ast-desktop-header .ast-primary-header-bar .ast-builder-grid-row {
	grid-template-columns: minmax(0, 1fr) minmax(280px, 560px) minmax(0, 1fr);
	column-gap: clamp(16px, 2.4vw, 40px);
	align-items: center;
}

html[data-yz-design="harvest"] .yz-design-preset #ast-desktop-header .site-header-primary-section-left {
	justify-content: flex-start;
	min-width: 0;
}

html[data-yz-design="harvest"] .yz-design-preset #ast-desktop-header .site-header-primary-section-right {
	justify-content: flex-end;
	min-width: 0;
}

/* Mobile: menu · centred logo · bag. */
html[data-yz-design="harvest"] .yz-design-preset #ast-mobile-header .ast-primary-header-bar .ast-builder-grid-row {
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	align-items: center;
}

html[data-yz-design="harvest"] .yz-design-preset #ast-mobile-header .site-header-primary-section-left {
	justify-content: flex-start;
}

html[data-yz-design="harvest"] .yz-design-preset #ast-mobile-header .site-header-primary-section-right {
	justify-content: flex-end;
}

html[data-yz-design="harvest"] .yz-design-preset #ast-mobile-header .menu-toggle {
	border-radius: var(--yzd-btn-radius);
	background: var(--yzh-walnut);
	color: var(--yzd-on-dark);
}

/* The Black⇄Burgundy switcher is a Heritage feature (DECISIONS D-3.6); with one identity left under
   a preset it would be a toggle that does nothing. */
html[data-yz-design="harvest"] .yz-design-preset .yz-theme-slot,
html[data-yz-design="harvest"] .yz-design-preset .yz-theme-switcher--in-header {
	display: none;
}

/* Visible search field in the centre zone (desktop) and the row under the logo (mobile). */
html[data-yz-design="harvest"] .yz-design-preset .site-header-primary-section-center {
	flex: 1 1 auto;
	justify-content: center;
}

html[data-yz-design="harvest"] .yz-design-preset .site-header-primary-section-center .ast-header-search,
html[data-yz-design="harvest"] .yz-design-preset .ast-below-header-bar .ast-header-search,
html[data-yz-design="harvest"] .yz-design-preset .site-below-header-wrap .ast-header-search {
	width: min(100%, 560px);
	justify-content: center;
}

html[data-yz-design="harvest"] .yz-design-preset .site-header-primary-section-center .ast-search-menu-icon,
html[data-yz-design="harvest"] .yz-design-preset #ast-mobile-header .ast-below-header-bar .ast-search-menu-icon {
	position: relative;
	width: 100%;
}

html[data-yz-design="harvest"] .yz-design-preset .site-header-primary-section-center .ast-search-menu-icon .search-form,
html[data-yz-design="harvest"] .yz-design-preset #ast-mobile-header .ast-below-header-bar .ast-search-menu-icon .search-form {
	position: relative;
	inset: auto;
	display: flex;
	align-items: center;
	width: 100%;
	visibility: visible;
	opacity: 1;
	transform: none;
	margin: 0;
	padding: 4px 6px 4px 16px;
	padding-inline: 16px 6px;
	background: var(--yzh-paper);
	border: 2px solid var(--yzh-field);
	border-radius: 999px;
	box-shadow: none;
	box-sizing: border-box;
}

html[data-yz-design="harvest"] .yz-design-preset .site-header-primary-section-center .ast-search-menu-icon .search-form:focus-within,
html[data-yz-design="harvest"] .yz-design-preset #ast-mobile-header .ast-below-header-bar .ast-search-menu-icon .search-form:focus-within {
	border-color: var(--yzd-text);
	box-shadow: 0 0 0 4px var(--yzh-saffron-soft);
}

html[data-yz-design="harvest"] .yz-design-preset .site-header-primary-section-center .ast-search-menu-icon .search-form label,
html[data-yz-design="harvest"] .yz-design-preset #ast-mobile-header .ast-below-header-bar .ast-search-menu-icon .search-form label {
	display: flex;
	align-items: center;
	gap: 8px;
	flex: 1 1 auto;
	min-width: 0;
	width: auto;
}

html[data-yz-design="harvest"] .yz-design-preset .site-header-primary-section-center .search-field,
html[data-yz-design="harvest"] .yz-design-preset #ast-mobile-header .ast-below-header-bar .search-field {
	width: 100%;
	min-height: 40px;
	padding: 0;
	font-family: var(--yzd-font-body);
	font-size: max(15px, 0.9375rem);
	letter-spacing: 0;
	color: var(--yzd-text);
	background: transparent;
}

html[data-yz-design="harvest"] .yz-design-preset .site-header-primary-section-center .search-field::placeholder,
html[data-yz-design="harvest"] .yz-design-preset #ast-mobile-header .ast-below-header-bar .search-field::placeholder {
	color: var(--yzd-muted);
	opacity: 1;
	font-size: max(15px, 0.9375rem);
	letter-spacing: 0;
}

/* The field is always open, so the magnifier toggle is redundant — the form's submit stays. */
html[data-yz-design="harvest"] .yz-design-preset .site-header-primary-section-center .ast-search-menu-icon .ast-search-icon,
html[data-yz-design="harvest"] .yz-design-preset #ast-mobile-header .ast-below-header-bar .ast-search-menu-icon .ast-search-icon {
	display: none;
}

html[data-yz-design="harvest"] .yz-design-preset .site-header-primary-section-center .search-submit,
html[data-yz-design="harvest"] .yz-design-preset #ast-mobile-header .ast-below-header-bar .search-submit {
	display: inline-grid;
	place-items: center;
	flex: none;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--yzd-primary);
	color: var(--yzd-on-primary);
	cursor: pointer;
}

html[data-yz-design="harvest"] .yz-design-preset .site-header-primary-section-center .search-submit svg,
html[data-yz-design="harvest"] .yz-design-preset #ast-mobile-header .ast-below-header-bar .search-submit svg {
	width: 16px;
	height: 16px;
	fill: currentColor;
	color: inherit;
}

/* Menu row: a walnut band hanging an awning edge. */
html[data-yz-design="harvest"] .yz-design-preset #ast-desktop-header .ast-below-header-wrap {
	position: relative;
	padding-block-end: calc(var(--yzh-awning) * 1.4);
	background: transparent;
}

html[data-yz-design="harvest"] .yz-design-preset #ast-desktop-header .ast-below-header-bar {
	position: relative;
	background: var(--yzh-walnut);
	border: 0;
	min-height: 0;
}

html[data-yz-design="harvest"] .yz-design-preset #ast-desktop-header .ast-below-header-wrap::after {
	inset-block-start: auto;
	inset-block-end: 0;
	height: calc(var(--yzh-awning) * 1.4);
	background:
		radial-gradient(circle at 14px 0, var(--yzh-walnut) 13.5px, transparent 14px) 0 0 / 28px var(--yzh-awning) repeat-x;
}

html[data-yz-design="harvest"] .yz-design-preset #ast-desktop-header .ast-below-header-bar .main-header-menu > .menu-item > .menu-link {
	color: var(--yzd-on-dark) !important; /* beats header.css .yz-header a { color: ink !important } */
	font-family: var(--yzh-font-label);
	font-size: max(13px, 0.8125rem);
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	padding-block: 14px;
}

html[data-yz-design="harvest"] .yz-design-preset #ast-desktop-header .ast-below-header-bar .main-header-menu > .menu-item > .menu-link:hover,
html[data-yz-design="harvest"] .yz-design-preset #ast-desktop-header .ast-below-header-bar .main-header-menu > .current-menu-item > .menu-link {
	color: var(--yzd-accent) !important;
}

/* Drop-downs: paper panels with ink links (only the top level sits on walnut). */
html[data-yz-design="harvest"] .yz-design-preset #ast-desktop-header .ast-below-header-bar .main-header-menu > .menu-item > .sub-menu {
	background: var(--yzh-paper);
	border: 1px solid var(--yzh-line);
	border-radius: 12px;
	box-shadow: var(--yzh-shadow);
}

html[data-yz-design="harvest"] .yz-design-preset #ast-desktop-header .ast-below-header-bar .sub-menu .menu-link {
	color: var(--yzd-text) !important;
}

html[data-yz-design="harvest"] .yz-design-preset #ast-desktop-header .ast-below-header-bar .sub-menu .menu-link:hover {
	color: var(--yzh-paprika-deep) !important;
}

/* Menu-row height: only while the owner keeps the default header height (Dashboard → Header). */
html[data-yz-design="harvest"] body.yz-design-preset:not(.yz-header-custom-h) #ast-desktop-header .ast-below-header-bar .site-below-header-wrap,
html[data-yz-design="harvest"] body.yz-design-preset:not(.yz-header-custom-h) #ast-desktop-header .ast-below-header-bar .ast-builder-grid-row {
	min-height: 48px;
}

/* Mobile: search on its own row under the logo. */
html[data-yz-design="harvest"] .yz-design-preset #ast-mobile-header .ast-below-header-bar {
	background: var(--yzh-cream);
	border: 0;
	padding-block: 0 10px;
	min-height: 0;
}

html[data-yz-design="harvest"] .yz-design-preset #ast-mobile-header .ast-below-header-bar .site-below-header-section-center,
html[data-yz-design="harvest"] .yz-design-preset #ast-mobile-header .ast-below-header-bar .ast-builder-grid-row {
	width: 100%;
}

html[data-yz-design="harvest"] .yz-design-preset #ast-mobile-header .ast-below-header-bar .ast-header-search {
	width: 100%;
}

/* Cart count on the bag: saffron coin. */
html[data-yz-design="harvest"] .yz-design-preset .ast-header-woo-cart .count,
html[data-yz-design="harvest"] .yz-design-preset .ast-header-woo-cart .ast-count-text,
html[data-yz-design="harvest"] .yz-design-preset .ast-site-header-cart .count {
	background: var(--yzd-accent);
	color: var(--yzd-on-accent);
	border-color: var(--yzd-accent);
}

/* Announcement bar (shared content): paprika strip. */
html[data-yz-design="harvest"] .yz-design-preset .yz-announce {
	--yz-announce-bg: var(--yzd-primary);
	--yz-announce-fg: var(--yzd-on-primary);
}

/* --------------------------------------------------------------------------
   4. Hero — boxed market stall under the awning, copy on a paper label card
   -------------------------------------------------------------------------- */
html[data-yz-design="harvest"] .yz-design-preset .yzd-hero--boxed {
	padding-block: clamp(14px, 2vw, 24px) 0;
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-hero--boxed .yzd-hero__inner {
	align-items: center;
	padding: calc(var(--yzh-awning) * 2 + clamp(16px, 3vw, 40px)) clamp(16px, 4vw, 56px) clamp(20px, 4vw, 56px);
	box-sizing: border-box;
	border-radius: var(--yzd-radius);
	background: var(--yzh-cream-2);
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-hero--boxed .yzd-hero__media::after {
	background: linear-gradient(90deg, rgba(46, 32, 22, 0.28), rgba(46, 32, 22, 0) 55%);
}

html[data-yz-design="harvest"][dir="rtl"] .yz-design-preset .yzd-hero--boxed .yzd-hero__media::after {
	background: linear-gradient(270deg, rgba(46, 32, 22, 0.28), rgba(46, 32, 22, 0) 55%);
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-hero--boxed .yzd-hero__copy {
	position: relative;
	width: auto;
	max-width: 540px;
	margin: 0;
	padding: clamp(24px, 3.2vw, 44px);
	gap: 16px;
	background: var(--yzh-paper);
	color: var(--yzd-text);
	border: 1px solid var(--yzh-line);
	border-radius: 16px;
	box-shadow: var(--yzh-shadow);
}

/* A saffron "price-tag" notch on the label card's leading edge. */
html[data-yz-design="harvest"] .yz-design-preset .yzd-hero--boxed .yzd-hero__copy::before {
	content: "";
	position: absolute;
	inset-block-start: clamp(24px, 3.2vw, 44px);
	inset-inline-start: -1px;
	width: 6px;
	height: 56px;
	border-start-end-radius: 6px;
	border-end-end-radius: 6px;
	background: var(--yzd-accent);
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-hero--boxed .yzd-hero__title,
html[data-yz-design="harvest"] .yz-design-preset .yzd-hero--boxed .yzd-hero__text {
	color: var(--yzd-text);
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-hero--boxed .yzd-eyebrow {
	color: var(--yzh-paprika-deep);
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-hero--boxed .yzd-btn--ghost {
	color: var(--yzd-text);
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-hero__title {
	max-width: 14ch;
	line-height: 0.98;
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-hero__text {
	font-size: 1.0625rem;
}

/* --------------------------------------------------------------------------
   5. Category shelf — crates resting on a walnut plank
   -------------------------------------------------------------------------- */
html[data-yz-design="harvest"] .yz-design-preset .yzd-cats--rail {
	padding-block: clamp(28px, 4vw, 48px) clamp(12px, 2vw, 20px);
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-cats--rail .yzd-head {
	margin-block-end: 18px;
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-cats--rail .yzd-head__title {
	font-size: clamp(1.5rem, 2.2vw, 2rem);
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-cats--rail .yzd-cats__list {
	gap: clamp(14px, 2vw, 28px);
	justify-content: safe center;
	padding: 0 8px 26px;
	background:
		linear-gradient(var(--yzh-walnut-2), var(--yzh-walnut)) 0 calc(100% - 4px) / 100% 12px no-repeat,
		linear-gradient(rgba(63, 42, 28, 0.25), rgba(63, 42, 28, 0)) 0 100% / 100% 4px no-repeat;
	border-radius: 0 0 6px 6px;
	scrollbar-color: var(--yzh-line) transparent;
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-cats--rail .yzd-cats__item {
	flex: 0 0 clamp(128px, 15vw, 188px);
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-cats--rail .yzd-cats__link {
	gap: 10px;
	padding-block-end: 10px;
	text-align: center;
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-cats--rail .yzd-cats__media {
	border-radius: 14px;
	border: 4px solid var(--yzh-paper);
	background: var(--yzh-cream-2);
	box-shadow: 0 10px 18px -12px rgba(63, 42, 28, 0.6);
	transition: transform 0.3s ease;
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-cats--rail .yzd-cats__media.is-empty {
	background:
		radial-gradient(circle at 30% 35%, var(--yzh-saffron-soft) 0 18%, transparent 19%),
		radial-gradient(circle at 65% 60%, rgba(168, 60, 28, 0.35) 0 16%, transparent 17%),
		var(--yzh-cream-2);
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-cats--rail .yzd-cats__link:hover .yzd-cats__media,
html[data-yz-design="harvest"] .yz-design-preset .yzd-cats--rail .yzd-cats__link:focus-visible .yzd-cats__media {
	transform: translateY(-4px);
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-cats--rail .yzd-cats__label {
	align-items: center;
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-cats--rail .yzd-cats__name {
	font-family: var(--yzd-font-display);
	font-size: 1.1875rem;
	font-weight: 700;
	line-height: 1.15;
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-cats--rail .yzd-cats__count {
	font-family: var(--yzh-font-label);
	font-size: max(12px, 0.75rem);
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--yzd-muted);
}

/* --------------------------------------------------------------------------
   6. "By the scoop" counter — chalk tabs + paper ticket cards
   -------------------------------------------------------------------------- */
html[data-yz-design="harvest"] .yz-design-preset .yzd-products--tabs {
	padding-block-start: clamp(36px, 5vw, 64px);
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-tabs {
	gap: 8px;
	border: 0;
	margin-block-end: clamp(18px, 2.4vw, 28px);
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-tabs__tab {
	min-height: 44px;
	padding: 8px 18px;
	border: 2px solid var(--yzh-field);
	border-radius: 999px;
	background: var(--yzh-paper);
	color: var(--yzd-text-2);
	font-family: var(--yzh-font-label);
	font-size: max(13px, 0.8125rem);
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-tabs__tab[aria-selected="true"] {
	background: var(--yzh-walnut);
	border-color: var(--yzh-walnut);
	color: var(--yzd-on-dark);
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-tabs__tab[aria-selected="true"]::after {
	display: none;
}

/* The card (every product loop under Harvest: homepage, /store/, related, upsells). */
html[data-yz-design="harvest"] .yz-design-preset ul.products li.product.yz-card {
	display: flex;
	flex-direction: column;
	padding: 10px 10px 12px;
	background: var(--yzh-paper);
	border: 1px solid var(--yzh-line);
	border-radius: var(--yzd-card-radius);
	text-align: start;
	box-sizing: border-box;
}

@media (hover: hover) {
	html[data-yz-design="harvest"] .yz-design-preset ul.products li.product.yz-card:hover,
	html[data-yz-design="harvest"] .yz-design-preset ul.products li.product.yz-card:focus-within {
		box-shadow: var(--yzh-shadow);
		border-color: #D9C298;
	}
}

/* Unwrap Astra's thumbnail wrapper so image → summary → buy bar can be ordered as one column. */
html[data-yz-design="harvest"] .yz-design-preset ul.products li.product.yz-card .astra-shop-thumbnail-wrap {
	display: contents;
}

html[data-yz-design="harvest"] .yz-design-preset ul.products li.product.yz-card .woocommerce-LoopProduct-link {
	order: 1;
	aspect-ratio: 1 / 1;
	border-radius: 10px;
	background: var(--yzh-cream-2);
}

html[data-yz-design="harvest"] .yz-design-preset ul.products li.product.yz-card a img,
html[data-yz-design="harvest"] .yz-design-preset ul.products li.product.yz-card .yz-card__img--alt {
	aspect-ratio: 1 / 1;
	height: 100%;
	background: var(--yzh-cream-2);
}

html[data-yz-design="harvest"] .yz-design-preset ul.products li.product.yz-card .astra-shop-summary-wrap {
	order: 2;
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	padding: 12px 4px 0;
}

html[data-yz-design="harvest"] .yz-design-preset ul.products li.product.yz-card .yz-subject {
	order: 0;
	margin: 0 0 6px;
	font-family: var(--yzh-font-label);
	font-size: max(12px, 0.75rem);
	line-height: 1.35;
	font-weight: 600;
	letter-spacing: 0.14em;
	color: var(--yzd-muted);
}

html[data-yz-design="harvest"] .yz-design-preset ul.products li.product.yz-card .ast-loop-product__link {
	order: 1;
}

html[data-yz-design="harvest"] .yz-design-preset ul.products li.product.yz-card .woocommerce-loop-product__title {
	font-family: var(--yzd-font-display);
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 1.12;
	color: var(--yzd-text);
}

html[data-yz-design="harvest"] .yz-design-preset ul.products li.product.yz-card:focus-within .woocommerce-loop-product__title {
	color: var(--yzh-paprika-deep);
}

@media (hover: hover) {
	html[data-yz-design="harvest"] .yz-design-preset ul.products li.product.yz-card:hover .woocommerce-loop-product__title {
		color: var(--yzh-paprika-deep);
	}
}

html[data-yz-design="harvest"] .yz-design-preset ul.products li.product.yz-card .ast-woo-product-category {
	order: 2;
	display: block;
	margin-block-start: 4px;
	font-size: max(13px, 0.8125rem);
	color: var(--yzd-muted);
	opacity: 1;
}

/* Price: the loudest line on the card, on a dotted "scale" rule. */
html[data-yz-design="harvest"] .yz-design-preset ul.products li.product.yz-card .price {
	order: 3;
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 2px 8px;
	margin-block-start: auto;
	padding-block-start: 10px;
	border-block-start: 2px dotted var(--yzh-line);
	font-family: var(--yzh-font-label);
	font-size: 1.25rem;
	font-weight: 700;
	letter-spacing: 0;
	color: var(--yzh-paprika-deep);
}

html[data-yz-design="harvest"] .yz-design-preset ul.products li.product.yz-card .price del {
	order: 2;
	margin: 0;
	font-size: max(14px, 0.875rem);
	font-weight: 500;
	color: var(--yzd-muted);
}

html[data-yz-design="harvest"] .yz-design-preset ul.products li.product.yz-card .price ins {
	font-weight: 700;
	color: var(--yzd-sale);
}

html[data-yz-design="harvest"] .yz-design-preset ul.products li.product.yz-card .yzh-weight {
	order: 4;
	margin-block-start: 2px;
	font-family: var(--yzh-font-label);
	font-size: max(12px, 0.75rem);
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--yzd-muted);
}

html[data-yz-design="harvest"] .yz-design-preset ul.products li.product.yz-card .price + .yzh-weight {
	margin-block-start: 2px;
}

/* Badges: saffron and paprika tags with rounded ends. */
html[data-yz-design="harvest"] .yz-design-preset .yz-badges {
	inset-block-start: 10px;
	inset-inline-start: 10px;
}

html[data-yz-design="harvest"] .yz-design-preset .yz-badge {
	padding: 6px 10px;
	border: 0;
	border-radius: 999px;
	background: var(--yzh-walnut);
	color: var(--yzd-on-dark);
	font-family: var(--yzh-font-label);
	font-size: max(12px, 0.75rem);
	font-weight: 600;
	letter-spacing: 0.06em;
}

html[data-yz-design="harvest"] .yz-design-preset .yz-badge--rare,
html[data-yz-design="harvest"] .yz-design-preset .yz-badge--sale {
	background: var(--yzd-accent);
	color: var(--yzd-on-accent);
}

html[data-yz-design="harvest"] .yz-design-preset .yz-card--rare .woocommerce-LoopProduct-link::after {
	display: none;
}

/* The buy bar: always standing at the foot of the card, cardamom green. */
html[data-yz-design="harvest"] .yz-design-preset ul.products li.product.yz-card .ast-on-card-button:not(.ast-onsale-card) {
	order: 5;
	position: relative;
	inset: auto;
	transform: none;
	width: 100%;
	margin: 12px 0 0;
	padding: 12px 14px;
	min-height: 44px;
	gap: 0.6em;
	box-sizing: border-box;
	background: var(--yzh-cardamom) !important;
	color: var(--yzd-on-primary) !important;
	border: 0 !important;
	border-radius: var(--yzd-btn-radius) !important;
	box-shadow: 0 3px 0 var(--yzh-cardamom-deep);
	transition: background-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

html[data-yz-design="harvest"] .yz-design-preset ul.products li.product.yz-card .ast-on-card-button:not(.ast-onsale-card)::before {
	display: none;
}

html[data-yz-design="harvest"] .yz-design-preset ul.products li.product.yz-card .ast-on-card-button:not(.ast-onsale-card):hover,
html[data-yz-design="harvest"] .yz-design-preset ul.products li.product.yz-card .ast-on-card-button:not(.ast-onsale-card):focus-visible {
	background: var(--yzh-cardamom-deep) !important;
	color: var(--yzd-on-primary) !important;
	border: 0 !important;
	transform: translateY(1px);
	box-shadow: 0 2px 0 var(--yzh-walnut);
}

html[data-yz-design="harvest"] .yz-design-preset ul.products li.product.yz-card .ast-on-card-button:not(.ast-onsale-card) .ast-card-action-tooltip {
	font-family: var(--yzh-font-label);
	font-size: max(12px, 0.75rem);
	font-weight: 600;
	letter-spacing: 0.12em;
}

html[data-yz-design="harvest"] .yz-design-preset ul.products li.product.yz-card .ast-on-card-button:not(.ast-onsale-card) .ahfb-svg-iconset,
html[data-yz-design="harvest"] .yz-design-preset ul.products li.product.yz-card .ast-on-card-button:not(.ast-onsale-card):hover .ahfb-svg-iconset {
	color: inherit;
	transform: none;
}

/* Wishlist heart: a paper coin. */
html[data-yz-design="harvest"] .yz-design-preset .yz-wish--overlay {
	background: var(--yzh-paper);
	color: var(--yzd-text);
	border-radius: 50%;
}

/* --------------------------------------------------------------------------
   7. Promise band — saffron strip, icons in paper coins
   -------------------------------------------------------------------------- */
html[data-yz-design="harvest"] .yz-design-preset .yzd-features {
	padding-block: 0 !important;
	margin-block: var(--yzd-space) 0;
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-features .yzd-container {
	max-width: none;
	padding: 0;
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-features__list {
	max-width: var(--yzd-container);
	margin-inline: auto;
	padding: clamp(22px, 3vw, 34px) var(--yzd-gutter);
	box-sizing: border-box;
	gap: clamp(16px, 2.4vw, 32px);
	grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-features {
	background: var(--yzd-accent);
	color: var(--yzd-on-accent);
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-features__item {
	align-items: center;
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-features__icon {
	box-sizing: content-box;
	padding: 10px;
	border-radius: 50%;
	background: var(--yzh-paper);
	color: var(--yzh-walnut);
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-features__title {
	font-family: var(--yzh-font-label);
	font-size: max(14px, 0.875rem);
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--yzd-on-accent);
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-features__desc {
	color: var(--yzd-on-accent);
	font-size: max(14px, 0.875rem);
}

/* --------------------------------------------------------------------------
   8. Category mosaic — framed crates with paper name tags
   -------------------------------------------------------------------------- */
html[data-yz-design="harvest"] .yz-design-preset .yzd-banners__grid {
	gap: clamp(12px, 1.6vw, 20px);
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-banner {
	border-radius: var(--yzd-radius);
	border: 6px solid var(--yzh-paper);
	box-shadow: var(--yzh-shadow);
	color: var(--yzd-text);
	background: var(--yzh-cream-2);
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-banner::after {
	background: linear-gradient(to top, rgba(46, 32, 22, 0.35), rgba(46, 32, 22, 0) 45%);
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-banner__copy {
	margin: clamp(12px, 2vw, 22px);
	padding: 16px 20px;
	gap: 8px;
	background: var(--yzh-paper);
	border-radius: 12px;
	box-shadow: 0 10px 22px -16px rgba(46, 32, 22, 0.7);
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-banner .yzd-eyebrow {
	color: var(--yzh-paprika-deep);
	opacity: 1;
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-banner__title {
	font-size: clamp(1.5rem, 2.4vw, 2.1rem);
	color: var(--yzd-text);
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-banner__btn {
	background: var(--yzd-primary);
	border-color: var(--yzd-primary);
	color: var(--yzd-on-primary);
	box-shadow: none;
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-banner:hover .yzd-banner__btn,
html[data-yz-design="harvest"] .yz-design-preset .yzd-banner:focus-visible .yzd-banner__btn {
	background: var(--yzh-primary-deep);
	border-color: var(--yzh-primary-deep);
}

/* --------------------------------------------------------------------------
   9. Featured stall carousel — round prev/next coins
   -------------------------------------------------------------------------- */
html[data-yz-design="harvest"] .yz-design-preset .yzd-carousel__btn {
	border: 2px solid var(--yzh-field);
	border-radius: 50%;
	background: var(--yzh-paper);
	color: var(--yzd-text);
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-carousel__btn:hover {
	border-color: var(--yzd-text);
	background: var(--yzd-text);
	color: var(--yzh-cream);
}

/* --------------------------------------------------------------------------
   10. Story — warm walnut band, image framed like a photo pinned to the stall
   -------------------------------------------------------------------------- */
html[data-yz-design="harvest"] .yz-design-preset .yzd-story {
	margin-block-start: var(--yzd-space);
	padding-block: var(--yzd-space) !important;
	background: var(--yzh-walnut);
	color: var(--yzd-on-dark);
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-story__title,
html[data-yz-design="harvest"] .yz-design-preset .yzd-story__text {
	color: var(--yzd-on-dark);
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-story .yzd-eyebrow {
	color: var(--yzd-accent);
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-story__media {
	aspect-ratio: 5 / 4;
	border: 8px solid var(--yzh-paper);
	border-radius: 12px;
	box-shadow: 0 24px 40px -24px rgba(0, 0, 0, 0.7);
	rotate: -1.5deg;
}

html[data-yz-design="harvest"][dir="rtl"] .yz-design-preset .yzd-story__media {
	rotate: 1.5deg;
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-story .yzd-btn {
	background: var(--yzd-accent);
	border-color: var(--yzd-accent);
	color: var(--yzd-on-accent);
	box-shadow: 0 3px 0 var(--yzh-accent-deep);
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-story .yzd-btn:hover {
	background: var(--yzh-cream);
	border-color: var(--yzh-cream);
	color: var(--yzh-walnut);
	box-shadow: 0 2px 0 #000;
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-features + .yzd-section,
html[data-yz-design="harvest"] .yz-design-preset .yzd-story + .yzd-section {
	padding-block-start: var(--yzd-space);
}

/* --------------------------------------------------------------------------
   11. Reviews + newsletter card
   -------------------------------------------------------------------------- */
html[data-yz-design="harvest"] .yz-design-preset .yzd-review {
	background: var(--yzh-paper);
	border: 1px solid var(--yzh-line);
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-review__stars {
	color: #B57C0C;
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-news__inner {
	position: relative;
	background: var(--yzh-paper);
	border: 2px dashed var(--yzh-line);
	border-radius: var(--yzd-radius);
}

html[data-yz-design="harvest"] .yz-design-preset .yzd-news__title {
	color: var(--yzd-text);
}

/* --------------------------------------------------------------------------
   12. /store/ archive + category pages
   -------------------------------------------------------------------------- */
html[data-yz-design="harvest"] .yz-design-preset .woocommerce-products-header {
	position: relative;
	padding: clamp(20px, 3vw, 36px) clamp(18px, 3vw, 36px);
	margin-block-end: clamp(16px, 2vw, 24px);
	background: var(--yzh-cream-2);
	border-radius: var(--yzd-radius);
}

html[data-yz-design="harvest"] .yz-design-preset .woocommerce-products-header__title.page-title {
	font-family: var(--yzd-font-display);
	font-weight: 700;
	color: var(--yzd-text);
}

html[data-yz-design="harvest"] .yz-design-preset .yz-shop__sidebar,
html[data-yz-design="harvest"] .yz-design-preset .yz-shop-filters {
	background: var(--yzh-paper);
	border: 1px solid var(--yzh-line);
	border-radius: var(--yzd-card-radius);
	padding: 14px;
	box-sizing: border-box;
}

/* Toolbar + filter controls: the rounded market grammar. */
html[data-yz-design="harvest"] .yz-design-preset .yz-shop input[type="search"],
html[data-yz-design="harvest"] .yz-design-preset .yz-shop select,
html[data-yz-design="harvest"] .yz-design-preset .woocommerce-ordering select,
html[data-yz-design="harvest"] .yz-design-preset .yz-shop button {
	border-radius: var(--yzd-btn-radius);
}

html[data-yz-design="harvest"] .yz-design-preset .yz-shop input[type="search"],
html[data-yz-design="harvest"] .yz-design-preset .yz-shop select,
html[data-yz-design="harvest"] .yz-design-preset .woocommerce-ordering select,
html[data-yz-design="harvest"] .yz-design-preset .yz-shop input[type="checkbox"],
html[data-yz-design="harvest"] .yz-design-preset .yz-shop input[type="number"] {
	border-color: var(--yzh-field);
}

html[data-yz-design="harvest"] .yz-design-preset.woocommerce ul.products,
html[data-yz-design="harvest"] .yz-design-preset .woocommerce ul.products {
	gap: clamp(14px, 1.6vw, 22px);
}

html[data-yz-design="harvest"] .yz-design-preset .woocommerce-pagination .page-numbers li .page-numbers {
	border-radius: 999px;
}

html[data-yz-design="harvest"] .yz-design-preset .woocommerce-pagination .page-numbers li .page-numbers.current {
	background: var(--yzh-walnut);
	color: var(--yzd-on-dark);
}

/* --------------------------------------------------------------------------
   13. Product page
   -------------------------------------------------------------------------- */
html[data-yz-design="harvest"] .yz-design-preset.single-product .product_title {
	font-size: clamp(2rem, 3.4vw, 3rem);
	line-height: 1.02;
}

html[data-yz-design="harvest"] .yz-design-preset.single-product .summary .price {
	display: inline-flex;
	align-items: baseline;
	gap: 10px;
	padding: 8px 16px;
	border-radius: 999px;
	background: var(--yzh-cream-2);
	font-family: var(--yzh-font-label);
	font-size: 1.5rem;
	font-weight: 700;
	color: var(--yzh-paprika-deep);
}

html[data-yz-design="harvest"] .yz-design-preset.single-product .woocommerce-product-gallery__image,
html[data-yz-design="harvest"] .yz-design-preset.single-product .woocommerce-product-gallery .flex-viewport,
html[data-yz-design="harvest"] .yz-design-preset.single-product .woocommerce-product-gallery img {
	border-radius: var(--yzd-card-radius);
}

html[data-yz-design="harvest"] .yz-design-preset.single-product .flex-control-thumbs img {
	border-radius: 10px;
}

html[data-yz-design="harvest"] body.yz-design-preset .single_add_to_cart_button,
html[data-yz-design="harvest"] body.yz-design-preset .woocommerce a.button.alt,
html[data-yz-design="harvest"] body.yz-design-preset .woocommerce button.button.alt {
	background-color: var(--yzh-cardamom) !important;
	border-color: var(--yzh-cardamom) !important;
	color: var(--yzd-on-primary) !important;
	border-radius: var(--yzd-btn-radius) !important;
	font-family: var(--yzh-font-label);
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	box-shadow: 0 3px 0 var(--yzh-cardamom-deep);
}

html[data-yz-design="harvest"] body.yz-design-preset .single_add_to_cart_button:hover,
html[data-yz-design="harvest"] body.yz-design-preset .woocommerce a.button.alt:hover,
html[data-yz-design="harvest"] body.yz-design-preset .woocommerce button.button.alt:hover {
	background-color: var(--yzh-cardamom-deep) !important;
	border-color: var(--yzh-cardamom-deep) !important;
	color: var(--yzd-on-primary) !important;
}

html[data-yz-design="harvest"] .yz-design-preset.single-product .quantity .qty {
	border: 2px solid var(--yzh-field);
	border-radius: var(--yzd-btn-radius);
	background: var(--yzh-paper);
}

/* Only when the theme's accordion is NOT active (it adds .yz-accordion and hides ul.tabs); with JS on,
   the accordion is the single tab UI and keeps the theme's own hide rule. */
html[data-yz-design="harvest"] .yz-design-preset.single-product .woocommerce-tabs:not(.yz-accordion) > ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	padding: 0;
	border: 0;
}

html[data-yz-design="harvest"] .yz-design-preset.single-product .woocommerce-tabs ul.tabs li {
	margin: 0;
	border: 2px solid var(--yzh-field);
	border-radius: 999px;
	background: var(--yzh-paper);
}

html[data-yz-design="harvest"] .yz-design-preset.single-product .woocommerce-tabs ul.tabs li a {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 0 18px;
	font-family: var(--yzh-font-label);
	font-size: max(13px, 0.8125rem);
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--yzd-text-2);
}

html[data-yz-design="harvest"] .yz-design-preset.single-product .woocommerce-tabs ul.tabs li.active {
	background: var(--yzh-walnut);
	border-color: var(--yzh-walnut);
}

html[data-yz-design="harvest"] .yz-design-preset.single-product .woocommerce-tabs ul.tabs li.active a {
	color: var(--yzd-on-dark);
}

html[data-yz-design="harvest"] .yz-design-preset.single-product .woocommerce-tabs ul.tabs li::before,
html[data-yz-design="harvest"] .yz-design-preset.single-product .woocommerce-tabs ul.tabs li::after,
html[data-yz-design="harvest"] .yz-design-preset.single-product .woocommerce-tabs ul.tabs::before {
	display: none;
}

html[data-yz-design="harvest"] .yz-design-preset.single-product .related > h2,
html[data-yz-design="harvest"] .yz-design-preset.single-product .upsells > h2 {
	font-size: var(--yzd-h2);
}

/* --------------------------------------------------------------------------
   14. Cart drawer (modern-cart) — awning header, cardamom checkout
   -------------------------------------------------------------------------- */
/* The plugin's colour variables live on :root; a scoped html rule out-ranks them. */
html[data-yz-design="harvest"] {
	--moderncart-primary-color: #56662C;
	--moderncart-heading-color: #2E2016;
	--moderncart-body-color: #2E2016;
	--moderncart-background-color: #FBF4E6;
	--moderncart-header-background-color: #FBF4E6;
	--moderncart-header-font-color: #2E2016;
	--moderncart-highlight-color: #A83C1C;
	--moderncart-quantity-background-color: #F4E7CD;
	--moderncart-button-font-color: #FFF8EC;
}

html[data-yz-design="harvest"] .yz-design-preset .moderncart-empty-cart a,
html[data-yz-design="harvest"] .yz-design-preset .moderncart-slide-out-cart-empty a:not(.checkout-button) {
	color: var(--yzh-paprika-deep);
}

html[data-yz-design="harvest"] .yz-design-preset .moderncart-panel,
html[data-yz-design="harvest"] .yz-design-preset .moderncart-slide-out-cart,
html[data-yz-design="harvest"] .yz-design-preset .moderncart-slide-out-footer {
	background: var(--yzh-cream);
}

html[data-yz-design="harvest"] .yz-design-preset .moderncart-slide-out-header {
	position: relative;
	padding-block-start: calc(var(--yzh-awning) * 2 + 8px);
	background: var(--yzh-cream);
}

html[data-yz-design="harvest"] .yz-design-preset .moderncart-slide-out-header-title {
	font-weight: 700;
	font-size: 1.5rem;
}

html[data-yz-design="harvest"] .yz-design-preset .moderncart-progress-bar {
	background: var(--yzd-accent) !important;
	border-radius: 999px;
}

html[data-yz-design="harvest"] .yz-design-preset .moderncart-free-shipping-progress-bar {
	border-radius: 999px;
	background: var(--yzh-cream-2);
}

html[data-yz-design="harvest"] .yz-design-preset .moderncart-cart-item-container {
	border-block-end-color: var(--yzh-line);
}

html[data-yz-design="harvest"] body.yz-design-preset a.checkout-button,
html[data-yz-design="harvest"] body.yz-design-preset .moderncart-slide-out-footer a.checkout-button {
	background: var(--yzh-cardamom) !important;
	border-color: var(--yzh-cardamom) !important;
	color: var(--yzd-on-primary) !important;
	border-radius: var(--yzd-btn-radius) !important;
	font-family: var(--yzh-font-label);
	font-weight: 600;
	box-shadow: 0 3px 0 var(--yzh-cardamom-deep);
}

html[data-yz-design="harvest"] body.yz-design-preset a.checkout-button:hover {
	background: var(--yzh-cardamom-deep) !important;
	color: var(--yzd-on-primary) !important;
}

html[data-yz-design="harvest"] body.yz-design-preset #moderncart-floating-cart button {
	background-color: var(--yzd-primary) !important;
	color: var(--yzd-on-primary) !important;
}

html[data-yz-design="harvest"] body.yz-design-preset #moderncart-floating-cart .moderncart-floating-cart-count {
	background-color: var(--yzd-accent) !important;
	color: var(--yzd-on-accent) !important;
}

html[data-yz-design="harvest"] body.yz-design-preset .moderncart-add-to-cart {
	border-radius: var(--yzd-btn-radius) !important;
	border-color: var(--yzh-cardamom) !important;
	color: var(--yzh-cardamom-deep) !important;
}

html[data-yz-design="harvest"] body.yz-design-preset .moderncart-add-to-cart:hover {
	background: var(--yzh-cardamom) !important;
	color: var(--yzd-on-primary) !important;
}

/* --------------------------------------------------------------------------
   15. Footer (HFE #1165 — content owned by /dashboard/footer; presentation only)
   Walnut ground with a scalloped awning edge; saffron column heads; the first column (brand)
   spans the full row above the link columns.
   -------------------------------------------------------------------------- */
html[data-yz-design="harvest"] .yz-design-preset #colophon {
	position: relative;
	margin-block-start: calc(var(--yzh-awning) + 24px);
	background: var(--yzh-walnut);
}

html[data-yz-design="harvest"] .yz-design-preset #colophon::before {
	content: "";
	position: absolute;
	inset-inline: 0;
	inset-block-end: 100%;
	height: var(--yzh-awning);
	background: radial-gradient(circle at 14px 100%, var(--yzh-walnut) 13.5px, transparent 14px) 0 0 / 28px var(--yzh-awning) repeat-x;
	pointer-events: none;
}

html[data-yz-design="harvest"] .yz-design-preset #colophon .elementor-section,
html[data-yz-design="harvest"] .yz-design-preset #colophon .elementor-section > .elementor-background-overlay,
html[data-yz-design="harvest"] .yz-design-preset #colophon .e-con {
	background-color: var(--yzh-walnut) !important;
	background-image: none !important;
}

html[data-yz-design="harvest"] .yz-design-preset #colophon .elementor-section + .elementor-section {
	border-block-start: 1px solid rgba(251, 244, 230, 0.16);
}

html[data-yz-design="harvest"] .yz-design-preset .footer-width-fixer .elementor-widget-heading .elementor-heading-title {
	color: var(--yzd-accent) !important;
	font-family: var(--yzh-font-label);
	font-size: max(13px, 0.8125rem);
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

html[data-yz-design="harvest"] .yz-design-preset .footer-width-fixer .elementor-icon-list-text,
html[data-yz-design="harvest"] .yz-design-preset .footer-width-fixer .elementor-widget-text-editor,
html[data-yz-design="harvest"] .yz-design-preset .footer-width-fixer .elementor-widget-text-editor p,
html[data-yz-design="harvest"] .yz-design-preset .footer-width-fixer a,
html[data-yz-design="harvest"] .yz-design-preset .footer-width-fixer a .elementor-icon-list-text {
	color: rgba(251, 244, 230, 0.84) !important;
}

html[data-yz-design="harvest"] .yz-design-preset .footer-width-fixer a:hover,
html[data-yz-design="harvest"] .yz-design-preset .footer-width-fixer a:hover .elementor-icon-list-text,
html[data-yz-design="harvest"] .yz-design-preset .footer-width-fixer a:focus-visible,
html[data-yz-design="harvest"] .yz-design-preset .footer-width-fixer a:focus-visible .elementor-icon-list-text {
	color: var(--yzd-accent) !important;
}

html[data-yz-design="harvest"] .yz-design-preset .footer-width-fixer .elementor-widget-copyright,
html[data-yz-design="harvest"] .yz-design-preset .footer-width-fixer .elementor-widget-copyright * {
	color: rgba(251, 244, 230, 0.72) !important;
}

/* Brand column (the last one: logo/blurb) lifted across the top, the link columns in a row
   beneath it (desktop). Pure CSS order — the editor's column order is untouched. */
@media (min-width: 1025px) {
	html[data-yz-design="harvest"] .yz-design-preset #colophon .elementor-section:first-of-type > .elementor-container {
		flex-wrap: wrap;
	}

	html[data-yz-design="harvest"] .yz-design-preset #colophon .elementor-section:first-of-type > .elementor-container > .elementor-column:last-child:not(:first-child) {
		order: -1;
		width: 100%;
		padding-block-end: 18px;
		margin-block-end: 18px;
		border-block-end: 2px dotted rgba(251, 244, 230, 0.22);
	}

	html[data-yz-design="harvest"] .yz-design-preset #colophon .elementor-section:first-of-type > .elementor-container > .elementor-column:not(:last-child) {
		flex: 1 1 0;
		width: auto;
	}

	html[data-yz-design="harvest"] .yz-design-preset #colophon .elementor-section:first-of-type > .elementor-container > .elementor-column:last-child:not(:first-child) .elementor-widget-text-editor {
		max-width: 62ch;
		font-size: max(16px, 1rem);
	}
}

/* Legal links bar under the footer (yazan-core): the darker end of the walnut. */
html[data-yz-design="harvest"] .yz-design-preset .yz-legal-bar {
	background: #2A1C12;
	color: rgba(251, 244, 230, 0.8);
}

html[data-yz-design="harvest"] .yz-design-preset .yz-legal-bar a,
html[data-yz-design="harvest"] .yz-design-preset .yz-legal-bar__link {
	color: rgba(251, 244, 230, 0.84);
}

html[data-yz-design="harvest"] .yz-design-preset .yz-legal-bar a:hover {
	color: var(--yzd-accent);
}

/* --------------------------------------------------------------------------
   16. Responsive
   -------------------------------------------------------------------------- */
@media (max-width: 1024px) {
	html[data-yz-design="harvest"] .yz-design-preset .yzd-products--carousel ul.products li.product {
		flex-basis: calc((100% - 2 * var(--yzd-gap)) / 3);
	}
}

@media (max-width: 768px) {
	html[data-yz-design="harvest"] {
		--yzh-awning: 10px;
		--yzd-radius: 14px;
	}

	/* Hero: image on top, the label card overlapping its lower edge. */
	html[data-yz-design="harvest"] .yz-design-preset .yzd-hero--boxed .yzd-hero__inner {
		display: block;
		min-height: 0;
		padding: 0;
		overflow: visible;
		background: transparent;
	}

	html[data-yz-design="harvest"] .yz-design-preset .yzd-hero--boxed .yzd-hero__inner::before {
		border-start-start-radius: var(--yzd-radius);
		border-start-end-radius: var(--yzd-radius);
		overflow: hidden;
	}

	html[data-yz-design="harvest"] .yz-design-preset .yzd-hero--boxed .yzd-hero__media {
		position: relative;
		aspect-ratio: 4 / 3;
		border-radius: var(--yzd-radius);
	}

	html[data-yz-design="harvest"] .yz-design-preset .yzd-hero--boxed .yzd-hero__copy {
		max-width: none;
		margin: -56px 12px 0;
		padding: 22px 20px;
	}

	html[data-yz-design="harvest"] .yz-design-preset .yzd-hero--boxed.yzd-hero--no-image .yzd-hero__copy {
		margin-block-start: calc(var(--yzh-awning) * 2 + 12px);
	}

	html[data-yz-design="harvest"] .yz-design-preset .yzd-hero__title {
		font-size: clamp(2.1rem, 9vw, 2.6rem);
	}

	html[data-yz-design="harvest"] .yz-design-preset .yzd-hero__actions .yzd-btn {
		flex: 1 1 auto;
	}

	html[data-yz-design="harvest"] .yz-design-preset .yzd-features__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	html[data-yz-design="harvest"] .yz-design-preset .yzd-features__item {
		flex-direction: column;
		align-items: flex-start;
		gap: 8px;
	}

	html[data-yz-design="harvest"] .yz-design-preset .yzd-products--carousel ul.products li.product {
		flex-basis: 62%;
	}

	html[data-yz-design="harvest"] .yz-design-preset ul.products li.product.yz-card {
		padding: 8px 8px 10px;
	}

	html[data-yz-design="harvest"] .yz-design-preset ul.products li.product.yz-card .woocommerce-loop-product__title {
		font-size: 1.0625rem;
	}

	html[data-yz-design="harvest"] .yz-design-preset ul.products li.product.yz-card .price {
		font-size: 1.0625rem;
	}

	html[data-yz-design="harvest"] .yz-design-preset ul.products li.product.yz-card .ast-on-card-button:not(.ast-onsale-card) {
		padding: 10px 8px;
	}

	html[data-yz-design="harvest"] .yz-design-preset ul.products li.product.yz-card .ast-on-card-button:not(.ast-onsale-card) .ast-card-action-tooltip {
		font-size: max(12px, 0.75rem);
		letter-spacing: 0.04em;
	}

	html[data-yz-design="harvest"] .yz-design-preset .yzd-story__media {
		rotate: none;
	}

	html[data-yz-design="harvest"] .yz-design-preset .yzd-banner {
		min-height: 220px;
	}
}

@media (prefers-reduced-motion: reduce) {
	html[data-yz-design="harvest"] .yz-design-preset .yzd-cats--rail .yzd-cats__media,
	html[data-yz-design="harvest"] .yz-design-preset ul.products li.product.yz-card .ast-on-card-button:not(.ast-onsale-card),
	html[data-yz-design="harvest"] .yz-design-preset .yzd-btn {
		transition: none;
	}

	html[data-yz-design="harvest"] .yz-design-preset .yzd-cats--rail .yzd-cats__link:hover .yzd-cats__media,
	html[data-yz-design="harvest"] .yz-design-preset .yzd-btn:hover {
		transform: none;
	}
}

/* --------------------------------------------------------------------------
   17. Cart page + generic WooCommerce pages (titles, notices, secondary buttons)
   -------------------------------------------------------------------------- */
/* Astra (and the cart page's Elementor heading, page 39) paint page titles in a global grey; under Harvest they are ink serif (14.4:1). */
html[data-yz-design="harvest"] .yz-design-preset .entry-header .entry-title,
html[data-yz-design="harvest"] .yz-design-preset .ast-archive-title,
html[data-yz-design="harvest"] .yz-design-preset.woocommerce-cart h1,
html[data-yz-design="harvest"] .yz-design-preset.woocommerce-cart .elementor-widget-heading .elementor-heading-title,
html[data-yz-design="harvest"] .yz-design-preset.woocommerce-checkout h1,
html[data-yz-design="harvest"] .yz-design-preset.woocommerce-account h1 {
	color: var(--yzd-text);
	font-family: var(--yzd-font-display);
	font-weight: 700;
}

html[data-yz-design="harvest"] .yz-design-preset .woocommerce-info,
html[data-yz-design="harvest"] .yz-design-preset .woocommerce-message,
html[data-yz-design="harvest"] .yz-design-preset .cart-empty {
	background: var(--yzh-paper);
	color: var(--yzd-text);
	border: 1px solid var(--yzh-line);
	border-block-start: 4px solid var(--yzd-accent);
	border-radius: 12px;
}

html[data-yz-design="harvest"] .yz-design-preset .woocommerce-info::before,
html[data-yz-design="harvest"] .yz-design-preset .woocommerce-message::before {
	color: var(--yzh-paprika-deep);
}

/* Secondary WooCommerce buttons (Return to shop, Update cart, Apply coupon…): paprika, rounded,
   pressed shadow — theme sheets force ink with !important, so these answer in kind. */
html[data-yz-design="harvest"] body.yz-design-preset a.button:not(.alt):not(.checkout-button),
html[data-yz-design="harvest"] body.yz-design-preset button.button:not(.alt),
html[data-yz-design="harvest"] body.yz-design-preset input.button:not(.alt) {
	background-color: var(--yzd-primary) !important;
	border-color: var(--yzd-primary) !important;
	color: var(--yzd-on-primary) !important;
	border-radius: var(--yzd-btn-radius) !important;
	font-family: var(--yzh-font-label);
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	box-shadow: 0 3px 0 var(--yzh-primary-deep);
}

html[data-yz-design="harvest"] body.yz-design-preset a.button:not(.alt):not(.checkout-button):hover,
html[data-yz-design="harvest"] body.yz-design-preset button.button:not(.alt):hover,
html[data-yz-design="harvest"] body.yz-design-preset input.button:not(.alt):hover {
	background-color: var(--yzh-primary-deep) !important;
	border-color: var(--yzh-primary-deep) !important;
	color: var(--yzd-on-primary) !important;
}

html[data-yz-design="harvest"] body.yz-design-preset button.button:not(.alt):disabled,
html[data-yz-design="harvest"] body.yz-design-preset button.button:not(.alt)[disabled] {
	opacity: 0.6;
}

/* Cart table + totals: paper panels on the cream ground. */
html[data-yz-design="harvest"] .yz-design-preset.woocommerce-cart table.shop_table {
	background: var(--yzh-paper);
	border: 1px solid var(--yzh-line);
	border-radius: var(--yzd-card-radius);
	border-collapse: separate;
	overflow: hidden;
}


html[data-yz-design="harvest"] .yz-design-preset.woocommerce-cart table.shop_table th {
	font-family: var(--yzh-font-label);
	font-size: max(12px, 0.75rem);
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--yzd-text-2);
}

html[data-yz-design="harvest"] .yz-design-preset.woocommerce-cart table.shop_table .product-name a {
	font-family: var(--yzd-font-display);
	font-size: 1.125rem;
	font-weight: 700;
	color: var(--yzd-text);
}

html[data-yz-design="harvest"] .yz-design-preset.woocommerce-cart .product-price .amount,
html[data-yz-design="harvest"] .yz-design-preset.woocommerce-cart .product-subtotal .amount,
html[data-yz-design="harvest"] .yz-design-preset.woocommerce-cart .order-total .amount {
	font-family: var(--yzh-font-label);
	font-weight: 700;
	color: var(--yzh-paprika-deep);
}

html[data-yz-design="harvest"] .yz-design-preset.woocommerce-cart .coupon .input-text,
html[data-yz-design="harvest"] .yz-design-preset.woocommerce-cart #coupon_code {
	border: 2px solid var(--yzh-field);
	border-radius: var(--yzd-btn-radius);
	background: var(--yzh-paper);
}

/* Store-credit box (yazan-social-rewards) titles itself in the accent — saffron as text is 2.15:1. */
html[data-yz-design="harvest"] .yz-design-preset .yzrw-credit__title {
	color: var(--yzh-paprika-deep);
}

/* --------------------------------------------------------------------------
   18. UI/UX review fixes (H-I3, H-I4, H-N4, mobile body size)
   -------------------------------------------------------------------------- */
/* H-I4: the category shelf says "there is more" — the inline-end edge fades out and a visible
   field-toned scrollbar sits under the plank (the fade flips in RTL). */
html[data-yz-design="harvest"] .yz-design-preset .yzd-cats--rail .yzd-cats__list {
	-webkit-mask-image: linear-gradient(to right, #000 calc(100% - 56px), transparent);
	mask-image: linear-gradient(to right, #000 calc(100% - 56px), transparent);
	scrollbar-width: thin;
	scrollbar-color: var(--yzh-field) transparent;
	padding-inline-end: 56px;
}

html[data-yz-design="harvest"][dir="rtl"] .yz-design-preset .yzd-cats--rail .yzd-cats__list {
	-webkit-mask-image: linear-gradient(to left, #000 calc(100% - 56px), transparent);
	mask-image: linear-gradient(to left, #000 calc(100% - 56px), transparent);
}

/* H-I3: one search on archive pages — Harvest's header search is always open, so the toolbar
   copy is hidden (the results count and sorting stay). */
html[data-yz-design="harvest"] .yz-design-preset .yz-shop__search {
	display: none;
}

/* H-N4: one badge per card (the first, rarest one) so badges still single something out. */
html[data-yz-design="harvest"] .yz-design-preset .yz-badges .yz-badge ~ .yz-badge {
	display: none;
}

/* Mobile: running text at 16px. */
@media (max-width: 768px) {
	html[data-yz-design="harvest"] .yz-design-preset .yzd-features__desc,
	html[data-yz-design="harvest"] .yz-design-preset .yzd-news__text,
	html[data-yz-design="harvest"] .yz-design-preset .yzd-story__text,
	html[data-yz-design="harvest"] .yz-design-preset .yzd-hero__text,
	html[data-yz-design="harvest"] .yz-design-preset .woocommerce-product-details__short-description {
		font-size: max(16px, 1rem);
	}
}

/* Readable-size floor (12px): shop filter counts + toggle label, payment-method pills. */
html[data-yz-design="harvest"] .yz-design-preset .yz-filter-option__n,
html[data-yz-design="harvest"] .yz-design-preset .yz-shop__filter-toggle-label,
html[data-yz-design="harvest"] .yz-design-preset .yz-pay__name,
html[data-yz-design="harvest"] .yz-design-preset .yz-wish-single__label,
html[data-yz-design="harvest"] .yz-design-preset .yz-legal-bar__link,
html[data-yz-design="harvest"] .yz-design-preset .woocommerce-breadcrumb {
	font-size: max(12px, 0.75rem);
}

/* Cards never widen their grid track: the theme sets the subject line to nowrap on phones, so it is
   truncated with an ellipsis instead of pushing the column (and the page) wider. */
html[data-yz-design="harvest"] .yz-design-preset ul.products li.product.yz-card,
html[data-yz-design="harvest"] .yz-design-preset ul.products li.product.yz-card .astra-shop-summary-wrap {
	min-width: 0;
}

html[data-yz-design="harvest"] .yz-design-preset ul.products li.product.yz-card .yz-subject {
	max-width: 100%;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* The badge hangs at the image's lower start corner, clear of the wishlist heart at the top end,
   like a price tag tied to the crate. */
html[data-yz-design="harvest"] .yz-design-preset .yz-badges {
	inset-block-start: auto;
	inset-block-end: 10px;
	max-width: calc(100% - 20px);
}

html[data-yz-design="harvest"] .yz-design-preset .yz-badge {
	max-width: 100%;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	box-sizing: border-box;
}

@media (max-width: 768px) {
	html[data-yz-design="harvest"] .yz-design-preset .yz-badge {
		padding: 5px 8px;
		letter-spacing: 0.02em;
	}

	html[data-yz-design="harvest"] .yz-design-preset ul.products li.product.yz-card .yz-subject {
		letter-spacing: 0.04em;
	}
}
