/* RC Responsive Final v6 (2026-04-20)
   COMPREHENSIVE responsive fix.
   v6 changes:
     - FORCE Font Awesome 4.7 render (override theme bundle FA5 family)
     - Inject ::before content for all icons used (PurgeCSS-proof)
     - Touch targets >= 44px
     - Footer 1-column enforcement all mobile breakpoints
     - Hero responsive constraints
*/

/* ============================================================
   FORCE FONT AWESOME 4.7 SUBSET (override theme bundle FA5 family)
   Theme bundle defines `.fa { font-family: "Font Awesome 5 Free" }`
   but only FA4 subset is loaded via font-awesome-preload.css.
   We force ALL .fa selectors to use FontAwesome (FA4) and inject
   ::before content (PurgeCSS may have stripped them from bundle).
   ============================================================ */
.fa, .fas, .far, .fal, .fab,
.fa-solid, .fa-regular, .fa-brands,
[class^="fa-"], [class*=" fa-"] {
  font-family: "FontAwesome" !important;
  font-weight: normal !important;
  font-style: normal !important;
  -webkit-font-smoothing: antialiased !important;
  -moz-osx-font-smoothing: grayscale !important;
  display: inline-block;
  text-rendering: auto;
}

/* Icon glyphs (FA 4.7 codepoints) — explicit to survive PurgeCSS */
.fa-bars::before, .fa-navicon::before, .fa-reorder::before { content: "\f0c9" !important; font-family: FontAwesome !important; }
.fa-search::before { content: "\f002" !important; font-family: FontAwesome !important; }
.fa-user::before { content: "\f007" !important; font-family: FontAwesome !important; }
.fa-user-o::before { content: "\f2c0" !important; font-family: FontAwesome !important; }
.fa-shopping-bag::before { content: "\f290" !important; font-family: FontAwesome !important; }
.fa-shopping-cart::before, .fa-shopping-basket::before { content: "\f07a" !important; font-family: FontAwesome !important; }
.fa-cart-plus::before { content: "\f217" !important; font-family: FontAwesome !important; }
.fa-times::before, .fa-close::before, .fa-remove::before { content: "\f00d" !important; font-family: FontAwesome !important; }
.fa-angle-down::before { content: "\f107" !important; font-family: FontAwesome !important; }
.fa-angle-up::before { content: "\f106" !important; font-family: FontAwesome !important; }
.fa-angle-left::before { content: "\f104" !important; font-family: FontAwesome !important; }
.fa-angle-right::before { content: "\f105" !important; font-family: FontAwesome !important; }
.fa-chevron-down::before { content: "\f078" !important; font-family: FontAwesome !important; }
.fa-chevron-up::before { content: "\f077" !important; font-family: FontAwesome !important; }
.fa-chevron-left::before { content: "\f053" !important; font-family: FontAwesome !important; }
.fa-chevron-right::before { content: "\f054" !important; font-family: FontAwesome !important; }
.fa-arrow-up::before { content: "\f062" !important; font-family: FontAwesome !important; }
.fa-arrow-down::before { content: "\f063" !important; font-family: FontAwesome !important; }
.fa-arrow-left::before { content: "\f060" !important; font-family: FontAwesome !important; }
.fa-arrow-right::before { content: "\f061" !important; font-family: FontAwesome !important; }
.fa-phone::before { content: "\f095" !important; font-family: FontAwesome !important; }
.fa-mobile::before, .fa-mobile-phone::before { content: "\f10b" !important; font-family: FontAwesome !important; }
.fa-envelope::before { content: "\f0e0" !important; font-family: FontAwesome !important; }
.fa-envelope-o::before { content: "\f003" !important; font-family: FontAwesome !important; }
.fa-map-marker::before { content: "\f041" !important; font-family: FontAwesome !important; }
.fa-clock::before, .fa-clock-o::before { content: "\f017" !important; font-family: FontAwesome !important; }
.fa-heart::before { content: "\f004" !important; font-family: FontAwesome !important; }
.fa-heart-o::before { content: "\f08a" !important; font-family: FontAwesome !important; }
.fa-eye::before { content: "\f06e" !important; font-family: FontAwesome !important; }
.fa-eye-slash::before { content: "\f070" !important; font-family: FontAwesome !important; }
.fa-check::before { content: "\f00c" !important; font-family: FontAwesome !important; }
.fa-check-circle::before, .fa-check-circle-o::before { content: "\f058" !important; font-family: FontAwesome !important; }
.fa-plus::before { content: "\f067" !important; font-family: FontAwesome !important; }
.fa-minus::before { content: "\f068" !important; font-family: FontAwesome !important; }
.fa-info::before { content: "\f129" !important; font-family: FontAwesome !important; }
.fa-info-circle::before { content: "\f05a" !important; font-family: FontAwesome !important; }
.fa-question::before { content: "\f128" !important; font-family: FontAwesome !important; }
.fa-question-circle::before { content: "\f059" !important; font-family: FontAwesome !important; }
.fa-exclamation::before { content: "\f12a" !important; font-family: FontAwesome !important; }
.fa-exclamation-triangle::before, .fa-warning::before { content: "\f071" !important; font-family: FontAwesome !important; }
.fa-facebook::before, .fa-facebook-f::before { content: "\f09a" !important; font-family: FontAwesome !important; }
.fa-twitter::before { content: "\f099" !important; font-family: FontAwesome !important; }
.fa-instagram::before { content: "\f16d" !important; font-family: FontAwesome !important; }
.fa-whatsapp::before { content: "\f232" !important; font-family: FontAwesome !important; }
.fa-youtube::before, .fa-youtube-play::before { content: "\f167" !important; font-family: FontAwesome !important; }
.fa-linkedin::before, .fa-linkedin-square::before { content: "\f0e1" !important; font-family: FontAwesome !important; }
.mobile-bag-icon::before { content: "\f290" !important; font-family: FontAwesome !important; }
.fa-list::before { content: "\f03a" !important; font-family: FontAwesome !important; }
.fa-th::before { content: "\f00a" !important; font-family: FontAwesome !important; }
.fa-th-large::before { content: "\f009" !important; font-family: FontAwesome !important; }
.fa-filter::before { content: "\f0b0" !important; font-family: FontAwesome !important; }
.fa-sort::before { content: "\f0dc" !important; font-family: FontAwesome !important; }
.fa-sort-down::before, .fa-sort-desc::before { content: "\f0dd" !important; font-family: FontAwesome !important; }
.fa-sort-up::before, .fa-sort-asc::before { content: "\f0de" !important; font-family: FontAwesome !important; }
.fa-star::before { content: "\f005" !important; font-family: FontAwesome !important; }
.fa-star-o::before { content: "\f006" !important; font-family: FontAwesome !important; }
.fa-star-half-o::before, .fa-star-half-empty::before { content: "\f123" !important; font-family: FontAwesome !important; }
.fa-trash::before, .fa-trash-o::before { content: "\f014" !important; font-family: FontAwesome !important; }
.fa-edit::before, .fa-pencil::before, .fa-pencil-square-o::before { content: "\f040" !important; font-family: FontAwesome !important; }
.fa-cog::before, .fa-gear::before { content: "\f013" !important; font-family: FontAwesome !important; }
.fa-spinner::before { content: "\f110" !important; font-family: FontAwesome !important; }
.fa-circle-o-notch::before { content: "\f1ce" !important; font-family: FontAwesome !important; }
.fa-refresh::before { content: "\f021" !important; font-family: FontAwesome !important; }
.fa-bars-staggered::before, .fa-align-justify::before { content: "\f039" !important; font-family: FontAwesome !important; }
.fa-home::before { content: "\f015" !important; font-family: FontAwesome !important; }
.fa-truck::before { content: "\f0d1" !important; font-family: FontAwesome !important; }
.fa-credit-card::before { content: "\f09d" !important; font-family: FontAwesome !important; }
.fa-shield::before { content: "\f132" !important; font-family: FontAwesome !important; }
.fa-tag::before { content: "\f02b" !important; font-family: FontAwesome !important; }
.fa-tags::before { content: "\f02c" !important; font-family: FontAwesome !important; }
.fa-percent::before { content: "\f295" !important; font-family: FontAwesome !important; }
.fa-share::before, .fa-share-alt::before { content: "\f1e0" !important; font-family: FontAwesome !important; }
.fa-print::before { content: "\f02f" !important; font-family: FontAwesome !important; }
.fa-download::before { content: "\f019" !important; font-family: FontAwesome !important; }
.fa-external-link::before { content: "\f08e" !important; font-family: FontAwesome !important; }
.fa-bookmark::before, .fa-bookmark-o::before { content: "\f02e" !important; font-family: FontAwesome !important; }
.fa-comment::before, .fa-comment-o::before { content: "\f0e5" !important; font-family: FontAwesome !important; }
.fa-comments::before, .fa-comments-o::before { content: "\f0e6" !important; font-family: FontAwesome !important; }
.fa-thumbs-up::before, .fa-thumbs-o-up::before { content: "\f164" !important; font-family: FontAwesome !important; }
.fa-thumbs-down::before, .fa-thumbs-o-down::before { content: "\f165" !important; font-family: FontAwesome !important; }
.fa-cube::before { content: "\f1b2" !important; font-family: FontAwesome !important; }
.fa-cubes::before { content: "\f1b3" !important; font-family: FontAwesome !important; }
.fa-wrench::before { content: "\f0ad" !important; font-family: FontAwesome !important; }
.fa-fire::before { content: "\f06d" !important; font-family: FontAwesome !important; }
.fa-bolt::before { content: "\f0e7" !important; font-family: FontAwesome !important; }

/* ============================================================
   FONT AWESOME @font-face — ABSOLUTE URL fallback
   (in case preload CSS doesn't load OR has CORS issues)
   Use absolute URL so path is correct regardless of CSS file location.
   ============================================================ */
@font-face {
  font-family: "FontAwesome";
  src: url("/themes/warehouse/assets/css/font-awesome/fonts/fontawesome-webfont.woff2?v=4.7.0") format("woff2");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

/* ============================================================
   GLOBAL — touch-friendly, no horizontal overflow
   ============================================================ */
html, body {
  overflow-x: hidden !important;
  max-width: 100vw !important;
}
img, video, iframe, embed, object {
  max-width: 100% !important;
  height: auto;
}

/* ============================================================
   CLS PREVENTION — reserve space for images without explicit dimensions
   Targets CMS images, banners, hero blocks where Smarty doesn't emit width/height
   ============================================================ */
img[src*="/img/cms/"]:not([width]):not([height]),
img[src*="/img/p/"]:not([width]):not([height]),
.iqitelementor-block img:not([width]):not([height]),
.elementor-image img:not([width]):not([height]),
.elementor-widget-image img:not([width]):not([height]),
.banner img:not([width]):not([height]) {
  aspect-ratio: 16 / 9;
  object-fit: contain;
  background: rgba(0,0,0,0.02);
}
/* Hero banners typically wider */
.rc-hero img:not([width]):not([height]),
.layerslider img:not([width]):not([height]),
.banner-home img:not([width]):not([height]) {
  aspect-ratio: 21 / 9;
}
/* Product card images square-ish */
.product-miniature img:not([width]):not([height]),
.thumbnail-container img:not([width]):not([height]) {
  aspect-ratio: 1 / 1;
}

/* ============================================================
   ACCESSIBILITY — restore focus indicator (WCAG 2.4.7)
   Theme suppressed all focus rings. We restore via :focus-visible
   so mouse users don't see ring but keyboard users do.
   ============================================================ */
*:focus-visible {
  outline: 2px solid #1d4ed8 !important;
  outline-offset: 2px !important;
  box-shadow: 0 0 0 4px rgba(29,78,216,0.12) !important;
  border-radius: 3px !important;
}
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[role="button"]:focus-visible,
[tabindex]:focus-visible,
.btn:focus-visible {
  outline: 2px solid #1d4ed8 !important;
  outline-offset: 2px !important;
  box-shadow: 0 0 0 4px rgba(29,78,216,0.12) !important;
}
/* Skip link visible on focus */
.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 99999;
  background: #1d4ed8;
  color: #fff;
  padding: 12px 20px;
  border-radius: 0 0 6px 0;
  text-decoration: none;
  font-weight: 600;
}

/* ============================================================
   HERO + CAROUSEL pagination dots — minimum 44px touch target (WCAG 2.5.5)
   Visible dot stays small (8px), but invisible padding extends hit area.
   ============================================================ */
.rc-hero-dot,
.swiper-pagination-bullet,
.layerslider-pagination .ls-bullet,
[class*="hero"] [class*="dot"],
[class*="carousel"] [data-slide-to],
.tablist [role="tab"] {
  position: relative;
  min-width: 44px !important;
  min-height: 44px !important;
  padding: 0 !important;
  background-clip: content-box !important;
  cursor: pointer;
}
.rc-hero-dot::after,
.swiper-pagination-bullet::after,
.layerslider-pagination .ls-bullet::after,
[class*="hero"] [class*="dot"]::after,
[class*="carousel"] [data-slide-to]::after,
.tablist [role="tab"]::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.35);
  transition: background 0.2s ease, transform 0.2s ease;
}
.rc-hero-dot[aria-current="true"]::after,
.swiper-pagination-bullet-active::after,
.layerslider-pagination .ls-bullet.ls-bullet-active::after,
[role="tab"][aria-selected="true"]::after {
  background: #d11326;
  transform: translate(-50%, -50%) scale(1.3);
}
.skip-link:focus {
  left: 0;
}

@media (max-width: 991px) {
  /* Touch targets minimum 44x44 (WCAG / iOS HIG) */
  a, button, [role="button"], .btn, input[type="submit"], input[type="button"] {
    min-height: 44px;
  }
  button, .btn {
    min-width: 44px;
  }

  /* ============================================================
     1. HEADER MOBILE — logo + iconos uniformes
     ============================================================ */
  #mobile-header .col-mobile-logo img.logo,
  #mobile-header .col-mobile-logo img {
    max-height: 50px !important;
    max-width: 160px !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain !important;
  }
  #mobile-header .col-mobile-logo,
  #mobile-header .col-mobile-logo a {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 50px !important;
  }
  #mobile-header .col-mobile-btn .fa,
  #mobile-header .col-mobile-btn i.fa,
  #mobile-header .col-mobile-btn i[class^="fa-"],
  #mobile-header .col-mobile-btn i[class*=" fa-"] {
    font-size: 22px !important;
    line-height: 22px !important;
    display: inline-block !important;
    vertical-align: middle !important;
    color: #1d1d1b !important;
  }
  #mobile-header .col-mobile-btn {
    min-height: 50px !important;
    min-width: 44px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }
  #mobile-header .col-mobile-btn .m-nav-btn,
  #mobile-header .col-mobile-btn > a,
  #mobile-header .col-mobile-btn > div > a {
    display: inline-flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    text-decoration: none !important;
    color: #1d1d1b !important;
    padding: 4px 8px !important;
    min-width: 44px !important;
    min-height: 44px !important;
  }
  /* Hide text labels in header (keep cart count visible) */
  #mobile-header .col-mobile-btn .m-nav-btn > span:not(.cart-products-count):not(.cart-products-count-btn),
  #mobile-header .col-mobile-btn > a > span:not(.cart-products-count):not(.cart-products-count-btn),
  #mobile-header .col-mobile-btn > div > a > span:not(.cart-products-count):not(.cart-products-count-btn) {
    font-size: 0 !important;
    line-height: 0 !important;
    color: transparent !important;
    height: 0 !important;
    overflow: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  /* Cart badge */
  #mobile-header .col-mobile-btn-cart .cart-products-count,
  #mobile-header .col-mobile-btn-cart .cart-products-count-btn {
    font-size: 10px !important;
    line-height: 1 !important;
    color: #fff !important;
    height: 16px !important;
    overflow: visible !important;
    position: absolute !important;
    top: 4px !important;
    right: 4px !important;
    background: #d11326 !important;
    min-width: 16px !important;
    border-radius: 8px !important;
    padding: 0 4px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-weight: 700 !important;
    border: 1.5px solid #fff !important;
  }

  /* ============================================================
     2. MOBILE MENU DRAWER — TODO TEXTO BLANCO
     ============================================================ */
  #_mobile_iqitmegamenu-mobile,
  #iqitmegamenu-mobile,
  #_mobile_iqitmegamenu-mobile *,
  #iqitmegamenu-mobile *,
  .mobile-menu__tab,
  .mobile-menu__tab *,
  .mobile-menu__link,
  .mobile-menu__title,
  .js-mobile-menu__tab-title,
  .mobile-menu__submenu,
  .mobile-menu__submenu *,
  .mobile-menu__row,
  .mobile-menu__row *,
  .mobile-menu__column,
  .mobile-menu__column *,
  .mobile-menu__links-list,
  .mobile-menu__links-list-li,
  .mobile-menu__links-list-li * {
    color: #ffffff !important;
  }
  .mobile-menu__tab .fa.expand-icon,
  .mobile-menu__arrow,
  .mobile-menu__back-btn .fa {
    color: rgba(255,255,255,0.7) !important;
  }

  /* link width 100% (no 70%) */
  html body .mobile-menu .mobile-menu__link,
  html body #iqitmegamenu-mobile .mobile-menu__link,
  html body .mobile-menu__tab .mobile-menu__link {
    width: 100% !important;
    max-width: 100% !important;
  }

  /* Tienda align-left + Servicios + Contacto */
  html body .mobile-menu__tab.mobile-menu__tab--id-6 > a.mobile-menu__link,
  html body .mobile-menu__tab.mobile-menu__tab--id-6 > .mobile-menu__link,
  html body .mobile-menu__tab.mobile-menu__tab--has-submenu > a,
  html body .mobile-menu__tab.mobile-menu__tab--has-submenu > .mobile-menu__link,
  html body .mobile-menu__tab > .js-mobile-menu__link--has-submenu {
    justify-content: flex-start !important;
    text-align: left !important;
    padding-left: 16px !important;
  }
  .mobile-menu__tab.mobile-menu__tab--has-submenu {
    align-items: stretch !important;
  }

  /* Contacto envelope icon */
  html body .mobile-menu__tab.mobile-menu__tab--id-18 > a.mobile-menu__link::before,
  html body .mobile-menu__tab.mobile-menu__tab--id-18 > a::before {
    content: "" !important;
    display: inline-block !important;
    width: 32px !important;
    height: 32px !important;
    border-radius: 8px !important;
    background-color: rgba(29,78,216,0.12) !important;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%233b82f6' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z'/><polyline points='22,6 12,13 2,6'/></svg>") !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    background-size: 16px !important;
    border: 1px solid rgba(29,78,216,0.2) !important;
    flex-shrink: 0 !important;
    margin-right: 12px !important;
    vertical-align: middle !important;
  }
  /* Tienda cart icon */
  html body .mobile-menu__tab.mobile-menu__tab--id-6 > a.mobile-menu__link::before,
  html body .mobile-menu__tab.mobile-menu__tab--id-6 > a::before {
    content: "" !important;
    display: inline-block !important;
    width: 32px !important;
    height: 32px !important;
    border-radius: 8px !important;
    background-color: rgba(29,78,216,0.12) !important;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%233b82f6' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='9' cy='21' r='1'/><circle cx='20' cy='21' r='1'/><path d='M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6'/></svg>") !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    background-size: 16px !important;
    border: 1px solid rgba(29,78,216,0.2) !important;
    flex-shrink: 0 !important;
    margin-right: 12px !important;
    vertical-align: middle !important;
  }

  /* Tienda submenu 3-col stacked */
  html body .mobile-menu__row {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow-x: hidden !important;
  }
  html body .mobile-menu__column {
    width: 100% !important;
    max-width: 100% !important;
    border-top: 1px solid rgba(255,255,255,0.08) !important;
    padding: 12px 0 4px 0 !important;
    margin: 0 !important;
    flex-shrink: 0 !important;
  }
  html body .mobile-menu__column:first-child {
    border-top: 0 !important;
    padding-top: 4px !important;
  }
  html body .mobile-menu__column .mobile-menu__links-list {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  html body .mobile-menu__column .mobile-menu__links-list-li {
    list-style: none !important;
    padding: 0 !important;
    margin: 2px 0 !important;
  }
  html body .mobile-menu__column .mobile-menu__links-list-li > a {
    color: #ffffff !important;
    padding: 12px 16px 12px 28px !important;
    display: block !important;
    font-size: 14px !important;
    text-decoration: none !important;
    border-radius: 6px !important;
    transition: background 0.15s !important;
    width: 100% !important;
    min-height: 44px !important;
  }
  html body .mobile-menu__column .mobile-menu__links-list-li > a:hover,
  html body .mobile-menu__column .mobile-menu__links-list-li > a:active {
    background: rgba(255,255,255,0.06) !important;
  }
  html body .mobile-menu__submenu {
    background: transparent !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
    box-shadow: none !important;
    padding: 8px 12px !important;
  }

  /* Elementor overflow protection — exclude sliders */
  html body .elementor-element:not(.elementor-widget-image-carousel):not([class*="slider"]):not([class*="swiper"]):not([class*="layerslider"]):not([class*="gallery"]) {
    max-width: 100vw !important;
  }

  /* ============================================================
     HERO + CONTENT MOBILE — prevent overflow
     ============================================================ */
  .rc-hero, .rc-hero * {
    max-width: 100% !important;
  }
  .rc-hero img {
    width: 100% !important;
    height: auto !important;
    object-fit: contain !important;
  }

  /* Clip hero/slider sections at viewport edge to prevent prev/next spill on mobile */
  .elementor-section[class*="slider-section"],
  .elementor-widget[class*="slider-widget"],
  .elementor-image-carousel.swiper-container,
  .layerslider-wrapper,
  .ls-wrapper,
  .rc-hero-container {
    overflow: hidden !important;
    max-width: 100% !important;
    width: 100% !important;
  }
  /* Swiper: ensure wrapper doesn't exceed viewport */
  .elementor-image-carousel.swiper-container .swiper-wrapper {
    max-width: 100vw !important;
  }

  /* ============================================================
     PRODUCT GRID — 2 columns mobile (better than 1)
     ============================================================ */
  .products .product-miniature,
  .featured-products .product-miniature,
  #products .product-miniature {
    flex: 0 0 50% !important;
    max-width: 50% !important;
  }
  @media (max-width: 480px) {
    .products .product-miniature,
    .featured-products .product-miniature,
    #products .product-miniature {
      flex: 0 0 100% !important;
      max-width: 100% !important;
    }
  }

  /* ============================================================
     COOKIE BANNER — prevent it eating viewport
     ============================================================ */
  #cookieplus-popup,
  .cookieplus-popup,
  [id*="cookieplus"],
  .cookies-banner {
    max-height: 50vh !important;
    overflow-y: auto !important;
  }

  /* ============================================================
     QTY INPUT mobile — restore visibility on product page
     (theme bundle hides with `display:none !important` on <768px)
     ============================================================ */
  body#product .product-add-to-cart .qty,
  body#product .product-quantity .qty,
  body#product .product-add-to-cart .input-group.bootstrap-touchspin,
  body#product .product-quantity .input-group.bootstrap-touchspin,
  body#product .product-add-to-cart .input-group-btn-vertical,
  body#product .product-quantity .input-group-btn-vertical,
  body#product .product-add-to-cart .col-add-qty,
  body#product .product-quantity .col-add-qty {
    display: flex !important;
    width: auto !important;
    height: auto !important;
    align-items: center !important;
  }
  body#product .product-add-to-cart .input-group.bootstrap-touchspin {
    width: 100px !important;
    margin-right: 12px !important;
  }
  body#product .product-add-to-cart .input-group.bootstrap-touchspin input {
    width: 40px !important;
    height: 44px !important;
    text-align: center !important;
    border: 1px solid #d1d5db !important;
    border-radius: 0 !important;
    padding: 0 4px !important;
  }
  body#product .product-add-to-cart .bootstrap-touchspin-up,
  body#product .product-add-to-cart .bootstrap-touchspin-down {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 30px !important;
    height: 44px !important;
    background: #f3f4f6 !important;
    border: 1px solid #d1d5db !important;
    color: #1f2937 !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
  }
  body#product .product-add-to-cart .bootstrap-touchspin-up {
    border-radius: 0 4px 4px 0 !important;
  }
  body#product .product-add-to-cart .bootstrap-touchspin-down {
    border-radius: 4px 0 0 4px !important;
  }
  /* Layout container: qty + add-to-cart side by side */
  body#product .product-add-to-cart .input-group-add-cart,
  body#product .product-add-to-cart .product-add-cart {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    flex-wrap: nowrap !important;
  }

  /* ============================================================
     PRODUCT CARD — fix add-to-cart button overflow on 2-col mobile
     ============================================================ */
  .product-miniature .mini-action-row,
  .product-miniature .product-add-cart,
  .product-miniature .input-group-add-cart {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 6px !important;
    width: 100% !important;
    align-items: center !important;
  }
  .product-miniature .btn.add-to-cart,
  .product-miniature .mini-cart-btn,
  .product-miniature .btn-product-list.add-to-cart {
    font-size: 11px !important;
    padding: 8px 4px !important;
    white-space: normal !important;
    line-height: 1.2 !important;
    word-break: keep-all !important;
    text-align: center !important;
    flex: 1 1 100% !important;
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    overflow: visible !important;
  }
  /* Related products carousel buttons: prevent text clipping */
  .product-accessories .product-miniature .btn.add-to-cart,
  .related-products .product-miniature .btn.add-to-cart,
  .js-product-accessories .btn.add-to-cart,
  .swiper-slide .btn.add-to-cart {
    font-size: 10px !important;
    padding: 6px 2px !important;
    letter-spacing: -0.2px !important;
  }
  /* Hide share button on mobile (frees space for AÑADIR button) */
  html body .product-miniature .btn-mini-share,
  html body .product-miniature button.btn-mini-share,
  html body .mini-action-row .btn-mini-share {
    display: none !important;
    visibility: hidden !important;
    width: 0 !important;
    height: 0 !important;
    overflow: hidden !important;
  }
  /* Force mini-action-row + add-to-cart to use full card width */
  .product-miniature .mini-action-row {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 8px !important;
  }
  .product-miniature .btn.add-to-cart,
  .product-miniature .mini-cart-btn {
    width: 100% !important;
    min-width: 100% !important;
    flex: 1 1 100% !important;
    border-radius: 24px !important;
  }
  /* On very narrow viewports (<360px) shrink button text */
  @media (max-width: 360px) {
    .product-miniature .btn.add-to-cart,
    .product-miniature .mini-cart-btn {
      font-size: 10px !important;
      padding: 8px 4px !important;
    }
    /* Header: shrink logo + icons to keep all in one row at 320 */
    #mobile-header .col-mobile-logo img.logo,
    #mobile-header .col-mobile-logo img {
      max-width: 100px !important;
      max-height: 40px !important;
    }
    #mobile-header .col-mobile-btn .fa,
    #mobile-header .col-mobile-btn i.fa {
      font-size: 18px !important;
    }
    #mobile-header .col-mobile-btn,
    #mobile-header .col-mobile-btn .m-nav-btn,
    #mobile-header .col-mobile-btn > a {
      padding: 4px 4px !important;
      min-width: 36px !important;
    }
    #mobile-header .row {
      flex-wrap: nowrap !important;
    }
  }
  /* Product name: truncate to 2 lines max */
  .product-miniature .product-title,
  .product-miniature h3,
  .product-miniature .h3 {
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    min-height: 2.6em !important;
    line-height: 1.3 !important;
    font-size: 13px !important;
  }
}

/* Tablet refinement */
@media (min-width: 576px) and (max-width: 991px) {
  #mobile-header .col-mobile-logo img.logo,
  #mobile-header .col-mobile-logo img {
    max-width: 180px !important;
    max-height: 54px !important;
  }
}

/* ============================================================
   FOOTER MOBILE: una sección por salto de línea (stacked)
   Aplica en TODAS las pantallas mobile + tablet
   ============================================================ */
@media (max-width: 991px) {
  footer .footer-container .row,
  footer #footer-container .row,
  .footer-container .row,
  footer .container > .row {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    margin: 0 !important;
    gap: 0 !important;
  }
  footer .footer-container .col,
  footer #footer-container .col,
  footer .footer-container [class*="col-"],
  footer #footer-container [class*="col-"],
  .footer-container [class*="col-"],
  footer .container > .row > [class*="col-"] {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    width: 100% !important;
    text-align: left !important;
    padding: 16px 16px !important;
    border-bottom: 1px solid rgba(255,255,255,0.08) !important;
  }
  footer .footer-container [class*="col-"]:last-child,
  footer #footer-container [class*="col-"]:last-child {
    border-bottom: 0 !important;
  }
  footer .footer-container .block,
  footer .footer-container .block-content,
  footer .footer-container p,
  footer .footer-container .part,
  .footer-container .block,
  .footer-container .block-content,
  .footer-container p {
    text-align: left !important;
  }
  footer ul, footer ol,
  .footer-container ul, .footer-container ol {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
    text-align: left !important;
  }
  footer ul li, footer ol li,
  .footer-container ul li, .footer-container ol li {
    text-align: left !important;
    padding: 4px 0 !important;
    margin: 0 !important;
  }
  footer ul li a,
  footer ol li a,
  .footer-container a {
    text-align: left !important;
    display: inline-block !important;
    min-height: 36px;
    padding: 6px 0;
  }
  footer h1, footer h2, footer h3, footer h4, footer h5, footer h6,
  .footer-container h1, .footer-container h2, .footer-container h3,
  .footer-container h4, .footer-container h5, .footer-container h6,
  footer .block-title,
  footer .h4 {
    text-align: left !important;
    margin-bottom: 12px !important;
  }
  footer .footer-before .row > [class*="col-"],
  footer .footer-after .row > [class*="col-"] {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    text-align: left !important;
    padding: 12px 16px !important;
  }
  footer .social-icons,
  footer .followus,
  footer [class*="social"] {
    justify-content: flex-start !important;
    text-align: left !important;
    padding-left: 0 !important;
  }
  /* Maps embed: limit height, keep aspect */
  footer iframe, footer .map-container {
    max-height: 240px !important;
    width: 100% !important;
  }
  /* Payment icons row: scrollable horizontal */
  footer .footer-after,
  .footer-after,
  .payment-methods {
    text-align: left !important;
    padding-left: 16px !important;
  }
  footer .payment-list,
  .payment-list,
  .footer-after [class*="payment"] {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    justify-content: flex-start !important;
  }
}

/* ============================================================
   COPYRIGHT row — single line, no 2-col split
   ============================================================ */
@media (max-width: 991px) {
  .copyright,
  .footer-copyright,
  footer .copyright-row {
    text-align: left !important;
    padding: 12px 16px !important;
    font-size: 12px !important;
  }
  .copyright > *,
  .footer-copyright > * {
    display: block !important;
    width: 100% !important;
    text-align: left !important;
    margin: 4px 0 !important;
  }
}

