/*
 * WooCommerce in the VonSteffen design language: dark ground, thin borders,
 * Cormorant headings, uppercase tracked labels, gold primary actions.
 */

.vs-store { --vs-gap: 2rem; }

/* ---------- Buttons ---------- */

.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce a.button.alt, .woocommerce button.button.alt,
.woocommerce-page a.button, .wc-block-components-button:not(.is-link),
.wp-block-button__link, .woocommerce a.added_to_cart {
	display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
	background: var(--primary); color: var(--primary-foreground);
	border: 1px solid var(--primary); border-radius: 0;
	padding: .85rem 1.75rem; font-family: var(--font-sans); font-weight: 500;
	font-size: .75rem; line-height: 1.2; letter-spacing: .2em; text-transform: uppercase;
	transition: background-color .15s, color .15s, opacity .15s; text-decoration: none;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover,
.wc-block-components-button:not(.is-link):hover, .wp-block-button__link:hover {
	background: transparent; color: var(--primary); border-color: var(--primary);
}
.woocommerce button.button:disabled, .woocommerce button.button.disabled,
.woocommerce button.button.alt.disabled, .woocommerce button.button.alt:disabled {
	background: var(--muted); color: var(--muted-foreground); border-color: var(--border); opacity: 1; cursor: not-allowed;
}
.woocommerce a.added_to_cart { background: transparent; color: var(--primary); margin-left: .75rem; }

/* ---------- Breadcrumbs, notices, result count, ordering ---------- */

.woocommerce .woocommerce-breadcrumb, .vs-breadcrumb {
	margin: 0 0 2rem; font-size: .7rem; letter-spacing: .2em; text-transform: uppercase; color: var(--muted-foreground);
}
.woocommerce .woocommerce-breadcrumb a { color: var(--muted-foreground); }
.woocommerce .woocommerce-breadcrumb a:hover { color: var(--primary); }
.vs-crumb-sep { margin: 0 .6rem; color: var(--border); }

.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-noreviews,
.wc-block-components-notice-banner {
	background: var(--card) !important; color: var(--foreground) !important;
	border: 1px solid var(--border) !important; border-top: 2px solid var(--primary) !important;
	border-radius: 0 !important; font-size: .9rem;
}
.woocommerce-error { border-top-color: var(--destructive) !important; }
.woocommerce-message::before, .woocommerce-info::before { color: var(--primary); }
.woocommerce-message a.button, .woocommerce-info a.button { padding: .5rem 1rem; }
.wc-block-components-notice-banner > svg { fill: var(--primary); background: transparent; }

.woocommerce .woocommerce-result-count { font-size: .75rem; letter-spacing: .16em; text-transform: uppercase; color: var(--muted-foreground); margin: 0 0 2rem; }
.woocommerce .woocommerce-ordering { margin: 0 0 2rem; }
.woocommerce .woocommerce-ordering select { padding: .55rem 2rem .55rem .8rem; font-size: .8rem; }

/* ---------- Product grid ---------- */

.woocommerce ul.products { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--vs-gap); margin: 0; padding: 0; clear: both; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
@media (max-width: 900px) { .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .woocommerce ul.products { grid-template-columns: minmax(0, 1fr); } }

.woocommerce ul.products li.product {
	float: none !important; width: auto !important; margin: 0 !important; padding: 0 0 1.5rem;
	border: 1px solid color-mix(in oklab, var(--border) 70%, transparent);
	display: flex; flex-direction: column; transition: border-color .2s; text-align: left;
}
.woocommerce ul.products li.product:hover { border-color: var(--primary); }
.woocommerce ul.products li.product a img {
	margin: 0 0 1.5rem; aspect-ratio: 4 / 5; object-fit: cover; width: 100%;
	transition: transform .7s; background: var(--muted);
}
.woocommerce ul.products li.product .woocommerce-LoopProduct-link { display: block; overflow: hidden; color: inherit; }
.woocommerce ul.products li.product:hover a img { transform: scale(1.03); }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--font-display); font-size: 1.6rem; font-weight: 400; line-height: 1.2;
	padding: 0 1.5rem; margin: 0; color: var(--foreground);
}
.woocommerce ul.products li.product .price {
	display: block; padding: 0 1.5rem; margin: .6rem 0 1.25rem;
	color: var(--muted-foreground); font-size: .9rem;
}
.woocommerce ul.products li.product .button { margin: auto 1.5rem 0; align-self: flex-start; }
.woocommerce ul.products li.product .onsale, .woocommerce span.onsale {
	background: var(--primary); color: var(--primary-foreground); border-radius: 0; min-height: 0; min-width: 0;
	padding: .35rem .7rem; line-height: 1; font-size: .65rem; letter-spacing: .16em; text-transform: uppercase; font-weight: 500;
	top: 1rem; left: 1rem; right: auto; margin: 0;
}

