/*
Theme Name: Hello Unikem
Template: hello-elementor
Version: 1.0.0
Text Domain: hello-unikem
Description: Hello Elementor child theme for Unikem Pharmacy; styles the WooCommerce product, cart and checkout pages to match the Elementor site.
*/

/* ==========================================================================
   Unikem Pharmacy: WooCommerce single product, Cart block and Checkout block.
   CSS only. Every colour, font, size, space, radius and shadow comes from the design
   tokens that the Elementor Kit custom CSS defines on `body` (var(--color-*) etc.).
   Scope: `body.woocommerce-page .site-main`, so the Elementor header, footer, side cart
   and popups are never touched. Selectors mirror WooCommerce's own selectors plus the
   scope, so they win on specificity without !important.
   ========================================================================== */

/* 1. Shared ---------------------------------------------------------------- */
body.woocommerce-page {
  --uk-woo-gutter: 16px;
  --uk-woo-container: 1256px; /* Elementor Kit container width */
  /* Line icons from the design (same SVGs as the Kit's uk-i-* classes), used as CSS masks */
  --uk-woo-ico-bag-plus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 8h14l-1 12H6L5 8z'/%3E%3Cpath d='M9 8V6a3 3 0 0 1 6 0v2'/%3E%3Cpath d='M12 11.5v5M9.5 14h5'/%3E%3C/svg%3E");
  --uk-woo-ico-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E");
  --uk-woo-ico-arrow-right: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
  --uk-woo-ico-check-circle: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='m8 12 3 3 5-6'/%3E%3C/svg%3E");
  --uk-woo-ico-info: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5M12 8h.01'/%3E%3C/svg%3E");
}
@media (min-width: 768px) { body.woocommerce-page { --uk-woo-gutter: 24px; } }

/* Hello caps .site-main at 500-1140px; the rest of the site uses the 1256px Elementor container */
body.woocommerce-page:not([class*=elementor-page-]) .site-main {
  max-width: calc(var(--uk-woo-container) + 2 * var(--uk-woo-gutter));
  padding-inline: var(--uk-woo-gutter);
  padding-block: var(--space-6) var(--space-10);
  color: var(--color-text);
  font-family: var(--font-body);
}
@media (min-width: 1025px) {
  body.woocommerce-page:not([class*=elementor-page-]) .site-main { padding-block: var(--space-7) var(--space-11); }
}
body.woocommerce-page .site-main .page-header .entry-title {
  max-width: none; margin: 0 0 var(--space-6); padding-inline: 0;
  font-family: var(--font-heading); font-size: var(--fs-h1); font-weight: 800; line-height: var(--lh-heading);
  letter-spacing: var(--ls-heading); color: var(--color-text);
}
/* Hello pulls .alignwide blocks 80px outside the column (it cut the cart off on phones) */
body.woocommerce-page .site-main .alignwide { margin-inline: 0; max-width: none; width: auto; }
body.woocommerce-page .site-main :focus-visible { outline: 3px solid var(--color-focus); outline-offset: 2px; }
/* WooCommerce moves focus to notices and the cart table (tabindex=-1) for screen readers; no ring on those */
body.woocommerce-page .site-main [tabindex="-1"]:focus { outline: none; }

/* Primary pill button (matches .uk-btn--primary) */
body.woocommerce-page .site-main form.cart .single_add_to_cart_button.button,
body.woocommerce-page .site-main .wc-block-components-button.contained:not(.wc-block-components-totals-coupon__button) {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2);
  min-height: var(--control-h); height: auto; padding: 0 var(--space-6); margin: 0;
  border: 2px solid transparent; border-radius: var(--radius-pill);
  background: var(--color-accent-strong); color: var(--color-white); box-shadow: none; opacity: 1;
  font-family: var(--font-body); font-size: .9375rem; font-weight: 600; line-height: 1; letter-spacing: 0;
  text-decoration: none; text-transform: none; cursor: pointer;
  transition: background-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}
body.woocommerce-page .site-main form.cart .single_add_to_cart_button.button:hover,
body.woocommerce-page .site-main form.cart .single_add_to_cart_button.button:focus-visible,
body.woocommerce-page .site-main .wc-block-components-button.contained:not(.wc-block-components-totals-coupon__button):hover,
body.woocommerce-page .site-main .wc-block-components-button.contained:not(.wc-block-components-totals-coupon__button):focus-visible {
  background: var(--color-accent-deep); color: var(--color-white); box-shadow: none;
}
body.woocommerce-page .site-main form.cart .single_add_to_cart_button.button:is(:disabled, .disabled),
body.woocommerce-page .site-main .wc-block-components-button.contained:disabled {
  background: var(--color-line); color: var(--color-text-muted); cursor: not-allowed; opacity: 1;
}

/* Outline pill button (matches .uk-btn--outline) */
body.woocommerce-page .site-main .woocommerce-notices-wrapper .button,
body.woocommerce-page .site-main :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) .button,
body.woocommerce-page .site-main .wc-block-components-totals-coupon__button.wc-block-components-button {
  display: inline-flex; align-items: center; justify-content: center; flex: none;
  min-height: var(--tap); height: auto; padding: 0 var(--space-5); margin: 0;
  border: 2px solid var(--color-charcoal); border-radius: var(--radius-pill);
  background: transparent; color: var(--color-charcoal); box-shadow: none;
  font-family: var(--font-body); font-size: .9375rem; font-weight: 600; line-height: 1; text-decoration: none; white-space: nowrap;
  transition: background-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}
body.woocommerce-page .site-main .woocommerce-notices-wrapper .button:hover,
body.woocommerce-page .site-main :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) .button:hover,
body.woocommerce-page .site-main .wc-block-components-totals-coupon__button.wc-block-components-button:hover {
  background: var(--color-charcoal); color: var(--color-white);
}

/* Classic notices ("added to cart", info, errors): icon, message, then the button */
body.woocommerce-page .site-main :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) {
  position: relative; margin: 0 0 var(--space-5); padding: var(--space-4) var(--space-5);
  border: 1px solid var(--color-green); border-radius: var(--radius-md); background: var(--color-green-tint); color: var(--color-text);
  font-size: var(--fs-sm); font-weight: 500; line-height: var(--lh-snug); list-style: none;
}
body.woocommerce-page .site-main :is(.woocommerce-message, .woocommerce-info) {
  display: grid; grid-template-columns: var(--icon-md) minmax(0, 1fr); align-items: center; gap: var(--space-3);
}
@media (min-width: 768px) {
  body.woocommerce-page .site-main :is(.woocommerce-message, .woocommerce-info) { grid-template-columns: var(--icon-md) minmax(0, 1fr) auto; }
}
body.woocommerce-page .site-main :is(.woocommerce-message, .woocommerce-info, .woocommerce-error)::before {
  content: ""; position: static; flex: none; width: var(--icon-md); height: var(--icon-md); margin: 0;
  background-color: var(--color-green); font-family: inherit;
  -webkit-mask: var(--uk-woo-ico-check-circle) center / contain no-repeat; mask: var(--uk-woo-ico-check-circle) center / contain no-repeat;
}
body.woocommerce-page .site-main :is(.woocommerce-message, .woocommerce-info, .woocommerce-error)::after { display: none; }
body.woocommerce-page .site-main .woocommerce-error { padding-left: calc(var(--space-5) + var(--icon-md) + var(--space-3)); }
body.woocommerce-page .site-main .woocommerce-error::before { position: absolute; top: calc(var(--space-4) - 2px); left: var(--space-5); }
body.woocommerce-page .site-main .woocommerce-error > li { margin: 0; padding: 0; }
body.woocommerce-page .site-main .woocommerce-error > li + li { margin-top: var(--space-2); }
body.woocommerce-page .site-main .woocommerce-info { border-color: var(--color-accent-strong); background: var(--color-accent-tint); }
body.woocommerce-page .site-main .woocommerce-info::before { background-color: var(--color-accent-strong); -webkit-mask-image: var(--uk-woo-ico-info); mask-image: var(--uk-woo-ico-info); }
body.woocommerce-page .site-main .woocommerce-error { border-color: var(--color-danger); background: var(--color-surface); }
body.woocommerce-page .site-main .woocommerce-error::before { background-color: var(--color-danger); -webkit-mask-image: var(--uk-woo-ico-info); mask-image: var(--uk-woo-ico-info); }
body.woocommerce-page .site-main :is(.woocommerce-message, .woocommerce-info) .button { grid-column: 2; justify-self: start; float: none; }
@media (min-width: 768px) {
  body.woocommerce-page .site-main :is(.woocommerce-message, .woocommerce-info) .button { grid-column: 3; grid-row: 1; }
}
body.woocommerce-page .site-main :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) a:not(.button) { color: var(--color-link); font-weight: 600; }

