/* =========================================================
   GREEN UPSHOT CARD SYSTEM 1.0.13
   ONE VISUAL AUTHORITY
   Contexts: Elementor Loop + Custom Shop Archive + Related Carousel
   ========================================================= */

:root {
  --gu-card-teal: #004653;
  --gu-card-brand: #056983;
  --gu-card-brand-hover: #034f63;
  --gu-card-aqua: #008f8a;
  --gu-card-muted: #829397;
  --gu-card-line: #edf2f1;
  --gu-card-soft: #f4f8f7;
  --gu-card-star: #F5A623;
  --gu-card-old: #9AA7AA;
  --gu-card-space-category-title: 6px;
  --gu-card-space-title-rating: 10px;
  --gu-card-space-rating-price: 12px;
}

/* ---------- Shared shell ---------- */
.gu-product-card,
.single-product .gu-related-carousel-section .gu-rel-card {
  position: relative !important;
  isolation: isolate !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  background: #fff !important;
  border: 1px solid var(--gu-card-line) !important;
  border-radius: 9px !important;
  box-shadow: none !important;
  transition: transform .2s ease, box-shadow .2s ease !important;
}
.gu-product-card:hover,
.single-product .gu-related-carousel-section .gu-rel-card:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 12px 26px rgba(0,70,83,.08) !important;
}

/* Elementor wrappers must not create a second layout authority. */
.elementor-loop-container .e-loop-item,
.elementor-loop-container .e-loop-item > .elementor-element,
.e-loop-item .gu-product-card { min-height: 100% !important; }
.gu-product-card > .elementor-element,
.gu-product-card .elementor-widget,
.gu-product-card .elementor-widget-container { margin: 0 !important; }

/* ---------- Media ---------- */
.gu-product-media,
.single-product .gu-related-carousel-section .gu-rel-media {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  isolation: isolate !important;
  background: var(--gu-card-soft) !important;
}
.gu-product-image,
.gu-product-image .elementor-widget-container,
.single-product .gu-related-carousel-section .gu-rel-image {
  display: block !important;
  width: 100% !important;
  aspect-ratio: 1/1 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}
.gu-product-image img,
.single-product .gu-related-carousel-section .gu-rel-image img,
.single-product .gu-related-carousel-section img.gu-rel-image-file {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  aspect-ratio: 1/1 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  object-fit: cover !important;
  transition: opacity .18s ease, transform .3s ease !important;
}
.gu-product-card:hover .gu-product-image img,
.single-product .gu-related-carousel-section .gu-rel-card:hover .gu-rel-image img { transform: scale(1.03) !important; }
.gu-card-image-switching { opacity: .18 !important; }

/* ---------- Badge ---------- */
.gu-product-badge,
.gu-product-badge-label,
.single-product .gu-related-carousel-section .gu-rel-badge {
  position: absolute !important;
  z-index: 7 !important;
  top: 8px !important;
  left: 8px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  max-width: calc(100% - 16px) !important;
  margin: 0 !important;
  padding: 5px 8px !important;
  overflow: hidden !important;
  border: 0 !important;
  border-radius: 4px !important;
  background: #e7f7df !important;
  color: var(--gu-card-teal) !important;
  font: 800 9px/1 "Plus Jakarta Sans",sans-serif !important;
  text-transform: uppercase !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  pointer-events: none !important;
}
.gu-product-badge.gu-badge-running-low,
.gu-product-badge-label.gu-badge-running-low,
.single-product .gu-related-carousel-section .gu-rel-badge.gu-badge-running-low {
  border-radius: 999px !important;
  background: var(--gu-card-teal) !important;
  color: #fff !important;
}

/* ---------- Content ---------- */
.gu-product-content,
.single-product .gu-related-carousel-section .gu-rel-content {
  display: flex !important;
  flex: 1 1 auto !important;
  flex-direction: column !important;
  align-items: stretch !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 11px 10px 10px !important;
  gap: 0 !important;
  background: #fff !important;
  text-align: left !important;
}

/* Category / brand */
.gu-product-brand,
.gu-product-category,
.single-product .gu-related-carousel-section .gu-rel-brand,
.single-product .gu-related-carousel-section .gu-rel-category {
  display: block !important;
  width: 100% !important;
  margin: 0 0 5px !important;
  padding: 0 !important;
  color: #008078 !important;
  font: 800 9px/1.15 "Plus Jakarta Sans",sans-serif !important;
  letter-spacing: .045em !important;
  text-transform: uppercase !important;
  text-align: left !important;
}
.gu-product-brand a,.gu-product-category a,
.single-product .gu-related-carousel-section .gu-rel-brand a,
.single-product .gu-related-carousel-section .gu-rel-category a {
  color: inherit !important; font: inherit !important; text-decoration: none !important;
}

/* Title */
.gu-product-name,
.gu-product-name.elementor-heading-title,
.single-product .gu-related-carousel-section .gu-rel-title {
  display: -webkit-box !important;
  width: 100% !important;
  min-height: 0 !important;
  height: auto !important;
  max-height: calc(14px * 1.28 * 2) !important;
  margin: 0 0 6px !important;
  padding: 0 !important;
  overflow: hidden !important;
  color: var(--gu-card-teal) !important;
  font: 700 14px/1.28 "Outfit",sans-serif !important;
  letter-spacing: 0 !important;
  text-align: left !important;
  text-overflow: ellipsis !important;
  text-transform: none !important;
  white-space: normal !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
}
.gu-product-name a,
.single-product .gu-related-carousel-section .gu-rel-title a {
  color: inherit !important; font: inherit !important; text-decoration: none !important;
}

/* Shop + Related desktop rhythm: Title → Review equals Category → Title.
   Loop is intentionally excluded. */
@media (min-width: 768px) {
  #gu-shop .gu-product-card .gu-product-name,
  .single-product .gu-related-carousel-section .gu-rel-title {
    margin-bottom: 5px !important;
  }
}

