/* ==========================================================================
   VARIFYO — WooCommerce presentation. Loaded only when WooCommerce is active.
   WooCommerce's own sheets stay enqueued; this file loads after them and restyles the surface.
   Native markup and behavior are untouched; these rules style catalog, product, cart, checkout and account.
   ========================================================================== */

.vf-shop { padding-top: calc(var(--header-pad) + clamp(2.5rem, 6vw, 5rem)); padding-bottom: clamp(4rem, 8vw, 8rem); }

/* Breadcrumb */
.vf-crumb { font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); margin-bottom: 2rem; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.vf-crumb a { text-decoration: none; color: var(--fg-2); }
.vf-crumb__sep { opacity: 0.5; }

/* Shop header */
.woocommerce-products-header__title { font-size: var(--fs-h1); margin-bottom: 1rem; }
.vf-shop__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem 2rem; padding: 1rem 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); margin: 1.5rem 0 2.5rem; }
.woocommerce-result-count { margin: 0; font-size: var(--fs-small); color: var(--muted); }
.woocommerce-ordering { margin: 0; }
.woocommerce-ordering select { width: auto; font-size: var(--fs-small); border-bottom: 1px solid var(--line-strong); padding: 0.4em 1.6em 0.4em 0; }
.woocommerce-notices-wrapper:empty { display: none; }

/* Reset WooCommerce general-sheet colors to the theme palette */
.woocommerce .woocommerce-message, .woocommerce .woocommerce-info, .woocommerce .woocommerce-error { border-top-width: 1px; }
.woocommerce .woocommerce-message::before, .woocommerce .woocommerce-info::before, .woocommerce .woocommerce-error::before { display: none; }
.woocommerce .woocommerce-message, .woocommerce .woocommerce-info { padding-left: 1.25rem; }
.woocommerce .woocommerce-error { padding-left: 1.25rem; }
.woocommerce div.product p.price, .woocommerce div.product span.price, .woocommerce ul.products li.product .price { color: var(--fg); }
.woocommerce div.product p.price ins, .woocommerce div.product span.price ins { font-weight: 400; }
.woocommerce span.onsale, .woocommerce ul.products li.product .onsale { position: absolute; top: 0.75rem; left: 0.75rem; right: auto; bottom: auto; width: auto; margin: 0; padding: 0.3em 0.7em; border: 1px solid var(--line-strong); border-radius: 0; background: var(--paper); color: var(--fg); font-size: 0.6875rem; letter-spacing: 0.18em; text-transform: uppercase; min-height: 0; min-width: 0; line-height: 1.4; z-index: 2; }
.woocommerce ul.products li.product { position: relative; }
.woocommerce a.button.alt.disabled, .woocommerce button.button.alt.disabled, .woocommerce button.button.alt:disabled, .woocommerce button.button.alt:disabled[disabled], .woocommerce a.button.disabled, .woocommerce button.button.disabled { background: var(--fg); color: var(--bg); border-color: var(--fg); opacity: 0.35; }
.woocommerce .star-rating span::before, .woocommerce .star-rating::before { color: var(--bronze); }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea { line-height: 1.4; }
.woocommerce-store-notice, p.demo_store { background: var(--ink); color: var(--ivory); font-size: var(--fs-small); }
.woocommerce #respond input#submit.alt, .woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt { background: var(--fg); color: var(--bg); }

/* Notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error {
	list-style: none; margin: 0 0 2rem; padding: 1rem 1.25rem; border: 1px solid var(--line-strong); background: var(--paper);
	font-size: var(--fs-small); display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 0.75rem 1.5rem;
}
.woocommerce-error { border-color: #a24a3a; color: #7a2f22; }
.woocommerce-error li { margin: 0; }
.woocommerce-message .button, .woocommerce-info .button { order: 2; }

/* Product grid. The base rule carries no `.woocommerce` ancestor on purpose: product loops also appear on the
   home page and other templates, where WooCommerce does not add that class to the body. */
ul.products, .woocommerce ul.products, .woocommerce-page ul.products { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(2rem, 4vw, 3rem) clamp(16px, 2.5vw, 40px); }
ul.products li.product { margin: 0; width: auto; float: none; clear: none; text-align: left; position: relative; }
ul.products::before, ul.products::after { display: none; }
@media (min-width: 900px) { .woocommerce ul.products.columns-3, .woocommerce-page ul.products.columns-3 { grid-template-columns: repeat(3, 1fr); } .woocommerce ul.products.columns-4, .woocommerce-page ul.products.columns-4 { grid-template-columns: repeat(4, 1fr); } }
.woocommerce ul.products li.product, .woocommerce-page ul.products li.product,
.woocommerce ul.products[class*='columns-'] li.product, .woocommerce-page ul.products[class*='columns-'] li.product,
.woocommerce[class*='columns-'] ul.products li.product, .woocommerce-page[class*='columns-'] ul.products li.product { margin: 0; width: auto; float: none; clear: none; text-align: left; }
.woocommerce ul.products::before, .woocommerce ul.products::after, .woocommerce-page ul.products::before, .woocommerce-page ul.products::after { display: none; }
ul.products li.product a.woocommerce-LoopProduct-link { text-decoration: none; display: block; }
ul.products li.product img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; background: var(--bg-2); margin-bottom: 1rem; transition: transform var(--t-slow) var(--ease); }
ul.products li.product:hover img { transform: scale(1.02); }
ul.products li.product .woocommerce-loop-product__title { font-family: var(--serif); font-size: 1.25rem; line-height: 1.2; margin: 0 0 0.35rem; }
ul.products li.product .price { font-family: var(--sans); font-size: var(--fs-small); color: var(--fg-2); letter-spacing: 0.04em; margin: 0 0 0.75rem; display: block; }
ul.products li.product .price del { color: var(--muted); margin-right: 0.5em; }
ul.products li.product .price ins { text-decoration: none; }
ul.products li.product .button { font-size: 0.75rem; padding: 0.9em 1.6em; }
.woocommerce-pagination { margin-top: 3rem; }
.woocommerce-pagination ul.page-numbers { border: 0; display: flex; justify-content: center; gap: 0.5rem; }
.woocommerce-pagination ul.page-numbers li { border: 0; }
.woocommerce-pagination .page-numbers { padding: 0.5rem 0.75rem; font-size: var(--fs-small); letter-spacing: 0.12em; border-bottom: 1px solid transparent; }
.woocommerce-pagination .page-numbers.current { border-bottom-color: currentColor; background: none; }

