/* =========================================================================
   SUPERIOR GLIDE — Product Page Reviews
   =========================================================================
   Scope:   #reviews wrapper from WC comments_template()
   Covers:  Review cards + Review form + CusRev plugin extras
   Plugin:  Customer Reviews for WooCommerce (ivole / CusRev)
   Note:    When swapping review plugin later, rules tagged [CusRev] will
            need updating for the new plugin's class names.
   ========================================================================= */

/* -------------------------------------------------------------------------
   CONTAINER RESET
   ------------------------------------------------------------------------- */
#reviews {
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  max-width: 100% !important;
  margin: 0 !important;
  font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  color: #374151;
}

/* Hide default Woo Reviews heading (Elementor heading widget already shows it) */
#reviews .woocommerce-Reviews-title,
#reviews > h2.woocommerce-Reviews-title,
.woocommerce-Reviews #reviews > h2.woocommerce-Reviews-title {
  display: none !important;
}

/* -------------------------------------------------------------------------
   "NO REVIEWS YET" STATE
   ------------------------------------------------------------------------- */
.woocommerce-noreviews,
#reviews .woocommerce-noreviews,
p.woocommerce-noreviews {
  font-family: 'DM Sans', sans-serif;
  font-size: 15px;
  font-style: italic;
  color: #6B7280;
  margin: 0 0 24px;
  padding: 16px 20px;
  background: #F0F7FA;
  border-left: 3px solid #D1D5DB;
  border-radius: 0 6px 6px 0;
}

#reviews .woocommerce-noreviews + hr,
#reviews #review_form_wrapper {
  border: none;
  border-top: 1px solid #ECECEC;
  margin-top: 32px;
  padding-top: 32px;
}

/* -------------------------------------------------------------------------
   EXISTING REVIEW CARDS
   ------------------------------------------------------------------------- */
#reviews .commentlist {
  list-style: none !important;
  margin: 0 0 32px !important;
  padding: 0 !important;
}

#reviews .commentlist li {
  background: #FFFFFF;
  border: 1px solid #ECECEC;
  border-radius: 8px;
  padding: 20px 24px;
  margin: 0 0 16px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
  list-style: none;
}

#reviews .commentlist li .comment-text {
  margin: 0;
  padding: 0;
}

#reviews .commentlist .avatar {
  border-radius: 50%;
  margin-right: 12px;
}

#reviews .meta {
  margin-bottom: 8px;
}

#reviews .comment-author,
#reviews .meta strong {
  font-family: 'DM Sans', sans-serif;
  font-weight: 600;
  color: #111827;
  font-size: 15px;
}

#reviews time,
#reviews .meta time {
  font-family: 'DM Sans', sans-serif;
  font-size: 13px;
  color: #6B7280;
  margin-left: 6px;
}

#reviews .verified {
  display: inline-block;
  margin-left: 8px;
  padding: 2px 8px;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #237B94;
  background: rgba(35, 123, 148, 0.08);
  border-radius: 4px;
  font-style: normal;
}

#reviews .description,
#reviews .commentlist .description {
  font-family: 'DM Sans', sans-serif;
  color: #374151;
  font-size: 15px;
  line-height: 1.7;
  margin-top: 8px;
}

/* -------------------------------------------------------------------------
   STAR RATINGS (existing reviews + rating selector)
   ------------------------------------------------------------------------- */
#reviews .star-rating,
#reviews .star-rating::before,
#reviews .star-rating span::before,
p.stars a,
p.stars a::before,
p.stars a:hover ~ a::before {
  color: #237B94 !important;
}

p.stars:hover a::before {
  color: #237B94 !important;
}
p.stars a:hover::before,
p.stars a:hover ~ a::before {
  color: #D1D5DB !important;
}

.comment-form-rating label {
  font-family: 'DM Sans', sans-serif;
  font-weight: 600;
  font-size: 14px;
  color: #111827;
  display: block;
  margin-bottom: 8px;
}

/* -------------------------------------------------------------------------
   REVIEW FORM WRAPPER + HEADINGS
   ------------------------------------------------------------------------- */
#review_form_wrapper {
  max-width: 720px;
  margin: 0;
}

#review_form #reply-title,
#review_form_wrapper #reply-title,
.comment-reply-title {
  font-family: 'DM Sans', sans-serif;
  font-size: 18px;
  font-weight: 700;
  color: #111827;
  line-height: 1.3;
  margin: 0 0 4px;
  letter-spacing: -0.01em;
}

#review_form_wrapper .comment-notes,
#review_form .comment-notes {
  font-family: 'DM Sans', sans-serif;
  font-size: 13px;
  color: #6B7280;
  margin: 0 0 20px;
}

/* -------------------------------------------------------------------------
   FORM ROWS + LABELS
   ------------------------------------------------------------------------- */
#review_form .comment-form-rating,
#review_form .comment-form-comment,
#review_form .comment-form-author,
#review_form .comment-form-email {
  margin: 0 0 20px;
}

#review_form label {
  font-family: 'DM Sans', sans-serif;
  font-weight: 600;
  font-size: 14px;
  color: #111827;
  display: block;
  margin-bottom: 8px;
}

#review_form label .required {
  color: #b45309;
  margin-left: 2px;
}

/* -------------------------------------------------------------------------
   INPUTS + TEXTAREA
   ------------------------------------------------------------------------- */
#review_form input[type="text"],
#review_form input[type="email"],
#review_form input[type="url"],
#review_form textarea {
  width: 100%;
  font-family: 'DM Sans', sans-serif;
  font-size: 14px;
  line-height: 1.6;
  color: #374151;
  background: #FFFFFF;
  border: 1px solid #ECECEC;
  border-radius: 6px;
  padding: 12px 14px;
  transition: border-color 0.15s, box-shadow 0.15s;
  box-sizing: border-box;
}

#review_form input[type="text"]:focus,
#review_form input[type="email"]:focus,
#review_form input[type="url"]:focus,
#review_form textarea:focus {
  outline: none;
  border-color: #237B94;
  box-shadow: 0 0 0 3px rgba(35, 123, 148, 0.1);
}

#review_form textarea {
  min-height: 120px;
  resize: vertical;
}

/* Cookie consent checkbox row */
#review_form .comment-form-cookies-consent {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 0 0 20px;
  font-size: 13px;
  color: #6B7280;
}
#review_form .comment-form-cookies-consent input[type="checkbox"] {
  margin-top: 3px;
  accent-color: #237B94;
}
#review_form .comment-form-cookies-consent label {
  font-weight: 400;
  color: #6B7280;
  font-size: 13px;
  margin-bottom: 0;
}

/* -------------------------------------------------------------------------
   PHOTO/VIDEO UPLOAD  [CusRev]
   ------------------------------------------------------------------------- */
.ivole-photos-input,
.crwc-photo-upload,
.ivole-form-photos {
  margin: 0 0 20px;
}

.ivole-photos-input-label,
.crwc-upload-label {
  font-family: 'DM Sans', sans-serif;
  font-weight: 600;
  font-size: 14px;
  color: #111827;
  display: block;
  margin-bottom: 8px;
}

#review_form input[type="file"],
.ivole-photos-input input[type="file"],
.crwc-photo-upload input[type="file"] {
  width: 100%;
  font-family: 'DM Sans', sans-serif;
  font-size: 14px;
  color: #374151;
  background: #FFFFFF;
  border: 1px dashed #D1D5DB;
  border-radius: 6px;
  padding: 14px;
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s;
  box-sizing: border-box;
}

#review_form input[type="file"]:hover,
.ivole-photos-input input[type="file"]:hover,
.crwc-photo-upload input[type="file"]:hover {
  border-color: #237B94;
  background: #F0F7FA;
}

#review_form input[type="file"]::file-selector-button,
.ivole-photos-input input[type="file"]::file-selector-button,
.crwc-photo-upload input[type="file"]::file-selector-button {
  font-family: 'DM Sans', sans-serif;
  font-size: 13px;
  font-weight: 600;
  color: #237B94;
  background: rgba(35, 123, 148, 0.08);
  border: 1px solid rgba(35, 123, 148, 0.2);
  border-radius: 4px;
  padding: 6px 14px;
  margin-right: 12px;
  cursor: pointer;
  transition: background 0.15s;
}

#review_form input[type="file"]::file-selector-button:hover,
.ivole-photos-input input[type="file"]::file-selector-button:hover,
.crwc-photo-upload input[type="file"]::file-selector-button:hover {
  background: rgba(35, 123, 148, 0.15);
}

.ivole-photos-wrapper,
.crwc-photo-thumbnails {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}

.ivole-photo-thumbnail,
.crwc-photo-thumbnail {
  width: 80px;
  height: 80px;
  border-radius: 6px;
  border: 1px solid #ECECEC;
  overflow: hidden;
  position: relative;
}

/* -------------------------------------------------------------------------
   SUBMIT BUTTON — matches brand teal CTA
   ------------------------------------------------------------------------- */
#review_form #submit,
#review_form input[type="submit"],
#review_form button[type="submit"],
.ivole-submit-button,
.ivole-form-submit {
  display: inline-block;
  font-family: 'DM Sans', sans-serif !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.8px !important;
  line-height: 1 !important;
  color: #FFFFFF !important;
  background: #237B94 !important;
  border: none !important;
  border-radius: 4px !important;
  padding: 14px 28px !important;
  cursor: pointer !important;
  box-shadow: 0 6px 18px rgba(35, 123, 148, 0.35) !important;
  transition: all 0.18s ease-in-out !important;
  text-decoration: none !important;
  min-height: 44px !important;
}

#review_form #submit:hover,
#review_form input[type="submit"]:hover,
#review_form button[type="submit"]:hover,
.ivole-submit-button:hover,
.ivole-form-submit:hover {
  background: #1a5c70 !important;
  box-shadow: 0 8px 22px rgba(35, 123, 148, 0.45) !important;
  transform: translateY(-1px);
}

#review_form #submit:active,
#review_form input[type="submit"]:active,
#review_form button[type="submit"]:active,
.ivole-submit-button:active {
  transform: translateY(0);
  box-shadow: 0 4px 12px rgba(35, 123, 148, 0.3) !important;
}

#review_form #submit:focus-visible,
#review_form input[type="submit"]:focus-visible {
  outline: 2px solid #237B94;
  outline-offset: 2px;
}

/* -------------------------------------------------------------------------
   VALIDATION + FEEDBACK MESSAGES  [CusRev]
   ------------------------------------------------------------------------- */
.ivole-form-validation-message,
.ivole-form-error {
  font-family: 'DM Sans', sans-serif;
  font-size: 13px;
  color: #b45309;
  margin-top: 6px;
}

.ivole-after-submit,
.ivole-form-success {
  font-family: 'DM Sans', sans-serif;
  font-size: 14px;
  color: #166534;
  background: #F0FDF4;
  border: 1px solid #BBF7D0;
  border-radius: 6px;
  padding: 12px 16px;
  margin-top: 16px;
}

/* -------------------------------------------------------------------------
   CUSREV RATING SUMMARY  [CusRev]
   ------------------------------------------------------------------------- */
.ivole-summary,
.ivole-grade-container {
  background: #F0F7FA;
  border: 1px solid #ECECEC;
  border-radius: 8px;
  padding: 20px 24px;
  margin: 0 0 24px;
  font-family: 'DM Sans', sans-serif;
}

.ivole-grade-stars {
  color: #237B94;
}

.ivole-summary-bars .ivole-summary-bar {
  background: #237B94;
}

/* -------------------------------------------------------------------------
   RESPONSIVE
   ------------------------------------------------------------------------- */
@media (max-width: 768px) {
  #reviews .commentlist li {
    padding: 16px 18px;
  }
  #review_form_wrapper {
    padding-top: 24px;
    margin-top: 24px;
  }
  #review_form #reply-title,
  .comment-reply-title {
    font-size: 16px;
  }
  #review_form input[type="text"],
  #review_form input[type="email"],
  #review_form textarea {
    font-size: 16px; /* Prevent iOS zoom on focus */
    padding: 10px 12px;
  }
  #review_form #submit,
  #review_form input[type="submit"],
  .ivole-submit-button {
    width: 100%;
    padding: 14px 20px !important;
  }
}

@media (max-width: 480px) {
  #reviews .commentlist li {
    padding: 14px 16px;
  }
}

/* =========================================================
   ELEMENTOR MEGA MENU — STICKY ACTIVE UNDERLINE  (v2)
   v2: underline thickness 3→2px (refined), added focus-visible
   for keyboard nav, full-width underline anchored to text not
   padding box, smoother transition.
   ========================================================= */

/* Base title container */
.e-n-menu-title-container {
  position: relative;
  padding-bottom: 8px;
}

/* Underline element */
.e-n-menu-title-container::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 1px;
  width: 100%;
  height: 2px;                /* refined — was 3px, 2px reads cleaner */
  background-color: #237B94;
  border-radius: 2px;
  opacity: 0;
  transform: scaleX(0.6);     /* subtle grow-in instead of just fade */
  transform-origin: center;
  transition: opacity 0.25s ease, transform 0.25s ease;
}

/* Hover state */
.e-n-menu-item:hover .e-n-menu-title-container::after {
  opacity: 1;
  transform: scaleX(1);
}

/* Keyboard focus (accessibility) */
.e-n-menu-item:focus-within .e-n-menu-title-container::after {
  opacity: 1;
  transform: scaleX(1);
}

/* ACTIVE (mega menu open) */
.e-n-menu-dropdown-icon[aria-expanded="true"]
  + .e-n-menu-title-container::after,
.e-n-menu-dropdown-icon[aria-expanded="true"]
  ~ .e-n-menu-title-container::after {
  opacity: 1;
  transform: scaleX(1);
}

/* ============================================================
   WOO – VIEW CART BUTTON (SECONDARY CTA)
============================================================ */

/* Base */
.woocommerce-message .button.wc-forward {
  background-color: transparent;
  color: #237B94;                 /* Brand teal */
  border: 2px solid #237B94;
  border-radius: 8px;

  padding: 8px 18px;
  font-weight: 600;
  line-height: 1;

  transition: background-color 0.2s ease,
              color 0.2s ease,
              border-color 0.2s ease;
}

/* Hover (invert) */
.woocommerce-message .button.wc-forward:hover {
  background-color: #237B94;
  color: #ffffff;
  border-color: #237B94;
}

/* Prevent jump / shrink */
.woocommerce-message .button.wc-forward:focus,
.woocommerce-message .button.wc-forward:active {
  transform: none;
  box-shadow: none;
}


/* =====================================================
   CART – Backorder notice (WooCommerce core text)
   ===================================================== */

.woocommerce-cart .backorder_notification,
.woocommerce-cart .woocommerce-backorder {
    color: #9CA3AF !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    line-height: 1.4;
    margin-top: 2px;
}


/* =====================================================
   CART – Return to Shop (Secondary, HARD SIZE LOCK)
   ===================================================== */

