/* =========================================================================
   The Butcher Shop & Grill — WooCommerce styles
   Loaded only when WooCommerce is active. WC block CSS often loads AFTER the
   theme, so cart/checkout block rules use high specificity + !important.
   ========================================================================= */

.bsg-shop { padding: 0 0 70px; }
.bsg-shop__inner { padding: 0 24px; }

.bsg-shop-head { padding: 64px 24px 18px; max-width: 880px; margin: 0 auto; }
.bsg-shop-head__intro { font-size: 16px; line-height: 1.8; max-width: 620px; margin: 14px auto 0; }

/* Category chips */
.bsg-cat-chips { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin: 6px auto 30px; max-width: 980px; padding: 0 16px; }
.bsg-chip {
  font-family: var(--bsg-font-body);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--bsg-green);
  background: var(--bsg-panel);
  border: 1px solid var(--bsg-gold);
  border-radius: 20px;
  padding: 6px 16px;
}
.bsg-chip:hover, .bsg-chip.is-active { background: var(--bsg-green); color: var(--bsg-cream); }

/* Toolbar */
.bsg-shop-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
  margin: 0 0 24px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--bsg-gold);
}
.bsg-shop-toolbar .woocommerce-result-count { margin: 0; color: var(--bsg-ink-soft); font-style: italic; }
.bsg-shop-toolbar .woocommerce-ordering select { font-family: var(--bsg-font-body); padding: 8px 12px; border: 1px solid var(--bsg-gold); border-radius: 6px; background: var(--bsg-paper); }

/* Product grid — minmax(0,1fr) so cards can shrink (no h-scroll on mobile). */
.woocommerce ul.products,
.woocommerce-page ul.products {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 30px;
  margin: 0;
  padding: 0;
}
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
  width: auto !important;
  margin: 0 !important;
  min-width: 0;
  float: none !important;
}

