
/*
 * Unimart Responsive & Spanish Compatibility Fix
 * Generated for production use.
 * Goal: eliminate page-level horizontal overflow while preserving
 * intentional horizontal carousels/menus inside their own components.
 */

/* Global sizing */
html {
    width: 100%;
    max-width: 100%;
    overflow-x: clip;
    overflow-x: hidden;
}
body {
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
    overflow-x: clip;
    overflow-x: hidden;
}
*, *::before, *::after {
    box-sizing: border-box;
}

/* Media must never force the viewport wider */
img, svg, video, canvas, embed, object {
    max-width: 100%;
    height: auto;
}
iframe {
    max-width: 100%;
}
.wp-block-image,
.wp-block-video,
.wp-block-embed {
    max-width: 100%;
}
figure {
    max-width: 100%;
}
table {
    max-width: 100%;
}
pre, code {
    max-width: 100%;
}
pre {
    overflow-x: auto;
}

/* Elementor page safety */
.elementor,
.elementor-page,
.elementor-location-header,
.elementor-location-footer,
.elementor-location-single,
.elementor-location-archive {
    max-width: 100%;
    min-width: 0;
}
.elementor-element,
.elementor-widget,
.elementor-widget-container,
.elementor-container,
.elementor-column,
.elementor-inner-column,
.elementor-section,
.e-con,
.e-con-inner {
    min-width: 0;
}
.elementor-widget-container img,
.elementor-widget-image img,
.elementor-widget-video iframe {
    max-width: 100%;
}

/* Prevent accidental viewport-width overflow caused by 100vw plus scrollbar. */
.elementor-section.elementor-section-boxed,
.elementor-section.elementor-section-full_width,
.elementor-container,
.e-con {
    max-width: 100%;
}
.elementor-section.elementor-section-stretched {
    max-width: 100vw;
}

/* Common theme wrappers */
.site,
.site-content,
.site-main,
main,
header,
footer,
.container-fluid {
    max-width: 100%;
}

/* Long unbroken content */
p, h1, h2, h3, h4, h5, h6, li, a, span {
    overflow-wrap: break-word;
}
input, select, textarea, button {
    max-width: 100%;
}

/* WooCommerce product content */
.woocommerce,
.woocommerce-page,
.woocommerce .site-main,
.woocommerce-page .site-main,
.woocommerce-cart,
.woocommerce-checkout,
.woocommerce-account {
    max-width: 100%;
}
.woocommerce img {
    max-width: 100%;
    height: auto;
}
.woocommerce table.shop_table {
    width: 100%;
}
.woocommerce table.shop_table_responsive {
    overflow: hidden;
}

/* Mobile/tablet: remove common fixed-width/min-width causes. */
@media (max-width: 991.98px) {
    .container,
    .container-fluid {
        width: 100%;
        max-width: 100%;
    }

    .elementor-section,
    .elementor-container,
    .e-con,
    .e-con-inner {
        max-width: 100%;
        min-width: 0;
    }

    .elementor-section.elementor-section-boxed > .elementor-container {
        width: 100%;
    }

    .elementor-widget-text-editor,
    .elementor-widget-heading,
    .elementor-widget-button,
    .elementor-widget-icon-list,
    .elementor-widget-html {
        min-width: 0;
        max-width: 100%;
    }

    .rbt-main-wrapper,
    .rbt-section-gap,
    .rbt-section-gapTop,
    .rbt-section-gapBottom {
        max-width: 100%;
    }

    .row {
        max-width: 100%;
    }
}

/* Phones: keep controls and columns inside the viewport. */
@media (max-width: 767.98px) {
    html, body {
        width: 100%;
        max-width: 100%;
        overflow-x: hidden !important;
    }

    .elementor-column,
    .elementor-inner-column,
    .elementor-widget-wrap {
        min-width: 0;
        max-width: 100%;
    }

    .elementor-widget-container {
        max-width: 100%;
    }

    .elementor-button,
    .rbt-btn,
    button,
    input[type="submit"],
    input[type="button"] {
        max-width: 100%;
        white-space: normal;
    }

    .woocommerce table.shop_table {
        display: block;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .woocommerce table.shop_table_responsive thead {
        display: none;
    }

    .woocommerce form .form-row,
    .woocommerce form .form-row-first,
    .woocommerce form .form-row-last {
        width: 100%;
        float: none;
    }
}

/* Never allow a rogue inline width to enlarge the page. */
@media (max-width: 575.98px) {
    [style*="width: 100vw"],
    [style*="width:100vw"] {
        max-width: 100% !important;
    }

    .elementor-heading-title,
    .elementor-widget-heading .elementor-heading-title {
        max-width: 100%;
        overflow-wrap: anywhere;
    }

    .rbt-header-wrapper,
    .rbt-main-wrapper,
    .rbt-footer {
        max-width: 100%;
    }
}

/* -------------------------------------------------------------------------
 * Product/filter/mobile hardening
 * ------------------------------------------------------------------------- */

html, body, #page, #wrapper, .site, .site-content, .rbt-main-wrapper {
    max-width: 100% !important;
}

/* Prevent common fixed-width/flex children from creating viewport overflow. */
.rbt-main-wrapper *,
.woocommerce-page *,
.elementor-page * {
    min-width: 0;
}

/* Product cards: never let long titles/buttons force the parent wider. */
.rbt-product-card,
.rbt-product-card .inner,
.rbt-product-card .rbt-card-body,
.rbt-product-card .rbt-card-title,
.rbt-product-card .rbt-card-title a,
.rbt-product-card .pricing-part,
.rbt-product-card .prd-btn-grp,
.woocommerce ul.products li.product,
.woocommerce ul.products li.product a {
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: normal;
}

.rbt-product-card img,
.woocommerce ul.products li.product img {
    width: auto;
    max-width: 100%;
    height: auto;
}

/* Grouped products shown in the screenshots: convert the wide flex row into
 * a compact responsive grid on narrow screens. */
.woocommerce-grouped-product-list-item,
.unimart-grouped-cart-form,
.rbt-combined-product-list,
.rbt-combined-product-card {
    max-width: 100%;
    width: 100%;
}

.woocommerce-grouped-product-list-item .rbt-list-view-variation .inner {
    min-width: 0;
    max-width: 100%;
}