/* 2. Single product ----------------------------------------------------------- */
body.single-product .site-main .woocommerce-breadcrumb {
  margin: 0 0 var(--space-5); color: var(--color-text-muted); font-size: var(--fs-sm); line-height: var(--lh-body);
}
body.single-product .site-main .woocommerce-breadcrumb a {
  display: inline-block; padding-block: 12px; margin-block: -12px; color: var(--color-text-muted); text-decoration: none;
}
body.single-product .site-main .woocommerce-breadcrumb a:hover { color: var(--color-accent-strong); text-decoration: underline; }

/* Gallery left, summary right; tabs and related products run full width below */
body.single-product .site-main div.product {
  display: grid; grid-template-columns: minmax(0, 1fr); column-gap: var(--space-8); align-items: start; position: relative;
}
body.single-product .site-main div.product > * { grid-column: 1 / -1; }
body.single-product .site-main div.product::before, body.single-product .site-main div.product::after { content: none; }
@media (min-width: 768px) {
  body.single-product .site-main div.product { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.single-product .site-main div.product > :is(div.images, div.summary) { grid-column: auto; }
}
@media (min-width: 1025px) {
  body.single-product .site-main div.product { column-gap: var(--space-10); }
}
body.single-product .site-main div.product div.images,
body.single-product .site-main div.product div.summary { float: none; width: auto; margin: 0; }

/* Gallery */
body.single-product .site-main div.product div.images .woocommerce-product-gallery__wrapper {
  margin: 0; border: 1px solid var(--color-line); border-radius: var(--radius-lg); background-color: var(--color-mist); overflow: hidden;
}
body.single-product .site-main div.product div.images .flex-viewport { border: 1px solid var(--color-line); border-radius: var(--radius-lg); overflow: hidden; }
body.single-product .site-main div.product div.images .flex-viewport .woocommerce-product-gallery__wrapper { border: 0; border-radius: 0; }
body.single-product .site-main div.product div.images .woocommerce-product-gallery__image > a > img {
  display: block; width: 100%; height: auto; aspect-ratio: var(--product-image-ratio); object-fit: cover; background-color: var(--color-mist);
}
body.single-product .site-main div.product div.images .woocommerce-product-gallery__image--placeholder img {
  display: block; width: 100%; height: auto; aspect-ratio: var(--product-image-ratio); object-fit: cover; border: 0;
}
body.single-product .site-main div.product div.images .flex-control-thumbs {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-3); margin: var(--space-3) 0 0; padding: 0;
}
body.single-product .site-main div.product div.images .flex-control-thumbs::before,
body.single-product .site-main div.product div.images .flex-control-thumbs::after { content: none; }
body.single-product .site-main div.product div.images .flex-control-thumbs li { float: none; width: auto; margin: 0; }
body.single-product .site-main div.product div.images .flex-control-thumbs li img {
  aspect-ratio: var(--product-image-ratio); object-fit: cover; border: 1.5px solid var(--color-line); border-radius: var(--radius-sm);
  background-color: var(--color-mist); opacity: 1;
}
body.single-product .site-main div.product div.images .flex-control-thumbs li img.flex-active { border-color: var(--color-accent-strong); }
body.single-product .site-main div.product div.images .flex-control-thumbs li img:hover { border-color: var(--color-line-strong); }
body.single-product .site-main div.product div.images .woocommerce-product-gallery__trigger {
  top: var(--space-3); right: var(--space-3); z-index: 3; /* WooCommerce's 99 put it above the header's side cart */
  display: grid; place-items: center; width: var(--tap); height: var(--tap);
  border-radius: 50%; background: var(--color-surface); color: var(--color-ink); box-shadow: var(--shadow-xs); text-indent: 0; font-size: 0;
}
body.single-product .site-main div.product div.images .woocommerce-product-gallery__trigger > * { display: none; }
body.single-product .site-main div.product div.images .woocommerce-product-gallery__trigger::before {
  content: ""; position: static; display: block; width: var(--icon-md); height: var(--icon-md); border: 0; border-radius: 0; box-sizing: border-box;
  background-color: currentColor; -webkit-mask: var(--uk-woo-ico-search) center / contain no-repeat; mask: var(--uk-woo-ico-search) center / contain no-repeat;
}
body.single-product .site-main div.product div.images .woocommerce-product-gallery__trigger::after { display: none; }
body.single-product .site-main div.product div.images .woocommerce-product-gallery__trigger:hover { color: var(--color-accent-strong); }

/* Sale / out of stock badge (matches .badge--sale) */
body.woocommerce-page .site-main span.onsale {
  top: var(--space-3); left: var(--space-3); right: auto; z-index: 3;
  display: inline-flex; align-items: center; min-width: 0; min-height: 0; margin: 0; padding: var(--space-1) var(--space-3);
  border-radius: var(--radius-pill); background: var(--color-accent-strong); color: var(--color-white);
  font-family: var(--font-body); font-size: var(--fs-overline); font-weight: 700; line-height: var(--lh-snug); letter-spacing: .02em;
}
body.single-product .site-main div.product > span.onsale { top: var(--space-4); left: var(--space-4); }

/* Summary */
body.single-product .site-main div.product div.summary {
  display: flex; flex-wrap: wrap; align-items: center; align-content: flex-start; gap: 0 var(--space-3); padding-top: var(--space-6);
}
body.single-product .site-main div.product div.summary > * { flex: 1 1 100%; min-width: 0; margin-top: 0; }
@media (min-width: 768px) { body.single-product .site-main div.product div.summary { padding-top: var(--space-2); } }
body.single-product .site-main div.product .product_title {
  margin: 0 0 var(--space-3); padding: 0;
  font-family: var(--font-heading); font-size: var(--fs-h2); font-weight: 800; line-height: var(--lh-heading);
  letter-spacing: var(--ls-heading); color: var(--color-text); overflow-wrap: anywhere;
}
body.single-product .site-main div.product p.price,
body.single-product .site-main div.product span.price {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 var(--space-2); margin: 0 0 var(--space-3);
  font-family: var(--font-heading); font-size: var(--fs-h3); font-weight: 800; line-height: var(--lh-snug); color: var(--color-text);
}
body.single-product .site-main div.product p.price del,
body.single-product .site-main div.product span.price del {
  order: 2; font-family: var(--font-body); font-size: var(--fs-sm); font-weight: 500; color: var(--color-text-muted); opacity: 1;
}
body.single-product .site-main div.product p.price ins,
body.single-product .site-main div.product span.price ins { text-decoration: none; color: var(--color-accent-strong); font-weight: 800; }
body.single-product .site-main div.product .woocommerce-product-details__short-description { margin: 0 0 var(--space-3); color: var(--color-text-muted); }
body.single-product .site-main div.product .woocommerce-product-details__short-description > :last-child { margin-bottom: 0; }

