/* ==========================================================================
   Vodnar — WooCommerce (catalogue, product, cart, checkout, account).
   ========================================================================== */

/* Product grid: 2 columns on mobile, 4 on desktop */
.woocommerce ul.products, ul.products {
	display: grid !important; grid-template-columns: repeat(2, 1fr); gap: var(--space-4);
	list-style: none; margin: 0 0 var(--space-6); padding: 0;
}
ul.products::before, ul.products::after { display: none !important; }
@media (min-width: 768px) { .woocommerce ul.products, ul.products { grid-template-columns: repeat(3, 1fr); gap: var(--space-5); } }
@media (min-width: 1024px) { .woocommerce ul.products, ul.products { grid-template-columns: repeat(4, 1fr); } }
ul.products li.product {
	position: relative; display: flex; flex-direction: column; width: auto !important; margin: 0 !important; float: none !important;
	background: #fff; border: 1px solid var(--c-border-light); border-radius: var(--radius-lg); overflow: hidden; height: 100%;
	transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
ul.products li.product:hover, ul.products li.product:focus-within { transform: translateY(-4px); box-shadow: var(--shadow-lg); border-color: transparent; }
ul.products li.product > a.woocommerce-LoopProduct-link { display: flex; flex-direction: column; flex: 1; padding: 0 0 var(--space-3); color: inherit; }
ul.products li.product img { width: 100%; aspect-ratio: 1; object-fit: contain; background: #fff; padding: var(--space-3); margin: 0 !important; transition: transform var(--dur-slow) var(--ease); }
ul.products li.product:hover img { transform: scale(1.06); }
ul.products li.product .woocommerce-loop-product__title { font-size: var(--fs-sm); font-weight: 600; color: var(--c-primary-dark); padding: var(--space-2) var(--space-4) 0 !important; margin: 0; line-height: 1.35; }
@media (min-width: 768px) { ul.products li.product .woocommerce-loop-product__title { font-size: var(--fs-base); } }
ul.products li.product .price { padding: var(--space-2) var(--space-4) 0; margin: auto 0 0 !important; font-size: var(--fs-md) !important; font-weight: 700; color: var(--c-text) !important; }
ul.products li.product .price del { color: var(--c-text-light); font-weight: 400; font-size: var(--fs-sm); }
ul.products li.product .price ins { text-decoration: none; color: var(--c-danger); }
ul.products li.product .star-rating { margin: var(--space-2) var(--space-4) 0 !important; }
ul.products li.product .button {
	margin: var(--space-3) var(--space-4) var(--space-4) !important; display: inline-flex; align-items: center; justify-content: center;
	min-height: 42px; padding: 0.5em 1.2em; border-radius: var(--radius-pill); background: var(--c-cta); color: #fff; font-weight: 600;
	transition: background-color var(--dur) var(--ease), transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
ul.products li.product .button:hover { background: var(--c-cta-hover); color: #fff; transform: translateY(-2px); box-shadow: var(--shadow); }
ul.products li.product .added_to_cart { margin: 0 var(--space-4) var(--space-4); font-size: var(--fs-sm); color: var(--c-success); }

/* Star rating */
.star-rating { color: var(--c-accent); }

/* Sorting */
.woocommerce-ordering { margin-bottom: var(--space-5) !important; margin-left: auto; }
.woocommerce-ordering select { width: auto; min-height: 42px; padding: 0 2.8em 0 1.1em; border: 1px solid var(--c-border); border-radius: var(--radius-pill); background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230067a5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 0.9em center / 16px no-repeat; -webkit-appearance: none; appearance: none; color: var(--c-text); cursor: pointer; transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease); }
.woocommerce-ordering select:hover { border-color: var(--c-primary); }
.woocommerce-ordering select:focus-visible { border-color: var(--c-primary); box-shadow: var(--focus-ring); }
.woocommerce-notices-wrapper:empty { display: none; }

/* Subcategories inside a category */
ul.products li.product-category a { display: block; text-align: center; padding-bottom: var(--space-4); }
ul.products li.product-category h2 { font-size: var(--fs-base); padding: var(--space-3) var(--space-3) 0; margin: 0; color: var(--c-primary-dark); }
ul.products li.product-category h2 .count { background: none; color: var(--c-text-light); font-weight: 400; }

/* Woo notices — styled in brand.css ("Notices") */

/* Woo buttons in general */
.woocommerce .button, .woocommerce button.button, .woocommerce a.button, .woocommerce input.button, .woocommerce #respond input#submit {
	border-radius: var(--radius-pill) !important; font-weight: 600 !important; padding: 0.7em 1.4em !important; background: var(--c-primary) !important; color: #fff !important; line-height: 1.2 !important;
	transition: background-color var(--dur) var(--ease), transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease) !important;
}
.woocommerce .button:hover, .woocommerce a.button:hover, .woocommerce button.button:hover { background: var(--c-primary-darker) !important; transform: translateY(-2px); box-shadow: var(--shadow); }
.woocommerce .button.alt, .woocommerce button.button.alt, .woocommerce a.button.alt, .woocommerce #respond input#submit.alt, .woocommerce button.single_add_to_cart_button { background: var(--c-cta) !important; }
.woocommerce .button.alt:hover, .woocommerce button.button.alt:hover, .woocommerce a.button.alt:hover, .woocommerce button.single_add_to_cart_button:hover { background: var(--c-cta-hover) !important; }

/* ==========================================================================
   Product card in loops
   ========================================================================== */
.product-card { padding: 0; }
.product-card__media { position: relative; display: block; aspect-ratio: 1; overflow: hidden; background: #fff; }
.product-card__media img { width: 100%; height: 100%; object-fit: contain; padding: var(--space-3) !important; }
.product-card__pack { position: absolute; right: 10px; bottom: 10px; padding: 0.25em 0.7em; border-radius: var(--radius-pill); background: var(--c-primary-50); color: var(--c-primary-dark); font-size: var(--fs-xs); font-weight: 700; }
.product-card__body { display: flex; flex-direction: column; gap: 6px; flex: 1; padding: var(--space-3) var(--space-4) var(--space-4); }
.product-card__cat { font-size: var(--fs-xs); color: var(--c-text-light); text-transform: uppercase; letter-spacing: 0.05em; }
ul.products li.product .product-card__title { padding: 0 !important; margin: 0; }
.product-card__title a { color: var(--c-primary-dark); }
.product-card__title a:hover { color: var(--c-accent); }
.product-card__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.product-card__rating .star-rating { margin: 0 !important; font-size: 0.8em; }
.product-card__foot { position: relative; z-index: 2; margin-top: auto; padding-top: var(--space-3); display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); flex-wrap: wrap; }
ul.products li.product .product-card__foot .price { padding: 0; margin: 0 !important; }
ul.products li.product .product-card__foot .button { margin: 0 !important; min-height: 40px; padding: 0.45em 1.1em; }
ul.products li.product .product-card__foot .added_to_cart { margin: 0; width: 100%; }
.price--ask { font-size: var(--fs-sm) !important; font-weight: 600 !important; color: var(--c-text-muted) !important; }
@media (max-width: 480px) {
	.product-card__foot { flex-direction: column; align-items: stretch; }
	ul.products li.product .product-card__foot .button { width: 100%; }
}

/* Catalogue header */
.shop-head { margin-bottom: var(--space-4); }
.shop-head__title { margin-bottom: 0.2em; }
.shop-chips { margin-bottom: var(--space-5); }
.chip__count { margin-left: 0.4em; font-weight: 400; opacity: 0.6; }
.shop-toolbar { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); margin-bottom: var(--space-4); flex-wrap: wrap; }
.shop-toolbar__count { color: var(--c-text-muted); font-size: var(--fs-sm); }
.shop-toolbar .woocommerce-ordering { margin: 0 !important; }
.shop-toolbar .woocommerce-notices-wrapper { width: 100%; }
.shop-seo { margin-top: var(--space-8); padding-top: 0 !important; border: 0; }
.shop-seo .seo-text { padding-top: var(--space-6); }

/* ==========================================================================
   Single product page
   ========================================================================== */
.product-single__top { display: grid; gap: var(--space-6); margin-bottom: var(--space-8); }
@media (min-width: 900px) { .product-single__top { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-8); align-items: start; } }
.product-single__gallery { position: relative; }
.product-single__gallery .woocommerce-product-gallery { width: 100% !important; float: none !important; margin: 0 !important; }
.product-single__gallery .woocommerce-product-gallery__wrapper { margin: 0; }
.product-single__gallery .woocommerce-product-gallery__image { border: 1px solid var(--c-border-light); border-radius: var(--radius-lg); overflow: hidden; background: #fff; }
.product-single__gallery .woocommerce-product-gallery__image img { width: 100%; aspect-ratio: 1; object-fit: contain; padding: var(--space-4); }
.product-single__gallery .flex-control-thumbs { display: flex !important; gap: 8px; margin: var(--space-3) 0 0 !important; padding: 0; list-style: none; overflow-x: auto; }
.product-single__gallery .flex-control-thumbs li { width: 72px !important; flex: none; margin: 0 !important; float: none !important; }
.product-single__gallery .flex-control-thumbs img { border: 2px solid var(--c-border-light); border-radius: var(--radius); opacity: 0.6; cursor: pointer; transition: border-color var(--dur) var(--ease), opacity var(--dur) var(--ease); }
.product-single__gallery .flex-control-thumbs img:hover, .product-single__gallery .flex-control-thumbs img.flex-active { border-color: var(--c-primary); opacity: 1; }
.product-single__gallery .woocommerce-product-gallery__trigger { top: 12px !important; right: 12px !important; width: 40px; height: 40px; border-radius: 50%; background: #fff; box-shadow: var(--shadow-sm); z-index: 5; }

.product-single__summary { float: none !important; width: 100% !important; margin: 0 !important; }
.product-single__cat { display: inline-block; font-size: var(--fs-xs); text-transform: uppercase; letter-spacing: 0.06em; color: var(--c-text-muted); margin-bottom: 0.6em; }
.product-single__summary .product_title { font-size: var(--fs-xl); margin-bottom: 0.4em; }
.product-single__meta { display: flex; flex-wrap: wrap; gap: var(--space-3) var(--space-5); align-items: center; font-size: var(--fs-sm); color: var(--c-text-muted); margin-bottom: var(--space-4); }
.product-single__rating { display: inline-flex; align-items: center; gap: 0.5em; color: var(--c-text-muted); }
.product-single__rating .star-rating { margin: 0; font-size: 0.9em; }
.product-single__stock { display: inline-flex; align-items: center; gap: 0.4em; font-weight: 600; }
.product-single__stock::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--c-success); }
.product-single__stock.is-out { color: var(--c-danger); } .product-single__stock.is-out::before { background: var(--c-danger); }
.product-single__stock.is-in { color: var(--c-success-text); }
.product-single__excerpt { color: var(--c-text); margin-bottom: var(--space-4); }
.product-single__excerpt p:last-child { margin-bottom: 0; }

