/*
 * WooCommerce views on top of the tokens (DESIGN.md). Loaded after Blocksy's WooCommerce CSS.
 */

/* «Этот аромат также» under the buy button */
.dvf-formats {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: var(--space-2) var(--space-4);
	margin: var(--space-4) 0 var(--space-5);
	font: 400 var(--text-small) / 1.5 var(--font-text);
	color: var(--color-ink-2);
}
.dvf-formats__label { color: var(--color-ink-3); }
.dvf-formats__list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2) var(--space-5);
	margin: 0;
	padding: 0;
	list-style: none;
}
.dvf-formats__link {
	color: var(--color-ink);
	text-decoration: underline;
	text-decoration-color: var(--color-line-control);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.25em;
	transition: color var(--dur-2) var(--ease-out), text-decoration-color var(--dur-2) var(--ease-out);
}
.dvf-formats__link:hover { color: var(--color-accent); text-decoration-color: currentColor; }
.dvf-formats__link:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 3px; }
.dvf-formats__price, .dvf-formats__price .amount { white-space: nowrap; color: var(--color-ink-2); font-variant-numeric: lining-nums tabular-nums; }
.dvf-formats__price::before { content: "— "; color: var(--color-ink-3); }

/* Line icons from inc/cart.php */
.dvf-icon { width: 1.25rem; height: 1.25rem; flex: none; color: var(--color-ink-2); }

/* Progress to the gift and free delivery — cart page and side cart */
.dvf-perks {
	display: grid;
	gap: var(--space-2);
	margin: 0 0 var(--space-5);
	font: 400 var(--text-small) / 1.45 var(--font-text);
	color: var(--color-ink-2);
}
.dvf-perks__title { display: flex; align-items: flex-start; gap: var(--space-2); margin: 0; color: var(--color-ink); }
.dvf-perks__title .dvf-icon { color: var(--color-accent); margin-top: 0.05em; }
.dvf-perks__track { position: relative; height: 2px; background: var(--color-line); margin: var(--space-2) 0 var(--space-1); }
.dvf-perks__bar {
	position: absolute;
	inset: 0;
	background: var(--color-accent);
	transform: scaleX(var(--dvf-progress, 0));
	transform-origin: left center;
	transition: transform var(--dur-3) var(--ease-out);
}
.dvf-perks__mark {
	position: absolute;
	top: 50%;
	left: var(--dvf-mark);
	width: 8px;
	height: 8px;
	border-radius: 999px;
	background: var(--color-surface);
	box-shadow: inset 0 0 0 1px var(--color-line-control);
	transform: translate(-50%, -50%);
}
.dvf-perks__mark.is-reached { background: var(--color-accent); box-shadow: none; }
.dvf-perks__note { margin: 0; color: var(--color-ink-3); font-size: var(--text-caption); }
.dvf-perks .amount, .dvf-rate-note .amount { font-weight: 500; white-space: nowrap; }

/* Side cart: progress sits above the buttons */
.woocommerce-mini-cart__total + .dvf-perks,
.ct-cart-content .dvf-perks { padding: var(--space-4) 0 0; margin-bottom: var(--space-4); border-top: var(--hairline) solid var(--color-line); }

/* Under the cart table: branded bag, complimentary sticks */
.dvf-cart-extras { margin: var(--space-5) 0 var(--space-3); }
.dvf-bag { font-size: var(--text-body); }
.dvf-bag__free { color: var(--color-accent); font-weight: 500; }
#payment .dvf-bag { margin: var(--space-4) 0; font-size: var(--text-small); }
.dvf-compliment {
	display: flex;
	gap: var(--space-3);
	align-items: flex-start;
	margin: var(--space-3) 0 var(--space-5);
	padding: var(--space-4) var(--space-5);
	border-radius: var(--radius-2);
	background: var(--color-surface-stone);
	font: 400 var(--text-small) / 1.5 var(--font-text);
	color: var(--color-ink-2);
}
.dvf-compliment strong { color: var(--color-ink); font-weight: 600; }

