/* Compound V shop surfaces: only what blocks cannot say. The templates (tools/build-woo-specs.py) set the page frame,
   headings, toolbar, card body and type, empty states and related products as block attributes and variations.
   Here: the category header printed by inc/woo.php, sorting, the sidebar, WooCommerce's filters, the product card's
   frame, link and hover, the grid and pagination. Token variables only. */

/* breadcrumbs: type and colour are in theme.json; the links are 44px targets */
.woocommerce-breadcrumb a { display: inline-flex; align-items: center; min-height: var(--wp--custom--control--min); }

/* ---------- category header ---------- */
/* category header (kit: category-header). Desktop: wide scene as a cover with the cream scrim on the left, copy bottom-left.
   Phones: the tall scene in a photo window cropped around the pets (no scrim over faces), copy below on the soft ground. */
.cv-cathead { position: relative; display: grid; align-content: start; gap: var(--wp--preset--spacing--30); margin-block: var(--wp--preset--spacing--30) var(--wp--preset--spacing--50); padding: 0 0 var(--wp--preset--spacing--40); border-radius: var(--wp--custom--radius--card); overflow: clip; isolation: isolate; background: var(--wp--preset--color--soft); color: var(--wp--preset--color--contrast); }
.cv-cathead > * { margin: 0 !important; max-width: var(--wp--custom--layout--content); }
.cv-cathead > :not(.cv-cathead__media) { padding-inline: var(--wp--preset--spacing--40); }
.cv-cathead__media { position: relative; display: block; aspect-ratio: var(--wp--custom--image--split); max-width: none; margin-bottom: var(--wp--preset--spacing--20) !important; }
.cv-cathead img.cv-cathead__img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: 50% 80%; border-radius: 0; }
.cv-cathead__eyebrow { display: inline-flex; align-items: center; gap: var(--wp--preset--spacing--20); font-size: var(--wp--preset--font-size--small); font-weight: var(--wp--custom--font-weight--bold); letter-spacing: var(--wp--custom--letter-spacing--eyebrow); text-transform: uppercase; }
.cv-cathead__eyebrow::before { content: ""; width: var(--wp--custom--icon--xs); height: var(--wp--custom--icon--xs); flex: none; border-radius: var(--wp--custom--radius--badge); background: var(--wp--preset--color--signature); transform: scale(0.5); }
.cv-cathead .wp-block-query-title { font-size: var(--wp--preset--font-size--xxx-large); font-weight: var(--wp--custom--font-weight--black); letter-spacing: var(--wp--custom--letter-spacing--heading); line-height: var(--wp--custom--line-height--heading); }
.cv-cathead__word { position: relative; display: inline-block; z-index: 0; }
.cv-cathead__word::after { content: ""; position: absolute; left: 2%; right: 0; bottom: 0.04em; height: 0.14em; border-radius: var(--wp--custom--radius--badge); background: var(--wp--preset--color--signature-2); z-index: -1; transform: rotate(-1.3deg); }
.cv-cathead .wp-block-term-description, .cv-cathead .term-description, .cv-cathead__lead { font-size: var(--wp--preset--font-size--large); line-height: var(--wp--custom--line-height--body); color: var(--wp--preset--color--accent-4); font-weight: var(--wp--custom--font-weight--medium); }
.cv-cathead .term-description p, .cv-cathead .wp-block-term-description p { margin: 0; }
.cv-cathead__links ul { display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--20); margin: var(--wp--preset--spacing--20) 0 0; padding: 0; list-style: none; }
.cv-cathead__links a { display: inline-flex; align-items: center; min-height: var(--wp--custom--control--min); padding: 0 var(--wp--preset--spacing--40); border: var(--wp--custom--border--hairline) solid var(--wp--preset--color--border-strong); border-radius: var(--wp--custom--radius--chip); background: var(--wp--preset--color--surface); color: var(--wp--preset--color--contrast); font-size: var(--wp--preset--font-size--small); font-weight: var(--wp--custom--font-weight--bold); text-decoration: none; transition: background var(--wp--custom--transition--fast), border-color var(--wp--custom--transition--fast); }
.cv-cathead__links a:hover { background: var(--wp--preset--color--accent-5); border-color: var(--wp--preset--color--contrast); }
.cv-cathead__links a[aria-current="page"] { background: var(--wp--preset--color--contrast); border-color: var(--wp--preset--color--contrast); color: var(--wp--preset--color--on-contrast); }
.cv-cathead__links a:focus-visible { outline: var(--wp--custom--border--focus) solid var(--wp--preset--color--focus); outline-offset: var(--wp--custom--border--focus-offset); }
@media (min-width: 782px) {
	.cv-cathead { align-content: end; min-height: var(--wp--custom--layout--cathead-min); padding: var(--wp--preset--spacing--60); }
	.cv-cathead > :not(.cv-cathead__media) { padding-inline: 0; }
	.cv-cathead__media { position: absolute; inset: 0; aspect-ratio: auto; margin: 0 !important; z-index: -2; }
	.cv-cathead img.cv-cathead__img { object-position: 50% 40%; }
	.cv-cathead::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--wp--custom--scrim--hero-start); }
	.cv-cathead > :not(.cv-cathead__media) { max-width: var(--wp--custom--layout--hero-copy); }
}

