body.woocommerce-page,
body.woocommerce {
  background: var(--bg-page);
  color: var(--text);
}

body.woocommerce-page .site-main,
body.woocommerce .site-main,
body.post-type-archive-product .site-main,
body.tax-product_cat .site-main,
body.single-product .site-main {
  margin-top: 24px;
}

.woocommerce-breadcrumb {
  margin-top: 20px;
  color: var(--text-muted);
}

.iwc-woocommerce-shell {
  display: grid;
  gap: 22px;
}

.woocommerce-products-header {
  padding: 28px;
  background: var(--bg-surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}

.woocommerce-products-header__title.page-title {
  margin: 0;
  font-size: clamp(2rem, 4vw, 3.25rem);
  line-height: 1;
  color: var(--text);
}

.woocommerce-products-header .term-description,
.woocommerce-products-header .page-description {
  margin-top: 14px;
  max-width: 72ch;
  color: var(--text-muted);
}

.woocommerce-products-header .term-description > *:first-child,
.woocommerce-products-header .page-description > *:first-child {
  margin-top: 0;
}

.woocommerce-products-header .term-description > *:last-child,
.woocommerce-products-header .page-description > *:last-child {
  margin-bottom: 0;
}

.woocommerce .woocommerce-result-count,
.woocommerce-page .woocommerce-result-count {
  margin: 0;
  color: var(--text-muted);
}

.woocommerce .woocommerce-ordering,
.woocommerce-page .woocommerce-ordering {
  margin: 0 0 0 auto;
}

.woocommerce .woocommerce-ordering select,
.woocommerce-page .woocommerce-ordering select {
  min-height: 46px;
  padding: 0 14px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--bg-surface);
  color: var(--text);
}