/* Single product */
.single-product div.product { display: grid; grid-template-columns: 1fr; gap: 2.5rem clamp(32px, 6vw, 96px); }
.woocommerce div.product div.images.woocommerce-product-gallery, .woocommerce-page div.product div.images, .woocommerce div.product div.summary, .woocommerce-page div.product div.summary { float: none; width: 100%; margin: 0; }
@media (min-width: 900px) { .single-product div.product { grid-template-columns: 7fr 5fr; } .woocommerce div.product div.summary, .woocommerce-page div.product div.summary { position: sticky; top: calc(var(--header-stick) + 2rem); align-self: start; } }
.single-product div.product .woocommerce-product-gallery__image img { width: 100%; background: var(--bg-2); }
.single-product div.product .flex-control-thumbs { display: flex; gap: 0.5rem; margin-top: 0.5rem; }
.single-product div.product .flex-control-thumbs li { width: 72px; float: none; }
.single-product div.product .flex-control-thumbs img { opacity: 0.6; }
.single-product div.product .flex-control-thumbs img.flex-active, .single-product div.product .flex-control-thumbs img:hover { opacity: 1; }
.single-product div.product .product_title { font-size: var(--fs-h2); margin-bottom: 0.5rem; }
.single-product div.product p.price { font-family: var(--sans); font-size: 1.125rem; color: var(--fg); margin: 0 0 1.5rem; letter-spacing: 0.04em; }
.single-product div.product .woocommerce-product-details__short-description { color: var(--fg-2); margin-bottom: 1.5rem; max-width: 46ch; }
.single-product div.product form.cart { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; margin: 0 0 2rem; }
.single-product div.product form.cart .quantity { display: inline-flex; }
.single-product div.product form.cart .quantity .qty { width: 4.5em; text-align: center; border: 1px solid var(--line-strong); border-radius: 0; padding: 0.95em 0.5em; }
.single-product div.product form.cart.variations_form { display: block; }
.single-product div.product table.variations { margin-bottom: 1.5rem; }
.single-product div.product table.variations th, .single-product div.product table.variations td { padding: 0.6em 0; border: 0; }
.single-product div.product table.variations label { font-size: 0.75rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted); }
.single-product div.product table.variations select { width: 100%; }
.single-product div.product .reset_variations { font-size: 0.75rem; letter-spacing: 0.1em; margin-left: 1em; }
.single-product div.product .woocommerce-variation-price { margin-bottom: 1rem; }
.single-product div.product .product_meta { font-size: 0.75rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); border-top: 1px solid var(--line); padding-top: 1.25rem; display: grid; gap: 0.4rem; }
.single-product div.product .product_meta a { color: var(--fg-2); text-decoration: none; }
.woocommerce-tabs { grid-column: 1 / -1; margin-top: 2rem; }
.woocommerce-tabs ul.tabs { list-style: none; margin: 0 0 2rem; padding: 0; display: flex; gap: 2rem; border-bottom: 1px solid var(--line); overflow: visible; }
.woocommerce-tabs ul.tabs::before, .woocommerce-tabs ul.tabs li::before, .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce-tabs ul.tabs li { background: none; border: 0; border-radius: 0; margin: 0; padding: 0; display: inline-block; box-shadow: none; }
.woocommerce-tabs ul.tabs li a { padding: 0.75rem 0; font-size: 0.75rem; letter-spacing: 0.18em; text-transform: uppercase; text-decoration: none; color: var(--muted); font-weight: 500; display: inline-block; border-bottom: 1px solid transparent; margin-bottom: -1px; }
.woocommerce-tabs ul.tabs li.active a { color: var(--fg); border-bottom-color: var(--fg); }
.woocommerce-tabs .panel { max-width: 62ch; color: var(--fg-2); }
.woocommerce-tabs .panel h2 { font-size: var(--fs-h3); }
.related.products, .up-sells.products { grid-column: 1 / -1; margin-top: clamp(3rem, 6vw, 5rem); }
.related.products > h2, .up-sells.products > h2 { font-size: var(--fs-h2); margin-bottom: 2rem; }