/* ---------- toolbar ---------- */
.cv-toolbar .woocommerce-ordering, .cv-toolbar .woocommerce-result-count { margin: 0; }
.cv-toolbar select, .cv-toolbar .woocommerce-ordering select, .woocommerce-ordering select, .wc-block-catalog-sorting select {
	appearance: none; -webkit-appearance: none; min-height: var(--wp--custom--control--min) !important; padding: 0 var(--wp--preset--spacing--60) 0 var(--wp--preset--spacing--40) !important; border-radius: var(--wp--custom--radius--button) !important; background-color: var(--wp--preset--color--surface) !important; font-size: var(--wp--preset--font-size--small) !important;
	border: var(--wp--custom--border--hairline) solid var(--wp--preset--color--border-strong); border-radius: var(--wp--custom--radius--button); background-color: var(--wp--preset--color--surface); color: var(--wp--preset--color--contrast); font: inherit; font-size: var(--wp--preset--font-size--small); font-weight: var(--wp--custom--font-weight--semibold);
	background-image: none;
}
/* chevron: the collection's caret-down as a mask on the wrapper (a select cannot hold a pseudo-element) */
:is(.woocommerce-ordering, .wc-block-catalog-sorting) { position: relative; }
:is(.woocommerce-ordering, .wc-block-catalog-sorting)::after { content: ""; position: absolute; right: var(--wp--preset--spacing--40); top: 0; bottom: 0; margin: auto; width: var(--wp--custom--icon--xs); height: var(--wp--custom--icon--xs); background: var(--wp--preset--color--contrast); -webkit-mask: var(--wp--custom--icon-url--caret-down) center / contain no-repeat; mask: var(--wp--custom--icon-url--caret-down) center / contain no-repeat; pointer-events: none; }
.cv-toolbar select:focus-visible { outline: var(--wp--custom--border--focus) solid var(--wp--preset--color--focus); outline-offset: var(--wp--custom--border--focus-offset); }

/* ---------- layout: sidebar from 1024px, drawer below ---------- */
.cv-shop { align-items: flex-start; }
.cv-shop > .wp-block-column { min-width: 0; }
/* the sidebar width is a token, which a Column's width attribute cannot hold: size it here (core's column rules are 0,3,0) */
@media (min-width: 601px) { .cv-shop.wp-block-columns { flex-wrap: nowrap !important; } .wp-block-columns.cv-shop > .cv-shop__filters { flex: 0 0 calc(var(--wp--custom--layout--sidebar) - var(--wp--preset--spacing--50)); } .wp-block-columns.cv-shop > .cv-shop__results { flex: 1 1 0; min-width: 0; } .cv-shop__results .wc-block-product-template { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (min-width: 1024px) { .wp-block-columns.cv-shop > .cv-shop__filters { flex-basis: var(--wp--custom--layout--sidebar); position: sticky; top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--wp--custom--layout--header-height) + var(--wp--preset--spacing--40)); } }

/* ---------- filters (kit: cv-filters) ---------- */
/* Sidebar panel from 601px: one card, eyebrow headings, sections spaced by gap. On phones the drawer dialog is the card. */
.wp-block-woocommerce-product-filters { font-size: var(--wp--preset--font-size--medium); color: var(--wp--preset--color--contrast); }
@media (min-width: 601px) {
	.cv-shop__filters .wc-block-product-filters__overlay-content { display: grid; gap: var(--wp--preset--spacing--50); padding: var(--wp--preset--spacing--40); border-radius: var(--wp--custom--radius--card); background: var(--wp--preset--color--surface); border: var(--wp--custom--border--hairline) solid var(--wp--preset--color--accent-6); box-shadow: var(--wp--preset--shadow--sm); }
}
.wc-block-product-filters__overlay-content > * { margin: 0 !important; }
.wc-block-product-filters__overlay-content > .wc-block-product-filter--hidden { display: none; }
.wp-block-woocommerce-product-filters h3.wp-block-heading { margin: 0 0 var(--wp--preset--spacing--20); font-size: var(--wp--preset--font-size--small); font-weight: var(--wp--custom--font-weight--bold); letter-spacing: var(--wp--custom--letter-spacing--eyebrow); text-transform: uppercase; color: var(--wp--preset--color--contrast); }
.wp-block-woocommerce-product-filters .wp-block-group:has(> .wp-block-heading) { margin: 0; }

/* checkbox list: 24px box, ink fill and cream tick when checked, count right-aligned without brackets */
.wc-block-product-filter-checkbox-list__items { display: grid; gap: 0; }
.wc-block-product-filter-checkbox-list__item { margin: 0; }
.wc-block-product-filter-checkbox-list__label { display: flex; align-items: center; gap: var(--wp--preset--spacing--30); min-height: var(--wp--custom--control--min); width: 100%; cursor: pointer; }
.wc-block-product-filter-checkbox-list__input-wrapper { position: relative; display: inline-grid; place-items: center; flex: none; }
.wc-block-product-filter-checkbox-list input[type="checkbox"].wc-block-product-filter-checkbox-list__input { appearance: none; -webkit-appearance: none; display: block; width: var(--wp--custom--icon--md); height: var(--wp--custom--icon--md); margin: 0; border: var(--wp--custom--border--strong) solid var(--wp--preset--color--border-strong); border-radius: calc(var(--wp--custom--radius--input) / 2); background: var(--wp--preset--color--surface); cursor: pointer; transition: background var(--wp--custom--transition--fast), border-color var(--wp--custom--transition--fast); }
.wc-block-product-filter-checkbox-list input[type="checkbox"].wc-block-product-filter-checkbox-list__input::after { content: none; }
.wc-block-product-filter-checkbox-list__label:hover input[type="checkbox"].wc-block-product-filter-checkbox-list__input:not(:disabled) { border-color: var(--wp--preset--color--contrast); }
.wc-block-product-filter-checkbox-list input[type="checkbox"].wc-block-product-filter-checkbox-list__input:checked { background: var(--wp--preset--color--contrast); border-color: var(--wp--preset--color--contrast); }
.wc-block-product-filter-checkbox-list .wc-block-product-filter-checkbox-list__input:checked + .wc-block-product-filter-checkbox-list__mark { display: block !important; position: absolute; width: var(--wp--custom--icon--xs); height: var(--wp--custom--icon--xs); color: var(--wp--preset--color--on-accent); pointer-events: none; }
.wc-block-product-filter-checkbox-list input[type="checkbox"].wc-block-product-filter-checkbox-list__input:focus-visible { outline: var(--wp--custom--border--focus) solid var(--wp--preset--color--focus); outline-offset: var(--wp--custom--border--focus-offset); }
.wc-block-product-filter-checkbox-list input[type="checkbox"].wc-block-product-filter-checkbox-list__input:disabled { background: var(--wp--preset--color--accent-6); border-color: var(--wp--preset--color--accent-6); cursor: not-allowed; }
.wc-block-product-filter-checkbox-list__text-wrapper { display: flex; flex: 1; align-items: center; justify-content: space-between; gap: var(--wp--preset--spacing--30); }
.wc-block-product-filter-checkbox-list__item:has(input:checked) .wc-block-product-filter-checkbox-list__text { font-weight: var(--wp--custom--font-weight--bold); }
.wc-block-product-filter-checkbox-list__count { font-size: 0; }
.wc-block-product-filter-checkbox-list__count > span { display: inline-grid; place-items: center; min-width: var(--wp--custom--icon--md); padding: 0 var(--wp--preset--spacing--20); border-radius: var(--wp--custom--radius--badge); background: var(--wp--preset--color--accent-5); color: var(--wp--preset--color--accent-4); font-size: var(--wp--preset--font-size--x-small); font-weight: var(--wp--custom--font-weight--bold); min-height: var(--wp--custom--icon--md); box-sizing: border-box; }
.wc-block-product-filter-checkbox-list__item:has(input:checked) .wc-block-product-filter-checkbox-list__count > span { background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--on-contrast); }
.wc-block-product-filter-checkbox-list__item:has(input:disabled) .wc-block-product-filter-checkbox-list__label { cursor: not-allowed; }
.wc-block-product-filter-checkbox-list__item:has(input:disabled) .wc-block-product-filter-checkbox-list__text { color: var(--wp--preset--color--accent-4); }
.wc-block-product-filter-checkbox-list__item:has(input:disabled) .wc-block-product-filter-checkbox-list__count > span { background: transparent; }