.woocommerce-cart p.return-to-shop > a.button.wc-backward {
  /* Visual style */
  background-color: transparent !important;
  color: #237B94 !important;
  border: 2px solid #237B94 !important;
  border-radius: 8px;

  /* SIZE LOCK (THIS IS THE FIX) */
  box-sizing: border-box !important;
  padding: 11px 22px !important;
  line-height: 1 !important;
  font-size: 14px !important;
  min-height: 44px; /* touch-safe */

  /* Kill layout-changing effects */
  transform: none !important;
  opacity: 1 !important;

  /* Allow ONLY color/shadow transitions */
  transition-property: background-color, color, box-shadow !important;
  transition-duration: 0.2s !important;

  font-weight: 600;
  text-decoration: none !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* Hover */
.woocommerce-cart p.return-to-shop > a.button.wc-backward:hover {
  background-color: #237B94 !important;
  color: #ffffff !important;
  padding: 11px 22px !important; /* RE-LOCK */
  border-width: 2px !important; /* RE-LOCK */
  line-height: 1 !important;
  box-shadow: 0 6px 14px rgba(0,0,0,0.12);
}

/* Active / focus */
.woocommerce-cart p.return-to-shop > a.button.wc-backward:active,
.woocommerce-cart p.return-to-shop > a.button.wc-backward:focus {
  background-color: #237B94 !important;
  color: #ffffff !important;
  padding: 11px 22px !important;
  border-width: 2px !important;
  line-height: 1 !important;
  box-shadow: 0 4px 10px rgba(0,0,0,0.12);
  outline: none !important;
}

/* Mobile centering */
@media (max-width: 767px) {
  .woocommerce-cart p.return-to-shop > a.button.wc-backward {
    margin: 12px auto 0;
  }
}


/* =====================================================
   SG — AUTO BULLET LIST STYLE (from converted paragraphs)
   ===================================================== */

ul.sg-auto-bullets{
  margin: 0;
  padding-left: 1.4em; /* overall list indent */
}

ul.sg-auto-bullets > li{
  list-style-position: outside;
  margin: 0 0 .35em 0;
}


/* =========================================================
   SG – HIDE VARIATION ATTRIBUTES IN MINI / MENU CART
   ========================================================= */

/* WooCommerce Mini Cart */
.woocommerce-mini-cart .variation,
.woocommerce-mini-cart .wc-item-meta {
    display: none !important;
}


/* =========================================================================
   SUPERIOR GLIDE — Global Button System  v3  (TEAL-ONLY)
   =========================================================================
   v3 changes:
     - PRIMARY is teal (#237B94) filled (orange permanently retired)
     - SECONDARY kept as teal outline → fills teal on hover
     - All orange removed entirely
     - Primary now uses a slightly deeper teal on hover (#1a5c70) for depth

   Classes (on Elementor widget wrapper):
     .sg-btn-primary        Teal filled CTA  (the main action button)
     .sg-btn-secondary      Teal outline → teal fill on hover
     .sg-btn-tertiary       Text-only teal link style

   Size modifier:
     .sg-btn-sm             Compact size for cards and tight layouts

   Example Elementor setup:
     Widget wrapper CSS class: sg-btn-primary sg-btn-sm
   ========================================================================= */


/* =======================================================================
   SHARED BASE — reset Elementor defaults on all three button types
   ======================================================================= */
.sg-btn-primary .elementor-button,
.sg-btn-secondary .elementor-button,
.sg-btn-tertiary .elementor-button {
  font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  letter-spacing: -.005em !important;
  text-align: center !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: .45em !important;
  box-sizing: border-box !important;
  cursor: pointer !important;
  transition: background .2s ease, color .2s ease, border-color .2s ease,
              box-shadow .2s ease, transform .15s ease !important;
  -webkit-tap-highlight-color: transparent;
}

/* Focus ring */
.sg-btn-primary .elementor-button:focus-visible,
.sg-btn-secondary .elementor-button:focus-visible,
.sg-btn-tertiary .elementor-button:focus-visible {
  outline: 2px solid #237B94 !important;
  outline-offset: 2px !important;
}


/* =======================================================================
   PRIMARY — Teal filled CTA   (was orange in v2)
   ======================================================================= */
.sg-btn-primary .elementor-button,
.sg-btn-primary .elementor-button:link,
.sg-btn-primary .elementor-button:visited {
  background: #237B94 !important;
  border: 2px solid #237B94 !important;
  color: #ffffff !important;
  border-radius: 8px !important;
  font-size: 16px !important;
  padding: 14px 32px !important;
  min-height: 48px !important;
  box-shadow: 0 2px 6px rgba(35, 123, 148, .25) !important;
}
.sg-btn-primary .elementor-button:hover {
  background: #1a5c70 !important;
  border-color: #1a5c70 !important;
  color: #ffffff !important;
  box-shadow: 0 4px 12px rgba(35, 123, 148, .35) !important;
  transform: translateY(-1px);
}
.sg-btn-primary .elementor-button:active {
  background: #154a5a !important;
  border-color: #154a5a !important;
  box-shadow: 0 1px 3px rgba(35, 123, 148, .2) !important;
  transform: translateY(0);
}


/* =======================================================================
   SECONDARY — Teal outline → fills teal on hover
   ======================================================================= */
.sg-btn-secondary .elementor-button,
.sg-btn-secondary .elementor-button:link,
.sg-btn-secondary .elementor-button:visited {
  background: transparent !important;
  border: 2px solid #237B94 !important;
  color: #237B94 !important;
  border-radius: 8px !important;
  font-size: 16px !important;
  padding: 14px 32px !important;
  min-height: 48px !important;
  box-shadow: none !important;
}
.sg-btn-secondary .elementor-button:hover {
  background: #237B94 !important;
  border-color: #237B94 !important;
  color: #ffffff !important;
  box-shadow: 0 4px 12px rgba(35, 123, 148, .25) !important;
  transform: translateY(-1px);
}
.sg-btn-secondary .elementor-button:active {
  background: #1b6275 !important;
  border-color: #1b6275 !important;
  color: #ffffff !important;
  box-shadow: 0 1px 3px rgba(35, 123, 148, .15) !important;
  transform: translateY(0);
}


/* =======================================================================
   TERTIARY — Text-only teal, no border, no background
   ======================================================================= */
.sg-btn-tertiary .elementor-button,
.sg-btn-tertiary .elementor-button:link,
.sg-btn-tertiary .elementor-button:visited {
  background: transparent !important;
  border: 2px solid transparent !important;
  color: #237B94 !important;
  border-radius: 6px !important;
  font-size: 15px !important;
  padding: 10px 20px !important;
  min-height: 42px !important;
  box-shadow: none !important;
}
.sg-btn-tertiary .elementor-button:hover {
  background: rgba(35, 123, 148, .06) !important;
  border-color: transparent !important;
  color: #1b6275 !important;
  text-decoration: underline !important;
  text-underline-offset: 3px;
  text-decoration-color: rgba(35, 123, 148, .35);
  box-shadow: none !important;
  transform: none;
}
.sg-btn-tertiary .elementor-button:active {
  background: rgba(35, 123, 148, .1) !important;
  color: #1b6275 !important;
  transform: none;
}


/* =======================================================================
   SMALL MODIFIER — compact for cards, product grids, tight UI
   ======================================================================= */
.sg-btn-sm.sg-btn-primary .elementor-button,
.sg-btn-sm.sg-btn-primary .elementor-button:link,
.sg-btn-sm.sg-btn-primary .elementor-button:visited {
  font-size: 14px !important;
  padding: 10px 22px !important;
  min-height: 38px !important;
  border-radius: 6px !important;
}
.sg-btn-sm.sg-btn-secondary .elementor-button,
.sg-btn-sm.sg-btn-secondary .elementor-button:link,
.sg-btn-sm.sg-btn-secondary .elementor-button:visited {
  font-size: 14px !important;
  padding: 10px 22px !important;
  min-height: 38px !important;
  border-radius: 6px !important;
}
.sg-btn-sm.sg-btn-tertiary .elementor-button,
.sg-btn-sm.sg-btn-tertiary .elementor-button:link,
.sg-btn-sm.sg-btn-tertiary .elementor-button:visited {
  font-size: 13px !important;
  padding: 7px 14px !important;
  min-height: 34px !important;
  border-radius: 4px !important;
}


/* =======================================================================
   ELEMENTOR INNER SPAN RESET
   ======================================================================= */
.sg-btn-primary .elementor-button-text,
.sg-btn-secondary .elementor-button-text,
.sg-btn-tertiary .elementor-button-text {
  font-size: inherit !important;
  font-weight: inherit !important;
  color: inherit !important;
  line-height: inherit !important;
}

.sg-btn-primary .elementor-button-icon,
.sg-btn-secondary .elementor-button-icon,
.sg-btn-tertiary .elementor-button-icon {
  font-size: inherit !important;
  color: inherit !important;
}


/* =======================================================================
   RESPONSIVE
   ======================================================================= */

/* Laptop ≤1024 */
@media (max-width: 1024px) {
  .sg-btn-primary .elementor-button,
  .sg-btn-secondary .elementor-button {
    font-size: 15px !important;
    padding: 13px 28px !important;
    min-height: 46px !important;
  }
  .sg-btn-tertiary .elementor-button {
    font-size: 14px !important;
  }
}

/* Tablet landscape ≤768 */
@media (max-width: 768px) {
  .sg-btn-primary .elementor-button,
  .sg-btn-secondary .elementor-button {
    font-size: 15px !important;
    padding: 12px 24px !important;
    min-height: 44px !important;
    border-radius: 7px !important;
  }
  .sg-btn-tertiary .elementor-button {
    font-size: 14px !important;
    padding: 9px 16px !important;
    min-height: 38px !important;
  }
  .sg-btn-sm.sg-btn-primary .elementor-button,
  .sg-btn-sm.sg-btn-secondary .elementor-button {
    font-size: 13px !important;
    padding: 9px 18px !important;
    min-height: 36px !important;
  }
}

/* Tablet portrait ≤600 */
@media (max-width: 600px) {
  .sg-btn-primary .elementor-button,
  .sg-btn-secondary .elementor-button {
    font-size: 14px !important;
    padding: 12px 22px !important;
    min-height: 44px !important;
  }
}

/* Mobile landscape ≤480: full-width touch targets */
@media (max-width: 480px) {
  .sg-btn-primary .elementor-button,
  .sg-btn-secondary .elementor-button {
    font-size: 14px !important;
    padding: 12px 20px !important;
    min-height: 44px !important;
    border-radius: 6px !important;
    width: 100% !important;
  }
  .sg-btn-tertiary .elementor-button {
    font-size: 14px !important;
    padding: 10px 14px !important;
    min-height: 40px !important;
    width: 100% !important;
  }
  .sg-btn-sm.sg-btn-primary .elementor-button,
  .sg-btn-sm.sg-btn-secondary .elementor-button {
    font-size: 13px !important;
    padding: 9px 16px !important;
    min-height: 38px !important;
    width: auto !important;
  }
  .sg-btn-sm.sg-btn-tertiary .elementor-button {
    font-size: 13px !important;
    width: auto !important;
  }
}

/* Mobile portrait ≤375 */
@media (max-width: 375px) {
  .sg-btn-primary .elementor-button,
  .sg-btn-secondary .elementor-button {
    font-size: 13px !important;
    padding: 12px 16px !important;
    min-height: 44px !important;
  }
  .sg-btn-sm.sg-btn-primary .elementor-button,
  .sg-btn-sm.sg-btn-secondary .elementor-button {
    font-size: 12px !important;
    padding: 8px 14px !important;
    min-height: 36px !important;
  }
}

/* Clickable card hover */
.sg-card-hover {
  transition: box-shadow .2s ease, transform .15s ease;
  cursor: pointer;
}
.sg-card-hover:hover {
  box-shadow: 0 4px 16px rgba(35, 123, 148, .15);
  transform: translateY(-2px);
}
@media (max-width: 480px) {
    .sg-btn-primary .elementor-button,
    .sg-btn-secondary .elementor-button {
        padding-left: 16px !important;
        padding-right: 16px !important;
        font-size: 13px !important;
    }
}

/* ============================================================
   SG – SIZE CHART (full chart, compact rows, nothing hidden)
   Class: sg-sizechart-window
   ============================================================ */

.sg-sizechart-window{
  max-height: none;
  overflow-y: visible;
  overflow-x: auto;                 /* horizontal scroll only if a row is wider than the column */
  -webkit-overflow-scrolling: touch;

  background: #ffffff;
  border: 1px solid rgba(0,0,0,0.10);
  border-radius: 14px;
  padding: 0;
  margin: 0;
  box-sizing: border-box;
  min-height: 0;
}

/* make sure no inner wrapper traps or caps the table */
.sg-sizechart-window .elementor-widget-container,
.sg-sizechart-window .yith-wcpsc-product-table-wrapper{
  overflow: visible !important;
  max-height: none !important;
}

/* table normalization */
.sg-sizechart-window table{
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  margin: 0 !important;
}
.sg-sizechart-window p,
.sg-sizechart-window .elementor-widget,
.sg-sizechart-window .elementor-widget-container{
  margin: 0 !important;
}

/* compact rows -> shorter overall chart */
.sg-sizechart-window th,
.sg-sizechart-window td{
  padding: 6px 12px;
  vertical-align: top;
  white-space: nowrap;
  line-height: 1.3;
}
@media (max-width: 767px){
  .sg-sizechart-window th,
  .sg-sizechart-window td{
    padding: 5px 10px;
  }
}

/* header row tint */
.sg-sizechart-window thead th{
  background: #F0F7FA !important;
  box-shadow: inset 0 -1px 0 rgba(0,0,0,0.12);
}

.sg-sizechart-window > *:last-child{
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

/* ============================================================
   SG – SIZING CHART TABS (5-LEVEL) – BRAND SYSTEM + HARD NO-JUMP
   Elementor NESTED TABS only

   Required CSS Classes (add to each Nested Tabs widget):
   sg-sizing-parent / sg-sizing-child / sg-sizing-grandchild
   sg-sizing-greatgrandchild / sg-sizing-greatgreatgrandchild
============================================================ */

/* =========================
   TOKENS
========================= */
.sg-sizing-parent,
.sg-sizing-child,
.sg-sizing-grandchild,
.sg-sizing-greatgrandchild,
.sg-sizing-greatgreatgrandchild{
  --sg-teal:#237B94;
  --sg-border:#cfe6ee;
  --sg-bg:#f6fbfd;
  --sg-radius:12px;
}

/* =========================
   HARD RESET (NO JUMP)
========================= */
.sg-sizing-parent .e-n-tabs-heading,
.sg-sizing-child .e-n-tabs-heading,
.sg-sizing-grandchild .e-n-tabs-heading,
.sg-sizing-greatgrandchild .e-n-tabs-heading,
.sg-sizing-greatgreatgrandchild .e-n-tabs-heading{
  position: relative !important;
  top: 0 !important;
  transform: none !important;
  translate: none !important;
  filter: none !important;
  border: 0 !important;
  align-items: stretch !important;
}

.sg-sizing-parent .e-n-tab-title,
.sg-sizing-child .e-n-tab-title,
.sg-sizing-grandchild .e-n-tab-title,
.sg-sizing-greatgrandchild .e-n-tab-title,
.sg-sizing-greatgreatgrandchild .e-n-tab-title{
  font-family:'DM Sans', system-ui, -apple-system, BlinkMacSystemFont, sans-serif !important;
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;

  position: relative !important;
  top: 0 !important;
  bottom: auto !important;
  transform: none !important;
  translate: none !important;
  filter: none !important;

  margin: 0 !important;
  box-shadow: none !important;
  outline: none !important;
  background-image: none !important;

  display:flex !important;
  align-items:center !important;
  justify-content:center !important;

  height:100% !important;
  line-height:1 !important;
  white-space:nowrap !important;
  box-sizing:border-box !important;
}

/* Kill Elementor indicators */
.sg-sizing-parent .e-n-tab-title::before,
.sg-sizing-parent .e-n-tab-title::after,
.sg-sizing-child .e-n-tab-title::before,
.sg-sizing-child .e-n-tab-title::after,
.sg-sizing-grandchild .e-n-tab-title::before,
.sg-sizing-grandchild .e-n-tab-title::after,
.sg-sizing-greatgrandchild .e-n-tab-title::before,
.sg-sizing-greatgrandchild .e-n-tab-title::after,
.sg-sizing-greatgreatgrandchild .e-n-tab-title::before,
.sg-sizing-greatgreatgrandchild .e-n-tab-title::after{
  content:none !important;
  display:none !important;
}

/* =========================
   BRAND COLORS
========================= */
.sg-sizing-parent .e-n-tab-title,
.sg-sizing-child .e-n-tab-title,
.sg-sizing-grandchild .e-n-tab-title,
.sg-sizing-greatgrandchild .e-n-tab-title,
.sg-sizing-greatgreatgrandchild .e-n-tab-title{
  background:#fff !important;
  color:var(--sg-teal) !important;
  border:1px solid var(--sg-border) !important;
  border-radius:var(--sg-radius) !important;
  transition: background .2s ease, border-color .2s ease, color .2s ease !important;
}

.sg-sizing-parent .e-n-tab-title:hover,
.sg-sizing-child .e-n-tab-title:hover,
.sg-sizing-grandchild .e-n-tab-title:hover,
.sg-sizing-greatgrandchild .e-n-tab-title:hover,
.sg-sizing-greatgreatgrandchild .e-n-tab-title:hover{
  background:var(--sg-bg) !important;
  border-color:var(--sg-teal) !important;
  color:var(--sg-teal) !important;
}

.sg-sizing-parent .e-n-tab-title[aria-selected="true"],
.sg-sizing-child .e-n-tab-title[aria-selected="true"],
.sg-sizing-grandchild .e-n-tab-title[aria-selected="true"],
.sg-sizing-greatgrandchild .e-n-tab-title[aria-selected="true"],
.sg-sizing-greatgreatgrandchild .e-n-tab-title[aria-selected="true"]{
  background:var(--sg-teal) !important;
  border-color:var(--sg-teal) !important;
  color:#fff !important;
}

/* =========================
   DESKTOP (wrap + center)
========================= */
.sg-sizing-parent .e-n-tabs-heading,
.sg-sizing-child .e-n-tabs-heading,
.sg-sizing-grandchild .e-n-tabs-heading,
.sg-sizing-greatgrandchild .e-n-tabs-heading,
.sg-sizing-greatgreatgrandchild .e-n-tabs-heading{
  display:flex !important;
  flex-wrap:wrap !important;
  justify-content:center !important;
  gap:10px !important;
}

/* =========================
   LEVEL SIZES
========================= */
.sg-sizing-parent{ padding-top:8px !important; }
.sg-sizing-parent .e-n-tabs-heading{ min-height:48px !important; margin:0 0 14px 0 !important; }
.sg-sizing-parent .e-n-tabs-heading > .e-n-tab-title{ min-height:48px !important; padding:0 18px !important; font-weight:650 !important; }

.sg-sizing-parent .sg-sizing-child{ margin-top:10px !important; padding-top:4px !important; }
.sg-sizing-child .e-n-tabs-heading{ min-height:42px !important; margin:0 0 14px 0 !important; }
.sg-sizing-child .e-n-tabs-heading > .e-n-tab-title{ min-height:42px !important; padding:0 16px !important; font-weight:600 !important; }

.sg-sizing-child .sg-sizing-grandchild{ margin-top:8px !important; padding-top:2px !important; }
.sg-sizing-grandchild .e-n-tabs-heading{ min-height:36px !important; margin:0 0 18px 0 !important; }
.sg-sizing-grandchild .e-n-tabs-heading > .e-n-tab-title{ min-height:36px !important; padding:0 14px !important; font-weight:600 !important; font-size:13px !important; }

.sg-sizing-grandchild .sg-sizing-greatgrandchild{ margin-top:8px !important; padding-top:2px !important; }
.sg-sizing-greatgrandchild .e-n-tabs-heading{ min-height:34px !important; margin:0 0 18px 0 !important; }
.sg-sizing-greatgrandchild .e-n-tabs-heading > .e-n-tab-title{ min-height:34px !important; padding:0 13px !important; font-weight:600 !important; font-size:12.5px !important; }

.sg-sizing-greatgrandchild .sg-sizing-greatgreatgrandchild{ margin-top:8px !important; padding-top:2px !important; }
.sg-sizing-greatgreatgrandchild .e-n-tabs-heading{ min-height:32px !important; margin:0 0 18px 0 !important; }
.sg-sizing-greatgreatgrandchild .e-n-tabs-heading > .e-n-tab-title{ min-height:32px !important; padding:0 12px !important; font-weight:600 !important; font-size:12px !important; }

/* =========================
   MOBILE: SWIPE BUT CENTERED
   Technique:
   - Heading scrolls
   - Inner content stays centered using max-content
========================= */
@media (max-width:767px){

  .sg-sizing-parent .e-n-tabs-heading,
  .sg-sizing-child .e-n-tabs-heading,
  .sg-sizing-grandchild .e-n-tabs-heading,
  .sg-sizing-greatgrandchild .e-n-tabs-heading,
  .sg-sizing-greatgreatgrandchild .e-n-tabs-heading{
    /* override Elementor paging */
    transform:none !important;
    translate:none !important;

    /* enable swipe */
    overflow-x:auto !important;
    overflow-y:hidden !important;
    flex-wrap:nowrap !important;
    -webkit-overflow-scrolling:touch !important;

    /* CENTER by default */
    justify-content:center !important;

    /* spacing */
    gap:8px !important;
    padding:0 10px 10px !important;

    /* hide scrollbar */
    scrollbar-width:none !important;
  }

  .sg-sizing-parent .e-n-tabs-heading::-webkit-scrollbar,
  .sg-sizing-child .e-n-tabs-heading::-webkit-scrollbar,
  .sg-sizing-grandchild .e-n-tabs-heading::-webkit-scrollbar,
  .sg-sizing-greatgrandchild .e-n-tabs-heading::-webkit-scrollbar,
  .sg-sizing-greatgreatgrandchild .e-n-tabs-heading::-webkit-scrollbar{
    display:none !important;
  }

  /* keep each tab from shrinking */
  .sg-sizing-parent .e-n-tab-title,
  .sg-sizing-child .e-n-tab-title,
  .sg-sizing-grandchild .e-n-tab-title,
  .sg-sizing-greatgrandchild .e-n-tab-title,
  .sg-sizing-greatgreatgrandchild .e-n-tab-title{
    flex:0 0 auto !important;
  }

  /* slightly tighter padding on small screens */
  .sg-sizing-parent .e-n-tabs-heading > .e-n-tab-title{ padding:0 14px !important; }
  .sg-sizing-child  .e-n-tabs-heading > .e-n-tab-title{ padding:0 14px !important; }
  .sg-sizing-grandchild .e-n-tabs-heading > .e-n-tab-title{ padding:0 12px !important; }
  .sg-sizing-greatgrandchild .e-n-tabs-heading > .e-n-tab-title{ padding:0 12px !important; }
  .sg-sizing-greatgreatgrandchild .e-n-tabs-heading > .e-n-tab-title{ padding:0 11px !important; }
}


/* SG — Price positioning (exclude quick view) */

/* Hide variation price in default location on single product page */
.single-product .woocommerce-variation-price {
  display: none !important;
}

/* Restore normal variation price inside quick view */
.iconic-wqv-modal .woocommerce-variation-price,
#iconic-wqv .woocommerce-variation-price,
.iconic-wqv .woocommerce-variation-price {
  display: block !important;
}

.iconic-wqv-modal .woocommerce-variation-price .price,
.iconic-wqv-modal .woocommerce-variation-price .woocommerce-Price-amount {
  font-size: 20px !important;
  font-weight: 700 !important;
  color: #111827 !important;
}

/* Initial price range styling */
.single-product .sg-initial-price-range {
  margin-bottom: 12px;
}

.single-product .sg-initial-price-range .sg-price-fix,
.single-product .sg-initial-price-range .woocommerce-Price-amount {
  font-size: 28px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  color: #111827 !important;
  font-family: 'DM Sans', -apple-system, sans-serif !important;
}

/* Cloned selected price (injected by JS into same position as range) */
.single-product .sg-selected-price {
  margin-bottom: 12px;
  display: none;
}

.single-product .sg-selected-price .woocommerce-Price-amount,
.single-product .sg-selected-price bdi {
  font-size: 28px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  color: #111827 !important;
  font-family: 'DM Sans', -apple-system, sans-serif !important;
}

@media (max-width: 1024px) {
  .single-product .sg-initial-price-range .sg-price-fix,
  .single-product .sg-initial-price-range .woocommerce-Price-amount,
  .single-product .sg-selected-price .woocommerce-Price-amount,
  .single-product .sg-selected-price bdi {
    font-size: 26px !important;
  }
}

@media (max-width: 768px) {
  .single-product .sg-initial-price-range .sg-price-fix,
  .single-product .sg-initial-price-range .woocommerce-Price-amount,
  .single-product .sg-selected-price .woocommerce-Price-amount,
  .single-product .sg-selected-price bdi {
    font-size: 24px !important;
  }
}

@media (max-width: 480px) {
  .single-product .sg-initial-price-range .sg-price-fix,
  .single-product .sg-initial-price-range .woocommerce-Price-amount,
  .single-product .sg-selected-price .woocommerce-Price-amount,
  .single-product .sg-selected-price bdi {
    font-size: 20px !important;
  }
}
/* Center price on mobile */
@media (max-width: 767px) {
  .single-product .sg-initial-price-range,
  .single-product .sg-selected-price {
    text-align: center;
  }
}

/* ============================================================
   SG — Business Hero CTA visibility (Guest vs Approved B2B)
   Uses B2BKing body classes only

   v3 — fixes a specificity bug in v2 where the .b2bking_logged_out
   rule (specificity 0,2,0) was overriding the p.sg-biz-cta--guest
   rule (specificity 0,1,1), causing the hero <p> sign-in line to
   render with display:flex instead of display:block. That made
   the <br> line break inside the paragraph stop working visually.

   The fix: every active-state rule now explicitly handles the
   paragraph element separately so containers get display:flex and
   paragraphs get display:block, no matter which B2BKing state is
   active.

   How B2BKing classifies users:
     .b2bking_logged_out  → not signed in
     .b2bking_b2c_user    → signed in as regular customer
     .b2bking_b2b_user    → signed in as approved business account
============================================================ */

/* Step 1: Hide both variants by default until B2BKing applies its body class.
   This prevents the brief flash of wrong buttons on initial page load. */
.sg-biz-cta--guest,
.sg-biz-cta--b2b {
  display: none;
}

/* ────────────────────────────────────────────────────────────
   LOGGED OUT — show Guest CTA, hide B2B CTA
   ──────────────────────────────────────────────────────────── */
.b2bking_logged_out .sg-biz-cta--guest {
  display: flex !important;
}
.b2bking_logged_out p.sg-biz-cta--guest {
  display: block !important;
}
.b2bking_logged_out .sg-biz-cta--b2b {
  display: none !important;
}

/* ────────────────────────────────────────────────────────────
   B2C USER (regular customer logged in) — show Guest CTA
   ──────────────────────────────────────────────────────────── */
.b2bking_b2c_user .sg-biz-cta--guest {
  display: flex !important;
}
.b2bking_b2c_user p.sg-biz-cta--guest {
  display: block !important;
}
.b2bking_b2c_user .sg-biz-cta--b2b {
  display: none !important;
}

/* ────────────────────────────────────────────────────────────
   B2B USER (approved business account) — show B2B CTA only
   Hide all guest variants including the inline <p> sign-in line
   ──────────────────────────────────────────────────────────── */
.b2bking_b2b_user .sg-biz-cta--guest {
  display: none !important;
}
.b2bking_b2b_user .sg-biz-cta--b2b {
  display: flex !important;
}

/* Industry Pillars – lock descriptions to 2 lines */
.sg-industry-card .elementor-icon-box-description {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;

  min-height: 2.8em; /* forces equal height even if text is shorter */
}


/* SG — Proof chips (hero pills) */
.sg-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 28px;            /* locks pill height */
  padding: 0 12px;         /* horizontal only */
  border-radius: 999px;
  background: #EAF4F7;
  color: #237B94;
  font-weight: 600;
  font-size: 12px;
  line-height: 1;
  letter-spacing: 0.01em;
}


/* =========================================================
   SG — ICONIC SWATCHES (TEXT-ONLY)
   - Styles only TEXT swatches (e.g., Size)
   - Leaves COLOR / IMAGE swatches completely default
   - Tablet Portrait: 3 per row
   - Mobile: 2 per row
   ========================================================= */

/* 1) Clean variation table */
table.variations,
table.variations th,
table.variations td,
table.variations tr,
.woocommerce div.product form.cart table.variations {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* 2) Labels */
strong.iconic-was-attr-label-text,
.variations th.label,
.variations label strong {
  font-family: inherit !important;
  font-weight: 500 !important;
  color: #111827 !important;
  font-size: 16px !important;
  text-transform: none !important;
}

/* 3) Chosen value text */
span.iconic-was-chosen-attribute {
  font-weight: 400 !important;
  color: #9CA3AF !important;
  font-size: 15px !important;
}

/* 4) Clear link */
.reset_variations,
a.reset_variations {
  color: #237B94 !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  text-decoration: none !important;
}
.reset_variations:hover,
a.reset_variations:hover {
  color: #237B94 !important;
}

/* =========================================================
   TEXT SWATCHES ONLY (Iconic)
   ========================================================= */

/* Text swatch wrapper: kill horizontal scroll behavior */
.variations_form .iconic-was-swatches--text-swatch {
  overflow-x: visible !important;
  white-space: normal !important;
  margin-top: 8px !important;
}

/* Text swatch base */
.variations_form .iconic-was-swatches--text-swatch .iconic-was-swatch {
  border: 1px solid #E5EEF3 !important;
  border-radius: 6px !important;
  background: transparent !important;
  box-shadow: none !important;
  box-sizing: border-box !important;

  min-height: 44px !important;
  padding: 10px 12px !important;

  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  line-height: 1.2 !important;
}

/* Hover */
.variations_form .iconic-was-swatches--text-swatch .iconic-was-swatch:hover {
  border-color: #237B94 !important;
}

/* Selected */
.variations_form .iconic-was-swatches--text-swatch .iconic-was-swatch--selected {
  background-color: #237B94 !important;
  border-color: #237B94 !important;
  color: #FFFFFF !important;
}

/* Tablet Portrait — 3 per row (text swatches only) */
@media (min-width: 768px) and (max-width: 900px) {
  .variations_form .iconic-was-swatches--text-swatch {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 12px !important;
  }
}

/* Mobile — 2 per row (text swatches only) */
@media (max-width: 767px) {
  .variations_form .iconic-was-swatches--text-swatch {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 10px !important;
  }
}


/* B2BKING: UNIFIED PRICE & AVAILABILITY STYLING */

/* 1. Price: Primary charcoal at a calm 500 weight */
.b2bking_price_container, 
.price .amount,
.price ins .amount {
    color: #111827 !important; /* Primary Text */
    font-weight: 500 !important;
    font-size: 24px !important;
    display: inline-block;
    margin-bottom: 5px;
}

/* 2. Stock Status: Muted grey for all availability text */
.stock.in-stock,
.stock.available-on-backorder,
.b2bking_stock_status_container,
.available-on-backorder {
    color: #4B5563 !important; /* Muted Text */
    font-size: 14px !important;
    font-weight: 400 !important;
    font-style: normal !important; /* Removed italic for a cleaner look */
    margin-top: 4px;
    display: block;
}

/* 3. Status Accent: Subtle teal bullet for "In Stock" */
.stock.in-stock::before {
    content: "• ";
    color: #237B94; /* Secondary Teal */
    font-weight: 900;
    padding-right: 4px;
}
/* Stock status typography */
.stock.in-stock,
.stock.available-on-backorder {
  font-family: 'DM Sans', -apple-system, sans-serif !important;
  margin-top: 8px;
  margin-bottom: 0;
}
/* Backorder — amber instead of teal */
.stock.available-on-backorder::before {
  content: "• ";
  color: #D97706 !important;
  font-weight: 900;
  padding-right: 4px;
}

.stock.available-on-backorder {
  color: #92400E !important;
}
/* Space between stock status and Add to Cart */
.single-product .stock {
  margin-top: 12px;
  margin-bottom: 4px;
}

/* PRODUCT PAGE: QUANTITY SELECTOR WITH NAVIGATION ARROWS */

/* 1. Target the main quantity input field */
.woocommerce .quantity .qty,
.woocommerce-page .quantity .qty,
.quantity input.qty {
    width: 70px !important; /* Slightly wider to accommodate arrows */
    height: 44px !important; /* Matches 'Add to Cart' height */
    border: 1px solid #E5EEF3 !important; /* Your Border Light color */
    border-radius: 4px !important;
    background-color: #F9FAFB !important; /* Subtle grey wash */
    color: #374151 !important; /* Secondary Text */
    font-weight: 500 !important;
    font-size: 16px !important;
    text-align: left !important; /* Shift text left to make room for arrows */
    padding-left: 10px !important;
    outline: none !important;
    /* Re-enable standard browser spinners */
    appearance: auto !important; 
    -webkit-appearance: number-input !important;
    -moz-appearance: number-input !important;
}

/* 2. Ensure arrows are visible on all browsers */
.quantity input::-webkit-outer-spin-button,
.quantity input::-webkit-inner-spin-button {
    -webkit-appearance: inner-spin-button !important;
    opacity: 1 !important;
}

/* 3. Hover and Focus states */
.quantity input.qty:hover,
.quantity input.qty:focus {
    border-color: #237B94 !important; /* Secondary Teal on interaction */
    background-color: #ffffff !important;
}

/* Fix for Product Card Price Typography */
.sg-price-fix, 
.sg-price-fix .woocommerce-Price-amount, 
.sg-price-fix .woocommerce-Price-currencySymbol {
    font-family: 'DM Sans', sans-serif !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
}

/* Responsive Pricing Scale */
@media (min-width: 1440px) {
    .sg-price-fix { font-size: 20px !important; }
}

@media (max-width: 1024px) {
    .sg-price-fix { font-size: 18px !important; }
}

@media (max-width: 767px) {
    .sg-price-fix { font-size: 16px !important; }
}

/* =========================================================
   SG — SIZE CHART TAB PANEL IS AN <a> (RESET LINK STYLES)
   Elementor Tabs sometimes render panel as <a> when href exists
   Your wrapper class: .sg-sizechart-window
   ========================================================= */

/* Stop theme/global link styling from hijacking the whole chart panel */
a.sg-sizechart-window,
a.sg-sizechart-window:visited,
a.sg-sizechart-window:hover,
a.sg-sizechart-window:active {
  color: inherit !important;
  font-weight: inherit !important;
  text-decoration: none !important;
}

/* Most important: prevent rules like "a * { ... }" from changing everything inside */
a.sg-sizechart-window * {
  color: inherit !important;
  font-weight: inherit !important;
  text-decoration: none !important;
}

/* Make sure table text follows your global body color */
a.sg-sizechart-window .yith-wcpsc-product-table-wrapper,
a.sg-sizechart-window .yith-wcpsc-product-table-wrapper * {
  color: #374151 !important; /* body */
  font-family: 'DM Sans', system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif !important;
  font-weight: 400 !important;
}

/* Keep the actual table headers looking like headers */
a.sg-sizechart-window .yith-wcpsc-product-table thead th {
  color: #111827 !important; /* heading */
  font-weight: 600 !important;
  text-decoration: none !important;
}

/* If your theme underlines links on hover, kill it */
a.sg-sizechart-window:hover,
a.sg-sizechart-window:hover * {
  text-decoration: none !important;
}


/* ============================================================
   SG — DYNAMIC FLOOR-TYPE BADGES  (on-brand, teal-only)
   Styles the [sg_floor_badge] output from the snippet "Loop Utility: Dynamic Floor Type Badge".

   Modifiers produced by that snippet:
     .badge-all   → WORKS ON ALL FLOORS    (most versatile)
     .badge-soft  → CARPET & RUG FRIENDLY  (slides)
     .badge-hard  → SMOOTH HARD FLOORS     (glides / pads)
     .badge-rough → ROUGH & TEXTURED FLOORS

   Colour logic (all from the SG palette):
     - all   = filled teal (the standout: works everywhere)
     - soft  = teal outline on teal tint
     - rough = teal-DEEP outline on tint (reads "tougher")
     - hard  = neutral light blue + muted steel
   ============================================================ */

.sg-badge {
    display: inline-block;
    padding: 7px 14px;
    font-family: 'DM Sans', sans-serif;
    font-weight: 700;
    font-size: 12px;
    letter-spacing: 0.8px;
    line-height: 1.3;
    text-transform: uppercase;
    border-radius: 4px;
    border: 1px solid transparent;
    margin-bottom: 14px;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

/* WORKS ON ALL FLOORS — filled teal, most prominent */
.sg-badge.badge-all {
    background-color: #237B94;
    color: #FFFFFF;
    border-color: #237B94;
}

/* CARPET & RUG FRIENDLY — teal outline on tint */
.sg-badge.badge-soft {
    background-color: #EAF2F4;
    color: #237B94;
    border-color: #237B94;
}

/* SMOOTH HARD FLOORS — neutral light blue + muted steel (on-brand neutral) */
.sg-badge.badge-hard {
    background-color: #F0F7FA;
    color: #4E6B73;
    border-color: #DDEBF2;
}

/* ROUGH & TEXTURED FLOORS — teal-deep outline (darker, "tougher") */
.sg-badge.badge-rough {
    background-color: #EAF2F4;
    color: #0f3a48;
    border-color: #0f3a48;
}

/* Subtle hover lift (keeps the interactive feel) */
.sg-badge:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 10px rgba(15, 58, 72, 0.10);
}


/* ============================================================
   SEARCH-RESULT CONTEXT — smaller so badges don't dominate cards
============================================================ */
.ywcas-search-results .sg-badge,
.ywcas-popover-results .sg-badge,
#sg-search-overlay .sg-badge,
.ywcas-search-mobile .sg-badge {
    padding: 5px 10px;
    font-size: 10px;
    letter-spacing: 0.6px;
    margin-bottom: 8px;
}

/* ============================================================
   SHIPS FAST — availability status pill
   Output by the [sg_ships_fast_badge] shortcode (snippet
   "SG: Grid Ships-Fast Badge"). Light status pill so it reads
   as availability, distinct from the category floor badges.
   ============================================================ */
.sg-badge.badge-ships {
    background-color: #EAF5F8;
    color: #0F3A48;
    border-color: #BFE0E8;
    display: inline-flex;
    align-items: center;
    gap: 7px;
}
.sg-badge.badge-ships .sg-badge__dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #237B94;
    flex: none;
}


/* ==========================================
   SG — Pain Cards (Styling Only: no height equalizing)
   ========================================== */

/* 1. Base Card Styling */
.pain-card {
  background-color: #ffffff !important;
  border: 1px solid #eeeeee !important; /* Subtle resting border */
  border-radius: 4px !important;
  padding: 40px 30px !important;
  transition: all 0.3s ease-in-out !important;
}

/* 2. Icon Spacing & Neutral State */
.pain-card .elementor-widget-image,
.pain-card .elementor-widget-icon,
.pain-card svg {
  display: block !important;
  margin: 0 auto 10px auto !important; /* Gap to Title */
  width: 40px !important;
  fill: #888888 !important; /* Initial professional grey */
  transition: fill 0.3s ease;
}

/* 3. Heading Spacing */
.pain-card .elementor-heading-title {
  text-align: center !important;
  margin: 0 0 12px 0 !important; /* Gap to Bullets */
  color: #111827 !important; /* SG heading color */
  font-weight: 600 !important;
  line-height: 1.2 !important;
}

/* 4. Text Editor */
.pain-card .elementor-text-editor {
  width: 100% !important;
  text-align: left !important;
  color: #374151 !important; /* SG body text */
  font-size: 15px !important;
}

/* 5. Bullet Point Styling */
.pain-card ul {
  list-style-type: none !important;
  padding-left: 0 !important;
  margin: 0 !important;
}

.pain-card li {
  position: relative;
  padding-left: 20px;
  margin-bottom: 8px;
  line-height: 1.5;
  color: #374151 !important;
}

.pain-card li::before {
  content: "•";
  position: absolute;
  left: 0;
  font-weight: 700;
  color: #888888; /* Initial grey bullets */
  transition: color 0.3s ease;
}

/* 6. Desktop Hover Logic (Grey -> Red) */
@media (min-width: 1025px) {
  .pain-card:hover {
    border-color: #D9534F !important; /* Border turns Red */
    transform: translateY(-5px);
    box-shadow: 0 12px 30px rgba(0,0,0,0.06) !important;
  }

  /* Transition Icon and Bullet Dots to Red on Hover */
  .pain-card:hover svg,
  .pain-card:hover li::before {
    fill: #D9534F !important;
    color: #D9534F !important;
  }
}

/* 7. Mobile/Tablet Logic (Icons & Bullets stay Red) */
@media (max-width: 1024px) {
  .pain-card {
    border-color: #e0e0e0 !important;
  }

  .pain-card svg,
  .pain-card li::before {
    fill: #D9534F !important;
    color: #D9534F !important;
  }
}


/* Truncate Cart Product Names to 3 Lines */
.elementor-menu-cart__product-name, 
.elementor-menu-cart__product-name a {
    display: -webkit-box !important;
    -webkit-line-clamp: 3 !important; /* Increased to 3 lines */
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.4;
    max-height: 4.2em !important; /* Calculation: 1.4 line-height * 3 lines */
}

/* ---- Product Category Cards ---- */
.sg-product-card {
  border: 2px solid #ececec !important;
  border-radius: 8px !important;
  background: #ffffff !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.04) !important;
  transition: all 0.2s ease-in-out !important;
}

.sg-product-card:hover {
  border-color: #237B94 !important;
  box-shadow: 0 4px 16px rgba(35,123,148,0.12) !important;
  transform: translateY(-2px) !important;
}

/* ---- Router show/hide ---- */
#hard-floor-options {
  display: none;
}

#hard-floor-question {
  display: none;
}

#hard-floor-options.active {
  display: flex !important;
  flex-wrap: wrap;
  justify-content: center;
  gap: 20px;
}

/* ---- Mobile: stack all cards ---- */
@media (max-width: 767px) {
  #floor-type-cards {
    flex-direction: column !important;
    gap: 12px !important;
  }

  #floor-type-cards > * {
    width: 100% !important;
    max-width: 100% !important;
  }

  #hard-floor-options.active {
    flex-direction: column !important;
    gap: 12px !important;
  }

  #hard-floor-options.active > * {
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* ---- Tablet: 3 cards fit ---- */
@media (min-width: 768px) and (max-width: 1024px) {
  #hard-floor-options.active > * {
    width: 30% !important;
    min-width: 200px;
  }
}

/* =========================================================================
   SUPERIOR GLIDE — Product Page Content Styles  v3
   =========================================================================
   Scope:  .sg-product-content  (WooCommerce long description)
   Fonts:  DM Serif Display (large headings) · DM Sans (body/UI)
   Palette matched to superiorglide.com homepage
   Zero inline styles required — all styling via classes
   All selectors scoped under .sg-product-content for specificity
   ========================================================================= */


/* --- Tokens --- */
.sg-product-content {
  --sg-teal:            #237B94;
  --sg-teal-light:      #f2f9fb;
  --sg-teal-hover:      #1b6275;
  --sg-teal-border:     rgba(35,123,148,.2);
  --sg-teal-10:         rgba(35,123,148,.08);
  --sg-orange:          #237B94;
  --sg-dark:            #111827;
  --sg-body:            #374151;
  --sg-grey:            #6B7280;
  --sg-grey-light:      #9CA3AF;
  --sg-border:          #ECECEC;
  --sg-border-strong:   #D1D5DB;
  --sg-bg:              #fff;
  --sg-bg-neutral:      #F9FAFB;
  --sg-bg-good:         #F0FDF4;
  --sg-bg-good-border:  #BBF7D0;
  --sg-warn:            #b45309;
  --sg-shadow-sm:       0 1px 3px rgba(0,0,0,.04);
  --sg-shadow:          0 2px 8px rgba(0,0,0,.06);
  --sg-shadow-hover:    0 6px 20px rgba(0,0,0,.10);
  --sg-radius:          8px;
  --sg-radius-sm:       6px;
  --sg-font:            'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --sg-font-spec:       'DM Sans',sans-serif;
}


