/* Green Upshot Elementor Loop Card Styles v4.9.25
 * Migrated from Elementor template 3814 into the plugin.
 * Elementor should keep structure/classes only; this file owns presentation.
 */

body .elementor-loop-container .gu-product-card {
  --gu-teal: #004653;
  --gu-muted: #829397;
  --gu-line: #EDF2F1;
  --gu-soft: #F4F8F7;
  --gu-brand: #056983;
  --gu-brand-hover: #034F63;

  width: 100% !important;
  min-width: 0 !important;
  height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important;
  background: #FFFFFF !important;
  border: 1px solid var(--gu-line) !important;
  border-radius: 8px !important;
  box-shadow: none !important;
  transition: transform .2s ease, box-shadow .2s ease !important;
}

body .elementor-loop-container .gu-product-card:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 12px 26px rgba(0, 70, 83, .08) !important;
}

body .elementor-loop-container .gu-product-card .gu-product-media {
  position: relative !important;
  flex: 0 0 auto !important;
  width: 100% !important;
  min-height: 0 !important;
  aspect-ratio: 1 / 1 !important;
  overflow: hidden !important;
  background: var(--gu-soft) !important;
}

body .elementor-loop-container .gu-product-card .gu-product-image,
body .elementor-loop-container .gu-product-card .gu-product-image > .elementor-widget-container,
body .elementor-loop-container .gu-product-card .gu-product-image a {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
}

body .elementor-loop-container .gu-product-card .gu-product-image img {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  aspect-ratio: 1 / 1 !important;
  object-fit: cover !important;
  border-radius: 0 !important;
  transition: transform .3s ease !important;
}

body .elementor-loop-container .gu-product-card:hover .gu-product-image img {
  transform: scale(1.03) !important;
}

body .elementor-loop-container .gu-product-card .gu-product-badge {
  position: absolute !important;
  z-index: 5 !important;
  top: 8px !important;
  left: 8px !important;
  width: auto !important;
  max-width: calc(100% - 16px) !important;
  margin: 0 !important;
  padding: 0 !important;
}