/* option chips (kit: cv-chip): pill, strong border, ink when selected, struck and grey when unavailable */
.wc-block-product-filter-chips__items { display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--20); }
.wc-block-product-filter-chips .wc-block-product-filter-chips__item { display: inline-flex; align-items: center; justify-content: center; gap: var(--wp--preset--spacing--20); min-height: var(--wp--custom--control--min); min-width: var(--wp--custom--control--min); margin: 0; padding: 0 var(--wp--preset--spacing--40); border: var(--wp--custom--border--hairline) solid var(--wp--preset--color--border-strong); border-radius: var(--wp--custom--radius--chip); background: var(--wp--preset--color--surface); color: var(--wp--preset--color--contrast); font: inherit; font-size: var(--wp--preset--font-size--small); font-weight: var(--wp--custom--font-weight--bold); cursor: pointer; transition: background var(--wp--custom--transition--fast), color var(--wp--custom--transition--fast), border-color var(--wp--custom--transition--fast); }
.wc-block-product-filter-chips .wc-block-product-filter-chips__item:hover { background: var(--wp--preset--color--accent-5); }
.wc-block-product-filter-chips .wc-block-product-filter-chips__item[aria-checked="true"] { background: var(--wp--preset--color--contrast); border-color: var(--wp--preset--color--contrast); color: var(--wp--preset--color--on-contrast); }
.wc-block-product-filter-chips .wc-block-product-filter-chips__item:is([disabled], [aria-disabled="true"]) { background: var(--wp--preset--color--accent-6); border-color: var(--wp--preset--color--accent-6); color: var(--wp--preset--color--accent-4); text-decoration: line-through; cursor: not-allowed; }
.wc-block-product-filter-chips .wc-block-product-filter-chips__item:focus-visible { outline: var(--wp--custom--border--focus) solid var(--wp--preset--color--focus); outline-offset: var(--wp--custom--border--focus-offset); }

/* active filters (kit: filter chip): accent-2 pill with a round close button, then the clear button */
.wp-block-woocommerce-product-filter-active { display: grid; gap: var(--wp--preset--spacing--30); }
.wp-block-woocommerce-product-filter-active::before { content: ""; display: none; }
.wc-block-product-filter-removable-chips__items { display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--20); margin: 0; padding: 0; list-style: none; }
.wc-block-product-filter-removable-chips .wc-block-product-filter-removable-chips__item { display: inline-flex; align-items: center; gap: var(--wp--preset--spacing--20); min-height: var(--wp--custom--control--min); margin: 0; padding: 0 var(--wp--preset--spacing--20) 0 var(--wp--preset--spacing--40); border: var(--wp--custom--border--hairline) solid var(--wp--preset--color--accent-2); border-radius: var(--wp--custom--radius--chip); background: var(--wp--preset--color--accent-2); color: var(--wp--preset--color--contrast); font-size: var(--wp--preset--font-size--small); font-weight: var(--wp--custom--font-weight--bold); }
.wc-block-product-filter-removable-chips__label { white-space: nowrap; }
.wc-block-product-filter-removable-chips .wc-block-product-filter-removable-chips__remove { display: inline-grid; place-items: center; width: var(--wp--custom--icon--lg); height: var(--wp--custom--icon--lg); margin: 0; padding: 0; border: 0; border-radius: var(--wp--custom--radius--badge); background: transparent; color: var(--wp--preset--color--contrast); cursor: pointer; }
.wc-block-product-filter-removable-chips .wc-block-product-filter-removable-chips__remove:hover { background: var(--wp--preset--color--surface); }
.wc-block-product-filter-removable-chips .wc-block-product-filter-removable-chips__remove:focus-visible { outline: var(--wp--custom--border--focus) solid var(--wp--preset--color--focus); outline-offset: calc(-1 * var(--wp--custom--border--focus)); }
.wc-block-product-filter-removable-chips__remove-icon { width: var(--wp--custom--icon--sm); height: var(--wp--custom--icon--sm); fill: currentColor; }
.wp-block-woocommerce-product-filter-clear-button .wp-block-buttons { margin: 0; }
.wp-block-woocommerce-product-filter-clear-button .wp-block-button__link { min-height: var(--wp--custom--control--button-height-small); padding: 0 var(--wp--custom--control--padding-x-small); border: var(--wp--custom--border--hairline) solid var(--wp--preset--color--border-strong); border-radius: var(--wp--custom--radius--button); background: var(--wp--preset--color--surface); color: var(--wp--preset--color--contrast); box-shadow: none; font-size: var(--wp--preset--font-size--small); font-weight: var(--wp--custom--font-weight--bold); }
.wp-block-woocommerce-product-filter-clear-button .wp-block-button__link:hover { background: var(--wp--preset--color--accent-5); }