/* Trust notes and help phone under the checkout buttons */
.dvf-trust {
	display: grid;
	gap: var(--space-3);
	margin: var(--space-5) 0 0;
	padding: var(--space-5) 0 0;
	border-top: var(--hairline) solid var(--color-line);
	list-style: none;
	font: 400 var(--text-caption) / 1.45 var(--font-text);
	color: var(--color-ink-3);
}
.dvf-trust li { display: grid; grid-template-columns: 1.25rem 1fr; gap: var(--space-3); align-items: start; margin: 0; }
.dvf-trust strong { display: block; color: var(--color-ink); font-size: var(--text-small); font-weight: 500; }
.dvf-help { margin-top: var(--space-5); text-align: center; font: 400 var(--text-caption) / 1.45 var(--font-text); color: var(--color-ink-3); }
.dvf-help p { margin: 0; }
.dvf-help__title { color: var(--color-ink-2); font-size: var(--text-small); }
.dvf-help__phone {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	margin: var(--space-1) 0 var(--space-2);
	color: var(--color-ink);
	font-size: 1.25rem;
	font-weight: 500;
	text-decoration: none;
	font-variant-numeric: lining-nums tabular-nums;
}
.dvf-help__phone:hover { color: var(--color-accent); }
.dvf-help__phone:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 3px; }

/* Shipping method note */
.dvf-rate-note { display: block; margin-top: var(--space-1); font: 400 var(--text-caption) / 1.5 var(--font-text); color: var(--color-ink-3); }

/* Side cart footer: checkout is the one primary action, the cart page a quiet link */
.woocommerce-mini-cart__total strong { text-transform: none; letter-spacing: 0; font-weight: 500; }
.woocommerce-mini-cart__buttons { display: grid; gap: var(--space-2); }
.woocommerce-mini-cart__buttons .dvf-mini-cart-link {
	justify-self: center;
	padding: var(--space-2);
	font: 400 var(--text-small) / 1.4 var(--font-text);
	color: var(--color-ink-2);
	text-decoration: underline;
	text-decoration-color: var(--color-line-control);
	text-underline-offset: 0.25em;
}
.woocommerce-mini-cart__buttons .dvf-mini-cart-link:hover { color: var(--color-accent); }

/* Side cart suggestion: refill of the same scent for a diffuser in the cart.
   Blocksy lays every mini-cart <li> out as a product row grid — opt out of it. */
.woocommerce-mini-cart > li.dvf-upsell {
	display: block;
	grid-template-columns: none;
	list-style: none;
	margin: var(--space-5) 0 0;
	padding: var(--space-4);
	background: var(--color-surface-stone);
	border: 0;
	border-radius: var(--radius-2);
}
.dvf-upsell__title { margin: 0 0 var(--space-3); font: 500 var(--text-small) / 1.4 var(--font-text); color: var(--color-ink); }
.dvf-upsell__item { display: grid; grid-template-columns: 3rem minmax(0, 1fr) auto; gap: var(--space-3); align-items: center; }
.dvf-upsell__item + .dvf-upsell__item { margin-top: var(--space-3); }
.woocommerce-mini-cart .dvf-upsell__item img { width: 3rem; height: 3rem; max-width: none; margin: 0; object-fit: contain; background: var(--color-surface); }
.dvf-upsell__name { font: 400 var(--text-small) / 1.35 var(--font-text); color: var(--color-ink); text-decoration: none; }
.dvf-upsell__name:hover { color: var(--color-accent); }
.dvf-upsell__price { display: block; margin-top: 2px; font-size: var(--text-caption); white-space: nowrap; }
.woocommerce-mini-cart .dvf-upsell .button {
	--theme-button-min-height: var(--control-h-s);
	min-height: var(--control-h-s);
	padding: 0 var(--space-3);
	font-size: var(--text-caption);
	white-space: nowrap;
	background: transparent;
	color: var(--color-ink);
	border: var(--hairline) solid var(--color-ink);
}
.woocommerce-mini-cart .dvf-upsell .button:hover { background: var(--color-ink); color: var(--color-surface); }