/* Stock line (matches .stock) */
body.single-product .site-main div.product .stock {
  display: inline-flex; flex: 1 1 100%; align-items: center; gap: var(--space-2); margin: 0 0 var(--space-2);
  color: var(--color-green); font-size: var(--fs-xs); font-weight: 600; line-height: var(--lh-snug);
}
body.single-product .site-main div.product .stock::before { content: ""; flex: none; width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
body.single-product .site-main div.product .stock.out-of-stock { color: var(--color-text-muted); }

/* Quantity + add to cart + wishlist on one row */
body.single-product .site-main div.product form.cart {
  display: flex; flex: 1 1 auto; flex-wrap: wrap; align-items: center; gap: var(--space-3); margin: var(--space-3) 0;
  max-width: calc(5.5rem + 22rem + var(--space-3));
}
body.single-product .site-main div.product form.cart::before, body.single-product .site-main div.product form.cart::after { content: none; }
body.single-product .site-main div.product form.cart div.quantity { float: none; margin: 0; }
body.woocommerce-page .site-main .quantity .qty {
  width: 5.5rem; min-height: var(--control-h); height: var(--control-h); padding: 0 var(--space-2); margin: 0;
  border: 1.5px solid var(--color-line-input); border-radius: var(--radius-md); background: var(--color-surface); color: var(--color-text);
  font-family: var(--font-body); font-size: var(--fs-body); font-weight: 600; text-align: center; box-shadow: none;
}
body.woocommerce-page .site-main .quantity .qty:hover, body.woocommerce-page .site-main .quantity .qty:focus { border-color: var(--color-ink); }
body.single-product .site-main div.product form.cart .single_add_to_cart_button.button { flex: 1 1 10rem; max-width: 22rem; }
body.single-product .site-main div.product form.cart .single_add_to_cart_button.button::before {
  content: ""; flex: none; width: var(--icon-sm); height: var(--icon-sm); background-color: currentColor;
  -webkit-mask: var(--uk-woo-ico-bag-plus) center / contain no-repeat; mask: var(--uk-woo-ico-bag-plus) center / contain no-repeat;
}
body.single-product .site-main div.product form.cart .single_add_to_cart_button.button.loading::after { display: none; }
body.single-product .site-main div.product form.cart table.variations { margin: 0; flex: 1 1 100%; }
body.single-product .site-main div.product form.cart .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: var(--space-3); }

/* YITH wishlist: round outline heart, like the product cards (its label stays for screen readers) */
body.single-product .site-main div.product .yith-add-to-wishlist-button-block.yith-add-to-wishlist-button-block--single {
  flex: none; width: auto; margin: var(--space-3) 0;
}
body.single-product .site-main div.product .yith-add-to-wishlist-button-block .yith-wcwl-add-to-wishlist-button {
  position: relative; display: grid; place-items: center; width: var(--control-h); height: var(--control-h); min-height: 0; padding: 0; margin: 0;
  border: 1.5px solid var(--color-line-strong); border-radius: 50%; background: var(--color-surface); color: var(--color-ink);
  box-shadow: none; font-size: 0; cursor: pointer;
  transition: border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}
body.single-product .site-main div.product .yith-add-to-wishlist-button-block .yith-wcwl-add-to-wishlist-button:hover {
  border-color: var(--color-accent-strong); background: var(--color-surface); color: var(--color-accent-strong);
}
body.single-product .site-main div.product .yith-add-to-wishlist-button-block .yith-wcwl-add-to-wishlist-button--added { border-color: var(--color-accent-strong); color: var(--color-accent-strong); }
body.single-product .site-main div.product .yith-add-to-wishlist-button-block .yith-wcwl-icon-svg__wrapper { display: grid; place-items: center; margin: 0; }
body.single-product .site-main div.product .yith-add-to-wishlist-button-block .yith-wcwl-add-to-wishlist-button svg { width: var(--icon-md); height: var(--icon-md); color: inherit; }
body.single-product .site-main div.product .yith-add-to-wishlist-button-block .yith-wcwl-add-to-wishlist-button__label {
  position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
}
body.single-product .site-main div.product .yith-add-to-wishlist-button-block a:not(.yith-wcwl-add-to-wishlist-button) { font-size: var(--fs-sm); font-weight: 600; color: var(--color-link); }

/* SKU / category / tag */
body.single-product .site-main div.product .product_meta {
  display: flex; flex-direction: column; gap: var(--space-1); margin-top: var(--space-3); padding-top: var(--space-4);
  border-top: 1px solid var(--color-line); color: var(--color-text-muted); font-size: var(--fs-sm); line-height: var(--lh-body);
}
body.single-product .site-main div.product .product_meta > span { display: block; }
body.single-product .site-main div.product .product_meta .sku { color: var(--color-text); font-weight: 600; }
/* Inline links: padding + negative margin give a 44px tap area without changing the line height */
body.single-product .site-main div.product .product_meta a {
  display: inline-block; padding-block: 12px; margin-block: -12px; color: var(--color-link); font-weight: 600; text-decoration: none;
}
body.single-product .site-main div.product .product_meta a:hover { color: var(--color-link-hover); text-decoration: underline; }

/* Tabs (matches .tabs) */
body.single-product .site-main div.product .woocommerce-tabs { margin-top: var(--space-9); padding: 0; }
body.single-product .site-main div.product .woocommerce-tabs ul.tabs {
  display: flex; gap: var(--space-1); margin: 0; padding: 0; overflow-x: auto; border-bottom: 1px solid var(--color-line);
  list-style: none; scrollbar-width: none;
}
body.single-product .site-main div.product .woocommerce-tabs ul.tabs::-webkit-scrollbar { display: none; }
body.single-product .site-main div.product .woocommerce-tabs ul.tabs::before,
body.single-product .site-main div.product .woocommerce-tabs ul.tabs::after,
body.single-product .site-main div.product .woocommerce-tabs ul.tabs li::before,
body.single-product .site-main div.product .woocommerce-tabs ul.tabs li::after { display: none; content: none; }
body.single-product .site-main div.product .woocommerce-tabs ul.tabs li {
  flex: none; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent;
}
body.single-product .site-main div.product .woocommerce-tabs ul.tabs li a {
  position: relative; display: flex; align-items: center; min-height: 52px; padding: 0 var(--space-5);
  color: var(--color-text-muted); font-family: var(--font-heading); font-size: 1.0625rem; font-weight: 700; text-decoration: none; white-space: nowrap;
}
body.single-product .site-main div.product .woocommerce-tabs ul.tabs li a::after {
  content: ""; position: absolute; left: var(--space-3); right: var(--space-3); bottom: 0; height: 3px;
  border-radius: var(--radius-pill) var(--radius-pill) 0 0; background: var(--color-accent);
  transform: scaleX(0); transition: transform var(--dur) var(--ease);
}
body.single-product .site-main div.product .woocommerce-tabs ul.tabs li a:hover,
body.single-product .site-main div.product .woocommerce-tabs ul.tabs li.active a { color: var(--color-text); }
body.single-product .site-main div.product .woocommerce-tabs ul.tabs li.active a::after { transform: scaleX(1); }
body.single-product .site-main div.product .woocommerce-tabs .panel { margin: 0; padding-block: var(--space-6); max-width: 72ch; color: var(--color-text); }
body.single-product .site-main div.product .woocommerce-tabs .panel > h2:first-child {
  margin: 0 0 var(--space-3); font-family: var(--font-heading); font-size: var(--fs-h4); font-weight: 700; line-height: var(--lh-heading);
}
body.single-product .site-main div.product .woocommerce-tabs .shop_attributes { border-top: 1px solid var(--color-line); }
body.single-product .site-main div.product .woocommerce-tabs .shop_attributes :is(th, td) {
  padding: var(--space-2) var(--space-3); border-bottom: 1px solid var(--color-line); background: transparent; font-style: normal; text-align: start;
}

/* Related / upsell headings */
body.single-product .site-main div.product :is(section.related, section.up-sells) { margin-top: var(--space-10); }
body.single-product .site-main div.product :is(section.related, section.up-sells) > h2 {
  margin: 0 0 var(--space-6); font-family: var(--font-heading); font-size: var(--fs-h2); font-weight: 800;
  line-height: var(--lh-heading); letter-spacing: var(--ls-heading); color: var(--color-text); text-align: start;
}