/* Rating — exactly five single-glyph stars, outlined when empty, fractional fill. */
.gu-product-rating,
.single-product .gu-related-carousel-section .gu-rel-rating {
  display: flex !important;
  align-items: center !important;
  flex-wrap: nowrap !important;
  gap: 5px !important;
  width: 100% !important;
  min-height: 19px !important;
  height: 19px !important;
  margin: 0 !important;
  padding: 1px 0 !important;
  overflow: visible !important;
  color: var(--gu-card-muted) !important;
  font: 500 10px/1 "Plus Jakarta Sans",sans-serif !important;
  text-align: left !important;
}
.gu-card-rating-stars-single {
  display: inline-flex !important;
  align-items: center !important;
  flex: 0 0 auto !important;
  gap: 1px !important;
  width: auto !important;
  height: 1em !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  font: 400 10px/1 Arial,sans-serif !important;
}
.gu-card-rating-stars-single .gu-card-single-star {
  --gu-star-fill: 0%;
  display: inline-block !important;
  flex: 0 0 1em !important;
  width: 1em !important;
  min-width: 1em !important;
  height: 1em !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  color: transparent !important;
  -webkit-text-stroke: .75px var(--gu-card-star) !important;
  background: linear-gradient(90deg,var(--gu-card-star) 0,var(--gu-card-star) var(--gu-star-fill),transparent var(--gu-star-fill),transparent 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  font: 400 1em/1 Arial,sans-serif !important;
}
.gu-rating-text,.gu-rel-rating-text,.eco-review-count {
  display: inline-block !important;
  flex: 0 0 auto !important;
  margin: 0 !important;
  padding: 0 !important;
  color: var(--gu-card-muted) !important;
  font: 500 10px/1 "Plus Jakarta Sans",sans-serif !important;
  white-space: nowrap !important;
}
/* Fallback Woo star row if shared PHP is temporarily unavailable. */
.gu-product-rating .star-rating,
.single-product .gu-related-carousel-section .gu-rel-rating .star-rating {
  float:none !important; display:inline-block !important; width:5.45em !important; height:1.15em !important;
  margin:0 !important; overflow:hidden !important; color:var(--gu-card-star) !important;
  font-family:star !important; font-size:10px !important; line-height:1.15 !important;
}
.gu-product-rating .star-rating::before,
.gu-product-rating .gu-empty-star-rating::before,
.single-product .gu-related-carousel-section .gu-rel-rating .star-rating::before { color:var(--gu-card-star) !important; opacity:1 !important; }
.gu-product-rating .star-rating span::before,
.single-product .gu-related-carousel-section .gu-rel-rating .star-rating span::before { color:var(--gu-card-star) !important; }
.gu-product-rating .gu-empty-star-rating span { width:0 !important; }

/* Bottom: price stays after rating; only action is bottom anchored. */
.gu-product-bottom,
.single-product .gu-related-carousel-section .gu-rel-bottom {
  display: flex !important;
  flex: 1 1 auto !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;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 13px 0 0 !important;
}
.gu-product-price,.gu-loop-card-price,
.single-product .gu-related-carousel-section .gu-rel-price {
  display: inline-flex !important;
  align-items: baseline !important;
  flex-wrap: nowrap !important;
  gap: 5px !important;
  width: auto !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  color: var(--gu-card-teal) !important;
  font: 800 17px/1 "Outfit",sans-serif !important;
  white-space: nowrap !important;
}
.gu-card-current-price { display:inline-block !important; width:auto !important; margin:0 !important; color:var(--gu-card-teal) !important; font:800 1em/1 "Outfit",sans-serif !important; white-space:nowrap !important; }
.gu-card-old-price,.gu-product-price del,.gu-loop-card-price del,
.single-product .gu-related-carousel-section .gu-rel-price del {
  display:inline-flex !important; width:auto !important; margin:0 0 0 4px !important; padding:0 !important;
  color:var(--gu-card-old) !important; opacity:1 !important; font:500 .7em/1 "Outfit",sans-serif !important;
  text-decoration:line-through !important; white-space:nowrap !important;
}
.gu-price-on-request,.gu-loop-price-on-request,.gu-rel-price-on-request { white-space:normal !important; font-size:14px !important; font-weight:600 !important; }

/* Actions */
.gu-add-button,.gu-loop-card-action,
.single-product .gu-related-carousel-section .gu-rel-button,
.gu-card-view-action,.gu-card-quote-action,.gu-card-choose-button,.gu-card-sold-out-action {
  appearance:none !important;
  position:relative !important;
  z-index:8 !important;
  display:inline-flex !important;
  flex:0 0 auto !important;
  align-items:center !important;
  justify-content:center !important;
  min-width:60px !important;
  height:31px !important;
  min-height:31px !important;
  margin:0 !important;
  padding:0 11px !important;
  border:0 !important;
  border-radius:4px !important;
  background:var(--gu-card-brand) !important;
  color:#fff !important;
  box-shadow:none !important;
  font:700 12px/1 "Outfit",sans-serif !important;
  text-align:center !important;
  text-decoration:none !important;
  text-transform:none !important;
  white-space:nowrap !important;
}
.gu-add-button:hover,.gu-loop-card-action:hover,.gu-card-view-action:hover,.gu-card-quote-action:hover,.gu-card-choose-button:hover,
.single-product .gu-related-carousel-section .gu-rel-button:hover { background:var(--gu-card-brand-hover) !important; color:#fff !important; }
.gu-card-sold-out-action,.gu-card-sold-out-action:hover { background:#D7D6D1 !important; color:#565650 !important; cursor:not-allowed !important; pointer-events:none !important; }
.gu-product-card a.added_to_cart.wc-forward,.gu-product-card .added_to_cart.wc-forward { display:none !important; }
.gu-loop-card-action.added::before,.gu-loop-card-action.added::after { display:none !important; content:none !important; }

/* Whole-card navigation is handled by JS; interactive controls remain above it. */
.gu-card-stretched-link,.gu-card-link-widget > a {
  position:absolute !important; z-index:3 !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; pointer-events:none !important;
}
.gu-card-variant-control,.gu-card-variation-panel { position:relative !important; z-index:8 !important; }

/* ---------- Variation chooser ---------- */
.gu-card-variant-control { display:inline-flex !important; align-items:center !important; justify-content:flex-end !important; width:auto !important; min-width:0 !important; margin:0 !important; padding:0 !important; }
.gu-card-variation-panel {
  position:absolute !important; z-index:60 !important; inset:0 !important; display:flex !important; align-items:flex-end !important; justify-content:center !important;
  width:100% !important; height:100% !important; margin:0 !important; padding:10px !important;
  visibility:hidden !important; opacity:0 !important; pointer-events:none !important; overflow:hidden !important;
  background:linear-gradient(180deg,rgba(0,63,76,.02) 0%,rgba(0,63,76,.12) 48%,rgba(0,45,54,.72) 100%) !important;
  transform:translateY(8px) scale(.985) !important; transform-origin:bottom center !important;
  transition:opacity .2s ease,visibility .2s ease,transform .2s ease !important;
}
.gu-card-variation-panel[hidden]{display:flex !important}.gu-card-variation-panel.is-open{visibility:visible !important;opacity:1 !important;pointer-events:auto !important;transform:none !important}
.gu-card-variation-sheet { width:100% !important; min-width:0 !important; max-height:calc(100% - 2px) !important; margin:0 !important; padding:10px !important; overflow-x:hidden !important; overflow-y:auto !important; border:1px solid rgba(255,255,255,.75) !important; border-radius:11px !important; background:rgba(255,255,255,.96) !important; box-shadow:0 12px 30px rgba(0,42,50,.22) !important; backdrop-filter:blur(10px) !important; }
.gu-card-variation-head { display:flex !important; align-items:center !important; justify-content:space-between !important; gap:8px !important; width:100% !important; margin:0 0 9px !important; }
.gu-card-variation-head strong { margin:0 !important; color:#003F4C !important; font:700 12px/1.2 "Outfit",sans-serif !important; }
.gu-card-variation-close { appearance:none !important; display:inline-flex !important; align-items:center !important; justify-content:center !important; width:24px !important; height:24px !important; min-width:24px !important; min-height:24px !important; margin:0 !important; padding:0 !important; border:0 !important; border-radius:50% !important; background:#EEF5F3 !important; color:#004653 !important; font:400 18px/1 Arial,sans-serif !important; cursor:pointer !important; }
.gu-card-variation-swatches { display:flex !important; align-items:flex-start !important; justify-content:center !important; flex-wrap:wrap !important; gap:8px !important; width:100% !important; margin:0 !important; padding:0 !important; }
.gu-card-variation-swatch { appearance:none !important; display:inline-flex !important; align-items:center !important; flex-direction:column !important; justify-content:flex-start !important; gap:4px !important; width:42px !important; min-width:42px !important; margin:0 !important; padding:0 !important; border:0 !important; background:transparent !important; color:#29474D !important; cursor:pointer !important; }
.gu-card-swatch-circle { display:block !important; width:29px !important; height:29px !important; min-width:29px !important; min-height:29px !important; border:2px solid #fff !important; border-radius:50% !important; background:var(--gu-card-swatch-bg,#B7C6C9) !important; box-shadow:0 0 0 1px #C8D6D5,0 4px 10px rgba(0,63,76,.10) !important; }
.gu-card-variation-swatch:hover .gu-card-swatch-circle,.gu-card-variation-swatch:focus-visible .gu-card-swatch-circle,.gu-card-variation-swatch.is-selected .gu-card-swatch-circle { box-shadow:0 0 0 2px #056983,0 5px 12px rgba(0,63,76,.16) !important; transform:translateY(-1px) scale(1.04) !important; }
.gu-card-swatch-label { display:block !important; width:100% !important; overflow:hidden !important; color:#536A6F !important; font:600 8px/1.1 "Plus Jakarta Sans",sans-serif !important; text-align:center !important; text-overflow:ellipsis !important; white-space:nowrap !important; }
.gu-card-variation-status { min-height:13px !important; margin:7px 0 0 !important; color:#7A4D00 !important; font:600 9px/1.2 "Plus Jakarta Sans",sans-serif !important; text-align:center !important; }
.gu-card-variation-status.is-success { color:#147257 !important; }
/* Size/capacity/other attributes are text boxes, never colour circles. */
.gu-card-variation-swatches.is-text-options { align-items:stretch !important; justify-content:flex-start !important; gap:7px !important; }
.gu-card-variation-swatch.is-text-option { flex:0 0 auto !important; width:auto !important; min-width:0 !important; max-width:100% !important; }
.gu-card-option-text { display:inline-flex !important; align-items:center !important; justify-content:center !important; min-width:54px !important; min-height:31px !important; padding:0 10px !important; border:1px solid #C8D6D5 !important; border-radius:6px !important; background:#fff !important; color:#29474D !important; box-shadow:0 3px 9px rgba(0,63,76,.06) !important; font:700 9px/1.15 "Plus Jakarta Sans",sans-serif !important; white-space:nowrap !important; }
.gu-card-variation-swatch.is-text-option:hover .gu-card-option-text,.gu-card-variation-swatch.is-text-option:focus-visible .gu-card-option-text,.gu-card-variation-swatch.is-text-option.is-selected .gu-card-option-text { border-color:#056983 !important; background:#F3F8F7 !important; box-shadow:0 0 0 1px #056983,0 4px 10px rgba(0,63,76,.10) !important; }

/* ---------- Related carousel container ---------- */
.single-product section.related.products { display:none !important; }
.single-product .gu-related-carousel-section { width:min(100% - 40px,1180px) !important; max-width:1180px !important; margin:44px auto 0 !important; padding:0 0 52px !important; clear:both !important; box-sizing:border-box !important; }
.single-product .gu-related-head { display:flex !important; align-items:center !important; justify-content:space-between !important; gap:20px !important; margin:0 0 22px !important; }
.single-product .gu-related-head h2 { margin:0 !important; color:var(--gu-card-teal) !important; font:800 26px/1.1 "Outfit",sans-serif !important; letter-spacing:-.02em !important; }
.single-product .gu-related-arrows { display:flex !important; gap:8px !important; }
.single-product .gu-related-arrows button { display:inline-flex !important; align-items:center !important; justify-content:center !important; width:36px !important; min-width:36px !important; height:36px !important; min-height:36px !important; margin:0 !important; padding:0 !important; border:1px solid #dbe8e6 !important; border-radius:50% !important; background:#fff !important; color:var(--gu-card-teal) !important; box-shadow:none !important; cursor:pointer !important; }
.single-product .gu-related-carousel { width:100% !important; overflow:hidden !important; }
.single-product .gu-related-track { display:flex !important; flex-wrap:nowrap !important; align-items:stretch !important; gap:16px !important; width:100% !important; margin:0 !important; padding:2px 1px 16px !important; overflow-x:auto !important; overflow-y:hidden !important; scroll-behavior:smooth !important; scroll-snap-type:x mandatory !important; scrollbar-width:none !important; }
.single-product .gu-related-track::-webkit-scrollbar{display:none !important}
.single-product .gu-related-carousel-section .gu-rel-card { flex:0 0 calc((100% - 48px)/4) !important; width:calc((100% - 48px)/4) !important; min-width:calc((100% - 48px)/4) !important; max-width:calc((100% - 48px)/4) !important; scroll-snap-align:start !important; }

/* =========================================================
   MOBILE — APPROVED SINGLE RHYTHM FOR ALL THREE CARD TYPES
   Category → 6 → Title → 10 → Review → 12 → Price
   Only action is bottom anchored. No fixed title-height spacer.
   ========================================================= */
@media (max-width:767px) {
  .gu-product-content,
  .single-product .gu-related-carousel-section .gu-rel-content {
    padding:10px 9px 9px !important;
  }
  .gu-product-brand,.gu-product-category,
  .single-product .gu-related-carousel-section .gu-rel-brand,
  .single-product .gu-related-carousel-section .gu-rel-category {
    margin:0 0 6px !important;
    font-size:8px !important;
  }
  .gu-product-name,.gu-product-name.elementor-heading-title,
  .single-product .gu-related-carousel-section .gu-rel-title {
    max-height:2.56em !important;
    margin:0 0 10px !important;
    font-size:12px !important;
    line-height:1.28 !important;
  }
  /* Shop + Related: title→review matches category→title (6px). Loop stays independent. */
  #gu-shop .gu-product-card .gu-product-name,
  .single-product .gu-related-carousel-section .gu-rel-title {
    margin-bottom:6px !important;
  }
  .gu-product-rating,
  .single-product .gu-related-carousel-section .gu-rel-rating {
    min-height:17px !important;
    height:17px !important;
    margin:0 !important;
    padding:1px 0 !important;
    gap:3px !important;
  }
  .gu-card-rating-stars-single { font-size:9px !important; }
  .gu-rating-text,.gu-rel-rating-text,.eco-review-count { font-size:8px !important; }

  .gu-product-bottom,
  .single-product .gu-related-carousel-section .gu-rel-bottom {
    display:flex !important;
    flex:1 1 auto !important;
    flex-direction:column !important;
    align-items:stretch !important;
    justify-content:flex-start !important;
    width:100% !important;
    min-height:0 !important;
    margin:0 !important;
    padding:12px 0 0 !important;
    gap:0 !important;
  }
  .gu-product-price,.gu-loop-card-price,
  .single-product .gu-related-carousel-section .gu-rel-price {
    width:100% !important;
    font-size:15px !important;
    text-align:left !important;
  }
  .gu-card-old-price { margin-left:4px !important; font-size:.67em !important; }

  /* Every action is bottom locked; a guaranteed minimum price→button gap remains. */
  .gu-product-bottom > .gu-add-button,
  .gu-product-bottom > .gu-loop-card-action,
  .gu-product-bottom > .gu-card-view-action,
  .gu-product-bottom > .gu-card-quote-action,
  .gu-product-bottom > .gu-card-sold-out-action,
  .gu-product-bottom > .gu-card-variant-control,
  .single-product .gu-related-carousel-section .gu-rel-bottom > .gu-rel-button,
  .single-product .gu-related-carousel-section .gu-rel-bottom > .gu-card-view-action,
  .single-product .gu-related-carousel-section .gu-rel-bottom > .gu-card-quote-action,
  .single-product .gu-related-carousel-section .gu-rel-bottom > .gu-card-sold-out-action,
  .single-product .gu-related-carousel-section .gu-rel-bottom > .gu-card-variant-control {
    margin-top:auto !important;
    padding-top:0 !important;
  }
  /* Price reserves a minimum gap; action then consumes any extra row height. */
  .gu-product-price,.gu-loop-card-price,
  .single-product .gu-related-carousel-section .gu-rel-price { margin-bottom:14px !important; }

  .gu-add-button,.gu-loop-card-action,
  .single-product .gu-related-carousel-section .gu-rel-button,
  .gu-card-view-action,.gu-card-quote-action,.gu-card-choose-button,.gu-card-sold-out-action {
    align-self:center !important;
    width:calc(100% - 18px) !important;
    min-width:0 !important;
    max-width:none !important;
    height:36px !important;
    min-height:36px !important;
    padding:0 12px !important;
    font-size:12px !important;
  }
  .gu-card-variant-control { width:100% !important; justify-content:center !important; }
  .gu-card-variant-control .gu-card-choose-button { width:calc(100% - 18px) !important; }

  .gu-product-badge,.gu-product-badge-label,
  .single-product .gu-related-carousel-section .gu-rel-badge { top:6px !important; left:6px !important; padding:4px 6px !important; font-size:7px !important; }

  .gu-card-variation-panel { padding:8px !important; }
  .gu-card-variation-sheet { padding:9px 7px 8px !important; border-radius:9px !important; }
  .gu-card-variation-swatches { gap:6px !important; }
  .gu-card-option-text { min-width:48px !important; min-height:29px !important; padding:0 8px !important; font-size:8px !important; }

  .single-product .gu-related-carousel-section { width:calc(100% - 28px) !important; margin-top:36px !important; padding-bottom:42px !important; }
  .single-product .gu-related-head { margin-bottom:18px !important; }
  .single-product .gu-related-head h2 { font-size:22px !important; }
  .single-product .gu-related-arrows button { width:32px !important; min-width:32px !important; height:32px !important; min-height:32px !important; }
  .single-product .gu-related-track { gap:10px !important; padding-bottom:12px !important; }
  .single-product .gu-related-carousel-section .gu-rel-card {
    flex-basis:calc((100% - 10px)/2) !important;
    width:calc((100% - 10px)/2) !important;
    min-width:calc((100% - 10px)/2) !important;
    max-width:calc((100% - 10px)/2) !important;
    height:auto !important;
    align-self:stretch !important;
  }
}

@media (min-width:768px) and (max-width:1024px) {
  .single-product .gu-related-carousel-section .gu-rel-card { flex-basis:calc((100% - 32px)/3) !important; width:calc((100% - 32px)/3) !important; min-width:calc((100% - 32px)/3) !important; max-width:calc((100% - 32px)/3) !important; }
}


/* =========================================================

/* =========================================================
   V1.0.6 — RESTORED PROVEN DESKTOP ARCHITECTURE
   Historical source of truth:
   - Loop V14 equal-height chain
   - Archive V1.2.3 compact desktop action geometry
   - Related remains on the shared reference rules above
   ========================================================= */

/* Elementor Loop: restore equal-height chain from the old conflict-fix plugin. */
.e-loop-item,
.e-loop-item > .elementor-element,
.e-loop-item > .e-con,
.e-loop-item #gu-product-card,
.e-loop-item .gu-product-card {
  min-height: 100% !important;
  height: 100% !important;
}

.e-loop-item #gu-product-card,
.e-loop-item .gu-product-card {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
}

/* Make Elementor wrappers transparent instead of turning them into a second card system. */
#gu-product-card .elementor-widget,
#gu-product-card .elementor-widget-container,
#gu-product-card .elementor-shortcode,
#gu-product-card .gu-product-brand,
#gu-product-card .gu-product-rating-widget,
#gu-product-card .gu-loop-price-widget,
#gu-product-card .gu-add-button {
  min-width: 0 !important;
  margin: 0 !important;
}

#gu-product-card .elementor-widget-container,
#gu-product-card .elementor-shortcode {
  padding: 0 !important;
}

#gu-product-card .gu-product-content {
  display: flex !important;
  flex: 1 1 auto !important;
  flex-direction: column !important;
  align-items: stretch !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
}

/* Dynamic content flow: never reserve a fake second title line. */
#gu-product-card .gu-product-name,
#gu-product-card .gu-product-name .elementor-widget-container,
#gu-product-card .gu-product-name .elementor-heading-title,
#gu-product-card .gu-product-name h1,
#gu-product-card .gu-product-name h2,
#gu-product-card .gu-product-name h3,
#gu-product-card .gu-product-name h4 {
  min-height: 0 !important;
  height: auto !important;
}

#gu-product-card .gu-product-name .elementor-heading-title,
#gu-product-card .gu-product-name h1,
#gu-product-card .gu-product-name h2,
#gu-product-card .gu-product-name h3,
#gu-product-card .gu-product-name h4 {
  display: -webkit-box !important;
  overflow: hidden !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
}

/* Only the action is allowed to consume remaining vertical space. */
#gu-product-card .gu-product-bottom {
  display: flex !important;
  flex: 1 1 auto !important;
  min-height: 0 !important;
}

#gu-product-card .gu-add-button {
  margin-top: auto !important;
}

/* DESKTOP/TABLET LOOP + ARCHIVE: use the old proven compact geometry. */
@media (min-width: 768px) {
  /* Loop and archive keep the shared card finish and natural content rhythm. */
  #gu-product-card .gu-product-content,
  #gu-shop .gu-product-card .gu-product-content {
    padding: 11px 10px 10px !important;
    gap: 0 !important;
  }

  #gu-product-card .gu-product-brand,
  #gu-product-card .gu-product-category,
  #gu-shop .gu-product-card .gu-product-brand,
  #gu-shop .gu-product-card .gu-product-category {
    margin: 0 0 5px !important;
  }

  #gu-product-card .gu-product-name,
  #gu-shop .gu-product-card .gu-product-name {
    min-height: 0 !important;
    height: auto !important;
    max-height: calc(14px * 1.28 * 2) !important;
    margin: 0 0 6px !important;
  }

  #gu-product-card .gu-product-rating-widget,
  #gu-product-card .gu-product-rating,
  #gu-shop .gu-product-card .gu-product-rating {
    margin: 0 !important;
  }

  /* Price/action row sits at the card bottom. */
  #gu-product-card .gu-product-bottom,
  #gu-shop .gu-product-card .gu-product-bottom {
    display: flex !important;
    flex: 1 1 auto !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: flex-end !important;
    justify-content: space-between !important;
    gap: 8px !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 13px 0 0 !important;
  }

  #gu-product-card .gu-loop-price-widget,
  #gu-shop .gu-product-card .gu-product-price {
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
  }

  /* The action wrapper is the bottom anchor; the button itself stays compact. */
  #gu-product-card .gu-add-button,
  #gu-shop .gu-product-card .gu-add-button,
  #gu-shop .gu-product-card .gu-card-variant-control,
  #gu-shop .gu-product-card .gu-card-view-action,
  #gu-shop .gu-product-card .gu-card-quote-action,
  #gu-shop .gu-product-card .gu-card-sold-out-action {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    margin-left: auto !important;
  }

  #gu-product-card .gu-add-button > .elementor-widget-container,
  #gu-product-card .gu-add-button .elementor-shortcode {
    display: flex !important;
    width: auto !important;
    justify-content: flex-end !important;
  }

  #gu-product-card .gu-loop-card-action,
  #gu-product-card .gu-card-view-action,
  #gu-product-card .gu-card-quote-action,
  #gu-product-card .gu-card-sold-out-action,
  #gu-product-card .gu-card-variant-control .gu-card-choose-button,
  #gu-shop .gu-product-card .gu-add-button,
  #gu-shop .gu-product-card a.gu-add-button,
  #gu-shop .gu-product-card .gu-card-view-action,
  #gu-shop .gu-product-card .gu-card-quote-action,
  #gu-shop .gu-product-card .gu-card-sold-out-action,
  #gu-shop .gu-product-card .gu-card-choose-button {
    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-radius: 4px !important;
    font-size: 11px !important;
    line-height: 1 !important;
  }

  /* Keep sale price and crossed price together. */
  #gu-product-card .gu-loop-card-price,
  #gu-product-card .gu-product-price,
  #gu-shop .gu-product-card .gu-product-price {
    display: inline-flex !important;
    align-items: baseline !important;
    flex-wrap: nowrap !important;
    justify-content: flex-start !important;
    gap: 3px !important;
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    white-space: nowrap !important;
  }

  #gu-product-card .gu-card-old-price,
  #gu-shop .gu-product-card .gu-card-old-price {
    margin-left: 4px !important;
  }
}