/* Product page on phones: name, price and the buy button closer to the first screen */
@media (max-width: 689.98px) {
	.single-product .ct-breadcrumbs {
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
		margin-bottom: var(--space-3);
	}
	.single-product .woocommerce-product-gallery .flexy-items .ct-media-container {
		aspect-ratio: 4 / 3;
	}
	.single-product .woocommerce-product-gallery .flexy-items .ct-media-container img {
		object-fit: contain;
	}
	.single-product .woocommerce-product-gallery .flexy-pills {
		margin-top: var(--space-2);
	}
	.single-product .woocommerce-product-gallery .flexy-pills li {
		width: 52px;
		flex: 0 0 52px;
	}
	.single-product .woocommerce-product-gallery .flexy-pills .ct-media-container {
		aspect-ratio: 1;
	}
	.single-product .product-header-block { margin-bottom: var(--space-3); }
}

/* Floating buy bar on phones: shown whenever the page's own buy button is off screen (assets/js/buy-bar.js) */
@media (max-width: 689.98px) {
	.single-product .ct-drawer-canvas[data-dvf-buy="away"],
	.single-product .ct-drawer-canvas[data-location="end"][data-dvf-buy="away"] .ct-drawer-inner {
		--floating-bar-parent-height: 70px;
	}
	.single-product .ct-drawer-canvas[data-dvf-buy="away"] .ct-floating-bar {
		display: flex;
		opacity: 1;
		transform: translateY(0);
	}
}

/* Catalog toolbar: filters (native <details>), active chips, sorting, count */
.woo-listing-top { flex-wrap: wrap; row-gap: var(--space-3); }
.dvf-filters { display: flex; flex-wrap: wrap; gap: var(--space-2); margin: 0 0 var(--space-2); flex: 1 1 100%; }
.dvf-filter__toggle { white-space: nowrap; }
@media (max-width: 689.98px) {
	.dvf-filters { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); }
	.dvf-filters::-webkit-scrollbar { display: none; }
}
.dvf-filter { position: relative; }
.dvf-filter__toggle {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	min-height: var(--control-h-s);
	padding: 0 var(--space-4);
	border: var(--hairline) solid var(--color-line-control);
	border-radius: var(--radius-1);
	font: 400 var(--text-small) / 1 var(--font-text);
	color: var(--color-ink);
	cursor: pointer;
	list-style: none;
	transition: border-color var(--dur-2) var(--ease-out);
}
.dvf-filter__toggle::-webkit-details-marker { display: none; }
.dvf-filter__toggle::after {
	content: "";
	width: 0.45em;
	height: 0.45em;
	border-right: 1.3px solid currentColor;
	border-bottom: 1.3px solid currentColor;
	transform: translateY(-25%) rotate(45deg);
	transition: transform var(--dur-2) var(--ease-out);
}
.dvf-filter[open] > .dvf-filter__toggle::after { transform: translateY(15%) rotate(225deg); }
.dvf-filter__toggle:hover, .dvf-filter[open] > .dvf-filter__toggle { border-color: var(--color-ink); }
.dvf-filter__toggle:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 3px; }
.dvf-filter__count {
	min-width: 1.25rem;
	height: 1.25rem;
	padding: 0 0.3rem;
	border-radius: 999px;
	background: var(--color-accent);
	color: var(--color-on-accent);
	font-size: var(--text-label);
	line-height: 1.25rem;
	text-align: center;
}
.dvf-filter__list {
	position: absolute;
	z-index: 20;
	top: calc(100% + var(--space-2));
	left: 0;
	min-width: 15rem;
	max-height: 60vh;
	overflow: auto;
	margin: 0;
	padding: var(--space-2);
	list-style: none;
	background: var(--color-surface);
	border: var(--hairline) solid var(--color-line);
	box-shadow: var(--shadow-float);
}
.dvf-filter__option {
	display: flex;
	justify-content: space-between;
	gap: var(--space-4);
	padding: var(--space-2) var(--space-3);
	font: 400 var(--text-small) / 1.4 var(--font-text);
	color: var(--color-ink);
	text-decoration: none;
}
.dvf-filter__option:hover { background: var(--color-surface-stone); }
.dvf-filter__option.is-on { background: var(--color-accent-tint); color: var(--color-accent); font-weight: 500; }
.dvf-filter__option:focus-visible { outline: 2px solid var(--color-focus); outline-offset: -2px; }
.dvf-filter__n { color: var(--color-ink-3); font-variant-numeric: tabular-nums; }