/* Cart */
.woocommerce table.shop_table { border: 0; border-collapse: collapse; border-radius: 0; margin-bottom: 2rem; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { border: 0; border-bottom: 1px solid var(--line); padding: 1rem 0.5rem; vertical-align: middle; }
.woocommerce table.shop_table th { font-size: 0.6875rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted); font-weight: 500; }
.woocommerce table.shop_table td.product-thumbnail img { width: 72px; aspect-ratio: 4 / 5; object-fit: cover; }
.woocommerce table.shop_table td.product-name a { text-decoration: none; font-family: var(--serif); font-size: 1.125rem; }
.woocommerce table.shop_table td.product-remove a.remove { color: var(--muted) !important; font-size: 1.25rem; width: auto; height: auto; line-height: 1; border-radius: 0; }
.woocommerce table.shop_table td.product-remove a.remove:hover { background: none; color: var(--fg) !important; }
.woocommerce table.shop_table td.actions { padding-top: 1.5rem; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; }
.woocommerce table.shop_table td.actions .coupon { display: flex; gap: 1rem; align-items: center; }
.woocommerce table.shop_table td.actions .coupon input { width: 12em; }
.woocommerce .cart-collaterals { display: grid; }
.woocommerce .cart-collaterals .cart_totals { float: none; width: 100%; max-width: 480px; margin-left: auto; }
.woocommerce .cart-collaterals .cart_totals h2 { font-size: var(--fs-h3); margin-bottom: 1rem; }
.woocommerce .cart-collaterals .cart_totals table.shop_table th { width: 40%; color: var(--fg-2); text-transform: none; letter-spacing: 0.02em; font-size: var(--fs-small); }
.woocommerce .wc-proceed-to-checkout { padding-top: 1.5rem; }
.woocommerce .wc-proceed-to-checkout a.checkout-button { display: inline-flex; font-size: 0.8125rem; margin: 0; }
.woocommerce-shipping-destination { font-size: var(--fs-small); color: var(--muted); }
.woocommerce ul#shipping_method { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.5rem; }
.woocommerce ul#shipping_method li { margin: 0; display: flex; gap: 0.5rem; align-items: baseline; }
.woocommerce ul#shipping_method label { text-transform: none; letter-spacing: 0; font-size: var(--fs-small); color: var(--fg-2); }
.woocommerce-cart .cart-empty, .woocommerce .return-to-shop { text-align: left; }

/* Checkout */
.woocommerce-checkout form.checkout { display: grid; grid-template-columns: 1fr; gap: 3rem clamp(32px, 6vw, 96px); }
@media (min-width: 1024px) { .woocommerce-checkout form.checkout { grid-template-columns: 7fr 5fr; } .woocommerce-checkout form.checkout #order_review_heading, .woocommerce-checkout form.checkout #order_review { grid-column: 2; } .woocommerce-checkout form.checkout #customer_details { grid-column: 1; grid-row: 1 / span 2; } }
.woocommerce-checkout #customer_details .col-1, .woocommerce-checkout #customer_details .col-2 { float: none; width: 100%; }
.woocommerce-checkout h3, .woocommerce-checkout #order_review_heading { font-size: var(--fs-h3); margin: 0 0 1.25rem; }
.woocommerce form .form-row { padding: 0; margin: 0 0 1.25rem; }
.woocommerce form .form-row label { display: block; margin-bottom: 0.25rem; }
.woocommerce form .form-row .required { color: var(--bronze); text-decoration: none; }
.woocommerce form .form-row .input-text, .woocommerce form .form-row select, .woocommerce form .form-row textarea { padding: 0.7em 0; }
.woocommerce form .form-row-first, .woocommerce form .form-row-last { width: 48%; float: left; }
.woocommerce form .form-row-last { float: right; }
.woocommerce form .form-row-wide { clear: both; }
.select2-container .select2-selection--single { height: auto; border: 0; border-bottom: 1px solid var(--line-strong); border-radius: 0; background: transparent; }
.select2-container .select2-selection--single .select2-selection__rendered { padding: 0.7em 0; line-height: 1.4; color: var(--fg); }
.select2-container .select2-selection--single .select2-selection__arrow { top: 50%; transform: translateY(-50%); }
.select2-dropdown { border: 1px solid var(--line-strong); border-radius: 0; background: var(--paper); }
#order_review { background: var(--paper); border: 1px solid var(--line); padding: clamp(1.25rem, 3vw, 2rem); }
#order_review table.shop_table td.product-name { font-family: var(--sans); font-size: var(--fs-small); color: var(--fg-2); }
#payment { background: transparent; border-radius: 0; margin-top: 1.5rem; }
#payment ul.payment_methods { list-style: none; margin: 0 0 1.5rem; padding: 0; border: 0; display: grid; gap: 0.75rem; }
#payment ul.payment_methods li { margin: 0; line-height: 1.5; }
#payment ul.payment_methods li label { text-transform: none; letter-spacing: 0; font-size: var(--fs-body); color: var(--fg); display: inline; }
#payment div.payment_box { background: var(--sand); border-radius: 0; font-size: var(--fs-small); color: var(--fg-2); margin: 0.75rem 0 0; }
#payment div.payment_box::before { border-bottom-color: var(--sand); }
#payment .place-order { padding: 0; }
#payment #place_order { width: 100%; float: none; }
.woocommerce-privacy-policy-text { font-size: var(--fs-small); color: var(--muted); }
.woocommerce-terms-and-conditions-wrapper { margin-bottom: 1.25rem; }
.woocommerce-checkout .woocommerce-form-login-toggle, .woocommerce-checkout .woocommerce-form-coupon-toggle { margin-bottom: 1.5rem; }
.woocommerce-checkout form.checkout_coupon, .woocommerce-checkout form.woocommerce-form-login { border: 1px solid var(--line); border-radius: 0; padding: 1.5rem; margin-bottom: 2rem; }

/* Thank you / order details */
.woocommerce-order ul.order_details { list-style: none; margin: 0 0 2rem; padding: 1.5rem 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: 1.5rem 3rem; }
.woocommerce-order ul.order_details li { float: none; border: 0; padding: 0; margin: 0; font-size: 0.6875rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted); }
.woocommerce-order ul.order_details li strong { display: block; margin-top: 0.4rem; font-family: var(--serif); font-size: 1.25rem; letter-spacing: 0; text-transform: none; color: var(--fg); }
.woocommerce-customer-details address { border: 1px solid var(--line); border-radius: 0; padding: 1.25rem; }