/* MOBILE LOOP: preserve the approved card styling, only restore the equal-height chain. */
@media (max-width: 767px) {
  .e-loop-item #gu-product-card,
  .e-loop-item .gu-product-card,
  #gu-product-card .gu-product-content,
  #gu-product-card .gu-product-bottom {
    min-height: 0 !important;
  }

  .e-loop-item #gu-product-card,
  .e-loop-item .gu-product-card {
    height: 100% !important;
    min-height: 100% !important;
  }

  #gu-product-card .gu-add-button {
    margin-top: auto !important;
  }
}

/* =========================================================
   V1.0.7 — AUTHORITATIVE ELEMENTOR LOOP ADAPTER
   Restores the proven wrapper-level contract from the old
   loop-card implementation. Scoped ONLY to #gu-product-card.
   Archive and Related are intentionally unaffected.
   ========================================================= */
/* AUTHORITATIVE ELEMENTOR LOOP ADAPTER — restored from proven v4.9.25
 * Migrated from Elementor template 3814 into the plugin.
 * Elementor should keep structure/classes only; this file owns presentation.
 */

body #gu-product-card.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 #gu-product-card.gu-product-card:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 12px 26px rgba(0, 70, 83, .08) !important;
}

body #gu-product-card.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 #gu-product-card.gu-product-card .gu-product-image,
body #gu-product-card.gu-product-card .gu-product-image > .elementor-widget-container,
body #gu-product-card.gu-product-card .gu-product-image a {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
}

