/* ==========================================================================
   LAHIZA — BENTO DESIGN SYSTEM · 06. SHOP (WooCommerce)
   WooCommerce's own styles are neutralised by matching their specificity.
   The few !important rules left answer WooCommerce's own !important
   (a.remove), its inline gallery styles, or select2 (loads after us).
   ========================================================================== */

/* ==========================================================================
   Catalogue
   ========================================================================== */
.lz-shop-hero { display: flex; flex-direction: column; justify-content: flex-end; gap: var(--s-3); min-height: 16rem; }
.lz-shop-hero h1 { font-size: var(--fs-4xl); }
.lz-shop-hero .lz-art { position: absolute; z-index: -1; inset-block: -1.5rem; inset-inline-end: 2%; width: min(24rem, 40%); }
.lz-shop-hero:not([class*="lz-tone-"]) .lz-art { opacity: .16; filter: grayscale(1) brightness(.45); }
.lz-shop-hero .lz-shop-lede, .lz-shop-hero .term-description { max-width: 52ch; color: var(--tone-fg-2, var(--text-muted)); font-size: var(--fs-lg); }
.lz-shop-hero .term-description p { margin: 0; }

.lz-toolbar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: var(--s-3); margin-block-end: var(--s-6); }
.lz-toolbar .woocommerce-ordering { margin: 0; }
.lz-toolbar .woocommerce-ordering select {
  width: auto; min-height: var(--ctl); border: 0; border-radius: var(--r-pill);
  background-color: var(--card-bg, var(--canvas)); padding-inline: var(--s-5) var(--s-9); font-weight: var(--fw-semibold);
}
.lz-toolbar .woocommerce-result-count { margin: 0; color: var(--text-muted); font-size: var(--fs-sm); }

.woocommerce ul.products, ul.products {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--gap);
  margin: 0;
  padding: 0;
}
.woocommerce ul.products::before, .woocommerce ul.products::after,
ul.products::before, ul.products::after { display: none; }
/* WooCommerce sizes cards with `.woocommerce ul.products.columns-N li.product { width: N% }`
   (0,3,2). Inside a CSS grid that shrinks each card to a fraction of its cell, so the
   reset matches that specificity via [class*="columns-"]. */
.woocommerce ul.products li.product, ul.products li.product,
.woocommerce ul.products[class*="columns-"] li.product,
.woocommerce-page ul.products[class*="columns-"] li.product { width: auto; margin: 0; padding: 0; float: none; clear: none; }
.woocommerce ul.products.columns-3, ul.products.columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.woocommerce ul.products li.product a img { margin: 0; box-shadow: none; }

/* ==========================================================================
   Notices
   ========================================================================== */
.woocommerce-info, .woocommerce-message, .woocommerce-error, .woocommerce-noreviews, p.no-comments {
  display: flex; align-items: center; flex-wrap: wrap; gap: var(--s-3);
  margin: 0 0 var(--gap); padding: var(--s-4) var(--s-5);
  background: var(--surface); border: 0; border-radius: 1.25rem;
  color: var(--text); font-size: var(--fs-md); list-style: none;
}
.woocommerce-info::before, .woocommerce-message::before, .woocommerce-error::before { display: none; }
.woocommerce-message { background: var(--success-soft); color: var(--forest-800); }
.woocommerce-error { background: var(--danger-soft); color: var(--red-600); }
.woocommerce-message .button, .woocommerce-info .button { order: 2; margin-inline-start: auto; }
.woocommerce-notices-wrapper:empty { display: none; }

/* ==========================================================================
   Single product — bento grid
   ========================================================================== */
.woocommerce div.product.lz-product, div.product.lz-product {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--gap);
}
/* Gallery + info + fact tiles. This box is the sticky gallery's containing
   block, so the gallery stops at its end and never slides under the origin
   or related-products sections that follow. */
.lz-pdp-top {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-template-rows: auto 1fr;
  align-items: start;
  gap: var(--gap);
}
.lz-pdp-top > .onsale { display: none; }

