/* =========================================================
   1) PRODUCT CARD ALIGNMENT (SHOP/ARCHIVE LOOPS)
========================================================= */
.woocommerce ul.products li.product {
  display: flex !important;
  flex-direction: column !important;
  height: 100%;
}

/* =========================================================
   2) TITLE AREA (Force 3 lines and align to bottom)
========================================================= */
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  line-height: 1.3em;
  min-height: 3.9em;
  max-height: 3.9em;
  display: flex !important;
  flex-direction: column;
  justify-content: flex-end;
  overflow: hidden;
  text-overflow: ellipsis;
  margin-top: auto !important;
  margin-bottom: 10px;
}

/* =========================================================
   3) BUTTON CONTAINER (Stacking and spacing)
========================================================= */
.woocommerce-loop-product__buttons {
  display: flex;
  flex-direction: column-reverse;
  align-items: stretch;
  margin-top: 12px;
  gap: 4px;
}

/* =========================================================
   4) SHARED BUTTON STYLING
========================================================= */
.woocommerce-loop-product__buttons a.button,
.view-details-button {
  width: 100% !important;
  height: 44px;
  display: flex !important;
  align-items: center;
  justify-content: center;
  margin: 0 !important;
  border-radius: 6px;
  font-weight: 600;
  text-transform: uppercase;
}

/* =========================================================
   5) INDIVIDUAL BUTTON COLORS
========================================================= */
.view-details-button {
  border: 2px solid #0b5ce3 !important;
  color: #0b5ce3 !important;
  background: #ffffff !important;
}

.woocommerce ul.products li.product a.button {
  background-color: #0b5ce3 !important;
  color: #ffffff !important;
}

/* =========================================================
   6) SOLD OUT BUTTON LOGIC (Loop only - safer scope)
========================================================= */
.woocommerce ul.products li.product.outofstock .button {
  background-color: #0b5ce3 !important;
  opacity: 0.5 !important;
  pointer-events: none !important;
  text-indent: -9999px !important;
  position: relative !important;
}

.woocommerce ul.products li.product.outofstock .button::after {
  content: "SOLD OUT";
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  text-indent: 0;
  color: #ffffff;
}

/* =========================================================
   7) HIDE UNWANTED EXTRAS
========================================================= */
.ast-shop-product-out-of-stock,
.moderncart-floating-cart-icon,
#moderncart-floating-cart {
  display: none !important;
}

/* =========================================================
   8) DESKTOP ONLY FIX (Astra summary wrap)
========================================================= */
@media (min-width: 993px) {
  .astra-shop-summary-wrap {
    display: flex;
    flex-direction: column;
    flex-grow: 1;
  }
}

/* =========================================================
   9) SEARCH RESULTS: FORCE GRID LAYOUT (WooCommerce only)
   - Safe: does NOT touch .site-main or all article images
========================================================= */
body.search.search-results.woocommerce ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr);
  gap: 30px;
}

/* Prevent giant images in WooCommerce search product tiles */
body.search.search-results.woocommerce ul.products li.product img {
  width: 100%;
  height: auto;
  max-height: 260px;
  object-fit: contain;
}

/* Remove any full-width stretching on product tiles (search only) */
body.search.search-results.woocommerce ul.products li.product {
  width: 100% !important;
}

@media (max-width: 1024px) {
  body.search.search-results.woocommerce ul.products {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 480px) {
  body.search.search-results.woocommerce ul.products {
    grid-template-columns: repeat(1, 1fr);
  }
}

/* =========================================================
   10) SINGLE PRODUCT PAGE: IMPROVED STACKING LAYOUT
========================================================= */

/* Main wrapper - keep the top section 2 columns */
.single-product div.product {
  display: flex !important;
  flex-wrap: wrap !important; /* Allows items to drop to the next line */
  gap: 40px !important;
}

/* Image on left (50%) */
.single-product div.product div.images,
.single-product div.product .woocommerce-product-gallery {
  width: calc(50% - 20px) !important;
  max-width: 50% !important;
  flex: 0 0 auto !important;
}

/* Summary on right (50%) - Title, Price, Add to Cart */
.single-product div.product .summary {
  width: calc(50% - 20px) !important;
  max-width: 50% !important;
  flex: 0 0 auto !important;
}

/* FORCE DESCRIPTION & TABS TO GO UNDERNEATH (FULL WIDTH) */
.single-product div.product .woocommerce-tabs,
.single-product div.product .woocommerce-product-details__short-description {
  width: 100% !important;
  max-width: 100% !important;
  flex: 1 1 100% !important; /* Forces it to a new row */
  order: 10; /* Ensures it stays below the top info */
  padding-top: 30px;
  border-top: 1px solid #eee; /* Optional: separates the sections */
}

/* FORCE RELATED PRODUCTS TO BOTTOM (FULL WIDTH) */
.single-product div.product .related.products,
.single-product div.product .upsells.products {
  width: 100% !important;
  max-width: 100% !important;
  flex: 1 1 100% !important;
  order: 20;
  margin-top: 50px !important;
}

/* Keep product images from exploding */
.single-product div.product div.images img,
.single-product .woocommerce-product-gallery img {
  max-width: 100% !important;
  height: auto !important;
  max-height: 550px;
  object-fit: contain;
}

/* Mobile responsive - Stack everything */
@media (max-width: 900px) {
  .single-product div.product {
    display: block !important;
  }
  .single-product div.product div.images,
  .single-product div.product .summary {
    width: 100% !important;
    max-width: 100% !important;
    margin-bottom: 20px;
  }
}

/* =========================================================
   11) SINGLE PRODUCT: ALIGN CONTENT WITH IMAGE LEFT EDGE
========================================================= */

.single-product div.product .woocommerce-tabs,
.single-product div.product .related.products,
.single-product div.product .upsells.products,
.single-product div.product .woocommerce-product-details__short-description {
    /* Push from left to align with image edge */
    margin-left: 5% !important; 
    margin-right: auto !important;
    
    /* Control width so it doesn't hit the right side */
    width: 90% !important;
    max-width: 1200px !important;
    
    /* Remove default center-alignments */
    text-align: left !important;
}

/* Ensure the tab buttons (Description/Additional Info) align left */
.woocommerce-tabs ul.tabs {
    display: flex !important;
    justify-content: flex-start !important;
    padding-left: 0 !important;
    margin-left: 0 !important;
}

/* Mobile: Reset margins so it looks good on phones */
@media (max-width: 900px) {
    .single-product div.product .woocommerce-tabs,
    .single-product div.product .related.products {
        margin-left: 0 !important;
        width: 100% !important;
        padding: 0 15px !important;
    }
}.payment_method_bacs label::before {
    content: "";
    display: inline-block;
    background-image: url("https://nuvorislabs.com/wp-content/uploads/2026/02/zelle-bank-logo-transparent-background-7017516947132382weforkqiv.png");
    background-size: contain;
    background-repeat: no-repeat;
    width: 98px;
    height: 38px;
    margin-right: 10px;
    vertical-align: middle;
}