/* price (kit: cv-range): ink fill on a pill track, cream thumbs with an ink ring, two fields */
.wc-block-product-filter-price-slider__content { display: grid; grid-template-columns: 1fr 1fr; gap: var(--wp--preset--spacing--30); }
.wc-block-product-filter-price-slider__range { grid-column: 1 / -1; margin: var(--wp--preset--spacing--20) calc(var(--wp--custom--icon--md) / 2); }
.wc-block-product-filter-price-slider__left, .wc-block-product-filter-price-slider__right { width: 100%; min-width: 0; }
.wc-block-product-filter-price-slider__content input[type="text"] { width: 100%; max-width: none; box-sizing: border-box; text-align: left; }
.wc-block-product-filter-price-slider__range .range-bar { height: var(--wp--preset--spacing--20); border-radius: var(--wp--custom--radius--badge); background: var(--wp--preset--color--accent-6); }
.wc-block-product-filter-price-slider__range .range-bar::before, .wc-block-product-filter-price-slider__range .range-bar-fill { background: var(--wp--preset--color--contrast); border-radius: var(--wp--custom--radius--badge); }
.wc-block-product-filter-price-slider__range input[type="range"]::-webkit-slider-thumb { background: var(--wp--preset--color--surface); border: var(--wp--custom--border--strong) solid var(--wp--preset--color--contrast); width: var(--wp--custom--icon--md); height: var(--wp--custom--icon--md); border-radius: var(--wp--custom--radius--badge); box-shadow: var(--wp--preset--shadow--sm); cursor: grab; }
.wc-block-product-filter-price-slider__range input[type="range"]::-moz-range-thumb { background: var(--wp--preset--color--surface); border: var(--wp--custom--border--strong) solid var(--wp--preset--color--contrast); width: var(--wp--custom--icon--md); height: var(--wp--custom--icon--md); border-radius: var(--wp--custom--radius--badge); box-shadow: var(--wp--preset--shadow--sm); cursor: grab; }
.wc-block-product-filter-price-slider__range input[type="range"]:focus-visible::-webkit-slider-thumb { outline: var(--wp--custom--border--focus) solid var(--wp--preset--color--focus); outline-offset: var(--wp--custom--border--focus-offset); }
.wc-block-product-filter-price-slider__range input[type="range"]:focus-visible::-moz-range-thumb { outline: var(--wp--custom--border--focus) solid var(--wp--preset--color--focus); outline-offset: var(--wp--custom--border--focus-offset); }
/* drawer below 1024px: the filters open as a panel; the open button is a small outline button */
.wc-block-product-filters__open-overlay { min-height: var(--wp--custom--control--button-height-small); padding: 0 var(--wp--custom--control--padding-x-small); border: 0; border-radius: var(--wp--custom--radius--button); background: var(--wp--preset--color--surface); color: var(--wp--preset--color--contrast); box-shadow: inset 0 0 0 var(--wp--custom--border--hairline) var(--wp--preset--color--border-strong); font: inherit; font-size: var(--wp--preset--font-size--small); font-weight: var(--wp--custom--font-weight--semibold); cursor: pointer; display: inline-flex; align-items: center; gap: var(--wp--preset--spacing--20); }
/* drawer controls (phones) */
.wc-block-product-filters__close-overlay { min-height: var(--wp--custom--control--min); display: inline-flex; align-items: center; gap: var(--wp--preset--spacing--20); padding: 0 var(--wp--preset--spacing--40); border: var(--wp--custom--border--hairline) solid var(--wp--preset--color--border-strong); border-radius: var(--wp--custom--radius--button); background: var(--wp--preset--color--surface); color: var(--wp--preset--color--contrast); font: inherit; font-weight: var(--wp--custom--font-weight--semibold); cursor: pointer; }
.wc-block-product-filters__close-overlay:hover { background: var(--wp--preset--color--accent-5); }
.wc-block-product-filters__apply { width: 100%; min-height: var(--wp--custom--control--button-height); border: 0; border-radius: var(--wp--custom--radius--button); background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--on-contrast); font: inherit; font-size: var(--wp--preset--font-size--small); font-weight: var(--wp--custom--font-weight--semibold); cursor: pointer; box-shadow: var(--wp--preset--shadow--cta); }
.wc-block-product-filters__apply:hover { background: var(--wp--preset--color--accent-3); }
@media (max-width: 600px) {
	.wc-block-product-filters__overlay-dialog { background: var(--wp--preset--color--surface); color: var(--wp--preset--color--contrast); border-radius: var(--wp--custom--radius--card); box-shadow: var(--wp--preset--shadow--lg); }
	/* only while open: closed, WooCommerce keeps the overlay in place (transparent, no pointer events) */
	.wc-block-product-filters.is-overlay-opened .wc-block-product-filters__overlay { background: var(--wp--preset--color--overlay); }
	/* kit drawer: title left, close as a 44px icon button right, content scrolls, apply bar pinned at the bottom */
	.wc-block-product-filters__overlay-header { display: flex; flex-direction: row; align-items: center; justify-content: space-between; padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40); border-bottom: var(--wp--custom--border--hairline) solid var(--wp--preset--color--accent-6); }
	.wc-block-product-filters__overlay-header::before { content: "Filters"; font-size: var(--wp--preset--font-size--large); font-weight: var(--wp--custom--font-weight--black); letter-spacing: var(--wp--custom--letter-spacing--heading); }
	.wc-block-product-filters__overlay-content { display: grid; align-content: start; gap: var(--wp--preset--spacing--50); padding: var(--wp--preset--spacing--40); }
	/* kit: the close is a 44px icon button; the word stays for screen readers */
	.wc-block-product-filters__close-overlay { width: var(--wp--custom--control--min); padding: 0 !important; justify-content: center; border-radius: var(--wp--custom--radius--icon-button) !important; }
	.wc-block-product-filters__close-overlay > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
	.wc-block-product-filters__close-overlay svg { width: var(--wp--custom--icon--md); height: var(--wp--custom--icon--md); fill: currentColor; }
	.wc-block-product-filters__overlay-footer { padding: var(--wp--preset--spacing--40); border-top: var(--wp--custom--border--hairline) solid var(--wp--preset--color--accent-6); background: var(--wp--preset--color--base); }
}
@media (min-width: 601px) { .wc-block-product-filters__open-overlay { display: none; } }