/* Swatches plugin in loops */
.woocommerce ul.products li.product .variable-items-wrapper { padding: 0 1.5rem; }

.woocommerce nav.woocommerce-pagination ul { border: 0; display: flex; gap: .5rem; justify-content: center; margin-top: 3rem; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span {
	border: 1px solid var(--border); color: var(--muted-foreground); padding: .6rem .9rem; min-width: 2.5rem;
}
.woocommerce nav.woocommerce-pagination ul li span.current, .woocommerce nav.woocommerce-pagination ul li a:hover {
	background: var(--primary); color: var(--primary-foreground); border-color: var(--primary);
}

/* ---------- Price ---------- */

.woocommerce div.product p.price, .woocommerce div.product span.price, .woocommerce .price {
	color: var(--foreground); font-family: var(--font-sans);
}
.woocommerce .price del { color: var(--muted-foreground); opacity: .7; }
.woocommerce .price ins { text-decoration: none; color: var(--primary); }

/* ---------- Single product ---------- */

.woocommerce div.product { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 3.5rem; align-items: start; }
.woocommerce div.product > .woocommerce-product-gallery,
.woocommerce div.product > #wpgs-gallery,
.woocommerce div.product > .summary {
	float: none !important; width: auto !important; min-width: 0 !important; max-width: none !important; margin: 0 !important;
}
/* WooGallery (gallery-slider-for-woocommerce) sizes itself with inline styles meant for a float layout. */
.woocommerce div.product > #wpgs-gallery .wcgs-carousel, .woocommerce div.product > #wpgs-gallery .gallery-navigation-carousel-wrapper { max-width: 100%; }
.woocommerce div.product > #wpgs-gallery .wcgs-carousel img { background: var(--muted); }
.woocommerce div.product > .woocommerce-tabs,
.woocommerce div.product > .related,
.woocommerce div.product > .upsells,
.woocommerce div.product > .up-sells { grid-column: 1 / -1; }
@media (max-width: 900px) {
	.woocommerce div.product { grid-template-columns: minmax(0, 1fr); gap: 2.5rem; }
}
.woocommerce div.product .woocommerce-product-gallery { position: relative; }
.woocommerce div.product .woocommerce-product-gallery__image img { background: var(--muted); }
.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs { display: grid; grid-template-columns: repeat(5, 1fr); gap: .6rem; margin-top: .6rem; }
.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs li { width: auto !important; float: none !important; margin: 0 !important; }
.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs img { opacity: .55; border: 1px solid transparent; transition: opacity .15s; }
.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs img.flex-active,
.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs img:hover { opacity: 1; border-color: var(--primary); }
.woocommerce div.product .woocommerce-product-gallery__trigger {
	background: var(--background); border: 1px solid var(--border); border-radius: 0; top: 1rem; right: 1rem;
}
.woocommerce div.product .woocommerce-product-gallery__trigger::before { border-color: var(--foreground); }
.woocommerce div.product .woocommerce-product-gallery__trigger::after { background: var(--foreground); }

.woocommerce div.product .product_title {
	font-family: var(--font-display); font-weight: 400; font-size: clamp(2.5rem, 5vw, 3.75rem); line-height: 1.05; color: var(--foreground); margin: 0 0 1rem;
}
.woocommerce div.product .summary p.price { font-size: 1.1rem; margin: 0 0 1.75rem; color: var(--muted-foreground); }
.woocommerce div.product .woocommerce-product-details__short-description { color: var(--muted-foreground); line-height: 1.75; margin-bottom: 1.75rem; }

.woocommerce div.product form.cart { margin: 0 0 2rem; }
.woocommerce div.product form.cart .variations { margin-bottom: 1.5rem; border: 0; }
.woocommerce div.product form.cart .variations tr { display: block; margin-bottom: 1.25rem; }
.woocommerce div.product form.cart .variations th, .woocommerce div.product form.cart .variations td { display: block; padding: 0; text-align: left; line-height: 1.4; }
.woocommerce div.product form.cart .variations th.label, .woocommerce div.product form.cart .variations label {
	font-size: .7rem; font-weight: 400; letter-spacing: .2em; text-transform: uppercase; color: var(--foreground); margin-bottom: .6rem; display: block;
}
.woocommerce div.product form.cart .variations select { width: 100%; max-width: 24rem; padding: .75rem 1rem; }
.woocommerce div.product form.cart .reset_variations { font-size: .7rem; letter-spacing: .16em; text-transform: uppercase; color: var(--muted-foreground); margin-top: .6rem; display: inline-block; }
.woocommerce div.product .woocommerce-variation-price { margin-bottom: 1rem; }
.woocommerce div.product .woocommerce-variation-availability p, .woocommerce div.product .stock { color: var(--muted-foreground); font-size: .85rem; }

.woocommerce div.product form.cart div.quantity { margin-right: .75rem; }
.woocommerce .quantity .qty {
	width: 4.5rem; height: 100%; min-height: 2.9rem; padding: .6rem; text-align: center;
	background: var(--background); color: var(--foreground); border: 1px solid var(--input);
}
.woocommerce div.product form.cart .button { min-height: 2.9rem; }
.woocommerce div.product form.cart .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; align-items: stretch; gap: .75rem 0; }