/* =======================================================================
   CONTAINER
   ======================================================================= */
.sg-product-content {
  font-family: var(--sg-font);
  font-size: 15px;
  line-height: 1.7;
  color: var(--sg-body);
  max-width: 960px;
  margin: 0 auto;
  padding: 0 1rem;
}


/* =======================================================================
   SECTIONS
   ======================================================================= */
.sg-product-content .sg-pc-section {
  margin-bottom: 2.5rem;
  padding-bottom: 2.5rem;
  border-bottom: 2px solid var(--sg-border);
}
.sg-product-content .sg-pc-section:last-child {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}


/* =======================================================================
   HERO
   ======================================================================= */
.sg-product-content .sg-pc-hero {
  background: var(--sg-bg-neutral);
  border: 1px solid var(--sg-border);
  border-radius: var(--sg-radius);
  padding: 2rem 2rem 1.75rem;
  margin-bottom: 2.5rem;
}


/* =======================================================================
   TYPOGRAPHY
   ======================================================================= */
.sg-product-content .sg-pc-h2 {
  font-family: var(--sg-font);
  font-size: 30px;
  font-weight: 800;
  line-height: 1.2;
  color: var(--sg-dark);
  margin: 0 0 1rem;
  letter-spacing: -.01em;
}
.sg-product-content .sg-pc-h3 {
  font-family: var(--sg-font);
  font-size: 22px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--sg-dark);
  margin: 0 0 .65rem;
  padding-bottom: .5rem;
  border-bottom: 2px solid var(--sg-teal);
  display: inline-block;
}
.sg-product-content .sg-pc-h4 {
  font-family: var(--sg-font);
  font-size: 16px;
  font-weight: 600;
  line-height: 1.4;
  color: var(--sg-dark);
  margin: 0 0 .25rem;
}
.sg-product-content .sg-pc-h4--teal  { color: var(--sg-teal); }
.sg-product-content .sg-pc-h4--warn  { color: var(--sg-warn); }

.sg-product-content .sg-pc-p {
  font-size: 15px;
  line-height: 1.7;
  color: var(--sg-body);
  margin: 0 0 .75rem;
}

.sg-product-content .sg-pc-lead {
  font-size: 16px;
  line-height: 1.75;
  color: var(--sg-body);
  margin: 0 0 1rem;
}
.sg-product-content .sg-pc-lead:last-child { margin-bottom: 0; }

.sg-product-content .sg-pc-small {
  font-size: 13px;
  line-height: 1.6;
  color: var(--sg-grey);
  margin: 1.5rem 0 0;
}

/* Imperial size labels inside h4 */
.sg-product-content .sg-pc-imperial {
  font-weight: 400;
  color: var(--sg-grey-light);
}

/* Card body text (tight top margin + flex grow) */
.sg-product-content .sg-pc-card-body {
  margin: .25rem 0 0;
  flex: 1;
}

/* Card internal content push — paragraph grows, button stays at bottom */
.sg-product-content .sg-pc-card > .sg-pc-p,
.sg-product-content .sg-pc-card > .sg-pc-lead {
  flex: 1;
  margin: 0;
}
.sg-product-content .sg-pc-card > .sg-pc-h4 { margin: 0; }
.sg-product-content .sg-pc-card > .sg-pc-btn { margin: 0; }


/* =======================================================================
   LINKS
   ======================================================================= */
.sg-product-content a {
  color: var(--sg-teal);
  text-decoration: underline;
  text-decoration-color: var(--sg-teal-border);
  text-underline-offset: 2px;
  transition: color .15s, text-decoration-color .15s;
}
.sg-product-content a:hover {
  color: var(--sg-teal-hover);
  text-decoration-color: var(--sg-teal-hover);
}
.sg-product-content .sg-pc-link--inherit,
.sg-product-content .sg-pc-link--inherit:link,
.sg-product-content .sg-pc-link--inherit:visited {
  color: inherit !important;
  text-decoration: none !important;
}
.sg-product-content .sg-pc-link--inherit:hover {
  color: var(--sg-teal) !important;
}


/* =======================================================================
   GRIDS
   ======================================================================= */
.sg-product-content .sg-pc-grid { display: grid; gap: 1rem; }
.sg-product-content .sg-pc-grid--cols-2 { grid-template-columns: 1fr 1fr; }
.sg-product-content .sg-pc-grid--cols-3 { grid-template-columns: 1fr 1fr 1fr; }
.sg-product-content .sg-pc-grid--split  { grid-template-columns: 1fr 1fr; gap: 2rem; }
.sg-product-content .sg-pc-grid--tight  { gap: .5rem; }


/* =======================================================================
   CARDS — flex column, space-between for even heading/text/button spacing
   ======================================================================= */
.sg-product-content .sg-pc-card {
  background: var(--sg-bg);
  border: 2px solid var(--sg-border);
  border-radius: var(--sg-radius);
  padding: 1.5rem 1.5rem;
  box-shadow: var(--sg-shadow-sm);
  transition: transform .2s, box-shadow .2s, border-color .2s;
  display: flex;
  flex-direction: column;
  gap: .75rem;
}
.sg-product-content .sg-pc-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--sg-shadow-hover);
  border-color: var(--sg-border-strong);
}
.sg-product-content .sg-pc-card--accent {
  border-color: var(--sg-teal);
  background: var(--sg-teal-light);
  box-shadow: 0 2px 12px rgba(35,123,148,.1);
}
.sg-product-content .sg-pc-card--accent:hover {
  border-color: var(--sg-teal);
  transform: none;
}


/* =======================================================================
   PANELS — flex column, space-between for even heading/text/link spacing
   ======================================================================= */
.sg-product-content .sg-pc-panel {
  border: 2px solid var(--sg-border);
  border-radius: var(--sg-radius);
  padding: 1.5rem 1.5rem;
  background: var(--sg-bg);
  display: flex;
  flex-direction: column;
  gap: .75rem;
}
.sg-product-content .sg-pc-panel > .sg-pc-h4 { margin: 0; }
.sg-product-content .sg-pc-panel > .sg-pc-p { margin: 0; flex: 1; }
.sg-product-content .sg-pc-panel > .sg-pc-panel-link { margin: 0; }
.sg-product-content .sg-pc-panel--neutral {
  background: var(--sg-bg-neutral);
  border-color: var(--sg-border);
}
.sg-product-content .sg-pc-panel--good {
  background: var(--sg-bg-good);
  border-color: var(--sg-bg-good-border);
}
.sg-product-content .sg-pc-panel--current {
  border-color: var(--sg-teal);
  background: var(--sg-teal-light);
}
/* Action link at bottom of panel — distinct from sg-pc-small (grey info text) */
.sg-product-content .sg-pc-panel-link {
  margin: 0;
  padding-top: .5rem;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.4;
}
.sg-product-content .sg-pc-panel-link a {
  text-decoration: none;
}
.sg-product-content .sg-pc-panel-link a:hover {
  text-decoration: underline;
}


/* =======================================================================
   CHIPS — floor compatibility tags
   ======================================================================= */
.sg-product-content .sg-pc-chip {
  border-radius: var(--sg-radius-sm);
  padding: .6rem .9rem;
  font-size: 14px;
  line-height: 1.4;
}
.sg-product-content .sg-pc-chip--good {
  background: var(--sg-bg-good);
  border: 1px solid var(--sg-bg-good-border);
  color: var(--sg-body);
}


/* =======================================================================
   CALLOUTS
   ======================================================================= */
.sg-product-content .sg-pc-callout {
  background: var(--sg-bg-neutral);
  border-left: 4px solid var(--sg-teal);
  border-radius: 0 var(--sg-radius-sm) var(--sg-radius-sm) 0;
  padding: 1rem 1.25rem;
  margin-top: 1.25rem;
  font-size: 14px;
  line-height: 1.65;
  color: var(--sg-body);
}
.sg-product-content .sg-pc-callout strong { color: var(--sg-dark); }


/* =======================================================================
   LISTS
   ======================================================================= */
.sg-product-content .sg-pc-list {
  list-style: none;
  padding: 0;
  margin: .5rem 0 0;
}
.sg-product-content .sg-pc-list li {
  position: relative;
  padding-left: 1.25rem;
  margin-bottom: .5rem;
  font-size: 15px;
  line-height: 1.6;
  color: var(--sg-body);
}
.sg-product-content .sg-pc-list li::before {
  content: '';
  position: absolute;
  left: 0; top: .55em;
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--sg-teal);
}


/* =======================================================================
   NUMBERED STEPS
   ======================================================================= */
.sg-product-content .sg-pc-steps {
  list-style: none;
  padding: 0;
  margin: .5rem 0 0;
  counter-reset: sg-step;
}
.sg-product-content .sg-pc-steps li {
  position: relative;
  padding-left: 2.25rem;
  margin-bottom: .85rem;
  font-size: 15px;
  line-height: 1.6;
  color: var(--sg-body);
  counter-increment: sg-step;
}
.sg-product-content .sg-pc-steps li::before {
  content: counter(sg-step);
  position: absolute;
  left: 0; top: .05em;
  width: 1.6rem; height: 1.6rem;
  border-radius: 50%;
  background: var(--sg-teal);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}


/* =======================================================================
   BADGES
   ======================================================================= */
.sg-product-content .sg-pc-badge {
  display: inline-block;
  font-family: var(--sg-font-spec);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--sg-teal);
  background: var(--sg-teal-light);
  border: 1px solid var(--sg-teal-border);
  border-radius: 4px;
  padding: 3px 10px;
  margin-left: .5rem;
  vertical-align: middle;
}


/* =======================================================================
   BUTTONS
   sg-btn-secondary style: 4px radius, teal outline
   Uses a.sg-pc-btn for max specificity over theme a:hover overrides
   ======================================================================= */
.sg-product-content a.sg-pc-btn,
.sg-product-content a.sg-pc-btn:link,
.sg-product-content a.sg-pc-btn:visited {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  color: #237B94 !important;
  background: transparent !important;
  border: 2px solid #237B94 !important;
  border-radius: 4px !important;
  padding: 10px 24px !important;
  min-height: 38px !important;
  text-decoration: none !important;
  cursor: pointer !important;
  box-sizing: border-box !important;
  transition: all .18s ease-in-out !important;
  margin-top: auto;
  align-self: flex-start;
}
.sg-product-content a.sg-pc-btn:hover,
.sg-product-content a.sg-pc-btn:focus {
  background: rgba(35,123,148,.05) !important;
  border-color: #1b6275 !important;
  color: #1b6275 !important;
  text-decoration: none !important;
}

/* Accent card: filled teal with WHITE text — max specificity */
.sg-product-content .sg-pc-card--accent a.sg-pc-btn,
.sg-product-content .sg-pc-card--accent a.sg-pc-btn:link,
.sg-product-content .sg-pc-card--accent a.sg-pc-btn:visited,
.sg-product-content .sg-pc-card--accent a.sg-pc-btn:hover,
.sg-product-content .sg-pc-card--accent a.sg-pc-btn:focus {
  background: #237B94 !important;
  color: #ffffff !important;
  border-color: #237B94 !important;
  cursor: default !important;
  pointer-events: none;
  opacity: .85;
}


/* =======================================================================
   COMPARISON ROWS
   ======================================================================= */
.sg-product-content .sg-pc-compare { display: flex; flex-direction: column; }
.sg-product-content .sg-pc-compare-row {
  padding: 1.5rem 0 1.5rem 1.25rem;
  border-bottom: 1px solid var(--sg-border);
  border-left: 3px solid var(--sg-border);
  background: transparent;
  transition: border-left-color .2s, background .2s;
}
.sg-product-content .sg-pc-compare-row:hover {
  border-left-color: var(--sg-teal);
  background: linear-gradient(90deg, var(--sg-teal-10) 0%, transparent 40%);
}
.sg-product-content .sg-pc-compare-row:last-child { border-bottom: none; padding-bottom: 0; }
.sg-product-content .sg-pc-compare-row .sg-pc-h4 {
  color: var(--sg-teal);
  font-size: 17px;
  font-weight: 700;
  margin-bottom: .5rem;
}


/* =======================================================================
   STACKS & BLOCKS (materials section + related products)
   ======================================================================= */
.sg-product-content .sg-pc-stack { display: flex; flex-direction: column; gap: 2.25rem; }
.sg-product-content .sg-pc-block {
  padding-left: 1.25rem;
  border-left: 3px solid var(--sg-border);
  transition: border-color .2s;
}
.sg-product-content .sg-pc-block:hover { border-left-color: var(--sg-teal); }
.sg-product-content .sg-pc-block .sg-pc-h4 { margin-bottom: .5rem; }
.sg-product-content .sg-pc-block--flex {
  display: flex;
  flex-direction: column;
}
.sg-product-content .sg-pc-block--flex .sg-pc-related { margin-top: auto; }

/* Measurement step cards */
.sg-product-content .sg-pc-feature {
  background: var(--sg-bg-neutral);
  border-radius: var(--sg-radius-sm);
  padding: 1rem 1.25rem;
  border: 1px solid var(--sg-border);
}


/* =======================================================================
   RELATED PRODUCTS
   ======================================================================= */
.sg-product-content .sg-pc-related { margin-top: .75rem; }
.sg-product-content .sg-pc-related a {
  font-weight: 600;
  font-size: 15px;
  text-decoration: none;
}
.sg-product-content .sg-pc-related a:hover { text-decoration: underline; }

.sg-product-content .sg-pc-related--centered {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem .75rem;
}
.sg-product-content .sg-pc-related--centered a {
  font-weight: 500;
  font-size: 13.5px;
  background: var(--sg-bg-neutral);
  border: 1px solid var(--sg-border);
  border-radius: var(--sg-radius-sm);
  padding: .5rem .9rem;
  transition: background .15s, border-color .15s;
}
.sg-product-content .sg-pc-related--centered a:hover {
  background: var(--sg-teal-light);
  border-color: var(--sg-teal-border);
  text-decoration: none;
}

/* Sub-group wrapper inside Related Products section */
.sg-product-content .sg-pc-related-group {
  margin-top: 2.25rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--sg-border);
}
.sg-product-content .sg-pc-related-group:first-of-type {
  margin-top: 1.75rem;
}
.sg-product-content .sg-pc-related-group > .sg-pc-h4 {
  margin-bottom: .75rem;
}


/* =======================================================================
   SPACING UTILITIES
   ======================================================================= */
.sg-product-content .sg-pc-mt-sm  { margin-top: .5rem; }
.sg-product-content .sg-pc-mt     { margin-top: 1.25rem; }


/* =======================================================================
   RESPONSIVE
   ======================================================================= */
@media (max-width: 1024px) {
  .sg-product-content .sg-pc-grid--cols-3 { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 768px) {
  .sg-product-content { padding: 0 .75rem; }
  .sg-product-content .sg-pc-hero { padding: 1.5rem 1.25rem; }
  .sg-product-content .sg-pc-h2 { font-size: 24px; }
  .sg-product-content .sg-pc-h3 { font-size: 19px; }
  .sg-product-content .sg-pc-section { margin-bottom: 2rem; padding-bottom: 2rem; }
  .sg-product-content .sg-pc-card,
  .sg-product-content .sg-pc-panel { padding: 1rem 1.15rem; }
  .sg-product-content .sg-pc-grid--cols-2,
  .sg-product-content .sg-pc-grid--cols-3,
  .sg-product-content .sg-pc-grid--split { grid-template-columns: 1fr; }
  .sg-product-content .sg-pc-compare-row { padding-left: .85rem; }
  .sg-product-content .sg-pc-block { padding-left: .85rem; }
}
/* Force left-align on all product content text */
.sg-pc-section,
.sg-pc-section p,
.sg-pc-section li,
.sg-pc-section ul,
.sg-pc-section ol,
.sg-pc-card,
.sg-pc-panel,
.sg-pc-compare-row {
  text-align: left !important;
}

/* =======================================================================
   SUPERIOR GLIDE — FAQ Accordion
   ======================================================================= */
.sg-faqs {
  max-width: 960px;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.sg-faq {
  border-bottom: 1px solid #ECECEC;
}
.sg-faq:last-child {
  border-bottom: none;
}

.sg-faq__q {
  font-family: 'DM Sans', -apple-system, sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.4;
  color: #111827;
  padding: 20px 40px 20px 0;
  cursor: pointer;
  position: relative;
  list-style: none;
}

.sg-faq__q::-webkit-details-marker { display: none; }
.sg-faq__q::marker { display: none; content: ''; }

.sg-faq__q::after {
  content: '';
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%) rotate(0deg);
  width: 20px;
  height: 20px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23237B94' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") center/contain no-repeat;
  transition: transform .2s ease;
}
.sg-faq[open] .sg-faq__q::after {
  transform: translateY(-50%) rotate(180deg);
}

.sg-faq__a {
  font-family: 'DM Sans', -apple-system, sans-serif;
  font-size: 15px;
  line-height: 1.7;
  color: #374151;
  padding: 0 0 20px;
}
.sg-faq__a p {
  margin: 0 0 .5rem;
}
.sg-faq__a p:last-child {
  margin-bottom: 0;
}
.sg-faq__a a {
  color: #237B94;
  text-decoration: underline;
  text-decoration-color: rgba(35,123,148,.2);
  text-underline-offset: 2px;
}
.sg-faq__a a:hover {
  color: #1b6275;
  text-decoration-color: #1b6275;
}

.sg-faq__q:hover {
  color: #237B94;
}

@media (max-width: 768px) {
  .sg-faq__q {
    font-size: 15px;
    padding: 16px 36px 16px 0;
  }
  .sg-faq__a {
    font-size: 14px;
    padding: 0 0 16px;
  }
  .sg-faq__q::after {
    width: 18px;
    height: 18px;
  }
}

@media (max-width: 480px) {
  .sg-faq__q {
    font-size: 14px;
    padding: 14px 32px 14px 0;
  }
  .sg-faq__a {
    font-size: 14px;
    padding: 0 0 14px;
  }
}

/* Newsletter form — inline on desktop, stacked on mobile */
.footer-outer .elementor-form {
  width: 100% !important;
  max-width: 600px;
  margin: 0 auto;
}

.footer-outer .elementor-form-fields-wrapper {
  display: flex !important;
  width: 100% !important;
  gap: 10px;
  justify-content: space-between;
  align-items: stretch;
  flex-wrap: nowrap !important;
}

.footer-outer .elementor-field-group {
  flex: 1 1 0 !important;
  min-width: 0;
}

.footer-outer .elementor-field-group:not(.elementor-field-type-submit) {
  min-width: 160px;
}

.footer-outer .elementor-field-group.elementor-field-type-submit {
  flex: 0 0 auto !important;
}

.footer-outer .elementor-field,
.footer-outer .elementor-button {
  width: 100%;
}

@media (max-width: 767px) {
  .footer-outer .elementor-form-fields-wrapper {
    flex-wrap: wrap !important;
  }
  .footer-outer .elementor-field-group {
    flex: 0 0 100% !important;
    min-width: 0 !important;
  }
  .footer-outer .elementor-field-group.elementor-field-type-submit {
    width: 100% !important;
    flex: 0 0 100% !important;
  }
  .footer-outer .elementor-field-group.elementor-field-type-submit .elementor-button {
    width: 100% !important;
  }
}

/* ============================================================
   1) DESKTOP STICKY SIDEBAR
   ============================================================ */
@media (min-width: 1025px) {
  .sg-sticky-sidebar {
    position: -webkit-sticky !important;
    position: sticky !important;
    top: 100px !important;
    z-index: 100;
    height: fit-content;
  }
}

/* ============================================================
   2) ACCORDION HEADERS (DESKTOP + MOBILE)
   ============================================================ */
.facetwp-facet-label, .facet-accordion h3, .facet-wrap > h3, .facetwp-flyout-content h3 {
  position: relative !important;
  display: block !important;
  border-bottom: 1px solid #ececec !important;
  padding: 12px 35px 12px 0 !important;
  margin: 0 0 10px 0 !important;
  color: #00334e !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
  transition: background-color 0.2s ease, color 0.2s ease !important;
}

.facet-wrap > h3.has-selections,
.facetwp-flyout .flyout-row > h3.has-selections {
  background-color: #f0f8fa !important;
  color: #237B94 !important;
}

.facetwp-facet-label::after, .facet-accordion h3::after, .facet-wrap > h3::after, .facetwp-flyout-content h3::after {
  content: '\2b' !important;
  position: absolute !important;
  right: 10px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  transition: transform 0.2s ease !important;
}

.facet-wrap > h3.active::after,
.facetwp-flyout .flyout-row > h3.active::after {
  content: '\2212' !important;
  transform: translateY(-50%) rotate(0deg) !important;
}

.facet-wrap > h3 .selection-count,
.facetwp-flyout .flyout-row > h3 .selection-count {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 22px !important;
  height: 22px !important;
  padding: 0 6px !important;
  margin-left: 8px !important;
  background: #237B94 !important;
  color: #ffffff !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  border-radius: 999px !important;
  line-height: 1 !important;
}

/* ============================================================
   3) DESKTOP ACCORDION
   ============================================================ */
@media (min-width: 1025px) {
  .facet-wrap > h3.active ~ .facetwp-facet {
    display: block !important;
  }
}

/* ============================================================
   4) MOBILE FLYOUT ACCORDION
   ============================================================ */
@media (max-width: 1024px) {
  .facetwp-flyout .flyout-item {
    display: none;
  }

  .facetwp-flyout .flyout-row > h3.active ~ .flyout-item {
    display: block !important;
  }
}

/* ============================================================
   5) ALWAYS VISIBLE: Pager, Reset, Selections
   ============================================================ */
.facetwp-facet.facetwp-type-pager,
.facetwp-facet.facetwp-type-reset,
.facetwp-selections,
.name-sg_reset_all .flyout-item,
[data-name="reset_all"] .facetwp-facet {
  display: block !important;
}

[class*="reset_all"] h3,
[class*="reset_all"] .facetwp-facet-label,
.facetwp-type-reset h3 {
  display: none !important;
  border: none !important;
}

/* ============================================================
   6) SCROLLABLE FACETS
   ============================================================ */
[data-name="sg_floor_type"],
[data-name="sg_size"],
[data-name="sg_feature"],
[data-name="sg_color"] {
  max-height: 260px !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  padding-right: 8px !important;
}

[data-name="sg_floor_type"]::-webkit-scrollbar,
[data-name="sg_size"]::-webkit-scrollbar,
[data-name="sg_feature"]::-webkit-scrollbar,
[data-name="sg_color"]::-webkit-scrollbar {
  width: 6px;
}

[data-name="sg_floor_type"]::-webkit-scrollbar-track,
[data-name="sg_size"]::-webkit-scrollbar-track,
[data-name="sg_feature"]::-webkit-scrollbar-track,
[data-name="sg_color"]::-webkit-scrollbar-track {
  background: #f4f4f4;
  border-radius: 3px;
}

[data-name="sg_floor_type"]::-webkit-scrollbar-thumb,
[data-name="sg_size"]::-webkit-scrollbar-thumb,
[data-name="sg_feature"]::-webkit-scrollbar-thumb,
[data-name="sg_color"]::-webkit-scrollbar-thumb {
  background: #c4c4c4;
  border-radius: 3px;
}

[data-name="sg_floor_type"]::-webkit-scrollbar-thumb:hover:hover,
[data-name="sg_size"]::-webkit-scrollbar-thumb:hover,
[data-name="sg_feature"]::-webkit-scrollbar-thumb:hover,
[data-name="sg_color"]::-webkit-scrollbar-thumb:hover {
  background: #999;
}

.sg-custom-search {
  width: 100% !important;
  border: 1px solid #ececec !important;
  border-radius: 6px !important;
  padding: 10px 12px !important;
  margin-bottom: 12px !important;
  background: #ffffff !important;
  font-size: 14px !important;
  color: #00334e !important;
  outline: none !important;
  transition: border-color 0.2s ease !important;
}

.sg-custom-search:focus {
  border-color: #237B94 !important;
}

@media (max-width: 1024px) {
  .facetwp-flyout .sg-custom-search {
    margin: 0 0 12px 0 !important;
  }

  .facetwp-flyout [data-name="sg_floor_type"],
  .facetwp-flyout   .facetwp-flyout [data-name="sg_size"],
  .facetwp-flyout [data-name="sg_feature"],
  .facetwp-flyout [data-name="sg_color"] {
    max-height: 200px !important;
  }
}

/* ============================================================
   7) USER SELECTION PILLS (desktop + flyout)
   ============================================================ */
.facetwp-selections .facetwp-selection-label { display: none !important; }

.facetwp-selections {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 20px 12px !important;
  margin: 20px 0 30px 0 !important;
  width: 100% !important;
}

.facetwp-selection-value {
  background: #f4f4f4 !important;
  color: #00334e !important;
  padding: 10px 18px !important;
  border-radius: 999px !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  border: 1px solid #237B94 !important;
  cursor: pointer !important;
  display: inline-flex !important;
  align-items: center !important;
  white-space: nowrap !important;
  margin-bottom: 5px !important;
  transition: all 0.2s ease !important;
}

.facetwp-selection-value:hover {
  background: #237B94 !important;
  color: #ffffff !important;
}

.facetwp-selection-value:after {
  content: "\00d7" !important;
  margin-left: 12px !important;
  font-size: 20px !important;
  color: #237B94 !important;
  line-height: 1 !important;
  display: inline-block !important;
  transition: color 0.2s ease !important;
}

.facetwp-selection-value:hover:after {
  color: #ffffff !important;
}

@media (max-width: 1024px) {
  .facetwp-flyout .sg-flyout-selections {
    padding: 10px 0 14px 0 !important;
    border-bottom: 1px solid #ececec !important;
    margin-bottom: 12px !important;
    display: none;
  }
  .facetwp-flyout .sg-flyout-pending {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 12px !important;
  }
}

/* ============================================================
   8) MOBILE FLYOUT BUTTON + CLOSE ICON
   ============================================================ */
@media (max-width: 1024px) {
  .facetwp-flyout-open {
    position: fixed !important;
    bottom: 25px !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    z-index: 9999 !important;
    background: #237B94 !important;
    padding: 10px 25px !important;
    border-radius: 50px !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15) !important;
  }

  .facetwp-flyout-open button, .facetwp-flyout-open .elementor-button {
    background: transparent !important;
    color: #ffffff !important;
    border: none !important;
    padding: 0 !important;
  }

  .facetwp-flyout-close {
    position: absolute !important;
    font-size: 40px !important;
    width: 44px !important;
    height: 44px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    top: 10px !important;
    right: 15px !important;
    color: #00334e !important;
    cursor: pointer !important;
    z-index: 100 !important;
  }

  .facetwp-flyout-close::after,
  .facetwp-flyout-close::before {
    content: none !important;
    display: none !important;
  }

  .facetwp-flyout .facetwp-flyout-content {
    padding-top: 60px !important;
  }

  .facetwp-flyout::after,
  .facetwp-flyout::before,
  .facetwp-flyout.active::after,
  .facetwp-flyout.active::before {
    content: none !important;
    display: none !important;
  }
}

/* ============================================================
   9) FLYOUT APPLY + RESET BAR (MOBILE)
   ============================================================ */
@media (max-width: 1024px) {
  .facetwp-flyout .facetwp-flyout-content { padding-bottom: 110px !important; }

  .facetwp-flyout .sg-fwp-controls {
    position: sticky !important;
    bottom: 0 !important;
    left: 0;
    right: 0;
    z-index: 99999 !important;
    display: flex !important;
    gap: 10px !important;
    padding: 12px 16px !important;
    background: #ffffff !important;
    border-top: 1px solid #ececec !important;
  }

  .facetwp-flyout .sg-fwp-controls .sg-fwp-reset {
    flex: 1 1 auto !important;
    min-height: 48px !important;
    border-radius: 999px !important;
    border: 2px solid #237B94 !important;
    background: transparent !important;
    color: #237B94 !important;
    font-family: 'DM Sans', system-ui, sans-serif !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
  }

  .facetwp-flyout .sg-fwp-controls .sg-fwp-reset:hover {
    background: #f0f8fa !important;
  }

  .facetwp-flyout .sg-fwp-controls .sg-fwp-apply {
    flex: 1 1 auto !important;
    min-height: 48px !important;
    border-radius: 999px !important;
    border: 0 !important;
    background: #237B94 !important;
    color: #ffffff !important;
    font-family: 'DM Sans', system-ui, sans-serif !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    box-shadow: 0 6px 18px rgba(0,0,0,0.12) !important;
    transition: all 0.2s ease !important;
  }

  .facetwp-flyout .sg-fwp-controls .sg-fwp-apply:hover {
    background: #1d6478 !important;
  }
}

/* ============================================================
   10) DESKTOP: RESET + LOAD MORE BUTTONS
   ============================================================ */
@media (min-width: 1025px) {
  .facetwp-reset {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 48px !important;
    padding: 0 20px !important;
    border-radius: 999px !important;
    border: 2px solid #237B94 !important;
    background: transparent !important;
    color: #237B94 !important;
    font-family: 'DM Sans', system-ui, sans-serif !important;
    font-weight: 600 !important;
    font-size: 15px !important;
    line-height: 1 !important;
    text-decoration: none !important;
    box-shadow: none !important;
    cursor: pointer !important;
    margin: 0 !important;
    transition: all 0.2s ease !important;
  }

  .facetwp-reset:hover {
    background: #f0f8fa !important;
  }

  .facetwp-reset::after { display: none !important; content: none !important; }

  .facetwp-load-more {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 48px !important;
    padding: 0 22px !important;
    border-radius: 999px !important;
    border: 0 !important;
    background: #237B94 !important;
    color: #ffffff !important;
    font-family: 'DM Sans', system-ui, sans-serif !important;
    font-weight: 600 !important;
    font-size: 15px !important;
    line-height: 1 !important;
    cursor: pointer !important;
    box-shadow: 0 6px 18px rgba(0,0,0,.12) !important;
    transition: all 0.2s ease !important;
  }

  .facetwp-load-more:hover {
    background: #1d6478 !important;
  }
}