body #gu-product-card.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 #gu-product-card.gu-product-card:hover .gu-product-image img {
  transform: scale(1.03) !important;
}

body #gu-product-card.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 #gu-product-card.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 #gu-product-card.gu-product-card .gu-product-badge .elementor-heading-title:empty {
  display: none !important;
}

body #gu-product-card.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 #gu-product-card.gu-product-card .gu-product-content > .elementor-element {
  margin-block-end: 0 !important;
}

body #gu-product-card.gu-product-card .gu-product-brand,
body #gu-product-card.gu-product-card .gu-product-brand .elementor-widget-container,
body #gu-product-card.gu-product-card .gu-product-brand .elementor-shortcode,
body #gu-product-card.gu-product-card .gu-product-brand p,
body #gu-product-card.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 #gu-product-card.gu-product-card .gu-product-brand {
  margin-bottom: 5px !important;
}

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

body #gu-product-card.gu-product-card .gu-product-name h1,
body #gu-product-card.gu-product-card .gu-product-name h2,
body #gu-product-card.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 #gu-product-card.gu-product-card .gu-product-name a {
  color: inherit !important;
  font: inherit !important;
  line-height: inherit !important;
  text-decoration: none !important;
}

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

body #gu-product-card.gu-product-card .gu-product-rating .elementor-widget-container,
body #gu-product-card.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 #gu-product-card.gu-product-card .gu-product-rating .star-rating,
body #gu-product-card.gu-product-card .gu-product-rating .star-rating::before,
body #gu-product-card.gu-product-card .gu-product-rating .star-rating span,
body #gu-product-card.gu-product-card .gu-product-rating .star-rating span::before {
  font-family: star !important;
}