/* Variation swatches plugin: square, thin, gold when selected */
.woo-variation-swatches .variable-items-wrapper .variable-item:not(.radio-variable-item) {
	border-radius: 0 !important; box-shadow: 0 0 0 1px var(--border) !important; background: var(--background) !important; color: var(--foreground) !important;
}
.woo-variation-swatches .variable-items-wrapper .variable-item:not(.radio-variable-item):hover { box-shadow: 0 0 0 1px var(--muted-foreground) !important; }
.woo-variation-swatches .variable-items-wrapper .variable-item:not(.radio-variable-item).selected,
.woo-variation-swatches .variable-items-wrapper .variable-item:not(.radio-variable-item).selected:hover { box-shadow: 0 0 0 2px var(--primary) !important; }
.woo-variation-swatches .variable-items-wrapper .variable-item .variable-item-span { font-size: .85rem; }
.woo-variation-swatches .variable-items-wrapper .variable-item.disabled { opacity: .35 !important; }

/* Drag & drop upload plugin */
.woocommerce div.product [class*="dndmfu"], .woocommerce div.product .codedropz-upload-wrapper, .woocommerce div.product .codedropz-upload-handler {
	border-color: var(--border) !important; border-radius: 0 !important; background: var(--card) !important; color: var(--muted-foreground) !important;
}
.woocommerce div.product .codedropz-upload-inner h3 { font-family: var(--font-display); color: var(--foreground); font-weight: 400; }
.woocommerce div.product .codedropz-btn-wrap a.cd-upload-btn { color: var(--primary); }

.woocommerce div.product .product_meta {
	border-top: 1px solid var(--border); padding-top: 1.25rem; margin-top: 1.5rem;
	font-size: .7rem; letter-spacing: .16em; text-transform: uppercase; color: var(--muted-foreground); display: flex; flex-wrap: wrap; gap: .5rem 1.5rem;
}
.woocommerce div.product .product_meta a { color: var(--foreground); }
.woocommerce div.product .product_meta a:hover { color: var(--primary); }

.vs-consult-note {
	border: 1px solid var(--border); background: var(--card); padding: 1.5rem; margin-top: 2rem;
	font-size: .9rem; line-height: 1.7; color: var(--muted-foreground);
}
.vs-consult-note > * + * { margin-top: .75rem; }
.vs-consult-links { display: flex; flex-wrap: wrap; gap: 1.5rem; }
.vs-consult-links a { font-size: .7rem; letter-spacing: .2em; text-transform: uppercase; color: var(--primary); }
.vs-consult-links a:hover { color: var(--foreground); }