/* Packaging switcher */
.variants { margin-bottom: var(--space-5); }
.variants__label { display: block; font-size: var(--fs-sm); font-weight: 600; color: var(--c-text-muted); margin-bottom: 0.5em; }
.variants__list { display: flex; flex-wrap: wrap; gap: 8px; }
.variant { display: inline-flex; flex-direction: column; align-items: center; min-width: 84px; padding: 0.5em 0.9em; border: 2px solid var(--c-border); border-radius: var(--radius); background: #fff; color: var(--c-text); text-decoration: none; line-height: 1.2; }
.variant__pack { font-weight: 700; }
.variant__price { font-size: var(--fs-xs); color: var(--c-text-muted); margin-top: 2px; }
.variant:hover { border-color: var(--c-primary); color: var(--c-primary); transform: translateY(-2px); box-shadow: var(--shadow-sm); }
.variant.is-active { border-color: var(--c-cta); background: #fff7ee; color: var(--c-text); }
.variant.is-active .variant__price { color: var(--c-cta-hover); }
.variant.is-out { opacity: 0.55; border-style: dashed; }
.variant { position: relative; }
.variant__unit { font-size: 11px; color: var(--c-text-muted); margin-top: 1px; white-space: nowrap; }
.variant__best { position: absolute; top: -9px; right: 6px; padding: 1px 7px; border-radius: var(--radius-pill); background: #167a80; color: #fff; font-size: 11px; font-weight: 700; line-height: 1.5; letter-spacing: 0.02em; }
.variant.is-recommended { border-color: var(--c-teal); box-shadow: 0 0 0 3px color-mix(in srgb, var(--c-teal) 22%, transparent); }
.variants__hint { display: flex; gap: 6px; align-items: baseline; margin: 0.7em 0 0; font-size: var(--fs-sm); color: var(--c-text-muted); }
.variants__hint::before { content: ""; flex: none; width: 0.55em; height: 0.55em; border-radius: 50% 50% 50% 0; transform: rotate(-45deg) translate(-1px, 1px); background: var(--c-accent); } /* drop, as list bullets in brand.css */

/* "Which packaging do I need": hints per packaging + calculator (main.js) */
.pack-guide { margin-top: var(--space-3); border: 1px solid var(--c-border-light); border-radius: var(--radius-lg); background: var(--c-primary-50); }
.pack-guide summary { display: flex; align-items: center; gap: var(--space-2); padding: 0.7em var(--space-4); font-size: var(--fs-sm); font-weight: 700; color: var(--c-primary-dark); cursor: pointer; list-style: none; }
.pack-guide summary::-webkit-details-marker { display: none; }
.pack-guide summary .icon { width: 18px; height: 18px; color: var(--c-accent); }
.pack-guide summary::after { content: ""; width: 8px; height: 8px; margin-left: auto; margin-top: -4px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform var(--dur) var(--ease); }
.pack-guide[open] summary::after { transform: rotate(-135deg); margin-top: 4px; }
.pack-guide summary:hover { color: var(--c-primary); }
.pack-guide__body { display: grid; gap: var(--space-4); padding: 0 var(--space-4) var(--space-4); }
.pack-guide__list { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; font-size: var(--fs-sm); }
.pack-guide__item { display: grid; grid-template-columns: 5.4em minmax(0, 1fr); gap: var(--space-2); padding: 6px 10px; border-radius: var(--radius); background: #fff; transition: box-shadow var(--dur) var(--ease), background-color var(--dur) var(--ease); }
.pack-guide__item strong { color: var(--c-primary-dark); }
.pack-guide__item.is-active { box-shadow: inset 3px 0 0 var(--c-accent); }
.pack-guide__item.is-recommended { background: color-mix(in srgb, var(--c-teal) 12%, #fff); box-shadow: inset 3px 0 0 var(--c-teal); }
.pack-guide__calc { display: flex; flex-wrap: wrap; gap: var(--space-3); align-items: flex-end; }
.pack-guide__field { display: grid; gap: 4px; font-size: var(--fs-xs); font-weight: 600; color: var(--c-text-muted); }
.pack-guide__input { display: inline-flex; align-items: center; gap: 6px; font-size: var(--fs-sm); color: var(--c-text); }
.pack-guide__input input { width: 92px; min-height: 40px; padding: 0 10px; }
.pack-guide__result { flex: 1 1 100%; padding: 10px 12px; border-radius: var(--radius); background: #fff; font-size: var(--fs-sm); line-height: 1.45; }
.pack-guide__result strong { color: var(--c-primary-dark); }
.pack-guide__result a { font-weight: 700; }
.pack-guide__note { flex: 1 1 100%; margin: -4px 0 0; font-size: var(--fs-xs); color: var(--c-text-muted); }

/* Price and add to cart */
.product-single__buy { padding: var(--space-4) var(--space-5); background: var(--c-primary-50); border-radius: var(--radius-lg); margin-bottom: var(--space-5); }
.product-single__price { font-size: var(--fs-2xl) !important; font-weight: 700; color: var(--c-text) !important; margin: 0 0 var(--space-3) !important; line-height: 1.1; }
.product-single__price del { font-size: 0.55em; color: var(--c-text-light); font-weight: 400; margin-right: 0.3em; }
.product-single__price ins { text-decoration: none; color: var(--c-danger); }
.product-single__price.price--ask { font-size: var(--fs-md) !important; }
form.cart { display: flex; flex-wrap: wrap; gap: var(--space-3); align-items: center; margin: 0 !important; }
form.cart .quantity { display: inline-flex; align-items: stretch; border: 2px solid var(--c-border); border-radius: var(--radius-pill); background: #fff; overflow: hidden; }
form.cart .quantity input.qty { width: 56px; min-height: 48px; border: 0; text-align: center; font-weight: 700; padding: 0; border-radius: 0; -moz-appearance: textfield; }
form.cart .quantity input.qty::-webkit-outer-spin-button, form.cart .quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
form.cart .quantity input.qty:focus { box-shadow: none; }
form.cart .qty-btn, .woocommerce-cart-form .qty-btn { width: 44px; border: 0; background: transparent; color: var(--c-primary-dark); font-size: 1.3em; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; }
.woocommerce-cart-form .qty-btn { width: 36px; }
form.cart .qty-btn:hover, .woocommerce-cart-form .qty-btn:hover { background: var(--c-primary-50); color: var(--c-accent); }
.woocommerce button.single_add_to_cart_button { flex: 1 1 auto; min-height: 52px !important; font-size: var(--fs-md) !important; padding: 0.6em 1.6em !important; border-radius: var(--radius-pill) !important; }
.product-single__perks { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.6em; font-size: var(--fs-sm); color: var(--c-text-muted); }
.product-single__perks li { display: flex; align-items: center; gap: 0.6em; }
.product-single__perks .icon { color: var(--c-primary); }
.product-single__perks a { font-weight: 600; }

/* Tabs */
.tabs { margin-bottom: var(--space-8); }
.tabs__nav { border-bottom: 1px solid var(--c-border); margin-bottom: var(--space-5); padding-bottom: 8px; }
.tabs__tab { cursor: pointer; }
.tabs__panel { animation: fade-in var(--dur-slow) var(--ease-out); }
.tabs__panel[hidden] { display: none; }
@keyframes fade-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.tabs__panel .prose { max-width: 900px; }
/* "Характеристики" tab: label / value rows in a card */
.specs { max-width: 720px; margin: 0; border: 1px solid var(--c-border-light); border-radius: var(--radius-lg); background: #fff; overflow: hidden; }
.specs__row { display: grid; grid-template-columns: minmax(140px, 34%) minmax(0, 1fr); align-items: baseline; gap: var(--space-4); padding: 14px var(--space-5); transition: background-color var(--dur) var(--ease); }
.specs__row + .specs__row { border-top: 1px solid var(--c-border-light); }
.specs__row:hover { background: var(--c-primary-50); }
.specs dt { margin: 0; font-size: var(--fs-sm); font-weight: 600; color: var(--c-text-muted); }
.specs dd { margin: 0; font-weight: 600; color: var(--c-primary-dark); }
@media (max-width: 479px) {
	.specs__row { grid-template-columns: 1fr; gap: 2px; padding: 12px var(--space-4); }
}

/* Reviews: rating summary, review cards (avatar drop with an initial), form */
#reviews { max-width: 860px; }
#reviews .woocommerce-Reviews-title { margin-bottom: var(--space-5); }
.reviews-summary { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--space-6); align-items: center; margin-bottom: var(--space-6); padding: var(--space-5) var(--space-6); border-radius: var(--radius-lg); background: var(--c-primary-50); }
.reviews-summary__score { display: grid; justify-items: center; gap: 6px; min-width: 130px; }
.reviews-summary__value { font-family: var(--font-display); font-size: 3rem; line-height: 1; color: var(--c-primary-dark); }
.reviews-summary__score .star-rating { margin: 0; font-size: 1.05em; }
.reviews-summary__count { font-size: var(--fs-sm); color: var(--c-text-muted); }
.reviews-summary__bars { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; max-width: 420px; }
.reviews-summary__bar { display: grid; grid-template-columns: 2.4em minmax(0, 1fr) 2em; gap: var(--space-3); align-items: center; font-size: var(--fs-sm); color: var(--c-text-muted); }
.reviews-summary__label { white-space: nowrap; }
.reviews-summary__num { text-align: right; }
.reviews-summary__meter { width: 100%; height: 8px; border: 0; border-radius: var(--radius-pill); background: #dfe8ef; overflow: hidden; -webkit-appearance: none; appearance: none; }
.reviews-summary__meter::-webkit-meter-bar { height: 8px; border: 0; border-radius: var(--radius-pill); background: #dfe8ef; }
.reviews-summary__meter::-webkit-meter-optimum-value, .reviews-summary__meter::-webkit-meter-suboptimum-value, .reviews-summary__meter::-webkit-meter-even-less-good-value { border-radius: var(--radius-pill); background: var(--c-accent); }
.reviews-summary__meter::-moz-meter-bar { border-radius: var(--radius-pill); background: var(--c-accent); }

#reviews .commentlist { list-style: none; margin: 0 0 var(--space-6); padding: 0; display: grid; gap: var(--space-4); }
.woocommerce #reviews #comments ol.commentlist li { margin: 0; }
#reviews .commentlist li::before { content: none; }
#reviews .comment_container { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: var(--space-4); padding: var(--space-5); border: 1px solid var(--c-border-light); border-radius: var(--radius-lg); background: #fff; box-shadow: var(--shadow-sm); }
.woocommerce #reviews #comments ol.commentlist .children { list-style: none; margin: var(--space-3) 0 0; padding: 0 0 0 56px; display: grid; gap: var(--space-3); }
#reviews .commentlist .children .comment_container { background: var(--c-primary-50); box-shadow: none; }
.review-card__avatar { display: grid; place-items: center; width: 44px; height: 44px; margin: 4px 0 0 2px; border-radius: 50% 0 50% 50%; transform: rotate(-45deg); background: var(--c-primary); color: #fff; }
.review-card__avatar > * { transform: rotate(45deg); }
.review-card__avatar span { font-family: var(--font-display); font-size: 1.2rem; font-weight: 600; line-height: 1; }
.review-card__avatar--2 { background: var(--c-teal); }
.review-card__avatar--3 { background: var(--c-cta); }
.review-card__avatar--4 { background: #5a9e33; }
.review-card__avatar--shop { background: var(--c-primary-dark); }
.review-card__avatar--shop svg { width: 26px; height: 26px; fill: #fff; }
#reviews .comment-text { margin: 0 !important; padding: 0 !important; border: 0 !important; min-width: 0; }
#reviews .comment-text .meta.review-card__head { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; margin: 0 0 4px; font-size: var(--fs-sm); color: var(--c-text-muted); }
#reviews .woocommerce-review__author { font-size: var(--fs-base, 1rem); color: var(--c-primary-dark); }
#reviews .woocommerce-review__published-date { margin-left: auto; white-space: nowrap; }
#reviews .comment-text .star-rating { float: none; margin: 0 0 var(--space-3); font-size: 0.95em; }
#reviews .comment-text .description { line-height: 1.65; }
#reviews .comment-text .description p { margin: 0 0 0.6em; }
#reviews .comment-text .description p:last-child { margin-bottom: 0; }
.review-badge { display: inline-flex; align-items: center; gap: 4px; padding: 2px 9px 2px 7px; border-radius: var(--radius-pill); font-size: 12px; font-weight: 600; line-height: 1.5; }
.review-badge .icon { width: 13px; height: 13px; }
.review-badge--verified { background: color-mix(in srgb, var(--c-success) 14%, #fff); color: #23803a; }
.review-badge--shop { background: var(--c-primary-50); color: var(--c-primary-dark); }
.review-badge--pending { background: #fff4e5; color: var(--c-cta-hover); }

.reviews-empty { margin-bottom: var(--space-6); padding: var(--space-5) var(--space-6); border: 1px dashed var(--c-border); border-radius: var(--radius-lg); color: var(--c-text-muted); }
.reviews-empty p { margin: 0; }
.reviews-empty__title { margin-bottom: 4px !important; font-weight: 700; color: var(--c-primary-dark); }

#review_form_wrapper { padding: var(--space-6); border: 1px solid var(--c-border-light); border-radius: var(--radius-lg); background: #fff; }
#review_form .comment-reply-title { display: block; margin-bottom: var(--space-3); font-family: var(--font-display); font-size: var(--fs-lg); font-weight: 600; color: var(--c-primary-dark); }
#review_form #commentform { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: var(--space-4); }
#review_form #commentform > * { grid-column: 1 / -1; }
#review_form #commentform > .comment-form-author { grid-column: 1; }
#review_form #commentform > .comment-form-email { grid-column: 2; }
#review_form .comment-notes { margin-bottom: var(--space-4); padding: 10px 14px; border-radius: var(--radius); background: var(--c-primary-50); font-size: var(--fs-sm); color: var(--c-text-muted); }
#review_form p { margin-bottom: var(--space-4); }
#review_form label { display: block; margin-bottom: 0.35em; font-size: var(--fs-sm); font-weight: 600; }
#review_form .required { color: var(--c-accent); }
#review_form .comment-form-rating { display: flex; flex-wrap: wrap; align-items: center; margin-bottom: var(--space-4); }
#review_form .comment-form-rating > label { flex: 0 0 100%; }
#review_form .comment-form-rating p.stars { display: inline-flex; margin: 0; vertical-align: middle; }
#review_form .comment-form-rating p.stars a { width: 1.6em; height: 1.6em; margin-right: 4px; font-size: 1.35rem; color: var(--c-accent); text-decoration: none; transition: transform var(--dur) var(--ease); }
#review_form .comment-form-rating p.stars a:hover { transform: scale(1.12); }
.comment-form-rating__caption { margin-left: var(--space-2); font-size: var(--fs-sm); font-weight: 600; color: var(--c-cta); }
#review_form .comment-form-cookies-consent { display: flex; gap: 8px; align-items: center; font-size: var(--fs-sm); }
#review_form .comment-form-cookies-consent label { display: inline; margin: 0; font-weight: 400; }
#review_form .form-submit { margin: 0; }
.woocommerce #review_form #respond input#submit { min-height: 48px; padding: 0.7em 1.8em !important; background: var(--c-cta) !important; }
.woocommerce #review_form #respond input#submit:hover { background: var(--c-cta-hover) !important; transform: translateY(-2px); box-shadow: var(--shadow); }
.woocommerce-verification-required { color: var(--c-text-muted); }
@media (max-width: 639px) {
	.reviews-summary { grid-template-columns: 1fr; gap: var(--space-4); padding: var(--space-4); }
	.reviews-summary__bars { max-width: none; }
	#reviews .comment_container { grid-template-columns: 40px minmax(0, 1fr); gap: var(--space-3); padding: var(--space-4); }
	.review-card__avatar { width: 36px; height: 36px; }
	.review-card__avatar span { font-size: 1rem; }
	#reviews .woocommerce-review__published-date { margin-left: 0; width: 100%; }
	.woocommerce #reviews #comments ol.commentlist .children { padding-left: var(--space-5); }
	#review_form_wrapper { padding: var(--space-4); }
	#review_form #commentform > .comment-form-author, #review_form #commentform > .comment-form-email { grid-column: 1 / -1; }
}

/* Sticky "Buy" bar (mobile) */
.buybar { position: fixed; left: 0; right: 0; bottom: calc(var(--bottombar-h) + env(safe-area-inset-bottom)); z-index: 89; background: #fff; border-top: 1px solid var(--c-border); box-shadow: 0 -4px 16px rgba(15,42,61,0.08); transform: translateY(100%); visibility: hidden; transition: transform var(--dur-slow) var(--ease-out), visibility 0s linear var(--dur-slow); }
.buybar.is-visible { transform: none; visibility: visible; transition: transform var(--dur-slow) var(--ease-out); }
.buybar__in { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); padding-block: 10px; }
.buybar__info { display: flex; flex-direction: column; min-width: 0; }
.buybar__info strong { font-size: var(--fs-sm); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--c-primary-dark); }
.buybar__info .price { font-weight: 700; }
.buybar .btn { flex: none; }
@media (min-width: 1024px) { .buybar { bottom: 0; } }

/* Related / upsells */
.related.products, .up-sells.products { margin-top: var(--space-8); clear: both; }
.related > h2, .up-sells > h2 { margin-bottom: var(--space-5); }

/* ==========================================================================
   Cart, checkout, account, forms
   ========================================================================== */
.woocommerce-cart .site-main .woocommerce, .woocommerce-checkout .site-main .woocommerce, .woocommerce-account .site-main .woocommerce { max-width: 1100px; }
.woocommerce form .form-row { margin-bottom: var(--space-3) !important; padding: 0 !important; }
.woocommerce form .form-row label { display: block; margin-bottom: 0.3em; font-weight: 600; font-size: var(--fs-sm); }
.woocommerce form .form-row .required { color: var(--c-danger); text-decoration: none; }
.woocommerce form .form-row .input-text, .woocommerce form .form-row select, .woocommerce form .form-row textarea { width: 100%; min-height: 46px; padding: 0.55em 0.9em; border: 2px solid var(--c-border); border-radius: var(--radius); background: #fff; }
.woocommerce form .form-row .input-text:focus { border-color: var(--c-primary); box-shadow: var(--focus-ring); outline: none; }
.woocommerce form .form-row.woocommerce-invalid .input-text { border-color: var(--c-danger); }
.woocommerce form .form-row.woocommerce-validated .input-text { border-color: var(--c-success); }
.woocommerce form .form-row.is-hidden { display: none !important; }
.woocommerce .select2-container .select2-selection--single { height: 46px; border: 2px solid var(--c-border); border-radius: var(--radius); }
.woocommerce .select2-container .select2-selection--single .select2-selection__rendered { line-height: 42px; padding-left: 0.9em; }
.woocommerce .select2-container .select2-selection--single .select2-selection__arrow { height: 42px; }
@media (min-width: 768px) {
	.woocommerce form .form-row-first, .woocommerce form .form-row-last { width: calc(50% - 8px) !important; float: none !important; display: inline-block; vertical-align: top; }
	.woocommerce form .form-row-first { margin-right: 12px !important; }
}

/* Cart */
.woocommerce-cart-form { margin-bottom: var(--space-6); }
.woocommerce table.shop_table { border: 0 !important; border-radius: 0; border-collapse: collapse !important; font-size: var(--fs-sm); }
.woocommerce table.shop_table th { background: var(--c-primary-50); border: 0 !important; padding: 0.9em 1em !important; color: var(--c-primary-dark); }
.woocommerce table.shop_table td { border: 0 !important; border-bottom: 1px solid var(--c-border-light) !important; padding: 1em !important; vertical-align: middle; }
.woocommerce table.shop_table td.product-thumbnail img { width: 72px; border-radius: var(--radius); border: 1px solid var(--c-border-light); }
.woocommerce table.shop_table td.product-name a { font-weight: 600; color: var(--c-primary-dark); }
.woocommerce table.shop_table td.product-remove a.remove { width: 32px; height: 32px; line-height: 30px; color: var(--c-text-light) !important; border: 1px solid var(--c-border); border-radius: 50%; font-weight: 400; }
.woocommerce table.shop_table td.product-remove a.remove:hover { background: var(--c-danger) !important; color: #fff !important; border-color: var(--c-danger); transform: rotate(90deg); }
.woocommerce table.shop_table .quantity { display: inline-flex; border: 2px solid var(--c-border); border-radius: var(--radius-pill); overflow: hidden; }
.woocommerce table.shop_table .quantity input.qty { width: 52px; min-height: 40px; border: 0; text-align: center; font-weight: 700; }
.woocommerce table.shop_table td.actions { padding-top: var(--space-4) !important; }
.woocommerce table.shop_table td.actions .coupon { display: flex; gap: 8px; margin-bottom: var(--space-3); float: none !important; }
.woocommerce table.shop_table td.actions .coupon .input-text { width: 200px !important; min-height: 44px; padding: 0.5em 1em !important; border: 2px solid var(--c-border); border-radius: var(--radius-pill); }
.woocommerce table.shop_table td.actions .coupon label { display: none; }
.cart-collaterals .cart_totals { width: 100% !important; float: none !important; background: var(--c-primary-50); border-radius: var(--radius-lg); padding: var(--space-5); }
.cart-collaterals .cart_totals h2 { font-size: var(--fs-lg); margin-bottom: var(--space-3); }
.cart-collaterals .cart_totals table th { background: none; padding-left: 0 !important; }
.cart-collaterals .cart_totals table td { text-align: right; }
.cart-collaterals .cart_totals .order-total td { font-size: var(--fs-lg); font-weight: 700; }
.wc-proceed-to-checkout .checkout-button { display: block; width: 100%; text-align: center; font-size: var(--fs-md) !important; padding: 0.8em 1.5em !important; background: var(--c-cta) !important; }
.wc-proceed-to-checkout .checkout-button:hover { background: var(--c-cta-hover) !important; }
@media (min-width: 900px) { .cart-collaterals .cart_totals { width: 380px !important; float: right !important; } }
@media (max-width: 767px) {
	.woocommerce table.shop_table_responsive tr { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 12px; border-bottom: 1px solid var(--c-border-light); padding: var(--space-3) 0; }
	.woocommerce table.shop_table_responsive td { border: 0 !important; padding: 4px 0 !important; text-align: left !important; }
	.woocommerce table.shop_table_responsive td::before { color: var(--c-text-muted); font-weight: 400; float: none; display: block; font-size: var(--fs-xs); }
	.woocommerce table.shop_table_responsive td.product-thumbnail, .woocommerce table.shop_table_responsive td.product-name { grid-column: 1 / -1; }
	.woocommerce table.shop_table_responsive td.product-remove { position: absolute; right: 0; }
	.woocommerce table.shop_table_responsive tr { position: relative; }
	.woocommerce table.shop_table_responsive td.actions { grid-column: 1 / -1; }
}
.cart-empty.woocommerce-info { font-size: var(--fs-md); display: flex; align-items: center; }
.return-to-shop { text-align: center; }

/* Checkout */
.woocommerce-checkout form.checkout { display: grid; gap: var(--space-6); }
@media (min-width: 1000px) { .woocommerce-checkout form.checkout { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); align-items: start; } .woocommerce-checkout #order_review_heading, .woocommerce-checkout #order_review { grid-column: 2; } .woocommerce-checkout #customer_details { grid-column: 1; grid-row: 1 / span 2; } }
.woocommerce-checkout #customer_details { display: grid; gap: var(--space-4); }
.woocommerce-checkout #customer_details .col-1, .woocommerce-checkout #customer_details .col-2 { width: 100% !important; float: none !important; }
.woocommerce-checkout h3 { font-size: var(--fs-lg); margin-bottom: var(--space-3); }
.woocommerce-checkout #order_review_heading { margin: 0; }
.woocommerce-checkout #order_review { background: var(--c-primary-50); border-radius: var(--radius-lg); padding: var(--space-5); position: sticky; top: calc(var(--header-h) + 16px); }
.woocommerce-checkout #order_review table.shop_table th { background: none; }
.woocommerce-checkout #order_review .order-total td, .woocommerce-checkout #order_review .order-total th { font-size: var(--fs-lg); font-weight: 700; }
.woocommerce-checkout #payment { background: transparent !important; border-radius: 0; }
.woocommerce-checkout #payment ul.payment_methods { border: 0 !important; padding: 0 !important; display: grid; gap: 8px; }
.woocommerce-checkout #payment ul.payment_methods li { padding: 0.8em 1em !important; background: #fff; border: 2px solid var(--c-border); border-radius: var(--radius); transition: border-color var(--dur) var(--ease); }
.woocommerce-checkout #payment ul.payment_methods li:has(input:checked) { border-color: var(--c-primary); }
.woocommerce-checkout #payment ul.payment_methods li label { font-weight: 600; display: inline; }
.woocommerce-checkout #payment div.payment_box { background: transparent !important; padding: 0.5em 0 0 !important; margin: 0 !important; font-size: var(--fs-sm); color: var(--c-text-muted); }
.woocommerce-checkout #payment div.payment_box::before { display: none; }
.woocommerce-checkout #payment div.place-order { padding: var(--space-4) 0 0 !important; }
.woocommerce-checkout #place_order { width: 100%; font-size: var(--fs-md) !important; padding: 0.9em 1.5em !important; background: var(--c-cta) !important; }
.woocommerce-checkout #place_order:hover { background: var(--c-cta-hover) !important; }
.woocommerce-checkout .woocommerce-privacy-policy-text { font-size: var(--fs-xs); color: var(--c-text-muted); }
.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info, .woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info { margin-bottom: var(--space-3) !important; }
.woocommerce-checkout .create-account { padding: var(--space-3) var(--space-4); background: var(--c-bg-soft); border-radius: var(--radius); }
.woocommerce-checkout .woocommerce-shipping-methods { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.woocommerce ul#shipping_method li { padding: 0.6em 0.8em; background: #fff; border: 2px solid var(--c-border); border-radius: var(--radius); margin: 0; }
.woocommerce ul#shipping_method li:has(input:checked) { border-color: var(--c-primary); }
.woocommerce ul#shipping_method li label { font-weight: 600; }
/* Thank-you page */
.woocommerce-order .woocommerce-thankyou-order-received { font-size: var(--fs-xl); font-weight: 700; color: var(--c-success); margin-bottom: var(--space-4); }
.woocommerce-order ul.order_details { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: var(--space-3); list-style: none; margin: 0 0 var(--space-6); padding: var(--space-4); background: var(--c-primary-50); border-radius: var(--radius-lg); }
.woocommerce-order ul.order_details li { border: 0 !important; margin: 0 !important; padding: 0 !important; font-size: var(--fs-xs); text-transform: uppercase; color: var(--c-text-muted); }
.woocommerce-order ul.order_details li strong { display: block; font-size: var(--fs-base); text-transform: none; color: var(--c-text); margin-top: 4px; }

/* Account */
.woocommerce-account .woocommerce-MyAccount-navigation { width: 100% !important; float: none !important; margin-bottom: var(--space-5); }
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 6px; overflow-x: auto; }
.woocommerce-account .woocommerce-MyAccount-navigation li a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; border-radius: var(--radius-pill); border: 1px solid var(--c-border); color: var(--c-primary-dark); font-weight: 600; font-size: var(--fs-sm); white-space: nowrap; }
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover, .woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { background: var(--c-primary); border-color: var(--c-primary); color: #fff; }
.woocommerce-account .woocommerce-MyAccount-content { width: 100% !important; float: none !important; }
@media (min-width: 900px) {
	.woocommerce-account.logged-in .site-main .woocommerce { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: var(--space-8); align-items: start; }
	.woocommerce-account .woocommerce-MyAccount-navigation ul { flex-direction: column; overflow: visible; }
	.woocommerce-account .woocommerce-MyAccount-navigation li a { display: flex; }
	.woocommerce-account .site-main .woocommerce > .woocommerce-notices-wrapper, .woocommerce-account .site-main .woocommerce > .woocommerce-form-login, .woocommerce-account .site-main .woocommerce > .u-columns { grid-column: 1 / -1; }
}
.woocommerce-account .u-columns { display: grid; gap: var(--space-6); }
@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 { width: 100% !important; float: none !important; }
.woocommerce form.login, .woocommerce form.register, .woocommerce form.lost_reset_password, .woocommerce form.edit-account { border: 1px solid var(--c-border-light) !important; border-radius: var(--radius-lg) !important; padding: var(--space-5) !important; max-width: 520px; }
.woocommerce form.login .button, .woocommerce form.register .button { width: 100%; background: var(--c-cta) !important; }
.woocommerce-account .woocommerce-orders-table__cell-order-actions .button { padding: 0.4em 1em !important; font-size: var(--fs-sm) !important; }
.woocommerce-account table.shop_table td.woocommerce-orders-table__cell-order-number a { font-weight: 700; }
.woocommerce-account .woocommerce-Address { background: var(--c-bg-soft); border-radius: var(--radius-lg); padding: var(--space-4); }
.woocommerce-account .woocommerce-Address-title h2 { font-size: var(--fs-md); }
.woocommerce-button.button { background: var(--c-primary) !important; }

/* FAQ accordion (problem pages, FAQ) */
.faq { display: grid; gap: 8px; max-width: 900px; }
.faq details, .faq__item { border: 1px solid var(--c-border); border-radius: var(--radius); background: #fff; transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease); }
.faq details[open] { border-color: var(--c-primary); box-shadow: var(--shadow-sm); }
.faq summary { display: flex; justify-content: space-between; align-items: center; gap: var(--space-3); padding: 0.9em 1.1em; font-weight: 600; color: var(--c-primary-dark); cursor: pointer; list-style: none; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary .icon { transition: transform var(--dur) var(--ease); flex: none; color: var(--c-accent); }
.faq details[open] summary .icon { transform: rotate(180deg); }
.faq summary:hover { color: var(--c-accent); }
.faq details > .prose, .faq details > div { padding: 0 1.1em 1em; }
@media (min-width: 1000px) { .woocommerce-checkout form.checkout { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
.woocommerce-checkout #order_review table.shop_table th, .woocommerce-checkout #order_review table.shop_table td { padding: 0.7em 0.5em !important; }
.woocommerce-checkout #order_review table.shop_table td.product-name { font-size: var(--fs-sm); }
.woocommerce-checkout #order_review ul#shipping_method li { padding: 0.5em 0.7em; font-size: var(--fs-sm); }


/* ==========================================================================
   Cart and checkout: full container width layout
   ========================================================================== */
.woocommerce-cart .entry-content.prose,
.woocommerce-checkout .entry-content.prose,
.woocommerce-account .entry-content.prose { max-width: none; }
.woocommerce-cart .site-main .woocommerce,
.woocommerce-checkout .site-main .woocommerce,
.woocommerce-account .site-main .woocommerce { max-width: none; }

/* Totals tables (cart totals, "your order"): label on the left, amount on the right; shipping as a full-width block */
.cart_totals table.shop_table,
.cart_totals table.shop_table tbody,
#order_review table.shop_table,
#order_review table.shop_table thead,
#order_review table.shop_table tbody,
#order_review table.shop_table tfoot { display: block; width: 100%; }
.cart_totals table.shop_table tr,
#order_review table.shop_table tr { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-3); border-bottom: 1px solid var(--c-border); }
.cart_totals table.shop_table tr:last-child,
#order_review table.shop_table tfoot tr:last-child { border-bottom: 0; }
.woocommerce .cart_totals table.shop_table th, .woocommerce .cart_totals table.shop_table td,
.woocommerce #order_review table.shop_table th, .woocommerce #order_review table.shop_table td {
	display: block; width: auto; padding: 0.75em 0 !important; border: 0 !important; background: none; text-align: left;
}
.woocommerce .cart_totals table.shop_table td, .woocommerce #order_review table.shop_table td.product-total,
.woocommerce #order_review table.shop_table tfoot td, .woocommerce #order_review table.shop_table thead th.product-total { text-align: right; white-space: nowrap; }
.woocommerce #order_review table.shop_table td.product-name { flex: 1 1 auto; white-space: normal; }
.cart_totals table.shop_table tr.woocommerce-shipping-totals,
#order_review table.shop_table tr.woocommerce-shipping-totals { display: block; }
.woocommerce .cart_totals table.shop_table tr.woocommerce-shipping-totals th,
.woocommerce #order_review table.shop_table tr.woocommerce-shipping-totals th { padding-bottom: 0.3em !important; }
.woocommerce .cart_totals table.shop_table tr.woocommerce-shipping-totals td,
.woocommerce #order_review table.shop_table tr.woocommerce-shipping-totals td { padding-top: 0 !important; text-align: left; white-space: normal; }
.woocommerce ul#shipping_method { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.woocommerce ul#shipping_method li { display: flex; align-items: flex-start; gap: 0.6em; text-align: left; }
.woocommerce ul#shipping_method li input { margin: 0.3em 0 0 !important; flex: none; }
.woocommerce ul#shipping_method li label { display: block; margin: 0; font-size: var(--fs-sm); line-height: 1.35; }
.woocommerce-shipping-destination, .woocommerce-shipping-calculator { font-size: var(--fs-sm); color: var(--c-text-muted); margin: 0.6em 0 0; }
.woocommerce .cart_totals .order-total th, .woocommerce #order_review .order-total th { font-size: var(--fs-md); }
.woocommerce .cart_totals .order-total td, .woocommerce #order_review .order-total td { font-size: var(--fs-xl); font-weight: 700; color: var(--c-primary-dark); }

@media (min-width: 1000px) {
	/* Cart: items on the left, totals on the right, sticky while scrolling */
	.woocommerce-cart .site-main .woocommerce { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: var(--space-5) var(--space-8); align-items: start; }
	.woocommerce-cart .site-main .woocommerce > * { grid-column: 1 / -1; }
	.woocommerce-cart .site-main .woocommerce > .woocommerce-cart-form { grid-column: 1; margin: 0; }
	.woocommerce-cart .site-main .woocommerce > .cart-collaterals { grid-column: 2; width: 100%; position: sticky; top: 164px; }
	.woocommerce-cart .cart-collaterals .cart_totals { width: 100% !important; float: none !important; }

	/* Checkout: customer details on the left, order on the right */
	.woocommerce-checkout form.checkout { grid-template-columns: minmax(0, 1fr) 440px; gap: var(--space-3) var(--space-8); }
	.woocommerce-checkout #order_review { top: 164px; }
	.woocommerce-checkout #order_review_heading { align-self: end; }
}
.woocommerce-checkout #customer_details h3:first-child,
.woocommerce-checkout .woocommerce-billing-fields > h3 { margin-top: 0; }
.woocommerce-checkout #customer_details::before, .woocommerce-checkout #customer_details::after { display: none; }
.woocommerce .cart_totals table.shop_table td::before, .woocommerce #order_review table.shop_table td::before { display: none !important; }

@media (max-width: 767px) {
	/* Cart on phones: photo + name, then price / quantity / subtotal in one row */
	.woocommerce table.shop_table_responsive tr td { background: none !important; }
	.woocommerce-cart-form table.shop_table_responsive tr.cart_item { grid-template-columns: 64px minmax(0, 1fr) auto minmax(0, 1fr); gap: 8px 12px; align-items: end; padding: var(--space-4) 0; }
	.woocommerce-cart-form table.shop_table_responsive tr.cart_item td { display: block; text-align: left !important; white-space: nowrap; }
	.woocommerce-cart-form table.shop_table_responsive tr.cart_item td::before { display: block; float: none; margin-bottom: 4px; font-size: var(--fs-xs); font-weight: 400; color: var(--c-text-muted); }
	.woocommerce-cart-form table.shop_table_responsive td.product-thumbnail { display: block !important; grid-column: 1; grid-row: 1 / span 2; align-self: start; }
	.woocommerce table.shop_table td.product-thumbnail img { width: 64px; }
	.woocommerce-cart-form table.shop_table_responsive tr.cart_item td.product-name { grid-column: 2 / -1; padding-right: 44px !important; font-size: var(--fs-base); align-self: start; white-space: normal; }
	.woocommerce-cart-form table.shop_table_responsive tr.cart_item td.product-subtotal { text-align: right !important; font-weight: 700; }
	.woocommerce-cart-form table.shop_table_responsive tr.cart_item td.product-thumbnail::before,
	.woocommerce-cart-form table.shop_table_responsive tr.cart_item td.product-name::before,
	.woocommerce-cart-form table.shop_table_responsive tr.cart_item td.product-remove::before { display: none; }
	.woocommerce-cart-form table.shop_table_responsive tr.cart_item td.product-price { align-self: center; }
	.woocommerce-cart-form table.shop_table_responsive tr.cart_item td.product-subtotal { align-self: center; }
	.woocommerce-cart-form table.shop_table_responsive td.product-remove { position: absolute; right: 0; top: 10px; }
	.woocommerce table.shop_table td.actions .coupon .input-text { width: auto !important; flex: 1 1 auto; min-width: 0; }
	.woocommerce table.shop_table td.actions .button { width: auto; }
	.woocommerce table.shop_table td.actions > .button { width: 100%; }
	.cart-collaterals .cart_totals { padding: var(--space-4); }
}
/* WooCommerce clearfix pseudo-elements must not become grid cells */
.woocommerce-account .u-columns::before, .woocommerce-account .u-columns::after,
.woocommerce-cart .site-main .woocommerce::before, .woocommerce-cart .site-main .woocommerce::after,
.woocommerce-account .site-main .woocommerce::before, .woocommerce-account .site-main .woocommerce::after,
.woocommerce-checkout form.checkout::before, .woocommerce-checkout form.checkout::after { display: none; }
.woocommerce-account .u-columns { max-width: 1100px; }
.woocommerce-account .site-main .woocommerce > .woocommerce-form-login,
.woocommerce-account .site-main .woocommerce > h2 { max-width: 520px; }


/* ==========================================================================
   Mobile adjustments for the catalogue and product page
   ========================================================================== */
/* "Ціну уточнюйте" (price on request) must not be larger than a regular price */
ul.products li.product .price.price--ask { font-size: var(--fs-sm) !important; font-weight: 600; color: var(--c-text-muted) !important; line-height: 1.3; }
/* out-of-stock product: muted photo */
ul.products li.product.outofstock .product-card__media img { opacity: 0.6; filter: grayscale(0.35); }
ul.products li.product.outofstock:hover .product-card__media img { opacity: 0.85; filter: none; }
.product-card__media img { transition: transform var(--dur-slow) var(--ease), opacity var(--dur) var(--ease), filter var(--dur) var(--ease); }

/* Pagination: drop the WooCommerce borders, keep the theme pills */
.woocommerce nav.woocommerce-pagination { text-align: center; }
.woocommerce nav.woocommerce-pagination ul.page-numbers { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; border: 0; margin: 0; padding: 0; }
.woocommerce nav.woocommerce-pagination ul.page-numbers li { border: 0; float: none; overflow: visible; margin: 0; padding: 0; }
.woocommerce nav.woocommerce-pagination ul.page-numbers li .page-numbers {
	display: inline-flex; align-items: center; justify-content: center; min-width: 44px; height: 44px; padding: 0 12px;
	border: 1px solid var(--c-border); border-radius: var(--radius-pill); background: #fff; color: var(--c-primary-dark); font-size: var(--fs-sm); font-weight: 600; line-height: 1;
}
.woocommerce nav.woocommerce-pagination ul.page-numbers li a.page-numbers:hover,
.woocommerce nav.woocommerce-pagination ul.page-numbers li a.page-numbers:focus { background: var(--c-primary); border-color: var(--c-primary); color: #fff; }
.woocommerce nav.woocommerce-pagination ul.page-numbers li span.current { background: var(--c-cta); border-color: var(--c-cta); color: #fff; }
.woocommerce nav.woocommerce-pagination ul.page-numbers li .dots { border-color: transparent; background: none; }

/* Back-to-top button must not cover the "Buy" bar */
body:has(.buybar.is-visible) .drop-top { bottom: calc(var(--bottombar-h) + env(safe-area-inset-bottom, 0px) + 92px); }
@media (min-width: 1024px) { body:has(.buybar.is-visible) .drop-top { bottom: 100px; } }

@media (max-width: 767px) {
		ul.products li.product .product-card__btn { width: 100%; justify-content: center; text-align: center; }
	/* two-column problem tiles: description limited to 3 lines */
	.grid--4 .card--problem .card__text, .grid--3 .card--problem .card__text { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; overflow: hidden; }
	.grid--4 .card--problem .card__body { padding: var(--space-3) var(--space-3) var(--space-4); }
	.grid--4 .card--problem .card__title { font-size: 0.95rem; }
}
.product-card__pack { z-index: 2; }

/* "Купити" in cards is orange everywhere (as on the product page); "Детальніше" is blue */
.woocommerce ul.products li.product .button[href*="add-to-cart"], ul.products li.product .button[href*="add-to-cart"] { background: var(--c-cta) !important; }
.woocommerce ul.products li.product .button[href*="add-to-cart"]:hover, ul.products li.product .button[href*="add-to-cart"]:hover { background: var(--c-cta-hover) !important; }
ul.products li.product .button:not([href*="add-to-cart"]) { background: var(--c-primary); }
ul.products li.product .button:not([href*="add-to-cart"]):hover { background: var(--c-primary-darker); }


/* ==========================================================================
   Checkout: errors above both columns, select alignment
   ========================================================================== */
.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup { grid-column: 1 / -1; min-width: 0; }
.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup .woocommerce-error { margin-bottom: 0 !important; }
@media (min-width: 1000px) {
	.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup { grid-row: 1; }
	.woocommerce-checkout #customer_details { grid-row: 2 / span 2; }
	.woocommerce-checkout #order_review_heading { grid-row: 2; }
	.woocommerce-checkout #order_review { grid-row: 3; }
}
/* select2: text vertically centred */
.woocommerce .select2-container { width: 100% !important; }
.woocommerce .select2-container .select2-selection--single { display: flex; align-items: center; height: 48px; padding: 0; background: #fff; }
.woocommerce .select2-container .select2-selection--single .select2-selection__rendered { flex: 1 1 auto; min-width: 0; height: auto; padding: 0 2.4em 0 0.9em !important; margin: 0; line-height: 1.3 !important; color: var(--c-text); }
.woocommerce .select2-container .select2-selection--single .select2-selection__placeholder { color: var(--c-text-light); }
.woocommerce .select2-container .select2-selection--single .select2-selection__arrow { top: 50%; right: 8px; height: 24px; margin-top: -12px; }
.woocommerce .select2-container--open .select2-selection--single, .woocommerce .select2-container--focus .select2-selection--single { border-color: var(--c-primary); box-shadow: var(--focus-ring); }
.select2-dropdown { border: 2px solid var(--c-primary) !important; border-radius: var(--radius) !important; overflow: hidden; box-shadow: var(--shadow-lg); }
.select2-search--dropdown .select2-search__field { min-height: 42px; padding: 0.4em 0.8em !important; border: 2px solid var(--c-border) !important; border-radius: var(--radius-sm) !important; }
.select2-results__option { padding: 0.6em 0.9em !important; font-size: var(--fs-sm); line-height: 1.35; }
.select2-container--default .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-results__option--highlighted[data-selected] { background: var(--c-primary) !important; color: #fff; }
/* field states */
.woocommerce form .form-row.woocommerce-validated .select2-selection, .woocommerce form .form-row.woocommerce-validated select { border-color: var(--c-success); }
.woocommerce form .form-row.woocommerce-invalid .select2-selection, .woocommerce form .form-row.woocommerce-invalid select { border-color: var(--c-danger); }
.woocommerce form .form-row .checkout-inline-error-message { margin: 0.3em 0 0; font-size: var(--fs-xs); color: var(--c-danger); }
/* cart: the shipping address is chosen at checkout */
.woocommerce-cart .woocommerce-shipping-destination, .woocommerce-cart .woocommerce-shipping-calculator { display: none; }
/* recipient fields as a two-column grid: rows don't shift when an error appears below a field */
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 12px; align-items: start; }
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row { grid-column: 1 / -1; width: 100% !important; margin-right: 0 !important; display: block; float: none !important; }
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row-first,
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row-last { grid-column: auto; }
/* hidden Nova Poshta service fields must not take up space */
.woocommerce-checkout .form-row:has(input[type="hidden"]):not(:has(label)) { margin: 0 !important; padding: 0 !important; height: 0; overflow: hidden; }
.prose a.button, .prose a.checkout-button, .prose .woocommerce a.button { text-decoration: none !important; }
.select2-results__option.is-hint { display: none !important; }
/* green border only for filled fields (an empty optional field stays neutral) */
.woocommerce form .form-row.woocommerce-validated .input-text:placeholder-shown { border-color: var(--c-border); }
/* thank-you page: WooCommerce clearfix must not become an empty grid cell */
.woocommerce-order ul.order_details::before, .woocommerce-order ul.order_details::after,
.woocommerce ul.order_details::before, .woocommerce ul.order_details::after { display: none !important; }
.woocommerce-order ul.order_details.bacs_details, .woocommerce-order ul.wc-bacs-bank-details { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.woocommerce-order h2, .woocommerce-order h3 { margin-top: var(--space-6); }
/* cart: full-width table in its column, remove icon without underline */
.woocommerce table.shop_table { width: 100%; }
.woocommerce-cart-form table.shop_table { display: table; }
.prose a.remove, .woocommerce a.remove { text-decoration: none !important; }
/* thank-you page and account: address block as a soft card */
.woocommerce .woocommerce-customer-details address, .woocommerce-account .woocommerce-Address address { border: 0; border-radius: var(--radius-lg); background: var(--c-primary-50); padding: var(--space-4) var(--space-5); font-style: normal; line-height: 1.7; }
.woocommerce .woocommerce-customer-details address p { margin: 0.3em 0 0; }
.woocommerce-order .woocommerce-table--order-details tfoot th { background: var(--c-primary-50); }

/* ==========================================================================
   Customer account
   ========================================================================== */
.woocommerce-account .woocommerce-MyAccount-navigation a, .prose .woocommerce-MyAccount-navigation a { text-decoration: none !important; }
.woocommerce-account .woocommerce-MyAccount-navigation ul { scrollbar-width: none; padding-bottom: 4px; }
.woocommerce-account .woocommerce-MyAccount-navigation ul::-webkit-scrollbar { display: none; }
.woocommerce-account .woocommerce-MyAccount-navigation li { list-style: none; margin: 0; padding: 0; flex: none; }
.woocommerce-account .woocommerce-MyAccount-navigation-link--customer-logout a { color: var(--c-text-muted); border-style: dashed; }
.woocommerce-account .woocommerce-MyAccount-content > p:first-child { font-size: var(--fs-md); margin-bottom: 0.3em; }
.account-cards { margin: var(--space-5) 0 0; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); }
.account-cards .info-card, .prose .account-cards a.info-card { text-decoration: none !important; }
.prose .woocommerce a.button, .prose .woocommerce a.woocommerce-button { text-decoration: none !important; }

/* addresses */
.woocommerce-account .woocommerce-Addresses { display: grid; gap: var(--space-4); }
.woocommerce-account .woocommerce-Addresses::before, .woocommerce-account .woocommerce-Addresses::after { display: none; }
.woocommerce-account .woocommerce-Address { width: 100% !important; float: none !important; max-width: 560px; background: var(--c-primary-50); border-radius: var(--radius-lg); padding: var(--space-5); }
.woocommerce-account .woocommerce-Address-title { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-3); margin-bottom: var(--space-2); }
.woocommerce-account .woocommerce-Address-title::before, .woocommerce-account .woocommerce-Address-title::after { display: none; }
.woocommerce-account .woocommerce-Address-title h2, .woocommerce-account .woocommerce-Address-title h3 { margin: 0; font-size: var(--fs-md); float: none; }
.woocommerce-account .woocommerce-Address-title a { float: none; font-size: var(--fs-sm); font-weight: 600; }
.woocommerce-account .woocommerce-Address address { background: none; padding: 0; border-radius: 0; }

/* account forms */
.woocommerce-account .woocommerce-MyAccount-content form { max-width: 720px; }
.woocommerce form.edit-account, .woocommerce-account .woocommerce-address-fields { display: block; }
.woocommerce form.edit-account { max-width: 720px; border: 0 !important; padding: 0 !important; }
.woocommerce form.edit-account fieldset { margin: var(--space-5) 0; padding: var(--space-5); border: 0; border-radius: var(--radius-lg); background: var(--c-primary-50); }
.woocommerce form.edit-account fieldset legend { float: left; width: 100%; padding: 0; margin: 0 0 var(--space-3); font-size: var(--fs-md); font-weight: 700; color: var(--c-primary-dark); }
.woocommerce form.edit-account fieldset legend + * { clear: both; }
.woocommerce form.edit-account em { display: block; margin-top: 0.3em; font-size: var(--fs-xs); font-style: normal; color: var(--c-text-muted); }
.woocommerce-account .woocommerce-address-fields__field-wrapper { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 12px; align-items: start; margin-bottom: var(--space-3); }
.woocommerce-account .woocommerce-address-fields__field-wrapper > .form-row { grid-column: 1 / -1; width: 100% !important; margin-right: 0 !important; }
.woocommerce-account .woocommerce-address-fields__field-wrapper > .form-row-first, .woocommerce-account .woocommerce-address-fields__field-wrapper > .form-row-last { grid-column: auto; }
@media (max-width: 479px) { .woocommerce-account .woocommerce-address-fields__field-wrapper > .form-row-first, .woocommerce-account .woocommerce-address-fields__field-wrapper > .form-row-last { grid-column: 1 / -1; } }
.woocommerce-account .woocommerce-MyAccount-content h2 { font-size: var(--fs-xl); margin-top: 0; }

/* orders: cards instead of a table on phones */
.woocommerce-account table.woocommerce-orders-table { display: table; width: 100%; }
@media (max-width: 767px) {
	.woocommerce-account table.woocommerce-orders-table tr { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 12px; margin-bottom: var(--space-3); padding: var(--space-4); border: 1px solid var(--c-border-light) !important; border-radius: var(--radius-lg); background: #fff; }
	.woocommerce-account table.woocommerce-orders-table tr td, .woocommerce-account table.woocommerce-orders-table tr th { display: block; padding: 0 !important; text-align: left !important; border: 0 !important; background: none !important; }
	.woocommerce-account table.woocommerce-orders-table tr td::before, .woocommerce-account table.woocommerce-orders-table tr th::before { display: block; float: none; font-size: var(--fs-xs); font-weight: 400; color: var(--c-text-muted); margin-bottom: 2px; content: attr(data-title); }
	.woocommerce-account table.woocommerce-orders-table .woocommerce-orders-table__cell-order-actions { grid-column: 1 / -1; margin-top: 4px; }
	.woocommerce-account table.woocommerce-orders-table .woocommerce-orders-table__cell-order-actions::before { display: none !important; }
	.woocommerce-account table.woocommerce-orders-table .woocommerce-orders-table__cell-order-actions .button { display: block; width: 100%; text-align: center; }
	.woocommerce-account table.woocommerce-orders-table td:empty { display: none; }
	.woocommerce-order-details table.shop_table, .woocommerce-table--order-details { display: table; width: 100%; }
}
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title h2, .woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title h3 { font-size: var(--fs-md); margin: 0; }
.woocommerce form.edit-account { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 12px; align-items: start; }
.woocommerce form.edit-account > * { grid-column: 1 / -1; width: 100% !important; margin-right: 0 !important; }
.woocommerce form.edit-account > .form-row-first, .woocommerce form.edit-account > .form-row-last { grid-column: auto; }
.woocommerce form.edit-account > .clear { display: none; }
.woocommerce form.edit-account > p:last-of-type .button { width: auto; }
@media (max-width: 479px) { .woocommerce form.edit-account > .form-row-first, .woocommerce form.edit-account > .form-row-last { grid-column: 1 / -1; } }
@media (max-width: 767px) {
	/* an empty waybill cell (no waybill yet) takes no space */
	.woocommerce-account table.woocommerce-orders-table td[class*="ttn-column"]:not(:has(*)) { display: none; }
	/* notice with a button: text first, then the button */
	.woocommerce-info:has(> .button), .woocommerce-message:has(> .button) { display: flex !important; flex-direction: column-reverse; align-items: flex-start; gap: 0.7em; }
	.woocommerce-info:has(> .button) .button, .woocommerce-message:has(> .button) .button { margin: 0; white-space: normal; text-align: center; }
}

/* ==========================================================================
   Lost password
   ========================================================================== */
.woocommerce form.lost_reset_password { max-width: 520px; background: #fff; }
.woocommerce form.lost_reset_password > p:first-of-type { margin-top: 0; color: var(--c-text-muted); }
.woocommerce form.lost_reset_password .form-row,
.woocommerce form.lost_reset_password .form-row-first,
.woocommerce form.lost_reset_password .form-row-last { display: block; width: 100% !important; margin-right: 0 !important; float: none !important; }
.woocommerce form.lost_reset_password .clear { display: none; }
.woocommerce form.lost_reset_password .button { width: 100%; min-height: 50px; font-size: var(--fs-md) !important; background: var(--c-cta) !important; }
.woocommerce form.lost_reset_password .button:hover { background: var(--c-cta-hover) !important; }
.woocommerce form.lost_reset_password .form-row:last-of-type { margin-bottom: 0 !important; }
.woocommerce .password-input { display: block; position: relative; }
.woocommerce .password-input .show-password-input { position: absolute; right: 10px; top: 50%; transform: translateY(-50%); width: 32px; height: 32px; border: 0; background: none; cursor: pointer; color: var(--c-text-muted); }
.woocommerce .password-input input { padding-right: 3em !important; }
.woocommerce .woocommerce-password-strength { margin-top: 6px; padding: 6px 10px; border-radius: var(--radius-sm); font-size: var(--fs-xs); font-weight: 600; }
.woocommerce .woocommerce-password-hint { display: block; margin-top: 4px; font-size: var(--fs-xs); color: var(--c-text-muted); }
.auth-back { max-width: 520px; margin: var(--space-4) 0 0; font-size: var(--fs-sm); color: var(--c-text-muted); }
.auth-back a:not(.btn) { font-weight: 600; }
.prose .auth-back a.btn { text-decoration: none; }
.woocommerce-lost-password .woocommerce > p { max-width: 640px; }

/* ==========================================================================
   Login and registration
   ========================================================================== */
.woocommerce-account:not(.logged-in) .u-columns { align-items: stretch; gap: var(--space-6); }
.woocommerce-account:not(.logged-in) .u-columns > div { display: flex; flex-direction: column; }
.woocommerce-account:not(.logged-in) .u-columns h2 { margin: 0 0 var(--space-3); font-size: var(--fs-xl); }
.woocommerce-account:not(.logged-in) .u-columns form { flex: 1; max-width: none; margin: 0 !important; background: #fff; }
.woocommerce-account:not(.logged-in) .u-columns .col-2 form { background: var(--c-primary-50); border-color: transparent !important; }
.woocommerce form.login .form-row, .woocommerce form.register .form-row { display: block; }
.woocommerce form.login .woocommerce-form-login__rememberme { display: inline-flex; align-items: center; gap: 0.5em; margin: 0 0 var(--space-3); font-weight: 400; font-size: var(--fs-sm); cursor: pointer; }
.woocommerce form.login .woocommerce-form-login__rememberme input { width: 18px; height: 18px; margin: 0; accent-color: var(--c-primary); }
.woocommerce form.login .button, .woocommerce form.register .button { min-height: 50px; font-size: var(--fs-md) !important; }
.woocommerce form.login .lost_password { margin: var(--space-3) 0 0; font-size: var(--fs-sm); }
.woocommerce form.register p:not(.form-row) { font-size: var(--fs-sm); color: var(--c-text-muted); }
.woocommerce form.register .woocommerce-privacy-policy-text p { margin-bottom: var(--space-3); }
.auth-benefits { list-style: none; margin: 0 0 var(--space-4); padding: 0; display: grid; gap: 0.45em; font-size: var(--fs-sm); color: var(--c-text); }
.auth-benefits li { position: relative; padding-left: 1.5em; }
.auth-benefits li::before { content: ""; position: absolute; left: 0.15em; top: 0.5em; width: 0.6em; height: 0.6em; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); background: var(--c-accent); }
@media (max-width: 899px) { .woocommerce-account:not(.logged-in) .u-columns { gap: var(--space-5); } }

/* --- Product badges: discount drop, stock label -------------------------- */
.p-badges { position: absolute; z-index: 4; top: 10px; left: 10px; right: 10px; display: flex; align-items: flex-start; justify-content: space-between; gap: 6px; pointer-events: none; }
.p-badges--single { top: 16px; left: 16px; right: 68px; }
.p-badge--sale { position: relative; isolation: isolate; flex: none; width: 54px; height: 62px; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; padding-bottom: 12px; color: #fff; line-height: 1; text-align: center; filter: drop-shadow(0 4px 8px rgba(217, 122, 16, 0.35)); transform-origin: 50% 70%; transition: transform var(--dur) var(--ease-bounce); }
.p-badge--sale::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(165deg, #d9731a 0%, var(--c-cta) 45%, #9a4903 100%); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 58 66'%3E%3Cpath d='M29 1C29 1 54 26.5 54 41a25 25 0 0 1-50 0C4 26.5 29 1 29 1Z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 58 66'%3E%3Cpath d='M29 1C29 1 54 26.5 54 41a25 25 0 0 1-50 0C4 26.5 29 1 29 1Z'/%3E%3C/svg%3E") center / contain no-repeat; }
.p-badge--sale::after { content: ""; position: absolute; left: 21px; top: 14px; width: 4px; height: 9px; border-radius: 50%; background: rgba(255, 255, 255, 0.6); transform: rotate(32deg); }
.p-badge__value { font-family: var(--font-display); font-size: 15px; font-weight: 600; letter-spacing: -0.01em; text-shadow: 0 1px 1px rgba(160, 80, 0, 0.35); }
.p-badge__label { margin-top: 2px; font-size: 8.5px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; opacity: 0.95; }
.p-badge--sale-plain { padding-bottom: 16px; }
.p-badge--sale-plain .p-badge__label { font-size: 10px; letter-spacing: 0.06em; }
.product-card:hover .p-badge--sale, .product-single__gallery:hover .p-badge--sale { transform: rotate(-8deg) scale(1.06); }
.p-badge--out { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; padding: 0.35em 0.75em 0.35em 0.6em; border: 1px solid var(--c-border); border-radius: var(--radius-pill); background: rgba(255, 255, 255, 0.92); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); color: var(--c-text-muted); font-size: var(--fs-xs); font-weight: 600; line-height: 1.2; white-space: nowrap; }
.p-badge--out::before { content: ""; flex: none; width: 9px; height: 11px; background: var(--c-text-light); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 58 66'%3E%3Cpath d='M29 1C29 1 54 26.5 54 41a25 25 0 0 1-50 0C4 26.5 29 1 29 1Z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 58 66'%3E%3Cpath d='M29 1C29 1 54 26.5 54 41a25 25 0 0 1-50 0C4 26.5 29 1 29 1Z'/%3E%3C/svg%3E") center / contain no-repeat; opacity: 0.7; }
.p-badges--single .p-badge--sale { width: 68px; height: 78px; padding-bottom: 15px; }
.p-badges--single .p-badge--sale::after { left: 26px; top: 17px; width: 5px; height: 11px; }
.p-badges--single .p-badge__value { font-size: 18px; }
.p-badges--single .p-badge__label { font-size: 10px; }
.p-badges--single .p-badge--out { font-size: var(--fs-sm); }
@media (max-width: 767px) {
	.p-badges { top: 8px; left: 8px; right: 8px; }
	.p-badge--sale { width: 46px; height: 53px; padding-bottom: 10px; }
	.p-badge--sale::after { left: 18px; top: 12px; width: 3px; height: 8px; }
	.p-badge__value { font-size: 13px; }
	.p-badge__label { font-size: 7.5px; }
	.p-badges--card .p-badge--out { font-size: 10.5px; padding: 0.3em 0.55em 0.3em 0.45em; }
	.p-badges--single { right: 60px; }
}
@media (prefers-reduced-motion: reduce) { .p-badge--sale { transition: none; } }

/* --- "Rate your purchase" page (/vidguk/{order}/, WooCommerce review request) ------------------------- */
.entry-header:has(> h1:empty) { display: none; } /* WooCommerce prints its own heading inside the page */
.woocommerce-review-order { max-width: 880px; }
.woocommerce-review-order__meta { margin: 0 0 var(--space-3); font-size: var(--fs-sm); color: var(--c-text-muted); }
.woocommerce-review-order__title, .woocommerce-review-order__empty-title { margin: 0 0 var(--space-4); }
.woocommerce-review-order__intro { margin: 0 0 var(--space-2); font-size: var(--fs-lg); }
.woocommerce-review-order__legend { margin: 0 0 var(--space-5); font-size: var(--fs-sm); color: var(--c-text-muted); }
.prose .woocommerce-review-order__items { display: grid; gap: var(--space-4); margin: 0 0 var(--space-5); padding: 0; list-style: none; }
.prose .woocommerce-review-order__items > li { padding: var(--space-5); border: 1px solid var(--c-border-light); border-radius: var(--radius-lg); background: #fff; box-shadow: var(--shadow-sm); }
.prose .woocommerce-review-order__items > li::before { content: none; }
.woocommerce-review-order__item:first-child { padding-top: var(--space-5); }
.woocommerce-review-order__item-title { margin: 0 0 var(--space-4); font-family: var(--font-display); font-size: var(--fs-lg); font-weight: 600; }
.prose .woocommerce-review-order__item-title a { color: var(--c-primary-dark); text-decoration: none; }
.prose .woocommerce-review-order__item-title a:hover { color: var(--c-primary); }
.woocommerce-review-order__item-row { display: grid; grid-template-columns: 96px auto minmax(0, 1fr); gap: var(--space-5); align-items: start; }
.woocommerce-review-order__item-image { max-width: none; padding: 6px; border-radius: var(--radius); background: var(--c-primary-50); }
.prose .woocommerce-review-order__item-image img { margin: 0; border-radius: calc(var(--radius) - 4px); mix-blend-mode: multiply; }
.woocommerce-review-order__item-rating-label, .woocommerce-review-order__item-review-label { margin: 0 0 6px; font-size: var(--fs-sm); font-weight: 600; color: var(--c-text); }
.woocommerce-review-order__item-rating-label .required { color: var(--c-accent); }
.woocommerce-review-order__item-review-textarea { min-height: 96px; }
.woocommerce-star-rating__star { color: var(--c-accent); }
.woocommerce-star-rating__icon { width: 30px; height: 30px; opacity: 0.25; transition: opacity var(--dur) var(--ease), transform var(--dur) var(--ease); }
.woocommerce-star-rating__star:hover .woocommerce-star-rating__icon { transform: scale(1.12); }
.woocommerce-star-rating__caption { font-size: var(--fs-sm); color: var(--c-text-muted); opacity: 1; }
.woocommerce-review-order__item-rating-error { font-size: var(--fs-sm); color: var(--c-danger, #c0392b); }
.woocommerce-review-order__item-status { font-size: var(--fs-sm); font-weight: 600; }
.woocommerce-review-order__item-status--ok { color: var(--c-success, #3c8c2e); }
.woocommerce-review-order__submit.button { display: inline-flex; align-items: center; min-height: 48px; padding: 0.7em 1.8em; border: 0; border-radius: var(--radius-pill); background: var(--c-cta); color: #fff; font-weight: 700; cursor: pointer; transition: background-color var(--dur) var(--ease), transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), opacity var(--dur) var(--ease); }
.woocommerce-review-order__submit.button:hover:not(:disabled) { background: var(--c-cta-hover); transform: translateY(-2px); box-shadow: var(--shadow); }
.woocommerce-review-order__submit.button:disabled { opacity: 0.45; cursor: not-allowed; }
.woocommerce-review-order__success, .woocommerce-review-order--empty { padding: var(--space-6); border-radius: var(--radius-lg); background: var(--c-primary-50); text-align: center; }
@media (max-width: 767px) {
	.woocommerce-review-order__item-row { grid-template-columns: 72px minmax(0, 1fr); gap: var(--space-3) var(--space-4); }
	.woocommerce-review-order__item-review { grid-column: 1 / -1; }
	.prose .woocommerce-review-order__items > li { padding: var(--space-4); }
	.woocommerce-review-order__item:first-child { padding-top: var(--space-4); }
}

/* Wholesale price (inc/wholesale.php, main.js) */
.ws-offer { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: var(--space-2) var(--space-3); margin: 0 0 var(--space-4); padding: var(--space-3) var(--space-4) calc(var(--space-3) + 6px); border: 1px solid #f6dcbc; border-radius: var(--radius-lg); background: #fff7ee; overflow: hidden; transition: border-color var(--dur) var(--ease), background-color var(--dur) var(--ease); }
.ws-offer__icon { display: grid; place-items: center; width: 44px; height: 44px; background: var(--c-accent); color: #fff; transition: background-color var(--dur) var(--ease); }
.ws-offer__icon .icon { width: 22px; height: 22px; }
.ws-offer__title { margin: 0; font-size: var(--fs-sm); line-height: 1.35; color: var(--c-text); }
.ws-offer__title strong { color: var(--c-cta-hover); font-size: var(--fs-base); white-space: nowrap; }
.ws-offer__pct { display: inline-block; padding: 0 0.5em; border-radius: var(--radius-pill); background: var(--c-cta); color: #fff; font-size: var(--fs-xs); font-weight: 700; line-height: 1.6; vertical-align: 1px; }
.ws-offer__note { margin: 2px 0 0; font-size: var(--fs-xs); color: var(--c-text-muted); }
.ws-offer__note strong { color: var(--c-text); }
.ws-offer__btn { padding: 0.5em 1em; border: 2px solid var(--c-cta); border-radius: var(--radius-pill); background: #fff; color: var(--c-cta-hover); font: inherit; font-size: var(--fs-sm); font-weight: 700; white-space: nowrap; cursor: pointer; transition: background-color var(--dur) var(--ease), color var(--dur) var(--ease), transform var(--dur) var(--ease); }
.ws-offer__btn:hover { background: var(--c-cta); color: #fff; transform: translateY(-1px); }
/* "water level" along the bottom edge: how much of the carton is already in the quantity */
.ws-offer__level { position: absolute; left: 0; right: 0; bottom: 0; height: 5px; background: color-mix(in srgb, var(--c-accent) 14%, transparent); }
.ws-offer__level i { position: absolute; inset: 0; transform-origin: left; transform: scaleX(var(--level, 0)); background: linear-gradient(90deg, var(--c-accent), var(--c-cta)); border-radius: 0 3px 3px 0; transition: transform 0.5s var(--ease), background 0.4s var(--ease); }
.ws-offer.is-active { border-color: color-mix(in srgb, var(--c-success) 40%, #fff); background: #f1faf3; }
.ws-offer.is-active .ws-offer__icon { background: var(--c-success); }
.ws-offer.is-active .ws-offer__level i { background: linear-gradient(90deg, var(--c-teal), var(--c-success)); }
.ws-offer.is-active .ws-offer__btn { display: none; }
.ws-offer.is-active .ws-offer__note { color: var(--c-success-text); }
@media (max-width: 479px) {
	.ws-offer { grid-template-columns: auto minmax(0, 1fr); }
	.ws-offer__btn { grid-column: 1 / -1; justify-self: stretch; }
}
.ws-tag { display: inline-block; margin-left: 0.45em; padding: 0 0.55em; border-radius: var(--radius-pill); background: var(--c-success); color: #fff; font-size: 0.75rem; font-weight: 700; line-height: 1.7; vertical-align: middle; letter-spacing: 0.02em; }
.product-single__price.is-ws ins { color: var(--c-success-text); }
.product-single__price.is-ws .ws-tag { font-size: 0.32em; vertical-align: 0.5em; }

.variant__ws { margin-top: 3px; padding: 0 6px; border-radius: var(--radius-pill); background: #fff1e0; color: var(--c-cta-hover); font-size: 11px; font-weight: 700; white-space: nowrap; }
/* sticky bar: the wholesale label goes on the price line, the name keeps its own line */
.buybar__info:has(.buybar__ws) { flex-direction: row; flex-wrap: wrap; align-items: baseline; column-gap: 0.6em; }
.buybar__info:has(.buybar__ws) > strong { flex-basis: 100%; }
.buybar__ws { font-size: var(--fs-xs); color: var(--c-text-muted); white-space: nowrap; }
.buybar__info .buybar__ws strong { font-size: inherit; color: var(--c-cta-hover); }
.product-card__prices { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.product-card__ws { font-size: var(--fs-xs); line-height: 1.3; color: var(--c-text-muted); }
.woocommerce ul.products li.product .product-card__ws strong { display: inline; color: var(--c-cta-hover); }

/* cart */
.ws-price { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 0 0.35em; }
.ws-price del { color: var(--c-text-light); font-weight: 400; }
.ws-price ins { text-decoration: none; font-weight: 700; color: var(--c-success-text); }
.ws-price .ws-tag { margin-left: 0; }
.ws-cart { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; margin: 6px 0 0; font-size: var(--fs-xs); line-height: 1.4; color: var(--c-text-muted); }
.ws-cart .icon { flex: none; width: 16px; height: 16px; }
.ws-cart.is-active { color: var(--c-success-text); }
.ws-cart.is-near { padding: 6px 6px 6px 10px; border-radius: var(--radius); background: #fff7ee; color: var(--c-text); }
.ws-cart.is-near .icon { color: var(--c-accent); }
.ws-cart > span { flex: 1 1 12em; min-width: 0; }
.ws-cart strong { color: inherit; }
.ws-cart.is-near strong { color: var(--c-cta-hover); }
.ws-cart__btn { padding: 0.3em 0.9em; border: 0; border-radius: var(--radius-pill); background: var(--c-cta); color: #fff; font: inherit; font-weight: 700; cursor: pointer; transition: background-color var(--dur) var(--ease), transform var(--dur) var(--ease); }
.ws-cart__btn:hover { background: var(--c-cta-hover); transform: translateY(-1px); }
.ws-saving th, .ws-saving td { color: var(--c-success-text); font-weight: 700; }

/* Cart updates itself on quantity change (main.js) — the button is only a no-JS fallback */
html:not(.no-js) .woocommerce-cart-form [name="update_cart"] { display: none !important; }
.woocommerce-cart-form .quantity input.qty { -moz-appearance: textfield; }
.woocommerce-cart-form .quantity input.qty::-webkit-outer-spin-button, .woocommerce-cart-form .quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
/* Cart table on medium screens: −/+ widened the quantity column and squeezed the thumbnail to nothing */
.woocommerce table.shop_table td.product-thumbnail { width: 72px; }
.woocommerce table.shop_table td.product-thumbnail img { min-width: 56px; }
.woocommerce-cart-form .quantity { flex-wrap: nowrap; }
.woocommerce table.shop_table .woocommerce-cart-form__cart-item .quantity input.qty, .woocommerce-cart-form .quantity input.qty { width: 40px; padding: 0; }
.woocommerce-cart-form .qty-btn { width: 30px; font-size: 1.15em; }
@media (min-width: 768px) and (max-width: 1279px) {
	.woocommerce-cart-form table.shop_table th, .woocommerce-cart-form table.shop_table td { padding-inline: 0.6em !important; }
	.woocommerce table.shop_table td.product-remove { width: 44px; }
}