.woocommerce div.product div.images.woocommerce-product-gallery,
div.product .woocommerce-product-gallery {
  grid-column: span 4;   /* image: one third */
  grid-row: 1 / span 2;
  position: sticky;
  inset-block-start: calc(var(--gap) * 2 + var(--header-h));
  width: auto;
  margin: 0;
  float: none;
  padding: var(--s-2);
  background: var(--surface);
  border-radius: var(--r-tile);
  opacity: 1 !important;
}
div.product .woocommerce-product-gallery__wrapper { margin: 0; }
div.product .woocommerce-product-gallery__image { border-radius: var(--r-inner); overflow: hidden; background: var(--surface-img); }
div.product .woocommerce-product-gallery__image img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; object-position: 50% 56%; }
div.product .flex-control-thumbs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--s-2); margin: var(--s-2) 0 0; padding: 0; }
div.product .flex-control-thumbs li { width: auto; float: none; }
div.product .flex-control-thumbs img { border-radius: var(--r-sm); opacity: .55; cursor: pointer; transition: opacity var(--t-fast) var(--ease); }
div.product .flex-control-thumbs img.flex-active, div.product .flex-control-thumbs img:hover { opacity: 1; }
.woocommerce-product-gallery__trigger {
  position: absolute; inset-block-start: var(--s-5); inset-inline-end: var(--s-5); z-index: var(--z-raised);
  display: grid; place-items: center; width: var(--ctl); height: var(--ctl);
  background: rgba(255, 253, 248, .94); border-radius: 50%; box-shadow: var(--shadow-sm); font-size: 0;
  transition: transform var(--t-fast) var(--ease);
}
.woocommerce-product-gallery__trigger:hover { transform: scale(1.06); }
.woocommerce-product-gallery__trigger::before {
  content: ""; width: 1.25rem; height: 1.25rem;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231b2a24' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='6.2'/%3E%3Cpath d='M16 16l4.5 4.5M11 8.5v5M8.5 11h5'/%3E%3C/svg%3E") center / contain no-repeat;
}
.woocommerce-product-gallery__trigger img { display: none !important; }

.woocommerce div.product div.summary, div.product .summary {
  grid-column: span 8;   /* details: two thirds */
  width: auto;
  margin: 0;
  float: none;
  display: flex;
  flex-direction: column;
  gap: var(--s-4);
  padding: var(--tile-pad);
  background: var(--surface);
  border-radius: var(--r-tile);
  --well-bg: var(--canvas);
}
.summary > .lz-crumbs { margin-block-end: var(--s-1); }
.summary .lz-product-cat { align-self: flex-start; }
.woocommerce div.product .product_title, div.product .product_title { font-size: var(--fs-4xl); }
.woocommerce-product-rating { display: flex; align-items: center; gap: var(--s-3); font-size: var(--fs-sm); margin: 0; }
.star-rating, .woocommerce .star-rating { color: var(--clay-500); }
.woocommerce div.product p.price, .woocommerce div.product span.price, div.product .summary > .price {
  margin: 0; color: var(--primary); font-size: var(--fs-2xl); font-weight: var(--fw-heavy);
}
div.product .summary > .price del { color: var(--text-muted); font-size: var(--fs-md); font-weight: var(--fw-regular); }
div.product .summary > .price ins { text-decoration: none; }
div.product .summary > .price .woocommerce-Price-currencySymbol { font-size: .6em; font-weight: var(--fw-medium); color: var(--text-muted); }
.woocommerce-product-details__short-description { color: var(--text-muted); font-size: var(--fs-lg); line-height: var(--lh-relaxed); }
.woocommerce-product-details__short-description p { margin: 0; }
.woocommerce div.product form.cart, div.product form.cart { display: flex; flex-wrap: wrap; gap: var(--s-2); margin: var(--s-2) 0 0; }
.woocommerce div.product form.cart div.quantity { float: none; margin: 0; }
.woocommerce div.product form.cart .button, div.product form.cart .single_add_to_cart_button { flex: 1; min-height: var(--ctl-lg); margin: 0; float: none; font-size: var(--fs-base); }
div.product table.variations { width: 100%; }
div.product table.variations th, div.product table.variations td { padding-block: var(--s-2); text-align: start; }
.reset_variations { color: var(--accent-strong); font-size: var(--fs-sm); }
.woocommerce div.product .stock, .stock { display: inline-flex; align-items: center; gap: var(--s-2); margin: 0; color: var(--success); font-size: var(--fs-sm); font-weight: var(--fw-semibold); }
.woocommerce div.product .stock::before, .stock::before { content: ""; width: .5rem; height: .5rem; border-radius: 50%; background: currentColor; }
.woocommerce div.product .out-of-stock, .stock.out-of-stock { color: var(--danger); }
.lz-product-acc { margin-block-start: var(--s-2); }
.lz-product-acc .lz-acc-body > h2:first-child { display: none; }
.lz-product-acc .woocommerce-product-attributes th, .lz-product-acc .woocommerce-product-attributes td { padding-block: var(--s-3); border-block-end: 1px solid var(--line); font-weight: var(--fw-regular); text-align: start; }
.lz-product-acc .woocommerce-product-attributes tr:last-child > * { border: 0; }
.lz-product-acc .woocommerce-product-attributes th { width: 34%; color: var(--text-strong); font-weight: var(--fw-bold); }
.lz-product-acc .woocommerce-product-attributes td p { margin: 0; }
.lz-product-acc ul { list-style: disc; padding-inline-start: 1.3em; }
.lz-product-acc ul li::marker { color: var(--accent-strong); }
.lz-product-acc h3 { font-size: var(--fs-lg); margin-block-start: 1.2em; }
.lz-product-meta { display: flex; flex-wrap: wrap; gap: var(--s-2) var(--s-5); color: var(--text-muted); font-size: var(--fs-xs); }
.lz-product-meta a { color: var(--text-strong); font-weight: var(--fw-semibold); }
.lz-product-meta a:hover { color: var(--accent-strong); }