/* Tabs */
.woocommerce div.product .woocommerce-tabs { border-top: 1px solid var(--border); padding-top: 1rem; }
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; margin: 0 0 2rem; display: flex; flex-wrap: wrap; gap: 0 2rem; border-bottom: 1px solid var(--border); overflow: visible; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before, .woocommerce div.product .woocommerce-tabs ul.tabs::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li,
.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
	background: transparent; border: 0; border-radius: 0; margin: 0; padding: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	display: block; padding: 1rem 0; margin-bottom: -1px; border-bottom: 1px solid transparent;
	font-size: .72rem; font-weight: 400; letter-spacing: .2em; text-transform: uppercase; color: var(--muted-foreground);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a, .woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
	color: var(--primary); border-bottom-color: var(--primary);
}
.woocommerce div.product .woocommerce-tabs .panel { color: var(--muted-foreground); line-height: 1.8; max-width: 48rem; margin: 0 0 3rem; }
.woocommerce div.product .woocommerce-tabs .panel > * + * { margin-top: 1.1em; }
.woocommerce div.product .woocommerce-tabs .panel h2 { font-family: var(--font-display); font-size: 1.875rem; font-weight: 400; color: var(--foreground); }
.woocommerce table.shop_attributes { border-top: 1px solid var(--border); }
.woocommerce table.shop_attributes th, .woocommerce table.shop_attributes td {
	border-bottom: 1px solid var(--border); background: transparent !important; padding: .8rem 1rem; font-style: normal; color: var(--muted-foreground);
}
.woocommerce table.shop_attributes th { color: var(--foreground); font-weight: 400; font-size: .75rem; letter-spacing: .16em; text-transform: uppercase; width: 30%; }
.woocommerce table.shop_attributes td p { padding: 0; }

/* Size chart plugin table */
.woocommerce div.product .woocommerce-tabs .panel table { width: 100%; border-collapse: collapse; }
.woocommerce div.product .woocommerce-tabs .panel table th, .woocommerce div.product .woocommerce-tabs .panel table td { border: 1px solid var(--border); padding: .55rem .75rem; text-align: center; }
.woocommerce div.product .woocommerce-tabs .panel table th { color: var(--foreground); font-weight: 500; }

/* Reviews */
.woocommerce #reviews #comments ol.commentlist li .comment-text { border-color: var(--border); border-radius: 0; }
.woocommerce #review_form #respond textarea, .woocommerce #review_form #respond input[type="text"], .woocommerce #review_form #respond input[type="email"] { padding: .75rem 1rem; width: 100%; }
.woocommerce .star-rating span::before, .woocommerce p.stars a { color: var(--primary); }

/* Related */
.woocommerce div.product .related > h2, .woocommerce div.product .upsells > h2 {
	font-family: var(--font-display); font-weight: 400; font-size: clamp(1.875rem, 3vw, 2.25rem); margin: 0 0 2rem; color: var(--foreground);
}
.woocommerce div.product .related { border-top: 1px solid var(--border); padding-top: 3.5rem; }

/* ---------- Classic forms (account, reviews) ---------- */

.woocommerce form .form-row label { font-size: .7rem; letter-spacing: .16em; text-transform: uppercase; color: var(--foreground); margin-bottom: .4rem; }
.woocommerce form .form-row .input-text, .woocommerce form .form-row select { padding: .75rem 1rem; }
.woocommerce form .form-row .required { color: var(--primary); }
.woocommerce form.login, .woocommerce form.register, .woocommerce form.checkout_coupon, .woocommerce form.lost_reset_password {
	border: 1px solid var(--border) !important; border-radius: 0 !important; background: var(--card); padding: 2rem !important;
}
.woocommerce-account .u-columns h2, .woocommerce-account h2, .woocommerce-account h3 { font-family: var(--font-display); font-weight: 400; color: var(--foreground); font-size: 1.875rem; margin-bottom: 1rem; }
.select2-container--default .select2-selection--single { background: var(--background); border: 1px solid var(--input); border-radius: 0; height: auto; padding: .45rem .5rem; }
.select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--foreground); }
.select2-dropdown { background: var(--popover); border-color: var(--border); color: var(--foreground); border-radius: 0; }
.select2-container--default .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-results__option--highlighted[data-selected] { background: var(--primary); color: var(--primary-foreground); }

/* ---------- My account ---------- */