.facetwp-counter {
    display: none !important;
}
/* ============================================================
   11) COLLAPSE HIDDEN FACET-WRAP GAPS
   ============================================================ */
.facet-wrap[style*="display: none"],
.facet-wrap[style*="display:none"] {
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  height: 0 !important;
  overflow: hidden !important;
}

@media print {
    /* Hide all site chrome */
    header,
    footer,
    .site-header,
    .site-footer,
    .main-navigation,
    .woocommerce-breadcrumb,
    .sg-sticky-nav,
    .elementor-location-header,
    .elementor-location-footer,
    form.cart,
    .cart-collaterals,
    .product_meta,
    .woocommerce-tabs ul.tabs,
    .related.products,
    .upsells,
    #sg-reviews,
    .woocommerce-Reviews,
    .newsletter-section,
    #wpadminbar,
    .sg-trust-bar,
    .b2bking-wrapper,
    .fibosearch-bar,
    .sg-pc-btn,
    .sg-pc-related,
    .sg-pc-related-group,
    .sg-pc-panel-link {
        display: none !important;
    }

    /* Clean up body */
    body {
        font-size: 11pt;
        line-height: 1.5;
        color: #000 !important;
        background: #fff !important;
        margin: 0;
        padding: 0;
    }

    /* Make links black, no underlines */
    a {
        color: #000 !important;
        text-decoration: none !important;
    }

    /* Force all containers full width */
    .elementor-widget-wrap,
    .elementor-element,
    .elementor-container,
    .elementor-column,
    .elementor-column-wrap,
    .elementor-widget,
    .sg-product-content,
    .sg-pc-section,
    .sg-pc-hero {
        width: 100% !important;
        max-width: 100% !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    /* Force single column on all grids */
    .sg-pc-grid,
    .sg-pc-grid--cols-2,
    .sg-pc-grid--cols-3,
    .sg-pc-grid--split {
        display: block !important;
        width: 100% !important;
    }

    .sg-pc-grid > div,
    .sg-pc-grid > * {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        float: none !important;
        margin-bottom: 0.5rem;
    }

    /* Fix lists */
    ul, ol,
    .sg-pc-list,
    .sg-pc-steps {
        width: 100% !important;
        max-width: 100% !important;
        padding-left: 1.5em !important;
    }

    .sg-pc-list li,
    .sg-pc-steps li {
        width: 100% !important;
        max-width: 100% !important;
        display: list-item !important;
    }

    /* Remove decorative styling from cards/panels */
    .sg-pc-card,
    .sg-pc-panel,
    .sg-pc-callout,
    .sg-pc-chip,
    .sg-pc-block,
    .sg-pc-compare-row {
        border: 1px solid #ccc !important;
        box-shadow: none !important;
        background: #fff !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    /* Accent cards lose color */
    .sg-pc-card--accent,
    .sg-pc-panel--current {
        border-color: #999 !important;
        background: #f9f9f9 !important;
    }

    /* Floor chips inline */
    .sg-pc-grid--tight {
        display: block !important;
    }

    .sg-pc-chip {
        display: block !important;
        width: 100% !important;
        margin-bottom: 0.25rem;
    }

    /* Keep images but limit width */
    img {
        max-width: 100% !important;
    }

    /* Page break control — both syntaxes for Firefox + Chrome */
    h2, h3 {
        page-break-after: avoid;
        break-after: avoid;
    }

    .sg-pc-section {
        page-break-inside: avoid;
        break-inside: avoid;
    }
}

/* =========================================================================
   SUPERIOR GLIDE — Homepage Final CSS
   Single consolidated stylesheet for all homepage sections.
   Replaces all previous SG hero / homepage v2 / shop snippets.
   ========================================================================= */


/* =========================================================================
   1. HERO SECTION (sg-hero-2026)
   Full-bleed environmental dining-room photo with white text overlay.
   ========================================================================= */

.sg-hero-2026 {
    position: relative;
    overflow: hidden;
    width: 100%;
}

/* Soft vignette darkening the left side of the photo where the headline sits.
   Layered ON TOP of Elementor's gradient overlay. */
.sg-hero-2026::after {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(
        ellipse at 28% 50%,
        rgba(0, 0, 0, 0.30) 0%,
        rgba(0, 0, 0, 0) 65%
    );
    pointer-events: none;
    z-index: 1;
}

.sg-hero-2026 > .e-con-inner,
.sg-hero-2026 .sg-hero-2026__content {
    position: relative;
    z-index: 2;
}

.sg-hero-2026__content {
    max-width: 640px;
}

.sg-hero-2026__h1 {
    text-shadow: 0 2px 24px rgba(0, 0, 0, 0.4);
}

.sg-hero-2026__sub p {
    margin: 0 !important;
    max-width: 580px;
    text-shadow: 0 1px 12px rgba(0, 0, 0, 0.35);
}

.sg-hero-2026__trust {
    margin: 22px 0 0 0 !important;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 12px;
    text-shadow: 0 1px 8px rgba(0, 0, 0, 0.45);
}

.sg-hero-2026__dot {
    opacity: 0.5;
    font-size: 0.9em;
    line-height: 1;
}


/* =========================================================================
   2. SHOP BY TYPE SECTION (sg-shop-2026)
   Six product router cards with cream image panel + white body.
   ========================================================================= */

.sg-shop-2026 {
    overflow: hidden;
}

.sg-shop-card {
    overflow: hidden;
    transition: transform 0.25s cubic-bezier(0.16, 0.84, 0.32, 1),
                box-shadow 0.25s ease,
                border-color 0.25s ease;
    will-change: transform;
    cursor: pointer;
    text-decoration: none !important;
}

.sg-shop-card:hover {
    transform: translateY(-4px);
    border-color: #DDEBF2 !important;
}

.sg-shop-card:hover .e-con-inner {
    box-shadow: 0 12px 28px rgba(35, 123, 148, 0.10) !important;
}

.sg-shop-card__img-wrap {
    transition: background-color 0.25s ease;
}

.sg-shop-card:hover .sg-shop-card__img-wrap {
    background-color: #F0F7FA !important;
}

.sg-shop-card__img img {
    display: block !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: 180px !important;
    width: auto !important;
    object-fit: contain;
    transition: transform 0.4s cubic-bezier(0.16, 0.84, 0.32, 1);
}

.sg-shop-card:hover .sg-shop-card__img img {
    transform: scale(1.04);
}

.sg-shop-card__body p {
    margin: 0 !important;
}

.sg-shop-card__eyebrow {
    font-family: 'DM Sans', sans-serif;
    font-size: 11px !important;
    font-weight: 600;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    color: #237B94;
    margin: 0 !important;
}

.sg-shop-card__title {
    margin: 0 !important;
}

.sg-shop-card__link {
    font-family: 'DM Sans', sans-serif;
    font-size: 14px !important;
    font-weight: 600;
    color: #237B94;
    margin-top: 8px !important;
    transition: color 0.2s ease;
}

.sg-shop-card__arrow {
    display: inline-block;
    margin-left: 4px;
    transition: transform 0.25s cubic-bezier(0.16, 0.84, 0.32, 1);
}

.sg-shop-card:hover .sg-shop-card__link {
    color: #1B6275;
}

.sg-shop-card:hover .sg-shop-card__arrow {
    transform: translateX(4px);
}


/* =========================================================================
   3. PROOF SECTION (sg-proof-2026)
   Three testimonial cards with environmental photos + stats row.
   ========================================================================= */

.sg-proof-2026 {
    overflow: hidden;
}

.sg-proof-card {
    overflow: hidden;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
    will-change: transform;
}

.sg-proof-card:hover {
    transform: translateY(-3px);
}

.sg-proof-card:hover .e-con-inner > div {
    box-shadow: 0 12px 32px rgba(35, 123, 148, 0.10) !important;
}

.sg-proof-card__img {
    display: block;
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
}

.sg-proof-card__img img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-top-left-radius: 11px;
    border-top-right-radius: 11px;
}

.sg-proof-card__body {
    padding: 28px !important;
}

.sg-proof-card__quote::before {
    content: "\201C";
    display: block;
    font-family: 'Georgia', serif;
    font-size: 56px;
    line-height: 0.5;
    margin-top: 12px;
    margin-bottom: 12px;
    color: #237B94;
    opacity: 0.5;
}

.sg-proof-card__quote p {
    margin: 0 !important;
}

.sg-proof-card__attribution {
    margin-top: 4px !important;
    padding-top: 16px !important;
    border-top: 1px solid #E5EEF3;
}

.sg-proof-card__attribution p {
    margin: 0 !important;
    line-height: 1.4;
}

.sg-proof-card__name {
    font-family: 'DM Sans', sans-serif;
    font-weight: 600;
    font-size: 15px;
    color: #1F2937;
}

.sg-proof-card__org {
    font-family: 'DM Sans', sans-serif;
    font-weight: 400;
    font-size: 13px;
    color: #6B7280;
    margin-top: 2px !important;
}

.sg-proof-stat__num {
    margin: 0 !important;
}


/* =========================================================================
   4. FINAL CTA SECTION (sg-finalcta-2026)
   Dark environmental hero, smaller than main hero, evening dining room.
   ========================================================================= */

.sg-finalcta-2026 {
    position: relative;
    overflow: hidden;
}

.sg-finalcta-2026::after {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(
        ellipse at 50% 50%,
        rgba(0, 0, 0, 0.20) 0%,
        rgba(0, 0, 0, 0) 70%
    );
    pointer-events: none;
    z-index: 1;
}

.sg-finalcta-2026 > .e-con-inner,
.sg-finalcta-2026 .sg-finalcta-2026__content {
    position: relative;
    z-index: 2;
}

.sg-finalcta-2026__h2 {
    text-shadow: 0 2px 18px rgba(0, 0, 0, 0.45);
}

.sg-finalcta-2026__sub p {
    margin: 0 !important;
    text-shadow: 0 1px 10px rgba(0, 0, 0, 0.4);
}


/* =========================================================================
   5. BUTTON OVERRIDES FOR DARK SECTIONS
   Your global sg-btn-secondary uses teal-on-light. On dark photo backgrounds,
   that combination has poor contrast. These rules override the secondary's
   color ONLY when inside the hero or final CTA. Global system stays clean.
   ========================================================================= */

/* Hero — primary button gets stronger shadow to lift off the photo */
.sg-hero-2026 .sg-btn-primary .elementor-button {
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.30) !important;
}
.sg-hero-2026 .sg-btn-primary .elementor-button:hover {
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.40) !important;
}

/* Hero — secondary becomes white outline */
.sg-hero-2026 .sg-btn-secondary .elementor-button,
.sg-hero-2026 .sg-btn-secondary .elementor-button:link,
.sg-hero-2026 .sg-btn-secondary .elementor-button:visited {
    background: transparent !important;
    border-color: rgba(255, 255, 255, 0.65) !important;
    color: #ffffff !important;
}
.sg-hero-2026 .sg-btn-secondary .elementor-button:hover {
    background: #ffffff !important;
    border-color: #ffffff !important;
    color: #1A1A1A !important;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25) !important;
}
.sg-hero-2026 .sg-btn-secondary .elementor-button:active {
    background: rgba(255, 255, 255, 0.92) !important;
    border-color: rgba(255, 255, 255, 0.92) !important;
    color: #1A1A1A !important;
}

/* Final CTA — same overrides as hero */
.sg-finalcta-2026 .sg-btn-primary .elementor-button {
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.30) !important;
}
.sg-finalcta-2026 .sg-btn-primary .elementor-button:hover {
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.40) !important;
}

.sg-finalcta-2026 .sg-btn-secondary .elementor-button,
.sg-finalcta-2026 .sg-btn-secondary .elementor-button:link,
.sg-finalcta-2026 .sg-btn-secondary .elementor-button:visited {
    background: transparent !important;
    border-color: rgba(255, 255, 255, 0.65) !important;
    color: #ffffff !important;
}
.sg-finalcta-2026 .sg-btn-secondary .elementor-button:hover {
    background: #ffffff !important;
    border-color: #ffffff !important;
    color: #1A1A1A !important;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25) !important;
}
.sg-finalcta-2026 .sg-btn-secondary .elementor-button:active {
    background: rgba(255, 255, 255, 0.92) !important;
    border-color: rgba(255, 255, 255, 0.92) !important;
    color: #1A1A1A !important;
}


/* =========================================================================
   6. CREAM-ON-CREAM SEPARATOR
   When two cream sections sit back-to-back (e.g. Comparison + Materials,
   or Proof + FAQ), a hairline divider keeps them from blurring together.
   The .sg-cream class is added to all editorial cream-background sections.
   ========================================================================= */

.sg-cream + .sg-cream {
    position: relative;
}

.sg-cream + .sg-cream::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 80px;
    height: 1px;
    background: linear-gradient(
        90deg,
        rgba(213, 199, 174, 0) 0%,
        rgba(213, 199, 174, 0.6) 50%,
        rgba(213, 199, 174, 0) 100%
    );
    pointer-events: none;
    z-index: 1;
}


/* =========================================================================
   7. RESPONSIVE BREAKPOINTS
   ========================================================================= */

/* Laptop (1025–1365px) */
@media (max-width: 1024px) {
    .sg-hero-2026 {
        background-position: 65% center !important;
    }
    .sg-hero-2026__content {
        max-width: 560px;
    }
    .sg-shop-card__img img {
        max-height: 160px !important;
    }
    .sg-proof-card__body {
        padding: 24px !important;
    }
}

/* Tablet portrait (768–880px) */
@media (max-width: 880px) {
    .sg-hero-2026::after {
        background: linear-gradient(
            180deg,
            rgba(0, 0, 0, 0.18) 0%,
            rgba(0, 0, 0, 0.50) 100%
        );
    }
    .sg-finalcta-2026 {
        background-position: 50% center !important;
    }
    .sg-finalcta-2026::after {
        background: linear-gradient(
            180deg,
            rgba(0, 0, 0, 0.20) 0%,
            rgba(0, 0, 0, 0.50) 100%
        );
    }
}

/* Mobile (under 600px) */
@media (max-width: 600px) {
    /* Hero */
    .sg-hero-2026__content {
        max-width: 100%;
    }
    .sg-hero-2026__h1 {
        text-shadow: 0 2px 18px rgba(0, 0, 0, 0.6) !important;
    }
    .sg-hero-2026__sub p {
        text-shadow: 0 1px 10px rgba(0, 0, 0, 0.55);
    }
    .sg-hero-2026__buttons .elementor-button {
        width: 100%;
        justify-content: center;
    }

    /* Shop cards */
    .sg-shop-card__img img {
        max-height: 140px !important;
    }
    .sg-shop-card__title {
        font-size: 18px !important;
    }
    /* Disable hover on touch — looks weird when tap stays active */
    .sg-shop-card:hover {
        transform: none;
    }
    .sg-shop-card:hover .sg-shop-card__img img {
        transform: none;
    }

    /* Proof cards */
    .sg-proof-card__body {
        padding: 20px !important;
    }
    .sg-proof-card__quote::before {
        font-size: 44px;
        margin-bottom: 8px;
    }

    /* Final CTA */
    .sg-finalcta-2026__h2 {
        text-shadow: 0 2px 14px rgba(0, 0, 0, 0.55) !important;
    }
    .sg-finalcta-2026__sub p {
        text-shadow: 0 1px 8px rgba(0, 0, 0, 0.5);
    }
    .sg-finalcta-2026__buttons .elementor-button {
        width: 100%;
        justify-content: center;
    }

    /* Cream-on-cream separator gets thinner on mobile */
    .sg-cream + .sg-cream::before {
        width: 60px;
    }
}


/* =========================================================================
   8. ENTRANCE ANIMATIONS
   Soft fade-up on hero load and on first scroll-into-view for cards.
   Disabled when user prefers reduced motion.
   ========================================================================= */

/* Hero animation — runs on page load */
.sg-hero-2026__h1,
.sg-hero-2026__sub p,
.sg-hero-2026__buttons,
.sg-hero-2026__trust {
    opacity: 0;
    transform: translateY(12px);
    animation: sgHeroFade 0.9s cubic-bezier(0.16, 0.84, 0.32, 1) forwards;
    will-change: opacity, transform;
}
.sg-hero-2026__h1     { animation-delay: 0.10s; }
.sg-hero-2026__sub p  { animation-delay: 0.28s; }
.sg-hero-2026__buttons { animation-delay: 0.46s; }
.sg-hero-2026__trust  { animation-delay: 0.62s; }