/* Trust facts sit under the info tile, in the same column */
.lz-pdp-top > .lz-facts { grid-column: span 8; align-self: start; }

/* The details column is wide: keep reading lines and the buy row at a comfortable measure. */
.summary .woocommerce-product-details__short-description,
.summary .lz-product-acc .lz-acc-body { max-width: 68ch; }
.woocommerce div.product .summary form.cart, div.product .summary form.cart { max-width: 34rem; }

/* Origin bento */
.lz-origin { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--gap); }
.lz-origin-main { grid-column: span 7; display: flex; flex-direction: column; justify-content: flex-end; gap: var(--s-3); min-height: 20rem; }
.lz-origin-main h2 { font-size: var(--fs-3xl); max-width: 16ch; }
.lz-origin-main p { max-width: 44ch; color: var(--tone-fg-2); }
.lz-origin-art { position: absolute; z-index: -1; inset-block: -2rem; inset-inline-end: -2rem; width: 46%; }
.lz-tone-ink .lz-origin-art { opacity: .5; }
.lz-origin-steps { grid-column: span 5; display: grid; gap: var(--gap); }
.lz-origin-steps li { display: flex; align-items: center; gap: var(--s-4); padding: var(--s-5); background: var(--surface); border-radius: 1.25rem; font-weight: var(--fw-semibold); }
.lz-origin-steps span { display: grid; place-items: center; flex: none; width: var(--ctl); height: var(--ctl); border-radius: 50%; background: var(--canvas); color: var(--accent-strong); font-family: var(--font-latin); font-weight: var(--fw-semibold); }

/* Related / upsells */
.related.products, .upsells.products { grid-column: 1 / -1; padding: var(--tile-pad); background: var(--surface); border-radius: var(--r-tile); --card-bg: var(--canvas); }
.related.products > h2, .upsells.products > h2 { margin-block-end: var(--s-6); font-size: var(--fs-3xl); }

/* Reviews inside the accordion */
#reviews .commentlist { padding: 0; }
#reviews .comment_container { display: flex; gap: var(--s-4); padding-block: var(--s-4); }
#reviews .comment_container img.avatar { width: var(--tap); height: var(--tap); border-radius: 50%; }
#review_form_wrapper { margin-block-start: var(--s-4); }
.comment-reply-title { font-size: var(--fs-lg); font-weight: var(--fw-bold); }
.comment-form-rating .stars a { color: var(--clay-600); }

/* ==========================================================================
   Quick view — bento modal
   ========================================================================== */