.woocommerce-account .woocommerce { display: grid; grid-template-columns: 14rem minmax(0, 1fr); gap: 3rem; }
.woocommerce-account .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
.woocommerce-account:not(.logged-in) .woocommerce { display: block; }
@media (max-width: 768px) { .woocommerce-account .woocommerce { grid-template-columns: minmax(0, 1fr); } }
.woocommerce-account .woocommerce-MyAccount-navigation, .woocommerce-account .woocommerce-MyAccount-content { float: none; width: auto; }
.woocommerce-MyAccount-navigation ul { list-style: none !important; padding: 0 !important; margin: 0 !important; border-top: 1px solid var(--border); }
.woocommerce-MyAccount-navigation li { margin: 0 !important; border-bottom: 1px solid var(--border); }
.woocommerce-MyAccount-navigation li a { display: block; padding: .85rem 0; font-size: .72rem; letter-spacing: .18em; text-transform: uppercase; color: var(--muted-foreground); text-decoration: none !important; }
.woocommerce-MyAccount-navigation li.is-active a, .woocommerce-MyAccount-navigation li a:hover { color: var(--primary); }

/* ---------- Tables (orders, classic cart) ---------- */

.woocommerce table.shop_table { border: 1px solid var(--border); border-radius: 0; border-collapse: collapse; color: var(--muted-foreground); }
.woocommerce table.shop_table th { color: var(--foreground); font-weight: 400; font-size: .72rem; letter-spacing: .16em; text-transform: uppercase; }
.woocommerce table.shop_table td, .woocommerce table.shop_table th, .woocommerce table.shop_table tfoot td, .woocommerce table.shop_table tfoot th { border-top: 1px solid var(--border); padding: 1rem; }

/* ---------- Cart & checkout blocks ---------- */

.vs-store .wp-block-woocommerce-cart, .vs-store .wp-block-woocommerce-checkout { color: var(--foreground); }
.vs-store .wc-block-components-title, .vs-store .wc-block-cart__totals-title,
.vs-store .wc-block-components-checkout-step__title {
	font-family: var(--font-display) !important; font-weight: 400 !important; text-transform: none !important; letter-spacing: 0 !important; font-size: 1.6rem !important; color: var(--foreground);
}
.vs-store .wc-block-cart-items__header, .vs-store .wc-block-components-totals-item__label,
.vs-store .wc-block-components-product-metadata, .vs-store .wc-block-components-checkout-step__description {
	color: var(--muted-foreground);
}
.vs-store .wc-block-cart-items__header { font-size: .7rem; letter-spacing: .2em; }
.vs-store table.wc-block-cart-items, .vs-store .wc-block-cart-items td, .vs-store .wc-block-cart-items th,
.vs-store .wc-block-components-totals-wrapper, .vs-store .wc-block-components-order-summary-item,
.vs-store .wc-block-components-sidebar-layout .wc-block-components-main, .vs-store .wc-block-checkout__sidebar {
	border-color: var(--border) !important;
}
.vs-store .wc-block-components-product-name { font-family: var(--font-display); font-size: 1.35rem; color: var(--foreground) !important; text-decoration: none !important; }
.vs-store .wc-block-components-product-name:hover { color: var(--primary) !important; }
.vs-store .wc-block-cart-item__remove-link { color: var(--muted-foreground) !important; font-size: .75rem !important; letter-spacing: .1em; }
.vs-store .wc-block-components-quantity-selector { border-radius: 0 !important; }
.vs-store .wc-block-components-quantity-selector::after { border-color: var(--input) !important; border-radius: 0 !important; opacity: 1 !important; }
.vs-store .wc-block-components-quantity-selector input, .vs-store .wc-block-components-quantity-selector button { color: var(--foreground) !important; background: transparent !important; }
.vs-store .wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.vs-store .wc-block-components-totals-footer-item .wc-block-components-totals-item__label { font-size: 1.2rem; color: var(--foreground); }
.vs-store .wc-block-components-sidebar .wc-block-components-panel, .vs-store .wc-block-checkout__sidebar .wc-block-components-order-summary { color: var(--foreground); }

.vs-store .wc-block-components-text-input input, .vs-store .wc-block-components-combobox .wc-block-components-combobox-control input,
.vs-store .wc-block-components-form .wc-block-components-text-input input, .vs-store .wc-blocks-components-select .wc-blocks-components-select__select,
.vs-store .wc-block-components-textarea, .vs-store .wc-block-components-address-form select {
	background: var(--background) !important; color: var(--foreground) !important; border: 1px solid var(--input) !important; border-radius: 0 !important;
}
.vs-store .wc-block-components-text-input input:focus, .vs-store .wc-blocks-components-select__select:focus {
	border-color: var(--primary) !important; box-shadow: none !important; outline: none !important;
}
.vs-store .wc-block-components-text-input label, .vs-store .wc-blocks-components-select__label,
.vs-store .wc-block-components-combobox .wc-block-components-combobox-control label { color: var(--muted-foreground) !important; }
.vs-store .wc-blocks-components-select__container { background: var(--background) !important; border-radius: 0 !important; }
.vs-store .wc-blocks-components-select__expand { fill: var(--foreground); }