@keyframes sgHeroFade {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Card stagger animations — run on first paint */
@media (prefers-reduced-motion: no-preference) {
    .sg-shop-card,
    .sg-proof-card {
        opacity: 0;
        transform: translateY(16px);
        animation: sgCardFade 0.7s cubic-bezier(0.16, 0.84, 0.32, 1) forwards;
    }
    .sg-shop-grid > .sg-shop-card:nth-child(1) { animation-delay: 0.05s; }
    .sg-shop-grid > .sg-shop-card:nth-child(2) { animation-delay: 0.12s; }
    .sg-shop-grid > .sg-shop-card:nth-child(3) { animation-delay: 0.19s; }
    .sg-shop-grid > .sg-shop-card:nth-child(4) { animation-delay: 0.26s; }
    .sg-shop-grid > .sg-shop-card:nth-child(5) { animation-delay: 0.33s; }
    .sg-shop-grid > .sg-shop-card:nth-child(6) { animation-delay: 0.40s; }
    .sg-proof-cards > .sg-proof-card:nth-child(1) { animation-delay: 0.05s; }
    .sg-proof-cards > .sg-proof-card:nth-child(2) { animation-delay: 0.15s; }
    .sg-proof-cards > .sg-proof-card:nth-child(3) { animation-delay: 0.25s; }
}

@keyframes sgCardFade {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Reduced motion — turn animations off */
@media (prefers-reduced-motion: reduce) {
    .sg-hero-2026__h1,
    .sg-hero-2026__sub p,
    .sg-hero-2026__buttons,
    .sg-hero-2026__trust {
        opacity: 1;
        transform: none;
        animation: none;
    }
}


/* =========================================================================
   9. COMPARISON SECTION IMAGE PANELS
   Cream-panel framing around the Superior Glide vs cheap-product images
   in the Comparison section.
   ========================================================================= */

.sg-comparison-panel {
    transition: background-color 0.25s ease;
}

.sg-comparison-img img {
    display: block !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: 160px !important;
    width: auto !important;
    object-fit: contain;
}

/* Placeholder treatment — when the felt-pad image hasn't been uploaded yet,
   the broken image fallback shows a dashed outline with helper text.
   Remove this rule once the real image is wired in. */
.sg-comparison-panel--bad .sg-comparison-img img[src*="SG_competitor_worn-felt-pad"] {
    opacity: 0.4;
}
.sg-comparison-panel--bad::after {
    content: "Cheap-felt-pad image pending";
    display: block;
    margin-top: 12px;
    font-family: 'DM Sans', sans-serif;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: #6B7280;
    opacity: 0.6;
}
/* Once you wire the real image (replace placeholder URL with real upload),
   delete the two rules above. The image will render normally. */

/* Mobile — smaller panels */
@media (max-width: 600px) {
    .sg-comparison-img img {
        max-height: 120px !important;
    }
}


/* =========================================================================
   10. HOMEPAGE PAINT + FINAL CTA BUTTON
   Everything above targets the -2026 class structure used by the category
   archive pages and .sg-cream used by the guide pages. The homepage itself
   uses .sg-hero / .sg-finalcta, so these two rules are the only ones in this
   file that touch the homepage. (Replaces the old LCP rule, which targeted a
   stale hero element ID that no longer exists.)
   ========================================================================= */

/* Instant dark hero background on load (paint stability) */
.sg-hero {
    background-color: #0f3a48;
}

/* Final CTA — invert the primary button so it's visible on the flat teal section */
.sg-finalcta .sg-on-dark.sg-btn-primary .elementor-button,
.sg-finalcta .sg-on-dark.sg-btn-primary .elementor-button:link,
.sg-finalcta .sg-on-dark.sg-btn-primary .elementor-button:visited {
    background: #FFFFFF !important;
    color: #237B94 !important;
    border-color: #FFFFFF !important;
}
.sg-finalcta .sg-on-dark.sg-btn-primary .elementor-button:hover {
    background: #FFFFFF !important;
    color: #237B94 !important;
    border-color: #FFFFFF !important;
}
/* How to Measure: equal-height step cards */
.sg-measure-cards > .e-con { align-self: stretch; }
.sg-measure-cards > .e-con > .e-con { height: 100%; }

/* ============================================================
   SG — Buttons On Dark  (v2 — teal-only)
   ============================================================
   Purpose: When a section has the .sg-on-dark class, flip the
   .sg-btn-secondary visual treatment so it stays visible
   against a dark/colored background.

   Default global secondary = teal outline + teal text + teal fill on hover.
   On-dark secondary       = white outline + white text + white fill on hover (teal text).

   Sections using sg-on-dark:
   - Any hero/section with a dark image overlay
   - Any teal (#237B94 / #0f3a48) background section + final CTAs

   To use: add `sg-on-dark` to any dark/colored section's CSS classes.

   IMPORTANT: Load this AFTER the global SG button CSS
   (set higher priority, or place below the global button snippet).
============================================================ */

/* SECONDARY button on dark: white outline, white text, transparent fill */
.sg-on-dark .sg-btn-secondary .elementor-button,
.sg-on-dark.sg-btn-secondary .elementor-button {
  background-color: transparent !important;
  color: #FFFFFF !important;
  border-color: #FFFFFF !important;
  border-width: 2px !important;
  border-style: solid !important;
}

/* SECONDARY hover on dark: white fill, teal text */
.sg-on-dark .sg-btn-secondary .elementor-button:hover,
.sg-on-dark .sg-btn-secondary .elementor-button:focus,
.sg-on-dark.sg-btn-secondary .elementor-button:hover,
.sg-on-dark.sg-btn-secondary .elementor-button:focus {
  background-color: #FFFFFF !important;
  color: #237B94 !important;
  border-color: #FFFFFF !important;
}

/* PRIMARY on dark: teal stays, soft white halo on hover for separation */
.sg-on-dark .sg-btn-primary .elementor-button:hover,
.sg-on-dark.sg-btn-primary .elementor-button:hover {
  box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.4) !important;
}

/* TERTIARY (text-link) on dark: white text */
.sg-on-dark .sg-btn-tertiary .elementor-button,
.sg-on-dark.sg-btn-tertiary .elementor-button {
  color: #FFFFFF !important;
}
.sg-on-dark .sg-btn-tertiary .elementor-button:hover,
.sg-on-dark.sg-btn-tertiary .elementor-button:hover {
  color: rgba(255, 255, 255, 0.85) !important;
}

/* Focus ring on dark: white instead of teal */
.sg-on-dark .sg-btn-primary .elementor-button:focus-visible,
.sg-on-dark .sg-btn-secondary .elementor-button:focus-visible,
.sg-on-dark .sg-btn-tertiary .elementor-button:focus-visible {
  outline: 2px solid #FFFFFF !important;
  outline-offset: 2px !important;
}
/* ============================================================
   INVERSE — White filled CTA for flat teal sections
   Append to: SG — Buttons On Dark Background
   Use: class sg-btn-inverse (with sg-on-dark) on the button
   widget. For primary actions on flat #237B94 / #0f3a48
   sections where a teal-filled primary would vanish.
============================================================ */
.sg-btn-inverse .elementor-button,
.sg-btn-inverse .elementor-button:link,
.sg-btn-inverse .elementor-button:visited {
  background: #FFFFFF !important;
  border: 2px solid #FFFFFF !important;
  color: #0f3a48 !important;
  border-radius: 8px !important;
  font-size: 16px !important;
  font-family: 'DM Sans', sans-serif !important;
  font-weight: 600 !important;
  transition: background 0.2s ease, color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease !important;
}

.sg-btn-inverse .elementor-button:hover,
.sg-btn-inverse .elementor-button:focus {
  background: rgba(255, 255, 255, 0.92) !important;
  border-color: rgba(255, 255, 255, 0.92) !important;
  color: #0f3a48 !important;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18) !important;
  transform: translateY(-1px);
}

.sg-btn-inverse .elementor-button:active {
  background: rgba(255, 255, 255, 0.85) !important;
  border-color: rgba(255, 255, 255, 0.85) !important;
  transform: translateY(0);
}

.sg-btn-inverse .elementor-button-text,
.sg-btn-inverse .elementor-button-icon {
  font-size: inherit !important;
  font-weight: inherit !important;
  color: inherit !important;
}

.sg-btn-inverse .elementor-button:focus-visible {
  outline: 2px solid #FFFFFF !important;
  outline-offset: 2px !important;
}

/* ============================================================
   SG: Rank Math Breadcrumb Styling
   Editorial breadcrumb treatment with horizontal line separators.
   Works on both light and dark (sg-on-dark) container backgrounds.
   ============================================================ */

/* Base wrapper */
.rank-math-breadcrumb {
    font-family: 'DM Sans', sans-serif;
    font-size: 14px;
    line-height: 1.5;
    color: #6B7280;
    letter-spacing: 0.01em;
    padding: 0;
    margin: 0;
}

.rank-math-breadcrumb p {
    margin: 0;
    padding: 0;
}

/* Links */
.rank-math-breadcrumb a {
    color: #6B7280;
    text-decoration: none;
    transition: color 0.2s ease;
}

.rank-math-breadcrumb a:hover {
    color: #237B94; /* SG teal */
    text-decoration: none;
}

/* Current page (last crumb) */
.rank-math-breadcrumb .last {
    color: #1A1A1A;
    font-weight: 500;
}

/* ============================================================
   Separator — CSS-rendered horizontal line (no glyph)
   The original character is hidden via font-size: 0;
   A thin horizontal line is drawn via ::before pseudo-element.
   ============================================================ */

.rank-math-breadcrumb .separator {
    font-size: 0;
    margin: 0 6px;
    display: inline-block;
    position: relative;
    width: 14px;
    height: 1em;
    vertical-align: middle;
}

.rank-math-breadcrumb .separator::before {
    content: '';
    display: block;
    width: 12px;
    height: 1px;
    background: #DDEBF2; /* cool divider, matches site palette */
    position: absolute;
    top: 50%;
    left: 1px;
    transform: translateY(-50%);
}

/* ============================================================
   Dark background variant — apply sg-on-dark class to the
   container holding the breadcrumb shortcode widget.
   ============================================================ */

.sg-on-dark .rank-math-breadcrumb,
.sg-on-dark .rank-math-breadcrumb a {
    color: #E5EEF3; /* pale cool tint for dark backgrounds */
}

.sg-on-dark .rank-math-breadcrumb a:hover {
    color: #FFFFFF;
}

.sg-on-dark .rank-math-breadcrumb .last {
    color: #FFFFFF;
}

/* Separator on dark backgrounds — line is brighter, semi-transparent */
.sg-on-dark .rank-math-breadcrumb .separator::before {
    background: rgba(240, 233, 220, 0.55);
}

/* ============================================================
   Spacing refinements when breadcrumbs sit inside dark heroes
   ============================================================ */

.sg-on-dark .rank-math-breadcrumb {
    margin-bottom: 24px;
    font-size: 13px;
    letter-spacing: 0.04em;
    text-transform: none;
    opacity: 0.95;
}

/* ============================================================
   Mobile tuning — slightly tighter spacing on small screens
   ============================================================ */

@media (max-width: 640px) {
    .rank-math-breadcrumb {
        font-size: 12px;
    }
    
    .rank-math-breadcrumb .separator {
        width: 10px;
        margin: 0 4px;
    }
    
    .rank-math-breadcrumb .separator::before {
        width: 8px;
    }
    
    .sg-on-dark .rank-math-breadcrumb {
        font-size: 11px;
        letter-spacing: 0.05em;
        margin-bottom: 16px;
    }
}
/* Extra specificity for hero breadcrumbs — covers all hero patterns */
.sg-hero-2026 .rank-math-breadcrumb,
.sg-hero-2026 .rank-math-breadcrumb a {
    color: rgba(240, 233, 220, 0.9) !important;
}
.sg-hero-2026 .rank-math-breadcrumb .last {
    color: #FFFFFF !important;
}
.sg-hero-2026 .rank-math-breadcrumb .separator::before {
    background: rgba(240, 233, 220, 0.45) !important;
}

/* ── Hero breadcrumbs — maximum specificity white override ── */
/* Targets the shortcode widget with class sg-hero-breadcrumbs
   on any dark hero (sg-hero-2026 or sg-on-dark parent) */

.sg-hero-breadcrumbs .rank-math-breadcrumb,
.sg-hero-breadcrumbs .rank-math-breadcrumb p,
.sg-hero-breadcrumbs .rank-math-breadcrumb a,
.sg-hero-breadcrumbs .rank-math-breadcrumb span,
.elementor-widget.sg-hero-breadcrumbs .rank-math-breadcrumb,
.elementor-widget.sg-hero-breadcrumbs .rank-math-breadcrumb a,
.elementor-widget.sg-hero-breadcrumbs .rank-math-breadcrumb span,
.sg-hero-2026 .sg-hero-breadcrumbs .rank-math-breadcrumb,
.sg-hero-2026 .sg-hero-breadcrumbs .rank-math-breadcrumb a,
.sg-on-dark .sg-hero-breadcrumbs .rank-math-breadcrumb,
.sg-on-dark .sg-hero-breadcrumbs .rank-math-breadcrumb a {
    color: rgba(255, 255, 255, 0.82) !important;
    text-decoration: none !important;
}
.sg-hero-breadcrumbs .rank-math-breadcrumb .last,
.elementor-widget.sg-hero-breadcrumbs .rank-math-breadcrumb .last,
.sg-hero-2026 .sg-hero-breadcrumbs .rank-math-breadcrumb .last {
    color: #FFFFFF !important;
    font-weight: 500 !important;
}
.sg-hero-breadcrumbs .rank-math-breadcrumb .separator::before,
.elementor-widget.sg-hero-breadcrumbs .rank-math-breadcrumb .separator::before {
    background: rgba(255, 255, 255, 0.35) !important;
}
/* Fallback: any breadcrumb directly inside a dark hero */
.sg-hero-2026 .rank-math-breadcrumb a,
.sg-on-dark .rank-math-breadcrumb a {
    color: rgba(255, 255, 255, 0.82) !important;
}
.sg-hero-2026 .rank-math-breadcrumb .last,
.sg-on-dark .rank-math-breadcrumb .last {
    color: #FFFFFF !important;
}


/* ============================================================
   SG – FacetWP: Collapse Empty Space from Hidden Facets
   ============================================================
   When the Shop Page Conditional Logic snippet hides .facet-wrap
   elements, the parent flex container still reserves "gap" space
   for those hidden children. This is a known CSS flex/gap behavior
   — gap is applied between flex children regardless of whether the
   child has display:none.

   Fix: replace the flex `gap` with margin-bottom on visible facets.
   Hidden facets contribute zero margin, so spacing collapses cleanly.
   ============================================================ */

/* Neutralize the flex gap on the Facets sidebar container only.
   The .facet-accordion class is the wrapper around all facet-wrap
   elements (set in the Elementor JSON). */
.facet-accordion {
  row-gap: 0 !important;
  gap: 0 !important;
}

/* Now use margin-bottom on visible facet wraps instead. This way
   hidden ones contribute no space at all. */
.facet-accordion > .elementor-element,
.facet-accordion > .facet-wrap {
  margin-bottom: 0 !important;
}

/* Apply spacing only to visible facet wraps */
.facet-accordion > .elementor-element:not([style*="display: none"]):not([style*="display:none"]),
.facet-accordion > .facet-wrap:not([style*="display: none"]):not([style*="display:none"]) {
  margin-bottom: 16px !important;
}

/* Belt-and-suspenders: harden the existing collapse rule from the snippet
   "FacetWP: All styles merged" in case any inline style variants slip through. Match all common
   inline display:none variations, including the !important variant the
   snippet now uses. */
.facet-wrap[style*="display: none"],
.facet-wrap[style*="display:none"],
.facet-wrap[style*="display : none"],
.elementor-element[style*="display: none"],
.elementor-element[style*="display:none"],
.elementor-element[style*="display : none"],
.elementor-widget-facetwp-facet[style*="display: none"],
.elementor-widget-facetwp-facet[style*="display:none"] {
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  height: 0 !important;
  min-height: 0 !important;
  overflow: hidden !important;
  visibility: hidden !important;
}

/* Mobile flyout — same problem can occur there */
@media (max-width: 1024px) {
  .facetwp-flyout-content {
    row-gap: 0 !important;
    gap: 0 !important;
  }

  .facetwp-flyout .flyout-row[style*="display: none"],
  .facetwp-flyout .flyout-row[style*="display:none"] {
    margin: 0 !important;
    padding: 0 !important;
    height: 0 !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }

  .facetwp-flyout .flyout-row:not([style*="display: none"]):not([style*="display:none"]) {
    margin-bottom: 12px !important;
  }
}

/* =========================================================================
   SG: FOOTER LAYOUT LOCK
   Snippet type: CSS  ·  Location: site-css  ·  Priority: 10

   Slimmed version (May 2026). All layout (column flex, gap, max-width,
   responsive direction, padding) now lives in the Elementor JSON itself.
   This file only contains rules the Elementor editor UI cannot express:

     - icon-list bullet/icon stripping
     - ::placeholder color on form inputs
     - :focus-visible outline overrides
     - widget-internal hover transitions on links
     - newsletter form button styling not exposed by Form widget UI
     - trust strip border-top/bottom + label semantics

   Design tokens:
     Teal:    #237B94    Teal hover:  #1b6275
     Footer bg: #062F36
     Text: #CBD5E1   Text hover: #FFFFFF   Muted label: #94A3B8
     Font: 'DM Sans'
   ========================================================================= */


/* ----- COLUMN HEADINGS -------------------------------------------------- */
/* Full typography lock so headings stay consistent across all 4 columns
   without setting these values in each heading widget × 7 breakpoints. */
.sg-footer-heading .elementor-heading-title,
.sg-footer-heading h1,
.sg-footer-heading h2,
.sg-footer-heading h3,
.sg-footer-heading h4 {
  font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: #FFFFFF !important;
  margin: 0 0 16px 0 !important;
}


/* ----- COLUMN LINK LISTS ------------------------------------------------ */
/* Icon-list widget always renders a bullet/icon slot even when empty.
   Stripping it must be done in CSS — Elementor has no UI toggle for this. */
.sg-footer-links .elementor-icon-list-items {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
}
.sg-footer-links .elementor-icon-list-item {
  margin: 0 !important;
  padding: 0 !important;
}
.sg-footer-links .elementor-icon-list-item:before,
.sg-footer-links .elementor-icon-list-item:after,
.sg-footer-links .elementor-icon-list-icon {
  content: none !important;
  display: none !important;
}

/* Link typography + color + hover. Setting font-family/size/weight/line-height
   here keeps all 4 column link lists identical without per-widget settings. */
.sg-footer-links a,
.sg-footer-links .elementor-icon-list-text {
  color: #CBD5E1 !important;
  font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  text-decoration: none !important;
  transition: color 160ms ease !important;
}
.sg-footer-links a:hover,
.sg-footer-links a:focus-visible,
.sg-footer-links .elementor-icon-list-text:hover {
  color: #FFFFFF !important;
  text-decoration: none !important;
  outline: none;
}


/* ----- NEWSLETTER FORM -------------------------------------------------- */
/* Elementor Form widget exposes basic input/button styling but NOT:
   - ::placeholder color
   - :focus border-color
   - dark-on-dark input background with translucent border
   So input/button styling lives here in full to keep all states coherent. */
.sg-footer-newsletter-form .elementor-form-fields-wrapper {
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
  width: 100% !important;
}
.sg-footer-newsletter-form .elementor-field-group {
  width: 100% !important;
}
.sg-footer-newsletter-form input[type="text"],
.sg-footer-newsletter-form input[type="email"] {
  width: 100% !important;
  padding: 11px 14px !important;
  background: rgba(255,255,255,0.06) !important;
  border: 1px solid rgba(255,255,255,0.18) !important;
  border-radius: 8px !important;
  color: #FFFFFF !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: 14px !important;
  line-height: 1.4 !important;
  transition: border-color 160ms ease, background 160ms ease !important;
}
.sg-footer-newsletter-form input::placeholder {
  color: #94A3B8 !important;
  opacity: 1 !important;
}
.sg-footer-newsletter-form input:focus {
  outline: none !important;
  border-color: #237B94 !important;
  background: rgba(255,255,255,0.10) !important;
}

.sg-footer-newsletter-form button[type="submit"],
.sg-footer-newsletter-form .elementor-button {
  width: 100% !important;
  padding: 12px 18px !important;
  background-color: #237B94 !important;
  border: none !important;
  border-radius: 8px !important;
  color: #FFFFFF !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  letter-spacing: 0.02em !important;
  text-transform: none !important;
  cursor: pointer !important;
  transition: background 160ms ease !important;
  box-shadow: none !important;
  line-height: 1.3 !important;
}
.sg-footer-newsletter-form button[type="submit"]:hover,
.sg-footer-newsletter-form .elementor-button:hover {
  background-color: #1b6275 !important;
}

.sg-footer-newsletter-form .elementor-message-success {
  color: #4ADE80 !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: 13px !important;
  margin-top: 8px !important;
}
.sg-footer-newsletter-form .elementor-message-danger {
  color: #F87171 !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: 13px !important;
  margin-top: 8px !important;
}


/* ----- SOCIAL ICONS ----------------------------------------------------- */
/* The Icon widget's Style tab can set bg color but not the circle background
   that morphs into the teal fill on hover with consistent timing across all
   5 icons. Locking it here ensures all 5 stay identical. */
.sg-footer-socials .elementor-widget-icon .elementor-icon {
  width: 36px !important;
  height: 36px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 50% !important;
  background: rgba(255,255,255,0.06) !important;
  border: 1px solid rgba(255,255,255,0.14) !important;
  color: #CBD5E1 !important;
  transition: background 160ms ease, color 160ms ease, border-color 160ms ease !important;
}
.sg-footer-socials .elementor-widget-icon .elementor-icon:hover {
  background: #237B94 !important;
  border-color: #237B94 !important;
  color: #FFFFFF !important;
}
.sg-footer-socials .elementor-widget-icon svg,
.sg-footer-socials .elementor-widget-icon i {
  font-size: 16px !important;
  width: 16px !important;
  height: 16px !important;
  color: inherit !important;
  fill: currentColor !important;
}


/* ----- TRUST STRIP (Phone / Email / Hours / Ships from) ----------------- */
/* JSON handles flex layout + responsive direction. Borders + the small
   uppercase label semantics ("PHONE", "EMAIL") live here because they
   apply to inline-element spans inside text-editor widgets — Elementor
   has no per-span styling UI. */
.sg-footer-trust {
  border-top: 1px solid rgba(255,255,255,0.08) !important;
  border-bottom: 1px solid rgba(255,255,255,0.08) !important;
}
.sg-footer-trust .elementor-widget-text-editor p {
  color: #CBD5E1 !important;
  font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
  font-size: 13px !important;
  line-height: 1.6 !important;
  margin: 0 !important;
}
.sg-footer-trust .sg-footer-contact-label {
  display: inline-block !important;
  margin-right: 6px !important;
  color: #94A3B8 !important;
  font-weight: 600 !important;
  font-size: 11px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
}
.sg-footer-trust a {
  color: #CBD5E1 !important;
  text-decoration: none !important;
  transition: color 160ms ease !important;
}
.sg-footer-trust a:hover {
  color: #FFFFFF !important;
}


/* ----- BOTTOM BAR (legal links) ----------------------------------------- */
/* Copyright / address text inside text-editor widgets. */
.sg-footer-bottom .elementor-widget-text-editor p {
  color: #94A3B8 !important;
  font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
  font-size: 13px !important;
  line-height: 1.6 !important;
  margin: 0 !important;
}

/* Same icon-list bullet-strip pattern as the column links. */
.sg-footer-legal-links .elementor-icon-list-items {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  gap: 8px 20px !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
.sg-footer-legal-links .elementor-icon-list-item {
  margin: 0 !important;
  padding: 0 !important;
}
.sg-footer-legal-links .elementor-icon-list-icon,
.sg-footer-legal-links .elementor-icon-list-item:before,
.sg-footer-legal-links .elementor-icon-list-item:after {
  display: none !important;
  content: none !important;
}
.sg-footer-legal-links a,
.sg-footer-legal-links .elementor-icon-list-text {
  color: #94A3B8 !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: 13px !important;
  text-decoration: none !important;
  transition: color 160ms ease !important;
}
.sg-footer-legal-links a:hover,
.sg-footer-legal-links a:focus-visible {
  color: #FFFFFF !important;
}
.sg-footer-bottom .sg-footer-address {
  color: #6E7C8A !important;
  font-size: 12px !important;
  display: inline-block !important;
  margin-top: 2px !important;
}

/**
 * SG: Category & Guide UX Polish
 * Scope: site-css
 *
 * Unified site-wide CSS for:
 *   1. Global smooth-scroll for anchor jumps
 *   2. Clickable size tile hover states (category pages)
 *   3. Table of Contents chip hover states (guide + category)
 *   3b. Quick Decision tile hover states (guide page)
 *   3c. Furniture Pads compare card (category page)
 *   4. Glide Guide size-by-shape table styling
 *   5. Glide Guide "by furniture type" lookup card styling
 *   6. Glide Guide Product Advisor CTA styling
 *   7. Hero trust strip styling (guide + category)
 *
 * Pairs with: Furniture Glides Category, Furniture Glides Guide,
 * and (future) Slide Guide / Pad Guide / etc. category + guide pages.
 *
 * All clickable cards (size tiles, TOC chips, Quick Decision tiles)
 * are real <a> tags wrapping their entire content. No JavaScript needed.
 */


/* =========================================================
   1. SMOOTH SCROLL FOR ANCHOR JUMPS (global)
   ========================================================= */
html {
  scroll-behavior: smooth;
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}
/* Offset anchored sections so they clear the sticky header (~90px)
   AND the sticky TOC bar (~56px). Was 24px, which only cleared a
   fraction of the sticky elements and left section headings hidden
   underneath. 150px desktop / 130px mobile lands the heading just
   below the sticky bar. Tune if the gap looks off. */
[id]:not(body) {
  scroll-margin-top: 150px;
}
@media (max-width: 767px) {
  [id]:not(body) {
    scroll-margin-top: 130px;
  }
}


/* =========================================================
   2. SIZE TILE HOVER + EQUAL-HEIGHT (category page deep-links)
   ========================================================= */
/* Equal-height row: force every size tile in a row to match the
   tallest sibling. The <a class="sg-size-tile-link"> has height:100%,
   but its Elementor widget wrappers need to pass that height through. */
.sg-size-tile-link {
  display: flex !important;
  flex-direction: column;
  height: 100%;
  min-height: 100%;
  box-sizing: border-box;
}
/* When an Elementor widget container holds a size tile, stretch it */
.elementor-widget-html:has(.sg-size-tile-link),
.elementor-widget-html:has(.sg-size-tile-link) > .elementor-widget-container {
  height: 100%;
  display: flex;
  flex-direction: column;
}
/* Fallback for browsers without :has() — uses a class hook we set in JSON */
.sg-size-tile-cell {
  display: flex;
  align-self: stretch;
}
.sg-size-tile-cell .elementor-widget-html,
.sg-size-tile-cell .elementor-widget-html > .elementor-widget-container {
  height: 100%;
  width: 100%;
  display: flex;
  flex-direction: column;
}
.sg-size-tile-link:hover {
  border-color: #237b94 !important;
  box-shadow: 0 4px 12px rgba(35, 123, 148, 0.15);
  transform: translateY(-2px);
}
.sg-size-tile-link:hover h4 {
  color: #237b94 !important;
}
.sg-size-tile-link:focus-visible {
  outline: 2px solid #237b94;
  outline-offset: 2px;
}
@media (max-width: 767px) {
  .sg-size-tile-link:hover { transform: none; }
  .sg-size-tile-link:active {
    transform: scale(0.98);
    transition: transform 0.1s ease;
  }
}


/* =========================================================
   3. TOC CHIP HOVER (guide + category)
   ========================================================= */
.sg-toc-chip .elementor-button:hover,
.sg-toc-chip .elementor-button:focus,
.sg-toc-chip:hover .elementor-button {
  background-color: #237b94 !important;
  border-color: #237b94 !important;
  border-radius: 999px !important;
  color: #FFFFFF !important;
  transform: translateY(-1px);
  outline: none !important;
}

.sg-toc-chip .elementor-button::before,
.sg-toc-chip .elementor-button::after,
.sg-toc-chip .elementor-button-wrapper::before,
.sg-toc-chip .elementor-button-wrapper::after {
  display: none !important;
}

.sg-toc-chip .elementor-button-wrapper {
  border-radius: 999px !important;
  overflow: hidden !important;
}
.sg-toc-chip:focus-visible {
  outline: 2px solid #237b94;
  outline-offset: 2px;
}
@media (max-width: 767px) {
  .sg-toc-chip:hover { transform: none; }
  .sg-toc-chip:active {
    background-color: #237b94 !important;
    color: #FFFFFF !important;
    transform: scale(0.97);
    transition: all 0.1s ease;
  }
}

/* When the TOC strip can't fit all chips on one line, scroll horizontally
   instead of wrapping to a second row. Kicks in at the laptop breakpoint
   so the strip stays a clean single line on every viewport.
   Drag-to-scroll on touch devices, swipe / mousewheel on desktop. */
@media (max-width: 1024px) {
  .sg-toc { align-items: stretch !important; }
  .sg-toc-pills {
    overflow-x: auto;
    flex-wrap: nowrap !important;
    -webkit-overflow-scrolling: touch;
    /* Subtle right-edge fade hint that more chips exist */
    mask-image: linear-gradient(to right, black calc(100% - 24px), transparent);
    -webkit-mask-image: linear-gradient(to right, black calc(100% - 24px), transparent);
    padding-right: 24px;
    margin-right: -16px;
    /* Hide scrollbar visually but keep functionality */
    scrollbar-width: thin;
    scrollbar-color: rgba(35,123,148,0.3) transparent;
  }
  .sg-toc-pills::-webkit-scrollbar { height: 4px; }
  .sg-toc-pills::-webkit-scrollbar-track { background: transparent; }
  .sg-toc-pills::-webkit-scrollbar-thumb {
    background: rgba(35,123,148,0.3);
    border-radius: 2px;
  }
  .sg-toc-chip { flex-shrink: 0; }
}


/* =========================================================
   3c. FURNITURE PADS COMPARE CARD (category page)
   ========================================================= */
/* The "Furniture Pads" card in the Glides vs Pads section is a real
   <a> wrapping the entire card content. Sibling "Furniture Glides" card
   stays non-clickable since you're already on that page. */
.sg-pads-compare-card {
  cursor: pointer;
}
.sg-pads-compare-card:hover {
  border-color: #237b94 !important;
  box-shadow: 0 6px 18px rgba(35, 123, 148, 0.15) !important;
  transform: translateY(-2px);
}
.sg-pads-compare-card:hover h3 {
  color: #1a5f73 !important;
}
.sg-pads-compare-card:focus-visible {
  outline: 2px solid #237b94;
  outline-offset: 2px;
}
/* Equal-height: stretch widget wrappers so both Glides + Pads cards match heights */
.sg-pads-compare-cell {
  display: flex;
  align-self: stretch;
}
.sg-pads-compare-cell .elementor-widget-html,
.sg-pads-compare-cell .elementor-widget-html > .elementor-widget-container {
  height: 100%;
  width: 100%;
  display: flex;
  flex-direction: column;
}
@media (max-width: 767px) {
  .sg-pads-compare-card { padding: 24px !important; }
  .sg-pads-compare-card h3 { font-size: 20px !important; }
  .sg-pads-compare-card:hover { transform: none; }
  .sg-pads-compare-card:active {
    transform: scale(0.99);
    transition: transform 0.1s ease;
  }
}


/* =========================================================
   3b. QUICK DECISION TILE HOVER (guide page)
   ========================================================= */
/* The 4 cards inside the Quick Decision section are real <a> tags
   wrapping the entire tile content (built as HTML widgets). This
   guarantees the whole card is clickable on every device without
   relying on JS or Elementor's container link behavior. */
.sg-qd-tile-link {
  cursor: pointer;
}
.sg-qd-tile-link:hover {
  border-color: #237b94 !important;
  box-shadow: 0 6px 18px rgba(35, 123, 148, 0.15) !important;
  transform: translateY(-2px);
}
.sg-qd-tile-link:hover h4 {
  color: #237b94 !important;
}
.sg-qd-tile-link:focus-visible {
  outline: 2px solid #237b94;
  outline-offset: 2px;
}
@media (max-width: 767px) {
  .sg-qd-tile-link { padding: 24px !important; }
  .sg-qd-tile-link h4 { font-size: 20px !important; }
  .sg-qd-tile-link:hover { transform: none; }
  .sg-qd-tile-link:active {
    transform: scale(0.99);
    transition: transform 0.1s ease;
  }
}


/* ── Furniture-type lookup table (native Elementor, flex) ─────
   Column widths set on cell widgets in page JSON. CSS = look + mobile.
   No display:grid — it fought Elementor flex and collapsed columns. */
.sg-gd-lookup {
  background:#FFFFFF; border:1px solid #E5E7EB; border-radius:10px;
  font-family:'DM Sans',sans-serif; overflow:hidden;
}
.sg-gd-lookup .sg-gd-lookup__row { padding:16px 22px; border-bottom:1px solid #F3F4F6; align-items:flex-start; }
.sg-gd-lookup .sg-gd-lookup__row:last-child { border-bottom:none; }

/* Zebra striping + readability (added) */
.sg-gd-lookup > .sg-gd-lookup__row:nth-of-type(odd):not(.sg-gd-lookup__row--header) { background:#FBFCFD; }
.sg-gd-lookup .sg-gd-lookup__furniture .elementor-widget-container p { font-size:15px !important; }
.sg-gd-lookup .sg-gd-lookup__pick .elementor-widget-container p { font-size:14px !important; line-height:1.5 !important; }
.sg-gd-lookup .sg-gd-lookup__why .elementor-widget-container p { font-size:13px !important; line-height:1.5 !important; color:#6B7280 !important; }

.sg-gd-lookup .sg-gd-lookup__row--header { background:#F9FAFB; }
.sg-gd-lookup .sg-gd-lookup__row--header .elementor-widget-container p {
  font-weight:700 !important; color:#1F2937 !important; font-size:13px !important;
  text-transform:uppercase; letter-spacing:0.05em; margin:0 !important;
}
.sg-gd-lookup .sg-gd-lookup__row > .elementor-widget { margin-bottom:0 !important; }
.sg-gd-lookup .sg-gd-lookup__furniture .elementor-widget-container p { font-weight:700 !important; color:#1F2937 !important; margin:0 !important; }
.sg-gd-lookup .sg-gd-lookup__pick .elementor-widget-container p { color:#374151 !important; margin:0 !important; }
.sg-gd-lookup .sg-gd-lookup__pick strong { color:#1F2937 !important; }
.sg-gd-lookup .sg-gd-lookup__why .elementor-widget-container p { color:#6B7280 !important; font-style:italic; margin:0 !important; }
@media (max-width:1023px){
  .sg-gd-lookup .sg-gd-lookup__row { padding:16px 18px; gap:4px; }
  .sg-gd-lookup .sg-gd-lookup__row--header { display:none !important; }
  .sg-gd-lookup .sg-gd-lookup__pick .elementor-widget-container p::before { content:"Recommended: "; font-weight:700; color:#1F2937; font-style:normal; }
  .sg-gd-lookup .sg-gd-lookup__why .elementor-widget-container p { font-style:normal; }
  .sg-gd-lookup .sg-gd-lookup__why .elementor-widget-container p::before { content:"Why: "; font-weight:700; color:#1F2937; }
}

/* ── Glide size table (native Elementor, flex) — 2-col ──────
   Columns: Glide size | Fits leg base. Shape column dropped
   (card title already states the shape). */
.sg-size-table { background:#FFFFFF; border:1px solid #E5E7EB; border-radius:10px; font-family:'DM Sans',sans-serif; overflow:hidden; margin-top:8px; }
.sg-size-table .sg-size-row { padding:13px 22px; border-bottom:1px solid #F3F4F6; align-items:flex-start; }
.sg-size-table .sg-size-row:last-child { border-bottom:none; }
/* Shaded header bar */
.sg-size-table .sg-size-row--header { background:#0f3a48; border-bottom:none; padding-top:12px; padding-bottom:12px; }
.sg-size-table .sg-size-row--header .elementor-widget-container p {
  font-weight:700 !important; color:#FFFFFF !important; font-size:12px !important;
  text-transform:uppercase; letter-spacing:0.06em; margin:0 !important;
}
/* Zebra striping on data rows */
.sg-size-table .sg-size-row:nth-of-type(odd):not(.sg-size-row--header) { background:#FBFCFD; }
.sg-size-table .sg-size-row:nth-of-type(even):not(.sg-size-row--header) { background:#FFFFFF; }
.sg-size-table .sg-size-row > .elementor-widget { margin-bottom:0 !important; }
.sg-size-table .sg-size-gsize .elementor-widget-container p { font-weight:700 !important; color:#1F2937 !important; margin:0 !important; font-variant-numeric:tabular-nums; }
.sg-size-table .sg-size-fits .elementor-widget-container p { color:#4B5563 !important; margin:0 !important; font-variant-numeric:tabular-nums; }
@media (max-width:1023px){
  .sg-size-table .sg-size-row { padding:12px 16px; gap:2px; }
  .sg-size-table .sg-size-row--header { display:none !important; }
  .sg-size-table .sg-size-gsize .elementor-widget-container p::before { content:"Size: "; font-weight:700; color:#1F2937; }
  .sg-size-table .sg-size-fits .elementor-widget-container p::before { content:"Fits: "; font-weight:700; color:#1F2937; }
}


/* =========================================================
   6. GLIDE GUIDE — PRODUCT ADVISOR CTA (.sg-glide-advisor-cta)
   ========================================================= */
.sg-glide-advisor-cta {
  background: #FFFFFF;
  border: 1px solid #E5E7EB;
  border-radius: 14px;
  padding: 28px 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  max-width: 760px;
  margin: 0 auto;
  box-shadow: 0 4px 16px rgba(15, 23, 42, 0.04);
  font-family: 'DM Sans', sans-serif;
}
.sg-glide-advisor-cta__icon {
  width: 56px; height: 56px; border-radius: 50%;
  background: linear-gradient(135deg, #237B94 0%, #1A5F73 100%);
  color: #FFFFFF;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 4px 12px rgba(35, 123, 148, 0.25);
}
.sg-glide-advisor-cta__text { flex: 1; min-width: 0; }
.sg-glide-advisor-cta__title {
  font-size: 18px;
  font-weight: 600;
  color: #1F2937;
  margin: 0 0 4px 0;
  line-height: 1.3;
}
.sg-glide-advisor-cta__subtitle {
  font-size: 14px;
  color: #6B7280;
  margin: 0;
  line-height: 1.5;
}
.sg-glide-advisor-cta__btn,
button.sg-glide-advisor-cta__btn {
  background: #237B94 !important;
  background-color: #237B94 !important;
  background-image: none !important;
  color: #FFFFFF !important;
  border: none !important;
  border-radius: 10px !important;
  padding: 14px 24px !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  flex-shrink: 0 !important;
  box-shadow: 0 2px 8px rgba(35, 123, 148, 0.2) !important;
  text-shadow: none !important;
  outline: none !important;
  line-height: 1.2 !important;
}
.sg-glide-advisor-cta__btn:hover,
button.sg-glide-advisor-cta__btn:hover {
  background: #1A5F73 !important;
  background-color: #1A5F73 !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 6px 16px rgba(35, 123, 148, 0.32) !important;
  color: #FFFFFF !important;
}
.sg-glide-advisor-cta__btn:focus,
.sg-glide-advisor-cta__btn:active {
  outline: 2px solid #237B94 !important;
  outline-offset: 2px !important;
}
.sg-glide-advisor-cta__btn svg { flex-shrink: 0; }
@media (max-width: 640px) {
  .sg-glide-advisor-cta {
    flex-direction: column;
    text-align: center;
    padding: 24px 20px;
    gap: 16px;
  }
  .sg-glide-advisor-cta__icon { width: 48px; height: 48px; }
  .sg-glide-advisor-cta__title { font-size: 17px; }
  .sg-glide-advisor-cta__subtitle { font-size: 13px; }
  .sg-glide-advisor-cta__btn,
  button.sg-glide-advisor-cta__btn {
    width: 100% !important;
    justify-content: center !important;
    padding: 13px 20px !important;
    font-size: 14px !important;
  }
}


/* =========================================================
   7. HERO TRUST STRIP (guide + category, on dark hero bg)
   ========================================================= */
/* The horizontal "Specified by hotels... · NWFA-recommended..." line
   that sits below the hero CTAs on a dark background. */
.sg-hero-2026__trust {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 10px;
  margin: 24px 0 0 0;
  font-size: 13px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.75);
  line-height: 1.5;
  letter-spacing: 0.01em;
}
.sg-hero-2026__trust a {
  color: rgba(255, 255, 255, 0.92) !important;
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-thickness: 1px;
  transition: color 0.2s ease;
}
.sg-hero-2026__trust a:hover {
  color: #FFFFFF !important;
}
/* The bullet/dot separator between strip items */
.sg-hero-2026__dot {
  color: rgba(255, 255, 255, 0.35);
  font-weight: 700;
  user-select: none;
}
/* Mobile: stack each item on its own line for legibility */
@media (max-width: 600px) {
  .sg-hero-2026__trust {
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    font-size: 12px;
  }
  .sg-hero-2026__dot { display: none; }
}


/* ── Full-width CTA buttons on mobile ───────────────────────
   Primary/secondary buttons span their container on phones for
   an easier tap target. Excludes TOC chips (sg-toc-chip) and
   any small inline buttons, which stay compact. */
@media (max-width:480px){
  .sg-btn-primary .elementor-button,
  .sg-btn-secondary .elementor-button,
  a.sg-btn-primary, a.sg-btn-secondary {
    width:100% !important;
    justify-content:center !important;
    text-align:center !important;
  }
  .sg-btn-primary, .sg-btn-secondary { width:100% !important; }
}


/* ── Button label overflow safeguard ────────────────────────
   Long button labels wrap inside the button instead of spilling
   past its edges on narrow screens. Applies to CTA buttons. */
.sg-btn-primary .elementor-button,
.sg-btn-secondary .elementor-button,
a.sg-btn-primary, a.sg-btn-secondary {
  white-space:normal !important;
  word-break:normal;
  overflow-wrap:anywhere;
  line-height:1.3;
}
@media (max-width:480px){
  .sg-btn-primary .elementor-button,
  .sg-btn-secondary .elementor-button,
  a.sg-btn-primary, a.sg-btn-secondary { font-size:14px !important; padding-left:16px !important; padding-right:16px !important; }
}


/* =========================================================
   SG: Card accent lines — three behaviors
   .sg-infocard  : STATIC teal left line, always. Pure information /
                   "you are here" cards. No hover, not clickable.
   .sg-hovercard : teal left line on HOVER (card has a button inside;
                   the button navigates). Line stays visible on touch
                   devices, where hover does not exist.
   .sg-clickcard : the WHOLE card is a link. Teal outline RING + lift on
                   hover; ring stays visible on touch devices.
   ========================================================= */

/* shared left-line bar */
.sg-infocard, .sg-hovercard { position: relative; }
.sg-infocard::before, .sg-hovercard::before {
  content: "";
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 4px;
  background: #237B94;
  border-top-left-radius: inherit;
  border-bottom-left-radius: inherit;
  pointer-events: none;
}

/* informational: line always on */
.sg-infocard::before { opacity: 1; }

/* button-inside card: line on hover (desktop), always on touch */
.sg-hovercard { transition: transform 0.2s ease, box-shadow 0.2s ease; }
.sg-hovercard::before { opacity: 0; transition: opacity 0.2s ease; }
@media (hover: hover) {
  .sg-hovercard:hover::before { opacity: 1; }
  .sg-hovercard:hover { transform: translateY(-2px); box-shadow: 0 6px 18px rgba(35, 123, 148, 0.15); }
}
@media (hover: none) {
  .sg-hovercard::before { opacity: 1; }
}

/* whole-card link: outline ring on hover (desktop), always on touch */
.sg-clickcard {
  cursor: pointer;
  text-decoration: none;
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}
@media (hover: hover) {
  .sg-clickcard:hover { box-shadow: 0 0 0 2px #237B94, 0 6px 18px rgba(35, 123, 148, 0.15); transform: translateY(-2px); }
}
@media (hover: none) {
  .sg-clickcard { box-shadow: 0 0 0 2px #237B94, 0 2px 12px rgba(0, 0, 0, 0.06); }
}

/* ==========================================================================
   SG: Cart Flyout Styling
   Replaces:
     #210 Elementor: Menu Cart Styling
     #348 Elementor: Remove all styling from menu cart widget
   Keep active alongside this:
     #370 Menu Cart - Truncate Cart Titles to 2 Lines (content rule)
     #247 Woocommerce - Hide Variation Attributes in Mini Cart (content rule)
     #216 Woo - View Cart Button Only (different element, no conflict)
   Brand tokens: 'DM Sans', teal #237B94, hover #1B6378
   ========================================================================== */


/* ==========================================================================
   1. CART ICON TOGGLE IN HEADER
   Strip Elementor's default button styling so the icon shows cleanly
   ========================================================================== */

.elementor-menu-cart__toggle,
.elementor-menu-cart__toggle button,
.elementor-menu-cart__toggle .elementor-button,
.elementor-menu-cart__toggle .elementor-button-link,
.elementor-menu-cart__toggle.elementor-button {
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
    outline: none !important;
    border-radius: 0 !important;
}

.elementor-menu-cart__toggle svg,
.elementor-menu-cart__toggle i {
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
    color: #111827 !important;
    transition: color 0.15s ease;
}

.elementor-menu-cart__toggle:hover svg,
.elementor-menu-cart__toggle:hover i {
    color: #237B94 !important;
}

/* The cart count bubble (the "ShoppingCart bubble count" snippet outputs this) */
.elementor-menu-cart__toggle .elementor-button-text,
.elementor-menu-cart__toggle .elementor-menu-cart__toggle-counter {
    font-family: 'DM Sans', sans-serif !important;
}


/* ==========================================================================
   2. FLYOUT WRAPPER + HEADER
   ========================================================================== */

/* The flyout drawer container */
.elementor-menu-cart__container {
    font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, sans-serif !important;
    color: #1A1A1A !important;
}

/* Inner main wrapper */
.elementor-menu-cart__main {
    background: #FFFFFF !important;
    padding: 24px !important;
    box-sizing: border-box !important;
}

/* Header bar with title + close button */
.elementor-menu-cart__close-button-wrapper,
.elementor-menu-cart__close-button {
    color: #6B7280 !important;
    transition: color 0.15s ease;
}
.elementor-menu-cart__close-button:hover {
    color: #111827 !important;
}


/* ==========================================================================
   3. PRODUCT ROWS
   ========================================================================== */

/* The list wrapper */
.elementor-menu-cart__products,
.woocommerce-mini-cart {
    margin: 0 0 20px 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

/* Each product row */
.elementor-menu-cart__product,
.woocommerce-mini-cart__item {
    display: flex !important;
    align-items: flex-start !important;
    gap: 14px !important;
    padding: 14px 0 !important;
    border-bottom: 1px solid #F3F4F6 !important;
    background: transparent !important;
    position: relative;
}

.elementor-menu-cart__product:last-child,
.woocommerce-mini-cart__item:last-child {
    border-bottom: none !important;
}

/* Product thumbnail — border on the img only, not on Elementor's wrapper */
.elementor-menu-cart__product-image {
    border: none !important;
    background: transparent !important;
    padding: 0 !important;
    box-shadow: none !important;
    width: auto !important;
    height: auto !important;
    flex-shrink: 0 !important;
}

.elementor-menu-cart__product img,
.elementor-menu-cart__product-image img,
.woocommerce-mini-cart__item img {
    width: 56px !important;
    height: 56px !important;
    object-fit: contain !important;
    border: 1px solid #E5E7EB !important;
    border-radius: 8px !important;
    background: #F9FAFB !important;
    padding: 4px !important;
    flex-shrink: 0 !important;
    box-sizing: border-box !important;
    margin: 0 !important;
    display: block !important;
}

/* Product name */
.elementor-menu-cart__product-name {
    font-family: 'DM Sans', sans-serif !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    color: #111827 !important;
    line-height: 1.4 !important;
    margin: 0 0 6px 0 !important;
    max-width: 100% !important;
    padding-right: 24px !important; /* reserve space for the × button */
}

.elementor-menu-cart__product-name a {
    color: #111827 !important;
    text-decoration: none !important;
    font-weight: 600 !important;
    transition: color 0.15s ease;
}

.elementor-menu-cart__product-name a:hover {
    color: #237B94 !important;
}

/* Quantity + price line below name */
.elementor-menu-cart__product-price,
.woocommerce-mini-cart__item .quantity {
    font-family: 'DM Sans', sans-serif !important;
    font-size: 13px !important;
    color: #6B7280 !important;
    margin: 0 !important;
    line-height: 1.4 !important;
}

/* The "×" times character separator and the price itself */
.elementor-menu-cart__product-price .amount,
.elementor-menu-cart__product-price .woocommerce-Price-amount {
    color: #1F2937 !important;
    font-weight: 500 !important;
}

/* Remove (×) button */
.elementor-menu-cart__product-remove,
.elementor-menu-cart__product .remove,
.elementor-menu-cart__product a.remove {
    position: absolute !important;
    top: 14px !important;
    right: 0 !important;
    width: 24px !important;
    height: 24px !important;
    color: #9CA3AF !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    font-size: 18px !important;
    line-height: 22px !important;
    font-weight: 400 !important;
    text-align: center !important;
    border-radius: 50% !important;
    text-decoration: none !important;
    flex-shrink: 0 !important;
    margin: 0 !important;
    transition: all 0.15s ease;
}

.elementor-menu-cart__product-remove:hover,
.elementor-menu-cart__product .remove:hover,
.elementor-menu-cart__product a.remove:hover {
    color: #DC2626 !important;
    background: #FEF2F2 !important;
}

/* Product details column (everything to the right of the thumbnail) */
.elementor-menu-cart__product-text {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    padding: 0 !important;
}


/* ==========================================================================
   4. SUBTOTAL ROW
   ========================================================================== */

.elementor-menu-cart__subtotal,
.woocommerce-mini-cart__total {
    border: none !important;
    background: transparent !important;
    padding: 16px 0 !important;
    margin: 0 0 16px 0 !important;
    border-top: 1px solid #E5E7EB !important;
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    font-family: 'DM Sans', sans-serif !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    color: #111827 !important;
}

.elementor-menu-cart__subtotal strong,
.woocommerce-mini-cart__total strong {
    font-weight: 600 !important;
    color: #111827 !important;
}

.elementor-menu-cart__subtotal .amount,
.elementor-menu-cart__subtotal .woocommerce-Price-amount,
.woocommerce-mini-cart__total .amount,
.woocommerce-mini-cart__total .woocommerce-Price-amount {
    color: #237B94 !important;
    font-size: 18px !important;
    font-weight: 700 !important;
}


/* ==========================================================================
   5. FOOTER BUTTONS
   ========================================================================== */

.elementor-menu-cart__footer-buttons {
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* All footer buttons — shared base */
.elementor-menu-cart__footer-buttons .elementor-button,
.elementor-menu-cart__footer-buttons a.button {
    font-family: 'DM Sans', sans-serif !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    width: 100% !important;
    min-height: 48px !important;
    padding: 14px 20px !important;
    border-radius: 10px !important;
    text-align: center !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
    text-transform: none !important;
    letter-spacing: 0.01em !important;
    box-sizing: border-box !important;
    cursor: pointer !important;
    text-decoration: none !important;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease !important;
}

/* View Cart — secondary outline teal */
.elementor-menu-cart__footer-buttons .elementor-button--view-cart,
.elementor-menu-cart__footer-buttons a.button.wc-forward:not(.checkout) {
    background: #FFFFFF !important;
    color: #237B94 !important;
    border: 1px solid #237B94 !important;
    box-shadow: none !important;
    transform: none !important;
}

.elementor-menu-cart__footer-buttons .elementor-button--view-cart:hover,
.elementor-menu-cart__footer-buttons a.button.wc-forward:not(.checkout):hover {
    background: #F0F7F9 !important;
    color: #237B94 !important;
    border-color: #237B94 !important;
}

/* Checkout — primary teal */
.elementor-menu-cart__footer-buttons .elementor-button--checkout,
.elementor-menu-cart__footer-buttons a.button.checkout {
    background: #237B94 !important;
    color: #FFFFFF !important;
    border: 1px solid #237B94 !important;
    box-shadow: 0 1px 2px rgba(35, 123, 148, 0.15) !important;
    transform: none !important;
}

.elementor-menu-cart__footer-buttons .elementor-button--checkout:hover,
.elementor-menu-cart__footer-buttons a.button.checkout:hover {
    background: #1B6378 !important;
    border-color: #1B6378 !important;
    color: #FFFFFF !important;
}


/* ==========================================================================
   6. B2B REQUEST QUOTE BUTTON (injected by JS for B2B users)
   ========================================================================== */

.elementor-menu-cart__footer-buttons .sg-flyout-request-quote {
    font-family: 'DM Sans', sans-serif !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    width: 100% !important;
    min-height: 48px !important;
    padding: 14px 20px !important;
    border-radius: 10px !important;
    background: #237B94 !important;
    color: #FFFFFF !important;
    border: 1px solid #237B94 !important;
    text-align: center !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
    letter-spacing: 0.01em !important;
    box-sizing: border-box !important;
    cursor: pointer !important;
    text-decoration: none !important;
    transition: background 0.15s ease, border-color 0.15s ease !important;
    box-shadow: 0 1px 2px rgba(35, 123, 148, 0.15) !important;
}

.elementor-menu-cart__footer-buttons .sg-flyout-request-quote:hover {
    background: #1B6378 !important;
    border-color: #1B6378 !important;
    color: #FFFFFF !important;
}

/* For B2B users: hide the default Checkout button (replaced by Request Quote) */
body.b2bking_b2b_user .elementor-menu-cart__footer-buttons .elementor-button--checkout,
body.b2bking_b2b_user .elementor-menu-cart__footer-buttons a.button.checkout {
    display: none !important;
}


/* ==========================================================================
   7. EMPTY CART STATE
   ========================================================================== */

.elementor-menu-cart__main .woocommerce-mini-cart__empty-message {
    font-family: 'DM Sans', sans-serif !important;
    font-size: 15px !important;
    color: #6B7280 !important;
    text-align: center !important;
    padding: 40px 20px !important;
    margin: 0 !important;
}


/* ==========================================================================
   8. RESPONSIVE
   ========================================================================== */

@media (max-width: 767px) {
    .elementor-menu-cart__main {
        padding: 20px !important;
    }

    .elementor-menu-cart__product img,
    .elementor-menu-cart__product-image img,
    .woocommerce-mini-cart__item img {
        width: 52px !important;
        height: 52px !important;
    }

    .elementor-menu-cart__product-name {
        font-size: 14px !important;
    }

    .elementor-menu-cart__subtotal,
    .woocommerce-mini-cart__total {
        font-size: 14px !important;
    }

    .elementor-menu-cart__subtotal .amount,
    .woocommerce-mini-cart__total .amount {
        font-size: 17px !important;
    }

    .elementor-menu-cart__footer-buttons .elementor-button,
    .elementor-menu-cart__footer-buttons .sg-flyout-request-quote,
    .elementor-menu-cart__footer-buttons a.button {
        font-size: 14px !important;
        min-height: 44px !important;
        padding: 12px 18px !important;
    }
}

@media (max-width: 480px) {
    .elementor-menu-cart__main {
        padding: 16px !important;
    }

    .elementor-menu-cart__product img,
    .elementor-menu-cart__product-image img,
    .woocommerce-mini-cart__item img {
        width: 48px !important;
        height: 48px !important;
    }
}

/* ==========================================================================
   SG: Recently Viewed Products — Strip Styling
   Companion to sg-recently-viewed-products.php
   Renders below the related products section on every product page.
   ========================================================================== */

.sg-recently-viewed {
    margin: 48px 0 32px 0 !important;
    padding: 32px 0 0 0 !important;
    border-top: 1px solid #F3F4F6 !important;
    font-family: 'DM Sans', sans-serif !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

.sg-rv-heading {
    font-family: 'DM Sans', sans-serif !important;
    font-size: 22px !important;
    font-weight: 600 !important;
    color: #111827 !important;
    margin: 0 0 20px 0 !important;
    padding: 0 !important;
    border: none !important;
    line-height: 1.3 !important;
}

.sg-rv-grid {
    display: grid !important;
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    gap: 16px !important;
    width: 100% !important;
}

/* Each card is a thumbnail + name + meta inside an anchor */
.sg-rv-card {
    display: flex !important;
    flex-direction: column !important;
    background: #FFFFFF !important;
    border: 1px solid #E5E7EB !important;
    border-radius: 10px !important;
    padding: 12px !important;
    text-decoration: none !important;
    color: inherit !important;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
}

.sg-rv-card:hover {
    border-color: #237B94 !important;
    box-shadow: 0 4px 12px rgba(35, 123, 148, 0.08) !important;
    text-decoration: none !important;
    transform: translateY(-2px) !important;
}

/* Thumbnail container — square aspect-ratio */
.sg-rv-card-img {
    width: 100% !important;
    aspect-ratio: 1 / 1 !important;
    background: #F9FAFB !important;
    border-radius: 6px !important;
    overflow: hidden !important;
    margin: 0 0 10px 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.sg-rv-card-img img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
}

/* Product name — 2-line max, ellipsis */
.sg-rv-card-name {
    font-family: 'DM Sans', sans-serif !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    color: #111827 !important;
    line-height: 1.35 !important;
    margin: 0 0 4px 0 !important;

    /* Clamp to 2 lines */
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.sg-rv-card-meta {
    font-family: 'DM Sans', sans-serif !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    color: #6B7280 !important;
    line-height: 1.3 !important;
    margin: 0 !important;
}

/* ----- Responsive: all 7 Elementor breakpoints ----- */

/* Widescreen 2400+ — 6 cols (default) */
@media (min-width: 2401px) {
    .sg-rv-grid {
        grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    }
}

/* Laptop (≤1366px) — 6 cols still fits */
@media (max-width: 1366px) {
    .sg-rv-grid {
        grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    }
}

/* Tablet Extra (≤1024px) — 4 cols */
@media (max-width: 1024px) {
    .sg-rv-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: 14px !important;
    }
    .sg-recently-viewed {
        margin: 40px 0 28px 0 !important;
        padding: 28px 0 0 0 !important;
    }
    .sg-rv-heading {
        font-size: 20px !important;
        margin: 0 0 18px 0 !important;
    }
}

/* Tablet (≤880px) — 3 cols */
@media (max-width: 880px) {
    .sg-rv-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 12px !important;
    }
    .sg-rv-card {
        padding: 10px !important;
    }
}

/* Mobile Extra (≤600px) — horizontal scroll instead of grid */
@media (max-width: 600px) {
    .sg-recently-viewed {
        margin: 32px 0 24px 0 !important;
        padding: 24px 0 0 0 !important;
    }
    .sg-rv-heading {
        font-size: 19px !important;
        margin: 0 0 16px 0 !important;
    }
    .sg-rv-grid {
        display: flex !important;
        grid-template-columns: none !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        -webkit-overflow-scrolling: touch !important;
        scroll-snap-type: x mandatory !important;
        padding: 0 4px 8px 4px !important;
        margin: 0 -4px !important;
        gap: 12px !important;
        /* Hide scrollbar but keep functionality */
        scrollbar-width: thin !important;
        scrollbar-color: #D1D5DB transparent !important;
    }
    .sg-rv-grid::-webkit-scrollbar {
        height: 4px !important;
    }
    .sg-rv-grid::-webkit-scrollbar-track {
        background: transparent !important;
    }
    .sg-rv-grid::-webkit-scrollbar-thumb {
        background: #D1D5DB !important;
        border-radius: 2px !important;
    }
    .sg-rv-card {
        flex: 0 0 160px !important;
        scroll-snap-align: start !important;
    }
    .sg-rv-card-name {
        font-size: 13px !important;
    }
}

/* Mobile (≤480px) — narrower cards in horizontal scroll */
@media (max-width: 480px) {
    .sg-rv-card {
        flex: 0 0 140px !important;
        padding: 10px !important;
    }
    .sg-rv-card-name {
        font-size: 12.5px !important;
    }
    .sg-rv-card-meta {
        font-size: 11.5px !important;
    }
}

/* =========================================================================
   SG — Size Dropdown Override (v7 — final)
   =========================================================================
   The Iconic <ul> for each attribute carries data-attribute="attribute_pa_<slug>".
   Hide the size <ul> via that attribute. Show the native <select> by walking
   up from select#pa_size via a column-scoped rule that doesn't affect Color.
   ========================================================================= */

/* Hide Iconic's Size swatch list entirely — clean, targeted */
body.sg-size-dropdown ul.iconic-was-swatches[data-attribute="attribute_pa_size"] {
  display: none !important;
}

/* Hide Iconic's "No selection" label text in the Size row only */
body.sg-size-dropdown label[for="pa_size"] .iconic-was-chosen-attribute,
body.sg-size-dropdown label[for="pa_size"] .iconic-was-attr-label-sep {
  display: none !important;
}

/* Show the native <select> for Size. Iconic wraps it in a hidden <div>;
   we walk up the row scope (label[for="pa_size"] sits in the same row's <th>,
   the <td> sibling holds the <select>). Force the wrapper visible. */
body.sg-size-dropdown select#pa_size {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: static !important;
  height: auto !important;
  clip: auto !important;
  clip-path: none !important;
  overflow: visible !important;
  
  width: 100%;
  max-width: 100%;
  font-family: 'DM Sans', -apple-system, sans-serif;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.4;
  color: #111827;
  background-color: #FFFFFF;
  border: 1.5px solid #D1D5DB;
  border-radius: 6px;
  padding: 14px 44px 14px 16px;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23237B94' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
  background-repeat: no-repeat;
  background-position: right 16px center;
  background-size: 18px;
  transition: border-color 0.15s, box-shadow 0.15s, background-color 0.15s;
  margin-top: 4px;
  box-sizing: border-box;
}

/* Force-show the unclassed wrapper <div> that contains select#pa_size.
   The wrapper is the direct parent of the select, so target it via a 
   tiny JS-free trick: it always has the select as a child. We use an
   adjacent attribute lookup. */
body.sg-size-dropdown select#pa_size {
  /* (CSS handles select itself — the parent div needs a different rule) */
}

body.sg-size-dropdown select#pa_size:hover {
  border-color: #237B94;
  background-color: #FFFFFF;
}

body.sg-size-dropdown select#pa_size:focus {
  outline: none;
  border-color: #237B94;
  background-color: #FFFFFF;
  box-shadow: 0 0 0 3px rgba(35, 123, 148, 0.15);
}

/* Mobile: prevent iOS zoom */
@media (max-width: 768px) {
  body.sg-size-dropdown select#pa_size {
    font-size: 16px;
    padding: 14px 44px 14px 14px;
  }
}

/* =========================================================================
   Quick View modal — convert ONE attribute to a native dropdown only when
   it has many options. The Quick View JS counts rendered swatches and adds
   .sg-qv-hide-swatches / .sg-qv-show-select so hide + show happen together
   (never both visible). Few-option attributes keep their working swatches.
   ========================================================================= */
.sg-qv-modal ul.iconic-was-swatches.sg-qv-hide-swatches.sg-qv-hide-swatches { display:none !important; }
.sg-qv-modal .sg-qv-hide-label .iconic-was-chosen-attribute,
.sg-qv-modal .sg-qv-hide-label .iconic-was-attr-label-sep { display:none !important; }
.sg-qv-modal select.sg-qv-show-select {
  display:block !important; visibility:visible !important; opacity:1 !important; position:static !important;
  height:auto !important; clip:auto !important; clip-path:none !important; overflow:visible !important;
  width:100%; max-width:100%; font-family:'DM Sans',-apple-system,sans-serif; font-size:15px; font-weight:500;
  line-height:1.4; color:#111827; background-color:#FFFFFF; border:1.5px solid #D1D5DB; border-radius:6px;
  padding:14px 44px 14px 16px; cursor:pointer; appearance:none; -webkit-appearance:none; -moz-appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23237B94' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
  background-repeat:no-repeat; background-position:right 16px center; background-size:18px; margin-top:4px; box-sizing:border-box;
}
.sg-qv-modal select.sg-qv-show-select:hover { border-color:#237B94; }
.sg-qv-modal select.sg-qv-show-select:focus { outline:none; border-color:#237B94; box-shadow:0 0 0 3px rgba(35,123,148,.15); }
@media (max-width:768px){ .sg-qv-modal select.sg-qv-show-select { font-size:16px; padding:14px 44px 14px 14px; } }

/* Quick View modal — native selects stay hidden unless promoted by JS */
.sg-qv-modal .variations select:not(.sg-qv-show-select) { display:none !important; }

/* Quick View modal — single-option attribute row hidden (auto-selected) */
.sg-qv-modal .sg-qv-hide-row { display:none !important; }

/* Quick View modal — brand the Add to Cart / quote button (override WooCommerce purple) */
.sg-qv-modal .single_add_to_cart_button,
.sg-qv-modal form.cart button[type="submit"],
.sg-qv-modal .b2bking_add_to_quote_button {
  background:#237B94 !important; background-image:none !important; border-color:#237B94 !important; color:#fff !important;
}
.sg-qv-modal .single_add_to_cart_button:hover,
.sg-qv-modal form.cart button[type="submit"]:hover,
.sg-qv-modal .b2bking_add_to_quote_button:hover {
  background:#1a5c70 !important; border-color:#1a5c70 !important;
}

/* Quick View modal — space wishlist + view-details actions */
.sg-qv-modal .sg-wishlist-save { display:inline-flex; margin-top:14px; margin-right:18px; }
.sg-qv-modal .sg-qv-full { margin-top:14px; }

/* Quick View — add-to-cart error note */
.sg-qv-modal .sg-qv-addnote { margin-top:10px; color:#b3261e; font-size:14px; }

/* ============================================================
   SG: Linked Product Titles — Teal (.sg-product-link)
   ------------------------------------------------------------
   Section-title headings that link to a product page use the
   class `sg-product-link` (Glides, Slides, Pads, and future
   category pages). Elementor sets the heading color inline, but
   when a heading is linked it wraps the text in an <a>, whose
   inherited theme link color can override the inline color on
   some setups. This forces the teal consistently and adds a
   subtle hover so the titles read as clickable.

   Safe site-wide: only affects headings carrying sg-product-link.
   ============================================================ */

.sg-product-link,
.sg-product-link a,
.sg-product-link .elementor-heading-title,
.sg-product-link .elementor-heading-title a {
  color: #237B94 !important;
  text-decoration: none;
  transition: color 0.15s ease;
}

.sg-product-link:hover,
.sg-product-link a:hover,
.sg-product-link .elementor-heading-title:hover,
.sg-product-link .elementor-heading-title a:hover {
  color: #1a5e70 !important;   /* darker teal on hover */
  text-decoration: underline;
}

/* ============================================================
   SG: Icon List — Align Checkmarks to First Line
   ------------------------------------------------------------
   Elementor's icon-list widget vertically CENTERS the icon
   against the full text block, so on multi-line items the
   checkmark floats to the middle instead of sitting next to
   the first line (visible on the tube-plug "Pad Type" cards
   where size lines wrap to two rows).

   This aligns the icon to the top so it lines up with the
   first line of text. Applies to all Elementor icon lists; if
   you ever want a list to stay centered, that's rare for these
   bullet-style lists, so site-wide is the right scope.
   ============================================================ */

.elementor-icon-list-item {
  align-items: flex-start !important;
}

/* Nudge the icon down a hair so it optically aligns with the
   cap height of the first text line rather than its very top. */
.elementor-icon-list-icon {
  display: flex;
  align-items: flex-start;
  padding-top: 0.15em !important;
}

/* Keep the text block left-aligned and tight so wrapped lines
   indent under the text, not under the icon. */
.elementor-icon-list-text {
  align-self: flex-start;
}

/* show the manual break only on desktop+; let title flow on tablet/mobile */
@media (max-width: 1024px) {
  .sg-desktop-only-br { display: none; }
}

#sg-search-overlay { display: none; }
#sg-search-overlay.sg-search-open { display: flex; }

/* ============================================================================
   SG: Product Page Redesign            (scope: site-css · product pages only)
   Owns ONLY layout/chrome/gallery. Things with dedicated snippets
   Shopify-grade PDP: sticky buy box, prominent teal add-to-cart, section
   headers, clean YITH tables, refined reviews + recently-viewed, dark B2B band.
   Scoped to .single-product. Cooperates with #416 (.sg-pc-*), #419 (FAQ),
   (breadcrumb, recently-viewed, SKU, size-dropdown, reviews) are left to
   those snippets. "Product Page: Trust Bar" is folded in here — keep it OFF.
   Tune header clearance with --sg-pdp-sticky-top if your header is taller.
   ============================================================================ */

.single-product{
  --teal:#237B94; --teal-dark:#1a5c70; --teal-deep:#0f3a48; --teal-mid:#2e94b0;
  --teal-light:#f2f9fb; --text:#1A1A1A; --muted:#4E6B73; --cream:#F0F7FA;
  --line:#ECECEC; --line-soft:#E5EEF3;
  --pdp-sticky-top:110px;
  --serif:'DM Serif Display',Georgia,serif; --sans:'DM Sans',-apple-system,sans-serif;
}

/* ---------------------------------------------------------------------------
   1.  HERO — sticky buy box + gallery frame
--------------------------------------------------------------------------- */
@media(min-width:1025px){
  .single-product .sg-buybox-col{position:sticky;top:var(--pdp-sticky-top);align-self:flex-start}
}
.single-product .sg-gallery{display:flex;flex-direction:column;gap:16px}
.single-product .sg-gallery__stage{
  background:#fff;border:none;border-radius:18px;
  padding:32px;display:flex;align-items:center;justify-content:center;aspect-ratio:1/1;
  box-shadow:none}
.single-product .sg-gallery__zoom{
  border:0;background:none;padding:0;margin:0;cursor:zoom-in;
  width:100%;height:100%;display:flex;align-items:center;justify-content:center;
  outline:none !important;box-shadow:none !important}
.single-product .sg-gallery__zoom:hover,
.single-product .sg-gallery__zoom:focus,
.single-product .sg-gallery__zoom:focus-visible,
.single-product .sg-gallery__zoom:active{
  border:0 !important;outline:none !important;box-shadow:none !important;background:none}
.single-product .sg-gallery__stage:hover{border:none;box-shadow:none}
.single-product .sg-gallery__main{max-width:100%;max-height:100%;object-fit:contain;border-radius:8px}
.single-product .sg-gallery__thumbs{display:flex;gap:12px;flex-wrap:wrap}
.single-product .sg-gallery__thumb{
  width:72px;height:72px;border:1.5px solid var(--line-soft);border-radius:10px;
  background:#fff;padding:6px;cursor:pointer;overflow:hidden;transition:border-color .15s;
  outline:none !important;box-shadow:none !important}
.single-product .sg-gallery__thumb:hover{border-color:var(--teal-mid) !important}
.single-product .sg-gallery__thumb:focus,
.single-product .sg-gallery__thumb:focus-visible,
.single-product .sg-gallery__thumb:active{
  border-color:var(--teal) !important;outline:none !important;box-shadow:none !important}
.single-product .sg-gallery__thumb.is-active{border-color:var(--teal) !important}
.single-product .sg-gallery__thumb img{width:100%;height:100%;object-fit:contain}
.single-product #sg-lightbox{position:fixed;inset:0;z-index:100000;
  background:rgba(15,58,72,.92);display:none;align-items:center;justify-content:center;padding:40px}
.single-product #sg-lightbox.is-open{display:flex}
.single-product #sg-lightbox img{max-width:92vw;max-height:88vh;object-fit:contain;border-radius:8px}
.single-product #sg-lightbox #sg-lightbox-close{
  position:absolute;top:24px;right:28px;
  width:44px !important;height:44px !important;min-width:0 !important;max-width:44px !important;
  flex:0 0 auto;padding:0 !important;border-radius:50% !important;border:0 !important;
  background:rgba(255,255,255,.15) !important;color:#fff !important;
  font-size:26px;line-height:1;cursor:pointer;
  display:flex !important;align-items:center;justify-content:center}
.single-product #sg-lightbox #sg-lightbox-close:hover{background:rgba(255,255,255,.28) !important}
body.admin-bar .single-product #sg-lightbox #sg-lightbox-close{top:56px}

/* ---------------------------------------------------------------------------
   2.  BUY BOX typography & rhythm
--------------------------------------------------------------------------- */
.single-product .sg-buybox-col .woocommerce-product-rating{margin:4px 0 16px}
.single-product .sg-buybox-col .woocommerce-product-rating .star-rating span:before,
.single-product .sg-buybox-col .star-rating:before,
.single-product .sg-buybox-col .star-rating span{color:var(--teal) !important}

.single-product .sg-buybox-col .woocommerce-product-details__short-description{
  font-family:var(--sans);font-size:15.5px;line-height:1.65;color:#33433f;
  margin-bottom:20px;padding-bottom:20px;border-bottom:1px solid var(--line)}

.single-product .sg-buybox-col .price .amount,
.single-product .sg-buybox-col .price ins .amount,
.single-product .sg-buybox-col .b2bking_price_container .amount{
  font-family:var(--sans) !important;font-size:32px !important;letter-spacing:-.01em}

/* ---------------------------------------------------------------------------
   3.  SWATCHES (Iconic text swatches) -> calm pills, teal selected
--------------------------------------------------------------------------- */
.single-product .variations label,
.single-product .iconic-was-attr-label-text{
  font-family:var(--sans);font-weight:600;font-size:13px;letter-spacing:.02em;color:var(--text)}
.single-product .iconic-was-swatches--text-swatch .iconic-was-swatch{
  border:1.5px solid var(--line) !important;border-radius:9px !important;
  padding:9px 14px !important;font-family:var(--sans);font-weight:500;font-size:14px;
  background:#fff !important;transition:border-color .12s,background .12s}
.single-product .iconic-was-swatches--text-swatch .iconic-was-swatch:hover{border-color:var(--teal-mid) !important}
.single-product .iconic-was-swatch.iconic-was-swatch--selected{
  border-color:var(--teal) !important;background:var(--teal-light) !important;color:var(--teal-deep) !important}

/* ---------------------------------------------------------------------------
   4.  ADD TO CART — full-width, large, teal
--------------------------------------------------------------------------- */
.single-product .woocommerce-variation-add-to-cart{
  display:flex !important;flex-direction:column;align-items:stretch;gap:14px}
.single-product .woocommerce-variation-add-to-cart .quantity{margin:0;align-self:flex-start}
.single-product .single_add_to_cart_button{
  width:100%;margin:0;
  padding:16px 24px !important;font-family:var(--sans) !important;font-size:16px !important;
  font-weight:600 !important;line-height:1 !important;letter-spacing:.01em;
  border:none !important;border-radius:10px !important;
  background:var(--teal) !important;color:#fff !important;
  transition:background .15s,transform .05s}
.single-product .single_add_to_cart_button:hover{background:var(--teal-dark) !important}
.single-product .single_add_to_cart_button:active{transform:translateY(1px)}
.single-product .single_add_to_cart_button.disabled,
.single-product .single_add_to_cart_button:disabled{background:#9CA3AF !important;opacity:1 !important}

/* ---------------------------------------------------------------------------
   5.  TRUST / B2B nudge / size help / pack note
--------------------------------------------------------------------------- */
.single-product .sg-trust-item span,.single-product .sg-size-help,
.single-product .sg-b2b-inline,.single-product .sg-pack-note,
.single-product .sg-qty-helper{font-family:var(--sans) !important}
.single-product .sg-size-help{margin:8px 0 16px;font-size:14px;color:var(--muted)}
.single-product .sg-size-help a{color:var(--teal);text-decoration:underline;text-underline-offset:2px}
.single-product .sg-pack-note{margin:0 0 12px;font-size:14px;color:var(--muted)}
.single-product .sg-b2b-inline{
  display:inline-flex;align-items:center;gap:8px;margin:0 0 14px;padding:10px 13px;
  background:var(--cream);border:1px solid var(--line);border-radius:9px;
  font-size:13.5px;color:#445;line-height:1.4}
.single-product .sg-b2b-inline svg{color:var(--teal);flex-shrink:0}
.single-product .sg-b2b-inline a{color:var(--teal);font-weight:600;text-decoration:underline;text-underline-offset:2px}
.single-product .sg-trust-bar{
  display:flex;flex-wrap:wrap;gap:20px;width:100%;margin-top:20px;padding-top:18px;
  border-top:1px solid var(--line);background:transparent;border-radius:0}
.single-product .sg-trust-item{display:flex;align-items:center;gap:9px}
.single-product .sg-trust-item span{font-size:13.5px;font-weight:500;color:#33433f}
.single-product .sg-trust-item svg{width:19px;height:19px;flex-shrink:0}
@media(max-width:480px){.single-product .sg-trust-bar{flex-direction:column;gap:10px}}

/* ---------------------------------------------------------------------------
   6.  SECTION HEADERS
--------------------------------------------------------------------------- */
.single-product .sg-sec-head{margin-bottom:8px}
.single-product .sg-sec-head .elementor-widget-icon{
  background:var(--teal-light);width:40px;height:40px;border-radius:10px;
  display:flex;align-items:center;justify-content:center}
.single-product .sg-sec-head .elementor-widget-icon .elementor-icon{color:var(--teal);font-size:20px;line-height:1}
.single-product .sg-sec-head .elementor-widget-icon svg{width:20px;height:20px;fill:var(--teal)}
.single-product [id^="sg-"] > .elementor-element:first-child{margin-bottom:6px}

/* ---------------------------------------------------------------------------
   7.  YITH SIZE CHART + SPECIFICATIONS tables
--------------------------------------------------------------------------- */
.single-product .yith-wcpsc-product-table-wrapper{
  border:1px solid var(--line);border-radius:14px;overflow:hidden;max-width:920px}
.single-product table.yith-wcpsc-product-table{
  width:100%;border-collapse:collapse;font-family:var(--sans);font-size:14.5px;margin:0}
.single-product table.yith-wcpsc-product-table thead th{
  background:var(--cream) !important;color:var(--teal-deep) !important;
  font-weight:600 !important;font-size:13px;letter-spacing:.02em;text-align:left;padding:13px 18px}
.single-product table.yith-wcpsc-product-table td{padding:12px 18px;border-top:1px solid var(--line-soft);color:#33433f}
.single-product table.yith-wcpsc-product-table tr:hover td{background:var(--teal-light)}
.single-product #sg-size-chart img{border-radius:12px;max-width:340px;margin:0 0 20px}
.single-product .sg-sizechart-window{border-radius:14px}

/* ---------------------------------------------------------------------------
   8.  FAQ
--------------------------------------------------------------------------- */
.single-product .sg-faqs{max-width:820px}
.single-product .sg-faq__q{font-family:var(--sans);font-weight:500}
.single-product .sg-faq__a{font-family:var(--sans)}

/* ---------------------------------------------------------------------------
   9.  REVIEWS
--------------------------------------------------------------------------- */
.single-product #reviews{max-width:920px}

/* ---------------------------------------------------------------------------
   10. B2B BAND
--------------------------------------------------------------------------- */
.single-product #sg-b2b{background:var(--teal-deep);border-radius:0}
.single-product #sg-b2b .sg-sec-head .elementor-heading-title{color:#fff !important}
.single-product #sg-b2b .sg-sec-head .elementor-widget-icon{background:rgba(255,255,255,.12)}
.single-product #sg-b2b .sg-sec-head .elementor-widget-icon svg,
.single-product #sg-b2b .sg-sec-head .elementor-icon{fill:#9fdcec;color:#9fdcec}
.single-product #sg-b2b p,
.single-product #sg-b2b .elementor-widget-text-editor{color:#3a4a4e !important}
.single-product #sg-b2b .sg-b2b-card .elementor-heading-title{color:var(--text) !important}
.single-product .sg-b2b-card .elementor-button{color:var(--teal) !important}
.single-product .sg-b2b-card .elementor-button:hover{color:var(--teal-dark) !important}

/* ---------------------------------------------------------------------------
   12. SECTION RHYTHM + alternating backgrounds
--------------------------------------------------------------------------- */
.single-product [id="sg-specifications"]{background:var(--cream)}
.single-product [id="sg-size-chart"]{background:#fff}

.single-product #sg-size-chart .elementor-widget-image{
  align-self:flex-start !important;text-align:left !important}
.single-product #sg-size-chart .elementor-widget-image .elementor-widget-container{text-align:left !important}
.single-product #sg-size-chart .elementor-widget-image img{
  display:block !important;margin-left:0 !important;margin-right:auto !important}
.single-product #sg-size-chart .sg-sizechart-window{
  width:100%;max-width:900px;margin-left:0 !important;margin-right:auto !important}
.single-product #sg-size-chart .yith-wcpsc-product-table-wrapper{
  border:0;border-radius:0;max-width:none;margin:0}

/* ---------------------------------------------------------------------------
   12b. POLISH
--------------------------------------------------------------------------- */
.single-product .reset_variations{
  color:var(--muted) !important;font-size:12px;text-transform:none;
  letter-spacing:0;font-weight:500;opacity:.85}
.single-product .reset_variations:hover{color:var(--teal) !important;opacity:1}

/* ---------------------------------------------------------------------------
   13. FINAL UX PASS
--------------------------------------------------------------------------- */
.single-product [id^="sg-"],
.single-product #reviews{scroll-margin-top:90px}
html:has(body.single-product){scroll-behavior:smooth}

.single-product a:focus-visible,
.single-product button:focus-visible,
.single-product .single_add_to_cart_button:focus-visible,
.single-product .iconic-was-swatch:focus-visible,
.single-product input:focus-visible,
.single-product select:focus-visible{
  outline:2px solid var(--teal);outline-offset:2px}

.single-product .stock.in-stock{color:var(--teal);font-weight:500}
.single-product .stock.out-of-stock{color:#b3261e;font-weight:500}

.single-product .sg-gallery-col img{max-width:100%;height:auto}

.single-product .sg-b2b-card{transition:box-shadow .15s,transform .15s}
.single-product .sg-b2b-card:hover{box-shadow:0 8px 22px rgba(15,58,72,.08);transform:translateY(-2px)}

.single-product .woocommerce-message{border-top-color:var(--teal)}
.single-product .woocommerce-message a.button{
  color:var(--teal);border-color:var(--teal)}

/* ---------------------------------------------------------------------------
   13b. STICKY ADD-TO-CART COORDINATION
--------------------------------------------------------------------------- */
body.sg-atc-open #sg-chat-bubble{bottom:104px !important}
body.sg-atc-open #sg-back-to-top{bottom:100px !important}

/* ---------------------------------------------------------------------------
   14. RESPONSIVE
--------------------------------------------------------------------------- */
@media(max-width:1200px){
  .single-product .sg-gallery__stage{padding:26px}
}

@media(max-width:1024px){
  .single-product .sg-buybox-col{position:static}
  .single-product :has(> .sg-gallery-col){flex-direction:column !important}
  .single-product .sg-gallery-col,
  .single-product .sg-buybox-col{width:100% !important;max-width:100% !important;flex-basis:auto !important}
  .single-product .sg-gallery{max-width:560px;margin-left:auto;margin-right:auto}
  .single-product .sg-gallery__stage{padding:24px}
}

@media(max-width:880px){
  .single-product .sg-b2b-grid{display:flex !important;flex-direction:column;gap:14px}
  .single-product .sg-b2b-card{width:auto}
}

@media(max-width:767px){
  .single-product .sg-buybox-col .price .amount{font-size:28px !important}
  .single-product .single_add_to_cart_button{padding:15px 20px !important}
  .single-product .yith-wcpsc-product-table-wrapper,
  .single-product #sg-size-chart .sg-sizechart-window{overflow-x:auto}
  .single-product .sg-gallery__stage{padding:16px}
  .single-product .iconic-was-swatches--text-swatch .iconic-was-swatch{
    padding:12px 16px !important;min-height:44px;display:inline-flex;align-items:center}
  .single-product #sg-lightbox{padding:16px}
  .single-product #sg-lightbox #sg-lightbox-close{top:14px;right:16px}
}

@media(max-width:480px){
  .single-product .sg-gallery__thumb{width:60px;height:60px}
}

@media(prefers-reduced-motion:reduce){
  .single-product *,
  .single-product #sg-lightbox,
  #sg-sticky-atc{transition:none !important;animation:none !important}
  .single-product .sg-b2b-card:hover{transform:none !important}
  html:has(body.single-product){scroll-behavior:auto !important}
}

/* ---------------------------------------------------------------------------
   15. PRICE META — per-each suffix, minimum note, live running total (v10)
   Pairs with the "Product Page: each after the price" PHP snippet (#5584).
--------------------------------------------------------------------------- */
.single-product .sg-price-each{
  font-size:14px;font-weight:500;color:var(--muted);margin-left:4px}
.single-product .sg-price-meta{
  margin:6px 0 14px;font-family:var(--sans);line-height:1.4}
.single-product .sg-price-min{
  display:block;font-size:13px;font-weight:500;color:var(--muted)}
.single-product .sg-price-total{
  display:block;font-size:14px;font-weight:600;color:var(--teal);margin-top:2px}

/* ---------------------------------------------------------------------------
   16. LEG-COUNT QUICK-SET CHIPS (v11)
   Pairs with #5584. Hidden until a variation is selected (shown via JS).
   Styled to MATCH the size swatches (light teal when active) so the buy box
   stays calm and Add to Cart is the only solid-teal element.
   !important overrides global button styles that would fill them teal.
--------------------------------------------------------------------------- */
.single-product .sg-leg-chips{
  display:none;flex-wrap:wrap;align-items:center;gap:8px;
  margin:0 0 12px;font-family:var(--sans)}
.single-product .sg-leg-chips__label{
  width:100%;font-size:13px;font-weight:500;color:var(--muted);margin-bottom:2px}

.single-product .sg-leg-chip{
  appearance:none !important;-webkit-appearance:none !important;cursor:pointer;
  display:inline-flex !important;align-items:center;gap:7px;
  width:auto !important;min-width:0 !important;
  border:1.5px solid var(--line) !important;border-radius:9px !important;
  background:#fff !important;color:var(--text) !important;
  font-family:var(--sans) !important;font-size:14px !important;font-weight:500 !important;
  text-transform:none !important;letter-spacing:0 !important;line-height:1 !important;
  padding:9px 13px !important;box-shadow:none !important;
  transition:border-color .12s,background .12s,color .12s}

.single-product .sg-leg-chip__n{
  font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}

.single-product .sg-leg-chip:hover{
  border-color:var(--teal-mid) !important;background:var(--teal-light) !important;color:var(--text) !important}

.single-product .sg-leg-chip.is-active{
  border-color:var(--teal) !important;background:var(--teal-light) !important;color:var(--teal-deep) !important}
.single-product .sg-leg-chip.is-active .sg-leg-chip__n{color:var(--teal)}

@media(max-width:480px){
  .single-product .sg-leg-chip{padding:11px 14px !important;min-height:44px}
}

/* ---------------------------------------------------------------------------
   17. CUSTOM QUANTITY STEPPER (v11)
   Pairs with #5584. Replaces native browser spinners (which don't render on
   mobile) with real -/+ buttons that respect the step-2 rule on every device.
   Supersedes #5571's native-spinner styling ON PRODUCT PAGES only.
--------------------------------------------------------------------------- */
.single-product .woocommerce-variation-add-to-cart .quantity.sg-qty-stepper{
  display:inline-flex !important;align-items:center;gap:0;
  border:1px solid var(--line-soft) !important;border-radius:8px;
  overflow:hidden;background:#fff;width:auto !important;max-width:none !important}

.single-product .sg-qty-stepper input.qty{
  width:76px !important;min-width:76px !important;height:44px !important;
  border:0 !important;border-radius:0 !important;background:#fff !important;
  color:var(--text) !important;font-family:var(--sans) !important;
  font-size:16px !important;font-weight:600 !important;text-align:center !important;
  padding:0 8px !important;box-shadow:none !important;
  font-variant-numeric:tabular-nums;
  -moz-appearance:textfield !important;appearance:textfield !important}
.single-product .sg-qty-stepper input.qty::-webkit-outer-spin-button,
.single-product .sg-qty-stepper input.qty::-webkit-inner-spin-button{
  -webkit-appearance:none !important;appearance:none !important;margin:0 !important;opacity:0 !important}

.single-product .sg-qty-btn{
  appearance:none !important;-webkit-appearance:none !important;
  border:0 !important;background:#fff !important;
  width:44px !important;height:44px !important;min-width:44px !important;max-width:44px !important;
  flex:0 0 auto;padding:0 !important;margin:0 !important;
  font-family:var(--sans) !important;font-size:20px !important;font-weight:500 !important;
  line-height:1 !important;color:var(--teal) !important;cursor:pointer;
  display:flex !important;align-items:center;justify-content:center;
  box-shadow:none !important;transition:background .12s}
.single-product .sg-qty-minus{border-right:1px solid var(--line-soft) !important}
.single-product .sg-qty-plus{border-left:1px solid var(--line-soft) !important}
.single-product .sg-qty-btn:hover{background:var(--teal-light) !important}
.single-product .sg-qty-btn:active{background:var(--teal) !important;color:#fff !important}

/* Native fallback field (B2B users keep the native stepper): widen so the
   browser's spin arrows don't clip 3-digit quantities. */
.single-product .woocommerce-variation-add-to-cart .quantity:not(.sg-qty-stepper) input.qty{
  width:86px !important;font-variant-numeric:tabular-nums}

/* ---------------------------------------------------------------------------
   18. MOBILE PASS (<=767px)
   The whole buy-box column shares ONE clean left edge (price, notes, chips,
   description, swatches). Only the stepper + Add to Cart span full width.
   Stepper becomes a thumb bar: - far left, number centered, + far right.
--------------------------------------------------------------------------- */
@media(max-width:767px){
  /* Stepper: full-width bar; number flex-fills and stays centered.
     Handles double/triple digits without clipping. */
  .single-product .woocommerce-variation-add-to-cart .quantity.sg-qty-stepper{
    width:100% !important;max-width:100% !important;align-self:stretch !important;
    justify-content:space-between}
  .single-product .sg-qty-stepper input.qty{
    flex:1 1 auto;width:auto !important;min-width:0 !important;font-size:17px !important}
  .single-product .sg-qty-btn{
    width:56px !important;min-width:56px !important;max-width:56px !important;font-size:22px !important}

  /* Chips align to the same left edge as everything else (not centered) */
  .single-product .sg-leg-chips{justify-content:flex-start}
  .single-product .sg-leg-chip{flex:0 1 auto}
}

/* Product card image swap — replaces Iconic Image Swap plugin */
.sg-loop-img-wrap {
    position: relative;
    overflow: hidden;
    display: block;
    aspect-ratio: 1 / 1;
    background: #FFFFFF;
}
.sg-loop-img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    transition: opacity 0.3s ease;
}
.sg-loop-img-wrap--swap .sg-loop-img--secondary {
    position: absolute;
    inset: 0;
    opacity: 0;
}
.sg-loop-img-wrap--swap:hover .sg-loop-img--primary {
    opacity: 0;
}
.sg-loop-img-wrap--swap:hover .sg-loop-img--secondary {
    opacity: 1;
}

/* ============================================================
   SG: Shop Page Header Styles
   Covers: H1, intro, trust bar, result count, sort select
   ============================================================ */

/* ── H1 ─────────────────────────────────────────────────── */
.sg-shop-h1 .elementor-heading-title {
    font-family: 'DM Sans', sans-serif !important;
    font-size: clamp(22px, 3vw, 32px) !important;
    font-weight: 700 !important;
    color: #0f1923 !important;
    line-height: 1.2 !important;
    letter-spacing: -0.02em !important;
    margin: 0 0 6px 0 !important;
}

/* ── Intro paragraph ─────────────────────────────────────── */
.sg-shop-intro .elementor-widget-container p {
    font-family: 'DM Sans', sans-serif !important;
    font-size: 15px !important;
    color: #4a5568 !important;
    line-height: 1.6 !important;
    margin: 0 !important;
}

/* ── Trust bar ───────────────────────────────────────────── */
.sg-shop-trust-bar {
    margin-bottom: 0 !important;
}

.sg-trust-bar-list {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 16px 28px !important;
    align-items: center !important;
}

.sg-trust-bar-item {
    display: flex !important;
    align-items: center !important;
    gap: 7px !important;
    font-family: 'DM Sans', sans-serif !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    color: #1a5c70 !important;
    white-space: nowrap !important;
}

.sg-trust-bar-icon {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 20px !important;
    height: 20px !important;
    background: #237B94 !important;
    color: #fff !important;
    border-radius: 50% !important;
    font-size: 10px !important;
    font-style: normal !important;
    flex-shrink: 0 !important;
    line-height: 1 !important;
}

/* ── Meta row (result count + sort) ─────────────────────── */
.sg-shop-meta-row {
    margin-top: 16px !important;
    padding-top: 14px !important;
}

/* Result count */
.sg-result-count {
    font-family: 'DM Sans', sans-serif !important;
    font-size: 13px !important;
    color: #6b7280 !important;
    font-weight: 400 !important;
}

.sg-result-count strong {
    color: #0f1923 !important;
    font-weight: 600 !important;
}

/* Sort select */
.sg-sort-select-wrap {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
}

.sg-sort-label {
    font-family: 'DM Sans', sans-serif !important;
    font-size: 13px !important;
    color: #6b7280 !important;
    font-weight: 400 !important;
    white-space: nowrap !important;
}

.sg-sort-select {
    font-family: 'DM Sans', sans-serif !important;
    font-size: 13px !important;
    color: #0f1923 !important;
    font-weight: 500 !important;
    background: #ffffff !important;
    border: 1px solid #d1d5db !important;
    border-radius: 6px !important;
    padding: 6px 28px 6px 10px !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    cursor: pointer !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b7280' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 9px center !important;
    transition: border-color 0.2s ease !important;
    min-width: 170px !important;
}

.sg-sort-select:hover,
.sg-sort-select:focus {
    border-color: #237B94 !important;
    outline: none !important;
}

/* ── Mobile stacking ─────────────────────────────────────── */
@media (max-width: 767px) {
    .sg-shop-meta-row > .elementor-element {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 10px !important;
    }

    .sg-trust-bar-list {
        gap: 10px 20px !important;
    }

    .sg-trust-bar-item {
        font-size: 12px !important;
    }

    .sg-sort-select {
        min-width: 140px !important;
    }
}

/* ── Results container anchor spacing ───────────────────── */
.sg-shop-results {
    scroll-margin-top: 100px;
}

/* ── Wrapper classes used in meta row shortcodes ────────────────── */
.sg-result-count-wrap {
    display: flex !important;
    align-items: center !important;
}

.sg-sort-wrap {
    display: flex !important;
    align-items: center !important;
}

/* ── Guide / resource card (sg-guide-card) ──────────────────────── */
/* Resource cards in the dark footer section of category pages.
   Container bg is set in JSON (#FFFFFF); this adds hover treatment. */
.sg-guide-card {
    transition: transform 0.2s ease, box-shadow 0.2s ease !important;
}

.sg-guide-card:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 20px rgba(255,255,255,0.08) !important;
}


/* ============================================================
   SG: Category Hero — H1 & Breadcrumb Styles
   Targets the heading widget (.sg-hero-h1) and breadcrumb
   shortcode widget (.sg-hero-breadcrumbs) inside dark category
   heroes that use .sg-hero-2026 + .sg-on-dark containers.
   ============================================================ */

/* ── Hero H1 ─────────────────────────────────────────────── */
.sg-hero-h1 .elementor-heading-title {
    font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
    font-size: clamp(26px, 4.5vw, 42px) !important;
    font-weight: 700 !important;
    line-height: 1.1 !important;
    letter-spacing: -0.025em !important;
    color: #ffffff !important;
    margin: 0 0 16px 0 !important;
    text-shadow: 0 2px 20px rgba(0,0,0,0.35) !important;
}

/* Tablet */
@media (max-width: 1024px) {
    .sg-hero-h1 .elementor-heading-title {
        font-size: clamp(24px, 4vw, 34px) !important;
    }
}

/* Mobile */
@media (max-width: 767px) {
    .sg-hero-h1 .elementor-heading-title {
        font-size: 26px !important;
        letter-spacing: -0.015em !important;
    }
}

/* ── Hero Breadcrumb ─────────────────────────────────────── */
/* .sg-hero-breadcrumbs sits inside .sg-on-dark so the
   rank-math styles in the snippet "SG: Rank Math Breadcrumb Styling" already handle link colors.
   This adds the bottom margin and font-size tuning specific
   to the hero position. */
.sg-hero-breadcrumbs {
    margin-bottom: 12px !important;
}

.sg-hero-breadcrumbs .rank-math-breadcrumb {
    font-size: 13px !important;
    letter-spacing: 0.02em !important;
}

/* Ensure breadcrumb is visible above any hero overlay */
.sg-hero-breadcrumbs {
    position: relative;
    z-index: 2;
}

/* ── Hero subhead ────────────────────────────────────────── */
/* The text-editor Hero Subhead widget is inside sg-hero-2026__content
   but has no dedicated class. Target by position context. */
.sg-glide-cat-hero .elementor-widget-text-editor p,
.sg-hero-2026 .sg-hero-2026__content .elementor-widget-text-editor p {
    color: rgba(255,255,255,0.82) !important;
    font-size: 16px !important;
    line-height: 1.65 !important;
    max-width: 580px !important;
    text-shadow: 0 1px 10px rgba(0,0,0,0.3) !important;
    margin-bottom: 0 !important;
}

@media (max-width: 767px) {
    .sg-glide-cat-hero .elementor-widget-text-editor p,
    .sg-hero-2026 .sg-hero-2026__content .elementor-widget-text-editor p {
        font-size: 15px !important;
    }
}


/* ============================================================
   SG: Category Page Redesign v2
   Structural CSS for the redesigned category page JSONs.
   Also used by the guide pages (TOC chips, cards, sg-on-dark).
   Works alongside snippets #782, #813, #814, #816, #824, #865.

   v2.1 corrections:
   - #floor-compatibility background scoped to category archives
     only (.tax-product_cat). It was forcing the guide pages'
     Floor Compatibility section white and overriding the
     light-blue/white alternation set in the Elementor JSON.
   - Removed empty/dead rules.
   - Consolidated the three duplicated TOC chip blocks into one.
   ============================================================ */

/* ── Design tokens ──────────────────────────────────────── */
:root {
    --sg-cat-teal:      #237B94;
    --sg-cat-teal-dark: #1a5c70;
    --sg-cat-teal-deep: #0f3a48;
    --sg-cat-cream:     #F0F7FA;
    --sg-cat-off-white: #F9FAFB;
    --sg-cat-ink:       #1A1A1A;
    --sg-cat-muted:     #4E6B73;
    --sg-cat-border:    #e5e7eb;
}

/* ── TOC dark bar ───────────────────────────────────────── */
#toc {
    background: var(--sg-cat-teal-deep) !important;
    position: sticky !important;
    top: 0 !important;
    z-index: 200 !important;
}

#toc .sg-toc,
#toc .sg-toc-pills {
    justify-content: flex-start !important;
    flex-wrap: wrap !important;
    gap: 6px 4px !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* TOC chip = Elementor button widget. Class sg-toc-chip is on the outer
   div.elementor-widget-button; the visual element is the inner a.elementor-button */

/* Reset Elementor default button chrome */
#toc .sg-toc-chip .elementor-widget-container,
#toc .sg-toc-chip .elementor-button-wrapper {
    display: contents !important;
}

#toc .sg-toc-chip .elementor-button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 7px 14px !important;
    background: rgba(255,255,255,0.08) !important;
    border: 1px solid rgba(255,255,255,0.18) !important;
    border-radius: 999px !important;
    color: rgba(255,255,255,0.82) !important;
    font-family: 'DM Sans', sans-serif !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    letter-spacing: 0.01em !important;
    text-decoration: none !important;
    text-transform: none !important;
    white-space: nowrap !important;
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease !important;
    box-shadow: none !important;
    line-height: 1.2 !important;
    min-height: 0 !important;
    height: auto !important;
    width: auto !important;
    min-width: 0 !important;
}

#toc .sg-toc-chip .elementor-button:hover,
#toc .sg-toc-chip .elementor-button:focus {
    background: rgba(255,255,255,0.16) !important;
    color: #fff !important;
    border-color: rgba(255,255,255,0.4) !important;
    border-radius: 999px !important;
    outline: none !important;
}

/* Kill Elementor's square hover overlay pseudo-element */
#toc .sg-toc-chip .elementor-button::before,
#toc .sg-toc-chip .elementor-button::after,
#toc .sg-toc-chip .elementor-button-wrapper::before,
#toc .sg-toc-chip .elementor-button-wrapper::after {
    display: none !important;
    border-radius: 999px !important;
}

/* Clip any overflow from Elementor hover bg */
#toc .sg-toc-chip .elementor-button-wrapper {
    border-radius: 999px !important;
    overflow: hidden !important;
    width: auto !important;
}

#toc .sg-toc-chip .elementor-button .elementor-button-text {
    font-size: 13px !important;
    font-weight: 600 !important;
}

/* Chip widget wrappers: no stretch, no default widget margins */
#toc .sg-toc-chip,
#toc .sg-toc-chip.elementor-widget,
#toc .sg-toc-chip.elementor-widget-button {
    width: auto !important;
    min-width: 0 !important;
    flex: 0 0 auto !important;
    margin: 0 !important;
}

#toc .sg-toc-chip .elementor-widget-container {
    width: auto !important;
}

#toc .elementor-widget {
    margin-bottom: 0 !important;
}

/* ── TOC layout: correct selectors from DOM inspection ──────
   Structure:
   #toc
     > div.e-con.e-child          ← outer row (label + chips row)
         > text-editor            ← "ON THIS PAGE:" label
         > div.e-con.e-child      ← chips row container
             > div.sg-toc-chip    ← each button widget
   ──────────────────────────────────────────────────────────── */

/* Desktop: center the outer row */
#toc > .e-con {
    justify-content: center !important;
    flex-wrap: wrap !important;
    gap: 10px 14px !important;
}

/* Chips row: wrap on desktop, tight gap */
#toc .e-con .e-con {
    flex-wrap: wrap !important;
    justify-content: center !important;
    gap: 5px !important;
    align-items: center !important;
}

@media (max-width: 767px) {
    /* TOC bar: not sticky on mobile */
    #toc {
        position: relative !important;
        top: auto !important;
    }

    /* Outer row: stack label above chips */
    #toc > .e-con {
        flex-direction: column !important;
        align-items: center !important;
        gap: 8px !important;
        padding: 10px 0 !important;
    }

    /* Chips row: single scrollable line */
    #toc .e-con .e-con {
        flex-wrap: nowrap !important;
        overflow-x: auto !important;
        overflow-y: visible !important;
        -webkit-overflow-scrolling: touch !important;
        scrollbar-width: none !important;
        justify-content: flex-start !important;
        gap: 5px !important;
        padding: 0 16px 2px 16px !important;
        max-width: 100vw !important;
    }
    #toc .e-con .e-con::-webkit-scrollbar {
        display: none !important;
    }

    /* Each chip: no stretching */
    #toc .sg-toc-chip,
    #toc .sg-toc-chip.elementor-widget {
        flex-shrink: 0 !important;
        width: auto !important;
        flex: 0 0 auto !important;
    }

    #toc .sg-toc-chip .elementor-button {
        font-size: 12px !important;
        padding: 6px 12px !important;
        width: auto !important;
        min-width: 0 !important;
        display: inline-flex !important;
    }

    /* Last chip: breathing room before scroll edge */
    #toc .sg-toc-chip:last-child {
        margin-right: 8px !important;
    }
}

/* ── Section H2 (DM Serif Display) ─────────────────────── */
.elementor-section-wrap .elementor-widget-heading [class*="elementor-heading-title"] {
    font-family: 'DM Sans', sans-serif;
}

/* DM Serif only on h2/h3 section headings — not product h4s */
.elementor-element h2.elementor-heading-title,
.elementor-element h3.elementor-heading-title {
    font-family: 'DM Serif Display', serif !important;
    font-weight: 400 !important;
    letter-spacing: -0.01em !important;
}

/* ── Chooser cards (left teal border accent) ────────────── */
.sg-chooser-card,
[class*="Mounting Card"] > .e-con-inner,
[class*="Base Card"] > .e-con-inner,
[class*="Plug Card"] > .e-con-inner,
[class*="Position Card"] > .e-con-inner {
    border-left: 4px solid var(--sg-cat-teal) !important;
    border-radius: 0 8px 8px 0 !important;
    background: #fff !important;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease !important;
}

[class*="Mounting Card"]:hover > .e-con-inner,
[class*="Base Card"]:hover > .e-con-inner,
[class*="Plug Card"]:hover > .e-con-inner,
[class*="Position Card"]:hover > .e-con-inner {
    border-left-color: var(--sg-cat-teal-dark) !important;
    box-shadow: 0 6px 24px rgba(35,123,148,0.12) !important;
    transform: translateY(-2px);
}

/* Card badge pill */
.sg-cat-badge,
[class*="Card Badge"] p {
    display: inline-flex !important;
    align-items: center !important;
    padding: 4px 12px !important;
    background: var(--sg-cat-teal) !important;
    color: #fff !important;
    border-radius: 999px !important;
    font-family: 'DM Sans', sans-serif !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    margin-bottom: 12px !important;
}

/* ── Applications section (light blue, category pages only) ──── */
.tax-product_cat #applications {
    background: var(--sg-cat-cream) !important;
}

/* App cards: clean white on light blue */
#applications .elementor-element[class*="App:"] > .e-con-inner,
#applications [class*="App HTML"] {
    background: #fff !important;
    border-radius: 10px !important;
    padding: 24px !important;
    transition: box-shadow 0.2s ease, transform 0.2s ease !important;
}

#applications .elementor-element[class*="App:"]:hover > .e-con-inner {
    box-shadow: 0 6px 20px rgba(35,123,148,0.10) !important;
    transform: translateY(-2px);
}

/* ── Resources / cross-links cards on dark bg ───────────── */
[class*="Resource:"] > .e-con-inner,
[class*="Resource Card"] > .e-con-inner {
    background: rgba(255,255,255,0.07) !important;
    border: 1px solid rgba(255,255,255,0.12) !important;
    border-radius: 10px !important;
    padding: 24px !important;
    transition: background 0.2s ease !important;
}

[class*="Resource:"]:hover > .e-con-inner,
[class*="Resource Card"]:hover > .e-con-inner {
    background: rgba(255,255,255,0.12) !important;
}

/* Cross-link text on dark bg — scoped to dark sections ONLY.
   (Was [data-id] which matched every element sitewide.) */
.sg-on-dark .elementor-widget-text-editor p a {
    color: rgba(255,255,255,0.75);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
    transition: color 0.2s ease;
}

.sg-on-dark .elementor-widget-text-editor p a:hover {
    color: #fff;
}

/* ── Floor compatibility grid ───────────────────────────── */
/* Background forced white on CATEGORY ARCHIVES ONLY.
   Guide pages set this section's background in the Elementor
   JSON (light-blue/white alternation) and must not be overridden. */
.tax-product_cat #floor-compatibility {
    background: #fff !important;
}

/* Row dividers apply everywhere the section exists */
#floor-compatibility .elementor-widget-text-editor p {
    border-bottom: 1px solid var(--sg-cat-border) !important;
    padding-bottom: 10px !important;
    margin-bottom: 10px !important;
}