body .elementor-loop-container .gu-product-card .gu-product-badge .elementor-heading-title {
  width: auto !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 5px 8px !important;
  overflow: hidden !important;
  border-radius: 4px !important;
  background: #E7F7DF !important;
  color: var(--gu-teal) !important;
  font-family: "Plus Jakarta Sans", sans-serif !important;
  font-size: 9px !important;
  line-height: 1 !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

body .elementor-loop-container .gu-product-card .gu-product-badge .elementor-heading-title:empty {
  display: none !important;
}

body .elementor-loop-container .gu-product-card .gu-product-content {
  display: flex !important;
  flex: 1 1 auto !important;
  flex-direction: column !important;
  gap: 0 !important;
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 11px 10px 10px !important;
  background: #FFFFFF !important;
}

body .elementor-loop-container .gu-product-card .gu-product-content > .elementor-element {
  margin-block-end: 0 !important;
}

body .elementor-loop-container .gu-product-card .gu-product-brand,
body .elementor-loop-container .gu-product-card .gu-product-brand .elementor-widget-container,
body .elementor-loop-container .gu-product-card .gu-product-brand .elementor-shortcode,
body .elementor-loop-container .gu-product-card .gu-product-brand p,
body .elementor-loop-container .gu-product-card .gu-product-brand a {
  margin: 0 !important;
  padding: 0 !important;
  color: #008078 !important;
  font-family: "Plus Jakarta Sans", sans-serif !important;
  font-size: 9px !important;
  line-height: 1.15 !important;
  font-weight: 800 !important;
  letter-spacing: .045em !important;
  text-decoration: none !important;
  text-transform: uppercase !important;
}

body .elementor-loop-container .gu-product-card .gu-product-brand {
  margin-bottom: 5px !important;
}

body .elementor-loop-container .gu-product-card .gu-product-name,
body .elementor-loop-container .gu-product-card .gu-product-name .elementor-widget-container,
body .elementor-loop-container .gu-product-card .gu-product-name h1,
body .elementor-loop-container .gu-product-card .gu-product-name h2,
body .elementor-loop-container .gu-product-card .gu-product-name h3,
body .elementor-loop-container .gu-product-card .gu-product-name a {
  margin: 0 !important;
  padding: 0 !important;
}

body .elementor-loop-container .gu-product-card .gu-product-name h1,
body .elementor-loop-container .gu-product-card .gu-product-name h2,
body .elementor-loop-container .gu-product-card .gu-product-name h3 {
  display: -webkit-box !important;
  width: 100% !important;
  min-height: 0 !important;
  height: auto !important;
  max-height: calc(14px * 1.28 * 2) !important;
  overflow: hidden !important;
  color: var(--gu-teal) !important;
  font-family: "Outfit", sans-serif !important;
  font-size: 14px !important;
  line-height: 1.28 !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
  text-overflow: ellipsis !important;
  white-space: normal !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
}

body .elementor-loop-container .gu-product-card .gu-product-name a {
  color: inherit !important;
  font: inherit !important;
  line-height: inherit !important;
  text-decoration: none !important;
}

body .elementor-loop-container .gu-product-card .gu-product-rating {
  width: 100% !important;
  min-height: 16px !important;
  height: 16px !important;
  margin: 6px 0 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

body .elementor-loop-container .gu-product-card .gu-product-rating .elementor-widget-container,
body .elementor-loop-container .gu-product-card .gu-product-rating .woocommerce-product-rating {
  display: flex !important;
  align-items: center !important;
  gap: 5px !important;
  width: 100% !important;
  min-height: 16px !important;
  height: 16px !important;
  margin: 0 !important;
  padding: 0 !important;
}

body .elementor-loop-container .gu-product-card .gu-product-rating .star-rating,
body .elementor-loop-container .gu-product-card .gu-product-rating .star-rating::before,
body .elementor-loop-container .gu-product-card .gu-product-rating .star-rating span,
body .elementor-loop-container .gu-product-card .gu-product-rating .star-rating span::before {
  font-family: star !important;
}

body .elementor-loop-container .gu-product-card .gu-product-rating .star-rating {
  position: relative !important;
  float: none !important;
  display: inline-block !important;
  flex: 0 0 5.45em !important;
  width: 5.45em !important;
  height: 1em !important;
  margin: 0 !important;
  overflow: hidden !important;
  color: #F5A623 !important;
  font-size: 10px !important;
  line-height: 1 !important;
}

body .elementor-loop-container .gu-product-card .gu-product-rating .star-rating::before {
  color: #D9DEE2 !important;
}

body .elementor-loop-container .gu-product-card .gu-product-rating .star-rating span::before {
  color: #F5A623 !important;
}

body .elementor-loop-container .gu-product-card .gu-product-rating .woocommerce-review-link {
  color: var(--gu-muted) !important;
  font-family: "Plus Jakarta Sans", sans-serif !important;
  font-size: 0 !important;
  line-height: 1 !important;
  text-decoration: none !important;
}

body .elementor-loop-container .gu-product-card .gu-product-rating
.woocommerce-review-link .count {
  display: inline-block !important;
  color: var(--gu-muted) !important;
  font-family: "Plus Jakarta Sans", sans-serif !important;
  font-size: 10px !important;
  line-height: 1 !important;
  font-weight: 500 !important;
}

body .elementor-loop-container .gu-product-card .gu-product-rating
.woocommerce-review-link .count::before {
  content: "(";
}

body .elementor-loop-container .gu-product-card .gu-product-rating
.woocommerce-review-link .count::after {
  content: ")";
}

body .elementor-loop-container .gu-product-card .gu-product-bottom {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 8px !important;
  width: 100% !important;
  min-width: 0 !important;
  margin: auto 0 0 !important;
  padding: 13px 0 0 !important;
}

body .elementor-loop-container .gu-product-card .gu-product-bottom >
.elementor-widget-shortcode {
  margin: 0 !important;
}

body .elementor-loop-container .gu-product-card .gu-loop-price-widget,
body .elementor-loop-container .gu-product-card .gu-loop-price-widget .elementor-widget-container,
body .elementor-loop-container .gu-product-card .gu-loop-price-widget .elementor-shortcode,
body .elementor-loop-container .gu-product-card .gu-loop-card-price {
  margin: 0 !important;
  padding: 0 !important;
}

body .elementor-loop-container .gu-product-card .gu-loop-price-widget {
  flex: 1 1 auto !important;
  min-width: 0 !important;
}

body .elementor-loop-container .gu-product-card .gu-loop-card-price {
  display: inline-flex !important;
  align-items: baseline !important;
  flex-wrap: nowrap !important;
  gap: 0 !important;
  color: var(--gu-teal) !important;
  font-family: "Outfit", sans-serif !important;
  font-size: 17px !important;
  line-height: 1 !important;
  font-weight: 800 !important;
  white-space: nowrap !important;
}

body .elementor-loop-container .gu-product-card .gu-loop-card-price .gu-card-current-price {
  color: var(--gu-teal) !important;
  font-size: 17px !important;
  line-height: 1 !important;
  font-weight: 800 !important;
}

body .elementor-loop-container .gu-product-card .gu-loop-card-price .gu-card-old-price {
  margin-left: 5px !important;
  color: #9AA7AA !important;
  font-size: 12px !important;
  line-height: 1 !important;
  font-weight: 500 !important;
}

body .elementor-loop-container .gu-product-card .gu-loop-price-on-request {
  display: block !important;
  color: var(--gu-teal) !important;
  font-family: "Outfit", sans-serif !important;
  font-size: 14px !important;
  line-height: 1.2 !important;
  font-weight: 600 !important;
  white-space: normal !important;
}

body .elementor-loop-container .gu-product-card .gu-add-button,
body .elementor-loop-container .gu-product-card .gu-add-button .elementor-widget-container,
body .elementor-loop-container .gu-product-card .gu-add-button .elementor-shortcode {
  flex: 0 0 auto !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
}

body .elementor-loop-container .gu-product-card .gu-add-button .gu-card-variant-control {
  display: inline-flex !important;
  flex: 0 0 auto !important;
  width: auto !important;
  min-width: 0 !important;
  margin: 0 !important;
}

body .elementor-loop-container .gu-product-card .gu-loop-card-action,
body .elementor-loop-container .gu-product-card .gu-card-view-action,
body .elementor-loop-container .gu-product-card .gu-card-quote-action,
body .elementor-loop-container .gu-product-card .gu-card-variant-control .gu-card-choose-button {
  appearance: none !important;
  display: inline-flex !important;
  flex: 0 0 auto !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  min-width: 58px !important;
  max-width: none !important;
  height: 30px !important;
  min-height: 30px !important;
  margin: 0 !important;
  padding: 0 10px !important;
  border: 0 !important;
  border-radius: 4px !important;
  background: var(--gu-brand) !important;
  color: #FFFFFF !important;
  box-shadow: none !important;
  font-family: "Outfit", sans-serif !important;
  font-size: 11px !important;
  line-height: 1 !important;
  font-weight: 700 !important;
  text-align: center !important;
  text-decoration: none !important;
  white-space: nowrap !important;
}

body .elementor-loop-container .gu-product-card .gu-loop-card-action:hover,
body .elementor-loop-container .gu-product-card .gu-card-view-action:hover,
body .elementor-loop-container .gu-product-card .gu-card-quote-action:hover,
body .elementor-loop-container .gu-product-card .gu-card-variant-control
.gu-card-choose-button:hover {
  background: var(--gu-brand-hover) !important;
  color: #FFFFFF !important;
}

@media (max-width: 767px) {
  body .elementor-loop-container .gu-product-card .gu-product-content {
    align-items: stretch !important;
    gap: 6px !important;
    padding: 10px 9px 9px !important;
    text-align: left !important;
  }

  body .elementor-loop-container .gu-product-card .gu-product-brand,
  body .elementor-loop-container .gu-product-card .gu-product-brand .elementor-widget-container,
  body .elementor-loop-container .gu-product-card .gu-product-brand .elementor-shortcode,
  body .elementor-loop-container .gu-product-card .gu-product-brand p,
  body .elementor-loop-container .gu-product-card .gu-product-brand a {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 8px !important;
    text-align: left !important;
  }

  body .elementor-loop-container .gu-product-card .gu-product-name,
  body .elementor-loop-container .gu-product-card .gu-product-name .elementor-widget-container,
  body .elementor-loop-container .gu-product-card .gu-product-name h1,
  body .elementor-loop-container .gu-product-card .gu-product-name h2,
  body .elementor-loop-container .gu-product-card .gu-product-name h3,
  body .elementor-loop-container .gu-product-card .gu-product-name a {
    margin: 0 !important;
    padding: 0 !important;
    text-align: left !important;
  }

  body .elementor-loop-container .gu-product-card .gu-product-name h1,
  body .elementor-loop-container .gu-product-card .gu-product-name h2,
  body .elementor-loop-container .gu-product-card .gu-product-name h3 {
    width: 100% !important;
    min-height: 0 !important;
    height: auto !important;
    max-height: 2.56em !important;
    font-size: 12px !important;
    line-height: 1.28 !important;
  }

  body .elementor-loop-container .gu-product-card .gu-product-rating {
    width: 100% !important;
    min-height: 14px !important;
    height: 14px !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body .elementor-loop-container .gu-product-card .gu-product-rating .elementor-widget-container,
  body .elementor-loop-container .gu-product-card .gu-product-rating .woocommerce-product-rating {
    gap: 3px !important;
    min-height: 14px !important;
    height: 14px !important;
  }

  body .elementor-loop-container .gu-product-card .gu-product-rating .star-rating {
    font-size: 9px !important;
  }

  body .elementor-loop-container .gu-product-card .gu-product-rating
  .woocommerce-review-link .count {
    font-size: 8px !important;
  }

  body .elementor-loop-container .gu-product-card .gu-product-bottom {
    display: flex !important;
    flex: 1 1 auto !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: 12px !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body .elementor-loop-container .gu-product-card .gu-loop-price-widget,
  body .elementor-loop-container .gu-product-card .gu-loop-price-widget .elementor-widget-container,
  body .elementor-loop-container .gu-product-card .gu-loop-price-widget .elementor-shortcode,
  body .elementor-loop-container .gu-product-card .gu-loop-card-price {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: left !important;
  }

  body .elementor-loop-container .gu-product-card .gu-loop-card-price,
  body .elementor-loop-container .gu-product-card .gu-loop-card-price .gu-card-current-price {
    font-size: 15px !important;
  }

  body .elementor-loop-container .gu-product-card .gu-loop-card-price .gu-card-old-price {
    margin-left: 5px !important;
    font-size: 10px !important;
  }

  body .elementor-loop-container .gu-product-card .gu-loop-price-on-request {
    font-size: 13px !important;
    line-height: 1.2 !important;
    font-weight: 600 !important;
  }

  body .elementor-loop-container .gu-product-card .gu-add-button,
  body .elementor-loop-container .gu-product-card .gu-add-button .elementor-widget-container,
  body .elementor-loop-container .gu-product-card .gu-add-button .elementor-shortcode {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: auto 0 0 !important;
    padding: 0 !important;
  }

  body .elementor-loop-container .gu-product-card .gu-add-button .gu-card-variant-control {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
  }

  body .elementor-loop-container .gu-product-card .gu-loop-card-action,
  body .elementor-loop-container .gu-product-card .gu-card-view-action,
  body .elementor-loop-container .gu-product-card .gu-card-quote-action,
  body .elementor-loop-container .gu-product-card .gu-card-variant-control
  .gu-card-choose-button {
    align-self: center !important;
    width: auto !important;
    min-width: 130px !important;
    max-width: calc(100% - 4px) !important;
    height: 36px !important;
    min-height: 36px !important;
    margin: auto auto 0 !important;
    padding: 0 18px !important;
    font-size: 12px !important;
  }
}


/* V12 — always-visible Loop Card rating row */
body .elementor-loop-container .gu-product-card .gu-product-rating-widget,
body .elementor-loop-container .gu-product-card .gu-product-rating-widget .elementor-widget-container,
body .elementor-loop-container .gu-product-card .gu-product-rating-widget .elementor-shortcode {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

body .elementor-loop-container .gu-product-card .gu-product-rating .gu-rating-text {
  display: inline-block !important;
  flex: 0 0 auto !important;
  margin: 0 !important;
  padding: 0 !important;

  color: var(--gu-muted) !important;
  font-family: "Plus Jakarta Sans", sans-serif !important;
  font-size: 10px !important;
  line-height: 1 !important;
  font-weight: 500 !important;
  white-space: nowrap !important;
}

body .elementor-loop-container .gu-product-card .gu-product-rating .gu-empty-star-rating span {
  width: 0 !important;
}

@media (max-width: 767px) {
  body .elementor-loop-container .gu-product-card .gu-product-rating .gu-rating-text {
    font-size: 8px !important;
  }
}


/* =========================================================
   V13 — COMPLETE RATING GLYPH VISIBILITY
   ========================================================= */

body .elementor-loop-container .gu-product-card .gu-product-rating-widget,
body .elementor-loop-container .gu-product-card .gu-product-rating-widget .elementor-widget-container,
body .elementor-loop-container .gu-product-card .gu-product-rating-widget .elementor-shortcode {
  min-height: 19px !important;
  height: 19px !important;
  overflow: visible !important;
}

body .elementor-loop-container .gu-product-card .gu-product-rating {
  display: flex !important;
  align-items: center !important;

  min-height: 19px !important;
  height: 19px !important;
  margin: 6px 0 0 !important;
  padding: 1px 0 !important;

  overflow: visible !important;
  line-height: 1 !important;
}

body .elementor-loop-container .gu-product-card .gu-product-rating .star-rating {
  position: relative !important;

  height: 1.15em !important;
  min-height: 1.15em !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;

  font-size: 10px !important;
  line-height: 1.15 !important;
}

body .elementor-loop-container .gu-product-card .gu-product-rating .star-rating::before,
body .elementor-loop-container .gu-product-card .gu-product-rating .star-rating span::before {
  top: 0 !important;
  line-height: 1.15 !important;
}

body .elementor-loop-container .gu-product-card .gu-product-rating
.gu-empty-star-rating::before {
  color: #F5A623 !important;
  opacity: 1 !important;
}

body .elementor-loop-container .gu-product-card .gu-product-rating
.gu-empty-star-rating span {
  width: 0 !important;
}

@media (max-width: 767px) {
  body .elementor-loop-container .gu-product-card .gu-product-rating-widget,
  body .elementor-loop-container .gu-product-card .gu-product-rating-widget .elementor-widget-container,
  body .elementor-loop-container .gu-product-card .gu-product-rating-widget .elementor-shortcode,
  body .elementor-loop-container .gu-product-card .gu-product-rating {
    min-height: 17px !important;
    height: 17px !important;
  }

  body .elementor-loop-container .gu-product-card .gu-product-rating {
    margin: 0 !important;
    padding: 1px 0 !important;
  }

  body .elementor-loop-container .gu-product-card .gu-product-rating .star-rating {
    height: 1.15em !important;
    min-height: 1.15em !important;
    font-size: 9px !important;
    line-height: 1.15 !important;
  }
}


/* =========================================================
   V14 — WHOLE LOOP CARD LINK + RUNNING LOW + BOTTOM ACTION
   ========================================================= */

body .elementor-loop-container .gu-product-card {
  position: relative !important;
  isolation: isolate !important;
  height: 100% !important;
  min-height: 100% !important;
}

body .elementor-loop-container .gu-product-card > .gu-card-link-widget {
  position: absolute !important;
  z-index: 3 !important;
  inset: 0 !important;

  width: 100% !important;
  height: 100% !important;

  margin: 0 !important;
  padding: 0 !important;
}

body .elementor-loop-container .gu-product-card > .gu-card-link-widget .elementor-widget-container,
body .elementor-loop-container .gu-product-card > .gu-card-link-widget .elementor-shortcode {
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

body .elementor-loop-container .gu-product-card .gu-card-stretched-link {
  position: absolute !important;
  inset: 0 !important;

  display: block !important;
  width: 100% !important;
  height: 100% !important;

  margin: 0 !important;
  padding: 0 !important;

  border: 0 !important;
  background: transparent !important;
  text-decoration: none !important;
}

body .elementor-loop-container .gu-product-card .gu-product-badge-widget {
  position: absolute !important;
  z-index: 7 !important;
  top: 8px !important;
  left: 8px !important;

  width: auto !important;
  max-width: calc(100% - 16px) !important;

  margin: 0 !important;
  padding: 0 !important;
  pointer-events: none !important;
}

body .elementor-loop-container .gu-product-card .gu-product-badge-widget .elementor-widget-container,
body .elementor-loop-container .gu-product-card .gu-product-badge-widget .elementor-shortcode {
  width: auto !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

body .elementor-loop-container .gu-product-card .gu-product-badge-label.gu-badge-running-low {
  border-radius: 999px !important;
  background: #004653 !important;
  color: #FFFFFF !important;
}

body .elementor-loop-container .gu-product-card .gu-add-button,
body .elementor-loop-container .gu-product-card .gu-loop-card-action,
body .elementor-loop-container .gu-product-card .gu-card-variant-control,
body .elementor-loop-container .gu-product-card .gu-card-view-action,
body .elementor-loop-container .gu-product-card .gu-card-quote-action,
body .elementor-loop-container .gu-product-card .gu-card-sold-out-action {
  position: relative !important;
  z-index: 8 !important;
}

body .elementor-loop-container .gu-product-card .gu-card-variation-panel {
  z-index: 60 !important;
}

body .elementor-loop-container .gu-product-card .gu-product-content {
  display: flex !important;
  flex: 1 1 auto !important;
  flex-direction: column !important;
  min-height: 0 !important;
}

body .elementor-loop-container .gu-product-card .gu-product-bottom {
  display: flex !important;
  flex: 1 1 auto !important;
  flex-direction: column !important;
  align-items: stretch !important;
  justify-content: flex-start !important;

  min-height: 0 !important;
  margin-top: 6px !important;
  padding-top: 0 !important;
}

body .elementor-loop-container .gu-product-card .gu-loop-price-widget {
  flex: 0 0 auto !important;
  margin: 0 !important;
}

body .elementor-loop-container .gu-product-card .gu-add-button {
  flex: 0 0 auto !important;
  margin-top: auto !important;
  padding-top: 10px !important;
}

@media (min-width: 768px) {
  body .elementor-loop-container .gu-product-card .gu-product-bottom {
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 8px !important;

    margin-top: auto !important;
    padding-top: 13px !important;
  }

  body .elementor-loop-container .gu-product-card .gu-add-button {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }
}

@media (max-width: 767px) {
  body .elementor-loop-container .gu-product-card .gu-product-badge-widget {
    top: 6px !important;
    left: 6px !important;
    max-width: calc(100% - 12px) !important;
  }

  body .elementor-loop-container .gu-product-card .gu-product-bottom {
    flex: 1 1 auto !important;
    gap: 0 !important;
    margin-top: 6px !important;
    padding-top: 0 !important;
  }

  body .elementor-loop-container .gu-product-card .gu-add-button {
    width: 100% !important;
    margin-top: auto !important;
    padding-top: 10px !important;
  }
}


/* =========================================================
   V4.9.25 — AUTHORITATIVE TITLE + RATING LAYER
   Natural title height; one-line titles do not reserve line two.
   Five outlined base stars and one clipped filled layer occupy the
   same coordinates, so the row can never render as 10 stars.
   ========================================================= */

body .elementor-loop-container .gu-product-card .gu-product-content {
  gap: 0 !important;
}

body .elementor-loop-container .gu-product-card .gu-product-name,
body .elementor-loop-container .gu-product-card .gu-product-name .elementor-widget-container {
  min-height: 0 !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
}

body .elementor-loop-container .gu-product-card .gu-product-name h1,
body .elementor-loop-container .gu-product-card .gu-product-name h2,
body .elementor-loop-container .gu-product-card .gu-product-name h3,
body .elementor-loop-container .gu-product-card .gu-product-name .elementor-heading-title {
  display: -webkit-box !important;
  width: 100% !important;
  min-height: 0 !important;
  height: auto !important;
  max-height: 2.56em !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  white-space: normal !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
}

body .elementor-loop-container .gu-product-card .gu-product-rating-widget,
body .elementor-loop-container .gu-product-card .gu-product-rating-widget .elementor-widget-container,
body .elementor-loop-container .gu-product-card .gu-product-rating-widget .elementor-shortcode {
  width: 100% !important;
  min-height: 0 !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
}

body .elementor-loop-container .gu-product-card .gu-product-rating {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 5px !important;
  width: 100% !important;
  min-height: 14px !important;
  height: auto !important;
  margin: 5px 0 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

body .elementor-loop-container .gu-product-card .gu-card-rating-stars {
  --gu-card-rating-fill: 0%;
  position: relative !important;
  display: inline-block !important;
  flex: 0 0 5.28em !important;
  width: 5.28em !important;
  height: 1.08em !important;
  min-width: 5.28em !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  vertical-align: middle !important;
  font-family: Arial, Helvetica, sans-serif !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  letter-spacing: .02em !important;
  white-space: nowrap !important;
}

body .elementor-loop-container .gu-product-card .gu-card-star-base,
body .elementor-loop-container .gu-product-card .gu-card-star-fill {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  display: block !important;
  height: 1.08em !important;
  margin: 0 !important;
  padding: 0 !important;
  font: inherit !important;
  line-height: 1 !important;
  letter-spacing: inherit !important;
  white-space: nowrap !important;
  pointer-events: none !important;
}

body .elementor-loop-container .gu-product-card .gu-card-star-base {
  width: 100% !important;
  overflow: visible !important;
  color: transparent !important;
  -webkit-text-stroke: .8px #F5A623 !important;
  text-stroke: .8px #F5A623 !important;
}

body .elementor-loop-container .gu-product-card .gu-card-star-fill {
  width: var(--gu-card-rating-fill) !important;
  max-width: 100% !important;
  overflow: hidden !important;
  color: #F5A623 !important;
  -webkit-text-stroke: 0 transparent !important;
}

body .elementor-loop-container .gu-product-card .gu-rating-text {
  display: inline-block !important;
  flex: 0 0 auto !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #829397 !important;
  font-family: "Plus Jakarta Sans", sans-serif !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

@media (max-width: 767px) {
  body .elementor-loop-container .gu-product-card .gu-product-content {
    gap: 0 !important;
  }

  body .elementor-loop-container .gu-product-card .gu-product-brand {
    margin-bottom: 4px !important;
  }

  body .elementor-loop-container .gu-product-card .gu-product-rating {
    gap: 3px !important;
    min-height: 13px !important;
    margin-top: 4px !important;
  }

  body .elementor-loop-container .gu-product-card .gu-card-rating-stars {
    flex-basis: 5.28em !important;
    width: 5.28em !important;
    min-width: 5.28em !important;
    font-size: 10.5px !important;
  }

  body .elementor-loop-container .gu-product-card .gu-rating-text {
    font-size: 8px !important;
  }
}

/* =========================================================
   V4.9.30 — MATCH APPROVED NZ LOOP RHYTHM + STAR SCALE
   -----------------------------------------------------------------
   Keep the inline-height-immune title behavior from V4.9.29, but
   match the approved .co.nz catalogue rhythm:
   - natural one/two-line title height
   - 6px title -> rating spacing
   - compact 9px stars on desktop and mobile
   - five identical 1em star boxes with 1px internal gaps
   ========================================================= */

html body .elementor-loop-container .e-loop-item .gu-product-card .gu-product-name,
html body .e-loop-item .gu-product-card .gu-product-name {
  display: block !important;
  flex: 0 0 auto !important;
  min-height: 0 !important;
  height: auto !important;
  margin: 0 0 8px 0 !important;
  padding: 0 !important;
  overflow: visible !important;
}

html body .elementor-loop-container .e-loop-item .gu-product-card .gu-product-name > .elementor-widget-container,
html body .e-loop-item .gu-product-card .gu-product-name > .elementor-widget-container {
  display: block !important;
  width: 100% !important;
  min-height: 0 !important;
  height: auto !important;
  max-height: calc(14px * 1.28 * 2) !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  font-family: "Outfit", sans-serif !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 1.28 !important;
}

/* Legacy inline fixed heights on the Elementor heading are inert because
   the heading itself is inline; the widget container above owns the crop. */
html body .elementor-loop-container .e-loop-item .gu-product-card .gu-product-name .elementor-heading-title,
html body .elementor-loop-container .e-loop-item .gu-product-card .gu-product-name h1,
html body .elementor-loop-container .e-loop-item .gu-product-card .gu-product-name h2,
html body .elementor-loop-container .e-loop-item .gu-product-card .gu-product-name h3,
html body .e-loop-item .gu-product-card .gu-product-name .elementor-heading-title,
html body .e-loop-item .gu-product-card .gu-product-name h1,
html body .e-loop-item .gu-product-card .gu-product-name h2,
html body .e-loop-item .gu-product-card .gu-product-name h3 {
  display: inline !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  color: var(--gu-teal, #004653) !important;
  font-family: "Outfit", sans-serif !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 1.28 !important;
  letter-spacing: 0 !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  -webkit-box-orient: initial !important;
  -webkit-line-clamp: initial !important;
}

html body .elementor-loop-container .e-loop-item .gu-product-card .gu-product-name a,
html body .e-loop-item .gu-product-card .gu-product-name a {
  color: inherit !important;
  font: inherit !important;
  line-height: inherit !important;
  text-decoration: none !important;
}

/* Rating row: same compact dimensions as the approved NZ cards. */
html body .elementor-loop-container .e-loop-item .gu-product-card .gu-product-rating-widget,
html body .e-loop-item .gu-product-card .gu-product-rating-widget,
html body .elementor-loop-container .e-loop-item .gu-product-card .gu-product-rating-widget > .elementor-widget-container,
html body .elementor-loop-container .e-loop-item .gu-product-card .gu-product-rating-widget .elementor-shortcode,
html body .e-loop-item .gu-product-card .gu-product-rating-widget > .elementor-widget-container,
html body .e-loop-item .gu-product-card .gu-product-rating-widget .elementor-shortcode {
  display: block !important;
  flex: 0 0 auto !important;
  width: 100% !important;
  min-height: 17px !important;
  height: 17px !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
}

html body .elementor-loop-container .e-loop-item .gu-product-card .gu-product-rating,
html body .e-loop-item .gu-product-card .gu-product-rating {
  display: flex !important;
  flex: 0 0 auto !important;
  align-items: center !important;
  justify-content: flex-start !important;
  flex-wrap: nowrap !important;
  gap: 5px !important;
  width: 100% !important;
  min-height: 17px !important;
  height: 17px !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  color: #829397 !important;
  font-family: "Plus Jakarta Sans", sans-serif !important;
  font-size: 10px !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

/* Exact NZ-scale star renderer: 9px wrapper, five equal 1em boxes. */
html body .elementor-loop-container .e-loop-item .gu-product-card .gu-card-rating-stars,
html body .e-loop-item .gu-product-card .gu-card-rating-stars {
  display: inline-flex !important;
  align-items: center !important;
  flex: 0 0 auto !important;
  gap: 1px !important;
  width: auto !important;
  min-width: 0 !important;
  height: 1em !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  font-family: Arial, sans-serif !important;
  font-size: 9px !important;
  font-style: normal !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
  vertical-align: middle !important;
  white-space: nowrap !important;
}

html body .elementor-loop-container .e-loop-item .gu-product-card .gu-card-consistent-star,
html body .e-loop-item .gu-product-card .gu-card-consistent-star {
  position: relative !important;
  display: inline-block !important;
  flex: 0 0 1em !important;
  width: 1em !important;
  min-width: 1em !important;
  max-width: 1em !important;
  height: 1em !important;
  min-height: 1em !important;
  max-height: 1em !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  font: inherit !important;
  line-height: 1 !important;
}

html body .elementor-loop-container .e-loop-item .gu-product-card .gu-card-star-base,
html body .elementor-loop-container .e-loop-item .gu-product-card .gu-card-star-fill,
html body .e-loop-item .gu-product-card .gu-card-star-base,
html body .e-loop-item .gu-product-card .gu-card-star-fill {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  display: block !important;
  height: 1em !important;
  min-height: 1em !important;
  max-height: 1em !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  font: inherit !important;
  font-size: 1em !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
  white-space: nowrap !important;
  transform: none !important;
  pointer-events: none !important;
}

/* Empty state: amber outline of the SAME star box used for filled stars. */
html body .elementor-loop-container .e-loop-item .gu-product-card .gu-card-star-base,
html body .e-loop-item .gu-product-card .gu-card-star-base {
  width: 100% !important;
  color: transparent !important;
  -webkit-text-stroke: .75px #F5A623 !important;
  text-stroke: .75px #F5A623 !important;
  opacity: 1 !important;
}

html body .elementor-loop-container .e-loop-item .gu-product-card .gu-card-star-fill,
html body .e-loop-item .gu-product-card .gu-card-star-fill {
  color: #F5A623 !important;
  -webkit-text-stroke: 0 transparent !important;
  text-stroke: 0 transparent !important;
}

html body .elementor-loop-container .e-loop-item .gu-product-card .gu-rating-text,
html body .e-loop-item .gu-product-card .gu-rating-text {
  display: inline-block !important;
  flex: 0 0 auto !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #829397 !important;
  font-family: "Plus Jakarta Sans", sans-serif !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

@media (max-width: 767px) {
  html body .elementor-loop-container .e-loop-item .gu-product-card .gu-product-name,
  html body .e-loop-item .gu-product-card .gu-product-name {
    margin-bottom: 6px !important;
  }

  html body .elementor-loop-container .e-loop-item .gu-product-card .gu-product-name > .elementor-widget-container,
  html body .e-loop-item .gu-product-card .gu-product-name > .elementor-widget-container {
    max-height: calc(12px * 1.28 * 2) !important;
    font-size: 12px !important;
    line-height: 1.28 !important;
  }

  html body .elementor-loop-container .e-loop-item .gu-product-card .gu-product-name .elementor-heading-title,
  html body .elementor-loop-container .e-loop-item .gu-product-card .gu-product-name h1,
  html body .elementor-loop-container .e-loop-item .gu-product-card .gu-product-name h2,
  html body .elementor-loop-container .e-loop-item .gu-product-card .gu-product-name h3,
  html body .e-loop-item .gu-product-card .gu-product-name .elementor-heading-title,
  html body .e-loop-item .gu-product-card .gu-product-name h1,
  html body .e-loop-item .gu-product-card .gu-product-name h2,
  html body .e-loop-item .gu-product-card .gu-product-name h3 {
    font-size: 12px !important;
    line-height: 1.28 !important;
  }

  html body .elementor-loop-container .e-loop-item .gu-product-card .gu-product-rating-widget,
  html body .e-loop-item .gu-product-card .gu-product-rating-widget,
  html body .elementor-loop-container .e-loop-item .gu-product-card .gu-product-rating-widget > .elementor-widget-container,
  html body .elementor-loop-container .e-loop-item .gu-product-card .gu-product-rating-widget .elementor-shortcode,
  html body .e-loop-item .gu-product-card .gu-product-rating-widget > .elementor-widget-container,
  html body .e-loop-item .gu-product-card .gu-product-rating-widget .elementor-shortcode,
  html body .elementor-loop-container .e-loop-item .gu-product-card .gu-product-rating,
  html body .e-loop-item .gu-product-card .gu-product-rating {
    min-height: 14px !important;
    height: 14px !important;
  }

  html body .elementor-loop-container .e-loop-item .gu-product-card .gu-product-rating,
  html body .e-loop-item .gu-product-card .gu-product-rating {
    gap: 3px !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* NZ keeps the same compact star size on mobile. */
  html body .elementor-loop-container .e-loop-item .gu-product-card .gu-card-rating-stars,
  html body .e-loop-item .gu-product-card .gu-card-rating-stars {
    font-size: 9px !important;
  }

  html body .elementor-loop-container .e-loop-item .gu-product-card .gu-rating-text,
  html body .e-loop-item .gu-product-card .gu-rating-text {
    font-size: 8px !important;
  }
}


/* =========================================================
   V4.9.31 — EXACT FRACTIONAL STARS + TRUE TWO-LINE ELLIPSIS
   ---------------------------------------------------------
   Final authoritative layer for .co loop cards.
   - rating fill is exact: 4.8 = 80% of star 5, 4.9 = 90%
   - empty/full stars remain the same compact NZ size
   - titles clamp at two lines with a real ellipsis
   - legacy inline heading heights remain inert because the heading is inline
   ========================================================= */

/* The widget container owns the two-line clamp. Since the heading itself is
   inline, legacy inline height/min-height/max-height declarations on the h3
   cannot reserve a fake second line. */
html body .elementor-loop-container .e-loop-item .gu-product-card .gu-product-name > .elementor-widget-container,
html body .e-loop-item .gu-product-card .gu-product-name > .elementor-widget-container {
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
  line-clamp: 2 !important;
  width: 100% !important;
  min-height: 0 !important;
  height: auto !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: normal !important;
}

html body .elementor-loop-container .e-loop-item .gu-product-card .gu-product-name .elementor-heading-title,
html body .elementor-loop-container .e-loop-item .gu-product-card .gu-product-name h1,
html body .elementor-loop-container .e-loop-item .gu-product-card .gu-product-name h2,
html body .elementor-loop-container .e-loop-item .gu-product-card .gu-product-name h3,
html body .e-loop-item .gu-product-card .gu-product-name .elementor-heading-title,
html body .e-loop-item .gu-product-card .gu-product-name h1,
html body .e-loop-item .gu-product-card .gu-product-name h2,
html body .e-loop-item .gu-product-card .gu-product-name h3 {
  display: inline !important;
  width: auto !important;
  min-height: 0 !important;
  height: auto !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  white-space: normal !important;
  text-overflow: clip !important;
  -webkit-line-clamp: initial !important;
  -webkit-box-orient: initial !important;
}

/* The per-star CSS variable is written by PHP. This deliberately overrides
   the older V4.9.25 --gu-card-rating-fill rule that was forcing rated stars
   back to 0%. */
html body .elementor-loop-container .e-loop-item .gu-product-card .gu-card-consistent-star .gu-card-star-fill,
html body .e-loop-item .gu-product-card .gu-card-consistent-star .gu-card-star-fill {
  width: var(--gu-star-fill, 0%) !important;
  max-width: 100% !important;
  overflow: hidden !important;
}

@media (max-width: 767px) {
  html body .elementor-loop-container .e-loop-item .gu-product-card .gu-product-name > .elementor-widget-container,
  html body .e-loop-item .gu-product-card .gu-product-name > .elementor-widget-container {
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 2 !important;
    line-clamp: 2 !important;
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
}

/* =========================================================
   V4.9.32 — HARD TWO-LINE TITLE CLAMP ONLY
   ---------------------------------------------------------
   Do not alter ratings, stars, card spacing, badges or actions.
   Elementor can place fixed inline height values on the heading wrapper.
   Make that wrapper layout-transparent and clamp the actual linked title,
   which is the element that owns the text in the WooCommerce title widget.
   ========================================================= */

html body .elementor-loop-container .e-loop-item .gu-product-card .gu-product-name .elementor-heading-title,
html body .elementor-loop-container .e-loop-item .gu-product-card .gu-product-name h1,
html body .elementor-loop-container .e-loop-item .gu-product-card .gu-product-name h2,
html body .elementor-loop-container .e-loop-item .gu-product-card .gu-product-name h3,
html body .e-loop-item .gu-product-card .gu-product-name .elementor-heading-title,
html body .e-loop-item .gu-product-card .gu-product-name h1,
html body .e-loop-item .gu-product-card .gu-product-name h2,
html body .e-loop-item .gu-product-card .gu-product-name h3 {
  display: contents !important;
}

html body .elementor-loop-container .e-loop-item .gu-product-card .gu-product-name a,
html body .e-loop-item .gu-product-card .gu-product-name a {
  display: -webkit-box !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  height: auto !important;
  max-height: 2.56em !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: normal !important;
  overflow-wrap: break-word !important;
  word-break: normal !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
  line-clamp: 2 !important;
}

/* If Elementor ever outputs an unlinked loop title, the widget container
   remains the fallback two-line crop. */
html body .elementor-loop-container .e-loop-item .gu-product-card .gu-product-name > .elementor-widget-container,
html body .e-loop-item .gu-product-card .gu-product-name > .elementor-widget-container {
  max-height: 2.56em !important;
  overflow: hidden !important;
}