/* 3. Product cards: related / upsell loops and the empty cart "New in store" grid (match .uk-card) -- */
body.woocommerce-page .site-main ul.products,
body.woocommerce-page .site-main .wc-block-grid__products {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); margin: 0; padding: 0; list-style: none;
}
@media (min-width: 768px) {
  body.woocommerce-page .site-main ul.products,
  body.woocommerce-page .site-main .wc-block-grid__products { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-4); }
}
@media (min-width: 1025px) {
  body.woocommerce-page .site-main ul.products,
  body.woocommerce-page .site-main .wc-block-grid__products { gap: var(--space-6); }
}
body.woocommerce-page .site-main ul.products::before, body.woocommerce-page .site-main ul.products::after { content: none; }
body.woocommerce-page .site-main ul.products li.product,
body.woocommerce-page .site-main .wc-block-grid__products .wc-block-grid__product {
  position: relative; display: flex; flex-direction: column; float: none; clear: none;
  width: auto; max-width: none; min-width: 0; height: 100%; margin: 0; padding: 0;
  border: 1px solid var(--color-line); border-radius: var(--radius-lg); background: var(--color-surface);
  overflow: hidden; text-align: start; font-size: var(--fs-body);
  transition: box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
body.woocommerce-page .site-main ul.products li.product:hover,
body.woocommerce-page .site-main .wc-block-grid__products .wc-block-grid__product:hover { border-color: var(--color-line-strong); box-shadow: var(--shadow-md); }
body.woocommerce-page .site-main ul.products li.product a.woocommerce-loop-product__link,
body.woocommerce-page .site-main .wc-block-grid__product .wc-block-grid__product-link {
  display: flex; flex: 1 1 auto; flex-direction: column; color: var(--color-text); text-decoration: none;
}
body.woocommerce-page .site-main ul.products li.product a img,
body.woocommerce-page .site-main .wc-block-grid__product .wc-block-grid__product-image img {
  display: block; width: 100%; height: auto; aspect-ratio: var(--product-image-ratio); object-fit: cover; margin: 0;
  background-color: var(--color-mist); border-radius: 0; box-shadow: none;
}
body.woocommerce-page .site-main .wc-block-grid__product .wc-block-grid__product-image { margin: 0; }
body.woocommerce-page .site-main ul.products li.product.outofstock a img { opacity: .55; filter: grayscale(.5); }
body.woocommerce-page .site-main ul.products li.product .woocommerce-loop-product__title,
body.woocommerce-page .site-main .wc-block-grid__product .wc-block-grid__product-title {
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
  min-height: calc(2em * var(--lh-snug)); box-sizing: content-box; margin: 0; padding: var(--space-3) var(--space-3) 0;
  font-family: var(--font-body); font-size: var(--fs-sm); font-weight: 600; line-height: var(--lh-snug); letter-spacing: 0;
  color: var(--color-text); text-align: start;
}
body.woocommerce-page .site-main ul.products li.product a:hover .woocommerce-loop-product__title,
body.woocommerce-page .site-main .wc-block-grid__product-link:hover .wc-block-grid__product-title { color: var(--color-accent-strong); text-decoration: underline; }
/* Price bottom-left, round add button bottom-right */
body.woocommerce-page .site-main ul.products li.product .price,
body.woocommerce-page .site-main .wc-block-grid__product .wc-block-grid__product-price {
  display: flex; flex-wrap: wrap; align-items: center; align-content: center; gap: 0 var(--space-2);
  min-height: var(--tap); margin: auto 0 0; padding: var(--space-3) calc(var(--tap) + var(--space-3) + var(--space-2)) var(--space-3) var(--space-3);
  box-sizing: content-box; font-family: var(--font-heading); font-size: 1rem; font-weight: 800; line-height: var(--lh-snug); color: var(--color-text);
}
body.woocommerce-page .site-main ul.products li.product .price del,
body.woocommerce-page .site-main .wc-block-grid__product-price del { order: 2; font-family: var(--font-body); font-size: var(--fs-xs); font-weight: 500; color: var(--color-text-muted); opacity: 1; }
body.woocommerce-page .site-main ul.products li.product .price ins,
body.woocommerce-page .site-main .wc-block-grid__product-price ins { text-decoration: none; color: var(--color-accent-strong); font-weight: 800; }
@media (min-width: 768px) {
  body.woocommerce-page .site-main ul.products li.product .woocommerce-loop-product__title,
  body.woocommerce-page .site-main .wc-block-grid__product .wc-block-grid__product-title { padding: var(--space-4) var(--space-4) 0; }
  body.woocommerce-page .site-main ul.products li.product .price,
  body.woocommerce-page .site-main .wc-block-grid__product .wc-block-grid__product-price {
    padding: var(--space-3) calc(var(--tap) + var(--space-4) + var(--space-2)) var(--space-4) var(--space-4); font-size: 1.125rem;
  }
}
body.woocommerce-page .site-main .wc-block-grid__product .wc-block-grid__product-add-to-cart {
  position: absolute; right: var(--space-3); bottom: var(--space-3); margin: 0; padding: 0; width: auto;
}
body.woocommerce-page .site-main ul.products li.product a.button,
body.woocommerce-page .site-main .wc-block-grid__product .wc-block-grid__product-add-to-cart .wp-block-button__link {
  position: absolute; right: var(--space-3); bottom: var(--space-3);
  display: grid; place-items: center; width: var(--tap); height: var(--tap); min-height: 0; padding: 0; margin: 0;
  border: 1.5px solid var(--color-accent-strong); border-radius: 50%; background: transparent; color: var(--color-accent-strong);
  box-shadow: none; font-size: 0; line-height: 0; text-decoration: none;
  transition: background-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}
body.woocommerce-page .site-main .wc-block-grid__product .wc-block-grid__product-add-to-cart .wp-block-button__link { position: static; }
@media (min-width: 768px) {
  body.woocommerce-page .site-main ul.products li.product a.button,
  body.woocommerce-page .site-main .wc-block-grid__product .wc-block-grid__product-add-to-cart { right: var(--space-4); bottom: var(--space-4); }
}
body.woocommerce-page .site-main ul.products li.product a.button::before,
body.woocommerce-page .site-main .wc-block-grid__product .wc-block-grid__product-add-to-cart .wp-block-button__link::before {
  content: ""; display: block; width: var(--icon-md); height: var(--icon-md); background-color: currentColor;
  -webkit-mask: var(--uk-woo-ico-bag-plus) center / contain no-repeat; mask: var(--uk-woo-ico-bag-plus) center / contain no-repeat;
}
/* "Read more" / "Select options" buttons get an arrow instead of the bag */
body.woocommerce-page .site-main ul.products li.product a.button:not(.add_to_cart_button) { border-color: var(--color-charcoal); color: var(--color-charcoal); }
body.woocommerce-page .site-main ul.products li.product a.button:not(.add_to_cart_button)::before { -webkit-mask-image: var(--uk-woo-ico-arrow-right); mask-image: var(--uk-woo-ico-arrow-right); }
body.woocommerce-page .site-main ul.products li.product a.button:hover,
body.woocommerce-page .site-main .wc-block-grid__product .wc-block-grid__product-add-to-cart .wp-block-button__link:hover { background: var(--color-accent-strong); color: var(--color-white); }
body.woocommerce-page .site-main ul.products li.product a.button:not(.add_to_cart_button):hover { background: var(--color-charcoal); color: var(--color-white); }
body.woocommerce-page .site-main ul.products li.product a.button.loading,
body.woocommerce-page .site-main .wc-block-grid__product .wp-block-button__link.loading { opacity: .6; }
body.woocommerce-page .site-main ul.products li.product a.button:is(.loading, .added)::after,
body.woocommerce-page .site-main .wc-block-grid__product .wp-block-button__link:is(.loading, .added)::after { display: none; }
body.woocommerce-page .site-main ul.products li.product a.button.added,
body.woocommerce-page .site-main .wc-block-grid__product .wp-block-button__link.added { background: var(--color-green); border-color: var(--color-green); color: var(--color-white); }
body.woocommerce-page .site-main ul.products li.product a.added_to_cart,
body.woocommerce-page .site-main .wc-block-grid__product a.added_to_cart { display: none; }
body.woocommerce-page .site-main ul.products li.product .onsale { position: absolute; margin: 0; }

/* 4. Block forms: text inputs, selects, textareas, checkboxes, radios (match .input / .check) -------- */
body.woocommerce-page .site-main .wc-block-components-text-input input:is([type=text], [type=email], [type=tel], [type=number], [type=password], [type=url]),
body.woocommerce-page .site-main .wc-blocks-components-select .wc-blocks-components-select__select,
body.woocommerce-page .site-main .wc-block-components-textarea {
  height: var(--control-h); min-height: var(--control-h); padding: 0 var(--space-4);
  border: 1.5px solid var(--color-line-input); border-radius: var(--radius-md); background: var(--color-surface); color: var(--color-text);
  font-family: var(--font-body); font-size: var(--fs-body); line-height: 22px; box-shadow: none;
  transition: border-color var(--dur-fast) var(--ease);
}
body.woocommerce-page .site-main .wc-block-components-textarea { height: auto; min-height: 140px; padding: var(--space-3) var(--space-4); resize: vertical; }
body.woocommerce-page .site-main .wc-block-components-text-input input:is([type=text], [type=email], [type=tel], [type=number], [type=password], [type=url]):hover,
body.woocommerce-page .site-main .wc-blocks-components-select .wc-blocks-components-select__select:hover,
body.woocommerce-page .site-main .wc-block-components-textarea:hover { border-color: var(--color-ink); }
body.woocommerce-page .site-main .wc-block-components-text-input input:is([type=text], [type=email], [type=tel], [type=number], [type=password], [type=url]):focus,
body.woocommerce-page .site-main .wc-blocks-components-select .wc-blocks-components-select__select:focus,
body.woocommerce-page .site-main .wc-block-components-textarea:focus {
  border-color: var(--color-ink); border-width: 1.5px; box-shadow: none; outline: 3px solid var(--color-focus); outline-offset: 1px;
}
/* Floating labels sized for the 48px field */
body.woocommerce-page .site-main .wc-block-components-text-input label {
  top: calc(var(--control-h) / 2); left: calc(var(--space-4) + 1.5px); max-width: calc(100% - 2 * var(--space-4));
  color: var(--color-text-muted); font-family: var(--font-body); font-size: var(--fs-body); line-height: 22px;
}
body.woocommerce-page .site-main .wc-block-components-text-input:is(.is-active, :has(input:-webkit-autofill)) input:is([type=text], [type=email], [type=tel], [type=number], [type=password], [type=url]) {
  padding: 20px var(--space-4) 4px;
}
body.woocommerce-page .site-main .wc-block-components-text-input.is-active label,
body.woocommerce-page .site-main .wc-block-components-text-input input:-webkit-autofill + label { top: 4px; transform: scale(.8); }
body.woocommerce-page .site-main .wc-blocks-components-select .wc-blocks-components-select__container { border-radius: var(--radius-md); background: var(--color-surface); }
body.woocommerce-page .site-main .wc-blocks-components-select .wc-blocks-components-select__select { padding: 16px var(--space-9) 0 var(--space-4); }
body.woocommerce-page .site-main .wc-blocks-components-select .wc-blocks-components-select__label {
  left: calc(var(--space-4) + 1.5px); top: 6px; color: var(--color-text-muted); font-size: var(--fs-overline); line-height: 1.2;
}
body.woocommerce-page .site-main .wc-blocks-components-select .wc-blocks-components-select__expand { right: var(--space-4); fill: currentColor; }
/* Errors */
body.woocommerce-page .site-main .wc-block-components-text-input.has-error input:is([type], :hover, :focus),
body.woocommerce-page .site-main .has-error .wc-blocks-components-select .wc-blocks-components-select__select:is(select, :hover, :focus) { border-color: var(--color-danger); }
body.woocommerce-page .site-main .wc-block-components-text-input.has-error input:focus { box-shadow: none; }
body.woocommerce-page .site-main .wc-block-components-text-input.has-error label,
body.woocommerce-page .site-main .has-error .wc-blocks-components-select .wc-blocks-components-select__label { color: var(--color-danger); }
body.woocommerce-page .site-main .has-error .wc-blocks-components-select .wc-blocks-components-select__select { color: var(--color-text); }
body.woocommerce-page .site-main .wc-block-components-validation-error {
  display: flex; align-items: flex-start; gap: var(--space-1); padding-top: var(--space-1);
  color: var(--color-danger); font-size: var(--fs-xs); font-weight: 600; line-height: var(--lh-snug);
}
body.woocommerce-page .site-main .wc-block-components-validation-error > p { margin: 0; line-height: var(--lh-snug); }
body.woocommerce-page .site-main .wc-block-components-validation-error svg { fill: currentColor; }

/* Checkbox */
body.woocommerce-page .site-main .wc-block-components-checkbox { margin-top: 0; }
body.woocommerce-page .site-main .wc-block-components-checkbox label {
  display: flex; align-items: flex-start; gap: var(--space-3); min-height: var(--tap); padding-block: var(--space-2);
  color: var(--color-text); font-size: var(--fs-sm); line-height: var(--lh-snug); cursor: pointer;
}
body.woocommerce-page .site-main .wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox] {
  flex: none; width: 20px; min-width: 20px; height: 20px; margin: 0;
  border: 1.5px solid var(--color-line-input); border-radius: var(--radius-xs); background: var(--color-surface); box-shadow: none;
}
body.woocommerce-page .site-main .wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox]:hover { border-color: var(--color-ink); }
body.woocommerce-page .site-main .wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox]:checked {
  border-color: var(--color-accent-strong); background: var(--color-accent-strong);
}
body.woocommerce-page .site-main .wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox]:focus { box-shadow: none; outline: none; }
body.woocommerce-page .site-main .wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox]:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 2px; }
body.woocommerce-page .site-main .wc-block-components-checkbox .wc-block-components-checkbox__mark { fill: var(--color-white); margin-left: 2.5px; margin-top: 2.5px; }
body.woocommerce-page .site-main .wc-block-components-checkbox .wc-block-components-checkbox__label { padding-top: 1px; }
body.woocommerce-page .site-main .wc-block-components-checkbox.has-error .wc-block-components-checkbox__input[type=checkbox] { border-color: var(--color-danger); }
body.woocommerce-page .site-main .wc-block-components-checkbox.has-error label { color: var(--color-danger); }
body.woocommerce-page .site-main .wc-block-components-checkbox label a {
  display: inline-block; padding-block: 13px; margin-block: -13px; color: var(--color-link); font-weight: 600;
}