/* ---------- product card ---------- */
.wc-block-product-template { display: grid !important; grid-template-columns: repeat(var(--wp--custom--grid--columns-mobile), minmax(0, 1fr)) !important; gap: var(--wp--preset--spacing--40) !important; padding: 0; margin: 0; list-style: none; }
.wc-block-product-template > li { width: auto !important; max-width: none !important; margin: 0 !important; }
@media (min-width: 782px) { .wc-block-product-template { grid-template-columns: repeat(var(--wp--custom--grid--columns-tablet), minmax(0, 1fr)) !important; } }
@media (min-width: 1024px) { .wc-block-product-template { grid-template-columns: repeat(var(--wp--custom--grid--columns-desktop), minmax(0, 1fr)) !important; } .cv-shop__results .wc-block-product-template { grid-template-columns: repeat(var(--wp--custom--grid--columns-tablet), minmax(0, 1fr)) !important; } }
/* shop and category pages: three columns beside the filters at every desktop width (owner's choice) */
li.wc-block-product { position: relative; display: flex; flex-direction: column; border-radius: var(--wp--custom--radius--card); background: var(--wp--preset--color--surface); border: var(--wp--custom--border--hairline) solid var(--wp--preset--color--accent-6); box-shadow: var(--wp--preset--shadow--sm); overflow: clip; transition: transform var(--wp--custom--transition--base), box-shadow var(--wp--custom--transition--base); }
li.wc-block-product:hover { transform: translateY(-3px); box-shadow: var(--wp--preset--shadow--md); }
li.wc-block-product:has(:focus-visible) { outline: var(--wp--custom--border--focus) solid var(--wp--preset--color--focus); outline-offset: var(--wp--custom--border--focus-offset); }
li.wc-block-product :focus-visible { outline: 0; }
li.wc-block-product .wc-block-components-product-image { position: relative; margin: 0; aspect-ratio: var(--wp--custom--image--product); background: var(--wp--preset--color--accent-5); overflow: clip; border-radius: 0; }
li.wc-block-product .wc-block-components-product-image a { display: block; height: 100%; }
li.wc-block-product .wc-block-components-product-image img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 0; }
.cv-card__badges { position: absolute; top: var(--wp--preset--spacing--30); left: var(--wp--preset--spacing--30); display: flex; gap: var(--wp--preset--spacing--20); flex-wrap: wrap; z-index: var(--wp--custom--z--base); }
.cv-card__body { flex: 1; }
/* the card's spacing and type are block attributes; the category stays on one line and the title link covers the card */
.cv-card__cat { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cv-card__cat a, .cv-card__title a { text-decoration: none; }
.cv-card__title a::after { content: ""; position: absolute; inset: 0; }
.cv-card__foot { margin-top: auto !important; }
.cv-card__foot .wp-block-woocommerce-product-button { position: relative; z-index: var(--wp--custom--z--base); }
.cv-card__foot .wp-block-button__link, .cv-card__foot .wc-block-components-product-button__button { min-height: var(--wp--custom--control--button-height-small); padding: 0 var(--wp--custom--control--padding-x-small); }
.wc-block-components-product-button__button.disabled, .wc-block-components-product-button__button[aria-disabled="true"] { background: var(--wp--preset--color--accent-5); color: var(--wp--preset--color--accent-4); box-shadow: none; }
li.wc-block-product:has(.cv-badge--sold-out) .wc-block-components-product-image img { opacity: 0.55; }

/* ---------- pagination ---------- */
.wp-block-query-pagination { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: var(--wp--preset--spacing--20); margin-top: var(--wp--preset--spacing--60); }
.wp-block-query-pagination a, .wp-block-query-pagination .page-numbers, .woocommerce-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; gap: var(--wp--preset--spacing--20); min-width: var(--wp--custom--control--min); min-height: var(--wp--custom--control--min); padding: 0 var(--wp--preset--spacing--30); border-radius: var(--wp--custom--radius--button); color: var(--wp--preset--color--contrast); text-decoration: none; font-weight: var(--wp--custom--font-weight--semibold); }
.wp-block-query-pagination a:hover, .woocommerce-pagination a.page-numbers:hover { background: var(--wp--preset--color--accent-5); }
.wp-block-query-pagination span.page-numbers.current, .woocommerce-pagination span.page-numbers.current { background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--on-contrast); }
.wp-block-query-pagination .wp-block-query-pagination-numbers { display: inline-flex; gap: var(--wp--preset--spacing--20); }