/* Account */
.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) { display: grid; grid-template-columns: 1fr; gap: 2.5rem clamp(32px, 5vw, 80px); }
@media (min-width: 900px) { .woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) { grid-template-columns: 3fr 9fr; } }
.woocommerce-account form.login, .woocommerce-account form.register, .woocommerce form.login, .woocommerce form.register { border: 0; border-radius: 0; padding: 0; margin: 0 0 2rem; max-width: 480px; }
.woocommerce-MyAccount-navigation { float: none; width: 100%; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--line); }
.woocommerce-MyAccount-navigation li a { display: block; padding: 0.9rem 0; font-size: 0.75rem; letter-spacing: 0.18em; text-transform: uppercase; text-decoration: none; color: var(--fg-2); }
.woocommerce-MyAccount-navigation li.is-active a { color: var(--fg); }
.woocommerce-MyAccount-content { float: none; width: 100%; color: var(--fg-2); }
.woocommerce-MyAccount-content h2, .woocommerce-MyAccount-content h3 { color: var(--fg); }
.woocommerce-account .woocommerce-form-login, .woocommerce-account .woocommerce-form-register { border: 0; border-radius: 0; padding: 0; margin: 0; max-width: 480px; }
.woocommerce-account .u-columns { display: grid; grid-template-columns: 1fr; gap: 3rem; }
@media (min-width: 900px) { .woocommerce-account .u-columns { grid-template-columns: 1fr 1fr; } }
.woocommerce-account .u-columns .col-1, .woocommerce-account .u-columns .col-2 { float: none; width: 100%; }
.woocommerce-account .woocommerce-form-login__rememberme { display: block; margin: 1rem 0; text-transform: none; letter-spacing: 0; font-size: var(--fs-small); }
.woocommerce-account .lost_password { font-size: var(--fs-small); }
.woocommerce-orders-table .button { font-size: 0.6875rem; padding: 0.7em 1.2em; }