/* Radio options (shipping / payment methods) */
body.woocommerce-page .site-main .wc-block-components-radio-control--highlight-checked,
body.woocommerce-page .site-main .wc-block-components-radio-control-accordion-option { border-color: var(--color-line); }
body.woocommerce-page .site-main .wc-block-components-radio-control--highlight-checked {
  border: 1px solid var(--color-line); border-radius: var(--radius-md); background: var(--color-surface); overflow: hidden;
}
body.woocommerce-page .site-main .wc-block-components-radio-control--highlight-checked::after { display: none; }
body.woocommerce-page .site-main .wc-block-components-radio-control--highlight-checked :is(.wc-block-components-radio-control__option-checked, .wc-block-components-radio-control-accordion-option--checked-option-highlighted),
body.woocommerce-page .site-main .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control__option--checked-option-highlighted {
  box-shadow: inset 0 0 0 2px var(--color-accent-strong); border-radius: var(--radius-md);
}
body.woocommerce-page .site-main .wc-block-components-radio-control--highlight-checked label.wc-block-components-radio-control__option--checked-option-highlighted::after,
body.woocommerce-page .site-main .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted::after { display: none; }
body.woocommerce-page .site-main .wc-block-components-radio-control .wc-block-components-radio-control__option {
  display: flex; align-items: center; min-height: calc(var(--tap) + var(--space-4)); color: var(--color-text); font-size: var(--fs-body); font-weight: 600;
}
body.woocommerce-page .site-main .wc-block-components-radio-control .wc-block-components-radio-control__option-layout { flex: 1 1 auto; }
body.woocommerce-page .site-main .wc-block-components-radio-control .wc-block-components-radio-control__label { font-size: inherit; font-weight: inherit; }
body.woocommerce-page .site-main .wc-block-components-radio-control .wc-block-components-radio-control__input {
  width: 20px; height: 20px; min-height: 0; border: 1.5px solid var(--color-line-input); background: var(--color-surface); box-shadow: none;
}
body.woocommerce-page .site-main .wc-block-components-radio-control .wc-block-components-radio-control__input:checked { border: 1.5px solid var(--color-accent-strong); }
body.woocommerce-page .site-main .wc-block-components-radio-control .wc-block-components-radio-control__input:checked::before { background: var(--color-accent-strong); }
body.woocommerce-page .site-main .wc-block-components-radio-control .wc-block-components-radio-control__input:focus { box-shadow: none; outline: none; }
body.woocommerce-page .site-main .wc-block-components-radio-control .wc-block-components-radio-control__input:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 2px; }
body.woocommerce-page .site-main .wc-block-components-radio-control .wc-block-components-radio-control__secondary-label,
body.woocommerce-page .site-main .wc-block-components-radio-control .wc-block-components-radio-control__description { color: var(--color-text-muted); font-weight: 400; font-size: var(--fs-sm); }
body.woocommerce-page .site-main .wc-block-components-radio-control-accordion-content { color: var(--color-text-muted); font-size: var(--fs-sm); }