/* ---------- filters, refinement 2 (owner review): one step smaller, centred marks, full-width price fields ---------- */
.wp-block-woocommerce-product-filters { font-size: var(--wp--preset--font-size--small); }
@media (min-width: 601px) { .cv-shop__filters .wc-block-product-filters__overlay-content { gap: var(--wp--preset--spacing--40); padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--40) var(--wp--preset--spacing--50); } }
.wp-block-woocommerce-product-filters h3.wp-block-heading { margin-bottom: var(--wp--preset--spacing--20); font-size: var(--wp--preset--font-size--x-small); color: var(--wp--preset--color--accent-4); }
/* checkbox rows: 20px box, the whole 44px row is the target */
.wc-block-product-filter-checkbox-list input[type="checkbox"].wc-block-product-filter-checkbox-list__input { width: var(--wp--custom--icon--sm); height: var(--wp--custom--icon--sm); border-radius: calc(var(--wp--custom--radius--input) / 3); }
.wc-block-product-filter-checkbox-list__label { gap: var(--wp--preset--spacing--30); }
/* the tick is centred by inset + margin auto (Safari ignores grid centring for an absolute child) */
.wc-block-product-filter-checkbox-list .wc-block-product-filter-checkbox-list__input:checked + .wc-block-product-filter-checkbox-list__mark { inset: 0; margin: auto; width: var(--wp--custom--icon--xs); height: var(--wp--custom--icon--xs); transform: scale(0.8); }
.wc-block-product-filter-checkbox-list__count > span { min-width: var(--wp--custom--icon--sm); min-height: var(--wp--custom--icon--sm); }
/* option chips: a 44px button holding a 32px pill */
.wc-block-product-filter-chips__items { gap: 0 var(--wp--preset--spacing--20); }
.wc-block-product-filter-chips .wc-block-product-filter-chips__item { min-width: 0; padding: 0; border: 0; background: transparent !important; }
.wc-block-product-filter-chips .wc-block-product-filter-chips__label { display: inline-flex; align-items: center; justify-content: center; min-height: var(--wp--custom--icon--lg); min-width: var(--wp--custom--icon--lg); padding: 0 var(--wp--preset--spacing--30); box-sizing: border-box; border: var(--wp--custom--border--hairline) solid var(--wp--preset--color--border-strong); border-radius: var(--wp--custom--radius--chip); background: var(--wp--preset--color--surface); font-size: var(--wp--preset--font-size--x-small); font-weight: var(--wp--custom--font-weight--bold); transition: background var(--wp--custom--transition--fast), color var(--wp--custom--transition--fast), border-color var(--wp--custom--transition--fast); }
.wc-block-product-filter-chips .wc-block-product-filter-chips__item:hover .wc-block-product-filter-chips__label { background: var(--wp--preset--color--accent-5); border-color: var(--wp--preset--color--contrast); }
.wc-block-product-filter-chips .wc-block-product-filter-chips__item[aria-checked="true"] { color: var(--wp--preset--color--on-accent); }
.wc-block-product-filter-chips .wc-block-product-filter-chips__item[aria-checked="true"] .wc-block-product-filter-chips__label { background: var(--wp--preset--color--contrast); border-color: var(--wp--preset--color--contrast); color: var(--wp--preset--color--on-contrast); }
.wc-block-product-filter-chips .wc-block-product-filter-chips__item:is([disabled], [aria-disabled="true"]) { text-decoration: none; }
.wc-block-product-filter-chips .wc-block-product-filter-chips__item:is([disabled], [aria-disabled="true"]) .wc-block-product-filter-chips__label { background: var(--wp--preset--color--accent-6); border-color: var(--wp--preset--color--accent-6); color: var(--wp--preset--color--accent-4); text-decoration: line-through; }
.wc-block-product-filter-chips .wc-block-product-filter-chips__item:focus-visible { outline: 0; }
.wc-block-product-filter-chips .wc-block-product-filter-chips__item:focus-visible .wc-block-product-filter-chips__label { outline: var(--wp--custom--border--focus) solid var(--wp--preset--color--focus); outline-offset: var(--wp--custom--border--focus-offset); }
/* active filters: smaller label, the close button is a 44px target with a centred icon */
.wc-block-product-filter-removable-chips .wc-block-product-filter-removable-chips__item { min-height: var(--wp--custom--control--min); padding: 0 0 0 var(--wp--preset--spacing--40); gap: 0; font-size: var(--wp--preset--font-size--x-small); }
.wc-block-product-filter-removable-chips .wc-block-product-filter-removable-chips__remove { position: relative; width: var(--wp--custom--control--min); height: var(--wp--custom--control--min); background: transparent !important; }
.wc-block-product-filter-removable-chips .wc-block-product-filter-removable-chips__remove::before { content: ""; position: absolute; inset: 0; margin: auto; width: var(--wp--custom--icon--md); height: var(--wp--custom--icon--md); border-radius: var(--wp--custom--radius--badge); background: var(--wp--preset--color--surface); opacity: 0; transition: opacity var(--wp--custom--transition--fast); }
.wc-block-product-filter-removable-chips .wc-block-product-filter-removable-chips__remove:hover::before { opacity: 1; }
.wc-block-product-filter-removable-chips__remove-icon { position: absolute; inset: 0; margin: auto; display: block; width: var(--wp--custom--icon--xs); height: var(--wp--custom--icon--xs); }
.wp-block-woocommerce-product-filter-clear-button .wp-block-button__link { min-height: var(--wp--custom--icon--lg); padding: 0 var(--wp--preset--spacing--30); font-size: var(--wp--preset--font-size--x-small); }
.wp-block-woocommerce-product-filter-clear-button .wp-block-button { display: inline-flex; align-items: center; min-height: var(--wp--custom--control--min); }
/* price: WooCommerce sets a three-column grid and 60px inputs; slider above, two equal fields below */
.wc-block-product-filter-price-slider .wc-block-product-filter-price-slider__content { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important; grid-template-areas: "range range" "left right" !important; gap: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30); }
.wc-block-product-filter-price-slider .wc-block-product-filter-price-slider__range { grid-area: range !important; }
.wc-block-product-filter-price-slider .wc-block-product-filter-price-slider__left { grid-area: left !important; }
.wc-block-product-filter-price-slider .wc-block-product-filter-price-slider__right { grid-area: right !important; }
.wc-block-product-filter-price-slider .wc-block-product-filter-price-slider__content input[type="text"] { width: 100% !important; max-width: none !important; min-height: var(--wp--custom--control--min) !important; padding: 0 var(--wp--preset--spacing--30) !important; font-size: var(--wp--preset--font-size--small); font-variant-numeric: tabular-nums; text-align: left; background: var(--wp--preset--color--surface) !important; }
.wc-block-product-filter-price-slider__range input[type="range"]::-webkit-slider-thumb { width: var(--wp--custom--icon--sm); height: var(--wp--custom--icon--sm); }
.wc-block-product-filter-price-slider__range input[type="range"]::-moz-range-thumb { width: var(--wp--custom--icon--sm); height: var(--wp--custom--icon--sm); }
.wc-block-product-filter-price-slider__range { margin-inline: calc(var(--wp--custom--icon--sm) / 2) !important; }
/* price slider geometry: a 20px tall slider box, the 4px track and the thumbs both centred on its middle line,
   then a clear gap before the two fields */