.vs-store .wc-block-components-radio-control__option, .vs-store .wc-block-components-radio-control-accordion-option,
.vs-store .wc-block-components-radio-control--highlight-checked::after,
.vs-store .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted,
.vs-store .wc-block-components-radio-control--highlight-checked label.wc-block-components-radio-control__option--checked-option-highlighted {
	border-color: var(--border) !important; border-radius: 0 !important; box-shadow: none !important;
}
.vs-store .wc-block-components-radio-control--highlight-checked label.wc-block-components-radio-control__option--checked-option-highlighted,
.vs-store .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted {
	box-shadow: inset 0 0 0 1px var(--primary) !important;
}
.vs-store .wc-block-components-radio-control__input, .vs-store .wc-block-components-checkbox__input {
	background: var(--background) !important; border-color: var(--muted-foreground) !important; border-radius: 0 !important;
}
.vs-store .wc-block-components-radio-control__input { border-radius: 50% !important; }
.vs-store .wc-block-components-radio-control__input:checked::before { background: var(--primary) !important; }
.vs-store .wc-block-components-checkbox__input:checked { background: var(--primary) !important; border-color: var(--primary) !important; }
.vs-store .wc-block-components-checkbox__mark { fill: var(--primary-foreground) !important; }

.vs-store .wc-block-components-checkout-place-order-button, .vs-store .wc-block-cart__submit-button {
	width: 100%; padding: 1.1rem 1.5rem !important;
}
.vs-store .wc-block-components-button.is-link, .vs-store .wc-block-components-checkout-return-to-cart-button { color: var(--muted-foreground) !important; }
.vs-store .wc-block-components-panel__button, .vs-store .wc-block-components-totals-coupon-link { color: var(--foreground) !important; }
.vs-store .wc-block-components-express-payment__title-container::before,
.vs-store .wc-block-components-express-payment__title-container::after,
.vs-store .wc-block-components-express-payment--checkout .wc-block-components-express-payment__content { border-color: var(--border) !important; }
.vs-store .wc-block-components-express-payment__title { color: var(--muted-foreground) !important; background: var(--background) !important; }
.vs-store .wc-block-components-order-summary-item__quantity { background: var(--primary) !important; color: var(--primary-foreground) !important; border-color: var(--background) !important; box-shadow: none !important; }
.vs-store .wc-block-components-order-summary-item__image img { background: var(--muted); }
.vs-store .wc-block-checkout__terms, .vs-store .wc-block-components-checkout-policies { color: var(--muted-foreground); }
.vs-store .wc-block-checkout__terms a, .vs-store .wc-block-components-checkout-policies a { color: var(--primary); }

/* Empty cart block */
.vs-store .wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title { font-family: var(--font-display); font-weight: 400; font-size: 2rem; }
.vs-store .wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title::before { background-color: var(--primary) !important; }
.vs-store .wp-block-woocommerce-empty-cart-block hr { border-color: var(--border); }
.vs-store .wc-block-grid__product-title { font-family: var(--font-display); font-size: 1.3rem; color: var(--foreground); }
.vs-store .wc-block-grid__product-image img { background: var(--muted); }