body #gu-product-card.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 #gu-product-card.gu-product-card .gu-product-rating .star-rating::before {
  color: #D9DEE2 !important;
}

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

body #gu-product-card.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 #gu-product-card.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 #gu-product-card.gu-product-card .gu-product-rating
.woocommerce-review-link .count::before {
  content: "(";
}

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

body #gu-product-card.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 #gu-product-card.gu-product-card .gu-product-bottom >
.elementor-widget-shortcode {
  margin: 0 !important;
}

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

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

body #gu-product-card.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 #gu-product-card.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 #gu-product-card.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 #gu-product-card.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 #gu-product-card.gu-product-card .gu-add-button,
body #gu-product-card.gu-product-card .gu-add-button .elementor-widget-container,
body #gu-product-card.gu-product-card .gu-add-button .elementor-shortcode {
  flex: 0 0 auto !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
}

body #gu-product-card.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 #gu-product-card.gu-product-card .gu-loop-card-action,
body #gu-product-card.gu-product-card .gu-card-view-action,
body #gu-product-card.gu-product-card .gu-card-quote-action,
body #gu-product-card.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 #gu-product-card.gu-product-card .gu-loop-card-action:hover,
body #gu-product-card.gu-product-card .gu-card-view-action:hover,
body #gu-product-card.gu-product-card .gu-card-quote-action:hover,
body #gu-product-card.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 #gu-product-card.gu-product-card .gu-product-content {
    align-items: stretch !important;
    gap: 6px !important;
    padding: 10px 9px 9px !important;
    text-align: left !important;
  }

  body #gu-product-card.gu-product-card .gu-product-brand,
  body #gu-product-card.gu-product-card .gu-product-brand .elementor-widget-container,
  body #gu-product-card.gu-product-card .gu-product-brand .elementor-shortcode,
  body #gu-product-card.gu-product-card .gu-product-brand p,
  body #gu-product-card.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 #gu-product-card.gu-product-card .gu-product-name,
  body #gu-product-card.gu-product-card .gu-product-name .elementor-widget-container,
  body #gu-product-card.gu-product-card .gu-product-name h1,
  body #gu-product-card.gu-product-card .gu-product-name h2,
  body #gu-product-card.gu-product-card .gu-product-name h3,
  body #gu-product-card.gu-product-card .gu-product-name a {
    margin: 0 !important;
    padding: 0 !important;
    text-align: left !important;
  }

  body #gu-product-card.gu-product-card .gu-product-name h1,
  body #gu-product-card.gu-product-card .gu-product-name h2,
  body #gu-product-card.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 #gu-product-card.gu-product-card .gu-product-rating {
    width: 100% !important;
    min-height: 14px !important;
    height: 14px !important;
    margin: 0 !important;
    padding: 0 !important;
  }

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

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

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

  body #gu-product-card.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 #gu-product-card.gu-product-card .gu-loop-price-widget,
  body #gu-product-card.gu-product-card .gu-loop-price-widget .elementor-widget-container,
  body #gu-product-card.gu-product-card .gu-loop-price-widget .elementor-shortcode,
  body #gu-product-card.gu-product-card .gu-loop-card-price {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: left !important;
  }

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

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

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

  body #gu-product-card.gu-product-card .gu-add-button,
  body #gu-product-card.gu-product-card .gu-add-button .elementor-widget-container,
  body #gu-product-card.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 #gu-product-card.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 #gu-product-card.gu-product-card .gu-loop-card-action,
  body #gu-product-card.gu-product-card .gu-card-view-action,
  body #gu-product-card.gu-product-card .gu-card-quote-action,
  body #gu-product-card.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 #gu-product-card.gu-product-card .gu-product-rating-widget,