.wc-block-product-filter-price-slider .wc-block-product-filter-price-slider__range { position: relative; height: var(--wp--custom--icon--sm); margin: var(--wp--preset--spacing--20) calc(var(--wp--custom--icon--sm) / 2) var(--wp--preset--spacing--30) !important; }
.wc-block-product-filter-price-slider__range .range-bar { position: absolute !important; left: 0; right: 0; top: 50% !important; height: calc(var(--wp--custom--border--strong) * 2) !important; transform: translateY(-50%); }
.wc-block-product-filter-price-slider__range input[type="range"] { top: 50% !important; }
.wc-block-product-filter-price-slider .wc-block-product-filter-price-slider__content { row-gap: var(--wp--preset--spacing--30) !important; }
.wc-block-product-filter-price-slider .wc-block-product-filter-price-slider__content input[type="text"] { min-height: var(--wp--custom--icon--xl) !important; height: var(--wp--custom--icon--xl); border-radius: var(--wp--custom--radius--input) !important; }
/* selected price range: WooCommerce draws it as the slider's ::before from --low/--high; a 4px ink bar on the track */
.wc-block-product-filter-price-slider .wc-block-product-filter-price-slider__range::before { content: "" !important; position: absolute !important; top: 50% !important; bottom: auto !important; left: var(--low, 0%) !important; right: auto !important; width: calc(var(--high, 100%) - var(--low, 0%)) !important; height: calc(var(--wp--custom--border--strong) * 2) !important; transform: translateY(-50%); border-radius: var(--wp--custom--radius--badge); background: var(--wp--preset--color--contrast) !important; opacity: 1 !important; z-index: 1; pointer-events: none; -webkit-mask: none !important; mask: none !important; }
.wc-block-product-filter-price-slider__range .range-bar::before, .wc-block-product-filter-price-slider__range .range-bar-fill { display: none !important; }
.wc-block-product-filter-price-slider__range input[type="range"] { z-index: 2; }
/* checkbox labels one step up */
.wc-block-product-filter-checkbox-list__text { font-size: var(--wp--preset--font-size--medium); }

/* ---------- plain product card (layout.json card: plain; body class cv-cards--plain): image, then text, no frame ---------- */
.cv-cards--plain li.wc-block-product { background: none; border-color: transparent; box-shadow: none; overflow: visible; }
.cv-cards--plain li.wc-block-product:hover { transform: none; box-shadow: none; }
.cv-cards--plain li.wc-block-product .wc-block-components-product-image { border-radius: var(--wp--custom--radius--image); }
.cv-cards--plain li.wc-block-product:hover .wc-block-components-product-image img { scale: var(--wp--custom--motion--zoom); }
.cv-cards--plain li.wc-block-product .wc-block-components-product-image img { transition: scale var(--wp--custom--transition--base); }

/* ---------- Compound V card (phase 7): badges row above the vial, white image ground, contained vial ---------- */
.wc-block-product .cv-card__badges { position: static; }
.wc-block-product .cv-tag { margin: 0; }
.wc-block-product .wc-block-components-product-image, .wc-block-product .wc-block-components-product-image a { background: transparent !important; }
.wc-block-product .wc-block-components-product-image img { object-fit: contain !important; filter: var(--wp--custom--glow--vial-shadow); }
li.wc-block-product .wc-block-components-product-image { aspect-ratio: var(--wp--custom--image--card-media); }
li.wc-block-product .wp-block-woocommerce-product-price ins, .wp-block-woocommerce-product-price ins .woocommerce-Price-amount { color: var(--wp--preset--color--accent-1) !important; }
li.wc-block-product .wp-block-button__link, li.wc-block-product .wc-block-components-product-button__button { background: var(--wp--preset--color--accent-1) !important; color: var(--wp--preset--color--on-accent) !important; border-color: var(--wp--preset--color--accent-1) !important; }
li.wc-block-product .wp-block-button__link:hover, li.wc-block-product .wc-block-components-product-button__button:hover { background: var(--wp--preset--color--accent-1-strong) !important; }
/* phase 7 QA: long category names wrap; 44px targets for the quantity stepper and "show more" */
.wc-block-product .cv-card__badges { flex-wrap: wrap !important; row-gap: var(--wp--preset--spacing--20); }
.wc-block-product .cv-tag { max-width: 100%; }
.wc-block-product-filter-chips__show-more { min-height: var(--wp--custom--control--min); padding-inline: var(--wp--preset--spacing--30); }
.wp-block-woocommerce-add-to-cart-with-options :is(.quantity input.qty, .wc-block-components-quantity-selector__input, .quantity button, .wc-block-components-quantity-selector__button) { min-height: var(--wp--custom--control--min); min-width: var(--wp--custom--control--min); }
.wc-block-product .cv-tag, .wc-block-product .cv-tag a { white-space: normal; overflow-wrap: anywhere; min-width: 0; }
.wc-block-product .cv-card__badges > * { min-width: 0; }
@media (max-width: 599px) { .wp-block-woocommerce-product-collection .wc-block-product-template { grid-template-columns: minmax(0, 1fr) !important; } }