/* ============================================================
   FOOTER MOBILE — COMPACT + LEFT-ALIGNED (estilo Uniclima)
   ============================================================ */
@media (max-width: 991px) {
  /* Reduce footer total height */
  #footer.js-footer {
    font-size: 13px !important;
  }
  /* Each accordion section: compact padding */
  #footer .footer-container .block,
  #footer .footer-container .block-toggle,
  #footer .footer-container [class*="block-iqit"] {
    padding: 14px 18px !important;
    margin: 0 !important;
    border-bottom: 1px solid rgba(255,255,255,0.08) !important;
    text-align: left !important;
  }
  #footer .footer-container .block:last-child,
  #footer .footer-container .block-toggle:last-child {
    border-bottom: 0 !important;
  }
  /* Accordion title: small, uppercase, left-aligned */
  #footer .block-toggle .block-title,
  #footer .block-toggle h4,
  #footer .block-toggle .h4,
  #footer .block-toggle .block-title-iqit,
  #footer .footer-container h4,
  #footer .footer-container .h4 {
    margin: 0 !important;
    padding: 0 !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.6px !important;
    text-align: left !important;
    color: #ffffff !important;
    line-height: 1.4 !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
  }
  /* Accordion arrow: clean position right */
  #footer .block-toggle .block-title::after,
  #footer .block-toggle h4::after,
  #footer .block-toggle .h4::after,
  #footer .block-toggle [class*="title"] .fa,
  #footer .block-toggle .toggle-icon {
    float: none !important;
    margin-left: auto !important;
    font-size: 12px !important;
    color: rgba(255,255,255,0.5) !important;
  }
  /* Block content: when expanded, compact */
  #footer .block-content,
  #footer .block-toggle .block-content {
    padding: 12px 0 0 0 !important;
    margin: 0 !important;
    font-size: 13px !important;
    line-height: 1.5 !important;
  }
  #footer .block-content ul,
  #footer .block-content ol {
    padding: 0 !important;
    margin: 0 !important;
    list-style: none !important;
  }
  #footer .block-content li,
  #footer .block-content li a {
    padding: 6px 0 !important;
    font-size: 13px !important;
    line-height: 1.4 !important;
    min-height: 32px !important;
    text-align: left !important;
  }
  /* Hide Google Maps iframe in elementor section (huge on mobile) */
  iframe[src*="google.com/maps"],
  iframe[src*="maps.google"],
  .elementor-custom-embed iframe[src*="maps"],
  #footer iframe[src*="google.com/maps"],
  #footer iframe[src*="maps.google"],
  #footer .google-map,
  #footer [class*="google-map"] {
    max-height: 180px !important;
    margin: 8px 0 !important;
    border-radius: 8px !important;
    width: 100% !important;
  }
  /* Hide the elementor section that contains the map (frees ~350px) */
  .elementor-custom-embed:has(iframe[src*="maps"]) {
    max-height: 200px !important;
    overflow: hidden !important;
    border-radius: 8px !important;
    margin: 16px !important;
  }
  /* Contact block: icons + text inline */
  #footer .block-iqitcontactpage .contact-rich,
  #footer .contact-rich {
    text-align: left !important;
  }
  #footer .contact-rich .data,
  #footer .contact-rich p {
    margin: 6px 0 !important;
    font-size: 13px !important;
    line-height: 1.5 !important;
  }
  #footer .contact-rich .icon,
  #footer .contact-rich .fa {
    margin-right: 8px !important;
    color: rgba(255,255,255,0.7) !important;
  }

  /* Copyright + payment row: compact, left-aligned, single column */
  #footer-copyrights,
  ._footer-copyrights-1 {
    padding: 14px 0 !important;
    text-align: left !important;
  }
  #footer-copyrights .container,
  ._footer-copyrights-1 .container {
    padding: 0 18px !important;
  }
  #footer-copyrights .row {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 10px !important;
    margin: 0 !important;
  }
  #footer-copyrights [class*="copyright"],
  #footer-copyrights .copyright-img,
  #footer-copyrights .copyright-txt,
  ._footer-copyrights-1 [class*="copyright"] {
    width: 100% !important;
    max-width: 100% !important;
    text-align: left !important;
    padding: 0 !important;
    flex: 0 0 100% !important;
  }
  #footer-copyrights .copyright-img {
    text-align: left !important;
  }
  #footer-copyrights .copyright-img img {
    max-height: 28px !important;
    width: auto !important;
    margin: 0 !important;
  }
  #footer-copyrights .copyright-txt span,
  #footer-copyrights .copyright-txt {
    font-size: 11px !important;
    line-height: 1.4 !important;
    text-align: left !important;
    color: rgba(255,255,255,0.5) !important;
    display: block !important;
  }
  /* Cancel push/pull bootstrap classes that flip order on mobile */
  #footer-copyrights .push-sm-6,
  #footer-copyrights .pull-sm-6 {
    left: 0 !important;
    right: 0 !important;
  }
  /* Block separator dividers cleaner */
  #footer hr,
  #footer .divider {
    margin: 8px 0 !important;
    border-color: rgba(255,255,255,0.08) !important;
  }
}

/* ============================================================
   REMOVE GRAY BACKGROUND from FAQ + Servicios sections
   (originally #f5f5f5 inline — override to transparent)
   ============================================================ */
.rc-faq,
.rc-servicios,
.rc-faq.rc-faq,
div.rc-faq,
div.rc-servicios {
  background: transparent !important;
  background-color: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* ============================================================
   FAQ — REDESIGN estético + responsive
   ============================================================ */
.rc-faq {
  padding: 32px 0 !important;
}
.rc-faq h2,
.rc-faq #faq-title-custom {
  font-size: 28px !important;
  font-weight: 700 !important;
  color: #1a2b4a !important;
  text-align: center !important;
  margin: 0 0 28px 0 !important;
  letter-spacing: -0.02em !important;
  line-height: 1.2 !important;
}
.rc-faq .faq-container {
  max-width: 1100px !important;
  margin: 0 auto !important;
  padding: 0 16px !important;
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 14px !important;
  align-items: start !important;
}
.rc-faq .faq-item {
  background: #ffffff !important;
  border: 1px solid #e5e7eb !important;
  border-radius: 12px !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.04), 0 1px 2px rgba(0,0,0,0.03) !important;
  overflow: hidden !important;
  transition: box-shadow 0.25s ease, border-color 0.25s ease, transform 0.2s ease !important;
}
.rc-faq .faq-item:hover {
  box-shadow: 0 4px 16px rgba(29,78,216,0.10), 0 2px 6px rgba(29,78,216,0.06) !important;
  border-color: rgba(29,78,216,0.22) !important;
  transform: translateY(-1px) !important;
}
.rc-faq .faq-item.active,
.rc-faq .faq-item.open,
.rc-faq .faq-item[aria-expanded="true"] {
  border-color: rgba(29,78,216,0.30) !important;
  box-shadow: 0 6px 20px rgba(29,78,216,0.12), 0 2px 6px rgba(29,78,216,0.08) !important;
  background: linear-gradient(180deg, #f8faff 0%, #ffffff 100%) !important;
}
.rc-faq .faq-question {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  gap: 12px !important;
  padding: 18px 20px !important;
  cursor: pointer !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  color: #1a2b4a !important;
  letter-spacing: -0.01em !important;
  line-height: 1.4 !important;
  user-select: none !important;
  background: transparent !important;
  border: none !important;
  width: 100% !important;
  text-align: left !important;
  transition: color 0.2s ease !important;
}
.rc-faq .faq-question:hover {
  color: #1d4ed8 !important;
}
.rc-faq .faq-question span:first-child {
  flex: 1 !important;
  min-width: 0 !important;
  white-space: normal !important;
  word-wrap: break-word !important;
}
.rc-faq .faq-arrow {
  font-size: 11px !important;
  color: #1d4ed8 !important;
  flex-shrink: 0 !important;
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 28px !important;
  height: 28px !important;
  border-radius: 50% !important;
  background: rgba(29,78,216,0.08) !important;
  border: none !important;
}
.rc-faq .faq-item.active .faq-arrow,
.rc-faq .faq-item.open .faq-arrow,
.rc-faq .faq-item[aria-expanded="true"] .faq-arrow {
  transform: rotate(90deg) !important;
  background: rgba(29,78,216,0.18) !important;
}
.rc-faq .faq-answer {
  padding: 0 20px 20px 20px !important;
  font-size: 14px !important;
  line-height: 1.65 !important;
  color: #4b5563 !important;
  border-top: 1px solid rgba(0,0,0,0.04) !important;
  margin-top: -1px !important;
  padding-top: 16px !important;
  animation: faqSlideDown 0.3s ease !important;
}
.rc-faq .faq-answer p,
.rc-faq .faq-answer * {
  color: #4b5563 !important;
  margin: 0 0 10px 0 !important;
  background: transparent !important;
}
.rc-faq .faq-answer p:last-child,
.rc-faq .faq-answer *:last-child {
  margin-bottom: 0 !important;
}
@keyframes faqSlideDown {
  from { opacity: 0; transform: translateY(-4px); max-height: 0; }
  to { opacity: 1; transform: translateY(0); max-height: 600px; }
}

/* FAQ — Mobile single column */
@media (max-width: 991px) {
  .rc-faq {
    padding: 24px 0 !important;
  }
  .rc-faq h2,
  .rc-faq #faq-title-custom {
    font-size: 22px !important;
    margin: 0 0 20px 0 !important;
    padding: 0 16px !important;
  }
  .rc-faq .faq-container {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    padding: 0 12px !important;
    max-width: 100% !important;
  }
  .rc-faq .faq-question {
    padding: 16px 14px !important;
    font-size: 14px !important;
  }
  .rc-faq .faq-arrow {
    width: 24px !important;
    height: 24px !important;
    font-size: 10px !important;
  }
  .rc-faq .faq-answer {
    padding: 14px 14px 16px 14px !important;
    font-size: 13px !important;
  }
}

/* ============================================================
   SERVICIOS section — also remove gray + improve cards
   ============================================================ */
.rc-servicios {
  padding: 32px 0 !important;
}
.rc-servicios .service-card,
.rc-servicios [class*="service"] > div,
.rc-servicios .col {
  border-radius: 14px !important;
  border: 1px solid #e5e7eb !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.04), 0 1px 2px rgba(0,0,0,0.03) !important;
  transition: box-shadow 0.25s ease, transform 0.2s ease, border-color 0.25s ease !important;
  background: #ffffff !important;
}
.rc-servicios .service-card:hover,
.rc-servicios [class*="service"] > div:hover {
  box-shadow: 0 8px 24px rgba(29,78,216,0.10), 0 2px 6px rgba(29,78,216,0.06) !important;
  border-color: rgba(29,78,216,0.20) !important;
  transform: translateY(-2px) !important;
}
@media (max-width: 991px) {
  .rc-servicios {
    padding: 20px 0 !important;
  }
}

/* ============================================================
   RC FIX-13 2026-04-20: Drawer close X + back btn + submenu panel polish
   ============================================================ */
@media (max-width: 991.98px) {
  /* Close X: visible on dark drawer bg, 44x44 tap target, above panels */
  html body #iqitmegamenu-mobile .js-mobile-menu__close,
  html body .mobile-menu .mobile-menu__close {
    color: #ffffff !important;
    background: rgba(255,255,255,0.08) !important;
    border: 1px solid rgba(255,255,255,0.25) !important;
    border-radius: 50% !important;
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    min-height: 44px !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    position: relative !important;
    z-index: 50 !important;
    cursor: pointer !important;
    opacity: 1 !important;
  }
  html body #iqitmegamenu-mobile .js-mobile-menu__close:active,
  html body #iqitmegamenu-mobile .js-mobile-menu__close:focus {
    background: rgba(255,255,255,0.18) !important;
    outline: 2px solid #60a5fa !important;
    outline-offset: 2px !important;
  }
  html body #iqitmegamenu-mobile .js-mobile-menu__close .fa,
  html body #iqitmegamenu-mobile .js-mobile-menu__close .fa-times {
    color: #ffffff !important;
    font-size: 18px !important;
    line-height: 1 !important;
    opacity: 1 !important;
  }

  /* Back button: only visible when a submenu is active; 44px tap target */
  html body #iqitmegamenu-mobile .js-mobile-menu__back-btn {
    display: none !important;
    align-items: center !important;
    color: #ffffff !important;
    background: transparent !important;
    border: 0 !important;
    min-height: 44px !important;
    padding: 6px 10px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
  }
  html body #iqitmegamenu-mobile .js-mobile-menu__header.mobile-menu__header--active .js-mobile-menu__back-btn,
  html body #iqitmegamenu-mobile.mobile-menu--active .js-mobile-menu__back-btn {
    display: inline-flex !important;
  }
  html body #iqitmegamenu-mobile .js-mobile-menu__back-btn .fa,
  html body #iqitmegamenu-mobile .js-mobile-menu__title {
    color: #ffffff !important;
  }

  /* Active submenu panel: override theme's white bg with dark drawer-matching bg.
     Leave positioning to theme's native CSS (absolute, top:0, w-100, h-100 on parent ul). */
  html body #iqitmegamenu-mobile .mobile-menu__submenu.mobile-menu__submenu--panel,
  html body #iqitmegamenu-mobile .js-mobile-menu__submenu {
    background: transparent !important;
  }
  html body #iqitmegamenu-mobile .mobile-menu__submenu.mobile-menu__submenu--active {
    background-color: #0b1326 !important;
    background-image: linear-gradient(180deg, #0b1326 0%, #071022 100%) !important;
    z-index: 1050 !important;
  }

  /* Submenu items: proper tap targets + white text + subtle row spacing */
  html body #iqitmegamenu-mobile .mobile-menu__submenu .mobile-menu__links-list-li {
    min-height: 44px !important;
    list-style: none !important;
  }
  html body #iqitmegamenu-mobile .mobile-menu__submenu a,
  html body #iqitmegamenu-mobile .mobile-menu__submenu .mobile-menu__links-list-li > a {
    color: #ffffff !important;
    display: block !important;
    padding: 12px 10px !important;
    min-height: 44px !important;
    border-radius: 8px !important;
  }
  html body #iqitmegamenu-mobile .mobile-menu__submenu a:hover,
  html body #iqitmegamenu-mobile .mobile-menu__submenu a:active {
    background: rgba(255,255,255,0.08) !important;
    text-decoration: none !important;
  }
}

/* RC FIX-20 REVERTED 2026-04-20: was breaking /tienda product miniatures with
   default placeholder (visibility:hidden cascaded to product images too).
   Left PS default "Imagen no disponible" placeholder as-is. */

/* ============================================================
   RC FIX-28 2026-04-20: Hero CTA no longer hidden by pagination dots
   — Move .rc-hero-nav dots OUT of absolute overlap with CTA button
   ============================================================ */
.rc-hero {
  position: relative !important;
  padding-bottom: 70px !important; /* space for dots BELOW the card */
}
.rc-hero-nav {
  position: absolute !important;
  bottom: 10px !important;
  top: auto !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  width: auto !important;
  display: inline-flex !important;
  gap: 4px !important;
  z-index: 2 !important;
}
.rc-hero-cta {
  position: relative !important;
  z-index: 1 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  padding: 12px 24px !important;
  background: #dc2626 !important;
  color: #ffffff !important;
  border-radius: 9999px !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  transition: background 0.2s ease, transform 0.15s ease !important;
  min-height: 48px !important;
  box-shadow: 0 4px 12px rgba(220, 38, 38, 0.25) !important;
}
.rc-hero-cta:hover,
.rc-hero-cta:focus-visible {
  background: #b91c1c !important;
  transform: translateY(-1px) !important;
  text-decoration: none !important;
  color: #ffffff !important;
}

/* Hero typography consistency — match sans-serif site font */
.rc-hero-title,
.rc-hero-price,
.rc-hero-subtitle,
.rc-hero-badge {
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
}

/* Google verification badge on review avatars — stop overlapping the name */
.review-verification-badge,
[class*="review"] [class*="google"],
.review-avatar img[alt*="Google"],
.review-author > svg.google-icon {
  position: absolute !important;
  right: 2px !important;
  bottom: 2px !important;
  top: auto !important;
  left: auto !important;
  width: 18px !important;
  height: 18px !important;
  z-index: 2 !important;
}
.review-author,
[class*="review-author"] {
  position: relative !important;
  display: block !important;
  text-align: center !important;
  margin-top: 6px !important;
}

/* ============================================================
   RC FIX-29 2026-04-20: Product page polish mobile
   ============================================================ */
@media (max-width: 991.98px) {
  /* Product thumbnails: horizontal row below main image (no vertical column) */
  body#product .product-images,
  body#product .js-qv-product-images,
  body#product .product-images.js-qv-product-images {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    justify-content: flex-start !important;
    margin-top: 10px !important;
    padding: 0 !important;
    width: 100% !important;
  }
  body#product .product-images .thumb-container,
  body#product .js-qv-product-images .thumb,
  body#product .product-images-layout .thumb {
    flex: 0 0 64px !important;
    width: 64px !important;
    height: 64px !important;
    margin: 0 !important;
  }
  body#product .product-images img.thumb,
  body#product .product-images .thumb-container img {
    width: 64px !important;
    height: 64px !important;
    object-fit: contain !important;
    border-radius: 6px !important;
  }

  /* Product title: smaller on mobile, better breaking */
  body#product h1.page-title,
  body#product h1.product-title,
  body#product main h1 {
    font-size: 22px !important;
    line-height: 1.25 !important;
    font-weight: 700 !important;
    word-break: normal !important;
    overflow-wrap: anywhere !important;
    hyphens: auto !important;
  }
}

/* ============================================================
   RC FIX-30 2026-04-20: Brand badges on home — remove faded/opaque look
   ============================================================ */
.brand-box,
.brand-item,
[class*="brand-list"] .brand,
.manufacturers .manufacturer-item {
  opacity: 1 !important;
  filter: none !important;
}
.brand-box img,
.brand-item img,
[class*="brand-list"] img,
.manufacturers img {
  filter: none !important;
  mix-blend-mode: normal !important;
  opacity: 1 !important;
}

/* ============================================================
   RC FIX-23 2026-04-20: Lighthouse color-contrast — text-muted ≥4.5:1
   ============================================================ */
html body .text-muted,
html body .product-reference.text-muted,
html body .product-brand.text-muted,
html body .product-description-short.text-muted,
html body .product-category-name.text-muted,
html body small.text-muted {
  /* gray-600 #4b5563 = 7.56:1 on white (AAA) */
  color: #4b5563 !important;
}
html body .product-reference,
html body .product-reference.text-muted {
  /* SKU references need high contrast */
  color: #374151 !important; /* gray-700 = 10.3:1 on white */
}
/* Dark-bg contexts (drawer/footer dark): inherit white */
html body .drawer .text-muted,
html body footer.dark .text-muted,
html body [class*="dark"] .text-muted,
html body .bg-dark .text-muted {
  color: #d1d5db !important; /* gray-300 on dark */
}
/* Sort-by / current-sort controls */
html body .sort-by-row .sort-by,
html body .sort-by-row .current-sort,
html body .sort-by-btn {
  color: #374151 !important;
}
/* Placeholder text */
html body ::placeholder,
html body ::-webkit-input-placeholder {
  color: #6b7280 !important; /* gray-500 = 4.83:1 */
  opacity: 1 !important;
}
/* Secondary buttons */
html body .btn-secondary,
html body .btn-outline-secondary {
  color: #1f2937 !important; /* gray-800 */
}
html body .btn-secondary:not(:hover):not(:active) {
  background-color: #f3f4f6 !important;
  border-color: #d1d5db !important;
}

/* ============================================================
   RC FIX-27 2026-04-20: Final Lighthouse color-contrast fixes
   Darken reds to meet AA 4.5:1 on white/dark backgrounds.
   ============================================================ */
/* #d8412d → #b02a18 (~5.1:1 on white) */
html body .sc-item-price,
html body .product-price:not(.regular-price),
html body [class*="price-discount"],
html body .price.price-red {
  color: #b02a18 !important;
}
/* Hero badge: white on red #ed2711 (4.28:1) → darken bg to #b81d08 (~5.6:1) */
html body .rc-hero-badge,
html body [class*="hero-badge"] {
  background-color: #b81d08 !important;
  color: #ffffff !important;
}
/* .ti-read-more-active #808080 → #595959 (7.0:1) */
html body .ti-read-more-active,
html body .ti-read-more,
html body [class*="read-more-active"] {
  color: #595959 !important;
}
/* Any remaining gray-500 text used as body text — boost */
html body [style*="color: #808080"],
html body [style*="color:#808080"],
html body [style*="color: gray"] {
  color: #595959 !important;
}

/* ============================================================
   RC FIX-29 v2 2026-04-20: Thumbnails row mobile (specificity boost)
   Root cause: inline <style> (19KB) injects rule
     `html body#product #main .js-qv-mask #product-images-thumbs {max-width:100px!important}`
   — uses 3 IDs (#product, #main, #product-images-thumbs) + 1 class.
   Fix: match the exact chain and override with 3-ID selector AFTER + column layout.
   Also chain .images-container.js-images-container for extra specificity on parent rule.
   ============================================================ */
@media (max-width: 767px) {
  html body#product #main .images-container.js-images-container .js-qv-mask,
  html body#product #main .images-container.js-images-container .js-qv-mask.mask {
    width: 100% !important;
    max-width: 100% !important;
    flex-shrink: 1 !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    order: 2 !important;
  }
  html body#product #main .js-qv-mask.mask #product-images-thumbs.swiper-container,
  html body#product #main .js-qv-mask.mask #product-images-thumbs.product-images,
  html body#product #main .images-container.js-images-container #product-images-thumbs.swiper-container {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
  }
  html body#product #main .js-qv-mask.mask #product-images-thumbs.swiper-container .swiper-wrapper,
  html body#product #main .images-container.js-images-container #product-images-thumbs.swiper-container .swiper-wrapper {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    grid-template-columns: none !important;
    gap: 8px !important;
    width: max-content !important;
    max-width: none !important;
    min-width: 100% !important;
    transform: none !important;
    height: auto !important;
    padding: 8px 0 !important;
  }
  html body#product #main .js-qv-mask.mask #product-images-thumbs.swiper-container .swiper-slide,
  html body#product #main .images-container.js-images-container #product-images-thumbs.swiper-container .swiper-slide {
    width: 72px !important;
    min-width: 72px !important;
    max-width: 72px !important;
    height: 72px !important;
    min-height: 72px !important;
    flex: 0 0 72px !important;
    margin: 0 !important;
  }
  html body#product #main .js-qv-mask.mask #product-images-thumbs.swiper-container .thumb-container,
  html body#product #main .images-container.js-images-container #product-images-thumbs.swiper-container .thumb-container {
    width: 72px !important;
    height: 72px !important;
    max-width: 72px !important;
    max-height: 72px !important;
  }
  html body#product #main .js-qv-mask.mask #product-images-thumbs.swiper-container .swiper-slide img,
  html body#product #main .js-qv-mask.mask #product-images-thumbs.swiper-container img.thumb,
  html body#product #main .images-container.js-images-container #product-images-thumbs.swiper-container img {
    width: 72px !important;
    height: 72px !important;
    max-width: 72px !important;
    max-height: 72px !important;
    object-fit: cover !important;
    border-radius: 6px !important;
  }
}

/* ============================================================
   RC FIX-31 2026-04-20: Tablet /tienda vertical explosion
   Root cause: .product-list-subcategories renders 56 subcategory tiles
   at 2 per row on tablet (col-md-6 = 50%) => 28 rows × 314px = 8785px,
   making docH = 14604px. Product grid was OK (already 2 cols via col-md-6).
   Fix: show 4 subcategory tiles per row on tablet (768-991) to halve height.
   ============================================================ */
@media (min-width: 768px) and (max-width: 991.98px) {
  html body#category .product-list-subcategories .row > [class*="col-"],
  html body.category .product-list-subcategories .row > [class*="col-"],
  html body#index .product-list-subcategories .row > [class*="col-"] {
    flex: 0 0 25% !important;
    max-width: 25% !important;
    width: 25% !important;
  }
  html body#category .product-list-subcategories .subcategory-image,
  html body.category .product-list-subcategories .subcategory-image {
    width: 100% !important;
    height: auto !important;
    max-height: 160px !important;
    aspect-ratio: 1 / 1 !important;
  }
  html body#category .product-list-subcategories .subcategory-image img,
  html body.category .product-list-subcategories .subcategory-image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
  }
  /* Product miniature grid — keep 3 per row on tablet (col-md-6 currently gives 2) */
  html body#category .products.products-grid > .js-product-miniature-wrapper,
  html body.category .products.products-grid > .js-product-miniature-wrapper {
    flex: 0 0 33.333% !important;
    max-width: 33.333% !important;
    width: 33.333% !important;
  }
}

/* ============================================================
   POLISH-6 — Card aspect ratio (MAYOR IMPACTO)
   Root cause: imagen 60x77px en card 247x373px = solo 16% ocupado
   Hace que las cards se vean "vacías"
   ============================================================ */
.product-miniature .thumbnail-container,
article.product-miniature .thumbnail-container {
  aspect-ratio: 1 / 1 !important;
  width: 100% !important;
  min-height: 140px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: #fff;
  overflow: hidden;
}
.product-miniature .thumbnail-container img,
article.product-miniature .thumbnail-container img {
  max-width: 85% !important;
  max-height: 85% !important;
  width: auto !important;
  height: auto !important;
  object-fit: contain !important;
}
.products-grid .js-product-miniature-wrapper,
.products .js-product-miniature-wrapper {
  margin-bottom: 12px !important;
}

/* ============================================================
   POLISH-5 — Carousel button text clipping
   Root cause: .product-accessories cards tienen clientWidth 73px
   pero scrollWidth 100px → "AÑADIR 54,00 €" se corta a "IR 68,"
   ============================================================ */
.product-accessories .product-miniature .btn.add-to-cart,
.product-accessories .product-miniature .btn-add-to-cart,
.swiper-slide .product-miniature .btn.add-to-cart,
.swiper-slide .product-miniature .btn-add-to-cart {
  font-size: 10px !important;
  padding: 6px 4px !important;
  letter-spacing: -0.2px !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  text-overflow: ellipsis !important;
  min-width: 0 !important;
}
.product-accessories .product-miniature .btn-price-inline,
.swiper-slide .product-miniature .btn-price-inline {
  font-size: 11px !important;
  padding-left: 3px !important;
}
/* Mobile: agrandar toda la card del carousel para que el texto quepa */
@media (max-width: 767px) {
  .product-accessories .product-miniature .btn.add-to-cart,
  .swiper-slide .product-miniature .btn.add-to-cart {
    font-size: 11px !important;
    padding: 8px 6px !important;
  }
}

/* ============================================================
   POLISH-4 — Trustindex avatar G icon overlap
   Root cause: .ti-platform-icon (26x26) cubre 15x3px del avatar (40x40)
   Trustindex CDN stylesheet loads after ours; usa IMG[class] con mayor
   especificidad para ganar al preset "36-light-background".
   ============================================================ */
html body img.ti-platform-icon,
html body .ti-widget img.ti-platform-icon,
html body .ti-review-header img.ti-platform-icon {
  width: 16px !important;
  height: 16px !important;
  max-width: 16px !important;
  max-height: 16px !important;
  min-width: 16px !important;
  min-height: 16px !important;
  bottom: -2px !important;
  right: -2px !important;
  border: 2px solid #fff !important;
  border-radius: 50% !important;
  background: #fff !important;
  padding: 1px !important;
  box-sizing: border-box !important;
}
html body .ti-widget .ti-profile-img,
html body .ti-review-header .ti-profile-img {
  position: relative !important;
}

/* ============================================================
   RC FIX-32 2026-04-20: CLS regression fix /tienda (era 0.24 → target <0.1)
   Diagnóstico real via trace CLSCulprits: los shifts NO vienen de
   thumbnails — vienen del MOBILE HEADER redimensionándose tras load.
   El <img class="logo"> tiene HTML attrs width=1308 height=497.
   El browser reserva (ancho_contenedor * 497/1308) ≈ 187px antes de
   que CSS aplique max-height:50px → al colapsar la altura, todo el
   layout de la página se desplaza hacia arriba ~12px → CLS 0.24.
   Estrategia:
   - Reservar altura fija del mobile-header y su .row desde primer paint
     para que el browser no use el aspect intrinsic del logo (1308/497).
   - Fijar aspect-ratio explícito del logo via CSS → browser respeta
     el slot reservado aún antes de aplicar max-height.
   - contain: layout en header aisla el pipeline de layout.
   - Bonus defensive: thumbnail-container también con contain: layout
     paint + aspect-ratio del img para aislar re-layouts de producto.
   ============================================================ */
/* --- Mobile header: altura estable pre-load para cortar CLS masivo
   ÁMBITO LIMITADO a body.category / body#category y body#index para NO
   afectar home (home usa Elementor y contain/height fijo rompe su layout). --- */
@media (max-width: 991.98px) {
  html body.category #mobile-header,
  html body#category #mobile-header {
    height: 60px !important;
    min-height: 60px !important;
    max-height: 60px !important;
    overflow: hidden;
    contain: layout style;
  }
  html body.category #mobile-header .row-mobile-header,
  html body.category #mobile-header > .container > .row,
  html body.category #mobile-header > .row,
  html body#category #mobile-header .row-mobile-header,
  html body#category #mobile-header > .container > .row,
  html body#category #mobile-header > .row {
    height: 50px !important;
    min-height: 50px !important;
    max-height: 50px !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
  html body.category #mobile-header > .container,
  html body#category #mobile-header > .container {
    padding-top: 5px !important;
    padding-bottom: 5px !important;
  }
  /* Logo: reservar slot 50px desde render 1 (aspect-ratio gana a los attrs 1308/497) */
  html body.category #mobile-header .col-mobile-logo img.logo,
  html body.category #mobile-header .col-mobile-logo img,
  html body#category #mobile-header .col-mobile-logo img.logo,
  html body#category #mobile-header .col-mobile-logo img {
    height: 50px !important;
    max-height: 50px !important;
    max-width: 160px !important;
    width: auto !important;
    aspect-ratio: 1308 / 497;
  }
  /* Botones: altura fija */
  html body.category #mobile-header .col-mobile-btn,
  html body#category #mobile-header .col-mobile-btn {
    height: 50px !important;
    min-height: 50px !important;
    max-height: 50px !important;
  }
}
/* --- Thumbnails: aislar shifts internos del layout global --- */
.product-miniature .thumbnail-container,
article.product-miniature .thumbnail-container {
  contain: layout paint;
}
.product-miniature .thumbnail-container img.product-thumbnail-first,
.product-miniature .thumbnail-container img.product-thumbnail-second,
article.product-miniature .thumbnail-container img.product-thumbnail-first,
article.product-miniature .thumbnail-container img.product-thumbnail-second {
  aspect-ratio: 236 / 305;
}