.lz-qv-layer { overflow-y: auto; }
.lz-qv {
  position: relative;
  width: min(62rem, calc(100% - var(--gap) * 2));
  margin: clamp(2rem, 8vh, 5rem) auto;
  padding: var(--s-2);
  background: var(--surface);
  border-radius: var(--r-tile);
  box-shadow: var(--shadow-xl);
  opacity: 0; transform: translateY(1.25rem) scale(.98);
  transition: opacity var(--t-slow) var(--ease), transform var(--t-slow) var(--ease);
  --well-bg: var(--canvas);
}
.lz-qv-layer.is-open .lz-qv { opacity: 1; transform: none; }
.lz-qv-close { position: absolute; inset-block-start: var(--s-4); inset-inline-end: var(--s-4); z-index: var(--z-raised); background: rgba(255, 253, 248, .94); color: var(--text-strong); box-shadow: var(--shadow-sm); }
.lz-qv-close:hover { background: var(--primary); color: var(--on-primary); }
.lz-qv-inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: var(--s-4); min-height: 22rem; }
.lz-qv-loading, .lz-qv-error { grid-column: 1 / -1; display: grid; place-items: center; min-height: 22rem; color: var(--text-muted); }
.lz-qv-main { border-radius: var(--r-inner); background: var(--surface-img); overflow: hidden; }
.lz-qv-main img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; object-position: 50% 56%; }
.lz-qv-thumbs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--s-2); margin-block-start: var(--s-2); }
.lz-qv-thumbs button { border-radius: var(--r-sm); overflow: hidden; background: var(--surface-img); opacity: .55; outline: 2px solid transparent; outline-offset: -2px; transition: opacity var(--t-fast) var(--ease); }
.lz-qv-thumbs button.is-active, .lz-qv-thumbs button:hover { opacity: 1; outline-color: var(--primary); }
.lz-qv-body { display: flex; flex-direction: column; gap: var(--s-3); padding: var(--s-6); }
.lz-qv-body h2 { font-size: var(--fs-3xl); }
.lz-qv-price { color: var(--primary); font-size: var(--fs-2xl); font-weight: var(--fw-heavy); }
.lz-qv-price del { color: var(--text-muted); font-size: var(--fs-md); font-weight: var(--fw-regular); }
.lz-qv-price ins { text-decoration: none; }
.lz-qv-text { color: var(--text-muted); line-height: var(--lh-relaxed); }
.lz-qv-text p { margin: 0; }
.lz-qv-stock { display: inline-flex; align-items: center; gap: var(--s-2); color: var(--success); font-size: var(--fs-sm); font-weight: var(--fw-semibold); }
.lz-qv-stock .lz-ico { width: 1.125rem; height: 1.125rem; }
.lz-qv-stock.is-out { color: var(--danger); }
.lz-qv-form { display: flex; gap: var(--s-2); }
.lz-qv-form .lz-btn { flex: 1; }
.lz-qv-facts { display: grid; gap: var(--s-2); color: var(--text-muted); font-size: var(--fs-sm); }
.lz-qv-facts li { display: flex; align-items: center; gap: var(--s-3); }
.lz-qv-facts .lz-ico { width: 1.125rem; height: 1.125rem; color: var(--accent-strong); }
.lz-qv-body .lz-link-arrow { align-self: flex-start; }

/* ==========================================================================
   Mini cart (floating drawer)
   Scoped under .lz-cart-layer: on WooCommerce pages the body carries
   .woocommerce, and its `.woocommerce ul.cart_list li a` (0,2,3) would
   otherwise outrank these rules.
   ========================================================================== */