/* Block notices (errors, success, info) */
body.woocommerce-page .site-main .wc-block-components-notice-banner {
  align-items: flex-start; gap: var(--space-3); margin: 0 0 var(--space-4); padding: var(--space-4) var(--space-5);
  border: 1px solid var(--color-accent-strong); border-radius: var(--radius-md); background: var(--color-accent-tint); color: var(--color-text);
  font-size: var(--fs-sm); line-height: var(--lh-snug);
}
body.woocommerce-page .site-main .wc-block-components-notice-banner > svg { flex: none; width: var(--icon-md); height: var(--icon-md); padding: 3px; border-radius: 50%; background: var(--color-accent-strong); fill: var(--color-white); }
body.woocommerce-page .site-main .wc-block-components-notice-banner.is-error { border-color: var(--color-danger); background: var(--color-surface); }
body.woocommerce-page .site-main .wc-block-components-notice-banner.is-error > svg { background: var(--color-danger); }
body.woocommerce-page .site-main .wc-block-components-notice-banner.is-success { border-color: var(--color-green); background: var(--color-green-tint); }
body.woocommerce-page .site-main .wc-block-components-notice-banner.is-success > svg { background: var(--color-green); }
body.woocommerce-page .site-main .wc-block-components-notice-banner .wc-block-components-notice-banner__content { align-self: center; }
body.woocommerce-page .site-main .wc-block-components-notice-banner a { color: var(--color-link); font-weight: 600; }

/* 5. Cart block ---------------------------------------------------------------- */
body.woocommerce-page .site-main .wc-block-components-sidebar-layout { margin-bottom: 0; }
body.woocommerce-page .site-main .wc-block-components-sidebar-layout.is-large .wc-block-components-main { padding-right: var(--space-8); }
body.woocommerce-page .site-main .wc-block-components-sidebar-layout.is-large .wc-block-components-sidebar { padding-left: 0; }
@media (min-width: 1025px) {
  body.woocommerce-page .site-main .wc-block-components-sidebar-layout.is-large .wc-block-components-main { width: 64%; padding-right: var(--space-10); }
  body.woocommerce-page .site-main .wc-block-components-sidebar-layout.is-large .wc-block-components-sidebar { width: 36%; }
}
/* Line items as a card */
body.woocommerce-page .site-main .wc-block-cart .wc-block-cart__main {
  align-self: flex-start;
}
body.woocommerce-page .site-main table.wc-block-cart-items {
  width: 100%; margin: 0; border: 1px solid var(--color-line); border-radius: var(--radius-lg); border-collapse: separate; border-spacing: 0;
  background: var(--color-surface); overflow: hidden;
}
body.woocommerce-page .site-main table.wc-block-cart-items .wc-block-cart-items__header {
  color: var(--color-text-muted); font-size: var(--fs-overline); font-weight: 700; letter-spacing: var(--ls-overline); text-transform: uppercase;
}
body.woocommerce-page .site-main table.wc-block-cart-items .wc-block-cart-items__header th {
  padding: var(--space-4) var(--space-5) var(--space-3); border: 0; border-bottom: 1px solid var(--color-line); background: var(--color-sand); text-align: start;
}
body.woocommerce-page .site-main table.wc-block-cart-items .wc-block-cart-items__header .wc-block-cart-items__header-total { text-align: end; }
body.woocommerce-page .site-main table.wc-block-cart-items .wc-block-cart-items__row { border: 0; }
body.woocommerce-page .site-main table.wc-block-cart-items .wc-block-cart-items__row > td {
  padding: var(--space-5) var(--space-5); border: 0; border-top: 1px solid var(--color-line); background: transparent; vertical-align: top;
}
body.woocommerce-page .site-main table.wc-block-cart-items tbody .wc-block-cart-items__row:first-child > td { border-top: 0; }
body.woocommerce-page .site-main table.wc-block-cart-items .wc-block-cart-items__row > td.wc-block-cart-item__product { padding-inline: 0; }
/* Medium / small / phone layouts: WooCommerce turns each row into a grid; keep its structure, add the card padding */
body.woocommerce-page .site-main .wc-block-components-sidebar-layout:not(.is-large) table.wc-block-cart-items .wc-block-cart-items__row {
  display: grid; grid-template-columns: 72px minmax(0, 1fr) auto; column-gap: var(--space-3); padding: var(--space-4); border: 0;
}
body.woocommerce-page .site-main .wc-block-components-sidebar-layout:not(.is-large) table.wc-block-cart-items .wc-block-cart-items__row + .wc-block-cart-items__row { border-top: 1px solid var(--color-line); }
body.woocommerce-page .site-main .wc-block-components-sidebar-layout:not(.is-large) table.wc-block-cart-items .wc-block-cart-items__row > td { padding: 0; border: 0; }
body.woocommerce-page .site-main .wc-block-components-sidebar-layout:not(.is-large) table.wc-block-cart-items .wc-block-cart-items__row > td.wc-block-cart-item__image { grid-column: 1; grid-row: 1; }
body.woocommerce-page .site-main .wc-block-components-sidebar-layout:not(.is-large) table.wc-block-cart-items .wc-block-cart-items__row > td.wc-block-cart-item__product { grid-column: 2; grid-row: 1; min-width: 0; }
body.woocommerce-page .site-main .wc-block-components-sidebar-layout:not(.is-large) table.wc-block-cart-items .wc-block-cart-items__row > td.wc-block-cart-item__total { grid-column: 3; grid-row: 1; }
body.woocommerce-page .site-main .wc-block-components-sidebar-layout:not(.is-large) .wc-block-cart__sidebar { margin-top: var(--space-5); }
body.woocommerce-page .site-main table.wc-block-cart-items .wc-block-cart-item__image a { display: block; }
body.woocommerce-page .site-main table.wc-block-cart-items .wc-block-cart-item__image img {
  display: block; width: 100%; aspect-ratio: var(--product-image-ratio); object-fit: cover; border-radius: var(--radius-sm); background-color: var(--color-mist);
}
body.woocommerce-page .site-main .wc-block-cart-item__wrap .wc-block-components-product-name,
body.woocommerce-page .site-main .wc-block-components-order-summary .wc-block-components-product-name {
  color: var(--color-text); font-family: var(--font-body); font-size: var(--fs-sm); font-weight: 600; line-height: var(--lh-snug); letter-spacing: 0; text-decoration: none;
}
body.woocommerce-page .site-main .wc-block-cart-item__wrap a.wc-block-components-product-name { display: inline-block; padding-block: 13px; margin-block: -13px; }
body.woocommerce-page .site-main .wc-block-cart-item__wrap a.wc-block-components-product-name:hover { color: var(--color-accent-strong); text-decoration: underline; }
body.woocommerce-page .site-main .wc-block-cart-item__wrap .wc-block-cart-item__prices { margin-top: var(--space-1); color: var(--color-text-muted); font-size: var(--fs-sm); }
body.woocommerce-page .site-main .wc-block-cart-item__wrap .wc-block-components-product-metadata { color: var(--color-text-muted); font-size: var(--fs-xs); }
body.woocommerce-page .site-main .wc-block-cart-item__total { font-family: var(--font-heading); font-size: 1rem; font-weight: 800; color: var(--color-text); }
body.woocommerce-page .site-main .wc-block-cart-item__total .wc-block-components-product-price { font-family: inherit; font-weight: inherit; }
body.woocommerce-page .site-main .wc-block-components-sale-badge {
  border: 0; border-radius: var(--radius-pill); background: var(--color-accent-strong); color: var(--color-white);
  font-size: var(--fs-overline); font-weight: 700; padding: 2px var(--space-2); text-transform: none;
}
/* Quantity stepper */
body.woocommerce-page .site-main .wc-block-cart-item__quantity { display: flex; align-items: center; gap: var(--space-2); margin-top: var(--space-3); }
body.woocommerce-page .site-main .wc-block-components-quantity-selector:where(:has(input:not([type=hidden]))),
body.woocommerce-page .site-main .wc-block-components-quantity-selector {
  width: auto; height: var(--control-h); margin: 0; border: 1.5px solid var(--color-line-input); border-radius: var(--radius-pill); background: var(--color-surface); overflow: hidden;
}
body.woocommerce-page .site-main .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button {
  width: var(--tap); min-width: var(--tap); height: 100%; padding: 0; margin: 0; border: 0; border-radius: 0;
  background: transparent; color: var(--color-text); opacity: 1; font-family: var(--font-body); font-size: 1.125rem; font-weight: 600; line-height: 1;
}
body.woocommerce-page .site-main .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:hover { background: var(--color-sand); color: var(--color-accent-strong); }
body.woocommerce-page .site-main .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:disabled { background: transparent; color: var(--color-line-strong); opacity: 1; }
body.woocommerce-page .site-main .wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input {
  width: var(--tap); min-width: var(--tap); height: 100%; min-height: 0; padding: 0; margin: 0; border: 0; border-radius: 0; background: transparent;
  color: var(--color-text); font-family: var(--font-body); font-size: var(--fs-body); font-weight: 600;
}
body.woocommerce-page .site-main .wc-block-components-quantity-selector :is(input, button):focus { box-shadow: none; outline: none; }
body.woocommerce-page .site-main .wc-block-components-quantity-selector :is(input, button):focus-visible { outline: 3px solid var(--color-focus); outline-offset: -3px; }
body.woocommerce-page .site-main table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__remove-link {
  display: grid; place-items: center; width: var(--tap); height: var(--tap); min-height: 0; padding: 0; margin: 0;
  border: 0; border-radius: 50%; background: transparent; color: var(--color-text-muted); box-shadow: none; opacity: 1; font-size: 0; text-decoration: none;
}
body.woocommerce-page .site-main table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__remove-link:hover { background: var(--color-sand); color: var(--color-danger); }
body.woocommerce-page .site-main table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__remove-link svg { width: 20px; height: 20px; fill: currentColor; }