/* ============================================================
   RC FIX-33 2026-04-20: Tablet /tienda sidebar squeeze
   Root cause: en viewport tablet portrait (768-991px) el #left-column
   con col-md-3 ocupa ~191px y deja 572px para el content → las cards
   producto quedan ~190px cada una en 3 columnas, truncando títulos
   ("Bo...", "Circ..."). Decisión de producto: ocultar sidebar en
   tablet y liberar ancho completo, cards a 2 columnas más cómodas.
   Ámbito limitado a body#category / body.category (catálogo).
   ============================================================ */
@media (min-width: 768px) and (max-width: 991px) {
  body#category #left-column,
  body.category #left-column,
  body#category #amazzing_filter,
  body.category #amazzing_filter {
    display: none !important;
  }
  body#category #content-wrapper,
  body.category #content-wrapper,
  body#category #center_column,
  body.category #center_column {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
  }
  /* Cards 2-col para ganar ancho y evitar truncado de títulos */
  body#category .products .js-product-miniature-wrapper,
  body.category .products .js-product-miniature-wrapper,
  body#category #js-product-list .products > .product,
  body.category #js-product-list .products > .product {
    flex: 0 0 50% !important;
    max-width: 50% !important;
  }
  /* Evitar truncado de títulos en cards */
  body#category .product-miniature .product-title a,
  body.category .product-miniature .product-title a,
  body#category .product-miniature h3.product-title,
  body.category .product-miniature h3.product-title {
    -webkit-line-clamp: 3 !important;
    overflow: visible !important;
    text-overflow: unset !important;
    white-space: normal !important;
  }
}

/* ============================================================
   FIX-34 — Lighthouse color-contrast edge cases
   Esperado: Home 96→100, /tienda 91→96+, Product 79→82
   ============================================================ */

/* [1] sc-item-price sidecart — beat theme-a286c4688 specificity */
html body #blockcart-content .cart-products .sc-item-price,
html body .cart-products .sc-item-price {
  color: #b02a18 !important;   /* was #d8412d (4.45:1), now 6.58:1 on white */
}

/* [2] ti-read-more-active — win over Trustindex inline style */
html body [class*="ti-read-more"][class],
html body .ti-read-more-active[class] {
  color: #595959 !important;   /* was #acacac (2.27:1), now 7.00:1 on white */
}

/* [3] custom-accordion-body p — darken gray on accordion near-white bg */
html body .custom-accordion-body p,
html body .custom-accordion-body {
  color: #595959 !important;   /* was #888 (3.37:1), now 6.65:1 on #f9f9f9 */
}


/* ============================================================
   RESPONSIVE AUDIT PATCH · 2026-04-20 (appended)
   Hotfixes for bugs found during atomic audit at 320/375/414/768/1024/1440/1920
   ============================================================ */

/* ---------- FIX 1 · Product card AÑADIR overlap ---------- */
/* Specificity boosted (html body + btn.add-to-cart.mini-cart-btn) to beat
   existing .product-miniature .btn.add-to-cart (0,3,0) rule.
   Hide literal "AÑADIR" text node on <=480, keep icon + price only. */
@media (max-width: 480px) {
  html body .product-miniature .btn.add-to-cart.mini-cart-btn {
    font-size: 0 !important;
    letter-spacing: 0 !important;
    gap: 6px !important;
    justify-content: center !important;
    padding: 8px 8px !important;
  }
  html body .product-miniature .btn.add-to-cart.mini-cart-btn .bag-icon,
  html body .product-miniature .btn.add-to-cart.mini-cart-btn .fa-shopping-bag,
  html body .product-miniature .btn.add-to-cart.mini-cart-btn .fa-shopping-cart {
    font-size: 14px !important;
  }
  html body .product-miniature .btn.add-to-cart.mini-cart-btn .btn-price-inline {
    font-size: 13px !important;
    margin-left: 0 !important;
    padding-left: 4px !important;
    font-weight: 700 !important;
    color: #fff !important;
  }
  html body .product-miniature .btn.add-to-cart.mini-cart-btn .spinner-icon {
    font-size: 12px !important;
  }
}

/* At >=481px cards widen enough for full text */
@media (min-width: 481px) and (max-width: 991px) {
  html body .product-miniature .btn.add-to-cart.mini-cart-btn {
    font-size: 11px !important;
    letter-spacing: 0 !important;
    padding: 8px 10px !important;
  }
  html body .product-miniature .btn.add-to-cart.mini-cart-btn .btn-price-inline {
    font-size: 12px !important;
  }
}

/* ---------- FIX 2 · Cookie banner: compact floating (desktop) ---------- */
@media (min-width: 992px) {
  html body .cookiesplus-banner,
  html body .cookiesplus-banner.cookiesplus-bottom {
    max-width: 420px !important;
    width: calc(100% - 40px) !important;
    right: 20px !important;
    left: auto !important;
    bottom: 20px !important;
    top: auto !important;
    border-radius: 14px !important;
    box-shadow: 0 12px 48px rgba(0, 0, 0, 0.18) !important;
    padding: 16px 20px !important;
    font-size: 13px !important;
    line-height: 1.45 !important;
    z-index: 1060 !important;
  }
  html body .cookiesplus-banner .cookiesplus-btn {
    padding: 8px 14px !important;
    font-size: 13px !important;
    border-radius: 8px !important;
  }
}
@media (min-width: 576px) and (max-width: 991px) {
  html body .cookiesplus-banner,
  html body .cookiesplus-banner.cookiesplus-bottom {
    max-width: 480px !important;
    width: calc(100% - 32px) !important;
    left: 16px !important;
    right: 16px !important;
    bottom: 16px !important;
    margin: 0 auto !important;
    border-radius: 14px !important;
    box-shadow: 0 12px 48px rgba(0, 0, 0, 0.18) !important;
  }
}

/* ---------- FIX 3 · Hero yellow offer card word-break (1024–1440) ---------- */
@media (min-width: 992px) and (max-width: 1600px) {
  .rc-hero .rc-hero-offer,
  .rc-hero [class*="promo"],
  .rc-hero-yellow,
  .rc-hero .rc-hero-card-yellow {
    padding-right: 20px !important;
    padding-left: 20px !important;
  }
  .rc-hero .rc-hero-offer h2,
  .rc-hero .rc-hero-offer h3,
  .rc-hero .rc-hero-offer .title,
  .rc-hero [class*="promo"] h2,
  .rc-hero [class*="promo"] h3 {
    font-size: clamp(1.1rem, 1.4vw, 1.75rem) !important;
    line-height: 1.15 !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    hyphens: none !important;
  }
  #layerslider_4 h2,
  #layerslider_4 h3,
  #layerslider_4 .ls-layer {
    word-break: keep-all !important;
    overflow-wrap: normal !important;
    hyphens: none !important;
  }
}

/* ---------- FIX 4 · Header vertical gap at 992–1199 ---------- */
@media (min-width: 992px) and (max-width: 1199px) {
  html body #header .row-header-bottom,
  html body #header .header-menu-row,
  html body #_desktop_top_menu {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }
  html body #header #iqitmegamenu-horizontal > ul.nav,
  html body #header .cbp-hrmenu ul {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
  html body #header .row.row-header-bottom {
    min-height: 48px !important;
  }
}

/* ---------- FIX 5 · Brand carousel mobile sizing ---------- */
@media (max-width: 767px) {
  html body .manufacturers-slider .swiper-slide img,
  html body .iqit-manufacturers-slider .swiper-slide img,
  html body [class*="manufacturer"] .swiper-slide img,
  html body [class*="brand"] .swiper-slide img {
    max-height: 44px !important;
    width: auto !important;
    max-width: 80% !important;
    object-fit: contain !important;
    margin: 0 auto !important;
    display: block !important;
  }
  html body .manufacturers-slider .swiper-slide,
  html body [class*="manufacturer"] .swiper-slide,
  html body [class*="brand"] .swiper-slide {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 60px !important;
    padding: 0 8px !important;
  }
}

/* ---------- FIX 6 · Testimonial avatar & stray thumbnail ---------- */
@media (max-width: 767px) {
  html body [class*="testimonial"] img.avatar,
  html body .trustindex-widget img.avatar,
  html body .trustindex-widget .ti-avatar,
  html body .trustindex-widget [class*="avatar"] img {
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;
    max-height: 44px !important;
    border-radius: 50% !important;
    object-fit: cover !important;
    flex-shrink: 0 !important;
  }
  /* Kill stray non-avatar imgs inside testimonial cards */
  html body .trustindex-widget .ti-name-block ~ img:not([class*="star"]):not(.avatar),
  html body [class*="testimonial"] .ti-review img:not([class*="star"]):not(.avatar) {
    display: none !important;
  }
}

/* ---------- FIX 7 · Overflow-x safety net ---------- */
html body { overflow-x: hidden !important; }
img, video, iframe { max-width: 100% !important; height: auto; }

/* ---------- FIX 8 · Product detail mobile reorder: price first ---------- */
@media (max-width: 767px) {
  body#product .product-information {
    display: flex !important;
    flex-direction: column !important;
  }
  body#product .current-price,
  body#product .product-prices,
  body#product .product-price {
    order: 1 !important;
    font-size: 1.75rem !important;
    font-weight: 700 !important;
    margin: 8px 0 12px 0 !important;
  }
  body#product .product-quantity,
  body#product .product-add-to-cart .col-add-qty {
    order: 2 !important;
  }
  body#product .add-to-cart,
  body#product .btn-add-to-cart,
  body#product .product-add-to-cart button[data-button-action="add-to-cart"] {
    order: 3 !important;
    margin-top: 10px !important;
  }
}

/* ---------- FIX 9 · Category card: avoid zero-width price inside add-to-cart visible ---------- */
html body .product-miniature .product-price-and-shipping[style*="display: none"] + .mini-action-row {
  margin-top: 0 !important;
}

/* ============================================================
   FIX 13 · Mobile burger menu icons (semantically correct)
   Using unique tab--id-N classes instead of :nth-child (resilient)
   Tab IDs: 15=Inicio, 17=Servicios, 16=CalderasOcasion, 6=Tienda, 18=Contacto
   2026-04-20 patch
   ============================================================ */
@media (max-width: 991px) {
  /* Inicio (id=15) → Home — double-class combined to beat :nth-child(N) = (0,3,1) */
  html body .mobile-menu__tab.mobile-menu__tab--id-15 > .mobile-menu__link::before,
  html body .mobile-menu__tab.mobile-menu__tab--id-15 > a::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%233b82f6' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z'/%3E%3Cpolyline points='9 22 9 12 15 12 15 22'/%3E%3C/svg%3E") !important;
  }
  /* Servicios (id=17) → Wrench */
  html body .mobile-menu__tab.mobile-menu__tab--id-17 > .mobile-menu__link::before,
  html body .mobile-menu__tab.mobile-menu__tab--id-17 > a::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%233b82f6' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z'/%3E%3C/svg%3E") !important;
  }
  /* Calderas Ocasion (id=16) → Package */
  html body .mobile-menu__tab.mobile-menu__tab--id-16 > .mobile-menu__link::before,
  html body .mobile-menu__tab.mobile-menu__tab--id-16 > a::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%233b82f6' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z'/%3E%3Cpolyline points='3.27 6.96 12 12.01 20.73 6.96'/%3E%3Cline x1='12' y1='22.08' x2='12' y2='12'/%3E%3C/svg%3E") !important;
  }
  /* Tienda (id=6) → Shopping Bag */
  html body .mobile-menu__tab.mobile-menu__tab--id-6 > .mobile-menu__link::before,
  html body .mobile-menu__tab.mobile-menu__tab--id-6 > a::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%233b82f6' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 2L3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z'/%3E%3Cline x1='3' y1='6' x2='21' y2='6'/%3E%3Cpath d='M16 10a4 4 0 0 1-8 0'/%3E%3C/svg%3E") !important;
  }
  /* Contacto (id=18) → Envelope */
  html body .mobile-menu__tab.mobile-menu__tab--id-18 > .mobile-menu__link::before,
  html body .mobile-menu__tab.mobile-menu__tab--id-18 > a::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%233b82f6' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z'/%3E%3Cpolyline points='22,6 12,13 2,6'/%3E%3C/svg%3E") !important;
  }

  /* ============================================================
     FIX 14 · Chevron indicator for has-submenu items
     Matches Tienda which already shows a chevron.
     ============================================================ */
  html body .mobile-menu__tab--has-submenu > .mobile-menu__link::after,
  html body .mobile-menu__tab--has-submenu > a::after,
  html body .js-mobile-menu__tab--has-submenu > .mobile-menu__link::after,
  html body .js-mobile-menu__tab--has-submenu > a::after {
    content: '' !important;
    display: inline-block !important;
    width: 8px !important;
    height: 8px !important;
    margin-left: auto !important;
    border-right: 2px solid rgba(255, 255, 255, 0.55) !important;
    border-bottom: 2px solid rgba(255, 255, 255, 0.55) !important;
    transform: rotate(-45deg) !important;
    flex-shrink: 0 !important;
    transition: transform 200ms ease !important;
  }
  html body .mobile-menu__tab.is-open.mobile-menu__tab--has-submenu > .mobile-menu__link::after,
  html body .mobile-menu__tab[aria-expanded="true"] > .mobile-menu__link::after {
    transform: rotate(45deg) !important;
  }

  /* ============================================================
     FIX 15 · Menu links: ensure flex layout so chevron sits right
     ============================================================ */
  html body .mobile-menu__tab > .mobile-menu__link {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
  }
}

/* ============================================================
   PHASE 3 CONSOLIDATED PATCH · 2026-04-20
   Based on multi-agent audit feedback
   ============================================================ */

/* ---------- FIX 16 · Footer 4-column overflow at 1440 ---------- */
@media (min-width: 992px) and (max-width: 1440px) {
  html body .footer-container .footer-row,
  html body footer .row {
    flex-wrap: wrap !important;
  }
  html body .footer-container [class*="col-"] {
    min-width: 0 !important;
    max-width: 100% !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
  }
  html body .footer-container [class*="block-contact"],
  html body .footer-container .block-contact-content {
    word-break: break-word !important;
  }
}

/* ---------- FIX 17 · Carousel dots better spacing + touch target ---------- */
html body .rc-hero-dots,
html body .swiper-pagination,
html body .slick-dots {
  display: flex !important;
  gap: 10px !important;
  justify-content: center !important;
  padding: 12px 0 !important;
}
html body .rc-hero-dot,
html body .swiper-pagination-bullet,
html body .slick-dots li button {
  min-width: 12px !important;
  min-height: 12px !important;
  /* Invisible hit area 44x44 */
  position: relative !important;
}
html body .rc-hero-dot::before,
html body .swiper-pagination-bullet::before,
html body .slick-dots li button::before {
  content: "" !important;
  position: absolute !important;
  inset: -16px !important;
  background: transparent !important;
}

/* ---------- FIX 18 · Sticky floating WhatsApp/Call CTA (mobile) ---------- */
.rc-float-cta {
  position: fixed !important;
  right: 16px !important;
  bottom: 16px !important;
  z-index: 999 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
  pointer-events: none !important;
}
.rc-float-cta a {
  pointer-events: auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 56px !important;
  height: 56px !important;
  border-radius: 50% !important;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.25) !important;
  text-decoration: none !important;
  color: #fff !important;
  transition: transform 200ms ease !important;
}
.rc-float-cta a:hover {
  transform: scale(1.06) !important;
}
.rc-float-cta .rc-float-wa { background: #25D366 !important; }
.rc-float-cta .rc-float-call { background: #C1272D !important; }
.rc-float-cta svg { width: 28px !important; height: 28px !important; fill: #fff !important; }

/* Hide on scroll top to reduce clutter on initial hero */
@media (min-width: 1200px) {
  .rc-float-cta { right: 24px !important; bottom: 24px !important; }
}

/* ---------- FIX 19 · Trust bar under hero (desktop) ---------- */
.rc-trust-bar {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 16px !important;
  justify-content: center !important;
  padding: 14px 20px !important;
  margin: 16px auto 24px !important;
  max-width: 1100px !important;
  background: linear-gradient(135deg, #f8fafc, #f1f5f9) !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 14px !important;
}
.rc-trust-bar .rc-trust-item {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  font-size: 13px !important;
  color: #1e293b !important;
  font-weight: 600 !important;
}
.rc-trust-bar .rc-trust-item svg {
  width: 20px !important;
  height: 20px !important;
  stroke: #C1272D !important;
  stroke-width: 2 !important;
  fill: none !important;
  flex-shrink: 0 !important;
}
@media (max-width: 575px) {
  .rc-trust-bar {
    margin: 12px 10px 20px !important;
    padding: 10px 12px !important;
    gap: 10px !important;
  }
  .rc-trust-bar .rc-trust-item { font-size: 11.5px !important; }
  .rc-trust-bar .rc-trust-item svg { width: 16px !important; height: 16px !important; }
}

/* ---------- FIX 20 · Unify CTA button styling across site ---------- */
html body .btn.btn-primary:not(.close):not(.mini-cart-btn),
html body .btn.add-to-cart-lg,
html body .btn-product-primary {
  background: #C1272D !important;
  border-color: #C1272D !important;
  color: #fff !important;
  font-weight: 700 !important;
  letter-spacing: 0.3px !important;
  text-transform: uppercase !important;
  border-radius: 10px !important;
  transition: all 200ms ease !important;
}
html body .btn.btn-primary:not(.close):not(.mini-cart-btn):hover,
html body .btn.add-to-cart-lg:hover {
  background: #A01F24 !important;
  border-color: #A01F24 !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 6px 20px rgba(193, 39, 45, 0.35) !important;
}

/* ---------- FIX 21 · Categories grid density fix (1440) ---------- */
@media (min-width: 992px) and (max-width: 1600px) {
  html body .home-categories,
  html body [class*="categories-grid"] {
    gap: 14px !important;
    padding: 20px 0 !important;
  }
  html body .home-categories .category-item,
  html body [class*="categories-grid"] > * {
    transition: transform 200ms ease !important;
  }
  html body .home-categories .category-item:hover,
  html body [class*="categories-grid"] > *:hover {
    transform: translateY(-3px) !important;
  }
}

/* ---------- FIX 22 · Focus indicators visibles (A11y) ---------- */
html body a:focus-visible,
html body button:focus-visible,
html body input:focus-visible,
html body [tabindex]:focus-visible {
  outline: 3px solid #C1272D !important;
  outline-offset: 2px !important;
  border-radius: 4px !important;
}

/* ---------- FIX 23 · Form fields: visible labels (accessibility) ---------- */
html body .form-group label,
html body label[for] {
  display: block !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  color: #1e293b !important;
  margin-bottom: 4px !important;
}

/* ============================================================
   PHASE 4 SYSTEMIC PATCH · 2026-04-20
   Based on 4-agent audit: iqit bloat, nav bugs, redundancies, forms
   ============================================================ */

/* ---------- FIX 24 · Font-size floor (legibility) ---------- */
/* 1188 elements <12px detected → clamp to minimum 12px */
html body .description,
html body .product-desc,
html body [class*="small-text"],
html body .text-xs,
html body small {
  font-size: clamp(12px, 1.6vw, 14px) !important;
  line-height: 1.5 !important;
}
@media (max-width: 767px) {
  html body,
  html body p,
  html body li,
  html body span:not([class*="icon"]):not([class*="badge"]) {
    font-size: max(12px, 1em);
  }
}

/* ---------- FIX 25 · Free shipping bar scope (only in cart/checkout) ---------- */
@media screen {
  html body:not([data-page="cart"]):not([data-page="checkout"]):not(#checkout):not(#cart) .sc-free-shipping-bar,
  html body:not([data-page="cart"]):not([data-page="checkout"]):not(#checkout):not(#cart) [class*="free-shipping-progress"]:not(.sidecart-only) {
    display: none !important;
  }
  /* Show only in sidecart */
  .blockcart-modal .sc-free-shipping-bar,
  .js-cart-modal .sc-free-shipping-bar,
  #blockcart-modal .sc-free-shipping-bar {
    display: flex !important;
  }
}

/* ---------- FIX 26 · Sidecart "Finalizar compra" sticky bottom (mobile) ---------- */
@media (max-width: 767px) {
  html body .cart-modal,
  html body .js-cart-modal,
  html body #blockcart-modal,
  html body .blockcart-modal {
    display: flex !important;
    flex-direction: column !important;
  }
  html body .cart-modal .modal-body,
  html body .js-cart-modal .modal-body {
    flex: 1 1 auto !important;
    overflow-y: auto !important;
  }
  html body .cart-modal .modal-footer,
  html body .js-cart-modal .modal-footer,
  html body .cart-modal [class*="checkout-btn"],
  html body .js-cart-modal [class*="checkout-btn"] {
    position: sticky !important;
    bottom: 0 !important;
    background: #fff !important;
    box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.1) !important;
    padding: 12px !important;
    z-index: 10 !important;
  }
  html body .cart-modal a[href*="/order"],
  html body .cart-modal a[href*="/checkout"],
  html body .js-cart-modal a[href*="/order"],
  html body .js-cart-modal a[href*="/checkout"] {
    width: 100% !important;
    min-height: 52px !important;
    font-size: 16px !important;
    font-weight: 700 !important;
  }
}

/* ---------- FIX 27 · Z-index normalized scale (kills chaos) ---------- */
/* Scale: tooltip=100, dropdown=200, sticky-header=300, mobile-menu=400,
   modal=500, backdrop=499, sidecart=550, cookie-banner=600, float-cta=700 */
html body #header.sticky,
html body .sticky-header,
html body [class*="header-sticky"] {
  z-index: 300 !important;
}
html body .mobile-menu,
html body #_mobile_iqitmegamenu-mobile.show,
html body .mobile-menu.show {
  z-index: 400 !important;
}
html body .modal,
html body .modal-dialog {
  z-index: 500 !important;
}
html body .modal-backdrop {
  z-index: 499 !important;
}
html body #blockcart-modal,
html body .blockcart-modal,
html body .js-cart-modal {
  z-index: 550 !important;
}
html body .cookiesplus-banner,
html body .cookiesplus-banner-container {
  z-index: 600 !important;
}
html body .rc-float-cta {
  z-index: 700 !important;
}

/* ---------- FIX 28 · Empty link (a[href="#"] / a[href=""]) visual defang ---------- */
/* Prevent useless clicks on empty/placeholder links */
html body a[href="#"],
html body a[href=""]:not([role="button"]):not([onclick]) {
  cursor: default;
}

/* ---------- FIX 29 · iqit empty node collapse (229 unused nodes) ---------- */
html body [class*="iqit"]:empty:not(img):not(input):not(br):not(hr):not([aria-label]):not([style*="background"]):not(.js-slot) {
  display: none !important;
}

/* ---------- FIX 30 · Consistent border-radius hierarchy ---------- */
html body .btn,
html body button.btn,
html body input[type="submit"],
html body input[type="button"] {
  border-radius: 10px !important;
}
html body .card,
html body .product-miniature,
html body [class*="card-"] {
  border-radius: 12px !important;
}
html body .rc-hero,
html body .rc-hero-card,
html body .home-service-card {
  border-radius: 16px !important;
}
html body input[type="text"],
html body input[type="email"],
html body input[type="tel"],
html body input[type="password"],
html body input[type="search"],
html body textarea,
html body select {
  border-radius: 8px !important;
}

/* ---------- FIX 31 · Consistent button padding ---------- */
html body .btn:not(.btn-icon):not(.mini-cart-btn) {
  padding: 10px 20px !important;
  min-height: 40px !important;
}
html body .btn-lg {
  padding: 14px 28px !important;
  min-height: 52px !important;
}
html body .btn-sm {
  padding: 6px 14px !important;
  min-height: 32px !important;
}

/* ---------- FIX 32 · Trust bar dedup (hide duplicates via JS but also CSS fallback) ---------- */
html body .rc-trust-bar + .rc-trust-bar,
html body .rc-trust-bar ~ [class*="trust-"]:has(.rc-trust-item) {
  display: none !important;
}

/* ---------- FIX 33 · Mobile menu: overlay that blocks click fix ---------- */
@media (max-width: 991px) {
  /* Kill any rogue invisible overlay that blocks taps */
  html body body.mobile-menu-open > :not(.mobile-menu):not(#_mobile_iqitmegamenu-mobile):not(#mobile-header):not(script):not(style)::before,
  html body body.mobile-menu-open > :not(.mobile-menu):not(#_mobile_iqitmegamenu-mobile):not(#mobile-header):not(script):not(style)::after {
    pointer-events: none !important;
  }
  /* Make sure link elements always receive tap */
  html body .mobile-menu__link,
  html body .mobile-menu__tab a {
    pointer-events: auto !important;
    position: relative !important;
    z-index: 2 !important;
  }
}

/* ---------- FIX 34 · Image aspect-ratio to prevent CLS ---------- */
html body img:not([width]):not([height]) {
  aspect-ratio: attr(data-aspect, 1/1);
}
html body .product-miniature img,
html body .product-thumbnail img {
  aspect-ratio: 1 / 1 !important;
  object-fit: contain !important;
}

/* ---------- FIX 35 · Focus ring consistency (A11y) ---------- */
html body *:focus {
  outline: none;
}
html body *:focus-visible {
  outline: 3px solid #C1272D !important;
  outline-offset: 2px !important;
}

/* ============================================================
   PHASE 5 · UNHIDE ELEMENTOR SECTIONS ON MOBILE
   Sections were hidden by .elementor-hidden-phone.
   We force them visible + adapt to mobile layout.
   2026-04-20
   ============================================================ */

@media (max-width: 767px) {
  /* Override Elementor hidden-phone → visible on mobile */
  html body .elementor .elementor-hidden-phone:not([data-permanent-hide]) {
    display: block !important;
  }
  html body .elementor .elementor-column.elementor-hidden-phone:not([data-permanent-hide]),
  html body .elementor .elementor-hidden-phone.elementor-column {
    display: flex !important;
  }
  html body .elementor .elementor-widget.elementor-hidden-phone:not([data-permanent-hide]) {
    display: block !important;
  }
  html body .elementor .elementor-section.elementor-hidden-phone:not([data-permanent-hide]) {
    display: block !important;
  }

  /* Adapt elementor grid columns to full-width on mobile */
  html body .elementor-section .elementor-container,
  html body .elementor-column-wrap,
  html body .elementor-col-50,
  html body .elementor-col-33,
  html body .elementor-col-25,
  html body .elementor-col-20,
  html body .elementor-col-16 {
    width: 100% !important;
    max-width: 100% !important;
    flex: 1 0 100% !important;
  }

  /* Elementor image carousel responsive */
  html body .elementor-image-carousel-wrapper .swiper-slide {
    max-width: 100% !important;
  }
  html body .elementor-image-carousel .swiper-container {
    padding: 0 8px !important;
  }

  /* ProductsListTabs widget (Más Vendidos / Nuevos / Ofertas): show as tabs fluid */
  html body .elementor-widget-prestashop-widget-ProductsListTabs .nav-tabs {
    flex-wrap: wrap !important;
    gap: 4px !important;
    padding: 0 8px !important;
    border-bottom: 2px solid #eee !important;
  }
  html body .elementor-widget-prestashop-widget-ProductsListTabs .nav-tabs .nav-link {
    font-size: 13px !important;
    padding: 8px 12px !important;
    white-space: nowrap !important;
  }
  html body .elementor-widget-prestashop-widget-ProductsListTabs .products {
    padding: 12px 8px !important;
  }

  /* Category grid in Elementor: force 2-col on mobile */
  html body .elementor-element-6hdn71c .elementor-image-carousel .swiper-slide,
  html body [class*="categorias"] .swiper-slide {
    width: 50% !important;
  }

  /* Service widgets (knawvlh) spacing on mobile */
  html body .rc-servicios,
  html body [class*="rc-servicios"] {
    padding: 12px !important;
    margin: 8px 0 !important;
  }

  /* Hero text/image overflow protection */
  html body .elementor-section:not(.elementor-hidden-phone) .elementor-widget-wrap {
    overflow: hidden !important;
    padding: 0 4px !important;
  }

  /* Section spacing consistency */
  html body .elementor-section {
    padding: 16px 0 !important;
    margin: 0 !important;
  }
  html body .elementor-top-section {
    padding: 20px 0 !important;
  }
}

/* ============================================================
   FIX 36 · Trustindex/testimonials widget skeleton loader
   The widget often shows only title when data not loaded.
   Add graceful fallback styling.
   ============================================================ */
html body .trustindex-widget:empty,
html body [class*="testimonial"]:empty {
  display: none !important;
}
html body .trustindex-widget[data-loaded="false"],
html body [class*="trustindex"].is-loading {
  min-height: 200px !important;
  background: linear-gradient(90deg, #f1f5f9 0%, #e2e8f0 50%, #f1f5f9 100%) !important;
  background-size: 200% 100% !important;
  animation: rc-skeleton 1.5s infinite !important;
  border-radius: 12px !important;
}
@keyframes rc-skeleton {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* ============================================================
   FIX 37 · Prevent horizontal scroll from wide elements
   ============================================================ */
html body .elementor-section-stretched,
html body .elementor-section-full_width {
  max-width: 100vw !important;
  overflow-x: hidden !important;
}

/* ============================================================
   FIX 38 · Touch-friendly spacing between clickable elements
   (Prevents mis-taps on mobile 320-414)
   ============================================================ */
@media (max-width: 480px) {
  html body .navigation-wrap,
  html body .footer-container a {
    min-height: 40px !important;
    padding: 6px 4px !important;
  }
  html body .breadcrumb a,
  html body .breadcrumb span {
    padding: 4px 2px !important;
  }
}

/* ============================================================
   PHASE 6 · Fix hero visibility gaps + Swiper defensive
   2026-04-20
   ============================================================ */

/* ---------- FIX 39 · LayerSlider visible in all viewports ---------- */
/* Bug: layerslider_4 gets display:none via ls-device-is-desktop class in 1024 */
html body #layerslider_4,
html body #layerslider_4.ls-device-is-desktop,
html body #layerslider_4.ls-device-is-desk,
html body #layerslider_4.ls-device-is-tablet,
html body #layerslider_4.ls-device-is-mobile,
html body .ls-wp-container#layerslider_4 {
  display: block !important;
  visibility: visible !important;
  min-height: 1px !important;
}

/* Ensure rc-hero is available as mobile fallback */
@media (max-width: 991px) {
  html body .rc-hero {
    display: block !important;
  }
}

/* ---------- FIX 40 · Header height consistency 992-1199 ---------- */
@media (min-width: 992px) and (max-width: 1199px) {
  html body #header {
    max-height: 100px !important;
  }
  html body #header .header-top {
    padding: 8px 0 !important;
  }
  html body #header .header-nav,
  html body #header .row-header-bottom {
    padding: 4px 0 !important;
    min-height: 40px !important;
  }
  /* Compact logo in 1024 */
  html body #header img.logo {
    max-height: 42px !important;
    width: auto !important;
  }
  /* Compact search input */
  html body #header .search-widget {
    max-height: 44px !important;
  }
  html body #header .search-widget input {
    min-height: 44px !important;
    padding: 10px 14px !important;
  }
}