.woocommerce .woocommerce-notices-wrapper:empty {
  display: none;
}

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.added_to_cart,
.wc-block-components-button,
.wp-element-button,
button.alt,
.woocommerce button.button.alt,
.woocommerce a.button.alt {
  background: var(--brand-primary) !important;
  color: #000 !important;
  border: none !important;
  border-radius: var(--button-radius) !important;
  padding: 12px 18px !important;
  font-weight: 800 !important;
  box-shadow: none !important;
  transition: background-color .2s ease, transform .2s ease;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.added_to_cart:hover,
.wc-block-components-button:hover,
.wp-element-button:hover,
button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce a.button.alt:hover {
  background: var(--brand-accent) !important;
  color: #fff !important;
  transform: translateY(-1px);
}

.woocommerce ul.products,
.woocommerce-page ul.products {
  display: grid !important;
  grid-template-columns: repeat(var(--archive-cols-desktop), minmax(0, 1fr));
  gap: var(--archive-gap) !important;
  list-style: none;
  margin: 0 !important;
  padding: 0 !important;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after,
.woocommerce-page ul.products::before,
.woocommerce-page ul.products::after {
  content: none !important;
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
  clear: none !important;
  background-color: var(--bg-surface) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius) !important;
  box-shadow: var(--shadow) !important;
  overflow: hidden;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.woocommerce ul.products li.product:hover,
.woocommerce-page ul.products li.product:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 30px rgba(17,17,17,.12) !important;
  border-color: rgba(30,164,233,.35) !important;
}

.iwc-product-card__inner {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.iwc-product-card__media {
  padding: 18px 18px 0;
}

.iwc-product-card__media-link {
  display: block;
  background: var(--bg-muted);
  border-radius: calc(var(--radius) - 2px);
  padding: 18px;
}

.iwc-product-card__media img {
  display: block;
  width: 100%;
  aspect-ratio: var(--archive-image-ratio);
  object-fit: contain;
  border-radius: 10px;
}

.iwc-product-card__content {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 18px;
  height: 100%;
}

.iwc-product-card__categories {
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--text-muted);
}

.iwc-product-card__categories a {
  color: inherit;
}

.iwc-product-card__title-link h2.woocommerce-loop-product__title,
.woocommerce ul.products li.product h2.woocommerce-loop-product__title {
  margin: 0;
  color: var(--text) !important;
  font-size: 1.0625rem !important;
  line-height: 1.2 !important;
  font-weight: 800 !important;
  min-height: 2.4em;
}

.iwc-product-card__excerpt {
  color: var(--text-muted);
  font-size: .95rem;
}

.iwc-product-card__price,
.woocommerce ul.products li.product .price {
  display: inline-flex !important;
  align-self: flex-start;
  margin: 0 !important;
  padding: 10px 14px !important;
  border-radius: 10px !important;
  background: var(--bg-muted) !important;
  color: var(--text) !important;
  border: 1px solid var(--border) !important;
  font-size: 1rem !important;
  font-weight: 900 !important;
}

.iwc-product-card__price .price {
  margin: 0 !important;
}

.iwc-product-card__actions {
  margin-top: auto;
}

.iwc-archive-density-compact .iwc-product-card__media {
  padding: 14px 14px 0;
}

.iwc-archive-density-compact .iwc-product-card__media-link {
  padding: 12px;
}

.iwc-archive-density-compact .iwc-product-card__content {
  gap: 8px;
  padding: 14px;
}

.iwc-archive-density-compact .iwc-product-card__title-link h2.woocommerce-loop-product__title,
.iwc-archive-density-compact .woocommerce ul.products li.product h2.woocommerce-loop-product__title {
  font-size: 1rem !important;
  min-height: 0;
}

.iwc-product-card__actions .button {
  width: 100%;
  justify-content: center;
}

.woocommerce span.onsale,
.woocommerce ul.products li.product .onsale {
  top: 14px !important;
  left: 14px !important;
  margin: 0 !important;
  min-height: auto !important;
  line-height: 1 !important;
  padding: 8px 10px !important;
  border-radius: 999px !important;
  background: var(--brand-accent) !important;
  color: #fff !important;
  font-size: .75rem !important;
  font-weight: 800 !important;
}

.iwc-archive-badge-flat .woocommerce span.onsale,
.iwc-archive-badge-flat .woocommerce ul.products li.product .onsale {
  border-radius: 8px !important;
  padding: 7px 10px !important;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.iwc-archive-layout-list .woocommerce ul.products,
.iwc-archive-layout-split .woocommerce ul.products {
  grid-template-columns: 1fr !important;
}

.iwc-archive-layout-list .woocommerce ul.products li.product .iwc-product-card__inner {
  display: grid;
  grid-template-columns: minmax(180px, 220px) 1fr;
  align-items: stretch;
}

.iwc-archive-layout-split .woocommerce ul.products li.product .iwc-product-card__inner {
  display: grid;
  grid-template-columns: minmax(220px, var(--archive-split-media)) 1fr;
  align-items: stretch;
}

.iwc-archive-layout-list .iwc-product-card__media,
.iwc-archive-layout-split .iwc-product-card__media {
  padding: 18px;
}

.iwc-archive-layout-list .iwc-product-card__content,
.iwc-archive-layout-split .iwc-product-card__content {
  padding: 22px 22px 22px 0;
}

.iwc-archive-layout-list .iwc-product-card__media img {
  object-fit: cover;
}

.iwc-archive-layout-list .iwc-product-card__actions .button,
.iwc-archive-layout-split .iwc-product-card__actions .button {
  width: auto;
  min-width: 220px;
}

.woocommerce nav.woocommerce-pagination {
  margin-top: 28px;
}

.woocommerce nav.woocommerce-pagination ul {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0;
  padding: 0;
  border: 0;
}

.woocommerce nav.woocommerce-pagination ul li {
  border: 0;
  overflow: visible;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  padding: 0 14px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--bg-surface);
  box-shadow: var(--shadow);
  font-weight: 700;
}

.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover {
  background: var(--brand-primary);
  color: #000;
  border-color: transparent;
}

.woocommerce div.product {
  background: var(--bg-surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 32px;
}

.woocommerce div.product .product_title {
  font-size: 2rem;
  line-height: 1.1;
  color: var(--text);
  font-weight: 800;
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
  display: inline-flex;
  padding: 10px 14px;
  border-radius: 10px;
  background: var(--bg-muted);
  border: 1px solid var(--border);
  color: var(--text);
  font-size: 1.35rem;
  font-weight: 900;
}

.woocommerce div.product .woocommerce-product-details__short-description {
  color: var(--text-muted);
}

.woocommerce div.product form.cart {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
}

.quantity input.qty,
.wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input {
  width: 80px !important;
  height: 45px !important;
  font-size: 18px !important;
  text-align: center;
  border: 1px solid var(--border) !important;
  border-radius: 10px;
  color: var(--text) !important;
  background-color: #FFFFFF !important;
  transition: all 0.2s ease;
  box-shadow: none;
}

.quantity input.qty:hover,
.quantity input.qty:focus,
.wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input:hover,
.wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input:focus {
  border-color: var(--brand-accent) !important;
  box-shadow: 0 0 0 3px rgba(30,164,233,0.15);
  outline: none;
}

.woocommerce-account input,
.woocommerce-checkout input,
.woocommerce-account select,
.woocommerce-checkout select,
.woocommerce-page textarea,
.woocommerce-page .select2-selection,
.wc-block-components-text-input input,
.wc-block-components-combobox .wc-block-components-combobox-control input,
.wc-block-components-textarea,
.wc-block-components-textarea textarea {
  background-color: #FFFFFF !important;
  color: var(--text) !important;
  border: 1px solid var(--border) !important;
  border-radius: 10px !important;
  padding: 10px 12px !important;
  box-shadow: none !important;
}

.woocommerce-page ::placeholder,
.wc-block-components-text-input input::placeholder,
.wc-block-components-textarea textarea::placeholder {
  color: #9AA3AF !important;
}

.woocommerce form.checkout_coupon,
.woocommerce form.login,
.woocommerce form.register,
.woocommerce form.woocommerce-checkout,
.woocommerce-cart .woocommerce-cart-form,
.woocommerce-cart .cart-collaterals .cart_totals,
.woocommerce-cart .woocommerce-shipping-calculator .shipping-calculator-form,
.wc-block-cart,
.wc-block-checkout,
.wc-block-components-sidebar,
.wc-block-components-order-summary {
  background: var(--bg-surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}

.iwc-cart-cards .woocommerce-cart .woocommerce-cart-form,
.iwc-cart-cards .woocommerce-cart .cart-collaterals .cart_totals,
.iwc-checkout-cards .woocommerce form.woocommerce-checkout,
.iwc-checkout-cards .wc-block-checkout,
.iwc-cart-cards .wc-block-cart,
.iwc-cart-cards .wc-block-components-sidebar {
  padding: 20px;
}

.iwc-order-summary-sticky .woocommerce-checkout-review-order,
.iwc-order-summary-sticky .wc-block-components-sidebar {
  position: sticky;
  top: 110px;
}

.iwc-single-summary-sticky .woocommerce div.product div.summary {
	position: sticky;
	top: 110px;
}

.woocommerce-cart .woocommerce-cart-form table.shop_table,
.woocommerce table.shop_table,
.wc-block-cart-items,
.wc-block-components-order-summary-item {
  border-color: var(--border) !important;
}

.woocommerce-thankyou-order-received {
  font-size: 1rem;
  line-height: 1.4;
  margin-bottom: 12px;
  color: var(--text);
  background: var(--bg-muted);
  border: 1px solid var(--border);
  padding: 12px 14px;
  border-radius: 12px;
}

.woocommerce-order-overview,
.woocommerce-order-details,
.woocommerce-customer-details,
.woocommerce-order .woocommerce-table--order-details {
  background: var(--bg-surface);
  padding: 20px;
  border-radius: var(--radius);
  border: 1px solid var(--border);
  box-shadow: var(--shadow);
}

.woocommerce .star-rating,
.woocommerce p.stars a {
  color: var(--brand-accent);
}

@media (max-width: 1048px) {
  .woocommerce .woocommerce-ordering,
  .woocommerce-page .woocommerce-ordering {
    margin-left: 0;
  }

  .woocommerce ul.products,
  .woocommerce-page ul.products {
    grid-template-columns: repeat(var(--archive-cols-tablet), minmax(0, 1fr));
  }

  .iwc-archive-layout-split .woocommerce ul.products li.product .iwc-product-card__inner {
    grid-template-columns: 1fr;
  }

  .iwc-archive-layout-list .woocommerce ul.products li.product .iwc-product-card__inner {
    grid-template-columns: minmax(150px, 190px) 1fr;
  }

  .iwc-archive-layout-list .iwc-product-card__content,
  .iwc-archive-layout-split .iwc-product-card__content {
    padding: 0 18px 18px;
  }

  .iwc-archive-layout-list .iwc-product-card__content {
    padding: 18px 18px 18px 0;
  }

  .woocommerce div.product {
    padding: 20px;
  }

  .woocommerce div.product .product_title {
    font-size: 1.5rem;
  }

	.iwc-single-summary-sticky .woocommerce div.product div.summary {
		position: static;
	}
}

@media (max-width: 600px) {
  .woocommerce-products-header {
    padding: 20px;
  }

  .woocommerce ul.products,
  .woocommerce-page ul.products {
    grid-template-columns: repeat(var(--archive-cols-mobile), minmax(0, 1fr));
    gap: 16px !important;
  }

  .iwc-product-card__media {
    padding: 16px 16px 0;
  }

  .iwc-product-card__content {
    padding: 16px;
  }

  .iwc-archive-layout-list .woocommerce ul.products li.product .iwc-product-card__inner,
  .iwc-archive-layout-split .woocommerce ul.products li.product .iwc-product-card__inner {
    grid-template-columns: 1fr;
  }

  .iwc-archive-layout-list .iwc-product-card__content,
  .iwc-archive-layout-split .iwc-product-card__content {
    padding: 0 16px 16px;
  }

  .woocommerce div.product {
    padding: 16px;
  }

  .woocommerce div.product .product_title,
  .woocommerce div.product p.price,
  .woocommerce div.product span.price,
  .woocommerce div.product .woocommerce-product-details__short-description {
    text-align: center;
  }

  .woocommerce div.product form.cart {
    justify-content: center;
  }

  .woocommerce .single_add_to_cart_button {
    width: 100%;
  }
}