/* Totals card */
body.woocommerce-page .site-main .wc-block-components-sidebar-layout.wc-block-cart .wc-block-cart__sidebar {
  align-self: flex-start; padding: var(--space-5) var(--space-5) var(--space-6);
  border: 1px solid var(--color-line); border-radius: var(--radius-lg); background: var(--color-surface);
}
body.woocommerce-page .site-main .wc-block-components-sidebar-layout.wc-block-cart .wc-block-cart__sidebar.is-sticky { top: var(--space-6); }
body.woocommerce-page .site-main .wc-block-cart .wc-block-cart__totals-title {
  display: block; margin: 0; padding: 0 0 var(--space-3); text-align: start;
  font-family: var(--font-heading); font-size: var(--fs-h4); font-weight: 700; line-height: var(--lh-heading); letter-spacing: var(--ls-heading);
  text-transform: none; color: var(--color-text);
}
body.woocommerce-page .site-main .wc-block-components-totals-wrapper { border-top: 1px solid var(--color-line); padding: var(--space-3) 0; }
body.woocommerce-page .site-main .wc-block-components-totals-wrapper:empty { display: none; }
body.woocommerce-page .site-main .wc-block-components-totals-item { color: var(--color-text); font-size: var(--fs-sm); }
body.woocommerce-page .site-main .wc-block-components-totals-item__description { color: var(--color-text-muted); font-size: var(--fs-xs); }
body.woocommerce-page .site-main .wc-block-components-totals-footer-item .wc-block-components-totals-item__label { font-size: var(--fs-body); font-weight: 600; }
body.woocommerce-page .site-main .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
  font-family: var(--font-heading); font-size: var(--fs-h4); font-weight: 800; line-height: var(--lh-heading);
}
body.woocommerce-page .site-main .wc-block-components-totals-discount .wc-block-components-totals-item__value { color: var(--color-green); }
/* Coupon panel */
body.woocommerce-page .site-main .wc-block-components-panel__button {
  display: flex; align-items: center; min-height: var(--tap); margin: 0; padding-block: 0;
  color: var(--color-text); font-size: var(--fs-sm); font-weight: 600; line-height: var(--lh-snug); cursor: pointer;
}
body.woocommerce-page .site-main .wc-block-components-panel__button:hover { color: var(--color-accent-strong); }
body.woocommerce-page .site-main .wc-block-components-panel__button > svg { fill: currentColor; top: 50%; transform: translateY(-50%); }
body.woocommerce-page .site-main .wc-block-components-panel__button[aria-expanded=true] > svg { transform: translateY(-50%) rotate(180deg); }
body.woocommerce-page .site-main .wc-block-components-totals-coupon__form { display: flex; align-items: flex-start; gap: var(--space-2); }
body.woocommerce-page .site-main .wc-block-components-totals-coupon__form .wc-block-components-text-input { flex: 1 1 auto; min-width: 0; margin: 0; }
body.woocommerce-page .site-main .wc-block-components-totals-coupon__button.wc-block-components-button { min-height: var(--control-h); padding-inline: var(--space-5); }
body.woocommerce-page .site-main .wc-block-components-totals-coupon__button .wc-block-components-button__text { opacity: 1; }
body.woocommerce-page .site-main .wc-block-components-totals-coupon__button:disabled { border-color: var(--color-line-strong); color: var(--color-text-muted); cursor: not-allowed; }
body.woocommerce-page .site-main .wc-block-components-totals-coupon__button:disabled:hover { background: transparent; color: var(--color-text-muted); }
body.woocommerce-page .site-main .wc-block-components-totals-discount__coupon-list-item,
body.woocommerce-page .site-main .wc-block-components-chip {
  border: 1px solid var(--color-line-strong); border-radius: var(--radius-pill); background: var(--color-sand); color: var(--color-text); font-size: var(--fs-xs); font-weight: 600;
}
/* Proceed to checkout */
body.woocommerce-page .site-main .wc-block-cart__submit { margin: var(--space-3) 0 0; }
body.woocommerce-page .site-main .wc-block-cart__submit-container { padding: 0; }
body.woocommerce-page .site-main .wc-block-cart .wc-block-cart__submit-button { width: 100%; min-height: 52px; font-size: 1rem; }
body.woocommerce-page .site-main .wc-block-cart .wc-block-cart__submit-button .wc-block-components-button__text { text-decoration: none; }
body.woocommerce-page .site-main .wc-block-cart__payment-options:empty { display: none; }
/* Phones: the sticky bottom "Proceed" bar WooCommerce adds under 782px */
body.woocommerce-page .site-main .wc-block-cart__submit-container--sticky {
  padding: var(--space-3) var(--uk-woo-gutter); background: var(--color-surface); border-top: 1px solid var(--color-line); box-shadow: var(--shadow-md);
}
body.woocommerce-page .site-main .wc-block-cart__submit-container--sticky::before { display: none; }

/* Empty cart */
body.woocommerce-page .site-main .wp-block-woocommerce-empty-cart-block > .wp-block-heading {
  margin: var(--space-6) 0 var(--space-5); font-family: var(--font-heading); font-size: var(--fs-h3); font-weight: 800;
  line-height: var(--lh-heading); letter-spacing: var(--ls-heading); color: var(--color-text);
}
body.woocommerce-page .site-main .wp-block-woocommerce-empty-cart-block > .wp-block-heading:not(.wc-block-cart__empty-cart__title) {
  margin-top: var(--space-9); font-size: var(--fs-h2); text-align: start;
}
body.woocommerce-page .site-main .wc-block-cart__empty-cart__title.with-empty-cart-icon::before {
  width: 72px; height: 72px; margin: 0 auto var(--space-5); background-color: var(--color-line-strong);
  -webkit-mask-size: 72px; mask-size: 72px;
}
body.woocommerce-page .site-main .wp-block-woocommerce-empty-cart-block .wp-block-separator.is-style-dots {
  height: auto; margin: 0 auto; border: 0; background: none; color: var(--color-line-strong); text-align: center;
}
body.woocommerce-page .site-main .wp-block-woocommerce-empty-cart-block .wp-block-separator.is-style-dots::before { color: var(--color-line-strong); font-size: 1.5rem; }
body.woocommerce-page .site-main .wc-block-grid { margin: 0; }