/* ---------- FIX 41 · Remove excessive padding below header at 1024 ---------- */
@media (min-width: 992px) and (max-width: 1199px) {
  html body #main,
  html body #wrapper,
  html body #content-wrapper {
    padding-top: 0 !important;
  }
  html body #layerslider_4,
  html body .elementor-section:first-of-type {
    margin-top: 0 !important;
  }
}

/* ---------- FIX 42 · Logo + search alignment fix ---------- */
@media (min-width: 992px) {
  html body #header .header-top .col-logo,
  html body #header .header-top ._desktop_logo {
    display: flex !important;
    align-items: center !important;
    min-width: 0 !important;
    padding-right: 12px !important;
  }
  html body #header .header-top ._desktop_search,
  html body #header .header-top .col-search {
    flex: 1 1 auto !important;
    min-width: 0 !important;
  }
  html body #header img.logo {
    display: block !important;
    max-width: 100% !important;
    object-fit: contain !important;
  }
}

/* ---------- FIX 43 · Gap eliminate between header + hero ---------- */
html body #header + section,
html body #header + main,
html body #header + div {
  margin-top: 0 !important;
}

/* ============================================================
   PHASE 7 · Final polish
   2026-04-20
   ============================================================ */

/* ---------- FIX 44 · Hide empty "No hay errores/compatibilidades" placeholders ---------- */
/* Uses :has() which is widely supported since 2023 */
html body .custom-accordion:has(.custom-accordion-body > p:only-child:not(:has(*))) {
  display: none !important;
}
/* Fallback for browsers without :has() — hide if specific text */
html body .custom-accordion.custom-accordion-errores .custom-accordion-body p:only-child,
html body .custom-accordion.custom-accordion-compat .custom-accordion-body p:only-child {
  color: #94a3b8 !important;
  font-style: italic !important;
  font-size: 13px !important;
  padding: 12px !important;
  text-align: center !important;
}

/* ---------- FIX 45 · Product page "Volver" button polish ---------- */
html body .rc-back-to-listing {
  margin: 12px 0 16px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  padding: 8px 14px !important;
  border-radius: 8px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  color: #C1272D !important;
  background: #fff5f5 !important;
  border: 1px solid #fecaca !important;
  text-decoration: none !important;
  transition: all 200ms ease !important;
}
html body .rc-back-to-listing:hover {
  background: #C1272D !important;
  color: #fff !important;
  transform: translateX(-2px) !important;
}

/* ---------- FIX 46 · Product image zoom icon polish ---------- */
html body .zoom-icon-v30 {
  position: absolute !important;
  bottom: 12px !important;
  right: 12px !important;
  width: 40px !important;
  height: 40px !important;
  border-radius: 50% !important;
  background: rgba(255, 255, 255, 0.95) !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  pointer-events: none !important;
  z-index: 3 !important;
}
html body .zoom-icon-v30 svg {
  width: 20px !important;
  height: 20px !important;
  stroke: #1e40af !important;
  stroke-width: 2 !important;
  fill: none !important;
}

/* ---------- FIX 47 · Category cross-sell card consistency ---------- */
@media (max-width: 767px) {
  html body .product-accessories .product-miniature,
  html body .related-products .product-miniature {
    padding: 10px !important;
    min-height: 200px !important;
  }
  html body .product-accessories .product-miniature .product-description,
  html body .related-products .product-miniature .product-description {
    padding: 8px 0 !important;
  }
}

/* ---------- FIX 48 · Trust bar in product detail: 3 items only ---------- */
html body body#product .trust-bar-product {
  display: flex !important;
  gap: 14px !important;
  flex-wrap: wrap !important;
  padding: 12px 14px !important;
  margin: 12px 0 16px !important;
  background: #f8fafc !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 12px !important;
  font-size: 13px !important;
}
html body body#product .trust-bar-product .trust-item {
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  color: #1e293b !important;
}
html body body#product .trust-bar-product .trust-item svg {
  width: 18px !important;
  height: 18px !important;
  stroke: #C1272D !important;
  stroke-width: 2 !important;
  fill: none !important;
}

/* ---------- FIX 49 · "Marca" / "Repuestos" info rows alignment ---------- */
html body body#product .product-features,
html body body#product [class*="product-meta"] {
  display: grid !important;
  grid-template-columns: 120px 1fr !important;
  gap: 8px !important;
  align-items: center !important;
  margin: 8px 0 !important;
  padding: 10px 14px !important;
  background: #fff !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 10px !important;
}
@media (max-width: 480px) {
  html body body#product .product-features,
  html body body#product [class*="product-meta"] {
    grid-template-columns: 90px 1fr !important;
    font-size: 13px !important;
  }
}

/* ---------- FIX 50 · Kill free shipping bar on homepage dropdown ---------- */
/* Only show in sidecart modal or cart page */
html body:not(#cart):not(#checkout) .dropdown-menu-custom .sc-free-shipping-bar {
  display: none !important;
}

/* ---------- FIX 51 · Remove floating CTA (user request 2026-04-20) ---------- */
html body .rc-float-cta,
html body .rc-float-cta *,
html body .rc-float-wa,
html body .rc-float-call {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
  width: 0 !important;
  height: 0 !important;
}

/* ============================================================
   RC FIX-28 2026-04-20: Footer 4-col alignment + hover zoom + responsive
   ============================================================ */

/* Desktop (>=992px): 4 equal columns, enforced */
@media (min-width: 992px) {
  footer #footer-container-main .row,
  footer .footer-container .row {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 20px !important;
    margin: 0 !important;
    align-items: stretch !important;
  }
  footer #footer-container-main .row > .col,
  footer #footer-container-main .row > [class*="col-"],
  footer .footer-container .row > .col,
  footer .footer-container .row > [class*="col-"] {
    flex: 1 1 0 !important;
    max-width: calc(25% - 15px) !important;
    width: calc(25% - 15px) !important;
    padding: 18px 16px !important;
    border-radius: 10px !important;
    border-bottom: 0 !important;
    transition: transform .35s cubic-bezier(.25,.46,.45,.94), box-shadow .35s ease, background-color .35s ease !important;
    transform-origin: center center !important;
    will-change: transform !important;
  }
}

/* Hover zoom — solo punteros precisos (evita hover sticky en touch) */
@media (hover: hover) and (pointer: fine) and (min-width: 992px) {
  footer #footer-container-main .row > .col:hover,
  footer #footer-container-main .row > [class*="col-"]:hover,
  footer .footer-container .row > .col:hover,
  footer .footer-container .row > [class*="col-"]:hover {
    transform: scale(1.035) !important;
    background-color: rgba(255,255,255,0.045) !important;
    box-shadow: 0 12px 32px rgba(0,0,0,0.22) !important;
    position: relative !important;
    z-index: 2 !important;
  }
}

/* Tablet (576-991.98px): 2 columnas — override al stacking existente */
@media (min-width: 576px) and (max-width: 991.98px) {
  footer #footer-container-main .row,
  footer .footer-container .row {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    flex-direction: unset !important;
    flex-wrap: unset !important;
    gap: 4px 18px !important;
    margin: 0 !important;
  }
  footer #footer-container-main .row > .col,
  footer #footer-container-main .row > [class*="col-"],
  footer .footer-container .row > .col,
  footer .footer-container .row > [class*="col-"] {
    flex: unset !important;
    max-width: 100% !important;
    width: auto !important;
    padding: 14px 16px !important;
  }
  /* Sin border-bottom en la última fila del grid (2 últimos bloques) */
  footer #footer-container-main .row > *:nth-last-child(-n+2),
  footer .footer-container .row > *:nth-last-child(-n+2) {
    border-bottom: 0 !important;
  }
}

/* Móvil (<576px): hereda el stacked single-column existente — sin overrides */

/* ============================================================
   RC FIX-29 2026-04-20: Ocultar flechas swiper Elementor
   ============================================================ */
.elementor-swiper-button,
.elementor-swiper-button-prev,
.elementor-swiper-button-next,
.swiper-button-prev.elementor-swiper-button,
.swiper-button-next.elementor-swiper-button {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* ============================================================
   RC FIX-31 2026-04-20: Ocultar paginación swiper Elementor (bullets)
   ============================================================ */
.swiper-pagination,
.elementor-swiper-pagination,
.swiper-pagination-bullets,
.swiper-pagination-bullet,
.elementor-widget-container .swiper-pagination,
.elementor-swiper .swiper-pagination,
.swiper-dots-outside,
.swiper-dots-inside {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  height: 0 !important;
  pointer-events: none !important;
}

/* Recuperar espacio que ocupaban los dots outside */
.elementor-widget-container .swiper,
.elementor-widget-container .swiper-container {
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
}

/* ============================================================
   RC FIX-32 2026-04-20: Rediseño back-btn del submenú móvil
   ============================================================ */
.mobile-menu__header--active .mobile-menu__back-btn,
.js-mobile-menu .mobile-menu__back-btn,
.js-mobile-menu .js-mobile-menu__back-btn {
  display: inline-flex !important;
  align-items: center !important;
  gap: 12px !important;
  padding: 9px 20px 9px 12px !important;
  background: linear-gradient(135deg, rgba(255,255,255,0.06) 0%, rgba(255,255,255,0.02) 100%) !important;
  border: 1px solid rgba(255,255,255,0.14) !important;
  border-radius: 999px !important;
  color: #fff !important;
  text-decoration: none !important;
  cursor: pointer !important;
  box-shadow: 0 6px 18px rgba(0,0,0,0.28), inset 0 1px 0 rgba(255,255,255,0.08) !important;
  transition: background .28s ease, border-color .28s ease, transform .28s ease, box-shadow .28s ease !important;
  -webkit-tap-highlight-color: transparent !important;
}

.js-mobile-menu .mobile-menu__back-btn:hover,
.js-mobile-menu .mobile-menu__back-btn:focus-visible,
.js-mobile-menu .mobile-menu__back-btn:active {
  background: linear-gradient(135deg, rgba(255,255,255,0.12) 0%, rgba(255,255,255,0.05) 100%) !important;
  border-color: rgba(255,255,255,0.28) !important;
  box-shadow: 0 8px 22px rgba(0,0,0,0.4), inset 0 1px 0 rgba(255,255,255,0.12) !important;
  transform: translateY(-1px) !important;
  outline: none !important;
}

.js-mobile-menu .mobile-menu__back-btn:active {
  transform: translateY(0) scale(0.985) !important;
}

/* Icono chevron dentro de círculo */
.js-mobile-menu .mobile-menu__back-btn .fa-angle-left,
.js-mobile-menu .mobile-menu__back-btn .fa.fa-angle-left {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 26px !important;
  height: 26px !important;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: 50% !important;
  background: rgba(255,255,255,0.1) !important;
  color: #fff !important;
  font-size: 15px !important;
  line-height: 1 !important;
  flex-shrink: 0 !important;
  transition: transform .28s ease, background .28s ease !important;
}

.js-mobile-menu .mobile-menu__back-btn:hover .fa-angle-left,
.js-mobile-menu .mobile-menu__back-btn:focus-visible .fa-angle-left,
.js-mobile-menu .mobile-menu__back-btn:active .fa-angle-left {
  background: rgba(255,255,255,0.18) !important;
  transform: translateX(-3px) !important;
}

/* Título tipográficamente más cuidado */
.js-mobile-menu .mobile-menu__back-btn .mobile-menu__title,
.js-mobile-menu .mobile-menu__back-btn .js-mobile-menu__title {
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  font-size: 13px !important;
  line-height: 1 !important;
  color: #fff !important;
  margin: 0 !important;
  opacity: 0.96 !important;
}

/* Ajuste del wrapper del header */
.js-mobile-menu .mm-panel__header,
.js-mobile-menu .mobile-menu__header-wrapper {
  padding: 14px 16px !important;
}

/* ============================================================
   RC FIX-32b 2026-04-20: Specificity boost para back-btn
   ============================================================ */
html body .js-mobile-menu .mobile-menu__header .mobile-menu__back-btn.btn,
html body .js-mobile-menu .mobile-menu__back-btn.js-mobile-menu__back-btn,
html body #iqitmegamenu-mobile .mobile-menu__back-btn {
  display: inline-flex !important;
  align-items: center !important;
  gap: 12px !important;
  padding: 10px 20px 10px 12px !important;
  background-color: transparent !important;
  background-image: linear-gradient(135deg, rgba(255,255,255,0.08) 0%, rgba(255,255,255,0.02) 100%) !important;
  border: 1px solid rgba(255,255,255,0.18) !important;
  border-radius: 999px !important;
  color: #fff !important;
  box-shadow: 0 6px 20px rgba(0,0,0,0.35), inset 0 1px 0 rgba(255,255,255,0.08) !important;
  text-decoration: none !important;
  min-height: 44px !important;
}

html body .js-mobile-menu .mobile-menu__back-btn:hover,
html body .js-mobile-menu .mobile-menu__back-btn:focus-visible,
html body .js-mobile-menu .mobile-menu__back-btn:active {
  background-image: linear-gradient(135deg, rgba(255,255,255,0.14) 0%, rgba(255,255,255,0.05) 100%) !important;
  border-color: rgba(255,255,255,0.32) !important;
  box-shadow: 0 10px 26px rgba(0,0,0,0.45), inset 0 1px 0 rgba(255,255,255,0.14) !important;
}

/* ============================================================
   RC FIX-33 2026-04-20: Limpieza header submenú — un solo botón
   ============================================================ */

/* Eliminar background + border-bottom del wrapper externo */
html body .js-mobile-menu .mm-panel__header,
html body .js-mobile-menu .mobile-menu__header-wrapper {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* Eliminar background + border del wrapper interno (header interno) */
html body .js-mobile-menu .mobile-menu__header,
html body .js-mobile-menu .js-mobile-menu__header,
html body .js-mobile-menu .mobile-menu__header--active {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}

/* Ocultar botón X cuando hay un submenú activo (back-btn ya cumple) */
html body .js-mobile-menu .mm-panel__header:has(.mobile-menu__header--active) .mobile-menu__close,
html body .js-mobile-menu .mobile-menu__header-wrapper:has(.mobile-menu__header--active) .mobile-menu__close,
html body .js-mobile-menu.mobile-menu--active .mobile-menu__close,
html body #iqitmegamenu-mobile.mobile-menu--active .mobile-menu__close {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* ============================================================
   RC FIX-34 2026-04-20: Ocultar flecha ">" en items con submenú
   ============================================================ */
html body .js-mobile-menu .mobile-menu__arrow,
html body .js-mobile-menu span.mobile-menu__arrow.js-mobile-menu__link--has-submenu,
html body #iqitmegamenu-mobile .mobile-menu__arrow,
html body .js-mobile-menu .mobile-menu__arrow .fa-angle-right,
html body .js-mobile-menu .expand-icon {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  width: 0 !important;
  height: 0 !important;
  pointer-events: none !important;
}

/* ============================================================
   RC FIX-35 2026-04-20: Mobile menu footer — quitar lang/currency + centrar login
   ============================================================ */

/* Ocultar selector de idioma y moneda */
html body .js-mobile-menu .mobile-menu__language-currency,
html body .js-mobile-menu .js-mobile-menu__language-currency,
html body .js-mobile-menu .mobile-menu__language-selector,
html body .js-mobile-menu .mobile-menu__currency-selector,
html body #iqitmegamenu-mobile .mobile-menu__language-currency {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  width: 0 !important;
  height: 0 !important;
  pointer-events: none !important;
}

/* Centrar el botón de Iniciar sesión en el footer */
html body .js-mobile-menu .mobile-menu__footer,
html body .js-mobile-menu .js-top-menu-bottom.mobile-menu__footer {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  padding: 18px 16px !important;
}

/* Bloque user ocupando espacio adecuado */
html body .js-mobile-menu .mobile-menu__user {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  width: auto !important;
  margin: 0 !important;
}

/* Pill de Iniciar sesión: centrado, padding consistente, icono alineado */
html body .js-mobile-menu .mobile-menu__user > a,
html body .js-mobile-menu .mobile-menu__user a.text-reset {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  padding: 12px 28px !important;
  min-height: 48px !important;
  border-radius: 999px !important;
  font-weight: 700 !important;
  letter-spacing: 0.03em !important;
  font-size: 14px !important;
  text-decoration: none !important;
  line-height: 1 !important;
  transition: transform .25s ease, box-shadow .25s ease, background-color .25s ease !important;
}

html body .js-mobile-menu .mobile-menu__user > a:hover,
html body .js-mobile-menu .mobile-menu__user > a:focus-visible,
html body .js-mobile-menu .mobile-menu__user > a:active {
  transform: translateY(-1px) !important;
  box-shadow: 0 10px 26px rgba(0, 50, 150, 0.35) !important;
  outline: none !important;
}

html body .js-mobile-menu .mobile-menu__user > a .fa-user {
  font-size: 15px !important;
  line-height: 1 !important;
  margin: 0 !important;
}

/* ============================================================
   RC FIX-36 2026-04-20: Ocultar dots del hero slider
   ============================================================ */