.dvf-active-filters { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); margin: 0 0 var(--space-2); flex: 1 1 100%; }
.dvf-chip {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	min-height: 2rem;
	padding: 0 var(--space-3);
	border-radius: var(--radius-1);
	background: var(--color-ink);
	color: var(--color-surface);
	font: 400 var(--text-caption) / 1 var(--font-text);
	text-decoration: none;
}
.dvf-chip:hover { background: var(--color-accent); color: var(--color-on-accent); }
.dvf-chip--clear { background: transparent; color: var(--color-ink-2); text-decoration: underline; text-underline-offset: 0.25em; }
.dvf-chip--clear:hover { background: transparent; color: var(--color-accent); }
.woocommerce-result-count { font: 400 var(--text-small) / 1.4 var(--font-text); color: var(--color-ink-3); text-transform: none; letter-spacing: 0; }

/* Product card: format and volumes under the name */
.dvf-card-meta { margin: var(--space-1) 0 0; font: 400 var(--text-caption) / 1.4 var(--font-text); color: var(--color-ink-3); }

/* Category banner (Stackable block in a Blocksy content block): shorter on phones.
   Stackable writes min-height: 400px !important inline, so only !important can override it. */
@media (max-width: 689.98px) {
	body.tax-product_cat [data-block^="hook:"] .wp-block-stackable-columns.alignfull,
	body.post-type-archive-product [data-block^="hook:"] .wp-block-stackable-columns.alignfull {
		min-height: 12.5rem !important;
		padding-block: var(--space-6) !important;
	}
	/* Stackable pushes the title column down (bottom: -100px !important) for the desktop height — undo it here */
	body.tax-product_cat [data-block^="hook:"] .wp-block-stackable-columns.alignfull .stk-block-column,
	body.post-type-archive-product [data-block^="hook:"] .wp-block-stackable-columns.alignfull .stk-block-column {
		bottom: auto !important;
	}
	body.tax-product_cat [data-block^="hook:"] .wp-block-stackable-columns.alignfull .stk-row,
	body.post-type-archive-product [data-block^="hook:"] .wp-block-stackable-columns.alignfull .stk-row {
		align-items: center !important;
	}
	.dvf-filter__list { position: fixed; left: var(--space-4); right: var(--space-4); top: auto; bottom: var(--space-4); min-width: 0; }
}