.lz-cart-layer .widget_shopping_cart_content { display: flex; flex-direction: column; flex: 1; }
.lz-cart-layer .woocommerce-mini-cart { display: grid; gap: var(--s-2); margin: 0; padding: 0; }
.lz-cart-layer .woocommerce-mini-cart .woocommerce-mini-cart-item {
  position: relative;
  display: grid;
  grid-template-columns: 4.5rem minmax(0, 1fr);
  grid-template-rows: auto auto;
  column-gap: var(--s-4);
  row-gap: var(--s-1);
  align-content: center;
  min-height: 5.5rem;
  margin: 0;
  padding: var(--s-2);
  padding-inline-end: calc(var(--tap) + var(--s-4));
  background: var(--canvas);
  border-radius: 1.25rem;
  font-size: var(--fs-md);
}
.lz-cart-layer .woocommerce-mini-cart .woocommerce-mini-cart-item::before, .lz-cart-layer .woocommerce-mini-cart .woocommerce-mini-cart-item::after { display: none; }
.lz-cart-layer .woocommerce-mini-cart-item > a:not(.remove) {
  display: contents;
  color: var(--text-strong);
  font-weight: var(--fw-bold);
  line-height: var(--lh-snug);
}
.lz-cart-layer .woocommerce-mini-cart .woocommerce-mini-cart-item img {
  grid-row: 1 / span 2;
  grid-column: 1;
  align-self: center;
  width: 4.5rem;
  height: 4.5rem;
  margin: 0;
  float: none;
  object-fit: cover;
  object-position: 50% 56%;
  border-radius: var(--r-sm);
  background: var(--surface-img);
}
.lz-cart-layer .woocommerce-mini-cart-item .quantity {
  grid-column: 2;
  display: block;
  padding: 0;
  background: none;
  color: var(--text-muted);
  font-size: var(--fs-sm);
  font-weight: var(--fw-regular);
}
.lz-cart-layer .woocommerce-mini-cart-item a.remove {
  position: absolute;
  inset-block-start: 50%;
  inset-inline-end: var(--s-2);
  translate: 0 -50%;
  display: grid;
  place-items: center;
  width: var(--tap);
  height: var(--tap);
  border-radius: 50%;
  background: var(--surface);
  color: var(--text-muted) !important;
  font-size: 1.375rem;
  font-weight: var(--fw-regular);
  line-height: 1;
  transition: background-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease);
}
.lz-cart-layer .woocommerce-mini-cart-item a.remove:hover { background: var(--danger); color: var(--cream-0) !important; }
.lz-cart-layer .woocommerce-mini-cart__total {
  display: flex; justify-content: space-between; align-items: center;
  margin: auto 0 0; padding: var(--s-5) var(--s-2) var(--s-3); border: 0;
  color: var(--text-strong); font-size: var(--fs-lg); font-weight: var(--fw-heavy);
}
.lz-cart-layer .woocommerce-mini-cart__total strong { color: var(--text-muted); font-size: var(--fs-md); font-weight: var(--fw-semibold); }
.lz-cart-layer .woocommerce-mini-cart__buttons { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-2); margin: 0; }
/* Self-contained: these buttons sit outside any `.woocommerce` wrapper on non-shop pages. */
.lz-cart-layer .woocommerce-mini-cart__buttons a.button {
  display: inline-flex; align-items: center; justify-content: center;
  width: 100%; min-height: var(--ctl); margin: 0; padding: 0 var(--s-3);
  background: var(--canvas); color: var(--text-strong); border: 0; border-radius: var(--r-pill);
  font-size: var(--fs-md); font-weight: var(--fw-semibold); line-height: 1.2; white-space: nowrap;
  transition: background-color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);
}
.lz-cart-layer .woocommerce-mini-cart__buttons a.button:hover { background: var(--cream-300); color: var(--text-strong); }
.lz-cart-layer .woocommerce-mini-cart__buttons a.button.checkout { background: var(--primary); color: var(--on-primary); }
.lz-cart-layer .woocommerce-mini-cart__buttons a.button.checkout:hover { background: var(--primary-hover); color: var(--on-primary); }
.lz-cart-layer .woocommerce-mini-cart__buttons a.button:active { transform: scale(.97); }
.lz-cart-layer .woocommerce-mini-cart__empty-message { display: grid; justify-items: center; gap: var(--s-4); margin: auto; padding-block: var(--s-10); color: var(--text-muted); text-align: center; }
.lz-cart-layer .woocommerce-mini-cart__empty-message > .lz-ico { width: 3rem; height: 3rem; color: var(--sage-700); stroke-width: 1.2; }
.lz-cart-layer .woocommerce-mini-cart__empty-message p { margin: 0; }

/* ==========================================================================
   Cart · checkout · account — every block is a tile
   ========================================================================== */
.lz-wc-page .woocommerce { display: grid; grid-template-columns: minmax(0, 1fr) 24rem; align-items: start; gap: var(--gap); }
.lz-wc-page .woocommerce > .woocommerce-notices-wrapper,
.lz-wc-page .woocommerce > .woocommerce-info,
.lz-wc-page .woocommerce > .woocommerce-message,
.lz-wc-page .woocommerce > .woocommerce-error,
.lz-wc-page .woocommerce > .wc-empty-cart-message,
.lz-wc-page .woocommerce > .return-to-shop { grid-column: 1 / -1; }
.lz-wc-page .woocommerce > * { min-width: 0; }
.woocommerce-cart-form, .cart-collaterals .cart_totals, #customer_details, #order_review,
.woocommerce-MyAccount-content, .woocommerce form.login, .woocommerce form.register, .cart-empty {
  padding: var(--tile-pad);
  background: var(--surface);
  border-radius: var(--r-tile);
  --well-bg: var(--canvas);
}
.cart-empty.woocommerce-info { justify-content: center; min-height: 12rem; font-size: var(--fs-lg); }
.return-to-shop { display: flex; justify-content: center; }