html body .rc-hero-dot,
html body .rc-hero-dots,
html body [class*="rc-hero-dot"] {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* ============================================================
   RC FIX-37 2026-04-20: Product miniature — unificar CTA "Ir a tienda"
   - Ocultar boton compartir en TODOS los viewports
   - Alinear bottom de las tarjetas (mismo alto + footer pegado abajo)
   - Responsive progresivo del swiper: 5/3/2/1
   ============================================================ */

/* 1) Ocultar el boton de compartir en todas las miniatures (no solo mobile) */
html body .product-miniature .btn-mini-share,
html body .product-miniature button.btn-mini-share,
html body .mini-action-row .btn-mini-share,
html body .mini-action-row button.btn-mini-share {
  display: none !important;
  visibility: hidden !important;
  width: 0 !important;
  height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  overflow: hidden !important;
  pointer-events: none !important;
}

/* 2) Alineacion vertical: mismo alto, boton pegado al bottom */
html body .swiper-slide,
html body .products .swiper-slide,
html body .products-grid .swiper-slide {
  height: auto !important;
  display: flex !important;
  align-items: stretch !important;
}

html body .swiper-slide > .product-miniature,
html body .products .product-miniature.js-product-miniature {
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  height: 100% !important;
}

html body .product-miniature .product-description {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 auto !important;
}

/* Empuja la mini-action-row (CTA) al fondo */
html body .product-miniature .product-description .mini-action-row {
  margin-top: auto !important;
}

/* Garantiza que el swiper-wrapper trate slides con mismo alto */
html body .products.swiper-container .swiper-wrapper,
html body .products-grid.swiper-container .swiper-wrapper {
  align-items: stretch !important;
}

/* 3) Single CTA: un solo boton full-width con estilo consistente */
html body .product-miniature .mini-action-row {
  display: flex !important;
  width: 100% !important;
  padding: 0 8px !important;
  gap: 0 !important;
}

html body .product-miniature .btn.add-to-cart.mini-cart-btn {
  width: 100% !important;
  flex: 1 1 100% !important;
  min-width: 100% !important;
}

/* 4) Responsive progresivo del carrusel de productos
   Warehouse usa clases swiper-cls-fix-N + data-slides-per-view.
   El Swiper ya esta inicializado; forzamos ancho de slide por CSS como fallback
   para cuando el layout quede desalineado. Breakpoints:
   >=1200 : 5 cols (por defecto del tema)
   992-1199: 4 cols
   768-991 : 3 cols
   481-767 : 2 cols
   <=480   : 1 col
*/
@media (max-width: 1199px) and (min-width: 992px) {
  html body .products.swiper-container:not(.elementor-products-carousel) .swiper-slide,
  html body .products-grid.swiper-container:not(.elementor-products-carousel) .swiper-slide {
    width: 25% !important;
  }
}
@media (max-width: 991px) and (min-width: 768px) {
  html body .products.swiper-container:not(.elementor-products-carousel) .swiper-slide,
  html body .products-grid.swiper-container:not(.elementor-products-carousel) .swiper-slide {
    width: 33.3333% !important;
  }
}
@media (max-width: 767px) and (min-width: 481px) {
  html body .products.swiper-container:not(.elementor-products-carousel) .swiper-slide,
  html body .products-grid.swiper-container:not(.elementor-products-carousel) .swiper-slide {
    width: 50% !important;
  }
}
@media (max-width: 480px) {
  html body .products.swiper-container:not(.elementor-products-carousel) .swiper-slide,
  html body .products-grid.swiper-container:not(.elementor-products-carousel) .swiper-slide {
    width: 100% !important;
  }
}

/* 5) Texto del CTA mostrado en pantallas medias y grandes
   (en <=480 se mantiene icono + precio por rule existente) */
@media (min-width: 481px) {
  html body .product-miniature .btn.add-to-cart.mini-cart-btn {
    font-size: 12px !important;
    letter-spacing: 0.3px !important;
    text-transform: uppercase !important;
  }
}

/* RC FIX-37b: ocultar precio inline dentro del boton rewritten IR A TIENDA */
html body .product-miniature .btn.add-to-cart.mini-cart-btn[data-rc-cta-v2="1"] .btn-price-inline,
html body .product-miniature button.mini-cart-btn[data-rc-cta-v2="1"] .btn-price-inline {
  display: none !important;
  visibility: hidden !important;
  width: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Centrar el label CTA */
html body .product-miniature .btn.add-to-cart.mini-cart-btn[data-rc-cta-v2="1"] {
  justify-content: center !important;
  text-align: center !important;
  gap: 8px !important;
}

html body .product-miniature .rc-cta-label {
  font-weight: 700 !important;
  letter-spacing: 0.3px !important;
}

/* ============================================================
   RC FIX-38b 2026-04-20: Servicios premium overrides (specificity boost)
   ============================================================ */
html body .rc-servicios,
html body section .rc-servicios {
  margin: 0 !important;
  padding: 56px 0 !important;
  background: linear-gradient(180deg, #050a18 0%, #0b1326 55%, #071022 100%) !important;
  color: #e6ecff !important;
  position: relative !important;
  overflow: hidden !important;
  font-family: inherit !important;
}
html body .rc-servicios::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  background: radial-gradient(1200px 360px at 20% 10%, rgba(59,130,246,0.18), transparent 70%),
              radial-gradient(900px 300px at 80% 90%, rgba(29,78,216,0.16), transparent 70%) !important;
  pointer-events: none !important;
  z-index: 0 !important;
}
html body .rc-servicios .rc-svc-head {
  text-align: center !important;
  max-width: 720px !important;
  margin: 0 auto 44px !important;
  padding: 0 20px !important;
  position: relative !important;
  z-index: 2 !important;
}
html body .rc-servicios .rc-svc-eyebrow {
  display: inline-block !important;
  font-size: 12px !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  color: #9ec3ff !important;
  font-weight: 700 !important;
  padding: 6px 14px !important;
  border: 1px solid rgba(158,195,255,0.3) !important;
  border-radius: 999px !important;
  background: rgba(59,130,246,0.08) !important;
  margin-bottom: 18px !important;
}
html body .rc-servicios .rc-svc-title {
  font-size: clamp(26px, 3.2vw, 38px) !important;
  font-weight: 800 !important;
  letter-spacing: -0.01em !important;
  line-height: 1.15 !important;
  margin: 0 0 12px !important;
  color: #fff !important;
  text-align: center !important;
  text-transform: none !important;
}
html body .rc-servicios .rc-svc-title span {
  background: linear-gradient(120deg, #60a5fa 0%, #a5b4fc 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
}
html body .rc-servicios .rc-svc-sub {
  font-size: 15px !important;
  line-height: 1.6 !important;
  color: #b9c6e3 !important;
  margin: 0 !important;
}

html body .rc-servicios .services-container {
  position: relative !important;
  z-index: 2 !important;
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 22px !important;
  padding: 0 32px !important;
  max-width: 1280px !important;
  margin: 0 auto !important;
}
@media (max-width: 1100px) {
  html body .rc-servicios .services-container {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 18px !important;
    padding: 0 20px !important;
  }
}
@media (max-width: 560px) {
  html body .rc-servicios .services-container {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
    padding: 0 16px !important;
  }
}

html body .rc-servicios .service-card {
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 14px !important;
  padding: 28px 22px 26px !important;
  border-radius: 18px !important;
  background: linear-gradient(160deg, rgba(255,255,255,0.055) 0%, rgba(255,255,255,0.02) 100%) !important;
  background-color: transparent !important;
  border: 1px solid rgba(255,255,255,0.08) !important;
  box-shadow: 0 10px 30px rgba(0,0,0,0.28), inset 0 1px 0 rgba(255,255,255,0.06) !important;
  overflow: hidden !important;
  transition: transform .45s cubic-bezier(.22,.8,.32,1), border-color .35s ease, box-shadow .35s ease !important;
  text-align: left !important;
  color: #e6ecff !important;
}

html body .rc-servicios .service-card::before {
  content: "" !important;
  position: absolute !important;
  inset: -1px !important;
  border-radius: inherit !important;
  padding: 1px !important;
  background: linear-gradient(135deg, var(--svc-accent, #3b82f6) 0%, rgba(255,255,255,0) 55%) !important;
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0) !important;
          mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0) !important;
  -webkit-mask-composite: xor !important;
          mask-composite: exclude !important;
  opacity: 0 !important;
  transition: opacity .4s ease !important;
  pointer-events: none !important;
  z-index: 0 !important;
}
html body .rc-servicios .service-card::after {
  content: "" !important;
  position: absolute !important;
  top: -40% !important;
  right: -30% !important;
  width: 200px !important;
  height: 200px !important;
  background: radial-gradient(circle at center, var(--svc-accent-soft, rgba(59,130,246,0.35)) 0%, transparent 70%) !important;
  filter: blur(30px) !important;
  opacity: 0.35 !important;
  transition: opacity .45s ease, transform .45s ease !important;
  pointer-events: none !important;
  z-index: 0 !important;
}
html body .rc-servicios .service-card:hover {
  transform: translateY(-6px) !important;
  border-color: rgba(255,255,255,0.2) !important;
  box-shadow: 0 26px 50px rgba(0,0,0,0.45), 0 0 0 1px rgba(255,255,255,0.06), inset 0 1px 0 rgba(255,255,255,0.08) !important;
}
html body .rc-servicios .service-card:hover::before { opacity: 1 !important; }
html body .rc-servicios .service-card:hover::after { opacity: 0.7 !important; transform: translate(-10px, 10px) !important; }

html body .rc-servicios .service-card > * { position: relative !important; z-index: 1 !important; }

html body .rc-servicios .service-card.svc-1 { --svc-accent: #3b82f6; --svc-accent-soft: rgba(59,130,246,0.42); }
html body .rc-servicios .service-card.svc-2 { --svc-accent: #06b6d4; --svc-accent-soft: rgba(6,182,212,0.42); }
html body .rc-servicios .service-card.svc-3 { --svc-accent: #8b5cf6; --svc-accent-soft: rgba(139,92,246,0.42); }
html body .rc-servicios .service-card.svc-4 { --svc-accent: #10b981; --svc-accent-soft: rgba(16,185,129,0.42); }

html body .rc-servicios .service-icon-wrap {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 52px !important;
  height: 52px !important;
  border-radius: 14px !important;
  background: linear-gradient(135deg, rgba(255,255,255,0.08), rgba(255,255,255,0.02)) !important;
  border: 1px solid rgba(255,255,255,0.12) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.08) !important;
  color: var(--svc-accent, #3b82f6) !important;
  transition: transform .4s ease, color .4s ease, background .4s ease, border-color .4s ease !important;
  flex: 0 0 auto !important;
  margin: 0 !important;
}
html body .rc-servicios .service-card:hover .service-icon-wrap {
  transform: translateY(-2px) rotate(-3deg) !important;
  background: linear-gradient(135deg, rgba(59,130,246,0.18), rgba(255,255,255,0.03)) !important;
  border-color: rgba(255,255,255,0.22) !important;
}
html body .rc-servicios .service-icon-wrap svg {
  width: 26px !important;
  height: 26px !important;
  color: inherit !important;
  stroke: currentColor !important;
}

html body .rc-servicios .service-num {
  position: absolute !important;
  top: 20px !important;
  right: 22px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  color: rgba(255,255,255,0.3) !important;
  z-index: 2 !important;
}

html body .rc-servicios .service-title {
  font-size: 17px !important;
  font-weight: 700 !important;
  color: #fff !important;
  letter-spacing: -0.005em !important;
  line-height: 1.25 !important;
  margin: 2px 0 0 !important;
  text-transform: none !important;
  text-align: left !important;
}

html body .rc-servicios .service-description {
  font-size: 14px !important;
  line-height: 1.55 !important;
  color: #cbd5ef !important;
  margin: 0 !important;
  text-align: left !important;
}

html body .rc-servicios .service-extra {
  font-size: 13px !important;
  line-height: 1.55 !important;
  color: #94a3c4 !important;
  margin-top: auto !important;
  padding-top: 14px !important;
  border-top: 1px dashed rgba(255,255,255,0.08) !important;
  text-align: left !important;
}

/* Ocultar el icono legacy .service-icon (i.fa) si aún lo usa alguna variante */
html body .rc-servicios .service-icon:not(.service-icon-wrap) {
  display: none !important;
}

@media (prefers-reduced-motion: reduce) {
  html body .rc-servicios .service-card,
  html body .rc-servicios .service-icon-wrap { transition: none !important; }
  html body .rc-servicios .service-card:hover { transform: none !important; }
}

/* ============================================================
   RC FIX-39 2026-04-20: Servicios zig-zag (override FIX-38/38b)
   ============================================================ */

/* Neutraliza el bloque antiguo glass-dark-grid */
html body .rc-servicios.rc-servicios--zigzag {
  background: #ffffff !important;
  background-image: none !important;
  color: #0f172a !important;
  padding: 64px 0 !important;
  position: relative !important;
  overflow: hidden !important;
  font-family: inherit !important;
}
html body .rc-servicios.rc-servicios--zigzag::before,
html body .rc-servicios.rc-servicios--zigzag::after {
  content: none !important;
  display: none !important;
}

html body .rc-servicios--zigzag .rc-svc-stack {
  max-width: 1180px !important;
  margin: 0 auto !important;
  padding: 0 24px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 56px !important;
}

/* Filas zig-zag */
html body .rc-servicios--zigzag .rc-svc-row {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr) !important;
  align-items: center !important;
  gap: 48px !important;
  background: #ffffff !important;
  color: #0f172a !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
}
html body .rc-servicios--zigzag .rc-svc-row--reverse {
  direction: rtl !important;
}
html body .rc-servicios--zigzag .rc-svc-row--reverse > * {
  direction: ltr !important;
}

/* Media (imagen circular en fondo blanco) */
html body .rc-servicios--zigzag .rc-svc-media {
  position: relative !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  padding: 16px !important;
}
html body .rc-servicios--zigzag .rc-svc-media-inner {
  position: relative !important;
  width: 100% !important;
  max-width: 380px !important;
  aspect-ratio: 1 / 1 !important;
  background: #ffffff !important;
  border-radius: 28px !important;
  box-shadow: 0 20px 50px -20px rgba(15, 23, 42, 0.18), 0 0 0 1px rgba(15, 23, 42, 0.05) !important;
  overflow: hidden !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: transform .45s cubic-bezier(.22,.8,.32,1), box-shadow .45s ease !important;
}
html body .rc-servicios--zigzag .rc-svc-row:hover .rc-svc-media-inner {
  transform: translateY(-4px) !important;
  box-shadow: 0 30px 60px -20px rgba(15, 23, 42, 0.28), 0 0 0 1px rgba(15, 23, 42, 0.07) !important;
}
html body .rc-servicios--zigzag .rc-svc-media-inner svg {
  width: 100% !important;
  height: 100% !important;
  display: block !important;
}

/* Body (texto) */
html body .rc-servicios--zigzag .rc-svc-body {
  display: flex !important;
  flex-direction: column !important;
  gap: 14px !important;
  color: #0f172a !important;
  text-align: left !important;
}
html body .rc-servicios--zigzag .rc-svc-tag {
  display: inline-block !important;
  font-size: 11px !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  font-weight: 700 !important;
  color: #1d4ed8 !important;
  background: rgba(59, 130, 246, 0.08) !important;
  border: 1px solid rgba(59, 130, 246, 0.18) !important;
  border-radius: 999px !important;
  padding: 6px 12px !important;
  margin: 0 !important;
  width: fit-content !important;
}
html body .rc-servicios--zigzag .rc-svc-heading {
  font-size: clamp(24px, 3vw, 34px) !important;
  font-weight: 800 !important;
  letter-spacing: -0.015em !important;
  line-height: 1.15 !important;
  margin: 4px 0 0 !important;
  color: #0b1326 !important;
  text-transform: none !important;
  text-align: left !important;
}
html body .rc-servicios--zigzag .rc-svc-text {
  font-size: 16px !important;
  line-height: 1.62 !important;
  color: #475569 !important;
  margin: 6px 0 4px !important;
  text-align: left !important;
  max-width: 540px !important;
}

/* Features list */
html body .rc-servicios--zigzag .rc-svc-features {
  list-style: none !important;
  margin: 8px 0 0 !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
}
html body .rc-servicios--zigzag .rc-svc-features li {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  color: #334155 !important;
  padding: 0 !important;
  margin: 0 !important;
  list-style: none !important;
  background: none !important;
  border: 0 !important;
}
html body .rc-servicios--zigzag .rc-svc-features svg {
  width: 18px !important;
  height: 18px !important;
  color: #10b981 !important;
  flex-shrink: 0 !important;
  stroke: currentColor !important;
}

/* CTA opcional en la tarjeta Tienda */
html body .rc-servicios--zigzag .rc-svc-cta {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 12px 22px !important;
  margin-top: 14px !important;
  background: linear-gradient(135deg, #1d4ed8 0%, #2563eb 100%) !important;
  color: #fff !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  letter-spacing: 0.02em !important;
  border-radius: 999px !important;
  text-decoration: none !important;
  box-shadow: 0 10px 24px -8px rgba(37, 99, 235, 0.55) !important;
  width: fit-content !important;
  transition: transform .25s ease, box-shadow .25s ease, gap .25s ease !important;
}
html body .rc-servicios--zigzag .rc-svc-cta:hover,
html body .rc-servicios--zigzag .rc-svc-cta:focus-visible {
  transform: translateY(-2px) !important;
  gap: 12px !important;
  box-shadow: 0 16px 30px -8px rgba(37, 99, 235, 0.65) !important;
  color: #fff !important;
  outline: none !important;
}
html body .rc-servicios--zigzag .rc-svc-cta svg {
  width: 16px !important;
  height: 16px !important;
  stroke: currentColor !important;
}

/* Responsive ≤ 900 */
@media (max-width: 900px) {
  html body .rc-servicios.rc-servicios--zigzag {
    padding: 44px 0 !important;
  }
  html body .rc-servicios--zigzag .rc-svc-stack {
    gap: 44px !important;
  }
  html body .rc-servicios--zigzag .rc-svc-row,
  html body .rc-servicios--zigzag .rc-svc-row--reverse {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
    direction: ltr !important;
  }
  html body .rc-servicios--zigzag .rc-svc-row--reverse .rc-svc-media {
    order: -1 !important;
  }
  html body .rc-servicios--zigzag .rc-svc-row .rc-svc-media {
    order: -1 !important;
  }
  html body .rc-servicios--zigzag .rc-svc-media-inner {
    max-width: 300px !important;
  }
  html body .rc-servicios--zigzag .rc-svc-heading {
    text-align: left !important;
  }
}

/* Responsive ≤ 520 */
@media (max-width: 520px) {
  html body .rc-servicios.rc-servicios--zigzag { padding: 32px 0 !important; }
  html body .rc-servicios--zigzag .rc-svc-stack { gap: 36px !important; padding: 0 18px !important; }
  html body .rc-servicios--zigzag .rc-svc-media-inner { max-width: 260px !important; border-radius: 22px !important; }
  html body .rc-servicios--zigzag .rc-svc-text { font-size: 15px !important; }
  html body .rc-servicios--zigzag .rc-svc-features li { font-size: 13.5px !important; }
}

@media (prefers-reduced-motion: reduce) {
  html body .rc-servicios--zigzag .rc-svc-media-inner,
  html body .rc-servicios--zigzag .rc-svc-cta { transition: none !important; }
  html body .rc-servicios--zigzag .rc-svc-row:hover .rc-svc-media-inner { transform: none !important; }
}

/* RC FIX-40: img en media-inner */
html body .rc-servicios--zigzag .rc-svc-media-inner img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}

/* ============================================================
   RC FIX-41 2026-04-20: Solo Más Vendidos — oculta tabs, título limpio, responsive
   ============================================================ */

/* Ocultar nav con 3 tabs (Más Vendidos / Nuevos / Ofertas) */
html body .elementor-products-tabs .nav.nav-tabs,
html body .elementor-products-tabs > ul.nav-tabs {
  display: none !important;
}

/* Ocultar paneles inactivos, forzar solo el primero (Más Vendidos) */
html body .elementor-products-tabs .tab-content .tab-pane {
  display: none !important;
}
html body .elementor-products-tabs .tab-content .tab-pane.active,
html body .elementor-products-tabs .tab-content .tab-pane:first-child {
  display: block !important;
}

/* Título "Más Vendidos" generado vía ::before en el contenedor de tabs */
html body .elementor-products-tabs {
  position: relative !important;
}
html body .elementor-products-tabs::before {
  content: "Más Vendidos" !important;
  display: block !important;
  text-align: center !important;
  font-size: clamp(22px, 2.4vw, 30px) !important;
  font-weight: 800 !important;
  letter-spacing: -0.015em !important;
  color: #0b1326 !important;
  margin: 0 0 8px !important;
  line-height: 1.2 !important;
}
html body .elementor-products-tabs::after {
  content: "" !important;
  display: block !important;
  width: 56px !important;
  height: 3px !important;
  margin: 0 auto 32px !important;
  background: linear-gradient(90deg, #1d4ed8 0%, #3b82f6 100%) !important;
  border-radius: 2px !important;
}

/* Content area padding reset para que ::after venga antes del contenido */
html body .elementor-products-tabs .tab-content {
  padding-top: 0 !important;
  border-top: 0 !important;
  margin-top: 0 !important;
}

/* === Alineación de product cards === */
html body .elementor-products-tabs .tab-pane .swiper-wrapper,
html body .elementor-products-tabs .tab-pane .products,
html body .elementor-products-tabs .tab-pane .row {
  align-items: stretch !important;
}

html body .elementor-products-tabs .tab-pane .swiper-slide,
html body .elementor-products-tabs .tab-pane .product-miniature-wrapper {
  display: flex !important;
  height: auto !important;
  align-items: stretch !important;
}

html body .elementor-products-tabs .tab-pane .product-miniature {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  width: 100% !important;
  background: #fff !important;
  border: 1px solid rgba(15, 23, 42, 0.06) !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease !important;
  box-shadow: 0 1px 3px rgba(15,23,42,0.04) !important;
}
html body .elementor-products-tabs .tab-pane .product-miniature:hover {
  transform: translateY(-4px) !important;
  box-shadow: 0 12px 28px -8px rgba(15,23,42,0.15) !important;
  border-color: rgba(59, 130, 246, 0.3) !important;
}

/* La imagen del producto con altura fija uniforme */
html body .elementor-products-tabs .tab-pane .product-miniature .thumbnail-container,
html body .elementor-products-tabs .tab-pane .product-miniature a.thumbnail,
html body .elementor-products-tabs .tab-pane .product-miniature .product-thumbnail {
  flex: 0 0 auto !important;
  aspect-ratio: 1 / 1 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: #fafbfc !important;
  padding: 14px !important;
  overflow: hidden !important;
}
html body .elementor-products-tabs .tab-pane .product-miniature img {
  max-width: 100% !important;
  max-height: 100% !important;
  width: auto !important;
  height: auto !important;
  object-fit: contain !important;
  mix-blend-mode: multiply !important;
}

/* Placeholder "Imagen no disponible" — tipografía discreta */
html body .elementor-products-tabs .tab-pane .product-miniature .product-thumbnail:empty::before,
html body .elementor-products-tabs .tab-pane .product-miniature a[href*="missing"],
html body .elementor-products-tabs .tab-pane .product-miniature img[src*="placeholder"],
html body .elementor-products-tabs .tab-pane .product-miniature img[alt*="disponible" i] {
  opacity: 0.55 !important;
  filter: grayscale(0.4) !important;
}

/* Wrapper del body (título + botón) crece para alinear footer */
html body .elementor-products-tabs .tab-pane .product-miniature .product-description,
html body .elementor-products-tabs .tab-pane .product-miniature .product-info,
html body .elementor-products-tabs .tab-pane .product-miniature .product-footer {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 auto !important;
  padding: 14px 16px 16px !important;
  gap: 6px !important;
}

/* Categoría */
html body .elementor-products-tabs .tab-pane .product-miniature .product-category,
html body .elementor-products-tabs .tab-pane .product-miniature .cat-name {
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  color: #1d4ed8 !important;
  margin: 0 !important;
  line-height: 1.3 !important;
}

/* Título producto (2 líneas max) */
html body .elementor-products-tabs .tab-pane .product-miniature .product-title,
html body .elementor-products-tabs .tab-pane .product-miniature h2.h3,
html body .elementor-products-tabs .tab-pane .product-miniature h3 {
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
  color: #0b1326 !important;
  margin: 0 !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
  min-height: 2.8em !important;
}
html body .elementor-products-tabs .tab-pane .product-miniature .product-title a {
  color: inherit !important;
  text-decoration: none !important;
}

/* Botón IR A TIENDA pegado al fondo */
html body .elementor-products-tabs .tab-pane .product-miniature .btn.add-to-cart,
html body .elementor-products-tabs .tab-pane .product-miniature .mini-action-row {
  margin-top: auto !important;
}

/* Card SIN STOCK: mismo layout, sin botón redundante al fondo */
html body .elementor-products-tabs .tab-pane .product-miniature .product-unavailable,
html body .elementor-products-tabs .tab-pane .product-miniature .btn-unavailable,
html body .elementor-products-tabs .tab-pane .product-miniature button[disabled].btn,
html body .elementor-products-tabs .tab-pane .product-miniature .btn.disabled {
  margin-top: auto !important;
  width: 100% !important;
  border-radius: 999px !important;
}
html body .elementor-products-tabs .tab-pane .product-miniature .btn-unavailable + .btn-unavailable,
html body .elementor-products-tabs .tab-pane .product-miniature .btn.disabled ~ .btn.disabled {
  display: none !important;
}

/* Si el layout no es swiper sino grid — usar grid responsivo */
html body .elementor-products-tabs .tab-pane .products:not(.swiper-wrapper),
html body .elementor-products-tabs .tab-pane .row:not(.swiper-wrapper) {
  display: grid !important;
  grid-template-columns: repeat(5, 1fr) !important;
  gap: 16px !important;
  margin: 0 !important;
}
@media (max-width: 1199.98px) {
  html body .elementor-products-tabs .tab-pane .products:not(.swiper-wrapper),
  html body .elementor-products-tabs .tab-pane .row:not(.swiper-wrapper) { grid-template-columns: repeat(4, 1fr) !important; }
}
@media (max-width: 991.98px) {
  html body .elementor-products-tabs .tab-pane .products:not(.swiper-wrapper),
  html body .elementor-products-tabs .tab-pane .row:not(.swiper-wrapper) { grid-template-columns: repeat(3, 1fr) !important; }
}
@media (max-width: 767.98px) {
  html body .elementor-products-tabs .tab-pane .products:not(.swiper-wrapper),
  html body .elementor-products-tabs .tab-pane .row:not(.swiper-wrapper) { grid-template-columns: repeat(2, 1fr) !important; gap: 12px !important; }
}
@media (max-width: 480px) {
  html body .elementor-products-tabs .tab-pane .products:not(.swiper-wrapper),
  html body .elementor-products-tabs .tab-pane .row:not(.swiper-wrapper) { grid-template-columns: 1fr !important; }
}

/* Padding lateral del contenedor en móvil para evitar recortes */
@media (max-width: 767.98px) {
  html body .elementor-products-tabs { padding: 0 12px !important; }
  html body .elementor-products-tabs .tab-content { padding: 0 !important; }
}


/* ========== RC FIX-41 appended 1776720719 ========== */
/* ============================================================
 * RC FIX-41 — Ficha producto: layout horizontal en TODOS los viewports
 * Sustituye FIX-40. Fuerza azul, elimina precio duplicado, alinea
 * qty + wishlist + share en una sola fila horizontal.
 * ============================================================ */

/* 1) OCULTAR precio duplicado dentro de product-actions
 *    (hay un .product_p_price_container y dentro .product-prices) */
body#product .product-actions .product_p_price_container,
body#product .product-actions > form .product_p_price_container,
body#product .product-actions .product-prices.js-product-prices,
body#product .product-actions > form .product-prices {
    display: none !important;
}

/* 2) Ocultar label original de impuestos (JS lo clona debajo del botón) */
body#product .product-actions .tax-shipping-delivery-label {
    display: none !important;
}

/* 3) Ocultar la barra social original (JS la convierte en botón compacto) */
body#product .product-additional-info .social-sharing {
    display: none !important;
}

/* 4) product-actions: column, centrado mobile / izquierda desktop */
body#product .product-actions {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
}
@media (min-width: 768px) {
    body#product .product-actions {
        align-items: flex-start !important;
    }
}

/* 5) Wrapper principal */
body#product .product-add-to-cart {
    width: 100% !important;
    max-width: 520px !important;
    padding-top: 0.5rem !important;
    margin: 0 auto !important;
}
@media (min-width: 768px) {
    body#product .product-add-to-cart {
        margin: 0 !important;
    }
}

/* 6) Fila principal — FLEX horizontal siempre */
body#product .product-add-to-cart .product-quantity.row {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
}
@media (min-width: 768px) {
    body#product .product-add-to-cart .product-quantity.row {
        justify-content: flex-start !important;
    }
}

/* 7) Orden: botón full-width arriba, qty/wishlist/share horizontal debajo */
body#product .product-add-to-cart .product-quantity.row > .col-add-btn {
    order: 1 !important;
    flex: 1 1 100% !important;
    max-width: 100% !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}
body#product .product-add-to-cart .product-quantity.row > .col-add-qty {
    order: 2 !important;
    flex: 0 0 auto !important;
    max-width: none !important;
    width: auto !important;
    padding: 0 !important;
    margin: 0 !important;
}
body#product .product-add-to-cart .product-quantity.row > .col-add-wishlist {
    order: 3 !important;
    flex: 0 0 auto !important;
    max-width: none !important;
    width: auto !important;
    padding: 0 !important;
    margin: 0 !important;
}
body#product .product-add-to-cart .product-quantity.row > .rcp-share-col {
    order: 4 !important;
    flex: 0 0 auto !important;
    max-width: none !important;
    width: auto !important;
    padding: 0 !important;
    margin: 0 !important;
    position: relative !important;
}
body#product .product-add-to-cart .product-quantity.row > .col-add-compare {
    display: none !important;
}

/* 8) BOTÓN AZUL — máxima especificidad */
body#product .product-add-to-cart button.add-to-cart,
body#product .product-add-to-cart button.add-to-cart.btn,
body#product .product-add-to-cart button.add-to-cart.btn-primary,
body#product .product-add-to-cart .col-add-btn .add button.add-to-cart {
    width: 100% !important;
    background: #0d6efd !important;
    background-color: #0d6efd !important;
    background-image: none !important;
    border: 1px solid #0d6efd !important;
    border-color: #0d6efd !important;
    color: #fff !important;
    font-weight: 700 !important;
    font-size: 15px !important;
    letter-spacing: 0.03em !important;
    padding: 14px 18px !important;
    border-radius: 10px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    box-shadow: 0 4px 12px rgba(13, 110, 253, 0.30) !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
    text-transform: uppercase !important;
    transition: background 0.2s, box-shadow 0.2s, transform 0.15s !important;
}

body#product .product-add-to-cart button.add-to-cart:hover:not(:disabled),
body#product .product-add-to-cart button.add-to-cart:focus:not(:disabled),
body#product .product-add-to-cart button.add-to-cart:active:not(:disabled) {
    background: #0b5ed7 !important;
    background-color: #0b5ed7 !important;
    border-color: #0a58ca !important;
    color: #fff !important;
    box-shadow: 0 6px 16px rgba(13, 110, 253, 0.40) !important;
    transform: translateY(-1px) !important;
}

body#product .product-add-to-cart button.add-to-cart:disabled {
    background: #adb5bd !important;
    background-color: #adb5bd !important;
    border-color: #adb5bd !important;
    box-shadow: none !important;
    cursor: not-allowed !important;
}

body#product .product-add-to-cart button.add-to-cart .bag-icon,
body#product .product-add-to-cart button.add-to-cart i.fa {
    font-size: 17px !important;
    color: #fff !important;
    margin: 0 !important;
}

body#product .product-add-to-cart button.add-to-cart .rcp-label {
    display: inline-block !important;
    color: #fff !important;
}

body#product .product-add-to-cart button.add-to-cart .rcp-price {
    font-weight: 800 !important;
    margin-left: auto !important;
    padding-left: 14px !important;
    border-left: 1px solid rgba(255, 255, 255, 0.45) !important;
    font-size: 16px !important;
    color: #fff !important;
    white-space: nowrap !important;
}

/* 9) CANTIDAD — eliminar cualquier botón duplicado de touchspin/plugin */
body#product .product-add-to-cart .col-add-qty .bootstrap-touchspin-down,
body#product .product-add-to-cart .col-add-qty .bootstrap-touchspin-up,
body#product .product-add-to-cart .col-add-qty .input-group-btn-vertical {
    display: none !important;
}

body#product .product-add-to-cart .col-add-qty .qty,
body#product .product-add-to-cart .col-add-qty .bootstrap-touchspin {
    display: inline-flex !important;
    align-items: stretch !important;
    border: 1px solid #dee2e6 !important;
    border-radius: 10px !important;
    overflow: hidden !important;
    background: #f8f9fa !important;
    height: 44px !important;
    width: auto !important;
    padding: 0 !important;
    box-shadow: none !important;
}

body#product .product-add-to-cart .rcp-qty-btn {
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    font-size: 18px !important;
    color: #343a40 !important;
    cursor: pointer !important;
    width: 36px !important;
    line-height: 1 !important;
    font-weight: 600 !important;
    flex: 0 0 36px !important;
    transition: background 0.15s, color 0.15s !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: none !important;
    outline: none !important;
}
body#product .product-add-to-cart .rcp-qty-btn:hover {
    background: #e9ecef !important;
    color: #0d6efd !important;
}
body#product .product-add-to-cart .rcp-qty-btn:active {
    transform: scale(0.95) !important;
}

body#product .product-add-to-cart input#quantity_wanted {
    width: 48px !important;
    max-width: 48px !important;
    min-width: 48px !important;
    text-align: center !important;
    border: none !important;
    border-left: 1px solid #dee2e6 !important;
    border-right: 1px solid #dee2e6 !important;
    background: #fff !important;
    height: 44px !important;
    font-weight: 600 !important;
    padding: 0 !important;
    border-radius: 0 !important;
    color: #212529 !important;
    font-size: 14px !important;
    box-shadow: none !important;
    -moz-appearance: textfield !important;
}
body#product .product-add-to-cart input#quantity_wanted::-webkit-inner-spin-button,
body#product .product-add-to-cart input#quantity_wanted::-webkit-outer-spin-button {
    -webkit-appearance: none !important;
    margin: 0 !important;
}

/* 10) WISHLIST + SHARE iconic buttons */
body#product .product-add-to-cart .col-add-wishlist .btn-iqitwishlist-add,
body#product .product-add-to-cart .col-add-wishlist button.btn,
body#product .product-add-to-cart .rcp-share-btn {
    background: #f8f9fa !important;
    background-color: #f8f9fa !important;
    border: 1px solid #dee2e6 !important;
    color: #343a40 !important;
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;
    min-height: 44px !important;
    max-height: 44px !important;
    border-radius: 10px !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 17px !important;
    line-height: 1 !important;
    margin: 0 !important;
    box-shadow: none !important;
    cursor: pointer !important;
    transition: background 0.15s, color 0.15s, border-color 0.15s !important;
}

body#product .product-add-to-cart .col-add-wishlist .btn-iqitwishlist-add:hover,
body#product .product-add-to-cart .rcp-share-btn:hover {
    background: #e9ecef !important;
    background-color: #e9ecef !important;
    border-color: #0d6efd !important;
    color: #0d6efd !important;
}

body#product .product-add-to-cart .col-add-wishlist .btn-iqitwishlist-add.is-added,
body#product .product-add-to-cart .col-add-wishlist .btn-iqitwishlist-add.active-wish {
    color: #dc3545 !important;
    border-color: #dc3545 !important;
    background: #fff5f5 !important;
    background-color: #fff5f5 !important;
}

body#product .product-add-to-cart .col-add-wishlist .btn-iqitwishlist-add .fa-heart-o,
body#product .product-add-to-cart .col-add-wishlist .btn-iqitwishlist-add .fa-heart {
    font-size: 17px !important;
    margin: 0 !important;
}

/* 11) Label de impuestos reubicado */
body#product .product-add-to-cart .rcp-tax-label {
    width: 100% !important;
    text-align: center !important;
    font-size: 12px !important;
    color: #6c757d !important;
    margin: 10px 0 0 0 !important;
    font-weight: 500 !important;
    display: block !important;
}
@media (min-width: 768px) {
    body#product .product-add-to-cart .rcp-tax-label {
        text-align: left !important;
    }
}

body#product .product-add-to-cart .product-minimal-quantity {
    width: 100% !important;
    text-align: center !important;
    font-size: 12px !important;
    color: #6c757d !important;
    margin: 6px 0 0 0 !important;
}

/* 12) Popover de share */
body#product .rcp-share-popover {
    position: absolute !important;
    bottom: calc(100% + 8px) !important;
    right: 0 !important;
    left: auto !important;
    background: #fff !important;
    border: 1px solid #dee2e6 !important;
    border-radius: 10px !important;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12) !important;
    padding: 8px !important;
    display: flex !important;
    gap: 6px !important;
    z-index: 1000 !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transition: opacity 0.2s, visibility 0s linear 0.2s !important;
}
body#product .rcp-share-popover.is-open {
    opacity: 1 !important;
    visibility: visible !important;
    transition: opacity 0.2s, visibility 0s linear 0s !important;
}
body#product .rcp-share-popover a {
    width: 38px !important;
    height: 38px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 8px !important;
    background: #f8f9fa !important;
    color: #343a40 !important;
    font-size: 16px !important;
    text-decoration: none !important;
    transition: background 0.15s, color 0.15s !important;
    border: none !important;
}
body#product .rcp-share-popover a:hover {
    background: #e9ecef !important;
    color: #0d6efd !important;
}

/* 13) Viewport muy pequeño (<360px) */
@media (max-width: 359px) {
    body#product .product-add-to-cart button.add-to-cart {
        font-size: 13px !important;
        padding: 12px 14px !important;
        gap: 8px !important;
    }
    body#product .product-add-to-cart button.add-to-cart .rcp-price {
        font-size: 14px !important;
        padding-left: 10px !important;
    }
    body#product .product-add-to-cart input#quantity_wanted {
        width: 40px !important;
        max-width: 40px !important;
        min-width: 40px !important;
    }
    body#product .product-add-to-cart .rcp-qty-btn {
        width: 32px !important;
        flex: 0 0 32px !important;
    }
    body#product .product-add-to-cart .col-add-wishlist .btn-iqitwishlist-add,
    body#product .product-add-to-cart .rcp-share-btn {
        width: 40px !important;
        height: 40px !important;
        min-width: 40px !important;
        max-width: 40px !important;
    }
}

/* ========== RC FIX-42 appended 1776722763 ========== */
/* ============================================================
 * RC FIX-42 — Galería producto: horizontal en TODOS los viewports
 * Main image arriba (full-width), thumbs row debajo (scroll-x)
 * ============================================================ */

/* Contenedor general */
html body#product #main .images-container.js-images-container,
html body#product #main .images-container {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    width: 100% !important;
    max-width: 100% !important;
}

/* Evitar grid en row padre cuando el tema usa row no-gutters */
html body#product #main .images-container.js-images-container .row.no-gutters {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    margin: 0 !important;
}
html body#product #main .images-container.js-images-container .col-left-product-thumbs,
html body#product #main .images-container.js-images-container .col-left-product-cover {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    width: 100% !important;
    padding: 0 !important;
}

/* Main image arriba */
html body#product #main .images-container .product-cover,
html body#product #main .images-container > .product-cover {
    order: 1 !important;
    width: 100% !important;
    max-width: 100% !important;
    flex: 1 1 auto !important;
    margin: 0 !important;
}

html body#product #main .product-cover #product-images-large,
html body#product #main .product-cover .swiper-container {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
}

html body#product #main .product-cover #product-images-large .swiper-wrapper {
    width: 100% !important;
}

html body#product #main .product-cover img {
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    border-radius: 8px !important;
}

/* Thumbs mask abajo, ancho completo, scroll horizontal */
html body#product #main .images-container .js-qv-mask,
html body#product #main .images-container > .js-qv-mask {
    order: 2 !important;
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 auto !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    height: auto !important;
    padding: 4px 0 8px !important;
    margin: 0 !important;
    -webkit-overflow-scrolling: touch !important;
}

html body#product #main .images-container .js-qv-mask::-webkit-scrollbar {
    height: 4px;
}
html body#product #main .images-container .js-qv-mask::-webkit-scrollbar-thumb {
    background: #ced4da;
    border-radius: 2px;
}

/* Thumbs swiper container */
html body#product #main #product-images-thumbs,
html body#product #main .js-qv-mask #product-images-thumbs {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
}

/* Thumbs wrapper - HORIZONTAL fila */
html body#product #main #product-images-thumbs .swiper-wrapper,
html body#product #main .js-qv-mask #product-images-thumbs .swiper-wrapper {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    gap: 8px !important;
    transform: none !important;
    width: max-content !important;
    min-width: 100% !important;
    max-width: none !important;
    height: auto !important;
    padding: 0 !important;
    justify-content: flex-start !important;
}

/* Centrar miniaturas si caben todas en el viewport */
@media (min-width: 768px) {
    html body#product #main #product-images-thumbs .swiper-wrapper {
        justify-content: center !important;
    }
}

/* Cada slide = thumb cuadrado */
html body#product #main #product-images-thumbs .swiper-slide {
    width: 72px !important;
    min-width: 72px !important;
    max-width: 72px !important;
    height: 72px !important;
    min-height: 72px !important;
    max-height: 72px !important;
    flex: 0 0 72px !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 8px !important;
    overflow: hidden !important;
    display: block !important;
}

@media (min-width: 768px) {
    html body#product #main #product-images-thumbs .swiper-slide {
        width: 84px !important;
        min-width: 84px !important;
        max-width: 84px !important;
        height: 84px !important;
        min-height: 84px !important;
        max-height: 84px !important;
        flex: 0 0 84px !important;
    }
}

/* Thumb container */
html body#product #main #product-images-thumbs .thumb-container,
html body#product #main #product-images-thumbs .js-thumb-container {
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    min-height: 0 !important;
    display: block !important;
    overflow: hidden !important;
    border: 2px solid #e0e0e0 !important;
    border-radius: 8px !important;
    background: #fff !important;
    padding: 3px !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    cursor: pointer !important;
    transition: border-color 0.2s ease !important;
}

html body#product #main #product-images-thumbs .thumb-container:hover {
    border-color: #0d6efd !important;
}

html body#product #main #product-images-thumbs .swiper-slide-thumb-active .thumb-container {
    border-color: #0d6efd !important;
    box-shadow: 0 0 0 2px rgba(13, 110, 253, 0.2) !important;
}

/* Picture dentro del thumb */
html body#product #main #product-images-thumbs picture {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    overflow: hidden !important;
    border-radius: 5px !important;
    margin: 0 !important;
}

/* Imagen dentro del thumb */
html body#product #main #product-images-thumbs .thumb-container img,
html body#product #main #product-images-thumbs picture img,
html body#product #main #product-images-thumbs img.thumb {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    min-height: 0 !important;
    object-fit: contain !important;
    border: none !important;
    border-radius: 5px !important;
    transform: none !important;
    cursor: pointer !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* Flechas del swiper de thumbs ocultas (usamos scroll nativo) */
html body#product #main .js-qv-mask .swiper-button-prev,
html body#product #main .js-qv-mask .swiper-button-next {
    display: none !important;
}

/* Flechas del main image visibles en hover */
html body#product #main .product-cover .swiper-button-prev,
html body#product #main .product-cover .swiper-button-next {
    display: flex !important;
    z-index: 10 !important;
}

/* Mobile layouts - thumbs más compactos */
@media (max-width: 575px) {
    html body#product #main #product-images-thumbs .swiper-slide {
        width: 64px !important;
        min-width: 64px !important;
        max-width: 64px !important;
        height: 64px !important;
        min-height: 64px !important;
        max-height: 64px !important;
        flex: 0 0 64px !important;
    }
}

/* ========== RC FIX-43 appended 1776725319 ========== */
/* ============================================================
 * RC FIX-43 — Compactar .product-information responsive
 * Reduce margenes, elimina duplicados, unifica spacing
 * ============================================================ */

/* 1) Eliminar duplicados */

/* Share duplicado dentro del .col-add-btn (heredado de custom.js antiguo) */
body#product .product-add-to-cart .col-add-btn .btn-custom-share,
body#product .product-add-to-cart .col-add-btn > .btn-custom-share,
body#product .product-add-to-cart .add .btn-custom-share {
    display: none !important;
}