/* Checkout errors: one calm summary on a tint + the message under each field (DESIGN.md → Inputs) */
.woocommerce-NoticeGroup-checkout .woocommerce-error,
.woocommerce-checkout .woocommerce-error {
	margin: 0 0 var(--space-5);
	padding: var(--space-4) var(--space-5);
	border: 0;
	border-radius: var(--radius-2);
	background: var(--color-error-tint);
	color: var(--color-ink);
	font: 400 var(--text-small) / 1.5 var(--font-text);
	list-style: none;
}
.woocommerce-NoticeGroup-checkout .woocommerce-error,
.woocommerce-checkout .woocommerce-error { --theme-text-color: var(--color-ink); --theme-link-initial-color: var(--color-ink); }
.woocommerce-checkout .woocommerce-error li,
.woocommerce-checkout .woocommerce-error li strong { margin: 0; padding: 0; color: var(--color-ink); }
.woocommerce-checkout .woocommerce-error li + li { margin-top: var(--space-1); }
.woocommerce-checkout .woocommerce-error::before { display: none; }
.woocommerce-checkout .woocommerce-invalid input.input-text,
.woocommerce-checkout .woocommerce-invalid select,
.woocommerce-checkout .woocommerce-invalid textarea { border-color: var(--color-error) !important; }
.checkout-inline-error-message {
	display: flex;
	gap: var(--space-2);
	margin: var(--space-2) 0 0;
	color: var(--color-error);
	font: 400 var(--text-small) / 1.45 var(--font-text);
}
.checkout-inline-error-message::before {
	content: "";
	flex: none;
	width: 1rem;
	height: 1rem;
	margin-top: 0.15em;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7.5v5.5'/%3E%3Ccircle cx='12' cy='16.3' r='.6' fill='black'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7.5v5.5'/%3E%3Ccircle cx='12' cy='16.3' r='.6' fill='black'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Under the order total: delivery terms */
.dvf-terms-row td { padding-top: 0 !important; border: 0 !important; text-align: right; }
.dvf-terms-link {
	font: 400 var(--text-caption) / 1.4 var(--font-text);
	color: var(--color-ink-2);
	text-decoration: underline;
	text-decoration-color: var(--color-line-control);
	text-underline-offset: 0.25em;
}
.dvf-terms-link:hover { color: var(--color-accent); }

/* Recovery block: 404, nothing found, empty cart */
.dvf-404 { max-width: var(--container); margin: 0 auto; padding: var(--space-8) var(--gutter) var(--space-9); text-align: center; }
.dvf-404__title { margin: 0 0 var(--space-3); font: 400 var(--text-h1) / var(--leading-display) var(--font-display); color: var(--color-ink); }
.dvf-404__text { max-width: 36rem; margin: 0 auto var(--space-6); font: 400 var(--text-lead) / 1.5 var(--font-text); color: var(--color-ink-2); }
.dvf-recovery { margin: var(--space-6) auto 0; text-align: center; }
.dvf-recovery__title { margin: 0 0 var(--space-2); font: 400 var(--text-h2) / var(--leading-heading) var(--font-display); color: var(--color-ink); }
.dvf-recovery__text { max-width: 36rem; margin: 0 auto var(--space-5); font: 400 var(--text-body) / 1.5 var(--font-text); color: var(--color-ink-2); }
.dvf-recovery__search { max-width: 30rem; margin: 0 auto var(--space-5); }
.dvf-recovery__cats { margin-bottom: var(--space-8); }
.dvf-recovery__cats ul { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-2); margin: 0; padding: 0; list-style: none; }
.dvf-recovery__cats a {
	display: inline-flex;
	align-items: center;
	min-height: var(--control-h-s);
	padding: 0 var(--space-4);
	border: var(--hairline) solid var(--color-line-control);
	border-radius: var(--radius-1);
	font: 400 var(--text-small) / 1 var(--font-text);
	color: var(--color-ink);
	text-decoration: none;
	transition: border-color var(--dur-2) var(--ease-out), color var(--dur-2) var(--ease-out);
}
.dvf-recovery__cats a:hover { border-color: var(--color-ink); color: var(--color-accent); }
.dvf-recovery__subtitle { margin: 0 0 var(--space-5); font: 400 var(--text-h3) / var(--leading-heading) var(--font-display); color: var(--color-ink); }
.dvf-recovery .woocommerce { text-align: left; }
.cart-empty.woocommerce-info { display: none; }
.woocommerce-cart .return-to-shop { display: none; }