.woocommerce table.shop_table, table.shop_table { margin: 0; border: 0; border-collapse: separate; border-spacing: 0 var(--s-2); background: transparent; }
table.shop_table th, table.shop_table td { padding: var(--s-3) var(--s-4); border: 0; text-align: start; vertical-align: middle; }
table.shop_table thead th { color: var(--text-muted); font-size: var(--fs-xs); font-weight: var(--fw-semibold); padding-block: 0; }
table.shop_table tbody td { background: var(--canvas); }
table.shop_table tbody td:first-child { border-start-start-radius: var(--r-inner); border-end-start-radius: var(--r-inner); }
table.shop_table tbody td:last-child { border-start-end-radius: var(--r-inner); border-end-end-radius: var(--r-inner); }
table.shop_table .product-thumbnail img { width: 4rem; height: 4rem; object-fit: cover; object-position: 50% 56%; border-radius: var(--r-sm); }
table.shop_table .product-name a { color: var(--text-strong); font-weight: var(--fw-bold); }
table.shop_table .product-remove a {
  display: grid; place-items: center; width: var(--tap); height: var(--tap);
  border-radius: 50%; background: var(--surface); color: var(--text-muted) !important; font-size: 1.375rem;
}
table.shop_table .product-remove a:hover { background: var(--danger) !important; color: var(--cream-0) !important; }
table.shop_table td.actions { background: transparent; padding-inline: 0; }
table.shop_table .coupon { display: inline-flex; gap: var(--s-2); }
table.shop_table .coupon label { display: none; }
table.shop_table .coupon .input-text { width: 13rem; border-radius: var(--r-pill); }
.woocommerce table.shop_table button[name="update_cart"] { --btn-bg: var(--canvas); --btn-fg: var(--text-strong); --btn-bd: transparent; --btn-bg-hover: var(--cream-300); float: left; }

.cart-collaterals { position: sticky; inset-block-start: calc(var(--gap) * 2 + var(--header-h)); width: auto; }
.woocommerce .cart-collaterals .cart_totals { width: auto; float: none; }
.cart_totals h2 { font-size: var(--fs-2xl); margin-block-end: var(--s-4); }
.cart_totals table.shop_table { border-spacing: 0; }
.cart_totals table.shop_table th, .cart_totals table.shop_table td { background: transparent; padding-inline: 0; border-block-end: 1px solid var(--line); border-radius: 0 !important; }
.cart_totals .order-total td, .cart_totals .order-total th { border: 0; font-size: var(--fs-lg); color: var(--text-strong); }
.wc-proceed-to-checkout { padding: 0; margin-block-start: var(--s-5); }
.wc-proceed-to-checkout .checkout-button { width: 100%; min-height: var(--ctl-lg); font-size: var(--fs-base); }
.woocommerce-shipping-methods { padding: 0; }

.lz-wc-page form.checkout { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr) 26rem; grid-template-rows: auto 1fr; align-items: start; gap: var(--gap); }
form.checkout > .woocommerce-NoticeGroup { grid-column: 1 / -1; }
#customer_details { grid-row: span 2; }
#customer_details .col-1, #customer_details .col-2 { width: 100%; float: none; }

/* WooCommerce ships clearfix ::before/::after on .woocommerce and .col2-set.
   Pseudo-elements are grid items, so they silently occupy cells and push real
   content into the wrong track and onto an extra row. Remove them where we grid. */
.lz-wc-page .woocommerce::before, .lz-wc-page .woocommerce::after,
.woocommerce .col2-set::before, .woocommerce .col2-set::after,
.woocommerce-page .col2-set::before, .woocommerce-page .col2-set::after,
.u-columns.col2-set::before, .u-columns.col2-set::after,
.woocommerce-cart-form::before, .woocommerce-cart-form::after,
form.checkout::before, form.checkout::after { content: none; }

/* WooCommerce's layout sheet (woocommerce-layout-rtl.css) floats these blocks and
   gives them percentage widths at 0,2,0–0,4,0. They are grid items here, so the
   widths fight the tracks. Match that specificity and hand layout back to the grid. */