/* Label de impuestos duplicado */
body#product .product-actions .tax-shipping-delivery-label,
body#product .product-prices .tax-shipping-delivery-label {
    display: none !important;
}

/* 2) Descripcion corta vacia */
body#product .product-information > .product-description:empty,
body#product .product-information .rte-content:empty {
    display: none !important;
}

/* 3) Product-information: spacing base */
body#product .product-information {
    font-size: 14px;
    line-height: 1.5;
}

body#product .product-actions {
    margin-top: 8px !important;
}

body#product .product-add-to-cart {
    padding-top: 0 !important;
    margin-bottom: 8px !important;
}

/* 4) Badge "Fuera de stock" - integrarlo */
body#product #product-availability.product-unavailable,
body#product .js-product-availability {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    padding: 5px 10px !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    border-radius: 6px !important;
    margin-bottom: 8px !important;
    width: fit-content !important;
}

body#product #product-availability.product-unavailable {
    background: #fef2f2 !important;
    color: #b42318 !important;
    border: 1px solid #fecdca !important;
}

body#product #product-availability .fa {
    margin: 0 !important;
    font-size: 12px !important;
}

/* 5) Tax label - compact */
body#product .product-add-to-cart .rcp-tax-label {
    margin-top: 6px !important;
    font-size: 11.5px !important;
}

/* 6) Trust bar compacto */
body#product .trust-bar-product {
    margin: 10px 0 8px !important;
    padding: 10px 12px !important;
    gap: 6px !important;
    font-size: 12px !important;
    flex-wrap: wrap !important;
    border-radius: 8px !important;
    background: #f8f9fa !important;
    border: 1px solid #e9ecef !important;
    justify-content: space-around !important;
}

body#product .trust-bar-product .trust-item {
    gap: 6px !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    white-space: nowrap !important;
}

body#product .trust-bar-product .trust-item svg {
    width: 16px !important;
    height: 16px !important;
    color: #0d6efd !important;
    flex-shrink: 0 !important;
}

@media (max-width: 479px) {
    body#product .trust-bar-product {
        padding: 8px 10px !important;
    }
    body#product .trust-bar-product .trust-item {
        font-size: 11.5px !important;
        flex-basis: auto !important;
    }
}

/* 7) PayPal checkout block - compactar */
body#product #ps-checkout-express-button {
    margin: 6px 0 !important;
    min-height: 0 !important;
}

body#product #ps_checkout-payment-method-logo-block-container {
    margin: 8px 0 !important;
    padding: 8px 10px !important;
    background: #f8f9fa !important;
    border-radius: 6px !important;
    border: 1px solid #e9ecef !important;
    font-size: 11.5px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 10px !important;
    flex-wrap: wrap !important;
}

body#product #ps_checkout-payment-method-logo-block-title {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    font-size: 11.5px !important;
    color: #495057 !important;
    margin: 0 !important;
}

body#product #ps_checkout-payment-method-logo-block-img {
    width: 14px !important;
    height: 14px !important;
}

body#product #ps_checkout-payment-method-logos-container {
    display: flex !important;
    gap: 4px !important;
    align-items: center !important;
}

body#product #ps_checkout-payment-method-logos-container .paypal-mark {
    margin: 0 !important;
    padding: 3px 6px !important;
}

body#product #ps_checkout-payment-method-logos-container .paypal-mark img {
    height: 14px !important;
}

/* 8) Email alert form compacto */
body#product .js-mailalert {
    margin: 10px 0 !important;
    padding: 10px !important;
    background: #f8f9fa !important;
    border-radius: 8px !important;
    border: 1px solid #e9ecef !important;
}

body#product .js-mailalert form {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
    align-items: stretch !important;
    margin: 0 !important;
}

body#product .js-mailalert .input-group {
    margin: 0 !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    display: flex !important;
}

body#product .js-mailalert .input-group:empty {
    display: none !important;
}

body#product .js-mailalert input[type="email"].form-control {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    padding: 8px 12px !important;
    font-size: 13px !important;
    border: 1px solid #dee2e6 !important;
    border-radius: 6px !important;
    height: 40px !important;
    box-shadow: none !important;
}

body#product .js-mailalert input[type="email"].form-control:focus {
    border-color: #0d6efd !important;
    box-shadow: 0 0 0 2px rgba(13,110,253,.15) !important;
    outline: none !important;
}

body#product .js-mailalert input[type="submit"].btn {
    padding: 8px 16px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    background: #0d6efd !important;
    border-color: #0d6efd !important;
    color: #fff !important;
    border-radius: 6px !important;
    height: 40px !important;
    white-space: nowrap !important;
    box-shadow: none !important;
}

body#product .js-mailalert input[type="submit"].btn:hover {
    background: #0b5ed7 !important;
    border-color: #0b5ed7 !important;
}

body#product .js-mailalert br {
    display: none !important;
}

@media (max-width: 479px) {
    body#product .js-mailalert form {
        flex-direction: column !important;
    }
    body#product .js-mailalert input[type="email"].form-control,
    body#product .js-mailalert input[type="submit"].btn {
        width: 100% !important;
    }
}

/* 9) Stripe express + error containers - compactar/ocultar vacios */
body#product #stripe-express-checkout-element:empty,
body#product #stripe-error-message:empty {
    display: none !important;
}

/* 10) Social-sharing / additional info wrappers */
body#product .product-additional-info {
    margin-top: 0 !important;
}

body#product .product-additional-info > .social-sharing {
    display: none !important;
}

/* 11) Accordions compactos */
body#product .iqit-accordion.mb-5,
body#product #productdaas-accordion {
    margin-top: 16px !important;
    margin-bottom: 16px !important;
}

body#product .iqit-accordion .card {
    border: 1px solid #e9ecef !important;
    border-radius: 8px !important;
    margin-bottom: 8px !important;
    background: #fff !important;
    overflow: hidden !important;
}

body#product .iqit-accordion .card .title {
    padding: 10px 14px !important;
    background: #f8f9fa !important;
    border-bottom: 1px solid #e9ecef !important;
    font-size: 13px !important;
    font-weight: 600 !important;
}

body#product .iqit-accordion .card .title a {
    color: #212529 !important;
    text-decoration: none !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
}

body#product .iqit-accordion .card .title .fa-angle-down,
body#product .iqit-accordion .card .title .fa-angle-up {
    float: none !important;
    font-size: 14px !important;
    color: #6c757d !important;
}

body#product .iqit-accordion .card .content {
    padding: 12px 14px !important;
}

body#product .iqit-accordion .card .content > .mt-4 {
    margin-top: 0 !important;
}

body#product .iqit-accordion .card .content > .mb-3 {
    margin-bottom: 0 !important;
}

/* Accordion vacio -> oculto */
body#product .iqit-accordion .card.empty-product-details .title {
    display: none !important;
}

body#product .iqit-accordion .card:empty {
    display: none !important;
}

/* 12) Product-details contenedor */
body#product #product-details {
    font-size: 13px !important;
    line-height: 1.5 !important;
}

body#product #product-details .product-reference {
    margin: 0 !important;
    padding: 6px 0 !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    font-size: 13px !important;
    border-bottom: 1px solid #f1f3f5 !important;
}

body#product #product-details .product-reference:last-child {
    border-bottom: none !important;
}

body#product #product-details .product-reference .label {
    font-weight: 600 !important;
    color: #495057 !important;
    font-size: 12px !important;
    margin: 0 !important;
    padding: 0 !important;
    min-width: 80px !important;
}

body#product #product-details .product-reference span {
    font-size: 13px !important;
    color: #212529 !important;
    font-family: ui-monospace, Menlo, Consolas, monospace !important;
}

body#product #product-details .product-out-of-stock:empty {
    display: none !important;
}

/* 13) Custom accordions */
body#product .custom-accordions-container {
    margin-top: 8px !important;
}

body#product .custom-accordion {
    border: 1px solid #e9ecef !important;
    border-radius: 8px !important;
    margin-bottom: 8px !important;
    overflow: hidden !important;
    background: #fff !important;
}

body#product .custom-accordion-header {
    padding: 10px 14px !important;
    background: #f8f9fa !important;
    border-bottom: 1px solid #e9ecef !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    color: #212529 !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    cursor: pointer !important;
}

body#product .custom-accordion-header i:first-child {
    color: #0d6efd !important;
    font-size: 13px !important;
}

body#product .custom-accordion-header .custom-accordion-arrow {
    margin-left: auto !important;
    font-size: 12px !important;
    color: #6c757d !important;
}

body#product .custom-accordion-body {
    padding: 10px 14px !important;
    font-size: 13px !important;
    line-height: 1.5 !important;
}

body#product .custom-accordion.is-empty,
body#product .custom-accordion-body p[style*="color:#888"] {
    display: none !important;
}

/* 14) Reviews compact */
body#product #iqit-reviews {
    margin-top: 0 !important;
}

body#product #iqit-reviews-top {
    margin: 0 !important;
}

body#product #iqit-reviews-top .row {
    margin: 0 !important;
}

body#product #iqitreviews-snippet {
    font-size: 13px !important;
    color: #6c757d !important;
    padding: 4px 0 !important;
}

/* 15) Product-description (contenido del accordion) */
body#product #productdaas-accordion-details .rte-content,
body#product #productdaas-accordion-details p {
    font-size: 13px !important;
    line-height: 1.6 !important;
    color: #374151 !important;
    margin: 0 0 8px 0 !important;
}

/* 16) Reducir margen general del section */
body#product #content {
    padding-bottom: 16px !important;
}

/* 17) Product info section - tighter on mobile */
@media (max-width: 767px) {
    body#product .product-information {
        padding: 0 !important;
    }
    body#product .trust-bar-product {
        padding: 8px !important;
    }
    body#product .iqit-accordion .card .title {
        padding: 8px 12px !important;
    }
    body#product .iqit-accordion .card .content {
        padding: 10px 12px !important;
    }
}

/* ========== RC FIX-44 appended 1776725546 ========== */
/* ============================================================
 * RC FIX-44 — Fuera de stock: limpiar + mostrar productos top
 * Unificar anchos del action row
 * ============================================================ */

/* 1) Ocultar PayPal/checkout y logos block cuando el producto esta out-of-stock.
 *    Los marcamos con clase en JS al inicio: body.product-oos */
body#product.product-oos #ps-checkout-express-button,
body#product.product-oos #ps_checkout-payment-method-logo-block-container,
body#product.product-oos #stripe-express-checkout-element,
body#product.product-oos #stripe-error-message {
    display: none !important;
}

/* 2) Unificar anchos del action row - tamanos consistentes */
body#product .product-add-to-cart .product-quantity.row {
    gap: 8px !important;
}

body#product .product-add-to-cart .col-add-qty,
body#product .product-add-to-cart .col-add-qty .qty,
body#product .product-add-to-cart .col-add-qty .bootstrap-touchspin {
    height: 44px !important;
    flex: 0 0 auto !important;
}

/* Ancho fijo para qty (compacto) */
body#product .product-add-to-cart .col-add-qty .bootstrap-touchspin {
    width: 128px !important;
    min-width: 128px !important;
    max-width: 128px !important;
}

body#product .product-add-to-cart .col-add-qty .rcp-qty-btn {
    width: 40px !important;
    min-width: 40px !important;
    flex: 0 0 40px !important;
}

body#product .product-add-to-cart input#quantity_wanted {
    width: 46px !important;
    min-width: 46px !important;
    max-width: 46px !important;
}

/* Iconic buttons: mismo tamano exacto */
body#product .product-add-to-cart .col-add-wishlist,
body#product .product-add-to-cart .rcp-share-col {
    flex: 0 0 44px !important;
    width: 44px !important;
    max-width: 44px !important;
    height: 44px !important;
}

body#product .product-add-to-cart .col-add-wishlist .btn-iqitwishlist-add,
body#product .product-add-to-cart .rcp-share-btn {
    width: 100% !important;
    height: 100% !important;
    min-width: 44px !important;
    max-width: 44px !important;
    min-height: 44px !important;
    max-height: 44px !important;
}

/* 3) Email alert form: mejor presentacion */
body#product.product-oos .js-mailalert {
    background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%) !important;
    border: 1px solid #bfdbfe !important;
    padding: 14px !important;
    border-radius: 10px !important;
    margin: 12px 0 !important;
}

body#product.product-oos .js-mailalert::before {
    content: "📩 Avísame cuando vuelva a estar disponible";
    display: block;
    font-size: 13px;
    font-weight: 700;
    color: #1e40af;
    margin-bottom: 10px;
}

body#product.product-oos .js-mailalert input[type="submit"].btn {
    background: #1e40af !important;
    border-color: #1e40af !important;
}

body#product.product-oos .js-mailalert input[type="submit"].btn:hover {
    background: #1e3a8a !important;
    border-color: #1e3a8a !important;
}

/* 4) Top sellers section */
.rcp-top-sellers {
    margin: 16px 0 !important;
    padding: 14px !important;
    background: #fff !important;
    border: 1px solid #e9ecef !important;
    border-radius: 10px !important;
}

.rcp-top-sellers-title {
    font-size: 14px !important;
    font-weight: 700 !important;
    margin: 0 0 12px !important;
    color: #212529 !important;
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    padding-bottom: 10px !important;
    border-bottom: 1px solid #f1f3f5 !important;
}

.rcp-top-sellers-title .rcp-fire {
    font-size: 16px;
    filter: saturate(1.4);
}

.rcp-top-sellers-grid {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 10px !important;
}

@media (min-width: 576px) {
    .rcp-top-sellers-grid {
        grid-template-columns: repeat(3, 1fr) !important;
    }
}

@media (min-width: 992px) {
    .rcp-top-sellers-grid {
        grid-template-columns: repeat(4, 1fr) !important;
    }
}

.rcp-ts-card {
    display: flex !important;
    flex-direction: column !important;
    background: #fff !important;
    border: 1px solid #f1f3f5 !important;
    border-radius: 8px !important;
    overflow: hidden !important;
    text-decoration: none !important;
    color: inherit !important;
    transition: border-color 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease !important;
    min-height: 0 !important;
}

.rcp-ts-card:hover {
    border-color: #0d6efd !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 18px rgba(13,110,253,0.15) !important;
    text-decoration: none !important;
    color: inherit !important;
}

.rcp-ts-card-img {
    aspect-ratio: 1 / 1 !important;
    width: 100% !important;
    overflow: hidden !important;
    background: #f8f9fa !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.rcp-ts-card-img img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    padding: 6px !important;
    transition: transform 0.25s ease !important;
}

.rcp-ts-card:hover .rcp-ts-card-img img {
    transform: scale(1.04) !important;
}

.rcp-ts-card-body {
    padding: 8px 10px 10px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 4px !important;
    flex: 1 !important;
}

.rcp-ts-card-title {
    font-size: 12px !important;
    font-weight: 600 !important;
    color: #212529 !important;
    line-height: 1.3 !important;
    margin: 0 !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    min-height: 2.6em !important;
}

.rcp-ts-card-price {
    font-size: 14px !important;
    font-weight: 800 !important;
    color: #0d6efd !important;
    margin-top: auto !important;
}

.rcp-ts-card-price .rcp-ts-label {
    font-size: 10px;
    font-weight: 500;
    color: #6c757d;
    display: block;
    margin-top: 2px;
}

.rcp-top-sellers-loading {
    text-align: center;
    color: #6c757d;
    font-size: 13px;
    padding: 20px;
}

.rcp-top-sellers-cta {
    display: block;
    text-align: center;
    font-size: 13px;
    font-weight: 600;
    color: #0d6efd;
    text-decoration: none;
    margin-top: 12px;
    padding: 8px;
    border-top: 1px solid #f1f3f5;
}

.rcp-top-sellers-cta:hover {
    color: #0b5ed7;
    text-decoration: none;
}

/* ========== RC FIX-48 appended 1776727944 ========== */
/* ============================================================
 * RC FIX-48 - Trustindex reviews: sin scroll + padding ajustado
 * ============================================================ */

/* Widget Elementor contenedor - reducir padding */
.elementor-widget.elementor-element-320p1nm,
.elementor-widget.elementor-element-e6v91lj {
    padding: 0 !important;
    margin: 0 !important;
}

.elementor-widget.elementor-element-320p1nm > .elementor-widget-container,
.elementor-widget.elementor-element-e6v91lj > .elementor-widget-container {
    padding: 0 !important;
    margin: 0 !important;
}

.elementor-widget-html > .elementor-widget-container {
    padding: 0 !important;
}

/* Heading de sección: solo margen inferior controlado */
.section-title,
h4.elementor-heading-title.section-title {
    margin: 0 0 16px 0 !important;
    padding: 0 !important;
}

/* Trustindex widget: fuera todo padding/margin extra */
.ti-widget {
    padding: 0 !important;
    margin: 0 !important;
}

.ti-widget-container {
    padding: 0 !important;
    margin: 0 !important;
}

.ti-reviews-container,
.ti-reviews-container-wrapper {
    padding: 0 !important;
    margin: 0 !important;
}

/* Card de reseña: ocultar cualquier scroll interno */
.ti-review-item,
.ti-review-item > .ti-inner,
.ti-review-content,
.ti-review-text-container {
    overflow: hidden !important;
    scrollbar-width: none !important;
    -ms-overflow-style: none !important;
}

.ti-review-item::-webkit-scrollbar,
.ti-review-item > .ti-inner::-webkit-scrollbar,
.ti-review-content::-webkit-scrollbar,
.ti-review-text-container::-webkit-scrollbar {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
}

/* Padding interno de la card reducido */
.ti-review-item > .ti-inner {
    padding: 16px !important;
    margin: 0 !important;
}

/* Fijar altura del contenido de la reseña sin que se vea el scroll */
.ti-review-content {
    max-height: none !important;
    overflow: hidden !important;
}

/* Botón "Leer más" sin scroll */
.ti-read-more {
    margin-top: 8px !important;
    padding: 0 !important;
}

/* Contenedor de Elementor sección - quitar padding vertical excesivo */
.elementor-section:has(.ti-widget),
.elementor-column:has(.ti-widget),
.elementor-widget-wrap:has(.ti-widget) {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/* Controles prev/next posicionados sin padding extra */
.ti-controls {
    top: 50% !important;
    transform: translateY(-50%) !important;
}

/* Controles de dots (line pager) más ajustados */
.ti-controls-line {
    margin-top: 8px !important;
    padding: 0 !important;
}

/* Responsive: más compacto en móvil */
@media (max-width: 767px) {
    .ti-review-item > .ti-inner {
        padding: 12px !important;
    }
    .section-title,
    h4.elementor-heading-title.section-title {
        margin-bottom: 10px !important;
        font-size: 18px !important;
    }
}

/* ========== RC FIX-49 appended 1776728050 ========== */
/* ============================================================
 * RC FIX-49 - Carrusel de marcas: mas grandes + responsive
 * ============================================================ */

/* Contenedor general del widget marcas */
.elementor-widget-prestashop-widget-Brands,
.elementor-widget-prestashop-widget-Brands > .elementor-widget-container {
    padding: 0 !important;
    margin: 0 !important;
}

.elementor-brands {
    padding: 12px 0 !important;
    margin: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
}

.elementor-brands-carousel-wrapper {
    padding: 0 !important;
    overflow: hidden !important;
    position: relative !important;
}

.elementor-brands-carousel.swiper-container {
    padding: 0 8px !important;
    margin: 0 !important;
    width: 100% !important;
    overflow: hidden !important;
}

/* SLIDE - ancho minimo forzado */
.elementor-brands .swiper-slide {
    min-width: 150px !important;
    width: 150px !important;
    max-width: 150px !important;
    padding: 8px !important;
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: transparent !important;
    transition: transform 0.2s ease !important;
}

.elementor-brands .swiper-slide:hover {
    transform: translateY(-3px) !important;
}

.elementor-brands .swiper-slide a {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: 110px !important;
    padding: 10px !important;
    border: 1px solid #e9ecef !important;
    border-radius: 10px !important;
    background: #fff !important;
    transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
    text-decoration: none !important;
}

.elementor-brands .swiper-slide:hover a {
    border-color: #0d6efd !important;
    box-shadow: 0 6px 16px rgba(13, 110, 253, 0.15) !important;
}

.elementor-brands .swiper-slide img {
    width: auto !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: 85px !important;
    object-fit: contain !important;
    display: block !important;
    margin: 0 auto !important;
    padding: 0 !important;
    transition: transform 0.25s ease !important;
    filter: none !important;
    mix-blend-mode: multiply !important;
}

.elementor-brands .swiper-slide:hover img {
    transform: scale(1.06) !important;
}

/* Tablet */
@media (max-width: 1199px) {
    .elementor-brands .swiper-slide {
        min-width: 130px !important;
        width: 130px !important;
        max-width: 130px !important;
    }
    .elementor-brands .swiper-slide a {
        height: 95px !important;
        padding: 8px !important;
    }
    .elementor-brands .swiper-slide img {
        max-height: 75px !important;
    }
}

/* Mobile */
@media (max-width: 767px) {
    .elementor-brands {
        padding: 8px 0 !important;
    }
    .elementor-brands .swiper-slide {
        min-width: 110px !important;
        width: 110px !important;
        max-width: 110px !important;
        padding: 6px !important;
    }
    .elementor-brands .swiper-slide a {
        height: 80px !important;
        padding: 6px !important;
        border-radius: 8px !important;
    }
    .elementor-brands .swiper-slide img {
        max-height: 65px !important;
    }
}

@media (max-width: 379px) {
    .elementor-brands .swiper-slide {
        min-width: 95px !important;
        width: 95px !important;
        max-width: 95px !important;
    }
    .elementor-brands .swiper-slide a {
        height: 70px !important;
    }
    .elementor-brands .swiper-slide img {
        max-height: 55px !important;
    }
}

/* ========== RC FIX-50 appended 1776728403 ========== */
/* ============================================================
 * RC FIX-50 - Thumbs responsive + main image fallback
 * ============================================================ */

/* Main image swiper: slides apilados con opacity/visibility para fallback */
html body#product #main #product-images-large .swiper-wrapper {
    position: relative !important;
}

html body#product #main #product-images-large .swiper-slide {
    cursor: pointer !important;
    transition: opacity 0.25s ease !important;
}

/* Thumb container: permitir borde visible + transicion suave */
html body#product #main #product-images-thumbs .swiper-slide {
    overflow: visible !important;
    cursor: pointer !important;
    transition: transform 0.15s ease !important;
}

html body#product #main #product-images-thumbs .swiper-slide:hover {
    transform: translateY(-2px) !important;
}

html body#product #main #product-images-thumbs .thumb-container {
    transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
}

html body#product #main #product-images-thumbs .thumb-container:hover {
    border-color: #0d6efd !important;
    box-shadow: 0 0 0 2px rgba(13,110,253,0.15) !important;
}

/* Thumb activo: borde azul con halo */
html body#product #main #product-images-thumbs .swiper-slide-thumb-active .thumb-container,
html body#product #main #product-images-thumbs .swiper-slide .thumb-container.is-active {
    border-color: #0d6efd !important;
    box-shadow: 0 0 0 2px rgba(13,110,253,0.25) !important;
}

/* Focus visible para accesibilidad */
html body#product #main #product-images-thumbs .swiper-slide:focus-visible {
    outline: 2px solid #0d6efd !important;
    outline-offset: 2px !important;
    border-radius: 10px !important;
}

/* Responsive: tamanos thumbs */
@media (max-width: 359px) {
    html body#product #main #product-images-thumbs .swiper-slide {
        width: 56px !important;
        min-width: 56px !important;
        max-width: 56px !important;
        height: 56px !important;
        min-height: 56px !important;
        max-height: 56px !important;
        flex: 0 0 56px !important;
    }
}

/* ========== RC FIX-52 appended 1776728967 ========== */
/* ============================================================
 * RC FIX-52 - Trustindex reviews: eliminar "Leer mas" + ver caras
 * Neutraliza FIX-48 donde ocultaba overflow y recortaba perfiles
 * ============================================================ */

/* 1) Eliminar boton "Leer mas" completamente */
.ti-widget .ti-read-more,
.ti-widget .ti-read-more-active,
.ti-widget span.ti-read-more,
.ti-review-item .ti-read-more {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    width: 0 !important;
    overflow: hidden !important;
    pointer-events: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* 2) Permitir texto completo de la reseña */
.ti-widget .ti-review-content,
.ti-widget .ti-review-text-container,
.ti-widget .ti-review-text-container.ti-review-content {
    max-height: none !important;
    height: auto !important;
    overflow: visible !important;
    display: block !important;
}

/* 3) La card ya no necesita overflow hidden en el inner */
.ti-widget .ti-review-item,
.ti-widget .ti-review-item > .ti-inner {
    overflow: visible !important;
}

/* 4) Header + foto de perfil visibles */
.ti-widget .ti-review-header {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    overflow: visible !important;
    margin-bottom: 10px !important;
    flex-wrap: nowrap !important;
}

.ti-widget .ti-profile-img {
    display: block !important;
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    min-height: 44px !important;
    max-width: 44px !important;
    max-height: 44px !important;
    border-radius: 50% !important;
    overflow: hidden !important;
    flex-shrink: 0 !important;
    visibility: visible !important;
    opacity: 1 !important;
    background: #f0f0f0 !important;
    position: relative !important;
}

.ti-widget .ti-profile-img img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    border-radius: 50% !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    max-width: 100% !important;
    max-height: 100% !important;
}

/* 5) Icono de plataforma (Google, Trustpilot, etc.) */
.ti-widget .ti-platform-icon {
    width: 20px !important;
    height: 20px !important;
    flex-shrink: 0 !important;
    display: inline-block !important;
    visibility: visible !important;
}

/* 6) Detalles del perfil (nombre + fecha) */
.ti-widget .ti-profile-details {
    flex: 1 !important;
    min-width: 0 !important;
    overflow: hidden !important;
}

.ti-widget .ti-name {
    font-weight: 600 !important;
    font-size: 14px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    line-height: 1.3 !important;
}

.ti-widget .ti-name a {
    color: inherit !important;
    text-decoration: none !important;
}

.ti-widget .ti-date {
    font-size: 12px !important;
    color: #6c757d !important;
    line-height: 1.3 !important;
    margin-top: 2px !important;
}

/* 7) Stars */
.ti-widget .ti-stars {
    margin: 6px 0 !important;
    display: block !important;
}

.ti-widget .ti-star {
    display: inline-block !important;
    width: 16px !important;
    height: 16px !important;
}

/* 8) Texto de la reseña con line-height normal, sin truncar */
.ti-widget .ti-review-content,
.ti-widget .ti-review-text-container {
    font-size: 13px !important;
    line-height: 1.5 !important;
    color: #374151 !important;
    word-break: break-word !important;
}

/* 9) Imagen adjunta de la reseña: respeta el ratio */
.ti-widget .ti-review-image {
    display: inline-block !important;
    float: right !important;
    margin: 0 0 6px 10px !important;
    max-width: 80px !important;
    border-radius: 8px !important;
    overflow: hidden !important;
    position: relative !important;
}

.ti-widget .ti-review-image img {
    max-width: 80px !important;
    height: auto !important;
    display: block !important;
    border-radius: 8px !important;
}

/* 10) Mobile: perfil un poco mas pequeno */
@media (max-width: 479px) {
    .ti-widget .ti-profile-img {
        width: 38px !important;
        height: 38px !important;
        min-width: 38px !important;
        max-width: 38px !important;
    }
    .ti-widget .ti-name {
        font-size: 13px !important;
    }
    .ti-widget .ti-review-image {
        max-width: 60px !important;
    }
    .ti-widget .ti-review-image img {
        max-width: 60px !important;
    }
}

/* ========== RC FIX-53 appended 1776729104 ========== */
/* ============================================================
 * RC FIX-53 - Marcas sin encapsulado, logos al borde
 * Sobrescribe FIX-49. Quita borde/fondo blanco de la tarjeta y
 * permite que el logo respire ocupando el espacio completo.
 * ============================================================ */

/* Slide: sin padding, logo llena todo */
.elementor-brands .swiper-slide {
    padding: 0 !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

/* Link: elimina la tarjeta blanca (borde, padding, fondo) */
.elementor-brands .swiper-slide a {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: 110px !important;
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    text-decoration: none !important;
    transition: transform 0.25s ease !important;
}

.elementor-brands .swiper-slide:hover a,
.elementor-brands .swiper-slide:focus a {
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
}

/* Imagen: llena el contenedor, sin limitacion de altura conservadora */
.elementor-brands .swiper-slide img {
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
    display: block !important;
    margin: 0 auto !important;
    padding: 4px !important;
    transition: transform 0.25s ease, filter 0.25s ease !important;
    mix-blend-mode: multiply !important;
    filter: none !important;
}

.elementor-brands .swiper-slide:hover img {
    transform: scale(1.12) !important;
}

/* Responsive - alturas del contenedor, el logo sigue llenando */
@media (max-width: 1199px) {
    .elementor-brands .swiper-slide a {
        height: 100px !important;
    }
    .elementor-brands .swiper-slide img {
        padding: 3px !important;
    }
}

@media (max-width: 767px) {
    .elementor-brands .swiper-slide a {
        height: 90px !important;
    }
    .elementor-brands .swiper-slide img {
        padding: 2px !important;
    }
}

@media (max-width: 379px) {
    .elementor-brands .swiper-slide a {
        height: 80px !important;
    }
}

/* ========== RC FIX-55 appended 1776729455 ========== */
/* ============================================================
 * RC FIX-55 - Sidecart: producto mas grande, todo mas alineado
 * Targets: iqitcart, blockcart-modal, sidecart comunes del tema Warehouse
 * ============================================================ */

/* Contenedor sidecart */
html body #iqitcart,
html body .iqitcart,
html body #blockcart-modal,
html body .blockcart-modal,
html body .iqit-sidecart,
html body .js-iqitcart {
    font-size: 15px !important;
    line-height: 1.5 !important;
}

/* Header del sidecart */
html body #iqitcart .modal-header,
html body .iqitcart .modal-header,
html body .blockcart-modal .modal-header,
html body .iqit-sidecart .modal-header,
html body .iqit-sidecart__header {
    padding: 18px 20px !important;
    border-bottom: 1px solid #e9ecef !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    background: #fff !important;
}

html body .iqit-sidecart__title,
html body #iqitcart .modal-title,
html body .iqit-sidecart h4,
html body .iqit-sidecart h5 {
    font-size: 18px !important;
    font-weight: 700 !important;
    margin: 0 !important;
    color: #111827 !important;
}

/* Body con espacio generoso */
html body #iqitcart .modal-body,
html body .iqit-sidecart__body,
html body .iqit-sidecart .modal-body {
    padding: 20px !important;
}

/* ITEM DE PRODUCTO en el sidecart */
html body .iqit-sidecart .cart-item,
html body .iqit-sidecart .cart-line-product,
html body .iqit-sidecart .product-line,
html body #iqitcart .cart-item,
html body #iqitcart .product-line,
html body .blockcart-modal .cart-item,
html body .iqit-sidecart__line,
html body .iqit-sidecart .js-cart-line {
    display: flex !important;
    align-items: flex-start !important;
    gap: 14px !important;
    padding: 16px 0 !important;
    border-bottom: 1px solid #f1f3f5 !important;
    margin: 0 !important;
}

html body .iqit-sidecart .cart-item:last-child,
html body .iqit-sidecart .product-line:last-child,
html body .iqit-sidecart__line:last-child {
    border-bottom: none !important;
}

/* IMAGEN DEL PRODUCTO - mas grande */
html body .iqit-sidecart .cart-item .product-line-grid-left,
html body .iqit-sidecart .product-line-image,
html body .iqit-sidecart .cart-image,
html body .iqit-sidecart__line-image,
html body #iqitcart .product-line-grid-left,
html body #iqitcart .cart-image,
html body .blockcart-modal .cart-image {
    flex: 0 0 96px !important;
    width: 96px !important;
    max-width: 96px !important;
    min-width: 96px !important;
    height: 96px !important;
    padding: 0 !important;
    border: 1px solid #e9ecef !important;
    border-radius: 10px !important;
    overflow: hidden !important;
    background: #fff !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

html body .iqit-sidecart .cart-item img,
html body .iqit-sidecart .product-line img,
html body .iqit-sidecart .cart-image img,
html body .iqit-sidecart__line-image img,
html body #iqitcart .product-line img,
html body .blockcart-modal .cart-image img {
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
    padding: 6px !important;
    display: block !important;
    border-radius: 8px !important;
}

/* Detalles del producto a la derecha de la imagen */
html body .iqit-sidecart .cart-item .product-line-grid-body,
html body .iqit-sidecart .product-line-body,
html body .iqit-sidecart .cart-details,
html body .iqit-sidecart__line-body,
html body #iqitcart .product-line-grid-body {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
    padding: 0 !important;
}

/* Titulo del producto */
html body .iqit-sidecart .product-line-product-name,
html body .iqit-sidecart .cart-item-name,
html body .iqit-sidecart .product-title a,
html body .iqit-sidecart__line-title,
html body .iqit-sidecart__line-title a,
html body #iqitcart .product-line-product-name {
    font-size: 14.5px !important;
    font-weight: 600 !important;
    line-height: 1.35 !important;
    color: #111827 !important;
    text-decoration: none !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    margin: 0 !important;
}

