/* Wspolna warstwa WooCommerce: klasyczna i blokowa. */
.woocommerce .button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.single_add_to_cart_button,
.checkout-button,
.wc-block-components-button,
.wc-block-components-checkout-place-order-button,
[class*="wp-block-woocommerce-"] .wc-block-components-button {
  min-block-size: 44px;
  padding: var(--tb-space-3) var(--tb-space-5);
  border: 2px solid var(--tb-accent);
  border-radius: var(--tb-radius);
  background: var(--tb-accent);
  color: var(--tb-accent-ink);
  font-family: var(--tb-font-display);
  font-size: var(--tb-step-0);
  font-weight: 750;
  letter-spacing: 0.035em;
  line-height: 1.1;
  text-decoration: none;
  text-transform: uppercase;
  box-shadow: none;
  cursor: pointer;
  transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.woocommerce .button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.single_add_to_cart_button:hover,
.checkout-button:hover,
.wc-block-components-button:hover,
.wc-block-components-checkout-place-order-button:hover,
[class*="wp-block-woocommerce-"] .wc-block-components-button:hover {
  border-color: var(--tb-accent-hover);
  background: var(--tb-accent-hover);
  color: var(--tb-accent-ink);
  transform: translateY(-1px);
}

.woocommerce .button:focus-visible,
.woocommerce a.button:focus-visible,
.woocommerce button.button:focus-visible,
.woocommerce input.button:focus-visible,
.single_add_to_cart_button:focus-visible,
.checkout-button:focus-visible,
.wc-block-components-button:focus-visible,
.wc-block-components-checkout-place-order-button:focus-visible,
[class*="wp-block-woocommerce-"] .wc-block-components-button:focus-visible {
  border-color: var(--tb-accent);
  background: var(--tb-accent);
  color: var(--tb-accent-ink);
  outline: 3px solid var(--tb-text);
  outline-offset: 3px;
}

.woocommerce .button:disabled,
.woocommerce .button.disabled,
.woocommerce .button[aria-disabled="true"],
.single_add_to_cart_button:disabled,
.checkout-button:disabled,
.wc-block-components-button:disabled,
.wc-block-components-button[aria-disabled="true"],
.wc-block-components-checkout-place-order-button:disabled,
[class*="wp-block-woocommerce-"] .wc-block-components-button:disabled {
  border-color: var(--tb-border-soft);
  background: var(--tb-surface-2);
  color: var(--tb-text-mute);
  cursor: not-allowed;
  opacity: 1;
  transform: none;
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.wc-block-components-notice-banner,
[class*="wp-block-woocommerce-"] .wc-block-components-notice-banner {
  padding: var(--tb-space-4) var(--tb-space-5);
  border: 1px solid var(--tb-border);
  border-inline-start: 4px solid var(--tb-accent);
  border-radius: var(--tb-radius);
  background: var(--tb-surface);
  color: var(--tb-text);
  box-shadow: none;
}

.woocommerce-message,
.wc-block-components-notice-banner.is-success {
  border-inline-start-color: var(--tb-ok);
  background: var(--tb-ok-soft);
  color: var(--tb-ok);
}

.woocommerce-info,
.wc-block-components-notice-banner.is-info {
  border-inline-start-color: var(--tb-accent);
  background: var(--tb-surface-2);
  color: var(--tb-text);
}

.woocommerce-error,
.wc-block-components-notice-banner.is-error {
  border-inline-start-color: var(--tb-err);
  background: var(--tb-err-soft);
  color: var(--tb-err);
}

.woocommerce-message :where(a, .button),
.woocommerce-info :where(a, .button),
.woocommerce-error :where(a, .button),
.wc-block-components-notice-banner :where(a, .wc-block-components-button) {
  border-color: var(--tb-accent);
  background: var(--tb-accent);
  color: var(--tb-accent-ink);
}

.woocommerce :where(.price, .amount, .stock, .product_meta),
[class*="wp-block-woocommerce-"] :where(.wc-block-components-product-price, .wc-block-components-product-metadata, .wc-block-components-product-details),
.wc-block-grid__product-price {
  font-family: var(--tb-font-mono);
  font-variant-numeric: tabular-nums;
}

.woocommerce div.product p.price,
.woocommerce div.product span.price,
.wc-block-components-product-price,
.wc-block-grid__product-price {
  color: var(--tb-text);
  font-weight: 750;
}

.woocommerce .stock.in-stock {
  color: var(--tb-ok);
}

.woocommerce .stock.out-of-stock {
  color: var(--tb-err);
}

.woocommerce :where(input.input-text, textarea, select),
.wc-block-components-text-input input,
.wc-block-components-combobox .wc-block-components-combobox-control input,
[class*="wp-block-woocommerce-"] :where(input, textarea, select) {
  min-block-size: 44px;
  border: 1px solid var(--tb-border);
  border-radius: var(--tb-radius);
  background: var(--tb-surface);
  color: var(--tb-text);
  font-family: var(--tb-font-body);
  box-shadow: none;
}

.woocommerce table.shop_table,
.wc-block-cart-items,
.wc-block-components-totals-wrapper,
[class*="wp-block-woocommerce-"] table {
  border-color: var(--tb-border);
  border-radius: var(--tb-radius);
  background: var(--tb-surface);
  color: var(--tb-text);
}

.woocommerce table.shop_table :where(th, td),
.wc-block-cart-items :where(th, td),
[class*="wp-block-woocommerce-"] table :where(th, td) {
  border-color: var(--tb-border-soft);
}

.woocommerce table.shop_table :where(.amount, .product-quantity),
.wc-block-cart-items :where(.wc-block-components-product-price, .wc-block-components-product-badge),
.wc-block-components-totals-item__value {
  font-family: var(--tb-font-mono);
  font-variant-numeric: tabular-nums;
}

.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product .summary,
.wp-block-woocommerce-product-details,
.wp-block-woocommerce-checkout,
.wp-block-woocommerce-cart {
  color: var(--tb-text);
}

.tb-free-shipping-bar,
.tb-free-shipping-bar * {
  box-sizing: border-box;
}

.tb-free-shipping-bar {
  inline-size: 100%;
  max-inline-size: 100%;
  margin-block: 0 var(--tb-space-4);
  padding: var(--tb-space-4);
  border: 1px solid var(--tb-border);
  border-inline-start: 4px solid var(--tb-accent);
  border-radius: var(--tb-radius);
  background: var(--tb-surface-2);
  color: var(--tb-text);
  overflow: hidden;
}

.tb-free-shipping-bar__message {
  max-inline-size: none;
  margin: 0 0 var(--tb-space-3);
  color: var(--tb-text);
  font-family: var(--tb-font-display);
  font-size: var(--tb-step-0);
  font-weight: 750;
  overflow-wrap: anywhere;
}

.tb-free-shipping-bar__track {
  block-size: var(--tb-space-2);
  inline-size: 100%;
  border: 1px solid var(--tb-border);
  border-radius: var(--tb-radius);
  background: var(--tb-surface);
  overflow: hidden;
}

.tb-free-shipping-bar__fill {
  display: block;
  block-size: 100%;
  max-inline-size: 100%;
  border-radius: var(--tb-radius);
  background: var(--tb-accent);
  transition: width 180ms ease;
}

.tb-free-shipping-bar--success {
  border-color: var(--tb-ok);
  background: var(--tb-ok-soft);
}

.tb-free-shipping-bar--success .tb-free-shipping-bar__message {
  color: var(--tb-ok);
}

.tb-free-shipping-bar--success .tb-free-shipping-bar__fill {
  background: var(--tb-ok);
}

@media (prefers-reduced-motion: reduce) {
  .woocommerce .button,
  .single_add_to_cart_button,
  .checkout-button,
  .wc-block-components-button,
  .wc-block-components-checkout-place-order-button,
  [class*="wp-block-woocommerce-"] .wc-block-components-button {
    background: var(--tb-accent);
    color: var(--tb-accent-ink);
    transition: none;
  }

  .tb-free-shipping-bar__fill {
    transition: none;
  }
}