@media (max-width: 767.98px) {
    .woocommerce-grouped-product-list-item .rbt-list-view-variation.rbt-list-view-sm .inner {
        display: grid !important;
        grid-template-columns: minmax(54px, 28%) minmax(0, 1fr);
        align-items: center;
        gap: 10px;
        width: 100%;
    }

    .woocommerce-grouped-product-list-item .rbt-list-view-variation.rbt-list-view-sm .rbt-card-img {
        width: 100% !important;
        max-width: 100%;
        flex-basis: auto !important;
    }

    .woocommerce-grouped-product-list-item .rbt-list-view-variation.rbt-list-view-sm .rbt-card-body {
        width: 100% !important;
        min-width: 0;
        flex-basis: auto !important;
        overflow: hidden;
    }

    .woocommerce-grouped-product-list-item .rbt-list-view-variation.rbt-list-view-sm .rbt-card-body .left-part,
    .woocommerce-grouped-product-list-item .rbt-list-view-variation.rbt-list-view-sm .rbt-card-body .right-part {
        min-width: 0;
        max-width: 100%;
    }

    .woocommerce-grouped-product-list-item .rbt-list-view-variation.rbt-list-view-sm .pricing-part {
        min-width: 0;
        max-width: 100%;
        overflow-wrap: anywhere;
    }

    .woocommerce-grouped-product-list-item .rbt-qty-area {
        grid-column: 1 / -1;
        width: 100%;
        max-width: 100%;
        justify-content: center !important;
    }

    .woocommerce-grouped-product-list-item .rbt-qty-area input.qty,
    .woocommerce-grouped-product-list-item .rbt-qty-area .items-qty-input {
        min-width: 42px;
        max-width: 80px;
    }

    .unimart-grouped-cart-actions .button,
    .unimart-grouped-cart-actions .rbt-btn {
        width: 100%;
        max-width: 100%;
    }

    /* Product details tables/metadata become stacked instead of overflowing. */
    .rbt-single-product-area table,
    .rbt-single-product-area .woocommerce-product-attributes,
    .woocommerce div.product form.cart table,
    .woocommerce div.product form.cart .variations {
        width: 100% !important;
        max-width: 100% !important;
    }

    .woocommerce div.product form.cart .variations,
    .woocommerce div.product form.cart .variations tbody,
    .woocommerce div.product form.cart .variations tr,
    .woocommerce div.product form.cart .variations td {
        display: block;
    }

    .woocommerce div.product form.cart .variations td.value {
        padding-left: 0;
        padding-right: 0;
    }

    /* Related/cross-sell boxes must not create a second horizontal scrollbar. */
    .rbt-similar-items-section,
    .rbt-similar-items-section .rbt-fshape-box-outline-style,
    .rbt-similar-items-section .rbt-component-area,
    .rbt-fashion-prd-card-activation-2-container,
    .rbt-fashion-prd-card-activation-2-container .swiper {
        max-width: 100%;
    }

    .rbt-similar-items-section .row,
    .rbt-similar-items-section [class*="col-"] {
        min-width: 0;
    }

    /* Keep carousel controls inside the viewport. The carousel itself remains
     * swipeable; the document never gains horizontal scroll. */
    .swiper,
    .swiper-wrapper,
    .swiper-slide {
        max-width: 100%;
    }

    /* Price filter: compact two-field layout and full-width action. */
    .rbt-sidebar input[type="number"],
    .rbt-sidebar input[name*="min" i],
    .rbt-sidebar input[name*="max" i],
    .rbt-sidebar input[placeholder*="Min" i],
    .rbt-sidebar input[placeholder*="Max" i] {
        max-width: 100%;
    }

    .rbt-sidebar button,
    .rbt-sidebar input[type="submit"],
    .rbt-sidebar input[type="button"] {
        max-width: 100%;
    }
}

@media (max-width: 575.98px) {
    /* Never use viewport-sized children inside a narrow mobile layout. */
    [style*="100vw"],
    .elementor-section.elementor-section-boxed > .elementor-container,
    .elementor-container,
    .elementor-widget-wrap {
        max-width: 100% !important;
    }

    .elementor-section,
    .elementor-container,
    .elementor-column,
    .elementor-widget-wrap,
    .rbt-container,
    .container,
    .container-fluid {
        width: 100%;
    }

    .rbt-component-section-title,
    .rbt-component-section-title .rbt-title,
    .rbt-component-section-title .rbt-link {
        max-width: 100%;
        overflow-wrap: anywhere;
    }

    /* Prevent a long button label from forcing a product card wider. */
    .rbt-btn,
    .rbt-link,
    .button,
    button,
    input[type="submit"] {
        white-space: normal;
        overflow-wrap: anywhere;
    }
}

/* Raw shortcode output should never be visible if an optional module is absent. */
.woocommerce .unimart-shortcode-fallback {
    display: none;
}


/* -------------------------------------------------------------------------
 * FINAL SHOP VIEWPORT HARDENING
 * The shop archive must occupy the complete available viewport at every
 * breakpoint. Some theme/container presets can retain a desktop max-width
 * or a reduced grid width on mobile/tablet. These rules are scoped to the
 * WooCommerce shop so Elementor and other pages keep their original layout.
 * ------------------------------------------------------------------------- */