html body .iqit-sidecart .product-line-product-name:hover,
html body .iqit-sidecart__line-title a:hover {
    color: #0d6efd !important;
}

/* Referencia / variantes */
html body .iqit-sidecart .product-line-info,
html body .iqit-sidecart .cart-item-ref,
html body .iqit-sidecart__line-attributes {
    font-size: 12px !important;
    color: #6c757d !important;
    margin: 0 !important;
}

/* Precio */
html body .iqit-sidecart .product-price,
html body .iqit-sidecart .cart-item-price,
html body .iqit-sidecart__line-price,
html body .iqit-sidecart .price,
html body #iqitcart .product-price {
    font-size: 16px !important;
    font-weight: 700 !important;
    color: #0d6efd !important;
    margin: 4px 0 0 !important;
}

/* CANTIDAD + eliminar - misma linea */
html body .iqit-sidecart .product-line-actions,
html body .iqit-sidecart .cart-line-product-actions,
html body .iqit-sidecart__line-actions {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 10px !important;
    margin-top: 8px !important;
}

/* Control de cantidad */
html body .iqit-sidecart .qty,
html body .iqit-sidecart .product-quantity,
html body .iqit-sidecart .bootstrap-touchspin,
html body .iqit-sidecart__line-qty {
    display: inline-flex !important;
    align-items: stretch !important;
    border: 1px solid #dee2e6 !important;
    border-radius: 8px !important;
    overflow: hidden !important;
    height: 34px !important;
    background: #f8f9fa !important;
}

html body .iqit-sidecart .qty button,
html body .iqit-sidecart .bootstrap-touchspin-up,
html body .iqit-sidecart .bootstrap-touchspin-down,
html body .iqit-sidecart__line-qty button {
    width: 30px !important;
    height: 32px !important;
    border: none !important;
    background: transparent !important;
    color: #343a40 !important;
    font-size: 16px !important;
    line-height: 1 !important;
    cursor: pointer !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

html body .iqit-sidecart .qty input[type="number"],
html body .iqit-sidecart .qty input,
html body .iqit-sidecart__line-qty input {
    width: 40px !important;
    min-width: 40px !important;
    text-align: center !important;
    border: none !important;
    border-left: 1px solid #dee2e6 !important;
    border-right: 1px solid #dee2e6 !important;
    background: #fff !important;
    font-weight: 600 !important;
    padding: 0 !important;
    font-size: 14px !important;
    height: 32px !important;
}

/* Boton eliminar */
html body .iqit-sidecart .remove-from-cart,
html body .iqit-sidecart .cart-item-remove,
html body .iqit-sidecart__line-remove,
html body #iqitcart .remove-from-cart {
    width: 34px !important;
    height: 34px !important;
    min-width: 34px !important;
    border-radius: 8px !important;
    background: #fff !important;
    border: 1px solid #dee2e6 !important;
    color: #6c757d !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 14px !important;
    padding: 0 !important;
    transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease !important;
}

html body .iqit-sidecart .remove-from-cart:hover,
html body .iqit-sidecart .cart-item-remove:hover {
    border-color: #dc3545 !important;
    color: #dc3545 !important;
    background: #fef2f2 !important;
}

/* FOOTER del sidecart - subtotales y checkout */
html body .iqit-sidecart .modal-footer,
html body .iqit-sidecart__footer,
html body #iqitcart .modal-footer {
    padding: 18px 20px !important;
    border-top: 1px solid #e9ecef !important;
    background: #f8f9fa !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
}

/* Subtotal row */
html body .iqit-sidecart .cart-summary-line,
html body .iqit-sidecart__summary-line,
html body .iqit-sidecart .cart-subtotal {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    font-size: 14px !important;
    color: #495057 !important;
    margin: 0 !important;
}

html body .iqit-sidecart .cart-summary-line.cart-total,
html body .iqit-sidecart .total-amount,
html body .iqit-sidecart__total {
    font-size: 18px !important;
    font-weight: 800 !important;
    color: #111827 !important;
    padding-top: 10px !important;
    border-top: 1px solid #e9ecef !important;
    margin-top: 4px !important;
}

/* CTA Finalizar / Ver carrito */
html body .iqit-sidecart .cart-buttons a,
html body .iqit-sidecart .btn-primary,
html body .iqit-sidecart__footer .btn,
html body #iqitcart .btn-primary {
    width: 100% !important;
    padding: 12px 18px !important;
    border-radius: 10px !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    text-transform: none !important;
    letter-spacing: 0.01em !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    box-shadow: none !important;
}

html body .iqit-sidecart .cart-buttons a.btn-primary,
html body .iqit-sidecart .checkout .btn-primary {
    background: #0d6efd !important;
    border-color: #0d6efd !important;
    color: #fff !important;
}

html body .iqit-sidecart .cart-buttons a.btn-primary:hover {
    background: #0b5ed7 !important;
    border-color: #0b5ed7 !important;
}

html body .iqit-sidecart .cart-buttons a.btn-secondary,
html body .iqit-sidecart .btn-secondary {
    background: transparent !important;
    color: #495057 !important;
    border: 1px solid #dee2e6 !important;
}

html body .iqit-sidecart .cart-buttons a.btn-secondary:hover {
    background: #f8f9fa !important;
    color: #111827 !important;
}

/* Logo en footer del sidecart en blanco */
html body .iqit-sidecart img[alt*="Uniclima"],
html body .iqit-sidecart img[src*="uniclimasolutions"],
html body .iqit-sidecart img[src*="logo-unicilimasolutions"],
html body .iqit-sidecart .ucn-colophon__logo,
html body #iqitcart img[alt*="Uniclima"] {
    filter: brightness(0) invert(1) !important;
    max-width: 140px !important;
    width: auto !important;
    height: auto !important;
    display: block !important;
    margin: 12px auto !important;
    opacity: 0.85 !important;
}

/* Empty cart message */
html body .iqit-sidecart .cart-empty,
html body .iqit-sidecart .empty-cart-message,
html body .iqit-sidecart__empty {
    text-align: center !important;
    padding: 40px 20px !important;
    color: #6c757d !important;
    font-size: 15px !important;
}

/* Responsive: tablet y mobile */
@media (max-width: 767px) {
    html body .iqit-sidecart .cart-item,
    html body .iqit-sidecart .product-line,
    html body .iqit-sidecart__line {
        gap: 12px !important;
        padding: 14px 0 !important;
    }
    html body .iqit-sidecart .cart-item .product-line-grid-left,
    html body .iqit-sidecart .cart-image,
    html body .iqit-sidecart__line-image {
        flex: 0 0 84px !important;
        width: 84px !important;
        max-width: 84px !important;
        min-width: 84px !important;
        height: 84px !important;
    }
    html body .iqit-sidecart .product-line-product-name,
    html body .iqit-sidecart__line-title {
        font-size: 14px !important;
    }
    html body .iqit-sidecart .product-price,
    html body .iqit-sidecart__line-price {
        font-size: 15px !important;
    }
    html body .iqit-sidecart .modal-body,
    html body .iqit-sidecart__body {
        padding: 16px !important;
    }
    html body .iqit-sidecart .modal-footer,
    html body .iqit-sidecart__footer {
        padding: 14px 16px !important;
    }
}

/* ============================================================
   RC SEARCH DROPDOWN — compact card layout (2026-04-20)
   Scope: .autocomplete-suggestions + .rc-sd-* children.
   Functionality unchanged; purely cosmetic.
   ============================================================ */

/* --- container --- */
.autocomplete-suggestions.iqit-src-custom,
.autocomplete-suggestions {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    box-shadow: 0 12px 32px rgba(15, 23, 42, .12);
    overflow: hidden;
    overflow-y: auto;
    max-height: 72vh;
    max-width: 520px;
    width: 100%;
    padding: 0;
    z-index: 1100;
    scrollbar-width: thin;
    scrollbar-color: #d1d5db transparent;
    font-family: inherit;
}
.autocomplete-suggestions::-webkit-scrollbar { width: 6px; }
.autocomplete-suggestions::-webkit-scrollbar-thumb { background: #d1d5db; border-radius: 3px; }

/* --- header bar inside dropdown --- */
.rc-sd-header {
    position: sticky;
    top: 0;
    z-index: 2;
    background: #f9fafb;
    border-bottom: 1px solid #e5e7eb;
    padding: 10px 14px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    font-size: 12px;
    color: #6b7280;
    letter-spacing: .02em;
    text-transform: uppercase;
}
.rc-sd-header-left strong { color: #111827; font-weight: 700; }
.rc-sd-header-pill {
    background: #dc2626;
    color: #fff;
    font-weight: 700;
    font-size: 11px;
    padding: 4px 10px;
    border-radius: 999px;
    letter-spacing: .02em;
    white-space: nowrap;
}

/* --- override devbridge defaults on rows --- */
.autocomplete-suggestions .autocomplete-suggestion {
    padding: 0;
    border: 0;
    background: #fff;
}
.autocomplete-suggestions .autocomplete-suggestion.selected,
.autocomplete-suggestions .autocomplete-suggestion:hover {
    background: #fef2f2;
}

/* --- product row --- */
.rc-sd-item {
    display: grid;
    grid-template-columns: 60px 1fr auto;
    gap: 12px;
    align-items: center;
    padding: 12px 14px;
    border-bottom: 1px solid #f3f4f6;
    cursor: pointer;
    transition: background .15s ease;
}
.rc-sd-item:last-child { border-bottom: 0; }

.rc-sd-thumb {
    width: 60px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f9fafb;
    border: 1px solid #f3f4f6;
    border-radius: 8px;
    overflow: hidden;
    flex-shrink: 0;
}
.rc-sd-thumb-img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    background: #fff;
    display: block;
}
.rc-sd-thumb-empty { background: #f3f4f6; }

.rc-sd-body {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.rc-sd-title {
    font-size: 13.5px;
    line-height: 1.35;
    color: #111827;
    font-weight: 500;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}
.rc-sd-title-hl {
    color: #dc2626;
    font-weight: 700;
}
.rc-sd-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
}
.rc-sd-stock {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    font-weight: 600;
    padding: 3px 8px;
    border-radius: 999px;
    line-height: 1.2;
}
.rc-sd-stock-ok { color: #059669; background: #d1fae5; }
.rc-sd-stock-ko { color: #dc2626; background: #fee2e2; }
.rc-sd-stock i { font-size: 10px; }

.rc-sd-sku {
    display: inline-block;
    font-size: 11px;
    font-weight: 600;
    color: #6b7280;
    background: #f3f4f6;
    padding: 3px 8px;
    border-radius: 4px;
    letter-spacing: .02em;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}

.rc-sd-right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: space-between;
    gap: 6px;
    flex-shrink: 0;
    min-width: 72px;
}
.rc-sd-price {
    font-size: 16px;
    font-weight: 800;
    color: #111827;
    line-height: 1;
    white-space: nowrap;
}
.rc-sd-tax {
    font-size: 10px;
    color: #9ca3af;
    line-height: 1;
    margin-top: -2px;
}
.rc-sd-cta {
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    font-size: 14px;
    margin-top: 4px;
    transition: transform .15s ease, background-color .15s ease;
}
.rc-sd-cta-ok {
    background: #dc2626;
    color: #fff;
}
.rc-sd-item:hover .rc-sd-cta-ok {
    background: #b91c1c;
    transform: scale(1.05);
}
.rc-sd-cta-off {
    width: auto;
    height: auto;
    padding: 6px 10px;
    font-size: 10px;
    font-weight: 600;
    background: #e5e7eb;
    color: #9ca3af;
    white-space: nowrap;
}

/* --- "all results" row --- */
.rc-sd-all {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 12px 14px;
    background: #f9fafb;
    border-top: 1px solid #e5e7eb;
    font-weight: 700;
    color: #dc2626;
    font-size: 13px;
    cursor: pointer;
}
.rc-sd-all:hover { background: #fef2f2; }
.rc-sd-all i { font-size: 12px; }

/* --- brand / post row --- */
.rc-sd-aux {
    display: grid;
    grid-template-columns: 48px 1fr auto;
    gap: 10px;
    align-items: center;
    padding: 10px 14px;
    border-bottom: 1px solid #f3f4f6;
    cursor: pointer;
}
.rc-sd-aux-img {
    width: 48px;
    height: 48px;
    object-fit: contain;
    background: #f9fafb;
    border-radius: 6px;
    padding: 4px;
}
.rc-sd-aux-img-empty { background: #f3f4f6; }
.rc-sd-aux-name {
    font-size: 13px;
    color: #111827;
    font-weight: 500;
}
.rc-sd-aux-type {
    font-size: 10px;
    color: #9ca3af;
    text-transform: uppercase;
    letter-spacing: .04em;
    font-weight: 600;
}

/* --- legacy cleanup: hide old layout artifacts ---
   The devbridge renderer uses .row .no-gutters etc. We are taking over
   .renderItem so .autocomplete-suggestion contents are fully ours.
   Just in case any cached markup with old classes shows up, reset. */
.autocomplete-suggestions .col-shop,
.autocomplete-suggestions .product-price:not(.rc-sd-price) {
    color: inherit;
    font-weight: inherit;
    font-size: inherit;
}

/* --- responsive scale --- */
@media (max-width: 480px) {
    .autocomplete-suggestions { max-width: 100vw; max-height: 70vh; border-radius: 0; }
    .rc-sd-item { grid-template-columns: 56px 1fr auto; gap: 10px; padding: 10px 12px; }
    .rc-sd-thumb { width: 56px; height: 56px; }
    .rc-sd-title { font-size: 13px; }
    .rc-sd-price { font-size: 15px; }
    .rc-sd-cta { width: 36px; height: 36px; }
    .rc-sd-header { padding: 8px 12px; font-size: 11px; }
}
@media (min-width: 481px) and (max-width: 767px) {
    .rc-sd-item { grid-template-columns: 64px 1fr auto; }
    .rc-sd-thumb { width: 64px; height: 64px; }
    .rc-sd-title { font-size: 14px; }
    .rc-sd-price { font-size: 16px; }
}
@media (min-width: 768px) {
    .rc-sd-item { grid-template-columns: 70px 1fr auto; padding: 14px 16px; }
    .rc-sd-thumb { width: 70px; height: 70px; }
    .rc-sd-title { font-size: 14px; }
    .rc-sd-price { font-size: 17px; }
    .rc-sd-cta { width: 40px; height: 40px; }
}


/* ========== RC FIX-56 appended 1776729680 ========== */
/* ============================================================
 * RC FIX-56 - Reduce fichas reseñas y alinea todas al mismo alto
 * ============================================================ */

/* Contenedor padre: altura uniforme via flex */
.ti-widget .ti-reviews-container-wrapper,
.ti-widget .ti-reviews-container {
    align-items: stretch !important;
}

/* Cada item tiene la MISMA altura */
.ti-widget .ti-review-item {
    display: flex !important;
    height: auto !important;
    align-items: stretch !important;
}

.ti-widget .ti-review-item > .ti-inner {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    height: 260px !important;
    max-height: 260px !important;
    min-height: 260px !important;
    padding: 14px !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
    border: 1px solid #e9ecef !important;
    border-radius: 12px !important;
    background: #fff !important;
    box-shadow: 0 1px 3px rgba(0,0,0,0.04) !important;
}

/* Header compacto */
.ti-widget .ti-review-header {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    margin: 0 0 8px !important;
    flex-shrink: 0 !important;
}

.ti-widget .ti-platform-icon {
    width: 18px !important;
    height: 18px !important;
}

.ti-widget .ti-profile-img {
    width: 36px !important;
    height: 36px !important;
    min-width: 36px !important;
    min-height: 36px !important;
    max-width: 36px !important;
    max-height: 36px !important;
    border-radius: 50% !important;
    overflow: hidden !important;
    flex-shrink: 0 !important;
}

.ti-widget .ti-profile-img img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    border-radius: 50% !important;
    display: block !important;
}

.ti-widget .ti-profile-details {
    flex: 1 !important;
    min-width: 0 !important;
}

.ti-widget .ti-name {
    font-size: 13px !important;
    font-weight: 600 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    line-height: 1.25 !important;
    margin: 0 !important;
}

.ti-widget .ti-name a {
    color: inherit !important;
    text-decoration: none !important;
}

.ti-widget .ti-date {
    font-size: 11px !important;
    color: #6c757d !important;
    line-height: 1.2 !important;
    margin-top: 1px !important;
}

/* Estrellas compactas */
.ti-widget .ti-stars {
    margin: 0 0 6px !important;
    flex-shrink: 0 !important;
    display: flex !important;
    align-items: center !important;
    gap: 1px !important;
}

.ti-widget .ti-star {
    width: 14px !important;
    height: 14px !important;
}

.ti-widget .ti-verified-review {
    margin-left: 4px !important;
}

/* Texto de la reseña: ocupa resto con ellipsis multilinea */
.ti-widget .ti-review-content,
.ti-widget .ti-review-text-container {
    flex: 1 1 auto !important;
    overflow: hidden !important;
    font-size: 12.5px !important;
    line-height: 1.45 !important;
    color: #374151 !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 7 !important;
    -webkit-box-orient: vertical !important;
    text-overflow: ellipsis !important;
    word-break: break-word !important;
    margin: 0 !important;
    padding: 0 !important;
    height: auto !important;
    max-height: none !important;
}

/* Imagen adjunta MUY pequeña para no romper layout */
.ti-widget .ti-review-image {
    float: right !important;
    margin: 0 0 4px 8px !important;
    max-width: 50px !important;
    width: 50px !important;
    height: 50px !important;
    border-radius: 6px !important;
    overflow: hidden !important;
    position: relative !important;
    display: inline-block !important;
}

.ti-widget .ti-review-image img {
    width: 100% !important;
    height: 100% !important;
    max-width: 50px !important;
    max-height: 50px !important;
    object-fit: cover !important;
    display: block !important;
    border-radius: 6px !important;
}

.ti-widget .ti-more-image-count {
    position: absolute !important;
    right: 2px !important;
    bottom: 2px !important;
    background: rgba(0,0,0,0.6) !important;
    color: #fff !important;
    font-size: 9px !important;
    padding: 1px 4px !important;
    border-radius: 4px !important;
    line-height: 1.1 !important;
}

/* Botón "Leer más" ocultado definitivamente */
.ti-widget .ti-read-more,
.ti-widget .ti-read-more-active,
.ti-widget span.ti-read-more,
.ti-review-item .ti-read-more {
    display: none !important;
}

/* Slider controls ajustados a la altura nueva */
.ti-widget .ti-controls {
    top: 130px !important;
    transform: translateY(-50%) !important;
}

/* Responsive */
@media (max-width: 991px) {
    .ti-widget .ti-review-item > .ti-inner {
        height: 240px !important;
        max-height: 240px !important;
        min-height: 240px !important;
    }
    .ti-widget .ti-review-content,
    .ti-widget .ti-review-text-container {
        -webkit-line-clamp: 6 !important;
    }
}

@media (max-width: 575px) {
    .ti-widget .ti-review-item > .ti-inner {
        height: 220px !important;
        max-height: 220px !important;
        min-height: 220px !important;
        padding: 12px !important;
    }
    .ti-widget .ti-review-content,
    .ti-widget .ti-review-text-container {
        font-size: 12px !important;
        -webkit-line-clamp: 6 !important;
    }
    .ti-widget .ti-profile-img {
        width: 32px !important;
        height: 32px !important;
        min-width: 32px !important;
        max-width: 32px !important;
    }
    .ti-widget .ti-name {
        font-size: 12.5px !important;
    }
    .ti-widget .ti-review-image,
    .ti-widget .ti-review-image img {
        max-width: 42px !important;
        width: 42px !important;
        height: 42px !important;
        max-height: 42px !important;
    }
}

/* ========== RC FIX-57 appended 1776729887 ========== */
/* ============================================================
 * RC FIX-57 - Recupera caras de perfil y "globos" tipo avatar
 * Neutraliza reduccion de FIX-56 sin romper altura uniforme
 * ============================================================ */

/* Foto de perfil mas grande y visible, con anillo tipo "globo" */
.ti-widget .ti-profile-img {
    width: 46px !important;
    height: 46px !important;
    min-width: 46px !important;
    min-height: 46px !important;
    max-width: 46px !important;
    max-height: 46px !important;
    border-radius: 50% !important;
    overflow: hidden !important;
    flex-shrink: 0 !important;
    display: block !important;
    background: #f0f0f0 !important;
    position: relative !important;
    box-shadow: 0 0 0 2px #ffffff, 0 0 0 3px #e9ecef, 0 2px 6px rgba(0,0,0,0.08) !important;
    visibility: visible !important;
    opacity: 1 !important;
}

.ti-widget .ti-profile-img img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    border-radius: 50% !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    max-width: 100% !important;
    max-height: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
}

/* Icono de plataforma (Google) al lado del avatar */
.ti-widget .ti-platform-icon {
    width: 20px !important;
    height: 20px !important;
    flex-shrink: 0 !important;
    display: inline-block !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/* Header con gap generoso para que respire */
.ti-widget .ti-review-header {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    margin: 0 0 10px !important;
    flex-shrink: 0 !important;
    overflow: visible !important;
}

/* Nombre legible */
.ti-widget .ti-name {
    font-size: 13.5px !important;
    font-weight: 600 !important;
    line-height: 1.3 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    color: #111827 !important;
}

.ti-widget .ti-name a {
    color: inherit !important;
    text-decoration: none !important;
}

.ti-widget .ti-date {
    font-size: 11.5px !important;
    color: #6c757d !important;
    line-height: 1.3 !important;
    margin-top: 2px !important;
}

/* Ajustar altura para dar espacio al avatar mas grande */
.ti-widget .ti-review-item > .ti-inner {
    height: 270px !important;
    max-height: 270px !important;
    min-height: 270px !important;
}

/* Clamp del texto un punto menos para que entre todo */
.ti-widget .ti-review-content,
.ti-widget .ti-review-text-container {
    -webkit-line-clamp: 6 !important;
}

/* Controles slider re-centrar al alto nuevo */
.ti-widget .ti-controls {
    top: 135px !important;
}

/* Responsive */
@media (max-width: 991px) {
    .ti-widget .ti-review-item > .ti-inner {
        height: 250px !important;
        max-height: 250px !important;
        min-height: 250px !important;
    }
    .ti-widget .ti-controls {
        top: 125px !important;
    }
}

@media (max-width: 575px) {
    .ti-widget .ti-profile-img {
        width: 42px !important;
        height: 42px !important;
        min-width: 42px !important;
        max-width: 42px !important;
        min-height: 42px !important;
        max-height: 42px !important;
    }
    .ti-widget .ti-review-item > .ti-inner {
        height: 230px !important;
        max-height: 230px !important;
        min-height: 230px !important;
    }
    .ti-widget .ti-controls {
        top: 115px !important;
    }
}

/* ========== RC FIX-58 appended 1776730416 ========== */
/* ============================================================
 * RC FIX-58 - Foto perfil reseña: limpia, circular, nitida
 * ============================================================ */

.ti-widget .ti-profile-img {
    width: 52px !important;
    height: 52px !important;
    min-width: 52px !important;
    max-width: 52px !important;
    min-height: 52px !important;
    max-height: 52px !important;
    border-radius: 50% !important;
    overflow: hidden !important;
    flex-shrink: 0 !important;
    display: inline-block !important;
    background: #e9ecef !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 2px solid #ffffff !important;
    box-shadow: 0 0 0 1px #dee2e6, 0 2px 6px rgba(0,0,0,0.08) !important;
    position: relative !important;
    line-height: 0 !important;
    font-size: 0 !important;
}

.ti-widget .ti-profile-img > * {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
}

.ti-widget .ti-profile-img img,
.ti-widget .ti-profile-img picture,
.ti-widget .ti-profile-img picture img {
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    min-width: 100% !important;
    min-height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
    border-radius: 50% !important;
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    outline: none !important;
    background: transparent !important;
    image-rendering: auto !important;
    -webkit-mask-image: radial-gradient(circle, #fff 100%, transparent 100%) !important;
    mask-image: radial-gradient(circle, #fff 100%, transparent 100%) !important;
}

@media (max-width: 575px) {
    .ti-widget .ti-profile-img {
        width: 46px !important;
        height: 46px !important;
        min-width: 46px !important;
        max-width: 46px !important;
        min-height: 46px !important;
        max-height: 46px !important;
    }
}

/* ========== RC FIX-60 appended 1776730573 ========== */
/* ============================================================
 * RC FIX-60 - El avatar sobresale del card por diseño
 * El overflow:hidden de FIX-56 cortaba la cara por la mitad
 * Ahora permitimos overflow visible y reservamos espacio arriba
 * ============================================================ */

/* Contenedores padre: dejar visible todo */
.ti-widget,
.ti-widget-container,
.ti-reviews-container,
.ti-reviews-container-wrapper {
    overflow: visible !important;
}

/* Wrapper de review con margen superior para que el avatar no se corte
   por el contenedor padre ni por el borde superior de la seccion */
.ti-widget .ti-review-item {
    padding-top: 28px !important;
    overflow: visible !important;
}

/* Card: overflow VISIBLE para que el avatar salga por arriba,
   pero mantenemos altura y padding-top para no pisar el texto */
.ti-widget .ti-review-item > .ti-inner {
    overflow: visible !important;
    padding-top: 36px !important;
    position: relative !important;
    height: 260px !important;
    max-height: 260px !important;
    min-height: 260px !important;
}

/* El texto de la reseña SI debe tener overflow hidden para el clamp */
.ti-widget .ti-review-content,
.ti-widget .ti-review-text-container {
    overflow: hidden !important;
}

/* Avatar: centrado absoluto en el borde superior de la card */
.ti-widget .ti-profile-img {
    position: absolute !important;
    top: -28px !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    width: 56px !important;
    height: 56px !important;
    min-width: 56px !important;
    max-width: 56px !important;
    min-height: 56px !important;
    max-height: 56px !important;
    border-radius: 50% !important;
    overflow: hidden !important;
    background: #f1f3f5 !important;
    z-index: 2 !important;
    display: block !important;
    border: 3px solid #fff !important;
    box-shadow: 0 2px 8px rgba(0,0,0,0.12) !important;
    margin: 0 !important;
    padding: 0 !important;
}

.ti-widget .ti-profile-img img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    border-radius: 50% !important;
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Header: sin avatar inline (lo sacamos absolutamente) - solo nombre/fecha */
.ti-widget .ti-review-header {
    display: block !important;
    text-align: center !important;
    margin: 0 0 10px !important;
    padding: 0 !important;
    overflow: visible !important;
}

.ti-widget .ti-review-header .ti-platform-icon {
    position: absolute !important;
    top: 12px !important;
    right: 12px !important;
    width: 18px !important;
    height: 18px !important;
    display: inline-block !important;
    z-index: 2 !important;
}

.ti-widget .ti-profile-details {
    display: block !important;
    text-align: center !important;
    width: 100% !important;
    margin: 0 !important;
}

.ti-widget .ti-name {
    font-size: 14px !important;
    font-weight: 600 !important;
    color: #111827 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    line-height: 1.3 !important;
    text-align: center !important;
}

.ti-widget .ti-date {
    font-size: 12px !important;
    color: #6c757d !important;
    text-align: center !important;
    margin-top: 2px !important;
    line-height: 1.3 !important;
}

/* Estrellas centradas */
.ti-widget .ti-stars {
    text-align: center !important;
    margin: 8px 0 !important;
    display: block !important;
}

/* Texto centrado un poco */
.ti-widget .ti-review-content,
.ti-widget .ti-review-text-container {
    text-align: center !important;
    font-size: 13px !important;
    line-height: 1.5 !important;
    color: #374151 !important;
    -webkit-line-clamp: 5 !important;
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    padding: 0 8px !important;
}

/* Controles del slider re-centrar con el padding nuevo */
.ti-widget .ti-controls {
    top: 150px !important;
}

/* Responsive */
@media (max-width: 991px) {
    .ti-widget .ti-review-item > .ti-inner {
        height: 240px !important;
        max-height: 240px !important;
        min-height: 240px !important;
    }
    .ti-widget .ti-controls {
        top: 140px !important;
    }
}

@media (max-width: 575px) {
    .ti-widget .ti-profile-img {
        width: 48px !important;
        height: 48px !important;
        min-width: 48px !important;
        max-width: 48px !important;
        min-height: 48px !important;
        max-height: 48px !important;
        top: -24px !important;
    }
    .ti-widget .ti-review-item {
        padding-top: 24px !important;
    }
    .ti-widget .ti-review-item > .ti-inner {
        height: 230px !important;
        max-height: 230px !important;
        min-height: 230px !important;
        padding-top: 32px !important;
    }
    .ti-widget .ti-controls {
        top: 130px !important;
    }
    .ti-widget .ti-review-content,
    .ti-widget .ti-review-text-container {
        -webkit-line-clamp: 5 !important;
        font-size: 12.5px !important;
    }
}

/* ========================================================================
   FIX UX — Botón ADD-TO-CART ficha producto (rediseño pill equilibrado)
   Fecha: 2026-04-21
   Bug: icono pegado al borde izquierdo + "AÑADIR" y precio desalineados
        con un hueco enorme al centro (dos piezas detached).
   Fix: pill con icono 18px, label centrado (flex:1), divider |, precio
        a la derecha con padding interno equilibrado 14-18px.
   Specificity: html body#product + .btn.add-to-cart → gana sobre regla
                body#product .product-add-to-cart .rcp-price (0,3,2)
   ======================================================================== */
html body#product .product-add-to-cart button.btn.add-to-cart {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 10px !important;
    padding: 14px 18px !important;
    border-radius: 12px !important;
    box-shadow: 0 4px 14px rgba(13, 110, 253, 0.28) !important;
    overflow: hidden !important;
}

html body#product .product-add-to-cart button.btn.add-to-cart .bag-icon,
html body#product .product-add-to-cart button.btn.add-to-cart i.fa-shopping-cart {
    font-size: 18px !important;
    line-height: 1 !important;
    flex: 0 0 auto !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #fff !important;
}

html body#product .product-add-to-cart button.btn.add-to-cart .rcp-label {
    display: inline-block !important;
    flex: 1 1 auto !important;
    text-align: center !important;
    font-weight: 700 !important;
    font-size: 15px !important;
    letter-spacing: 0.04em !important;
    text-transform: uppercase !important;
    color: #fff !important;
    margin: 0 !important;
    padding: 0 8px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

html body#product .product-add-to-cart button.btn.add-to-cart .rcp-price {
    flex: 0 0 auto !important;
    margin-left: 0 !important;
    padding: 0 2px 0 14px !important;
    border-left: 1px solid rgba(255, 255, 255, 0.45) !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    color: #fff !important;
    white-space: nowrap !important;
    line-height: 1.2 !important;
}

/* Spinner no debe romper layout cuando oculto */
html body#product .product-add-to-cart button.btn.add-to-cart .spinner-icon {
    flex: 0 0 auto !important;
}

/* Mobile 375: reducir padding y font */
@media (max-width: 575px) {
    html body#product .product-add-to-cart button.btn.add-to-cart {
        padding: 12px 14px !important;
        gap: 8px !important;
    }
    html body#product .product-add-to-cart button.btn.add-to-cart .rcp-label {
        font-size: 14px !important;
        padding: 0 4px !important;
        letter-spacing: 0.02em !important;
    }
    html body#product .product-add-to-cart button.btn.add-to-cart .rcp-price {
        font-size: 15px !important;
        padding-left: 10px !important;
    }
    html body#product .product-add-to-cart button.btn.add-to-cart .bag-icon,
    html body#product .product-add-to-cart button.btn.add-to-cart i.fa-shopping-cart {
        font-size: 16px !important;
    }
}
/* ===================== FIN FIX ADD-TO-CART ===================== */