body #gu-product-card.gu-product-card .gu-product-rating-widget .elementor-widget-container,
body #gu-product-card.gu-product-card .gu-product-rating-widget .elementor-shortcode {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

body #gu-product-card.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 #gu-product-card.gu-product-card .gu-product-rating .gu-empty-star-rating span {
  width: 0 !important;
}

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


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

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

body #gu-product-card.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 #gu-product-card.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 #gu-product-card.gu-product-card .gu-product-rating .star-rating::before,
body #gu-product-card.gu-product-card .gu-product-rating .star-rating span::before {
  top: 0 !important;
  line-height: 1.15 !important;
}

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

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

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

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

  body #gu-product-card.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 #gu-product-card.gu-product-card {
  position: relative !important;
  isolation: isolate !important;
  height: 100% !important;
  min-height: 100% !important;
}

body #gu-product-card.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 #gu-product-card.gu-product-card > .gu-card-link-widget .elementor-widget-container,
body #gu-product-card.gu-product-card > .gu-card-link-widget .elementor-shortcode {
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

body #gu-product-card.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 #gu-product-card.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 #gu-product-card.gu-product-card .gu-product-badge-widget .elementor-widget-container,
body #gu-product-card.gu-product-card .gu-product-badge-widget .elementor-shortcode {
  width: auto !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

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

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

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

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