/* ── Installation cards ─────────────────────────────────── */
#installation [class*="Install:"] > .e-con-inner,
#installation [class*="Card:"] > .e-con-inner {
    border-top: 3px solid var(--sg-cat-teal) !important;
    border-radius: 0 0 8px 8px !important;
    background: var(--sg-cat-off-white) !important;
    padding: 24px !important;
}

/* Step numbers */
#installation [class*="Step"] h3.elementor-heading-title::before {
    content: counter(install-step) '. ';
    counter-increment: install-step;
    color: var(--sg-cat-teal);
    font-family: 'DM Sans', sans-serif;
    font-weight: 700;
}

#installation {
    counter-reset: install-step;
}

/* ── Comparison cards ───────────────────────────────────── */
[id*="vs"] [class*="Compare Card"] > .e-con-inner,
[id*="comparison"] [class*="Card:"] > .e-con-inner {
    border: 2px solid var(--sg-cat-border) !important;
    border-radius: 10px !important;
    padding: 28px !important;
    background: #fff !important;
    transition: border-color 0.2s ease !important;
}

[id*="vs"] [class*="Compare Card"]:first-child > .e-con-inner,
[id*="comparison"] [class*="Card:"]:first-child > .e-con-inner {
    border-color: var(--sg-cat-teal) !important;
}