/* Reviews section on the product page (own markup — Blocksy's advanced reviews layout expects its form) */
.dvf-reviews { max-width: var(--container); margin: var(--section) auto 0; padding: 0 var(--gutter); }
.dvf-reviews__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-2) var(--space-5); margin-bottom: var(--space-6); }
.dvf-reviews__title { margin: 0; font: 400 var(--text-h2) / var(--leading-heading) var(--font-display); color: var(--color-ink); }
.dvf-reviews__summary { display: inline-flex; align-items: center; gap: var(--space-3); margin: 0; font: 400 var(--text-small) / 1 var(--font-text); color: var(--color-ink-2); }
.dvf-reviews__list { display: grid; gap: var(--space-6); margin: 0; padding: 0; list-style: none; max-width: 48rem; }
.dvf-review { display: grid; gap: var(--space-3); padding-top: var(--space-5); border-top: var(--hairline) solid var(--color-line); }
.dvf-review__text p { margin: 0; font: 400 var(--text-body) / var(--leading-body) var(--font-text); color: var(--color-ink); max-width: var(--measure); }
.dvf-review__meta { margin: 0; font: 400 var(--text-caption) / 1.4 var(--font-text); color: var(--color-ink-3); }
.dvf-review__author { color: var(--color-ink); font-weight: 500; }
.dvf-stars { display: inline-flex; gap: 2px; }
.dvf-stars__star svg { width: 1rem; height: 1rem; fill: none; stroke: var(--color-accent); stroke-width: 1.4; stroke-linejoin: round; }
.dvf-stars__star.is-on svg { fill: var(--color-accent); }
.product-header-rating { display: inline-flex; align-items: center; gap: var(--space-2); margin-top: var(--space-3); font: 400 var(--text-small) / 1 var(--font-text); color: var(--color-ink-2); text-decoration: none; }
.product-header-rating:hover span { color: var(--color-accent); text-decoration: underline; text-underline-offset: 0.25em; }
.product-header-rating:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 3px; }
/* Rating stars in the review form and WooCommerce ratings: brand accent instead of Blocksy orange */
.comment-form-rating .stars a, .comment-form-rating .stars a::before, .star-rating, .star-rating span::before { color: var(--color-accent); }
/* Hidden «Оценка 5 из 5» text inside the stars: clipped, but keep it readable for contrast checks */
.star-rating > span { color: var(--color-ink-2); }

/* Home product rails (inc/product-rails.php): native horizontal scroll with snap */
.dvf-rail { position: relative; }
.dvf-rail ul.products {
	display: grid !important;
	grid-auto-flow: column;
	grid-template-columns: none !important;
	grid-auto-columns: calc((100% - 3 * var(--space-5)) / 4);
	gap: var(--space-5);
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	margin: 0;
	padding: 0 0 var(--space-2);
}
.dvf-rail ul.products::-webkit-scrollbar { display: none; }
.dvf-rail ul.products > li.product { scroll-snap-align: start; width: auto !important; margin: 0 !important; }
.dvf-rail__nav {
	position: absolute;
	z-index: 2;
	top: 30%;
	display: grid;
	place-items: center;
	width: var(--control-h);
	height: var(--control-h);
	padding: 0;
	border: var(--hairline) solid var(--color-line);
	border-radius: 999px;
	background: var(--color-surface);
	color: var(--color-ink);
	box-shadow: var(--shadow-float);
	cursor: pointer;
	transition: border-color var(--dur-2) var(--ease-out);
}
.dvf-rail__nav[hidden] { display: none; }
.dvf-rail__nav:hover { border-color: var(--color-ink); }
.dvf-rail__nav:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 3px; }
.dvf-rail__nav svg { width: 1.25rem; height: 1.25rem; fill: none; stroke: currentColor; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.dvf-rail__nav--prev { left: calc(var(--space-4) * -1); }
.dvf-rail__nav--next { right: calc(var(--space-4) * -1); }
@media (max-width: 999.98px) {
	.dvf-rail ul.products { grid-auto-columns: calc((100% - var(--space-4)) / 2.3); gap: var(--space-4); }
}
@media (max-width: 689.98px) {
	.dvf-rail ul.products { grid-auto-columns: 62%; margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); scroll-padding-inline: var(--gutter); }
	.dvf-rail__nav { display: none; }
}
@media (prefers-reduced-motion: reduce) {
	.dvf-rail ul.products { scroll-behavior: auto; }
}

/* Shop page heading (inc/seo.php) */
.dvf-shop-title { flex: 1 1 100%; margin: 0 0 var(--space-5); font: 400 var(--text-h1) / var(--leading-display) var(--font-display); color: var(--color-ink); }