/* 6. Checkout block ------------------------------------------------------------- */
body.woocommerce-page .site-main .wc-block-checkout .wc-block-components-checkout-step { margin: 0 0 var(--space-7); }
body.woocommerce-page .site-main .wc-block-checkout .wc-block-components-checkout-step__heading { margin: 0 0 var(--space-4); }
body.woocommerce-page .site-main .wc-block-checkout .wc-block-components-checkout-step__title,
body.woocommerce-page .site-main .wc-block-components-title.wc-block-components-title {
  margin: 0; font-family: var(--font-heading); font-size: var(--fs-h4); font-weight: 700; line-height: var(--lh-heading);
  letter-spacing: var(--ls-heading); color: var(--color-text);
}
body.woocommerce-page .site-main .wc-block-checkout .wc-block-components-checkout-step__description { color: var(--color-text-muted); font-size: var(--fs-sm); }
body.woocommerce-page .site-main .wc-block-checkout .wc-block-components-checkout-step__container::after { display: none; }
body.woocommerce-page .site-main .wc-block-checkout .wc-block-components-checkout-step__container,
body.woocommerce-page .site-main .wc-block-checkout .wc-block-components-checkout-step__heading-container { padding-left: 0; margin-left: 0; }
body.woocommerce-page .site-main .wc-block-checkout .wc-block-components-address-form { gap: 0 var(--space-3); }
body.woocommerce-page .site-main .wc-block-checkout .wc-block-components-address-form > * { margin-top: var(--space-3); }
body.woocommerce-page .site-main .wc-block-checkout .wc-block-components-address-form > :first-child { margin-top: 0; }
body.woocommerce-page .site-main .wc-block-checkout .wc-block-components-address-form .wc-blocks-components-select { margin-top: 0; }
body.woocommerce-page .site-main .wc-block-checkout__guest-checkout-notice { margin: var(--space-2) 0 0; color: var(--color-text-muted); font-size: var(--fs-xs); }
body.woocommerce-page .site-main .wc-block-checkout .wc-block-components-address-form__address_2-toggle {
  display: inline-flex; align-items: center; min-height: var(--tap); margin-top: var(--space-1);
  color: var(--color-link); font-size: var(--fs-sm); font-weight: 600; text-decoration: none; cursor: pointer;
}
body.woocommerce-page .site-main .wc-block-checkout .wc-block-components-address-form__address_2-toggle:hover { color: var(--color-link-hover); text-decoration: underline; }
body.woocommerce-page .site-main .wc-block-checkout .wc-block-components-address-card {
  border: 1px solid var(--color-line); border-radius: var(--radius-md); background: var(--color-surface); padding: var(--space-4);
}
body.woocommerce-page .site-main .wc-block-checkout .wc-block-components-address-card__edit {
  display: inline-flex; align-items: center; min-height: var(--tap); color: var(--color-link); font-weight: 600; text-decoration: none;
}
body.woocommerce-page .site-main .wc-block-checkout .wc-block-checkout__order-notes { margin-bottom: 0; }
body.woocommerce-page .site-main .wc-block-checkout .wc-block-checkout__add-note { margin: 0; }
body.woocommerce-page .site-main .wc-block-checkout .wc-block-checkout__terms { margin: var(--space-2) 0 var(--space-5); padding-top: var(--space-4); }
body.woocommerce-page .site-main .wc-block-checkout .wc-block-checkout__terms--with-separator { border-top: 1px solid var(--color-line); }
body.woocommerce-page .site-main .wc-block-checkout .wc-block-checkout__actions { padding-top: 0; }
body.woocommerce-page .site-main .wc-block-checkout .wc-block-components-checkout-place-order-button { min-height: 56px; font-size: 1rem; }
body.woocommerce-page .site-main .wc-block-checkout .wc-block-components-checkout-return-to-cart-button {
  display: inline-flex; align-items: center; min-height: var(--tap); color: var(--color-link); font-weight: 600; text-decoration: none;
}
body.woocommerce-page .site-main .wc-block-checkout .wc-block-components-checkout-return-to-cart-button svg { fill: currentColor; }
body.woocommerce-page .site-main .wc-block-checkout .wc-block-components-checkout-policies { color: var(--color-text-muted); font-size: var(--fs-xs); }
/* Order summary card */
body.woocommerce-page .site-main .wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-block,
body.woocommerce-page .site-main .wc-block-checkout__main .checkout-order-summary-block-fill {
  border: 1px solid var(--color-line); border-radius: var(--radius-lg); background: var(--color-surface); overflow: hidden;
}
/* Phones and tablets repeat the summary above the Place Order button: a heading, then the card */
body.woocommerce-page .site-main .wc-block-checkout__main .checkout-order-summary-block-fill-wrapper { border: 0; border-radius: 0; background: transparent; }
body.woocommerce-page .site-main .wc-block-checkout__main .checkout-order-summary-block-fill-wrapper > .wc-block-components-title { margin: 0 0 var(--space-4); }
body.woocommerce-page .site-main .wc-block-components-order-summary { padding: 0; }
body.woocommerce-page .site-main .wc-block-checkout :is(.wp-block-woocommerce-checkout-order-summary-block, .checkout-order-summary-block-fill) :is(.wc-block-components-totals-item, .wc-block-components-panel, .wc-block-components-totals-coupon) {
  padding-inline: 0;
}
body.woocommerce-page .site-main .wc-block-checkout__sidebar.is-sticky { top: var(--space-6); }
body.woocommerce-page .site-main .wc-block-components-checkout-order-summary__title {
  min-height: var(--tap); margin: 0; padding: var(--space-4) var(--space-5); align-items: center;
}
body.woocommerce-page .site-main .wc-block-components-checkout-order-summary__title-text {
  margin: 0; font-family: var(--font-heading); font-size: var(--fs-h4); font-weight: 700; line-height: var(--lh-heading); letter-spacing: var(--ls-heading); color: var(--color-text);
}
body.woocommerce-page .site-main .wc-block-components-checkout-order-summary__title-price { font-family: var(--font-heading); font-weight: 800; color: var(--color-text); }
body.woocommerce-page .site-main .wc-block-components-checkout-order-summary__title-icon svg { fill: currentColor; }
body.woocommerce-page .site-main .wc-block-checkout .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-totals-wrapper { padding-inline: var(--space-5); }
body.woocommerce-page .site-main .wc-block-components-order-summary .wc-block-components-order-summary-item { padding: var(--space-3) 0; font-size: var(--fs-sm); }
body.woocommerce-page .site-main .wc-block-components-order-summary .wc-block-components-order-summary-item__image img {
  aspect-ratio: var(--product-image-ratio); object-fit: cover; border-radius: var(--radius-sm); background-color: var(--color-mist);
}
body.woocommerce-page .site-main .wc-block-components-order-summary .wc-block-components-order-summary-item__quantity {
  min-width: 22px; height: 22px; border: 2px solid var(--color-surface); border-radius: var(--radius-pill);
  background: var(--color-charcoal); color: var(--color-white); box-shadow: none; font-family: var(--font-body); font-size: .6875rem; font-weight: 700; line-height: 18px;
}
body.woocommerce-page .site-main .wc-block-components-order-summary .wc-block-components-order-summary-item__individual-prices { color: var(--color-text-muted); font-size: var(--fs-xs); }
body.woocommerce-page .site-main .wc-block-components-order-summary .wc-block-components-order-summary-item__total-price { font-family: var(--font-heading); font-weight: 800; color: var(--color-text); }
body.woocommerce-page .site-main .wc-block-checkout .wc-block-components-totals-footer-item { padding-block: var(--space-2); }
body.woocommerce-page .site-main .wc-block-components-order-summary .wc-block-components-order-summary-item__description { padding-left: var(--space-4); overflow-wrap: normal; word-break: normal; }
/* Tablets: WooCommerce keeps two columns but gives the summary only 35%; widen it so item names do not break mid-word */
@media (min-width: 768px) and (max-width: 1024px) {
  body.woocommerce-page .site-main .wc-block-components-sidebar-layout.wc-block-checkout.is-large .wc-block-components-main { width: 56%; padding-right: var(--space-6); }
  body.woocommerce-page .site-main .wc-block-components-sidebar-layout.wc-block-checkout.is-large .wc-block-components-sidebar { width: 44%; }
}