/* ── Responsive table rows ──────────────────────────────── */
/* Measurement and lookup table rows on mobile: horizontal scroll */
.sg-table-row {
    min-width: 0 !important;
}

@media (max-width: 767px) {
    .sg-table-row {
        flex-wrap: nowrap !important;
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
    }

    .sg-table-row > .e-con {
        min-width: 140px !important;
        flex-shrink: 0 !important;
    }
}

/* ── Step cards: stack on mobile ────────────────────────── */
@media (max-width: 600px) {
    /* Step row containers wrap — badge goes above text */
    [class*="Step"] > .e-con-inner {
        flex-wrap: wrap !important;
    }
}

/* ── Guide card grid: 2 col tablet, 1 col mobile ────────── */
.sg-guide-card-grid {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 24px !important;
}

@media (max-width: 1024px) {
    .sg-guide-card-grid > .e-con {
        width: calc(50% - 12px) !important;
    }
}

@media (max-width: 600px) {
    .sg-guide-card-grid > .e-con {
        width: 100% !important;
    }
}

/* ── sg-guide-card: whole-card clickable container ──────── */
.sg-guide-card,
.elementor-element.sg-guide-card {
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease !important;
    cursor: pointer !important;
    text-decoration: none !important;
    position: relative !important;
}

.sg-guide-card:hover,
.elementor-element.sg-guide-card:hover {
    transform: translateY(-3px) !important;
    box-shadow: 0 10px 32px rgba(35,123,148,0.16) !important;
    border-color: var(--sg-cat-teal) !important;
}