/* Payment method logos and Stripe/WooPayments card element read on dark */
.vs-store .wc-block-components-payment-method-icons .wc-block-components-payment-method-icon { background: #fff; border-radius: 2px; }

/* Order received */
.woocommerce-order .woocommerce-thankyou-order-received { font-family: var(--font-display); font-size: 2rem; color: var(--foreground); }
.woocommerce ul.order_details { border: 1px solid var(--border); padding: 1.5rem; display: flex; flex-wrap: wrap; gap: 1rem 2rem; }
.woocommerce ul.order_details li { border: 0; margin: 0; padding: 0; font-size: .7rem; letter-spacing: .16em; color: var(--muted-foreground); }
.woocommerce ul.order_details li strong { color: var(--foreground); font-size: .95rem; letter-spacing: 0; text-transform: none; margin-top: .3rem; }

/* ---------- Size help, size guide dialog, product facts ---------- */

.vs-size-help { margin: 0 0 1.5rem; font-size: .85rem; line-height: 1.6; color: var(--muted-foreground); }
.vs-size-help > * + * { margin-top: .6rem; }
.vs-size-help a { color: var(--primary); text-decoration: underline; text-underline-offset: 3px; }
.vs-size-guide-link {
	background: none; border: 0; padding: 0; cursor: pointer; color: var(--foreground);
	font-size: .72rem; letter-spacing: .2em; text-transform: uppercase;
	text-decoration: underline; text-decoration-color: var(--primary); text-underline-offset: 5px;
}
.vs-size-guide-link:hover { color: var(--primary); }

.vs-size-guide {
	width: min(46rem, calc(100vw - 2rem)); max-height: calc(100vh - 3rem); padding: 0; margin: auto;
	background: var(--card); color: var(--foreground); border: 1px solid var(--border);
	box-shadow: 0 30px 80px -30px rgb(0 0 0 / .8);
}
.vs-size-guide::backdrop { background: rgb(0 0 0 / .65); }
.vs-size-guide__head { display: flex; align-items: center; justify-content: space-between; padding: 1.25rem 1.5rem; border-bottom: 1px solid var(--border); position: sticky; top: 0; background: var(--card); z-index: 1; }
.vs-size-guide__head h2 { font-size: 1.75rem; font-weight: 400; }
.vs-size-guide__close { background: none; border: 0; color: var(--muted-foreground); font-size: 1.75rem; line-height: 1; cursor: pointer; }
.vs-size-guide__close:hover { color: var(--primary); }
.vs-size-guide__tabs { display: flex; gap: 2rem; padding: 0 1.5rem; border-bottom: 1px solid var(--border); }
.vs-size-guide__tabs button {
	background: none; border: 0; border-bottom: 1px solid transparent; margin-bottom: -1px; padding: .9rem 0; cursor: pointer;
	font-size: .72rem; letter-spacing: .2em; text-transform: uppercase; color: var(--muted-foreground);
}
.vs-size-guide__tabs button[aria-selected="true"] { color: var(--primary); border-bottom-color: var(--primary); }
.vs-size-guide__panel { padding: 1.5rem; }
.vs-size-guide__panel h3 { font-family: var(--font-display); font-size: 1.35rem; margin: 1.5rem 0 .75rem; }
.vs-size-guide__note { font-size: .85rem; color: var(--muted-foreground); line-height: 1.6; }
.vs-size-guide__note a { color: var(--primary); }
.vs-size-guide__table { overflow-x: auto; margin: 1rem 0; }
.vs-size-guide table, .vs-drop__table { width: 100%; border-collapse: collapse; font-size: .85rem; }
.vs-size-guide th, .vs-size-guide td, .vs-drop__table th, .vs-drop__table td { border: 1px solid var(--border); padding: .55rem .75rem; text-align: center; white-space: nowrap; }
.vs-size-guide thead th, .vs-drop__table thead th { color: var(--foreground); font-weight: 500; background: var(--muted); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; }
.vs-size-guide tbody th { color: var(--primary); font-weight: 500; }
.vs-size-guide td, .vs-drop__table td { color: var(--muted-foreground); }
.vs-size-guide__measure { display: grid; grid-template-columns: max-content 1fr; gap: .75rem 1rem; font-size: .9rem; line-height: 1.6; }
.vs-size-guide__measure dt { color: var(--foreground); font-weight: 500; }
.vs-size-guide__measure dd { margin: 0; color: var(--muted-foreground); }

.vs-drop { margin-top: 2.5rem; }
.vs-drop h3 { font-family: var(--font-display); font-size: 1.5rem; color: var(--foreground); font-weight: 400; }
.vs-drop > * + * { margin-top: 1rem; }
.vs-drop__table { max-width: 20rem; }

.vs-product-facts { list-style: none; padding: 0; margin: 0 0 1rem; font-size: .85rem; line-height: 1.6; color: var(--muted-foreground); border-top: 1px solid var(--border); }
.vs-product-facts li { padding: .8rem 0; border-bottom: 1px solid var(--border); }
.vs-product-facts strong { color: var(--foreground); font-weight: 500; }
.vs-product-facts a { color: var(--primary); text-decoration: underline; text-underline-offset: 3px; }
.vs-consult-note strong { color: var(--foreground); font-weight: 500; }
.vs-upload-note { font-size: .8rem; line-height: 1.6; color: var(--muted-foreground); margin: .75rem 0 1.25rem; max-width: 34rem; }