/* ---------- Sectioned shop (archive-product): hero, jump bar, research-area sections with banners ---------- */
.cv-shophero { padding-block: var(--wp--preset--spacing--60) var(--wp--preset--spacing--40); }
.cv-shophero h1 { margin-block: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30); }
.cv-shophero__lead { color: var(--wp--preset--color--accent-4); max-width: 60ch; }
.cv-jump { gap: var(--wp--preset--spacing--20) !important; margin-top: var(--wp--preset--spacing--40) !important; position: sticky; top: 0; z-index: 5; padding-block: var(--wp--preset--spacing--20); background: var(--wp--preset--color--base); }
.admin-bar .cv-jump { top: var(--wp-admin--admin-bar--height, 32px); }
.cv-jump__link { margin: 0 !important; }
.cv-jump__link a { display: inline-flex; align-items: center; gap: .5em; padding: .55em 1em; border: 1px solid var(--wp--preset--color--accent-6); border-radius: 999px; background: var(--wp--preset--color--surface); color: var(--wp--preset--color--contrast); font-size: var(--wp--preset--font-size--small); font-weight: 600; text-decoration: none; transition: border-color .2s, color .2s; }
.cv-jump__link a:hover, .cv-jump__link a:focus-visible { border-color: var(--wp--preset--color--accent-1); color: var(--wp--preset--color--accent-1); }
.cv-jump__link a span { font-family: var(--wp--preset--font-family--mono); font-size: .85em; color: var(--wp--preset--color--accent-4); }
.cv-sec { scroll-margin-top: 140px; padding-block: var(--wp--preset--spacing--60) var(--wp--preset--spacing--40); border-top: 1px solid var(--wp--preset--color--accent-6); }
.cv-sec > * + * { margin-top: var(--wp--preset--spacing--40) !important; }
.cv-sec__head { gap: var(--wp--preset--spacing--30); }
.cv-sec__head h2 { margin: .15em 0 .2em; }
.cv-sec__desc { margin: 0; color: var(--wp--preset--color--accent-4); }
.cv-sec__all { margin: 0; font-weight: 600; white-space: nowrap; }
.cv-sec__all a { text-decoration: none; }
.cv-sec__banner, .cv-sec__life { border-radius: var(--wp--custom--radius--card, 16px); overflow: hidden; }
.cv-sec__banner { aspect-ratio: 3 / 1; min-height: 240px !important; align-items: flex-end !important; padding: var(--wp--preset--spacing--50) !important; }
.cv-sec__banner .wp-block-cover__inner-container > * { margin: 0; color: #fff; }
.cv-sec__num, .cv-sec__count { font-family: var(--wp--preset--font-family--mono); font-size: var(--wp--preset--font-size--small); opacity: .8; }
.cv-sec__bannertitle { font-size: clamp(2rem, 5vw, 3.75rem) !important; line-height: 1 !important; margin: .1em 0 .15em !important; }
.cv-sec__life { min-height: 220px !important; padding: var(--wp--preset--spacing--50) !important; }
.cv-sec__lifetitle { color: #fff; margin: 0; font-size: clamp(1.5rem, 3.5vw, 2.5rem) !important; }
.cv-labcta { margin-top: var(--wp--preset--spacing--40); padding-block: var(--wp--preset--spacing--60); background: var(--wp--preset--color--soft); text-align: center; }
.cv-labcta .wp-block-buttons { justify-content: center; }
@media (max-width: 781px) { .cv-sec__banner { aspect-ratio: 16 / 9; } .cv-jump { flex-wrap: nowrap !important; overflow-x: auto; scrollbar-width: none; } .cv-jump__link a { white-space: nowrap; } }
/* sections use the wide layout width, not the reading column */
.cv-shophero > *, .cv-sec > *, .cv-labcta > * { max-width: var(--wp--style--global--wide-size) !important; }
.cv-shophero__lead { margin-left: 0 !important; max-width: 60ch !important; }
.cv-labcta > p:not(.is-style-eyebrow) { max-width: 60ch !important; }
/* jump bar scrolls with the page (the site header is already sticky) */
.cv-jump { position: static !important; }
/* banners keep the artwork's own proportions (2160x728) so heads are never cropped; WP's inline aspect-ratio:unset is overridden */
.cv-sec__banner, .cv-sec__life { aspect-ratio: 2160 / 728 !important; min-height: 0 !important; height: auto !important; }
.cv-sec__banner .wp-block-cover__image-background, .cv-sec__life .wp-block-cover__image-background { object-position: 50% 30% !important; }
@media (max-width: 781px) {
	.cv-sec__banner { aspect-ratio: 16 / 10 !important; }
	.cv-sec__banner .wp-block-cover__image-background { object-position: 80% 25% !important; }
	.cv-sec__life { aspect-ratio: 2 / 1 !important; }
	.cv-sec__life .wp-block-cover__image-background { object-position: 75% 50% !important; }
}
/* shop hero lead lines up with the heading (same wide column) */
.cv-shophero__lead { margin-inline: auto !important; max-width: var(--wp--style--global--wide-size) !important; }

/* Category header: no scene photo -> no white fade (it made light text unreadable in dark mode). */
.cv-cathead:not(:has(.cv-cathead__media))::before { display: none !important; }
@media (min-width: 782px) {
	.cv-cathead:not(:has(.cv-cathead__media)) { min-height: 0; }
}
/* Dark mode: dark fade over the dark scene, so the light text stays readable. */
html[data-theme="dark"] .cv-cathead::before { background: linear-gradient(90deg, rgba(11, 15, 20, 0.96) 0%, rgba(11, 15, 20, 0.88) 30%, rgba(11, 15, 20, 0.45) 52%, rgba(11, 15, 20, 0.08) 72%, rgba(11, 15, 20, 0) 100%); }
.cv-cathead img.cv-cathead__img.cv-img-dark { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 781px) {
	html[data-theme="dark"] .cv-cathead__media { background: var(--wp--preset--color--base); }
}


/* compoundvpeptides.in: shining blue border on product cards when hovered (kept from the old .in store). */
@keyframes cv-card-shine {
	0%, 100% { border-color: #2D6CDF; box-shadow: 0 0 0 1px #2D6CDF, 0 0 14px rgba(53, 167, 255, 0.35), var(--wp--preset--shadow--md); }
	50% { border-color: #35A7FF; box-shadow: 0 0 0 1px #35A7FF, 0 0 28px rgba(53, 167, 255, 0.65), var(--wp--preset--shadow--md); }
}
li.wc-block-product { transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
li.wc-block-product:hover,
li.wc-block-product:focus-within {
	border-color: #2D6CDF !important;
	animation: cv-card-shine 1.6s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce) {
	li.wc-block-product:hover, li.wc-block-product:focus-within { animation: none; box-shadow: 0 0 0 1px #35A7FF, 0 0 22px rgba(53, 167, 255, 0.5); }
}
