/* WooCommerce presentation. Every rule is scoped to DOS wrappers. Native flows stay intact. */

.dos-product-loop ul.products,
.dos-woo ul.products {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--dos-grid-gap);
  margin: 0;
  padding: 0;
  list-style: none;
}

.dos-product-loop ul.products li.product,
.dos-woo ul.products li.product {
  display: flex;
  min-width: 0;
  flex-direction: column;
  overflow: hidden;
  background: var(--dos-color-surface);
  border: var(--dos-border-subtle);
}

.dos-product-loop .dos-loop-media,
.dos-woo .dos-loop-media {
  display: block;
  aspect-ratio: 1;
  overflow: hidden;
  background: var(--dos-color-surface-media);
}

.dos-product-loop .dos-loop-media img,
.dos-woo .dos-loop-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.dos-product-loop li.product .woocommerce-loop-product__title,
.dos-woo li.product .woocommerce-loop-product__title {
  padding: 0 var(--dos-space-4);
  color: var(--dos-color-text);
  font-size: var(--dos-type-h3);
}

.dos-product-loop li.product .price,
.dos-woo li.product .price,
.dos-woo .summary .price {
  color: var(--dos-color-text);
  font-family: var(--dos-font-mono);
  font-size: var(--dos-type-price);
}

.dos-loop-status,
.dos-loop-fitment {
  margin: 0;
  padding: 0 var(--dos-space-4);
  font-size: var(--dos-type-xs);
}

.dos-loop-status {
  color: var(--dos-color-warning);
}

.dos-loop-fitment {
  color: var(--dos-color-blue-light);
}

.dos-product-loop .button,
.dos-woo .button,
.dos-woo button.button,
.dos-woo input.button,
.dos-woo a.button,
.dos-woo .checkout-button,
.dos-woo #place_order {
  display: inline-flex;
  min-height: var(--dos-control-primary);
  align-items: center;
  justify-content: center;
  background: var(--dos-color-brand);
  border: 1px solid var(--dos-color-brand);
  border-radius: var(--dos-radius-xs);
  color: var(--dos-color-on-brand);
  font-weight: var(--dos-font-weight-semibold);
  text-decoration: none;
}

.dos-product-loop .button.alt,
.dos-woo .button.alt,
.dos-woo a.added_to_cart {
  background: transparent;
  border-color: var(--dos-color-border);
  color: var(--dos-color-text);
}

.dos-woo-note {
  margin: 0 0 var(--dos-space-6);
  padding: var(--dos-space-4);
  background: var(--dos-color-surface);
  border-inline-start: 3px solid var(--dos-color-warning);
  color: var(--dos-color-text-muted);
}

.dos-product-single,
.dos-cart,
.dos-checkout,
.dos-account,
.dos-account-content {
  padding-block: var(--dos-space-8);
  color: var(--dos-color-text);
}

.dos-woo .product_title,
.dos-woo h1,
.dos-woo h2 {
  color: var(--dos-color-text);
}

.dos-woo .stock.in-stock {
  color: var(--dos-color-success);
}

.dos-woo .stock.out-of-stock {
  color: var(--dos-color-danger);
}

.dos-woo table.shop_table,
.dos-woo .cart-collaterals,
.dos-woo .woocommerce-checkout-review-order,
.dos-woo .woocommerce-MyAccount-navigation,
.dos-woo .woocommerce-MyAccount-content {
  background: var(--dos-color-surface);
  border: var(--dos-border-subtle);
  color: var(--dos-color-text);
}

.dos-woo table.shop_table th,
.dos-woo table.shop_table td,
.dos-woo .cart_totals th,
.dos-woo .cart_totals td {
  color: var(--dos-color-text);
  border-color: var(--dos-color-border-subtle);
}

.dos-woo .input-text,
.dos-woo select,
.dos-woo textarea,
.dos-woo .select2-container .select2-selection--single {
  min-height: var(--dos-control-min);
  background: var(--dos-color-surface-raised);
  border: var(--dos-border-functional);
  color: var(--dos-color-text);
}

.dos-woo .woocommerce-message,
.dos-woo .woocommerce-info,
.dos-woo .woocommerce-error {
  background: var(--dos-color-surface-raised);
  border-color: var(--dos-color-brand);
  color: var(--dos-color-text);
}

.dos-woo .woocommerce-form-login,
.dos-woo .woocommerce-form-register,
.dos-woo .woocommerce-ResetPassword {
  background: var(--dos-color-surface);
  border: var(--dos-border-subtle);
  padding: var(--dos-space-6);
}

.dos-woo .quantity .qty {
  width: 4.5rem;
  background: var(--dos-color-surface-raised);
  color: var(--dos-color-text);
}

.dos-woo .woocommerce-tabs {
  margin-top: var(--dos-space-8);
}

.dos-woo .woocommerce-tabs ul.tabs {
  padding: 0;
  background: transparent;
  border-bottom: var(--dos-border-subtle);
}

.dos-woo .woocommerce-tabs ul.tabs li a {
  color: var(--dos-color-text);
}

.dos-woo .related.products,
.dos-woo .upsells.products {
  margin-top: var(--dos-space-10);
}

@media (max-width: 52rem) {
  .dos-product-loop ul.products,
  .dos-woo ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .dos-woo .button,
  .dos-woo #place_order {
    width: 100%;
  }
}

@media (max-width: 30rem) {
  .dos-product-loop ul.products,
  .dos-woo ul.products {
    grid-template-columns: 1fr;
  }
}