body #gu-product-card.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 #gu-product-card.gu-product-card .gu-loop-price-widget {
  flex: 0 0 auto !important;
  margin: 0 !important;
}

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

@media (min-width: 768px) {
  body #gu-product-card.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 #gu-product-card.gu-product-card .gu-add-button {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }
}

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

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

  body #gu-product-card.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 #gu-product-card.gu-product-card .gu-product-content {
  gap: 0 !important;
}

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

body #gu-product-card.gu-product-card .gu-product-name h1,
body #gu-product-card.gu-product-card .gu-product-name h2,
body #gu-product-card.gu-product-card .gu-product-name h3,
body #gu-product-card.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 #gu-product-card.gu-product-card .gu-product-rating-widget,
body #gu-product-card.gu-product-card .gu-product-rating-widget .elementor-widget-container,
body #gu-product-card.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 #gu-product-card.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 #gu-product-card.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 #gu-product-card.gu-product-card .gu-card-star-base,
body #gu-product-card.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 #gu-product-card.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 #gu-product-card.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 #gu-product-card.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 #gu-product-card.gu-product-card .gu-product-content {
    gap: 0 !important;
  }

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

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

  body #gu-product-card.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 #gu-product-card.gu-product-card .gu-rating-text {
    font-size: 8px !important;
  }
}

/* Final direct-root guards based on the actual Elementor DOM. */
body #gu-product-card.gu-product-card {
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  width:100% !important;
  height:100% !important;
  min-height:100% !important;
  overflow:hidden !important;
}
body #gu-product-card.gu-product-card > .gu-card-link-widget {
  position:absolute !important;
  inset:0 !important;
  z-index:3 !important;
  width:100% !important;
  height:100% !important;
  margin:0 !important;
  padding:0 !important;
  pointer-events:none !important;
}
body #gu-product-card.gu-product-card .gu-product-media {
  position:relative !important;
  flex:0 0 auto !important;
  width:100% !important;
  aspect-ratio:1/1 !important;
  overflow:hidden !important;
}
body #gu-product-card.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 #gu-product-card.gu-product-card .gu-product-content {
  display:flex !important;
  flex:1 1 auto !important;
  flex-direction:column !important;
  align-items:stretch !important;
  width:100% !important;
  min-width:0 !important;
  min-height:0 !important;
  margin:0 !important;
  padding:11px 10px 10px !important;
  gap:0 !important;
}
body #gu-product-card.gu-product-card .gu-product-name .elementor-heading-title {
  color:#004653 !important;
  font-family:"Outfit",sans-serif !important;
  font-size:14px !important;
  line-height:1.28 !important;
  font-weight:700 !important;
}
body #gu-product-card.gu-product-card .gu-product-rating-widget,
body #gu-product-card.gu-product-card .gu-product-rating-widget .elementor-widget-container,
body #gu-product-card.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 #gu-product-card.gu-product-card .gu-product-bottom {
  display:flex !important;
  flex:1 1 auto !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:8px !important;
  width:100% !important;
  min-width:0 !important;
  min-height:0 !important;
  margin:auto 0 0 !important;
  padding:13px 0 0 !important;
}
body #gu-product-card.gu-product-card .gu-add-button {
  flex:0 0 auto !important;
  margin:0 0 0 auto !important;
  padding:0 !important;
}
@media (max-width:767px){
  body #gu-product-card.gu-product-card .gu-product-content{padding:10px 9px 9px !important;}
  body #gu-product-card.gu-product-card .gu-product-name .elementor-heading-title{font-size:12px !important;}
  body #gu-product-card.gu-product-card .gu-product-bottom{
    flex:1 1 auto !important;
    flex-direction:column !important;
    align-items:stretch !important;
    justify-content:flex-start !important;
    margin-top:6px !important;
    padding-top:0 !important;
  }
  body #gu-product-card.gu-product-card .gu-add-button{
    width:100% !important;
    margin-top:auto !important;
    margin-left:0 !important;
    padding-top:10px !important;
  }
}

/* =========================================================
   V1.0.8 — ELEMENTOR E-CON-INNER LOOP CHAIN FIX
   The actual Loop children live inside Elementor's .e-con-inner.
   Archive and Related are intentionally untouched.
   ========================================================= */

/* Root Elementor inner wrapper must carry the equal-height card chain. */
body #gu-product-card.gu-product-card > .e-con-inner {
  display: flex !important;
  flex: 1 1 auto !important;
  flex-direction: column !important;
  align-items: stretch !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  gap: 0 !important;
}