.woocommerce .col2-set .col-1, .woocommerce .col2-set .col-2,
.woocommerce-page .col2-set .col-1, .woocommerce-page .col2-set .col-2,
.rtl .woocommerce .col2-set .col-1, .rtl .woocommerce .col2-set .col-2,
.rtl .woocommerce-page .col2-set .col-1, .rtl .woocommerce-page .col2-set .col-2,
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content {
  width: auto;
  float: none;
}
#customer_details .col-2 { margin-block-start: var(--s-5); }
#order_review_heading { padding-inline: var(--s-3); font-size: var(--fs-2xl); font-weight: var(--fw-heavy); }
#order_review { position: sticky; inset-block-start: calc(var(--gap) * 2 + var(--header-h)); }
#order_review table.shop_table { border-spacing: 0; }
#order_review table.shop_table th, #order_review table.shop_table td { background: transparent; padding-inline: 0; border-block-end: 1px solid var(--line); border-radius: 0 !important; }
.woocommerce-billing-fields h3, .woocommerce-shipping-fields h3, .woocommerce-additional-fields h3 { margin-block-end: var(--s-5); font-size: var(--fs-2xl); font-weight: var(--fw-heavy); }
.woocommerce form .form-row { margin: 0 0 var(--s-4); padding: 0; }
.woocommerce form .form-row label { display: block; margin-block-end: var(--s-2); }
.woocommerce form .form-row .required { color: var(--accent-strong); text-decoration: none; }
.woocommerce form .form-row .input-text, .woocommerce form .form-row select, .woocommerce form .form-row textarea {
  min-height: var(--ctl); padding: var(--s-3) var(--s-4);
  background: var(--canvas); border: 1.5px solid transparent; border-radius: var(--r-sm); line-height: var(--lh-snug); box-shadow: none;
}
.woocommerce form .form-row textarea { min-height: 7.5rem; }
.woocommerce form .form-row .input-text:focus, .woocommerce form .form-row select:focus { border-color: var(--primary); background: var(--surface); box-shadow: 0 0 0 4px var(--primary-soft); }
.form-row-first, .form-row-last { display: inline-block; width: calc(50% - var(--s-2)); vertical-align: top; }
.form-row-first { margin-inline-end: var(--s-3); }
.woocommerce-checkout #payment { background: transparent; border-radius: 0; }
.woocommerce-checkout #payment ul.payment_methods { padding: 0; border: 0; display: grid; gap: var(--s-2); }
.wc_payment_method { padding: var(--s-4); background: var(--canvas); border-radius: var(--r-inner); }
.woocommerce-checkout #payment div.form-row { padding: 0; }
.woocommerce-checkout #payment div.payment_box { margin-block-start: var(--s-3); background: var(--surface); border-radius: var(--r-sm); color: var(--text-muted); font-size: var(--fs-sm); }
.woocommerce-checkout #payment div.payment_box::before { display: none; }
#place_order { width: 100%; min-height: var(--ctl-lg); margin-block-start: var(--s-4); font-size: var(--fs-base); }
.woocommerce-privacy-policy-text { color: var(--text-muted); font-size: var(--fs-xs); }

.select2-container .select2-selection--single { height: var(--ctl) !important; background: var(--canvas) !important; border: 1.5px solid transparent !important; border-radius: var(--r-sm) !important; }
.select2-container .select2-selection--single .select2-selection__rendered { line-height: calc(var(--ctl) - 3px) !important; padding-inline: var(--s-4) !important; }
.select2-container .select2-selection--single .select2-selection__arrow { height: calc(var(--ctl) - 3px) !important; }

.woocommerce-account .lz-wc-page .woocommerce { grid-template-columns: 16rem minmax(0, 1fr); }
.woocommerce-account:not(.logged-in) .lz-wc-page .woocommerce { grid-template-columns: 1fr; max-width: 64rem; }
.woocommerce-MyAccount-navigation, .woocommerce-MyAccount-content { width: auto; float: none; min-width: 0; }
.woocommerce-MyAccount-navigation ul { display: grid; gap: var(--s-1); padding: var(--s-2); background: var(--surface); border-radius: var(--r-tile); }
.woocommerce-MyAccount-navigation a { display: flex; align-items: center; min-height: var(--ctl); padding-inline: var(--s-5); border-radius: var(--r-pill); font-weight: var(--fw-semibold); transition: background-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease); }
.woocommerce-MyAccount-navigation a:hover { background: var(--canvas); }
.woocommerce-MyAccount-navigation .is-active a { background: var(--primary); color: var(--on-primary); }
.u-columns.col2-set { display: grid; grid-template-columns: 1fr 1fr; align-items: start; gap: var(--gap); }
.u-columns .u-column1, .u-columns .u-column2 { display: flex; flex-direction: column; gap: var(--s-4); min-width: 0; }
.u-columns .u-column1, .u-columns .u-column2 { width: auto; float: none; }
.u-columns h2 { font-size: var(--fs-2xl); margin: 0; }
.woocommerce form.login, .woocommerce form.register { margin: 0; border: 0; flex: 1; }
/* the register form's privacy note */
.woocommerce-privacy-policy-text { color: var(--text-muted); font-size: var(--fs-sm); line-height: var(--lh-normal); }
.woocommerce-form-login__submit, .woocommerce-form-register__submit { width: 100%; }
.woocommerce-LostPassword { margin: 0; }
.woocommerce-form-login__rememberme { display: flex; align-items: center; gap: var(--s-2); margin-block: var(--s-3); }
.lost_password a { display: inline-flex; align-items: center; min-height: 1.5rem; color: var(--accent-strong); font-size: var(--fs-sm); font-weight: var(--fw-semibold); }
.show-password-input { min-width: 1.5rem; min-height: 1.5rem; }