/* ========== RC FIX-61 appended 1776730931 ========== */
/* ============================================================
 * RC FIX-61 - Colores para botones de accion en ficha de producto
 * ============================================================ */

/* WISHLIST - corazon en rosa/rojo */
body#product .product-add-to-cart .col-add-wishlist .btn-iqitwishlist-add,
body#product .product-add-to-cart .col-add-wishlist button.btn {
    background: #fff !important;
    background-color: #fff !important;
    border: 1px solid #ffc2d1 !important;
    color: #e91e63 !important;
    transition: all 0.2s ease !important;
}

body#product .product-add-to-cart .col-add-wishlist .btn-iqitwishlist-add:hover,
body#product .product-add-to-cart .col-add-wishlist button.btn:hover {
    background: #fff0f6 !important;
    background-color: #fff0f6 !important;
    border-color: #e91e63 !important;
    color: #e91e63 !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 4px 10px rgba(233,30,99,0.2) !important;
}

body#product .product-add-to-cart .col-add-wishlist .btn-iqitwishlist-add.is-added,
body#product .product-add-to-cart .col-add-wishlist .btn-iqitwishlist-add.active-wish {
    background: #e91e63 !important;
    background-color: #e91e63 !important;
    border-color: #e91e63 !important;
    color: #fff !important;
}

body#product .product-add-to-cart .col-add-wishlist .btn-iqitwishlist-add .fa-heart-o,
body#product .product-add-to-cart .col-add-wishlist .btn-iqitwishlist-add .fa-heart {
    color: inherit !important;
}

/* COMPARE - verde (si existe) */
body#product .product-add-to-cart .col-add-compare .btn-iqitcompare-add {
    background: #fff !important;
    border: 1px solid #a7f3d0 !important;
    color: #10b981 !important;
}

body#product .product-add-to-cart .col-add-compare .btn-iqitcompare-add:hover {
    background: #ecfdf5 !important;
    border-color: #10b981 !important;
    color: #10b981 !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 4px 10px rgba(16,185,129,0.2) !important;
}

/* SHARE - azul corporativo */
body#product .product-add-to-cart .rcp-share-btn {
    background: #fff !important;
    background-color: #fff !important;
    border: 1px solid #bfdbfe !important;
    color: #0d6efd !important;
    transition: all 0.2s ease !important;
}

body#product .product-add-to-cart .rcp-share-btn:hover {
    background: #eff6ff !important;
    background-color: #eff6ff !important;
    border-color: #0d6efd !important;
    color: #0d6efd !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 4px 10px rgba(13,110,253,0.2) !important;
}

body#product .product-add-to-cart .rcp-share-btn i.fa {
    color: inherit !important;
}

/* QTY - acento sutil */
body#product .product-add-to-cart .col-add-qty .qty,
body#product .product-add-to-cart .col-add-qty .bootstrap-touchspin {
    background: #f8f9fa !important;
    border: 1px solid #dee2e6 !important;
    transition: border-color 0.2s ease !important;
}

body#product .product-add-to-cart .col-add-qty .qty:hover,
body#product .product-add-to-cart .col-add-qty .bootstrap-touchspin:hover,
body#product .product-add-to-cart .col-add-qty .qty:focus-within,
body#product .product-add-to-cart .col-add-qty .bootstrap-touchspin:focus-within {
    border-color: #0d6efd !important;
    background: #fff !important;
}

body#product .product-add-to-cart .rcp-qty-btn:hover {
    background: #eff6ff !important;
    color: #0d6efd !important;
}

body#product .product-add-to-cart input#quantity_wanted:focus {
    outline: none !important;
    background: #fff !important;
    color: #0d6efd !important;
}

/* BADGE "Fuera de stock" - mas vistoso con gradiente */
body#product #product-availability.product-unavailable,
body#product .js-product-availability.badge-danger {
    background: linear-gradient(135deg, #fef2f2 0%, #fee2e2 100%) !important;
    background-color: #fef2f2 !important;
    color: #b91c1c !important;
    border: 1px solid #fecaca !important;
    font-weight: 700 !important;
    letter-spacing: 0.02em !important;
    box-shadow: 0 1px 3px rgba(185,28,28,0.1) !important;
}

body#product #product-availability.product-unavailable .fa-ban {
    color: #dc2626 !important;
}

/* Badge "Disponible" (para cuando hay stock) */
body#product #product-availability.product-available,
body#product .js-product-availability.badge-success {
    background: linear-gradient(135deg, #ecfdf5 0%, #d1fae5 100%) !important;
    color: #065f46 !important;
    border: 1px solid #a7f3d0 !important;
    font-weight: 700 !important;
}

body#product #product-availability.product-available .fa,
body#product .js-product-availability.badge-success .fa {
    color: #10b981 !important;
}

/* PRECIO - mas prominente con gradiente en el boton */
body#product .product-add-to-cart button.add-to-cart,
body#product .product-add-to-cart button.add-to-cart.btn,
body#product .product-add-to-cart button.add-to-cart.btn-primary {
    background: linear-gradient(135deg, #0d6efd 0%, #0b5ed7 100%) !important;
    background-color: #0d6efd !important;
    border: none !important;
    box-shadow: 0 4px 12px rgba(13, 110, 253, 0.35) !important;
}

body#product .product-add-to-cart button.add-to-cart:hover:not(:disabled) {
    background: linear-gradient(135deg, #0b5ed7 0%, #084fbd 100%) !important;
    background-color: #0b5ed7 !important;
    box-shadow: 0 6px 18px rgba(13, 110, 253, 0.45) !important;
}

body#product .product-add-to-cart button.add-to-cart:disabled {
    background: linear-gradient(135deg, #9ca3af 0%, #6b7280 100%) !important;
    background-color: #9ca3af !important;
    box-shadow: none !important;
    opacity: 0.85 !important;
}

/* Precio dentro del boton - divisor mas visible */
body#product .product-add-to-cart button.add-to-cart .rcp-price {
    border-left: 2px solid rgba(255,255,255,0.5) !important;
    padding-left: 14px !important;
    text-shadow: 0 1px 2px rgba(0,0,0,0.1) !important;
}

/* Popover de share con acento azul */
body#product .rcp-share-popover {
    border-color: #bfdbfe !important;
    box-shadow: 0 10px 30px rgba(13,110,253,0.15) !important;
}

body#product .rcp-share-popover a.facebook,
body#product .rcp-share-popover a[href*="facebook"] {
    background: #e7f1ff !important;
    color: #1877f2 !important;
}

body#product .rcp-share-popover a.twitter,
body#product .rcp-share-popover a[href*="twitter"] {
    background: #e8f5fd !important;
    color: #1da1f2 !important;
}

body#product .rcp-share-popover a.pinterest,
body#product .rcp-share-popover a[href*="pinterest"] {
    background: #fde8e9 !important;
    color: #e60023 !important;
}

body#product .rcp-share-popover a[href*="wa.me"] {
    background: #e3f9e5 !important;
    color: #25d366 !important;
}

body#product .rcp-share-popover a:hover {
    transform: scale(1.1) !important;
    filter: brightness(1.05) !important;
}

/* ========== RC FIX-62 appended 1776731298 ========== */
/* ============================================================
 * RC FIX-62 - Estilo del boton miniatura con carrito + AÑADIR + precio
 * ============================================================ */

.product-miniature .btn.add-to-cart.mini-cart-btn,
.product-miniature button.add-to-cart.mini-cart-btn,
.product-miniature .btn-product,
.product-miniature .btn.add-to-cart {
    background: linear-gradient(135deg, #0d6efd 0%, #0b5ed7 100%) !important;
    background-color: #0d6efd !important;
    border: none !important;
    color: #fff !important;
    font-weight: 700 !important;
    font-size: 13px !important;
    letter-spacing: 0.02em !important;
    padding: 10px 14px !important;
    border-radius: 999px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    width: 100% !important;
    text-transform: uppercase !important;
    box-shadow: 0 3px 10px rgba(13,110,253,0.25) !important;
    text-decoration: none !important;
    transition: background 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease !important;
    cursor: pointer !important;
    white-space: nowrap !important;
    line-height: 1.2 !important;
}

.product-miniature .btn.add-to-cart.mini-cart-btn:hover,
.product-miniature button.add-to-cart.mini-cart-btn:hover,
.product-miniature .btn-product:hover,
.product-miniature .btn.add-to-cart:hover {
    background: linear-gradient(135deg, #0b5ed7 0%, #084fbd 100%) !important;
    background-color: #0b5ed7 !important;
    color: #fff !important;
    box-shadow: 0 6px 16px rgba(13,110,253,0.35) !important;
    transform: translateY(-1px) !important;
    text-decoration: none !important;
}

/* Icono carrito */
.product-miniature .btn.add-to-cart.mini-cart-btn .fa-shopping-cart,
.product-miniature button.add-to-cart .fa-shopping-cart,
.product-miniature .btn-product .fa-shopping-cart {
    font-size: 14px !important;
    color: #fff !important;
    margin: 0 !important;
}

/* Label "Añadir" */
.product-miniature .rc-cta-label {
    color: #fff !important;
    font-weight: 700 !important;
    letter-spacing: 0.02em !important;
    display: inline-block !important;
    padding: 0 2px !important;
}

/* Precio a la derecha, separado por divisor vertical */
.product-miniature .rc-cta-price {
    color: #fff !important;
    font-weight: 800 !important;
    font-size: 13px !important;
    padding-left: 10px !important;
    margin-left: 6px !important;
    border-left: 1px solid rgba(255,255,255,0.45) !important;
    white-space: nowrap !important;
    display: inline-block !important;
}

/* Mobile: reducir tamano pero mantener legibilidad */
@media (max-width: 575px) {
    .product-miniature .btn.add-to-cart.mini-cart-btn,
    .product-miniature button.add-to-cart.mini-cart-btn,
    .product-miniature .btn.add-to-cart {
        font-size: 12px !important;
        padding: 8px 10px !important;
        gap: 4px !important;
    }
    .product-miniature .rc-cta-price {
        font-size: 12px !important;
        padding-left: 8px !important;
        margin-left: 4px !important;
    }
    .product-miniature .btn.add-to-cart.mini-cart-btn .fa-shopping-cart {
        font-size: 12px !important;
    }
}

/* Viewport muy pequeno: precio se mantiene, todo mas compacto */
@media (max-width: 359px) {
    .product-miniature .btn.add-to-cart.mini-cart-btn,
    .product-miniature .btn.add-to-cart {
        font-size: 11.5px !important;
        padding: 7px 8px !important;
    }
    .product-miniature .rc-cta-label {
        font-size: 11px !important;
    }
    .product-miniature .rc-cta-price {
        font-size: 11.5px !important;
        padding-left: 6px !important;
    }
}

/* ================================================================
   CART DRAWER — audit fixes 2026-04-20
   - Add backdrop to close drawer on outside click
   - Raise z-index for WhatsApp widget so it doesn't cover CTAs
================================================================ */
html body #_mobile_blockcart-content.show::before,
html body #_desktop_blockcart-content.show::before {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: rgba(0, 0, 0, 0.45);
    z-index: 5000;
    pointer-events: auto;
    animation: rcCartBackdropIn 0.2s ease-out;
}
@keyframes rcCartBackdropIn {
    from { opacity: 0; }
    to { opacity: 1; }
}
html body #_mobile_blockcart-content #blockcart-content,
html body #_desktop_blockcart-content #blockcart-content {
    z-index: 5005 !important;
}
/* Hide WhatsApp widget while cart drawer is open to prevent CTA overlap */
html body.rc-cart-open .rc-wa-float,
html body.rc-cart-open .whatsapp-button,
html body.rc-cart-open [class*=whatsapp][class*=float],
html body.rc-cart-open [class*=wa-chat],
html body.rc-cart-open #chat-widget,
html body.rc-cart-open .chat-widget {
    opacity: 0 !important;
    pointer-events: none !important;
    transition: opacity 0.2s ease;
}

/* =========================================================
   RC FIX-60 (2026-04-21): mobile search 100%, hide SKU on mobile,
   recolor product card cart button red → blue
   ========================================================= */

/* 1) Mobile: search widget full width of the row */
@media (max-width: 767.98px) {
  html body #mobile-top-menu #search_widget,
  html body #mobile-header #search_widget,
  html body .mobile-header #search_widget,
  html body #search_widget {
    width: 100% !important;
    max-width: 100% !important;
    flex: 1 1 100% !important;
    margin: 0 !important;
  }
  html body #search_widget form,
  html body #search_widget .input-group {
    width: 100% !important;
    max-width: 100% !important;
  }
  html body #search_widget .form-search-control,
  html body #search_widget input[type="text"] {
    width: 100% !important;
    flex: 1 1 auto !important;
  }
  /* The column that wraps the search on mobile header */
  html body #mobile-header .col-mobile-search,
  html body #mobile-header .search-mobile-col,
  html body #mobile-header .mobile-search,
  html body .mobile-search-col {
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 8px !important;
    padding-right: 8px !important;
  }
}

/* 2) Mobile: hide SKU badge on product cards */
@media (max-width: 767.98px) {
  html body .product-miniature .product-reference,
  html body article.product-miniature .product-reference,
  html body .js-product-miniature .product-reference {
    display: none !important;
  }
}

/* 3) Product card "Add to cart" button: red → blue */
html body .product-miniature .btn.add-to-cart,
html body .product-miniature .btn-product-list.add-to-cart,
html body .product-miniature .mini-cart-btn,
html body article.product-miniature .btn.add-to-cart,
html body article.product-miniature .btn-product-list.add-to-cart {
  background: #0d6efd !important;
  background-color: #0d6efd !important;
  border-color: #0d6efd !important;
  color: #ffffff !important;
}
html body .product-miniature .btn.add-to-cart:hover,
html body .product-miniature .btn-product-list.add-to-cart:hover,
html body .product-miniature .mini-cart-btn:hover,
html body .product-miniature .btn.add-to-cart:focus,
html body .product-miniature .btn-product-list.add-to-cart:focus,
html body .product-miniature .mini-cart-btn:focus,
html body article.product-miniature .btn.add-to-cart:hover,
html body article.product-miniature .btn-product-list.add-to-cart:hover {
  background: #0b5ed7 !important;
  background-color: #0b5ed7 !important;
  border-color: #0a58ca !important;
  color: #ffffff !important;
}
/* End RC FIX-60 */

/* ============================================================
   RC FIX-63: Mi Cuenta — Login / Registro / Recovery
   Auditoría 2026-04-21 | Severidades A y M
   ============================================================ */

/* A1: Login mobile — inputs full-bleed sin padding lateral */
@media (max-width: 767px) {
  html body#authentication .login-form,
  html body#authentication #login-form {
    padding-left: 15px !important;
    padding-right: 15px !important;
  }
  html body#authentication .login-form .form-control,
  html body#authentication #login-form .form-control {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
  html body#authentication .login-form .form-group,
  html body#authentication #login-form .form-group {
    margin-bottom: 20px !important;
  }
}

/* A2: Registro + Recovery mobile — inputs h<44px, forzar 44px touch target */
@media (max-width: 767px) {
  html body#registration .form-control,
  html body#password .form-control {
    height: 44px !important;
    padding-top: 10px !important;
    padding-bottom: 10px !important;
    box-sizing: border-box !important;
  }
}

/* M1: Recovery mobile — botón CTA texto largo en 2 líneas */
@media (max-width: 767px) {
  html body#password .page-wrapper form button[type=submit],
  html body#password .form-footer button[type=submit] {
    font-size: 12px !important;
    padding: 12px 10px !important;
    line-height: 1.3 !important;
    min-height: 44px !important;
  }
}

/* M2: Registro desktop — label ancho col-md-4 corta texto */
@media (min-width: 768px) {
  html body#registration .form-wrapper .form-group .col-form-label,
  html body#registration .form-wrapper .form-group label.col-md-4 {
    word-break: break-word !important;
    white-space: normal !important;
    flex: 0 0 35% !important;
    max-width: 35% !important;
  }
  html body#registration .form-wrapper .form-group .col-md-8 {
    flex: 0 0 65% !important;
    max-width: 65% !important;
  }
}

/* M3: Recovery desktop — input email muy estrecho en layout inline */
@media (min-width: 768px) {
  html body#password .form-fields .form-group {
    display: flex !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
  }
  html body#password .form-fields .form-group label {
    flex: 0 0 auto !important;
    min-width: 200px !important;
    white-space: nowrap !important;
  }
  html body#password .form-fields .form-group input#email,
  html body#password .form-fields .form-group .col-md-6 {
    flex: 1 !important;
    min-width: 200px !important;
    width: 100% !important;
  }
}

/* ============================================================
   RC CHECKOUT RESPONSIVE AUDIT — 2026-04-21
   Fixes severidad A: touch targets checkout + carrito
   Selectores verificados en DOM real con Puppeteer
   ============================================================ */

/* FIX-A1: Bootstrap touchspin buttons en carrito — 40px alto → 44px
   Selector real: .btn.btn-touchspin.js-touchspin (generado por touchspin JS) */
@media (max-width: 991px) {
  html body .bootstrap-touchspin .btn-touchspin,
  html body .input-group.bootstrap-touchspin .btn.js-touchspin,
  html body .col.qty .btn-touchspin,
  html body .btn.btn-touchspin {
    min-height: 44px !important;
    height: 44px !important;
    min-width: 42px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
  }
}

/* FIX-A2: sc-qty-btn ancho mínimo 44px (actualmente 32px)
   El sidecart fuerza width:24px solo en #_desktop_blockcart-content .sc-qty-btn;
   en la página carrito el sidecart abierto NO tiene ese prefijo, solo .sc-qty-btn */
@media (max-width: 991px) {
  html body .sc-qty-btn:not(#_desktop_blockcart-content *):not(.blockcart-content *) {
    min-width: 44px !important;
    width: 44px !important;
    min-height: 44px !important;
    height: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 18px !important;
  }
}

/* FIX-A3: Checkout form-control inputs — mínimo 44px alto en móvil/tablet
   Evita zoom iOS (font-size < 16px causa zoom automático) */
@media (max-width: 991px) {
  html body#checkout .form-control,
  html body#checkout input.form-control,
  html body#checkout select.form-control,
  html body#checkout textarea.form-control {
    min-height: 44px !important;
    height: auto !important;
    padding-top: 10px !important;
    padding-bottom: 10px !important;
    font-size: 16px !important;
    box-sizing: border-box !important;
  }
}

/* FIX-A2b: Override de theme-cache que fuerza width:32px en sc-qty-btn
   Especificidad igualada: #blockcart-content .cart-products .sc-qty-btn
   Carga posterior al theme-cache → gana por orden de cascade */
@media (max-width: 991px) {
  html #blockcart-content .cart-products .sc-qty-btn,
  html #_mobile_blockcart-content .cart-products .sc-qty-btn,
  html #_desktop_blockcart-content .cart-products .sc-qty-btn {
    min-width: 44px !important;
    width: 44px !important;
    min-height: 44px !important;
    height: 44px !important;
  }
}
/* ============================================================
   RC FIX-64 2026-04-21: Menu móvil queda detrás en /categoria
   Root cause: FIX-32 pone `contain: layout style` + `overflow:hidden`
   en #mobile-header para body.category / body#category (tablet/mobile).
   `contain: layout` crea un nuevo containing block para descendientes
   position:fixed → el drawer se ancla al header de 60px y se corta.
   Fix: cuando el drawer está abierto (body.m-nav-open), anular
   containment y overflow SOLO durante la apertura.
   ============================================================ */
@media (max-width: 991.98px) {
  html body.m-nav-open.category #mobile-header,
  html body.m-nav-open#category #mobile-header,
  html body.m-nav-open #mobile-header {
    contain: none !important;
    overflow: visible !important;
  }
}
/* ============================================================
   RC FIX-65 2026-04-21: Buscador dropdown — quitar SKU + azul
   - Oculta la pill de SKU en cada resultado
   - Recolorea los acentos rojos (#dc2626/#b91c1c) a azul (#0d6efd)
     manteniendo el rojo solo para "sin stock" (semántico)
   - Ajuste de padding/gap tras quitar SKU para equilibrar meta row
   ============================================================ */

/* 1. OCULTAR SKU pill */
html body .autocomplete-suggestions .rc-sd-sku,
html body .rc-sd-meta .rc-sd-sku {
    display: none !important;
}

/* 2. ACCENT: header pill rojo → azul */
html body .autocomplete-suggestions .rc-sd-header-pill {
    background: #0d6efd !important;
    color: #fff !important;
    box-shadow: 0 2px 6px rgba(13, 110, 253, 0.25) !important;
}

/* 3. TITLE highlight del primer término: rojo → azul */
html body .autocomplete-suggestions .rc-sd-title-hl {
    color: #0d6efd !important;
    font-weight: 700 !important;
}

/* 4. HOVER row: tinte rojo → tinte azul */
html body .autocomplete-suggestions .autocomplete-suggestion.selected,
html body .autocomplete-suggestions .autocomplete-suggestion:hover,
html body .autocomplete-suggestions .rc-sd-item:hover,
html body .autocomplete-suggestions .rc-sd-all:hover {
    background: #eff6ff !important;
}

/* 5. CTA botón carrito: rojo → azul con gradient */
html body .autocomplete-suggestions .rc-sd-cta-ok {
    background: linear-gradient(135deg, #0d6efd 0%, #0b5ed7 100%) !important;
    color: #fff !important;
    border: 0 !important;
    box-shadow: 0 2px 8px rgba(13, 110, 253, 0.28) !important;
}
html body .autocomplete-suggestions .rc-sd-item:hover .rc-sd-cta-ok {
    background: linear-gradient(135deg, #0b5ed7 0%, #0a58ca 100%) !important;
    transform: scale(1.06) !important;
    box-shadow: 0 4px 12px rgba(13, 110, 253, 0.42) !important;
}

/* 6. "Ver todos los resultados" link: rojo → azul */
html body .autocomplete-suggestions .rc-sd-all {
    color: #0d6efd !important;
    border-top: 2px solid #eff6ff !important;
}

/* 7. Ajustes layout tras quitar SKU
   - rc-sd-meta queda solo con stock badge → centrar verticalmente */
html body .autocomplete-suggestions .rc-sd-meta {
    gap: 0 !important;
    margin-top: 2px !important;
}
html body .autocomplete-suggestions .rc-sd-body {
    gap: 5px !important;
}
/* Más aire entre filas al haber menos contenido horizontal */
html body .autocomplete-suggestions .rc-sd-item {
    padding: 13px 16px !important;
}
/* Title con un pelín más de tamaño ahora que el SKU no compite por espacio */
html body .autocomplete-suggestions .rc-sd-title {
    font-size: 14px !important;
    line-height: 1.4 !important;
    -webkit-line-clamp: 2 !important;
}
@media (min-width: 768px) {
    html body .autocomplete-suggestions .rc-sd-title {
        font-size: 14.5px !important;
    }
}

/* 8. Stock-OK badge: refinar (el verde queda OK, solo microajuste) */
html body .autocomplete-suggestions .rc-sd-stock {
    padding: 3px 9px !important;
    font-size: 11.5px !important;
}

/* 9. scrollbar thumb: neutro (ya no intenta ser rojo) */
html body .autocomplete-suggestions {
    scrollbar-color: #cbd5e1 transparent !important;
}
html body .autocomplete-suggestions::-webkit-scrollbar-thumb {
    background: #cbd5e1 !important;
}
/* ============================================================
   RC FIX-66 2026-04-21: Lupa integrada en barra de búsqueda
   - El botón pierde su "apariencia de botón" (sin bg ni borde)
   - Icono lupa azul #0d6efd posicionado DENTRO del input
   - Input con padding-right para que el texto no pise la lupa
   - Afecta a desktop (#search_widget) y móvil (#mobile-header)
   ============================================================ */

/* ---- input-group como contenedor relative para poder posicionar la lupa ---- */
html body #search_widget .input-group,
html body #header #search_widget .input-group,
html body #mobile-header form .input-group,
html body #mobile-header .input-group {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    background: transparent !important;
    border: 0 !important;
}

/* ---- Input: ancho completo + espacio para la lupa a la derecha ---- */
html body #search_widget input[type="text"],
html body #header #search_widget input[type="text"],
html body #search_widget .form-search-control,
html body #mobile-header input[type="text"].form-search-control,
html body #mobile-header input[type="text"],
html body #mobile-header form input.form-control {
    width: 100% !important;
    padding-right: 44px !important;
    padding-left: 14px !important;
    border: 1px solid #d1d5db !important;
    border-radius: 10px !important;
    background: #fff !important;
    box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.04) !important;
    transition: border-color 0.15s ease, box-shadow 0.15s ease !important;
}

html body #search_widget input[type="text"]:focus,
html body #header #search_widget input[type="text"]:focus,
html body #mobile-header input[type="text"]:focus,
html body #mobile-header input.form-control:focus {
    border-color: #0d6efd !important;
    box-shadow: 0 0 0 3px rgba(13, 110, 253, 0.15), inset 0 1px 2px rgba(15, 23, 42, 0.04) !important;
    outline: none !important;
}

/* ---- Botón submit: icono embebido, SIN aspecto de botón ---- */
html body #search_widget .search-btn,
html body #header #search_widget .search-btn,
html body #header .search-btn,
html body #mobile-header .search-btn,
html body #mobile-header button.search-btn,
html body #mobile-header button[type="submit"] {
    position: absolute !important;
    right: 4px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 8px 10px !important;
    margin: 0 !important;
    min-width: 0 !important;
    height: auto !important;
    line-height: 1 !important;
    color: #0d6efd !important;
    cursor: pointer !important;
    z-index: 2 !important;
    border-radius: 8px !important;
    transition: color 0.15s ease, background-color 0.15s ease !important;
}

html body #search_widget .search-btn:hover,
html body #header .search-btn:hover,
html body #mobile-header .search-btn:hover,
html body #mobile-header button[type="submit"]:hover {
    background: rgba(13, 110, 253, 0.08) !important;
    color: #0b5ed7 !important;
    box-shadow: none !important;
}

html body #search_widget .search-btn:focus-visible,
html body #mobile-header .search-btn:focus-visible {
    outline: 2px solid #0d6efd !important;
    outline-offset: 2px !important;
}

/* ---- Icono lupa (fa-search) ---- */
html body #search_widget .search-btn i,
html body #header .search-btn i,
html body #mobile-header .search-btn i,
html body #mobile-header button[type="submit"] i.fa-search {
    font-size: 16px !important;
    color: inherit !important;
    line-height: 1 !important;
    vertical-align: middle !important;
}

/* ---- Asegurar que no quede ningún texto "Buscar" junto al icono ---- */
html body #search_widget .search-btn span:not([class*="fa"]),
html body #mobile-header .search-btn span:not([class*="fa"]) {
    display: none !important;
}

/* ---- Eliminar cualquier div input-group-append/prepend residual ---- */
html body #search_widget .input-group-append,
html body #search_widget .input-group-prepend,
html body #mobile-header .input-group-append,
html body #mobile-header .input-group-prepend {
    display: none !important;
}

/* ---- Ajuste altura uniforme desktop ---- */
@media (min-width: 992px) {
    html body #header #search_widget input[type="text"] {
        height: 44px !important;
        min-height: 44px !important;
        font-size: 14px !important;
    }
    html body #header.header-shrunk #search_widget input[type="text"] {
        height: 36px !important;
        min-height: 36px !important;
    }
    html body #header.header-shrunk .search-btn i {
        font-size: 14px !important;
    }
}

/* ---- Móvil: input 100% con lupa a la derecha ---- */
@media (max-width: 991.98px) {
    html body #mobile-header input[type="text"].form-search-control,
    html body #mobile-header input.form-control {
        height: 42px !important;
        min-height: 42px !important;
        font-size: 14px !important;
    }
    html body #mobile-header .search-btn {
        right: 6px !important;
        padding: 7px 9px !important;
    }
    html body #mobile-header .search-btn i {
        font-size: 15px !important;
    }
}