/* Top-level overlay widgets are children of the root .e-con-inner. */
body #gu-product-card.gu-product-card > .e-con-inner > .gu-card-link-widget {
  position: absolute !important;
  inset: 0 !important;
  z-index: 3 !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  pointer-events: none !important;
}

body #gu-product-card.gu-product-card > .e-con-inner > .gu-product-media {
  position: relative !important;
  flex: 0 0 auto !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

/* The content's .e-con-inner is the true parent of category/title/rating/bottom. */
body #gu-product-card.gu-product-card .gu-product-content > .e-con-inner {
  display: flex !important;
  flex: 1 1 auto !important;
  flex-direction: column !important;
  align-items: stretch !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  gap: 0 !important;
}

/* Keep the visible content rhythm natural. */
body #gu-product-card.gu-product-card .gu-product-brand {
  flex: 0 0 auto !important;
}
body #gu-product-card.gu-product-card .gu-product-name {
  flex: 0 0 auto !important;
}
body #gu-product-card.gu-product-card .gu-product-rating-widget {
  flex: 0 0 auto !important;
}

/* Desktop: price + action are one compact bottom row, same as Related. */
@media (min-width: 768px) {
  body #gu-product-card.gu-product-card .gu-product-bottom {
    display: block !important;
    flex: 0 0 auto !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 30px !important;
    margin: auto 0 0 !important;
    padding: 13px 0 0 !important;
  }

  body #gu-product-card.gu-product-card .gu-product-bottom > .e-con-inner {
    display: flex !important;
    flex: 0 0 auto !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;
    min-height: 30px !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body #gu-product-card.gu-product-card .gu-loop-price-widget,
  body #gu-product-card.gu-product-card .gu-add-button {
    flex: 0 0 auto !important;
    margin-top: 0 !important;
    padding-top: 0 !important;
  }

  body #gu-product-card.gu-product-card .gu-add-button {
    margin-left: auto !important;
  }
}

/* Mobile: preserve the already-approved stacked bottom action. */
@media (max-width: 767px) {
  body #gu-product-card.gu-product-card .gu-product-bottom {
    display: block !important;
    flex: 1 1 auto !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    margin: 6px 0 0 !important;
    padding: 0 !important;
  }

  body #gu-product-card.gu-product-card .gu-product-bottom > .e-con-inner {
    display: flex !important;
    flex: 1 1 auto !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    gap: 0 !important;
  }

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

  body #gu-product-card.gu-product-card .gu-add-button {
    flex: 0 0 auto !important;
    width: 100% !important;
    margin: auto 0 0 !important;
    padding-top: 10px !important;
  }
}

/* =========================================================
   V1.0.10 — MOBILE LOOP ACTION + RELATED EQUAL HEIGHT ONLY
   Shop/archive intentionally untouched.
   ========================================================= */
@media (max-width: 767px) {

  /* ---------------------------------------------------------
     HOMEPAGE ELEMENTOR LOOP
     .gu-add-button is an Elementor widget WRAPPER, not the CTA.
     Neutralise the wrapper so only the actual action is styled.
     --------------------------------------------------------- */
  body #gu-product-card.gu-product-card .gu-add-button {
    display: block !important;
    flex: 0 0 auto !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: auto 0 0 !important;
    padding: 10px 0 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: inherit !important;
    box-shadow: none !important;
  }

  body #gu-product-card.gu-product-card .gu-add-button > .elementor-widget-container,
  body #gu-product-card.gu-product-card .gu-add-button .elementor-shortcode {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  body #gu-product-card.gu-product-card .gu-add-button .gu-loop-card-action,
  body #gu-product-card.gu-product-card .gu-add-button .gu-card-view-action,
  body #gu-product-card.gu-product-card .gu-add-button .gu-card-quote-action,
  body #gu-product-card.gu-product-card .gu-add-button .gu-card-sold-out-action,
  body #gu-product-card.gu-product-card .gu-add-button .gu-card-variant-control .gu-card-choose-button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: calc(100% - 18px) !important;
    max-width: none !important;
    min-width: 0 !important;
    height: 36px !important;
    min-height: 36px !important;
    margin: 0 auto !important;
    padding: 0 12px !important;
    border: 0 !important;
    border-radius: 4px !important;
    background: var(--gu-card-brand) !important;
    color: #fff !important;
    box-shadow: none !important;
    font: 700 12px/1 "Outfit", sans-serif !important;
  }
}

/* =========================================================
   V1.0.12 — MOBILE LOOP REVIEW GAP ONLY
   Related restored to original proven mobile mechanics.
   Shop/archive and desktop intentionally untouched.
   ========================================================= */
@media (max-width: 767px) {
  body #gu-product-card.gu-product-card .gu-product-rating-widget {
    margin-top: 10px !important;
  }
}

/* =========================================================
   V1.0.14 — DESKTOP RELATED EQUAL HEIGHT + REVIEW RHYTHM
   Desktop only. Mobile and Loop intentionally untouched.
   ========================================================= */
@media (min-width: 768px) {

  /* Shop Archive + Related: tighten Title → Review to the same
     visual rhythm already used by the homepage Loop. */
  body #gu-shop .gu-product-card .gu-product-name,
  body.single-product .gu-related-carousel-section .gu-rel-title {
    margin-bottom: 3px !important;
  }

  /* Related carousel: every card in the visible row must share
     the height of the tallest card. Natural 1/2-line titles stay
     intact; shorter cards absorb spare height before the bottom row. */
  body.single-product .gu-related-track {
    align-items: stretch !important;
  }

  body.single-product .gu-related-carousel-section .gu-rel-card {
    display: flex !important;
    flex-direction: column !important;
    align-self: stretch !important;
    height: auto !important;
  }

  body.single-product .gu-related-carousel-section .gu-rel-content {
    display: flex !important;
    flex: 1 1 auto !important;
    flex-direction: column !important;
    min-height: 0 !important;
  }

  /* Keep desktop price/action layout exactly as-is, but anchor the
     whole bottom row to the bottom so 1-line title cards expand in
     the spare space above it instead of becoming shorter cards. */
  body.single-product .gu-related-carousel-section .gu-rel-bottom {
    flex: 0 0 auto !important;
    margin-top: auto !important;
  }
}