/* Product card */
.bsg-product {
  background: var(--bsg-paper);
  border: 1px solid var(--bsg-gold);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  list-style: none;
}
.bsg-product__media { position: relative; display: block; aspect-ratio: 4 / 3; background: var(--bsg-green-deep); overflow: hidden; }
.bsg-product__media img { width: 100%; height: 100%; object-fit: cover; margin: 0 !important; }
.bsg-product .onsale {
  position: absolute; top: 12px; left: 12px; z-index: 2;
  background: var(--bsg-gold); color: var(--bsg-green-dark);
  font-family: var(--bsg-font-body); font-weight: 700; font-size: 12px;
  padding: 4px 12px; border-radius: 16px; min-height: 0; min-width: 0; line-height: 1.4;
}
.bsg-product__body { padding: 18px 20px 22px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.bsg-product__title { font-family: var(--bsg-font-head); font-weight: 700; font-size: 19px; color: var(--bsg-green); margin: 0; }
.bsg-product .woocommerce-loop-product__title { padding: 0; }
.bsg-product .price { font-family: var(--bsg-font-body); font-weight: 700; color: var(--bsg-ink); font-size: 17px; }
.bsg-product .price del { color: var(--bsg-muted); font-weight: 400; }
.bsg-product .price ins { text-decoration: none; }
.bsg-product .star-rating { margin: 2px 0; }
.bsg-product__actions { margin-top: auto; padding-top: 12px; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }

/* Buttons — beat WC's .button.alt purple. */
.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 {
  background: var(--bsg-green);
  color: var(--bsg-cream);
  font-family: var(--bsg-font-body);
  font-weight: 700;
  letter-spacing: .04em;
  border-radius: var(--bsg-radius-pill);
  border: 0;
  padding: 11px 22px;
  text-transform: uppercase;
  font-size: 13px;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover { background: var(--bsg-green-hover); color: var(--bsg-cream); }

.woocommerce a.added_to_cart { color: var(--bsg-green); font-weight: 700; }

/* Single product */
.woocommerce div.product .product_title { font-family: var(--bsg-font-head); color: var(--bsg-green); font-weight: 800; }
.woocommerce div.product p.price,
.woocommerce div.product span.price { color: var(--bsg-ink); font-weight: 700; }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
  background: var(--bsg-panel);
  border: 1px solid var(--bsg-gold);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
  background: var(--bsg-paper);
  border-bottom-color: var(--bsg-paper);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a { color: var(--bsg-green); font-family: var(--bsg-font-head); font-weight: 700; }

/* Quantity — hide empty .quantity container when stock fixed. */
.woocommerce .quantity input.qty {
  border: 1px solid var(--bsg-gold);
  border-radius: 6px;
  padding: 8px;
  background: var(--bsg-paper);
}
.woocommerce form.cart .quantity:empty { display: none; }

/* Notices */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  border-top-color: var(--bsg-green);
  background: var(--bsg-paper);
}
.woocommerce-message::before,
.woocommerce-info::before { color: var(--bsg-green); }

/* Cart + checkout cards */
.woocommerce table.shop_table { border: 1px solid var(--bsg-gold); border-radius: 8px; background: var(--bsg-paper); }
.woocommerce-cart .cart-collaterals .cart_totals,
.woocommerce-checkout #order_review,
.woocommerce-checkout .woocommerce-checkout-review-order {
  background: var(--bsg-paper);
  border: 1px solid var(--bsg-gold);
  border-radius: 8px;
  padding: 18px 22px;
}

/* WooCommerce BLOCK cart/checkout — high specificity + !important (loads late). */
.wp-block-woocommerce-cart .wc-block-components-button,
.wp-block-woocommerce-checkout .wc-block-components-button,
.wc-block-components-button.wc-block-components-button {
  background-color: var(--bsg-green) !important;
  color: var(--bsg-cream) !important;
  border-radius: var(--bsg-radius-pill) !important;
}
.wp-block-woocommerce-cart .wc-block-components-button:hover,
.wp-block-woocommerce-checkout .wc-block-components-button:hover {
  background-color: var(--bsg-green-hover) !important;
}
.wc-block-components-totals-item__value,
.wc-block-components-product-price__value { color: var(--bsg-ink) !important; }

/* =========================================================================
   OFF-CANVAS CART DRAWER
   Wrap in a fixed/inset/overflow-hidden shell; panel is absolute inside it,
   so translateX(100%) doesn't add page scroll width on mobile.
   ========================================================================= */
.bsg-drawer { position: fixed; inset: 0; z-index: 210; overflow: hidden; }
.bsg-drawer[hidden] { display: none; }
.bsg-drawer__backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.5); opacity: 0; transition: opacity .25s ease; }
.bsg-drawer.is-open .bsg-drawer__backdrop { opacity: 1; }
.bsg-drawer__panel {
  position: absolute;
  top: 0; right: 0; bottom: 0;
  width: min(92vw, 400px);
  background: var(--bsg-cream);
  box-shadow: -10px 0 40px rgba(0,0,0,.25);
  transform: translateX(100%);
  transition: transform .28s ease;
  display: flex;
  flex-direction: column;
}
.bsg-drawer.is-open .bsg-drawer__panel { transform: translateX(0); }
.bsg-drawer__head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 18px 22px; border-bottom: 1px solid var(--bsg-gold); background: var(--bsg-green); color: var(--bsg-cream);
}
.bsg-drawer__head h2 { margin: 0; color: var(--bsg-cream); font-size: 20px; }
.bsg-drawer__close { background: transparent; border: 0; color: var(--bsg-cream); cursor: pointer; }
.bsg-drawer__body { padding: 18px 22px; overflow-y: auto; flex: 1; }

.bsg-mini-cart { list-style: none; margin: 0; padding: 0; }
.bsg-mini-cart__item { position: relative; display: flex; gap: 12px; align-items: flex-start; padding: 12px 0; border-bottom: 1px solid rgba(177,138,62,.4); }
.bsg-mini-cart__item img { width: 56px; height: 56px; object-fit: cover; border: 1px solid var(--bsg-gold); }
.bsg-mini-cart__remove { order: 3; margin-left: auto; color: var(--bsg-green) !important; font-weight: 700; font-size: 18px; text-decoration: none; }
.bsg-mini-cart__total { margin: 16px 0; font-weight: 700; font-size: 17px; }
.bsg-mini-cart__buttons { display: flex; gap: 10px; flex-wrap: wrap; }
.bsg-mini-cart__buttons .button { flex: 1; text-align: center; }
.bsg-mini-cart__empty { color: var(--bsg-ink-soft); font-style: italic; }

@media (max-width: 960px) {
  .woocommerce ul.products,
  .woocommerce-page ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
}
@media (max-width: 480px) {
  .woocommerce ul.products,
  .woocommerce-page ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
}
