/* EVERWhite – WooCommerce styles */

/* Grid: adjust product columns */
ul.products {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
  padding-left: 0;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after,
.woocommerce-page ul.products::before,
.woocommerce-page ul.products::after {
  content: none !important;
  display: none !important; /* prevent clearfix pseudo-elements from becoming grid items */
}
.woocommerce ul.products { margin: 0; }
.woocommerce ul.products li.product { margin: 0; padding: 0; list-style: none; }
/* Hide subcategory tiles to avoid gaps before products */
.woocommerce ul.products li.product-category { display: none !important; }
/* Override legacy float/grid widths Woo applies via columns- classes */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
  width: auto !important;
  float: none !important;
  clear: none !important;
  display: block;
}

@media (max-width: 991px) {
  ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
}
@media (max-width: 576px) {
  ul.products { grid-template-columns: 1fr; gap: 16px; }
}

/* Product card */
.ew-product .ew-product-card {
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: 8px;
  box-shadow: var(--shadow-soft);
  overflow: hidden;
  height: 100%;
  display: flex;
  flex-direction: column;
}
.ew-product .ew-product-media {
  position: relative;
  background: #fafafa;
}
.ew-product .ew-product-media img {
  width: 100%;
  height: auto;
  display: block;
}
.ew-product .ew-product-body { padding: 14px 16px; }
/* Ensure product title size wins over Woo defaults */
.woocommerce ul.products li.product .ew-product-card .ew-product-header .woocommerce-loop-product__title,
.ew-product .ew-product-header .woocommerce-loop-product__title {
  font-family: var(--typography-accent-family, 'Roboto');
  font-weight: 600;
  color: var(--color-accent);
  font-size: 23px !important;
  line-height: 1.3;
  text-align: center;
  margin: 0 0 6px;
}
.ew-product .price { color: var(--color-secondary); font-weight: 600; }
.ew-product .star-rating { margin-bottom: 6px; }

.ew-product .ew-product-actions {
  margin-top: auto;
  padding: 0;
  border-top: 1px solid var(--color-border);
}
.ew-product .ew-product-actions .button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 48px;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0;
  color: var(--color-primary) !important; /* rgb(51, 186, 211) */
  text-align: center;
  font-weight: 600;
  text-transform: uppercase !important;
  padding: 12px 16px;
  margin-top: 0 !important;
  transition: color .2s ease, background-color .2s ease, border-color .2s ease;
}
.woocommerce ul.products li.product a.button,
.woocommerce ul.products li.product .button {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-height: 48px !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  color: var(--color-primary) !important;
  text-transform: uppercase !important;
  text-align: center !important;
  padding: 12px 16px !important;
  margin-top: 0 !important;
  transition: color .2s ease, background-color .2s ease, border-color .2s ease !important;
}
.ew-product .ew-product-actions .button:hover,
.ew-product .ew-product-actions .button:focus,
.woocommerce ul.products li.product a.button:hover,
.woocommerce ul.products li.product .button:hover,
.woocommerce ul.products li.product a.button:focus,
.woocommerce ul.products li.product .button:focus {
  background: var(--color-primary) !important;
  color: #fff !important;
}

/* Single product: related products grid smaller, 4-up on wide screens */
.single-product .related ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
@media (max-width: 991px) {
  .single-product .related ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 576px) {
  .single-product .related ul.products { grid-template-columns: 1fr; }
}
.single-product .related .ew-product .ew-product-header .woocommerce-loop-product__title { font-size: 18px !important; }

/* Cart "You may be interested in..." alignment (image-size independent) */
.cart-collaterals .cross-sells ul.products {
  align-items: stretch;
}

.cart-collaterals .cross-sells ul.products li.product {
  display: flex !important;
  height: 100%;
}

.cart-collaterals .cross-sells ul.products li.product .ew-product-card {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
}