/* Product facts (inc/geo.php): label / value rows on hairlines, two newspaper columns on wide screens (reading order stays top to bottom) */
.dvf-facts { margin-top: var(--section); margin-bottom: var(--section); }
.dvf-facts__title { margin: 0 0 var(--space-5); font: 400 var(--text-h2) / var(--leading-heading) var(--font-display); color: var(--color-ink); }
.dvf-facts__list { margin: 0; column-gap: var(--space-8); }
.dvf-facts__row { break-inside: avoid; display: grid; grid-template-columns: 9.5rem minmax(0, 1fr); gap: var(--space-4); padding: var(--space-3) 0; border-top: var(--hairline) solid var(--color-line); }
.dvf-facts__row dt { font: 400 var(--text-small) / var(--leading-body) var(--font-text); color: var(--color-ink-2); }
.dvf-facts__row dd { margin: 0; font: 400 var(--text-body) / var(--leading-body) var(--font-text); color: var(--color-ink); }
.dvf-facts__row dd a { color: inherit; text-decoration: underline; text-decoration-color: var(--color-line-control); text-underline-offset: 0.2em; }
.dvf-facts__row dd a:hover { text-decoration-color: currentColor; }
.dvf-facts__areas { display: grid; gap: var(--space-1); margin: 0; padding: 0; list-style: none; }
.dvf-facts__areas span { display: inline-block; min-width: 5.5rem; font-variant-numeric: tabular-nums; color: var(--color-ink-2); }
.dvf-facts__note { margin: var(--space-2) 0 0; font: 400 var(--text-caption) / 1.45 var(--font-text); color: var(--color-ink-3); max-width: var(--measure); }
@media (min-width: 1000px) {
	.dvf-facts__list { columns: 2; }
}
@media (max-width: 480px) {
	.dvf-facts__row { grid-template-columns: minmax(0, 1fr); gap: var(--space-1); }
}

/* Olfactory pyramid: tier names above the notes */
ul.olfactory-pyramid .dvf-tier { display: block; font: 500 var(--text-label) / 1.4 var(--font-text); letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--color-ink-3); }

/* Product FAQ (inc/geo.php) */
.dvf-faq { margin-top: var(--section); }
.dvf-faq__title { margin: 0 0 var(--space-5); font: 400 var(--text-h2) / var(--leading-heading) var(--font-display); color: var(--color-ink); }
.dvf-faq__item { max-width: 48rem; border-top: var(--hairline) solid var(--color-line); }
.dvf-faq__item:last-of-type { border-bottom: var(--hairline) solid var(--color-line); }
.dvf-faq__item summary { display: flex; justify-content: space-between; align-items: center; gap: var(--space-4); padding: var(--space-4) 0; font: 400 var(--text-body) / var(--leading-tight) var(--font-text); color: var(--color-ink); cursor: pointer; list-style: none; }
.dvf-faq__item summary::-webkit-details-marker { display: none; }
.dvf-faq__item summary::after { content: ""; flex: none; width: 0.6rem; height: 0.6rem; border-right: var(--hairline) solid currentColor; border-bottom: var(--hairline) solid currentColor; transform: translateY(-25%) rotate(45deg); transition: transform var(--dur-2) var(--ease-out); }
.dvf-faq__item[open] summary::after { transform: translateY(25%) rotate(-135deg); }
.dvf-faq__item summary:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
.dvf-faq__answer { padding: 0 0 var(--space-4); font: 400 var(--text-body) / var(--leading-body) var(--font-text); color: var(--color-ink-2); max-width: var(--measure); }
.dvf-faq__answer p { margin: 0 0 var(--space-2); }
.dvf-faq__more { margin: var(--space-5) 0 0; font: 400 var(--text-small) / 1.4 var(--font-text); }
.dvf-faq__more a { color: var(--color-ink); text-underline-offset: 0.2em; }
@media (prefers-reduced-motion: reduce) { .dvf-faq__item summary::after { transition: none; } }

/* Category facts line (inc/geo.php) */

/* Second photo on hover (assets/js/card-swap.js): until it has loaded, hovering keeps the main photo */
@media (hover: hover) {
	[data-hover=swap] .has-hover-effect:hover .ct-swap:not(.dvf-swap-ready) { opacity: 0; }
	[data-hover=swap] .has-hover-effect:hover .ct-swap:not(.dvf-swap-ready) + img { opacity: 1; }
}