/* Password strength, show-password toggle, misc */
.woocommerce form .password-input { width: 100%; }
.woocommerce form .show-password-input { top: 0.5em; }
.woocommerce-password-strength { font-size: var(--fs-small); text-align: left; padding: 0.4em 0; }
.woocommerce .quantity .qty { -moz-appearance: textfield; }
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit, .woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt, .wc-block-components-button {
	display: inline-flex; align-items: center; justify-content: center; gap: 0.5em; padding: 1.05em 2.1em; border: 1px solid var(--fg); background: var(--fg); color: var(--bg);
	font-family: var(--sans); font-size: 0.8125rem; font-weight: 500; letter-spacing: 0.2em; text-transform: uppercase; line-height: 1; border-radius: 0; cursor: pointer;
	transition: background var(--t-fast), color var(--t-fast);
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover, .woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, .woocommerce input.button.alt:hover { background: transparent; color: var(--fg); }
.woocommerce a.button.disabled, .woocommerce button.button.disabled, .woocommerce button.button:disabled { opacity: 0.4; }

/* ==========================================================================
   Catalog (1.1): product listing with filters, product cards, product page details, brands index.
   ========================================================================== */

/* Listing head and category links */
.vf-plp__head { max-width: 62ch; }
.vf-plp__head .vf-eyebrow { margin-bottom: 0.75rem; }
.vf-plp__head .term-description, .vf-plp__head .page-description { color: var(--fg-2); max-width: 62ch; }
.vf-plp__head .term-description p:last-child { margin-bottom: 0; }

/* The category's own introduction, under the heading. Held to a reading measure so it stays prose. */
.vf-plp__intro { max-width: 64ch; margin-top: 1rem; color: var(--fg-2); }
.vf-plp__intro p { margin: 0 0 0.75rem; font-size: 0.95rem; line-height: 1.65; }
.vf-plp__intro p:last-child { margin-bottom: 0; }

/* Links back up from a designer-and-category page. */
.vf-plp__up { margin-top: 0.9rem; font-size: 0.9rem; }
.vf-plp__up a { margin-right: 1.25rem; }

/* The designer-by-category and category-by-designer lists under a grid. */
.vf-pairs { margin: 3rem 0 1rem; border-top: 1px solid var(--line, #e5e2dd); padding-top: 1.5rem; }
.vf-pairs__title { font-size: 1rem; letter-spacing: 0.08em; text-transform: uppercase; margin: 0 0 1rem; }
.vf-pairs ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 0.4rem 1.5rem; }
.vf-pairs li { margin: 0; }
.vf-pairs a { display: flex; justify-content: space-between; gap: 1rem; padding: 0.35rem 0; text-decoration: none; border-bottom: 1px solid transparent; }
.vf-pairs a:hover { border-bottom-color: currentColor; }
.vf-pairs a span { color: var(--fg-2, #7a736b); font-variant-numeric: tabular-nums; }

/* The designer-and-category hub on the Designers page. */
.vf-collections { margin-top: 3.5rem; border-top: 1px solid var(--line, #e5e2dd); padding-top: 2rem; }
.vf-collections h2 { font-size: 1.15rem; letter-spacing: 0.08em; text-transform: uppercase; margin: 0 0 0.5rem; }
.vf-collections__lead { color: var(--fg-2, #7a736b); margin: 0 0 2rem; max-width: 60ch; }
.vf-collections__house { margin-bottom: 2rem; }
.vf-collections__house h3 { font-size: 1rem; margin: 0 0 0.6rem; }
.vf-collections__house h3 a { text-decoration: none; border-bottom: 1px solid currentColor; }
.vf-collections ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 0.25rem 1.5rem; }
.vf-collections li { margin: 0; }
.vf-collections li a { display: flex; justify-content: space-between; gap: 1rem; padding: 0.3rem 0; font-size: 0.92rem; text-decoration: none; color: var(--fg-2, #7a736b); }
.vf-collections li a:hover { color: var(--fg, #1c1917); }
.vf-collections li a span { font-variant-numeric: tabular-nums; opacity: 0.7; }
.vf-chips { margin: 1.5rem calc(var(--gutter) * -1) 0; padding: 0 var(--gutter); overflow-x: auto; scrollbar-width: none; }
.vf-chips::-webkit-scrollbar { display: none; }
.vf-chips ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 0.5rem; width: max-content; }
.vf-chips a { display: inline-block; padding: 0.55em 1.1em; border: 1px solid var(--line-strong); font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase; text-decoration: none; white-space: nowrap; transition: background var(--t-fast), color var(--t-fast); }
.vf-chips a:hover { border-color: var(--fg); }
.vf-chips a[aria-current='page'] { background: var(--fg); color: var(--bg); border-color: var(--fg); }

/* Layout: filters beside the results on wide screens */
.vf-plp { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0 clamp(24px, 3vw, 56px); margin-top: 1.5rem; }
@media (min-width: 1024px) {
	.vf-plp { grid-template-columns: 232px minmax(0, 1fr); }
	.vf-filters { position: sticky; top: calc(var(--header-stick) + 1.5rem); align-self: start; max-height: calc(100vh - var(--header-stick) - 3rem); overflow-y: auto; scrollbar-width: thin; padding-right: 0.5rem; }
	.admin-bar .vf-filters { top: calc(var(--header-stick) + 32px + 1.5rem); }
}
.vf-plp__results { min-width: 0; }
.vf-plp__results .vf-shop__bar { margin-top: 0; }

/* Filter panel */
.vf-filters__head { display: flex; align-items: center; justify-content: space-between; padding: 1rem 0; border-top: 1px solid var(--line); }
.vf-filters__title { margin: 0; font-family: var(--sans); font-size: 0.75rem; font-weight: 500; letter-spacing: 0.22em; text-transform: uppercase; }
.vf-filters__close { appearance: none; background: none; border: 0; cursor: pointer; color: var(--muted); font: inherit; font-size: 0.75rem; letter-spacing: 0.2em; text-transform: uppercase; padding: 0.5rem 0; }
.vf-facet { border-top: 1px solid var(--line); }
.vf-facet:last-of-type { border-bottom: 1px solid var(--line); }
.vf-facet__title { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; padding: 1rem 0; font-size: 0.75rem; font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase; }
.vf-facet__title::-webkit-details-marker { display: none; }
.vf-facet__title::after { content: ''; width: 9px; height: 9px; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; transform: translateY(-3px) rotate(45deg); transition: transform var(--t-fast) var(--ease); }
.vf-facet[open] > .vf-facet__title::after { transform: translateY(2px) rotate(-135deg); }
.vf-facet.is-chosen > .vf-facet__title { color: var(--accent-text); }
.vf-facet__body { padding: 0 0 1.25rem; }
.vf-facet__body ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.1rem; }
.vf-facet--brand .vf-facet__body ul { max-height: 320px; overflow-y: auto; scrollbar-width: thin; padding-right: 0.25rem; }
.vf-facet__body li { margin: 0; padding: 0; display: flex; align-items: baseline; justify-content: space-between; gap: 0.75rem; font-size: var(--fs-small); }
.vf-facet__body li::before, .vf-facet__body li::after { content: none; display: none; } /* WooCommerce clearfix pseudo-elements would become flex items */
.vf-facet__body li a, .vf-facet__body li > span:first-child { display: inline-flex; align-items: center; gap: 0.6em; text-decoration: none; color: var(--fg-2); padding: 0.3rem 0; line-height: 1.3; }
.vf-facet__body li a::before { content: ''; flex: none; width: 13px; height: 13px; border: 1px solid var(--line-strong); background: transparent; transition: background var(--t-fast), border-color var(--t-fast); }
.vf-facet__body li a:hover { color: var(--fg); }
.vf-facet__body li a:hover::before { border-color: var(--fg); }
.vf-facet__body li.chosen a { color: var(--fg); }
.vf-facet__body li.chosen a::before { background: var(--fg); border-color: var(--fg); box-shadow: inset 0 0 0 2px var(--bg); }
.vf-facet__body li .count { font-size: 0.75rem; color: var(--muted); }
.vf-facet__body .woocommerce-widget-layered-nav-list__item--chosen a::before { background: var(--fg); border-color: var(--fg); box-shadow: inset 0 0 0 2px var(--bg); }
.vf-facet__widget .widget-title, .vf-facet__widget h2 { display: none; }
.vf-facet__find { width: 100%; font-size: var(--fs-small); padding: 0.5em 0; margin: 0 0 0.75rem; }
.vf-swatch { width: 13px; height: 13px; border-radius: 50%; background: var(--sw); border: 1px solid var(--line); flex: none; }
.vf-facet--pa-color li a::before, .vf-facet--pa-colour li a::before { display: none; }
.vf-facet--pa-color li.chosen .vf-swatch, .vf-facet--pa-colour li.chosen .vf-swatch { box-shadow: 0 0 0 2px var(--bg), 0 0 0 3px var(--fg); }
.vf-facet__toggle a::before { border-radius: 0; }

.vf-price__fields { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.vf-price label { display: grid; gap: 0.15rem; font-size: 0.6875rem; }
.vf-price input[type='number'] { padding: 0.45em 0; font-size: var(--fs-small); -moz-appearance: textfield; }
.vf-price input::-webkit-outer-spin-button, .vf-price input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.vf-price__apply { appearance: none; background: none; border: 0; border-bottom: 1px solid currentColor; padding: 0.3em 0; margin-top: 1rem; cursor: pointer; color: var(--fg); font: inherit; font-size: 0.75rem; letter-spacing: 0.2em; text-transform: uppercase; }

/* Phone drawer (with script; without it the panel sits above the results) */
.vf-filter-toggle { appearance: none; background: none; border: 1px solid var(--line-strong); color: var(--fg); cursor: pointer; font: inherit; font-size: 0.75rem; letter-spacing: 0.18em; text-transform: uppercase; padding: 0.6em 1.1em; display: inline-flex; align-items: center; gap: 0.5em; }
.vf-filter-toggle__n { display: inline-grid; place-items: center; min-width: 1.5em; height: 1.5em; background: var(--fg); color: var(--bg); font-size: 0.6875rem; letter-spacing: 0; border-radius: 50%; }
@media (max-width: 1023px) {
	.js .vf-filters {
		position: fixed; top: 0; bottom: 0; left: 0; z-index: 70;
		width: min(420px, 100%); padding: 0.5rem var(--gutter) 0;
		background: var(--bg); overflow-y: auto; overscroll-behavior: contain;
		transform: translateX(-100%); visibility: hidden;
		transition: transform var(--t-med) var(--ease), visibility 0s linear var(--t-med);
	}
	.js .vf-filters.is-open { transform: none; visibility: visible; transition-delay: 0s; }
	.js .vf-filters__head { border-top: 0; position: sticky; top: 0; background: var(--bg); z-index: 1; }
	.js .vf-filters__foot { position: sticky; bottom: 0; background: var(--bg); padding: 1rem 0; border-top: 1px solid var(--line); }
	.js .vf-filters__foot .vf-button { width: 100%; }
	body.vf-filters-open { overflow: hidden; }
	body.vf-filters-open::after { content: ''; position: fixed; inset: 0; z-index: 69; background: rgba(28, 27, 25, 0.38); }
	.no-js .vf-filters, html:not(.js) .vf-filters { margin-bottom: 2rem; }
	/* Filter choices are the most-tapped controls on a phone; give them a finger-sized row. */
	.vf-facet__body li a, .vf-facet__body li > span:first-child { padding: 0.65rem 0; min-height: 44px; }
	.vf-facet--brand .vf-facet__body ul { max-height: none; }
	.vf-chips a { padding: 0.7em 1.1em; }
}
@media (min-width: 1024px) {
	.vf-filter-toggle, .vf-filters__close, .vf-filters__foot { display: none !important; }
}

/* Applied filters */
.vf-active { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1rem; margin: -1.25rem 0 2rem; }
.vf-active__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.vf-active__list a { display: inline-flex; align-items: center; gap: 0.6em; padding: 0.45em 0.9em; background: var(--bg-2); font-size: 0.75rem; letter-spacing: 0.06em; text-decoration: none; }
.vf-active__list a:hover { background: var(--sand-2); }
.vf-active__clear { font-size: 0.75rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); }

/* Product grid inside the listing: 2 / 3 / 4 columns */
.vf-plp__results ul.products, .vf-plp__results ul.products[class*='columns-'] { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1.75rem, 3.5vw, 2.75rem) clamp(12px, 1.6vw, 24px); }
@media (min-width: 768px) { .vf-plp__results ul.products, .vf-plp__results ul.products[class*='columns-'] { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1280px) { .vf-plp__results ul.products.columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

/* Product card */
.vf-pcard__media { position: relative; aspect-ratio: 3 / 4; background: #efebe4; overflow: hidden; margin-bottom: 0.9rem; }
.vf-dark .vf-pcard__media { background: #e9e4dc; }
.woocommerce ul.products li.product .vf-pcard__media img,
ul.products li.product .vf-pcard__media img {
	position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; margin: 0; aspect-ratio: auto;
	object-fit: contain; padding: 6%; background: transparent; mix-blend-mode: multiply;
	transition: opacity var(--t-med) var(--ease), transform var(--t-slow) var(--ease);
}
ul.products li.product:hover .vf-pcard__media img { transform: none; }
ul.products li.product .vf-pcard__media .vf-pcard__alt { opacity: 0; }
@media (hover: hover) {
	ul.products li.product:hover .vf-pcard__media img:not(.vf-pcard__alt):not(:only-of-type) { opacity: 0; }
	ul.products li.product:hover .vf-pcard__media .vf-pcard__alt { opacity: 1; }
	ul.products li.product:hover .vf-pcard__media img:only-of-type { transform: scale(1.03); }
}
.vf-pcard__flag { position: absolute; top: 0.75rem; right: 0.75rem; z-index: 2; padding: 0.3em 0.7em; background: var(--paper); font-size: 0.6875rem; letter-spacing: 0.18em; text-transform: uppercase; }
.vf-pcard__brand { margin: 0 0 0.25rem; font-size: 0.6875rem; font-weight: 500; letter-spacing: 0.2em; text-transform: uppercase; color: var(--fg); }
ul.products li.product .woocommerce-loop-product__title { font-family: var(--sans); font-size: var(--fs-small); font-weight: 400; line-height: 1.4; color: var(--fg-2); margin: 0 0 0.35rem; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
ul.products li.product .price { margin-bottom: 0; color: var(--fg); }
ul.products li.product .price del { font-size: 0.9em; }
ul.products li.product .price ins { color: var(--accent-text); }

/* Product page */
.vf-pdp__brand { margin: 0 0 0.5rem; font-size: 0.75rem; font-weight: 500; letter-spacing: 0.24em; text-transform: uppercase; }
.vf-pdp__brand a { text-decoration: none; border-bottom: 1px solid var(--line-strong); padding-bottom: 0.15em; }
.single-product div.product .product_title { font-size: clamp(1.75rem, 1.4rem + 1.4vw, 2.75rem); line-height: 1.12; }
.single-product div.product .woocommerce-product-gallery,
.single-product div.product .woocommerce-product-gallery__image { background: #efebe4; } /* each slide carries the tone: the slider's transform isolates blending */
.single-product div.product .woocommerce-product-gallery__image img { mix-blend-mode: multiply; background: transparent; }
.single-product div.product .flex-control-thumbs img { background: #efebe4; mix-blend-mode: multiply; }
.single-product div.product .flex-control-thumbs li { width: 64px; }
.vf-service { list-style: none; margin: 0 0 1.75rem; padding: 1rem 0 0; border-top: 1px solid var(--line); display: grid; gap: 0.5rem; font-size: var(--fs-small); color: var(--fg-2); }
.vf-service li { display: flex; gap: 0.75rem; align-items: baseline; }
.vf-service li::before { content: ''; flex: none; width: 5px; height: 5px; border-radius: 50%; background: var(--accent); transform: translateY(-2px); }
.vf-acc { margin: 0 0 2rem; border-bottom: 1px solid var(--line); }
.vf-acc__item { border-top: 1px solid var(--line); }
.vf-acc__title { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; padding: 1.1rem 0; font-size: 0.75rem; font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase; }
.vf-acc__title::-webkit-details-marker { display: none; }
.vf-acc__title::after { content: '+'; font-size: 1.125rem; font-weight: 300; letter-spacing: 0; line-height: 1; }
.vf-acc__item[open] > .vf-acc__title::after { content: '\2212'; }
.vf-acc__body { padding: 0 0 1.5rem; color: var(--fg-2); font-size: var(--fs-small); }
.vf-acc__body > :last-child { margin-bottom: 0; }
.vf-acc__body table.woocommerce-product-attributes { border: 0; margin: 0; }
.vf-acc__body table.woocommerce-product-attributes th, .vf-acc__body table.woocommerce-product-attributes td { border: 0; border-bottom: 1px solid var(--line); padding: 0.6rem 0; background: none; font-style: normal; text-align: left; vertical-align: top; }
.vf-acc__body table.woocommerce-product-attributes th { width: 38%; font-weight: 500; font-size: 0.75rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); }
.vf-acc__body table.woocommerce-product-attributes td p { margin: 0; }
.vf-acc__links a { color: var(--fg); }

.single-product div.product .woocommerce-variation-add-to-cart,
.single-product div.product form.cart:not(.variations_form) { display: flex; flex-wrap: wrap; align-items: stretch; gap: 0.75rem; }
.single-product div.product form.cart .quantity .qty { height: 100%; padding-block: 0; min-height: 3.2rem; }
.single-product div.product form.cart .single_add_to_cart_button { flex: 1 1 12rem; min-height: 3.2rem; }
@media (max-width: 1023px) {
	.vf-plp__results .vf-shop__bar .woocommerce-result-count { order: 3; flex-basis: 100%; }
}

/* Size and color choices as buttons (the native select stays in the form, visually hidden) */
.vf-choices { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0.25rem 0 0.5rem; }
.vf-choice { appearance: none; min-width: 3.25rem; padding: 0.75em 1em; border: 1px solid var(--line-strong); background: transparent; color: var(--fg); font: inherit; font-size: var(--fs-small); line-height: 1; cursor: pointer; transition: border-color var(--t-fast), background var(--t-fast), color var(--t-fast); }
.vf-choice:hover { border-color: var(--fg); }
.vf-choice[aria-pressed='true'] { background: var(--fg); color: var(--bg); border-color: var(--fg); }
.vf-choice:disabled { color: var(--muted); border-style: dashed; cursor: not-allowed; text-decoration: line-through; }
.vf-choices-select { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.single-product div.product table.variations, .single-product div.product table.variations tbody, .single-product div.product table.variations tr, .single-product div.product table.variations th, .single-product div.product table.variations td { display: block; width: 100%; }
.single-product div.product table.variations th { padding-bottom: 0; }

/* Home: category tiles, designer row, product rails, service row */
.vf-shopping .vf-shop { padding-top: clamp(1.25rem, 3vw, 2.25rem); }
.vf-tiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(12px, 1.6vw, 24px); }
@media (min-width: 900px) { .vf-tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.vf-tile { display: block; text-decoration: none; color: inherit; }
.vf-tile__media { display: block; margin-bottom: 0.9rem; }
.vf-tile__media img { transition: transform var(--t-slow) var(--ease); }
.vf-tile:hover .vf-tile__media img { transform: scale(1.03); }
.vf-tile__label { display: block; font-size: 0.75rem; font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase; }
.vf-designer-row { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.75rem clamp(20px, 3vw, 48px); }
.vf-designer-row a, .vf-designer-row span { font-family: var(--serif); font-size: clamp(1.125rem, 1rem + 0.6vw, 1.625rem); text-decoration: none; }
.vf-designer-row a:hover { text-decoration: underline; text-decoration-color: var(--line-strong); text-underline-offset: 4px; }
.vf-home-rail ul.products, .vf-home-rail ul.products[class*='columns-'] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 768px) { .vf-home-rail ul.products, .vf-home-rail ul.products[class*='columns-'] { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.vf-service-row { list-style: none; margin: 0; padding: clamp(1.5rem, 3vw, 2.5rem) 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); display: grid; gap: 1.25rem clamp(24px, 4vw, 64px); grid-template-columns: 1fr; }
@media (min-width: 768px) { .vf-service-row { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); } }
.vf-service-row__item { font-size: var(--fs-small); color: var(--fg-2); display: flex; gap: 0.75rem; align-items: baseline; }
.vf-service-row__item::before { content: ''; flex: none; width: 6px; height: 6px; border-radius: 50%; background: var(--accent); transform: translateY(-2px); }

/* Brands A–Z */
.vf-brands__search { max-width: 420px; margin: 0 0 1.5rem; }
.vf-brands__letters { display: flex; flex-wrap: wrap; gap: 0.25rem 0.9rem; padding: 1rem 0; margin-bottom: 2rem; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); position: sticky; top: var(--header-stick); background: var(--bg); z-index: 2; }
.vf-brands__letters a { font-family: var(--serif); font-size: 1.125rem; text-decoration: none; padding: 0.15rem 0.1rem; }
.vf-brands__groups { display: grid; gap: 2.5rem; }
.vf-brands__group { display: grid; grid-template-columns: 3rem minmax(0, 1fr); gap: 1rem; scroll-margin-top: calc(var(--header-stick) + 5rem); }
.vf-brands__letter { margin: 0; font-size: var(--fs-h3); line-height: 1; color: var(--muted); }
.vf-brands__list { list-style: none; margin: 0; padding: 0; columns: 1; column-gap: 2rem; }
@media (min-width: 640px) { .vf-brands__list { columns: 2; } }
@media (min-width: 1024px) { .vf-brands__list { columns: 4; } }
.vf-brands__list li { break-inside: avoid; padding: 0.3rem 0; }
.vf-brands__list a { text-decoration: none; font-size: var(--fs-body); }
.vf-brands__list a:hover { text-decoration: underline; text-decoration-color: var(--line-strong); }
.vf-brands__none { color: var(--muted); }

/* Blocks (cart/checkout/mini-cart blocks) — align fonts and buttons with the theme. */
.wc-block-components-button { font-family: var(--sans); }
.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout { --wc-form-border-color: var(--line-strong); font-family: var(--sans); }
.wc-block-components-product-name { font-family: var(--serif); font-size: 1.125rem; }
.wc-block-components-sidebar .wc-block-components-totals-item { font-size: var(--fs-small); }

/* Contrast: WooCommerce's own accent and the bronze both fall just under 4.5:1 on ivory for small text. */
.woocommerce div.product p.price ins, .woocommerce div.product span.price ins, .woocommerce ul.products li.product .price ins { color: var(--accent-text); text-decoration: none; }
.woocommerce-pagination .page-numbers, .woocommerce-pagination .page-numbers:hover, .woocommerce-pagination a.page-numbers { color: var(--fg-2); }
.woocommerce-pagination ul.page-numbers li span.page-numbers.current, .woocommerce-pagination .page-numbers.current { color: var(--fg); background: none; }
.vf-pcard__flag, .woocommerce span.onsale { color: var(--fg); }

/* The line that stands where the buy button will be, until purchasing opens. */
.vf-purchase-note {
	margin: 1.25rem 0 0;
	padding: 0.9rem 1rem;
	border: 1px solid var(--rule, #e3ded7);
	border-radius: 2px;
	background: var(--surface-2, #faf8f5);
	color: var(--muted-text, #5f5a53);
	font-size: 0.9375rem;
	line-height: 1.5;
}