.cart-collaterals .cross-sells ul.products li.product .ew-product-media {
  height: 240px;
  padding: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.cart-collaterals .cross-sells ul.products li.product .ew-product-media img {
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

.cart-collaterals .cross-sells ul.products li.product .ew-product-body {
  flex: 1 1 auto;
}

.cart-collaterals .cross-sells ul.products li.product .ew-product-actions {
  margin-top: auto;
}

.woocommerce-cart ul.wc-block-product-template {
  align-items: stretch;
}

.woocommerce-cart ul.wc-block-product-template > li.wc-block-product {
  display: flex !important;
  flex-direction: column;
  height: 100%;
}

.woocommerce-cart ul.wc-block-product-template > li.wc-block-product > .wc-block-components-product-image {
  height: 240px;
  flex: 0 0 240px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.woocommerce-cart ul.wc-block-product-template > li.wc-block-product > .wc-block-components-product-image > a {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.woocommerce-cart ul.wc-block-product-template > li.wc-block-product > .wc-block-components-product-image img {
  width: 100% !important;
  height: 100% !important;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain !important;
}

.woocommerce-cart ul.wc-block-product-template > li.wc-block-product > .wp-block-post-title {
  min-height: 3.2em;
}

.woocommerce-cart ul.wc-block-product-template > li.wc-block-product > .wp-block-button {
  margin-top: auto;
}

/* Archive header (use Woo defaults, style to spec) */
.woocommerce-products-header { margin-bottom: 10px; }
.woocommerce-products-header__title.page-title { font-size: 28px; font-weight: 700; color: var(--color-accent); margin: 0 0 14px; }
.term-description { color: var(--color-secondary); margin-bottom: 8px; }

/* Notices / top controls row */
.woocommerce .woocommerce-notices-wrapper + .woocommerce-result-count,
.woocommerce .woocommerce-result-count { float: right; color: var(--color-text); }
.woocommerce .woocommerce-ordering { float: left; }
.woocommerce .woocommerce-ordering select { border-radius: 6px; border: 1px solid var(--color-border); padding: 6px 10px; }
.woocommerce .woocommerce-result-count:after { content: ""; display: table; clear: both; }

/* Sidebar widgets */
.widget-area .widget { background: #fff; border: 1px solid var(--color-border); border-radius: 8px; padding: 16px; margin-bottom: 16px; }
.widget-area .widget-title { font-size: 20px; font-weight: 700; color: var(--color-accent); margin: 0 0 12px; }
.widget-area ul { list-style: none; margin: 0; padding: 0; }
.widget-area li { margin: 6px 0; }
.widget-area a { color: var(--color-accent); text-decoration: none; }
.widget-area a:hover { text-decoration: underline; }

/* Product search widget */
.woocommerce-product-search { display: flex; gap: 8px; }
.woocommerce-product-search .search-field { flex: 1 1 auto; border: 1px solid var(--color-border); border-radius: 6px; padding: 8px 10px; }
.woocommerce-product-search button { background: var(--color-primary); color: #fff; border: 0; border-radius: 6px; padding: 8px 12px; font-weight: 700; }

/* Bottom blocks area */
.ew-category-bottom { margin-top: 40px; }

/* (container width unchanged) */

/* Add side margins to Woo archive container (full-width wrapper) */
.ew-woo-container { width: 100%; padding-left: 50px; padding-right: 50px; }
@media (max-width: 768px) {
  .ew-woo-container { padding-left: 16px; padding-right: 16px; }
}

/* Single product: show SKU, categories, tags on separate lines */
.single-product .product_meta > span { display: block; margin-top: 6px; }
.single-product .product_meta > span:first-child { margin-top: 0; }

/* Single product: category above title */
.single-product .summary .ew-single-product-category {
  display: inline-block;
  margin: 0 0 6px;
  color: #1f9fdb;
  font-size: 11px;
  line-height: 1.2;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  text-decoration: none;
}
.single-product .summary .ew-single-product-category:hover,
.single-product .summary .ew-single-product-category:focus {
  color: #1f9fdb;
  text-decoration: underline;
}

/* Single product: feature badges below description */
.single-product .summary .ew-single-product-features {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: start;
  gap: 16px;
  margin: 10px 0 14px;
}
.single-product .summary .ew-single-product-feature {
  display: flex;
  width: 100%;
  align-items: flex-start;
  gap: 8px;
  min-width: 0;
}
.single-product .summary .ew-single-product-feature img {
  width: 24px;
  height: 24px;
  object-fit: contain;
  flex: 0 0 auto;
}
.single-product .summary .ew-single-product-feature p {
  margin: 0;
  font-size: 14px;
  line-height: 1.2;
  color: #000;
  font-weight: 600;
  white-space: normal;
  overflow-wrap: break-word;
}
@media (max-width: 768px) {
  .single-product .summary .ew-single-product-features {
    gap: 12px;
    margin-top: 8px;
  }
}

/* Single product: gallery thumbnails (square, thin border, spaced) */
.single-product .flex-control-nav.flex-control-thumbs {
  list-style: none;
  padding: 0;
  margin: 14px 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  /* control size via CSS var */
  --ew-thumb-size: 70px;
  justify-content: flex-start;
}
@media (min-width: 768px) {
  .single-product .flex-control-nav.flex-control-thumbs { justify-content: space-between; }
}
.single-product .flex-control-nav.flex-control-thumbs li {
  width: var(--ew-thumb-size);
  aspect-ratio: 1 / 1; /* force perfect square */
  border: 1px solid var(--color-border);
  border-radius: 6px;
  overflow: hidden;
  background: var(--color-white);
}
.single-product .flex-control-nav.flex-control-thumbs img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  cursor: pointer;
  transition: box-shadow .2s ease, border-color .2s ease, transform .08s ease;
}
.single-product .flex-control-nav.flex-control-thumbs img:hover { transform: translateY(-1px); }
.single-product .flex-control-nav.flex-control-thumbs img:focus { outline: none; box-shadow: 0 0 0 2px rgba(51,186,211,.2); }
.single-product .flex-control-nav.flex-control-thumbs img.flex-active { box-shadow: 0 0 0 2px rgba(51,186,211,.25); border-color: var(--color-primary); }
@media (max-width: 576px) {
  .single-product .flex-control-nav.flex-control-thumbs { --ew-thumb-size: 56px; }
}

/* Single product: variations table */
.single-product table.variations {
  width: 100%;
  margin: 18px 0 10px;
  border: 0;
  border-collapse: collapse;
  background: transparent;
}
.single-product table.variations tbody {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}
.single-product table.variations tr {
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex: 1 1 0;
}
.single-product table.variations th.label,
.single-product table.variations td.value {
  display: block;
  width: 100%;
  padding: 0;
  vertical-align: top;
}
.single-product table.variations th.label label {
  margin: 0;
  font-size: 12px;
  font-weight: 600;
  color: var(--color-text);
}
.single-product table.variations td.value { background: transparent; }
.single-product table.variations td.value .reset_variations { background: transparent; }
.single-product table.variations td.value select,
.select2-container--default .select2-selection--single {
  background: var(--color-white) !important;
}
.single-product table.variations td.value select {
  width: 100%;
  border: 1px solid var(--color-border);
  border-radius: 4px;
  padding: 8px 10px;
  min-height: 38px;
  background: #fff;
  font-size: 12px;
}
.single-product table.variations td.value select:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 2px rgba(51,186,211,.15);
}
.single-product table.variations a.reset_variations {
  margin-left: 10px;
  font-size: 12px;
  color: var(--color-accent);
  text-decoration: underline;
}
@media (max-width: 576px) {
  .single-product table.variations tbody {
    display: block;
  }
  .single-product table.variations tr {
    display: block;
    margin-top: 10px;
  }
  .single-product table.variations tr:first-child {
    margin-top: 0;
  }
}

/* Single product: variation selection + add to cart */
.single-product .single_variation_wrap {
  margin-top: 14px;
  display: flex;
  flex-direction: column;
}
.single-product .single_variation_wrap .woocommerce-variation.single_variation {
  margin-bottom: 10px;
  order: 2;
}
.single-product .single_variation_wrap .woocommerce-variation-add-to-cart.variations_button {
  display: contents;
}
.single-product .summary p.price,
.single-product .summary span.price,
.single-product .summary .woocommerce-variation-price .price,
.single-product .summary .woocommerce-variation-price .price .amount,
.single-product .summary .woocommerce-variation-price .price ins .amount,
.single-product .summary .woocommerce-variation-price .price > span {
  color: #000 !important;
  font-size: 40px;
  line-height: 1.1;
  font-weight: 700;
}

/* Single product: gallery thumbnails */

.single-product .woocommerce-variation-add-to-cart.variations_button {
  margin: 0;
}
.single-product form.cart .quantity,
.single-product .woocommerce-variation-add-to-cart .quantity {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  order: 1;
}
.single-product .summary .quantity {
  margin-bottom: 28px !important;
}
.single-product form.cart .quantity .ew-qty-label,
.single-product .woocommerce-variation-add-to-cart .quantity .ew-qty-label {
  display: block;
  margin: 0;
  font-size: 12px;
  line-height: 1.2;
  color: var(--color-text);
  font-weight: 600;
}
.single-product form.cart .quantity .ew-qty-control,
.single-product .woocommerce-variation-add-to-cart .quantity .ew-qty-control {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.single-product form.cart .quantity .ew-qty-btn,
.single-product .woocommerce-variation-add-to-cart .quantity .ew-qty-btn {
  width: 44px;
  height: 44px;
  min-height: 44px;
  padding: 0;
  border: 1px solid var(--color-border);
  background: #fff;
  color: #222;
  font-size: 18px;
  line-height: 1;
  font-weight: 500;
  border-radius: 0;
}
.single-product form.cart .quantity .qty,
.single-product .woocommerce-variation-add-to-cart .quantity .qty {
  width: 52px;
  text-align: center;
  min-height: 44px;
  padding: 8px 6px;
  border: 1px solid var(--color-border);
  border-radius: 0;
  background: #fff;
  -moz-appearance: textfield;
  appearance: textfield;
}
.single-product form.cart .quantity .qty::-webkit-outer-spin-button,
.single-product form.cart .quantity .qty::-webkit-inner-spin-button,
.single-product .woocommerce-variation-add-to-cart .quantity .qty::-webkit-outer-spin-button,
.single-product .woocommerce-variation-add-to-cart .quantity .qty::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.single-product form.cart .quantity .qty:focus,
.single-product .woocommerce-variation-add-to-cart .quantity .qty:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 2px rgba(51,186,211,.15);
}
.single-product .single_add_to_cart_button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 12px 20px;
  background: var(--color-primary) !important;
  color: var(--color-white) !important;
  border: 0 !important;
  border-radius: 6px;
  font-weight: 700;
  text-transform: uppercase;
  order: 3;
  width: auto !important;
  max-width: 33%;
  white-space: nowrap;
}
.single-product .single_add_to_cart_button:hover,
.single-product .single_add_to_cart_button:focus {
  filter: brightness(.95);
  color: var(--color-white) !important;
}
.single-product .single_add_to_cart_button.disabled,
.single-product .single_add_to_cart_button[disabled] {
  opacity: .6;
  cursor: not-allowed;
  pointer-events: none;
}