/* Colour the heading teal on hover */
.sg-guide-card:hover .elementor-heading-title,
.elementor-element.sg-guide-card:hover .elementor-heading-title {
    color: var(--sg-cat-teal) !important;
}

/* Tablet: 2 col */
@media (max-width: 1023px) {
    .sg-guide-card,
    .elementor-element.sg-guide-card {
        width: 46% !important;
    }
}

@media (max-width: 480px) {
    .sg-guide-card,
    .elementor-element.sg-guide-card {
        width: 100% !important;
    }
}

/* ── Intro text max-width ───────────────────────────────── */
.sg-intro-text {
    max-width: 720px !important;
}

/* ── Hero product image ─────────────────────────────────── */
.sg-hero-product-img img {
    width: 100% !important;
    height: auto !important;
    max-height: 420px !important;
    object-fit: contain !important;
    object-position: center bottom !important;
    filter: drop-shadow(0 20px 40px rgba(0,0,0,0.3)) !important;
}

/* ── Quick-path cards (guide-intro right col) ───────────── */
.sg-path-card {
    transition: transform 0.18s ease, border-color 0.18s ease !important;
    text-decoration: none !important;
    cursor: pointer !important;
}
.sg-path-card:hover {
    transform: translateX(4px) !important;
    border-color: var(--sg-cat-teal) !important;
}

/* ============================================================
   SG: Custom Search Styles
   Replaces: YITH Search Bar Customization
   Overlay + input + results dropdown
   Design: light bg, teal accents, DM Sans, white product cards
   ============================================================ */

/* ── Overlay shell ── */
#sg-search-overlay {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 99999;
    background: rgba(15, 58, 72, 0.55);
    align-items: flex-start;
    justify-content: center;
    padding-top: 80px;
}
#sg-search-overlay.sg-search-open {
    display: flex;
}

/* ── Inner panel ── */
#sg-search-inner {
    background: #FFFFFF;
    width: 100%;
    max-width: 680px;
    border-radius: 12px;
    box-shadow: 0 20px 60px rgba(15, 58, 72, 0.25);
    overflow: hidden;
    margin: 0 16px;
}

/* ── Input row ── */
#sg-search-input-row {
    display: flex;
    align-items: center;
    gap: 0;
    padding: 16px 16px 16px 20px;
    border-bottom: 1px solid #E5EEF3;
}

#sg-search-input {
    flex: 1;
    border: none;
    background: transparent;
    font-family: 'DM Sans', sans-serif;
    font-size: 17px;
    color: #1A1A1A;
    outline: none;
    padding: 0;
    min-width: 0;
}
#sg-search-input::placeholder {
    color: #9aadba;
}

#sg-search-submit {
    flex-shrink: 0;
    background: #237B94;
    color: #fff;
    border: none;
    border-radius: 6px;
    font-family: 'DM Sans', sans-serif;
    font-size: 14px;
    font-weight: 600;
    padding: 9px 18px;
    cursor: pointer;
    transition: background 0.15s;
    margin-right: 10px;
}
#sg-search-submit:hover {
    background: #1a5c70;
}

#sg-search-close {
    flex-shrink: 0;
    background: none;
    border: none;
    cursor: pointer;
    color: #4E6B73;
    font-size: 22px;
    line-height: 1;
    padding: 4px 4px;
    border-radius: 4px;
    transition: color 0.15s;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
}
#sg-search-close:hover {
    color: #1A1A1A;
}

/* ── Results container ── */
#sg-search-results {
    max-height: 420px;
    overflow-y: auto;
    padding: 8px 0;
}

/* ── Status messages ── */
#sg-search-results .sg-search-status {
    padding: 16px 20px;
    font-family: 'DM Sans', sans-serif;
    font-size: 14px;
    color: #4E6B73;
    text-align: center;
}

/* ── Product result item ── */
.sg-search-result {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 10px 20px;
    cursor: pointer;
    text-decoration: none;
    transition: background 0.1s;
    border-bottom: 1px solid #F0F7FA;
}
.sg-search-result:last-child {
    border-bottom: none;
}
.sg-search-result:hover,
.sg-search-result.sg-result-active {
    background: #F0F7FA;
    text-decoration: none;
}

.sg-search-result-img {
    width: 52px;
    height: 52px;
    object-fit: contain;
    border-radius: 6px;
    background: #fff;
    flex-shrink: 0;
    border: 1px solid #E5EEF3;
}

.sg-search-result-info {
    flex: 1;
    min-width: 0;
}
.sg-search-result-name {
    font-family: 'DM Sans', sans-serif;
    font-size: 14px;
    font-weight: 500;
    color: #1A1A1A;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    display: block;
    margin-bottom: 2px;
}
.sg-search-result-price {
    font-family: 'DM Sans', sans-serif;
    font-size: 13px;
    color: #4E6B73;
}

/* ── View all / No results footer ── */
#sg-search-footer {
    border-top: 1px solid #E5EEF3;
}

#sg-search-viewall {
    display: block;
    width: 100%;
    padding: 13px 20px;
    background: none;
    border: none;
    font-family: 'DM Sans', sans-serif;
    font-size: 14px;
    font-weight: 600;
    color: #237B94;
    cursor: pointer;
    text-align: left;
    transition: background 0.1s;
}
#sg-search-viewall:hover {
    background: #F0F7FA;
    text-decoration: none;
    color: #1a5c70;
}

#sg-search-advisor {
    display: block;
    padding: 13px 20px;
    font-family: 'DM Sans', sans-serif;
    font-size: 14px;
    color: #237B94;
    font-weight: 500;
    text-align: center;
    text-decoration: none;
    transition: background 0.1s;
}
#sg-search-advisor:hover {
    background: #F0F7FA;
    text-decoration: none;
}

/* ── Mobile ── */
@media (max-width: 600px) {
    #sg-search-overlay {
        padding-top: 0;
        align-items: flex-start;
    }
    #sg-search-inner {
        border-radius: 0 0 12px 12px;
        margin: 0;
        width: 100%;
        max-width: 100%;
    }
    #sg-search-results {
        max-height: 60vh;
    }
}
/* Hide native browser 'X' clear button on search input */
#sg-search-input::-webkit-search-cancel-button,
#sg-search-input::-webkit-search-decoration {
    display: none;
    -webkit-appearance: none;
    appearance: none;
}

/* ── Search bar padding: add the missing tablet + mobile steps ──
   Desktop stays at the existing 16px 16px 16px 20px above. */

/* Tablet */
@media (max-width: 1024px) {
    #sg-search-inner     { margin: 0 24px; }
    #sg-search-input-row { padding: 14px 14px 14px 18px; }
}

/* Mobile */
@media (max-width: 600px) {
    #sg-search-input-row { padding: 12px 10px 12px 16px; }
    #sg-search-submit    { padding: 8px 14px; margin-right: 6px; }
    #sg-search-close     { width: 30px; height: 30px; }
}

/* ── Empty results: collapse the light strip below the divider ──
   (safety net for when JS hasn't rendered suggestions yet) ── */
#sg-search-results:empty {
    padding: 0;
}

/* ── Popular searches / suggestions strip ── */
#sg-search-suggestions {
    padding: 6px 20px 14px;
}
#sg-search-suggestions-label {
    margin: 0 0 10px;
    font-family: 'DM Sans', sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #9aadba;
}
#sg-search-suggestions-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
/* Scoped + !important so the Elementor kit's bare-<button> style
   (teal fill + legacy orange hover) can't override these. Secondary
   look on purpose: white pill, teal text, soft light hover — distinct
   from the solid-teal Search button. */
#sg-search-suggestions .sg-search-chip {
    font-family: 'DM Sans', sans-serif !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    color: #237B94 !important;
    background: #FFFFFF !important;
    border: 1px solid #DDEBF2 !important;
    border-radius: 999px !important;
    padding: 7px 14px !important;
    min-height: 0 !important;
    width: auto !important;
    box-shadow: none !important;
    transform: none !important;
    cursor: pointer;
    transition: background 0.12s, border-color 0.12s, color 0.12s;
    white-space: nowrap;
}
#sg-search-suggestions .sg-search-chip:hover,
#sg-search-suggestions .sg-search-chip:focus-visible {
    background: #F0F7FA !important;
    border-color: #237B94 !important;
    color: #1a5c70 !important;
    outline: none !important;
    box-shadow: none !important;
    transform: none !important;
}
#sg-search-suggestions .sg-search-chip:active {
    background: #E5EEF3 !important;
    transform: none !important;
}
@media (max-width: 600px) {
    #sg-search-suggestions { padding: 4px 16px 12px; }
    #sg-search-suggestions .sg-search-chip { font-size: 12px !important; padding: 6px 12px !important; }
}

.product_meta { border-top:none !important; padding-top:10px; margin-top:25px; font-size:13px !important; line-height:1.6; }
.product_meta .sku_wrapper, .product_meta .posted_in { color:#9CA3AF !important; font-weight:500; text-transform:uppercase; letter-spacing:0.05em; margin-bottom:2px; }
.product_meta .posted_in { display:block; }
.product_meta .sku_wrapper { display:none; }
.product_meta span.sku, .product_meta a { color:#374151 !important; font-weight:400; text-transform:none; letter-spacing:normal; }
.product_meta a { color:#237B94 !important; text-decoration:none; transition:color 0.2s ease; }
.product_meta a:hover { color:#237B94 !important; }


/* SG: Product Card — clickable affordance, price unit, wishlist + PDP reassurance */
.sg-product-card { position: relative !important; cursor: pointer; transition: box-shadow .15s ease, border-color .15s ease; }
.sg-product-card:hover { box-shadow: 0 6px 20px rgba(0,0,0,.08); border-color: #cfe3ea; }
.sg-product-card a:not(.sg-wishlist-heart):not(.sg-qv-btn):not(.sg-wishlist-link), .sg-product-card button:not(.sg-wishlist-heart):not(.sg-qv-btn):not(.sg-wishlist-save) { position: relative; z-index: 1; }
/* Heart sits in the card's top-right corner WITHOUT taking layout space (kills the top gap). */
.sg-product-card > .elementor-element:first-child { position: absolute !important; top: 0; right: 0; width: 0 !important; height: 0 !important; margin: 0 !important; padding: 0 !important; overflow: visible !important; z-index: 4; }
.sg-price-unit { font-size: .8em; font-weight: 400; color: #4E6B73; }

/* Wishlist heart — hardened to beat Elementor global button kit */
.sg-product-card .sg-wishlist-heart,
.sg-wishlist-heart {
  position: absolute !important;
  top: 12px !important; right: 12px !important; left: auto !important; bottom: auto !important;
  z-index: 4 !important;
  width: 34px !important; height: 34px !important;
  min-width: 0 !important; min-height: 0 !important;
  max-width: none !important;
  margin: 0 !important; padding: 0 !important;
  border: 0 !important; border-radius: 50% !important;
  background: rgba(255,255,255,.92) !important;
  background-image: none !important;
  box-shadow: 0 1px 5px rgba(0,0,0,.12) !important;
  color: #9CA3AF !important;
  font-size: 0 !important; line-height: 0 !important;
  text-align: center; letter-spacing: normal !important;
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
  cursor: pointer !important;
  transition: color .15s ease, transform .15s ease !important;
}
.sg-wishlist-heart svg { width: 18px !important; height: 18px !important; display: block !important; margin: 0 !important; }
.sg-wishlist-heart:hover { color: #237B94 !important; transform: scale(1.08) !important; }
.sg-wishlist-heart.is-saved { color: #237B94 !important; }
.sg-wishlist-heart.is-saved svg { fill: currentColor !important; }

/* Header/footer wishlist link + count */
.sg-wishlist-link { position:relative; display:inline-flex; align-items:center; color:#1A1A1A; text-decoration:none; line-height:0; }
.sg-wishlist-link:hover { color:#237B94; }
.sg-wishlist-count { position:absolute; top:-6px; right:-8px; min-width:16px; height:16px; padding:0 4px; border-radius:8px; background:#237B94; color:#fff; font-size:10px; font-weight:700; line-height:16px; text-align:center; }
.sg-wishlist-count.is-empty { display:none; }

/* PDP "Save to wishlist" button */
.sg-wishlist-save { display:inline-flex !important; align-items:center; gap:8px; padding:10px 16px !important; margin-top:12px; background:#fff !important; background-image:none !important; color:#237B94 !important; border:1px solid #E5EEF3 !important; border-radius:8px !important; min-height:0 !important; box-shadow:none !important; font-family:'DM Sans',sans-serif !important; font-weight:600 !important; font-size:14px !important; line-height:1 !important; cursor:pointer; transition:background .15s ease, border-color .15s ease; }
.sg-wishlist-save svg { width:18px; height:18px; }
.sg-wishlist-save:hover { background:#F0F7FA !important; border-color:#237B94 !important; color:#237B94 !important; box-shadow:none !important; transform:none !important; }
.sg-wishlist-save.is-saved { color:#237B94 !important; border-color:#237B94 !important; background:#F0F7FA !important; }
.sg-wishlist-save.is-saved svg { fill:currentColor; }

/* PDP reassurance */
.sg-pdp-reassure { margin:12px 0 0; font-size:14px; color:#4E6B73; }
.sg-pdp-reassure a, .sg-pdp-reassure .sg-open-advisor-btn,
.sg-wishlist-empty a, .sg-wishlist-empty .sg-open-advisor-btn {
  display:inline !important; color:#237B94 !important;
  background:none !important; background-color:transparent !important; background-image:none !important;
  border:0 !important; border-radius:0 !important; box-shadow:none !important;
  padding:0 !important; margin:0 !important; min-height:0 !important;
  font:inherit !important; font-weight:inherit !important; line-height:inherit !important;
  text-decoration:underline !important; text-underline-offset:2px; cursor:pointer;
}
.sg-pdp-reassure a:hover, .sg-pdp-reassure .sg-open-advisor-btn:hover,
.sg-wishlist-empty a:hover, .sg-wishlist-empty .sg-open-advisor-btn:hover {
  color:#1a5c70 !important; background:none !important; box-shadow:none !important;
  text-decoration:underline !important; transform:none !important;
}

/* Wishlist page grid */
.sg-wishlist-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:20px; }
.sg-wishlist-item { padding:20px; text-align:center; }
.sg-wishlist-item .sg-wishlist-thumb img { max-width:100%; height:auto; }
.sg-wishlist-title { display:block; font-family:'DM Sans', sans-serif; font-weight:600; color:#1A1A1A; text-decoration:none; margin:10px 0 6px; }
.sg-wishlist-price { font-weight:600; color:#1A1A1A; margin-bottom:12px; }
.sg-wishlist-remove { position:absolute; top:10px; right:10px; z-index:3; width:26px; height:26px; border:0; border-radius:50%; background:rgba(0,0,0,.05); color:#4E6B73; font-size:18px; line-height:1; cursor:pointer; }
.sg-wishlist-remove:hover { background:rgba(0,0,0,.1); color:#1A1A1A; }
.sg-wishlist-empty { text-align:center; padding:40px 20px; color:#4E6B73; }
/* empty-state links + advisor button are styled by the hardened combined rule above */
/* NOTE: if "SG – Product card hover styles" already lifts the card, delete the .sg-product-card:hover rule above. */

/* Wishlist remove button — bare X pinned to the card's top-right corner.
   Hardened against the Elementor global button kit (which was painting it
   teal and sizing it as a block at the top of the card). */
.sg-wishlist-item .sg-wishlist-remove {
  position: absolute !important;
  top: 12px !important; right: 12px !important; left: auto !important; bottom: auto !important;
  z-index: 4 !important;
  width: 30px !important; height: 30px !important;
  min-width: 0 !important; min-height: 0 !important; max-width: none !important;
  margin: 0 !important; padding: 0 !important;
  border: 0 !important; border-radius: 50% !important;
  background: rgba(255,255,255,.92) !important; background-image: none !important;
  box-shadow: 0 1px 5px rgba(0,0,0,.12) !important;
  color: #4E6B73 !important;
  font-size: 18px !important; line-height: 30px !important; font-weight: 400 !important;
  text-align: center !important; letter-spacing: normal !important;
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
  cursor: pointer !important;
  transition: color .15s ease, background .15s ease;
}
.sg-wishlist-item .sg-wishlist-remove:hover {
  color: #1A1A1A !important;
  background: #fff !important;
}

/* SG: Quick View — card hover button + modal */
.sg-qv-imghost { position:relative !important; }
.sg-qv-btn { position:absolute !important; left:50%; bottom:10px; top:auto; transform:translate(-50%,8px); z-index:5 !important; opacity:0; padding:9px 16px; border:0; border-radius:8px; background:rgba(26,26,26,.86); color:#fff; font-family:'DM Sans',sans-serif; font-weight:600; font-size:13px; line-height:1; cursor:pointer; pointer-events:none; transition:opacity .15s ease, transform .15s ease; }
.sg-product-card:hover .sg-qv-btn { opacity:1; transform:translate(-50%,0); pointer-events:auto; }
.sg-qv-btn:hover { background:#237B94; }
/* Mobile: no hover, so don't show a button that covers Select options — tap card to open product */
@media (hover:none) { .sg-qv-btn { display:none !important; } }
.sg-qv-overlay { position:fixed; inset:0; z-index:99999; background:rgba(0,0,0,.5); display:flex; align-items:center; justify-content:center; padding:20px; }
.sg-qv-modal { position:relative; background:#fff; border-radius:12px; max-width:880px; width:100%; max-height:90vh; overflow:auto; padding:28px; box-shadow:0 20px 60px rgba(0,0,0,.25); }
.sg-qv-close { position:absolute; top:12px; right:12px; width:32px; height:32px; padding:0 !important; border:0 !important; background:none !important; box-shadow:none !important; font-size:24px !important; line-height:32px !important; color:#1A1A1A !important; cursor:pointer; z-index:5; text-align:center; }
.sg-qv-close::before { content:none !important; }
.sg-qv-close:hover { color:#237B94 !important; }
.sg-qv { display:grid; grid-template-columns:1fr 1fr; gap:28px; align-items:start; }
@media (max-width:680px) { .sg-qv { grid-template-columns:1fr; } }
.sg-qv-media img { max-width:100%; height:auto; border-radius:8px; }
.sg-qv-title { font-family:'DM Serif Display', serif; font-size:26px; line-height:1.15; color:#1A1A1A; margin:0 0 8px; padding-right:48px; }
.sg-qv-price { font-size:20px; color:#1A1A1A; margin-bottom:12px; }
.sg-qv-desc { color:#4E6B73; font-size:14px; line-height:1.6; margin-bottom:16px; }
.sg-qv-full { display:inline-block; margin-top:14px; color:#237B94; text-decoration:underline; }
.sg-qv-loading { color:#4E6B73; text-align:center; padding:48px 20px; }


/* --- SG additions: size grid, size-help hide, qty inline, wishlist --- */
/* Remove "Not sure what size?" inside the modal only (stays on PDP) */
.sg-qv-modal .sg-size-help { display:none !important; }

/* Quantity inline with the add-to-cart / quote button, room for 3 digits */
.sg-qv-modal .woocommerce-variation-add-to-cart,
.sg-qv-modal form.cart:not(.variations_form) {
  display:flex !important; align-items:center; flex-wrap:wrap; gap:12px !important;
}
.sg-qv-modal .quantity { margin:0 !important; }
.sg-qv-modal .quantity input.qty { width:76px !important; text-align:center; padding-left:6px; padding-right:6px; }
.sg-qv-modal .woocommerce-variation-add-to-cart .button,
.sg-qv-modal .single_add_to_cart_button,
.sg-qv-modal .b2bking_add_to_quote_button { margin:0 !important; }

/* Wishlist save button in the modal */
.sg-qv-modal .sg-wishlist-save { margin-top:12px; }