/* Shop page root: always use the complete available content width. */
.rbt-shop-filter-area,
.rbt-shop-filter-area > .container,
.rbt-shop-filter-area > .container-fluid,
.rbt-shop-filter-area > .rbt-fullwidth-wrapper,
.rbt-shop-filter-area .rbt-store-sort-control-area-parent,
.rbt-shop-filter-area .rbt-store-sort-control-area,
.rbt-shop-filter-area .rbt-store-sort-control-area > [class*="col-"],
.rbt-shop-filter-area .rbt-store-sort-control-area-parent > .row,
.rbt-shop-filter-area .rbt-store-sort-control-area-parent .row {
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

/* Do not let Bootstrap/theme horizontal gutters turn into a reduced
 * fixed-width shopping canvas. */
.rbt-shop-filter-area > .container,
.rbt-shop-filter-area > .container-fluid,
.rbt-shop-filter-area > .rbt-fullwidth-wrapper {
    margin-left: auto;
    margin-right: auto;
}

/* The product loop itself is allowed to use the entire shop content column. */
.rbt-shop-filter-area .woocommerce,
.rbt-shop-filter-area .products,
.rbt-shop-filter-area ul.products,
.rbt-shop-filter-area .woocommerce-pagination {
    max-width: 100%;
    min-width: 0;
}

/* At tablet and phone widths, force the archive content to 100%.
 * This also handles customizer previews whose iframe width differs from
 * the physical device width. */
@media (max-width: 1199.98px) {
    .rbt-shop-filter-area > .container,
    .rbt-shop-filter-area > .container-fluid,
    .rbt-shop-filter-area > .rbt-fullwidth-wrapper {
        width: 100% !important;
        max-width: 100% !important;
        padding-left: clamp(12px, 2.5vw, 24px);
        padding-right: clamp(12px, 2.5vw, 24px);
    }

    .rbt-shop-filter-area > .container > .row,
    .rbt-shop-filter-area > .container-fluid > .row,
    .rbt-shop-filter-area > .rbt-fullwidth-wrapper > .row {
        width: 100%;
        max-width: 100%;
        margin-left: 0;
        margin-right: 0;
    }

    .rbt-shop-filter-area .rbt-store-sort-control-area-parent,
    .rbt-shop-filter-area .rbt-store-sort-control-area {
        width: 100% !important;
        max-width: 100% !important;
    }
}

/* Tablet: preserve two product columns where configured, but make the
 * product grid itself span the complete shop width. */
@media (min-width: 768px) and (max-width: 1199.98px) {
    .rbt-shop-filter-area .rbt-store-sort-control-area > .col-md-12,
    .rbt-shop-filter-area .rbt-store-sort-control-area > .col-12 {
        width: 100%;
        max-width: 100%;
    }

    .rbt-shop-filter-area .rbt-store-sort-control-area .row {
        width: 100%;
        max-width: 100%;
    }
}

/* Phones: eliminate the reduced desktop/shop canvas. */
@media (max-width: 767.98px) {
    .rbt-shop-filter-area {
        width: 100vw !important;
        max-width: 100vw !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .rbt-shop-filter-area > .container,
    .rbt-shop-filter-area > .container-fluid,
    .rbt-shop-filter-area > .rbt-fullwidth-wrapper {
        width: 100% !important;
        max-width: 100% !important;
        padding-left: 12px !important;
        padding-right: 12px !important;
    }

    .rbt-shop-filter-area .row,
    .rbt-shop-filter-area .rbt-store-sort-control-area,
    .rbt-shop-filter-area .rbt-store-sort-control-area-parent {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    /* Prevent the product grid from inheriting a narrower parent. */
    .rbt-shop-filter-area .rbt-store-sort-control-area > .col-12,
    .rbt-shop-filter-area .rbt-store-sort-control-area > .col-sm-12,
    .rbt-shop-filter-area .rbt-store-sort-control-area > .col-md-12 {
        flex: 0 0 100% !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    /* Product cards stay in the configured two-column mobile grid but each
     * column is calculated from the full viewport width. */
    .rbt-shop-filter-area .rbt-store-sort-control-area .products,
    .rbt-shop-filter-area .rbt-store-sort-control-area ul.products {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    /* Long controls never create a hidden third dimension. */
    .rbt-shop-filter-area select,
    .rbt-shop-filter-area input,
    .rbt-shop-filter-area button,
    .rbt-shop-filter-area .select2-container,
    .rbt-shop-filter-area .select2-selection {
        max-width: 100%;
    }
}

/* Very small phones: use tighter gutters while preserving full width. */
@media (max-width: 390px) {
    .rbt-shop-filter-area > .container,
    .rbt-shop-filter-area > .container-fluid,
    .rbt-shop-filter-area > .rbt-fullwidth-wrapper {
        padding-left: 8px !important;
        padding-right: 8px !important;
    }
}

/* Landscape phones / small tablets: do not reintroduce a desktop
 * max-width simply because the viewport crossed a Bootstrap breakpoint. */
@media (min-width: 576px) and (max-width: 991.98px) {
    .rbt-shop-filter-area > .container,
    .rbt-shop-filter-area > .container-fluid,
    .rbt-shop-filter-area > .rbt-fullwidth-wrapper {
        width: 100% !important;
        max-width: 100% !important;
    }
}


/* -------------------------------------------------------------------------
 * FINAL FULL-WIDTH SHOP FIX
 * The original theme inherits Bootstrap's .container max-widths (540px
 * between 576px and 767px). That leaves unused space on phones/tablets and
 * makes the shop look narrower than the actual viewport. Scope the override
 * to the WooCommerce shop/archive so the rest of the theme keeps its normal
 * design widths.
 * ------------------------------------------------------------------------- */

.rbt-shop-filter-area,
.rbt-shop-filter-area .container,
.rbt-shop-filter-area .container-fluid,
.rbt-shop-filter-area .rbt-store-sort-control-area-parent,
.rbt-shop-filter-area .rbt-store-sort-control-area,
.rbt-shop-filter-area .rbt-filterproduct-row,
.rbt-shop-filter-area .woocommerce {
    box-sizing: border-box !important;
    min-width: 0 !important;
}

/* Mobile + tablet: the store itself must use the complete available viewport. */
@media (max-width: 1199.98px) {
    .rbt-shop-filter-area {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    .rbt-shop-filter-area > .container,
    .rbt-shop-filter-area > .container-fluid,
    .rbt-shop-filter-area > .rbt-fullwidth-wrapper,
    .rbt-shop-filter-area .container,
    .rbt-shop-filter-area .container-fluid {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding-left: clamp(10px, 2.5vw, 24px) !important;
        padding-right: clamp(10px, 2.5vw, 24px) !important;
    }

    .rbt-shop-filter-area > .container > .row,
    .rbt-shop-filter-area > .container-fluid > .row,
    .rbt-shop-filter-area .container > .row,
    .rbt-shop-filter-area .container-fluid > .row,
    .rbt-shop-filter-area .rbt-store-sort-control-area-parent,
    .rbt-shop-filter-area .rbt-store-sort-control-area,
    .rbt-shop-filter-area .rbt-filterproduct-row {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    /* Bootstrap/theme column widths must not retain desktop sidebars on
       phone/tablet. */
    .rbt-shop-filter-area > .container > .row > .col-lg-9,
    .rbt-shop-filter-area > .container > .row > .col-md-12,
    .rbt-shop-filter-area > .container > .row > .col-sm-12,
    .rbt-shop-filter-area > .container > .row > .col-12,
    .rbt-shop-filter-area .rbt-store-sort-control-area > .col-lg-9,
    .rbt-shop-filter-area .rbt-store-sort-control-area > .col-md-12,
    .rbt-shop-filter-area .rbt-store-sort-control-area > .col-sm-12,
    .rbt-shop-filter-area .rbt-store-sort-control-area > .col-12 {
        min-width: 0 !important;
    }
}

/* Phones: remove every remaining Bootstrap max-width on the shop canvas. */
@media (max-width: 767.98px) {
    .rbt-shop-filter-area .container,
    .rbt-shop-filter-area .container-fluid,
    .rbt-shop-filter-area .rbt-sm-wider-container,
    .rbt-shop-filter-area .rbt-md-wrapper,
    .rbt-shop-filter-area .rbt-store-sort-control-area-parent,
    .rbt-shop-filter-area .rbt-store-sort-control-area,
    .rbt-shop-filter-area .rbt-filterproduct-row {
        width: 100% !important;
        max-width: none !important;
        min-width: 0 !important;
    }

    .rbt-shop-filter-area .row {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        --bs-gutter-x: 0px;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    .rbt-shop-filter-area ul.products,
    .rbt-shop-filter-area .products {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    /* Product grid: two columns on phones when the theme requests col-3,
       with each column calculated from the full shop width. */
    .rbt-shop-filter-area ul.products > [class*="col-"] {
        min-width: 0 !important;
        max-width: 50% !important;
    }

    .rbt-shop-filter-area .rbt-product-card,
    .rbt-shop-filter-area .rbt-product-card .inner {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }
}

/* Very small phones: retain two cards without horizontal overflow. */
@media (max-width: 390px) {
    .rbt-shop-filter-area > .container,
    .rbt-shop-filter-area > .container-fluid,
    .rbt-shop-filter-area .container,
    .rbt-shop-filter-area .container-fluid {
        padding-left: 6px !important;
        padding-right: 6px !important;
    }

    .rbt-shop-filter-area ul.products > [class*="col-"] {
        max-width: 50% !important;
    }
}

/* Tablets: full width, with comfortable gutters. */
@media (min-width: 768px) and (max-width: 1199.98px) {
    .rbt-shop-filter-area > .container,
    .rbt-shop-filter-area > .container-fluid,
    .rbt-shop-filter-area .container,
    .rbt-shop-filter-area .container-fluid {
        width: 100% !important;
        max-width: 100% !important;
        padding-left: 20px !important;
        padding-right: 20px !important;
    }

    .rbt-shop-filter-area ul.products > [class*="col-"] {
        min-width: 0 !important;
    }
}

/* Desktop: keep the shop fluid while preserving safe side gutters. */
@media (min-width: 1200px) {
    .rbt-shop-filter-area > .container,
    .rbt-shop-filter-area > .container-fluid {
        width: 100% !important;
        max-width: 100% !important;
        padding-left: clamp(20px, 3vw, 48px) !important;
        padding-right: clamp(20px, 3vw, 48px) !important;
    }
}


/* -------------------------------------------------------------------------
 * FINAL MOBILE SHOP / PRODUCT UX FIXES
 * ------------------------------------------------------------------------- */

/* The global preloader must never occupy space inside the sorting/filter bar.
 * This also protects older cached markup that may still render it there. */
.rbt-shop-filter-area .rbt-store-sort-control-area > .rbt-preloader,
.rbt-shop-filter-area .rbt-store-sort-control-area-parent > .rbt-preloader,
.rbt-shop-filter-area .rbt-filterproduct-row > .rbt-preloader {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    min-width: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Shop controls must wrap instead of competing for one horizontal line. */
.rbt-shop-filter-area .rbt-filterproduct-row {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

.rbt-shop-filter-area .rbt-filterproduct-row > * {
    min-width: 0 !important;
    max-width: 100% !important;
}

/* Native/Select2 sorting controls stay inside the viewport. */
.rbt-shop-filter-area select.orderby,
.rbt-shop-filter-area .orderby,
.rbt-shop-filter-area .select2-container,
.rbt-shop-filter-area .select2-selection,
.rbt-shop-filter-area .select2-dropdown,
.rbt-shop-filter-area .select2-results {
    max-width: 100% !important;
    box-sizing: border-box !important;
}

.rbt-shop-filter-area .select2-dropdown {
    overflow: hidden;
}

.rbt-shop-filter-area .select2-results__option {
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
}

/* The product tabs were using desktop/no-wrap behavior and could overlap
 * on narrow screens. Make the tab navigation fluid and wrap safely. */
.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product .woocommerce-tabs .wc-tabs-wrapper,
.woocommerce div.product .woocommerce-tabs .woocommerce-tabs,
.woocommerce div.product .woocommerce-tabs ul.tabs {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    overflow: visible !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs::after {
    display: none !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
    float: none !important;
    position: relative !important;
    display: flex !important;
    flex: 1 1 auto !important;
    align-items: stretch !important;
    justify-content: center !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    text-align: center !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
    line-height: 1.3 !important;
}

.woocommerce div.product .woocommerce-tabs .woocommerce-Tabs-panel,
.woocommerce div.product .woocommerce-tabs .panel {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    overflow-wrap: anywhere !important;
}

/* Product content itself never becomes wider than the viewport. */
.single-product .site-content,
.single-product .rbt-single-product-area,
.single-product .rbt-single-product-area .container,
.single-product .rbt-single-product-area .container-fluid,
.single-product .rbt-single-product-area .row,
.single-product .rbt-single-product-area [class*="col-"] {
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

.single-product .rbt-single-product-area img,
.single-product .rbt-single-product-area video,
.single-product .rbt-single-product-area iframe {
    max-width: 100% !important;
    height: auto;
}

/* Mobile product page: tabs become a clean 2-column grid so long labels
 * never sit on top of each other. */
@media (max-width: 767.98px) {
    .woocommerce div.product .woocommerce-tabs ul.tabs {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        width: 100% !important;
    }

    .woocommerce div.product .woocommerce-tabs ul.tabs li {
        width: 100% !important;
        flex: none !important;
    }

    .woocommerce div.product .woocommerce-tabs ul.tabs li a {
        min-height: 46px;
        padding: 10px 8px !important;
        font-size: 14px !important;
    }

    .rbt-shop-filter-area .rbt-filterproduct-row {
        row-gap: 10px !important;
    }

    .rbt-shop-filter-area .woocommerce-ordering,
    .rbt-shop-filter-area .woocommerce-result-count,
    .rbt-shop-filter-area .rbt-store-sort-control-area > * {
        max-width: 100% !important;
        min-width: 0 !important;
    }

    .rbt-shop-filter-area .woocommerce-ordering {
        width: 100% !important;
        float: none !important;
        margin: 0 !important;
    }

    .rbt-shop-filter-area .woocommerce-ordering select,
    .rbt-shop-filter-area .woocommerce-ordering .select2-container {
        width: 100% !important;
        max-width: 100% !important;
    }

    /* Dropdown panels created by theme/plugin JS must remain inside the
       viewport; long option labels wrap rather than enlarging the page. */
    .rbt-shop-filter-area [role="listbox"],
    .rbt-shop-filter-area .dropdown-menu,
    .rbt-shop-filter-area .rbt-dropdown-menu,
    .rbt-shop-filter-area .nice-select .list {
        max-width: calc(100vw - 20px) !important;
        width: min(100%, calc(100vw - 20px)) !important;
        box-sizing: border-box !important;
        overflow-x: hidden !important;
    }

    .rbt-shop-filter-area [role="option"],
    .rbt-shop-filter-area .dropdown-menu li,
    .rbt-shop-filter-area .rbt-dropdown-menu li,
    .rbt-shop-filter-area .nice-select .option {
        white-space: normal !important;
        overflow-wrap: anywhere !important;
        word-break: normal !important;
        line-height: 1.35 !important;
    }

    html, body {
        overflow-x: hidden !important;
        max-width: 100% !important;
    }
}

/* Extra-small phones: one tab per row is preferable to any overlap. */
@media (max-width: 380px) {
    .woocommerce div.product .woocommerce-tabs ul.tabs {
        grid-template-columns: 1fr !important;
    }

    .woocommerce div.product .woocommerce-tabs ul.tabs li a {
        min-height: 42px;
    }
}

/* Tablet: tabs may use multiple columns but always wrap. */
@media (min-width: 768px) and (max-width: 1199.98px) {
    .woocommerce div.product .woocommerce-tabs ul.tabs {
        flex-wrap: wrap !important;
    }

    .woocommerce div.product .woocommerce-tabs ul.tabs li {
        flex: 1 1 180px !important;
    }
}

/* -------------------------------------------------------------------------
 * Mobile search bar hardening
 * ------------------------------------------------------------------------- */
.rbt-search-dropdown .rbt-search-form,
.header-ajax-search-modifire .rbt-search-form,
.sticky-ajax-seach-modifire .rbt-search-form {
    display: flex !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    align-items: center !important;
    gap: 12px !important;
}

.rbt-search-dropdown .rbt-search-form .input-sectition,
.header-ajax-search-modifire .rbt-search-form .input-sectition,
.sticky-ajax-seach-modifire .rbt-search-form .input-sectition {
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    margin-right: 0 !important;
}

.rbt-search-dropdown .rbt-search-form .search-input,
.header-ajax-search-modifire .rbt-search-form .search-input,
.sticky-ajax-seach-modifire .rbt-search-form .search-input {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    white-space: nowrap !important;
    text-overflow: ellipsis !important;
}

.rbt-search-dropdown .rbt-search-form .submit-btn,
.header-ajax-search-modifire .rbt-search-form .submit-btn,
.sticky-ajax-seach-modifire .rbt-search-form .submit-btn {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 120px !important;
    max-width: none !important;
    margin: 0 !important;
}

.rbt-search-dropdown .rbt-search-form .search-submit-btn,
.header-ajax-search-modifire .rbt-search-form .search-submit-btn,
.sticky-ajax-seach-modifire .rbt-search-form .search-submit-btn {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-width: 120px !important;
    max-width: none !important;
    min-height: 48px !important;
    padding: 10px 18px !important;
    white-space: nowrap !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    line-height: 1.2 !important;
    text-align: center !important;
}

@media (max-width: 767.98px) {
    .rbt-search-dropdown .wrapper,
    .header-ajax-search-modifire .wrapper,
    .sticky-ajax-seach-modifire .wrapper {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        padding-left: 16px !important;
        padding-right: 16px !important;
        box-sizing: border-box !important;
    }

    .rbt-search-dropdown .rbt-search-form,
    .header-ajax-search-modifire .rbt-search-form,
    .sticky-ajax-seach-modifire .rbt-search-form {
        gap: 10px !important;
    }

    .rbt-search-dropdown .rbt-search-form .submit-btn,
    .header-ajax-search-modifire .rbt-search-form .submit-btn,
    .sticky-ajax-seach-modifire .rbt-search-form .submit-btn {
        min-width: 112px !important;
    }

    .rbt-search-dropdown .rbt-search-form .search-submit-btn,
    .header-ajax-search-modifire .rbt-search-form .search-submit-btn,
    .sticky-ajax-seach-modifire .rbt-search-form .search-submit-btn {
        min-width: 112px !important;
        padding-left: 14px !important;
        padding-right: 14px !important;
        font-size: 16px !important;
    }
}

@media (max-width: 380px) {
    .rbt-search-dropdown .rbt-search-form,
    .header-ajax-search-modifire .rbt-search-form,
    .sticky-ajax-seach-modifire .rbt-search-form {
        gap: 8px !important;
    }

    .rbt-search-dropdown .rbt-search-form .submit-btn,
    .header-ajax-search-modifire .rbt-search-form .submit-btn,
    .sticky-ajax-seach-modifire .rbt-search-form .submit-btn,
    .rbt-search-dropdown .rbt-search-form .search-submit-btn,
    .header-ajax-search-modifire .rbt-search-form .search-submit-btn,
    .sticky-ajax-seach-modifire .rbt-search-form .search-submit-btn {
        min-width: 100px !important;
    }
}

/* FINAL: search button must never split its label on mobile */
.rbt-search-dropdown .rbt-search-form .submit-btn.search-submit-btn-modifire,
.header-ajax-search-modifire .rbt-search-form .submit-btn.search-submit-btn-modifire,
.sticky-ajax-seach-modifire .rbt-search-form .submit-btn.search-submit-btn-modifire {
    flex: 0 0 clamp(118px, 20vw, 150px) !important;
    width: clamp(118px, 20vw, 150px) !important;
    min-width: 118px !important;
    max-width: 150px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    align-items: stretch !important;
    overflow: visible !important;
}

.rbt-search-dropdown .rbt-search-form .submit-btn.search-submit-btn-modifire .search-submit-btn,
.header-ajax-search-modifire .rbt-search-form .submit-btn.search-submit-btn-modifire .search-submit-btn,
.sticky-ajax-seach-modifire .rbt-search-form .submit-btn.search-submit-btn-modifire .search-submit-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 1 1 auto !important;
    width: 100% !important;
    min-width: 118px !important;
    max-width: 150px !important;
    min-height: 48px !important;
    padding: 10px 16px !important;
    box-sizing: border-box !important;
    white-space: nowrap !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
    hyphens: none !important;
    line-height: 1 !important;
    text-align: center !important;
    text-overflow: clip !important;
}

.rbt-search-dropdown .rbt-search-form .submit-btn.search-submit-btn-modifire .search-submit-btn * ,
.header-ajax-search-modifire .rbt-search-form .submit-btn.search-submit-btn-modifire .search-submit-btn * ,
.sticky-ajax-seach-modifire .rbt-search-form .submit-btn.search-submit-btn-modifire .search-submit-btn * {
    white-space: nowrap !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
    flex: 0 0 auto !important;
}

@media (max-width: 767.98px) {
    .rbt-search-dropdown .rbt-search-form,
    .header-ajax-search-modifire .rbt-search-form,
    .sticky-ajax-seach-modifire .rbt-search-form {
        display: flex !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        gap: 10px !important;
    }

    .rbt-search-dropdown .rbt-search-form .input-sectition,
    .header-ajax-search-modifire .rbt-search-form .input-sectition,
    .sticky-ajax-seach-modifire .rbt-search-form .input-sectition {
        flex: 1 1 0 !important;
        min-width: 0 !important;
        width: auto !important;
        max-width: none !important;
    }

    .rbt-search-dropdown .rbt-search-form .submit-btn.search-submit-btn-modifire,
    .header-ajax-search-modifire .rbt-search-form .submit-btn.search-submit-btn-modifire,
    .sticky-ajax-seach-modifire .rbt-search-form .submit-btn.search-submit-btn-modifire {
        flex: 0 0 120px !important;
        width: 120px !important;
        min-width: 120px !important;
        max-width: 120px !important;
    }

    .rbt-search-dropdown .rbt-search-form .submit-btn.search-submit-btn-modifire .search-submit-btn,
    .header-ajax-search-modifire .rbt-search-form .submit-btn.search-submit-btn-modifire .search-submit-btn,
    .sticky-ajax-seach-modifire .rbt-search-form .submit-btn.search-submit-btn-modifire .search-submit-btn {
        min-width: 120px !important;
        max-width: 120px !important;
        font-size: 16px !important;
        padding-left: 10px !important;
        padding-right: 10px !important;
    }
}

@media (max-width: 380px) {
    .rbt-search-dropdown .rbt-search-form .submit-btn.search-submit-btn-modifire,
    .header-ajax-search-modifire .rbt-search-form .submit-btn.search-submit-btn-modifire,
    .sticky-ajax-seach-modifire .rbt-search-form .submit-btn.search-submit-btn-modifire {
        flex-basis: 112px !important;
        width: 112px !important;
        min-width: 112px !important;
        max-width: 112px !important;
    }

    .rbt-search-dropdown .rbt-search-form .submit-btn.search-submit-btn-modifire .search-submit-btn,
    .header-ajax-search-modifire .rbt-search-form .submit-btn.search-submit-btn-modifire .search-submit-btn,
    .sticky-ajax-seach-modifire .rbt-search-form .submit-btn.search-submit-btn-modifire .search-submit-btn {
        min-width: 112px !important;
        max-width: 112px !important;
        font-size: 15px !important;
    }
}


/* -------------------------------------------------------------------------
 * HEADER CART HOVER — never render the cart below the footer.
 * The mini-cart is now a child of the header cart trigger. It is hidden by
 * default and appears only while the user hovers/focuses the header cart.
 * ------------------------------------------------------------------------- */
.unimart-header-cart-hover {
    position: relative !important;
    z-index: 10050;
}
.unimart-header-cart-hover > .rbt-cart-side-menu,
.unimart-header-cart-hover > .close_side_menu {
    position: absolute !important;
    left: auto !important;
    top: calc(100% + 10px) !important;
    right: 0 !important;
}
.unimart-header-cart-hover > .rbt-cart-side-menu {
    width: min(390px, calc(100vw - 20px)) !important;
    max-width: calc(100vw - 20px) !important;
    height: auto !important;
    max-height: min(72vh, 680px) !important;
    min-height: 0 !important;
    transform: translate3d(0, -10px, 0) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    overflow: hidden !important;
    border-radius: 12px !important;
    box-shadow: 0 16px 50px rgba(0,0,0,.18) !important;
    transition: opacity .18s ease, transform .18s ease, visibility .18s ease !important;
}
.unimart-header-cart-hover > .rbt-cart-side-menu .inner-wrapper {
    height: auto !important;
    max-height: min(72vh, 680px) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
}
.unimart-header-cart-hover:hover > .rbt-cart-side-menu,
.unimart-header-cart-hover:focus-within > .rbt-cart-side-menu,
.unimart-header-cart-hover.is-cart-hover-open > .rbt-cart-side-menu {
    transform: translate3d(0, 0, 0) !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
}
.unimart-header-cart-hover > .close_side_menu {
    display: none !important;
}
@media (max-width: 767.98px) {
    .unimart-header-cart-hover > .rbt-cart-side-menu {
        width: min(360px, calc(100vw - 16px)) !important;
        max-width: calc(100vw - 16px) !important;
        right: -4px !important;
    }
}

/* -------------------------------------------------------------------------
 * WOOCOMMERCE PAGE QA: cart, checkout, account and shop archive
 * Keep every primary page inside the viewport on phones/tablets.
 * ------------------------------------------------------------------------- */
.woocommerce-cart .site-main,
.woocommerce-checkout .site-main,
.woocommerce-account .site-main,
.woocommerce-shop .site-main,
.post-type-archive-product .site-main {
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.woocommerce-cart .container,
.woocommerce-checkout .container,
.woocommerce-account .container,
.woocommerce-shop .container,
.post-type-archive-product .container {
    width: 100%;
    max-width: 100%;
}

.woocommerce-cart .row,
.woocommerce-checkout .row,
.woocommerce-account .row,
.woocommerce-shop .row,
.post-type-archive-product .row {
    min-width: 0;
    max-width: 100%;
}

.woocommerce-cart .rbt-cart-page-area,
.woocommerce-cart .rbt-cart-page-wrapper,
.woocommerce-checkout .unimart-checkout-form,
.woocommerce-account .woocommerce,
.woocommerce-shop .rbt-component-area,
.post-type-archive-product .rbt-component-area {
    min-width: 0;
    max-width: 100%;
}

/* Cart tables: allow long product names/options to wrap instead of widening the page. */
.woocommerce-cart table.shop_table,
.woocommerce-checkout table.shop_table,
.woocommerce-checkout-review-order-table {
    width: 100%;
    max-width: 100%;
    table-layout: auto;
}
.woocommerce-cart table.shop_table th,
.woocommerce-cart table.shop_table td,
.woocommerce-checkout table.shop_table th,
.woocommerce-checkout table.shop_table td {
    max-width: 100%;
    overflow-wrap: anywhere;
}
.woocommerce-cart .product-name,
.woocommerce-cart .product-name a,
.woocommerce-checkout .product-name,
.woocommerce-checkout .product-name a {
    overflow-wrap: anywhere;
    word-break: normal;
}

/* Checkout controls must never force a second horizontal canvas. */
.woocommerce-checkout form.checkout,
.woocommerce-checkout .form-row,
.woocommerce-checkout .form-row-wide,
.woocommerce-checkout .woocommerce-checkout-review-order,
.woocommerce-checkout .woocommerce-checkout-payment,
.woocommerce-checkout .rbt-sidebar-widget {
    min-width: 0;
    max-width: 100%;
}
.woocommerce-checkout input,
.woocommerce-checkout select,
.woocommerce-checkout textarea,
.woocommerce-checkout .select2-container,
.woocommerce-checkout .select2-container--default,
.woocommerce-checkout .woocommerce-input-wrapper {
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

/* Shop controls: sorting/filtering/search stay inside the available width. */
.rbt-shop-filter-area,
.rbt-store-sort-control-area-parent,
.rbt-store-sort-control-area,
.rbt-filterproduct-row,
.rbt-fast-filter-area,
.rbt-search-form {
    min-width: 0;
    max-width: 100%;
}
.rbt-store-sort-control-area select,
.rbt-store-sort-control-area .bootstrap-select,
.rbt-store-sort-control-area .select2-container,
.rbt-filterproduct-row select,
.rbt-filterproduct-row .bootstrap-select,
.rbt-filterproduct-row .select2-container {
    max-width: 100%;
    min-width: 0;
}

@media (max-width: 767.98px) {
    .woocommerce-cart .container,
    .woocommerce-checkout .container,
    .woocommerce-account .container,
    .woocommerce-shop .container,
    .post-type-archive-product .container {
        padding-left: 16px;
        padding-right: 16px;
    }

    .woocommerce-cart .shop_table_responsive thead,
    .woocommerce-cart .shop_table_responsive thead tr {
        display: none;
    }

    .woocommerce-cart .shop_table_responsive tr.cart_item,
    .woocommerce-cart .shop_table_responsive tr.cart-subtotal,
    .woocommerce-cart .shop_table_responsive tr.order-total,
    .woocommerce-cart .shop_table_responsive tr.shipping {
        display: block;
        width: 100%;
    }

    .woocommerce-cart .shop_table_responsive tr.cart_item td,
    .woocommerce-cart .shop_table_responsive tr.cart-subtotal td,
    .woocommerce-cart .shop_table_responsive tr.order-total td,
    .woocommerce-cart .shop_table_responsive tr.shipping td {
        display: block;
        width: 100%;
        text-align: left !important;
    }

    .woocommerce-checkout .row--12,
    .woocommerce-checkout .row--16 {
        margin-left: 0;
        margin-right: 0;
    }

    .woocommerce-checkout .rbt-title-part {
        flex-wrap: wrap;
        gap: 8px;
    }

    .rbt-store-sort-control-area,
    .rbt-filterproduct-row {
        flex-wrap: wrap !important;
        gap: 12px;
    }

    .rbt-store-sort-control-area > *,
    .rbt-filterproduct-row > * {
        min-width: 0;
        max-width: 100%;
    }
}

/* A mini-cart must never remain as an orphaned block below the footer.
 * The JS compatibility layer relocates it into the visible header cart.
 */
body > .rbt-cart-side-menu,
body > .rbt-sidebar-cart,
.rbt-footer + .rbt-cart-side-menu,
.rbt-footer + .rbt-sidebar-cart {
    display: none !important;
}

/* If an integration injects a mini-cart elsewhere, keep it hidden until the
 * relocation script places it inside a header cart trigger. */
.rbt-cart-side-menu.unimart-orphan-cart,
.rbt-sidebar-cart.unimart-orphan-cart {
    display: none !important;
}

/* -------------------------------------------------------------------------
 * V7 CART + ADD-TO-CART FINAL FIX
 * The header cart is the only trigger allowed to own the mini-cart panel.
 * ------------------------------------------------------------------------- */
header .unimart-header-cart-hover,
header .rbt-mini-cart,
.rbt-header-common-sticky-activation .rbt-mini-cart,
.rbt-header-sticky-activation .rbt-mini-cart {
    position: relative !important;
    z-index: 10060 !important;
}

/* Product add-to-cart controls: never allow an AJAX replacement to erase
   the visible label or make it unreadable. */
.woocommerce ul.products li.product .rbt-store-cart-btn-btn,
.woocommerce ul.products li.product .rbt-store-simple-add-cart,
.woocommerce ul.products li.product a.added_to_cart,
.woocommerce .rbt-store-cart-btn-btn,
.woocommerce .rbt-store-simple-add-cart,
.woocommerce a.added_to_cart,
.woocommerce a.added_to_cart.wc-forward {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    opacity: 1 !important;
    text-indent: 0 !important;
    white-space: nowrap !important;
}

.woocommerce ul.products li.product .rbt-store-cart-btn-btn:empty::after,
.woocommerce ul.products li.product .rbt-store-simple-add-cart:empty::after {
    content: "Añadir al carrito";
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
}

.woocommerce ul.products li.product a.added_to_cart:empty::after,
.woocommerce a.added_to_cart:empty::after {
    content: "Ver carrito";
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
}

.woocommerce ul.products li.product .rbt-store-cart-btn-btn i,
.woocommerce ul.products li.product .rbt-store-simple-add-cart i,
.woocommerce ul.products li.product a.added_to_cart i {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
}

@media (max-width: 767.98px) {
    .woocommerce ul.products li.product .rbt-store-cart-btn-btn,
    .woocommerce ul.products li.product .rbt-store-simple-add-cart,
    .woocommerce ul.products li.product a.added_to_cart {
        min-width: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        padding-left: 14px !important;
        padding-right: 14px !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }
}


/* ============================================================
 * Explosión Creativa V14 — final shop controls
 * ============================================================ */

/* Price filter: fields above, Apply always on its own full-width row. */
.rbt-shop-filter-area .widget_price_filter .price_slider_amount,
.rbt-filter-offcanvas-area .widget_price_filter .price_slider_amount,
.rbt-sidebar .widget_price_filter .price_slider_amount {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 10px !important;
    width: 100% !important;
    min-width: 0 !important;
    overflow: visible !important;
}
.rbt-shop-filter-area .widget_price_filter .price_slider_amount .price_label {
    flex: 0 0 100% !important;
    width: 100% !important;
    text-align: center !important;
    order: 1 !important;
}
.rbt-shop-filter-area .widget_price_filter .price_slider_amount input,
.rbt-filter-offcanvas-area .widget_price_filter .price_slider_amount input,
.rbt-sidebar .widget_price_filter .price_slider_amount input {
    flex: 1 1 calc(50% - 10px) !important;
    width: calc(50% - 10px) !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    order: 2 !important;
}
.rbt-shop-filter-area .widget_price_filter .price_slider_amount .button,
.rbt-filter-offcanvas-area .widget_price_filter .price_slider_amount .button,
.rbt-sidebar .widget_price_filter .price_slider_amount .button,
.rbt-shop-filter-area .widget_price_filter .price_slider_amount button[type="submit"],
.rbt-filter-offcanvas-area .widget_price_filter .price_slider_amount button[type="submit"] {
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    order: 3 !important;
    margin: 8px 0 0 !important;
    position: static !important;
    float: none !important;
    clear: both !important;
    visibility: visible !important;
    opacity: 1 !important;
    z-index: 5 !important;
    white-space: nowrap !important;
    overflow: visible !important;
}

/* Remove the obsolete gray "Mostrar / Nada seleccionado" control. */
.rbt-shop-filter-area .rbt-store-sort-control-area .ec-obsolete-show-control,
.rbt-shop-filter-area .rbt-store-sort-control-area .rbt-obsolete-show-control {
    display: none !important;
}

/* Sorting dropdowns must never become giant gray blocks. */
.rbt-shop-filter-area .rbt-store-sort-control-area .dropdown-menu,
.rbt-shop-filter-area .rbt-store-sort-control-area .rbt-dropdown-menu,
.rbt-shop-filter-area .rbt-store-sort-control-area .select2-dropdown {
    height: auto !important;
    min-height: 0 !important;
    max-height: min(70vh, 420px) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    border-radius: 10px !important;
    background: #fff !important;
}
.rbt-shop-filter-area .rbt-store-sort-control-area .dropdown-menu *,
.rbt-shop-filter-area .rbt-store-sort-control-area .rbt-dropdown-menu * {
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
}

/* Every WooCommerce product CTA must keep its label visible. */
.woocommerce ul.products li.product .rbt-store-cart-btn-btn,
.woocommerce ul.products li.product .rbt-store-simple-add-cart,
.woocommerce ul.products li.product a.added_to_cart,
.woocommerce .unimart-similar-product-items .rbt-btn,
.woocommerce .unimart-cart-page-product-box .rbt-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    visibility: visible !important;
    opacity: 1 !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    background: var(--color-primary) !important;
    border-color: var(--color-primary) !important;
    text-indent: 0 !important;
    min-height: 44px !important;
    line-height: 1.2 !important;
    white-space: normal !important;
    overflow: visible !important;
    text-align: center !important;
}
.woocommerce ul.products li.product .rbt-store-cart-btn-btn:empty::after,
.woocommerce ul.products li.product .rbt-store-simple-add-cart:empty::after {
    content: "Añadir al carrito" !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
}
.woocommerce ul.products li.product a.added_to_cart:empty::after {
    content: "Ver carrito" !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
}

/* Related/similar product cards: CTA is full-width and never clipped. */
.unimart-similar-items-section .rbt-store-cart-btn-btn,
.unimart-similar-items-section .rbt-store-simple-add-cart,
.unimart-similar-items-section a.added_to_cart {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

/* Sticky header can overlay only while pinned; its JS placeholder owns the space. */
body.rbt-has-pinned-sticy .rbt-sticky-placeholder {
    display: block !important;
    width: 100% !important;
}

/* Cart: no negative vertical movement and no horizontal overflow. */
body.woocommerce-cart,
body.woocommerce-cart main.page-wrapper,
body.woocommerce-cart .unimart-cart-page-content {
    max-width: 100% !important;
    overflow-x: hidden !important;
}
body.woocommerce-cart .rbt-breadcrumb-two,
body.woocommerce-cart .rbt-cart-page {
    position: relative !important;
    z-index: 1 !important;
}
@media (max-width: 767.98px) {
    .rbt-shop-filter-area .widget_price_filter .price_slider_amount input {
        flex-basis: 100% !important;
        width: 100% !important;
    }
    .rbt-shop-filter-area .widget_price_filter .price_slider_amount .button,
    .rbt-filter-offcanvas-area .widget_price_filter .price_slider_amount .button {
        min-height: 48px !important;
    }
}


/* Footer V14 — visual structure from the supplied reference. */
.ec-v14-footer {
    background: #111 !important;
    color: #fff !important;
    width: 100% !important;
    max-width: 100% !important;
}
.ec-v14-footer-main {
    background: #111 !important;
    padding: 28px 0 !important;
}
.ec-v14-footer-row {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 24px !important;
    width: 100% !important;
}
.ec-v14-footer-brand img {
    max-width: 220px !important;
    height: auto !important;
    display: block !important;
}
.ec-v14-footer-social .ec-v14-social-list {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 8px !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
.ec-v14-footer-social .ec-v14-social-list li { margin: 0 !important; padding: 0 !important; }
.ec-v14-footer-social .ec-v14-social-list a {
    width: 40px !important;
    height: 40px !important;
    border-radius: 50% !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: var(--color-primary) !important;
    color: #fff !important;
}
.ec-v14-footer-bottom {
    background: #111 !important;
    border-top: 1px solid rgba(255,255,255,.12) !important;
    padding: 22px 0 !important;
    text-align: center !important;
}
.ec-v14-footer-bottom p {
    margin: 0 !important;
    color: #fff !important;
    font-weight: 700 !important;
}
.ec-v14-footer-bottom a { color: #fff !important; }
@media (max-width: 767.98px) {
    .ec-v14-footer-row {
        flex-direction: column !important;
        justify-content: center !important;
        text-align: center !important;
    }
    .ec-v14-footer-social .ec-v14-social-list { justify-content: center !important; }
    .ec-v14-footer-brand img { max-width: 190px !important; margin: 0 auto !important; }
}


/* -------------------------------------------------------------------------
 * Explosión Creativa V22 — viewport height + full responsive layout
 * Keep short pages/footer anchored to the viewport bottom without creating
 * a white area after the footer. Never force a fixed page height.
 * ------------------------------------------------------------------------- */
html {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 100% !important;
    overflow-x: hidden !important;
}

body {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 100vh !important;
    min-height: 100svh !important;
    margin: 0 !important;
    overflow-x: hidden !important;
    display: flex !important;
    flex-direction: column !important;
}

/* The page content expands only when needed; it does not impose a fixed
   desktop/mobile height. */
body > main.page-wrapper,
body > .page-wrapper,
body > #page > main.page-wrapper,
body > #wrapper > main.page-wrapper {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    flex: 1 0 auto !important;
    box-sizing: border-box !important;
}

/* Common theme/Elementor footer containers must remain a normal flex item. */
body > .rbt-footer,
body > footer,
body > .site-footer,
body > .elementor-location-footer,
body > .elementor.elementor-location-footer {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 auto !important;
    box-sizing: border-box !important;
}

/* Prevent Elementor's desktop widths from becoming a mobile/tablet width. */
.elementor,
.elementor-section,
.elementor-container,
.elementor-widget-wrap,
.e-con,
.e-con-inner {
    max-width: 100% !important;
    box-sizing: border-box !important;
}

.elementor-section > .elementor-container,
.elementor-container {
    width: 100%;
}

img, video, iframe, svg, canvas {
    max-width: 100% !important;
}

@media (max-width: 1199.98px) {
    .elementor-section.elementor-section-boxed > .elementor-container,
    .elementor-section.elementor-section-stretched > .elementor-container {
        width: 100% !important;
        max-width: 100% !important;
    }

    .ec-v14-footer-row {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
}

@media (max-width: 767.98px) {
    body {
        min-height: 100vh !important;
        min-height: 100svh !important;
    }

    .page-wrapper,
    .rbt-component-area,
    .rbt-main-wrapper {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    .elementor-section,
    .elementor-container,
    .elementor-widget-wrap,
    .e-con,
    .e-con-inner {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    .ec-v14-footer {
        width: 100% !important;
        max-width: 100% !important;
    }

    .ec-v14-footer-main,
    .ec-v14-footer-bottom {
        width: 100% !important;
        box-sizing: border-box !important;
    }
}

@media (max-width: 480px) {
    .ec-v14-footer-main {
        padding: 24px 16px !important;
    }

    .ec-v14-footer-bottom {
        padding: 18px 16px !important;
    }

    .ec-v14-footer-brand img {
        max-width: min(190px, 80vw) !important;
        height: auto !important;
    }

    .ec-v14-footer-social .ec-v14-social-list {
        max-width: 100% !important;
    }
}