/* ==========================================================================
   WooCommerce button reset — the .lz-btn contract wins
   ========================================================================== */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit,
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt, .woocommerce #respond input#submit.alt,
.woocommerce button.button.alt.disabled, .woocommerce button.button:disabled[disabled] {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--s-2);
  min-height: var(--ctl); padding: 0 var(--s-6);
  background: var(--btn-bg, var(--primary)); color: var(--btn-fg, var(--on-primary));
  border: 0; border-radius: var(--r-pill);
  font-size: var(--fs-md); font-weight: var(--fw-semibold); line-height: 1.2;
  transition: background-color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover, .woocommerce #respond input#submit:hover,
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, .woocommerce input.button.alt:hover {
  background: var(--btn-bg-hover, var(--primary-hover)); color: var(--btn-fg, var(--on-primary));
}
.woocommerce a.button:active, .woocommerce button.button:active { transform: scale(.97); }
.woocommerce .button.is-loading, .woocommerce .single_add_to_cart_button.is-loading { color: transparent !important; position: relative; pointer-events: none; }
.woocommerce .single_add_to_cart_button.is-loading::after {
  content: ""; position: absolute; top: 50%; left: 50%; width: 1.2em; height: 1.2em; translate: -50% -50%;
  border: 2px solid var(--on-primary); border-block-start-color: transparent; border-radius: 50%; animation: lz-spin .7s linear infinite;
}
.woocommerce .single_add_to_cart_button.is-done { background: var(--clay-600); }
.woocommerce span.onsale { display: none; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 75rem) {
  .woocommerce ul.products, ul.products, .woocommerce ul.products[class*="columns-"], ul.products[class*="columns-"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 64rem) {
  .lz-pdp-top { grid-template-rows: auto; }
  .woocommerce div.product div.images.woocommerce-product-gallery, div.product .woocommerce-product-gallery { grid-column: 1 / -1; grid-row: auto; position: relative; inset-block-start: 0; }
  .woocommerce div.product div.summary, div.product .summary, .lz-pdp-top > .lz-facts { grid-column: 1 / -1; }
  .lz-origin-main, .lz-origin-steps { grid-column: 1 / -1; }
  .lz-qv-inner { grid-template-columns: 1fr; }
  .lz-qv-media { max-width: 22rem; margin-inline: auto; width: 100%; }
  .lz-wc-page .woocommerce, .lz-wc-page form.checkout, .woocommerce-account .lz-wc-page .woocommerce { grid-template-columns: 1fr; }
  #customer_details { grid-row: auto; }
  #order_review, .cart-collaterals { position: static; }
}
@media (max-width: 45rem) {
  .woocommerce ul.products, ul.products, .woocommerce ul.products[class*="columns-"], ul.products[class*="columns-"] { grid-template-columns: 1fr 1fr; }
  .lz-facts { grid-template-columns: 1fr 1fr 1fr; }
  .lz-facts li { padding: var(--s-4); }
  .lz-facts span { display: none; }
  .lz-shop-hero .lz-art { width: 50%; opacity: .5; }
  .lz-toolbar { flex-direction: column; align-items: stretch; }
  .lz-qv { padding: var(--s-1); margin-block-start: var(--s-3); }
  .lz-qv-body { padding: var(--s-4); }
  .u-columns.col2-set { grid-template-columns: 1fr; }
  table.shop_table_responsive thead { display: none; }
  table.shop_table_responsive tr { display: grid; margin-block-end: var(--s-2); padding: var(--s-2); background: var(--canvas); border-radius: var(--r-inner); }
  table.shop_table_responsive tbody td { display: flex; justify-content: space-between; gap: var(--s-3); padding: var(--s-2) var(--s-3); background: transparent; border-radius: 0 !important; text-align: end; }
  table.shop_table_responsive td::before { content: attr(data-title); color: var(--text-strong); font-weight: var(--fw-bold); }
  table.shop_table_responsive td.product-remove::before, table.shop_table_responsive td.product-thumbnail::before, table.shop_table_responsive td.actions::before { display: none; }
  table.shop_table_responsive td.actions { display: grid; gap: var(--s-2); }
  table.shop_table .coupon { display: flex; width: 100%; }
  table.shop_table .coupon .input-text { flex: 1; width: auto; }
  .woocommerce table.shop_table button[name="update_cart"] { float: none; width: 100%; }
  .form-row-first, .form-row-last { width: 100%; margin-inline-end: 0; }
}
