.cel-shop-page {
    width: 100% !important;
    max-width: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
}

.cel-shop-layout {
    display: flex !important;
    gap: 32px !important;
    max-width: 1440px !important;
    margin: 0 auto !important;
    width: calc(100% - (var(--cel-container-padding, 20px) * 2)) !important;
    box-sizing: border-box !important;
    padding: 0 !important;
    justify-content: center !important;
    position: relative !important;
}

.cel-shop-layout-fallback {
    /* Base fallback needed for flex context */
    display: flex !important;
    align-items: flex-start !important;
}

/* Sidebar position is controlled from inline CSS (Customizer option). */
.cel-shop-layout.is-loading {
    opacity: 0.55 !important;
    pointer-events: none !important;
    transition: opacity 0.2s ease !important;
}
.cel-filters-sidebar {
    border: 1px solid #e5e7eb !important;
    border-radius: 10px !important;
    padding: 0 !important; /* Quitar padding base para compactar */
    background: #fff !important;
    box-sizing: border-box !important;
    width: 100% !important;
    margin-bottom: 20px !important;
    overflow: hidden !important;
}

.cel-filters-header {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    padding: 15px 20px !important; /* Aumentar padding horizontal */
    background: transparent !important;
    transition: all 0.2s ease !important;
    box-sizing: border-box !important;
}

.cel-toggle-icon {
    transition: transform 0.3s ease !important;
    color: #666 !important;
    display: flex !important; /* Ensure visibility for mobile */
}

.cel-filters-sidebar.is-active .cel-toggle-icon {
    transform: rotate(180deg) !important;
}

.cel-filters-sidebar h3 {
    margin: 0 !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    color: #111 !important;
}

.cel-filters-form {
    display: grid; /* Remove !important here to let media queries override easily */
    gap: 20px !important;
    padding: 10px 25px 25px !important;
    transition: all 0.3s ease-in-out !important;
    margin-bottom: 0 !important;
}
.cel-filters-form label {
    font-size: 0.9rem !important;
    font-weight: 600 !important;
    margin: 5px 0 0 !important; /* Dar un poco de espacio superior a cada label */
    line-height: 1.2 !important;
}
.cel-filters-form .cel-filter-check {
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    font-weight: 500 !important;
    min-height: 24px !important;
    line-height: 1.2 !important;
}

.cel-filter-checkboxes-wrap {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 15px !important; /* Separacion entre los dos checkboxes */
    align-items: center !important;
}
.cel-filters-form .cel-filter-check input[type="checkbox"] {
    margin: 0 !important;
    position: relative !important;
    top: 0 !important;
    flex: 0 0 auto !important;
}
.cel-filters-form .cel-filter-check span,
.cel-filters-form .cel-filter-check {
    display: inline-flex !important;
    align-items: center !important;
}
.cel-filters-form select,
.cel-filters-form input[type="number"] {
    width: 100% !important;
    border: 1px solid #d1d5db !important;
    border-radius: 8px !important;
    padding: 7px 9px !important;
    background: #fff !important;
    box-sizing: border-box !important;
    max-width: 100% !important;
}
.cel-filters-actions {
    display: flex !important;
    align-items: center !important;
    gap: 15px !important; /* Mas espacio entre botones */
    margin-top: 10px !important;
    padding-bottom: 5px !important;
}
.cel-filters-actions button {
    border: 0 !important;
    border-radius: 8px !important;
    padding: 9px 12px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    background: var(--celeste-button_bg, #111) !important;
    color: var(--celeste-button_text, #fff) !important;
}
.cel-filters-actions a {
    text-decoration: none !important;
    color: var(--celeste-link_color, #2563eb) !important;
    font-weight: 600 !important;
}
.cel-price-range {
    width: 100% !important;
}
.cel-price-range__values {
    display: flex !important;
    justify-content: space-between !important;
    font-size: 0.85rem !important;
    margin-bottom: 4px !important;
}
.cel-price-range__sliders {
    position: relative !important;
    height: 22px !important;
}
.cel-price-range__input {
    position: absolute !important;
    left: 0 !important;
    top: 0 !important;
    width: 100% !important;
    margin: 0 !important;
    pointer-events: none !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    background: transparent !important;
}
.cel-price-range__input--min,
.cel-price-range__input--max {
    z-index: 3 !important;
}
.cel-price-range__input:active,
.cel-price-range__input:focus {
    z-index: 4 !important;
}
.cel-price-range__input::-webkit-slider-runnable-track {
    height: 4px !important;
    background: #d1d5db !important;
    border-radius: 999px !important;
}
.cel-price-range__input::-moz-range-track {
    height: 4px !important;
    background: #d1d5db !important;
    border-radius: 999px !important;
}
.cel-price-range__input::-webkit-slider-thumb {
    -webkit-appearance: none !important;
    appearance: none !important;
    width: 14px !important;
    height: 14px !important;
    border-radius: 50% !important;
    background: var(--celeste-link_color, #2563eb) !important;
    border: 0 !important;
    margin-top: -5px !important;
    pointer-events: auto !important;
    cursor: pointer !important;
}
.cel-price-range__input::-moz-range-thumb {
    width: 14px !important;
    height: 14px !important;
    border-radius: 50% !important;
    background: var(--celeste-link_color, #2563eb) !important;
    border: 0 !important;
    pointer-events: auto !important;
    cursor: pointer !important;
}
.cel-shop-filters-fallback {
    margin-bottom: 18px !important;
}
.cel-shop-layout:not(.cel-shop-layout-fallback) .cel-shop-filters-fallback {
    display: none !important;
}

/* --- LÓGICA DE ESCRITORIO --- */
@media (min-width: 981px) {
    .cel-shop-layout .cel-shop-sidebar-col {
        flex: 0 0 280px !important; /* Fixed width for static sidebar on desktop */
        max-width: 280px !important;
        min-width: 280px !important;
        flex-shrink: 0 !important;
    }
    .cel-shop-layout .cel-shop-results-col {
        flex: 1 !important; /* Take remaining space */
        max-width: none !important;
        min-width: 0 !important;
    }
    .cel-filters-header {
        cursor: default !important; /* Static, not a button */
        padding: 20px 25px !important;
        margin-bottom: 0 !important;
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        justify-content: space-between !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }
    .cel-toggle-icon {
        display: none !important; /* Hide toggle on desktop */
    }
    .cel-filters-sidebar h3 {
        margin: 0 !important;
        flex: 1 1 auto !important;
    }
    /* Static visible form on desktop */
    .cel-filters-form {
        display: grid !important; 
        opacity: 1 !important;
        padding: 0 25px 25px !important;
        pointer-events: auto !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }
    .cel-filters-actions {
        padding-bottom: 0 !important;
    }

    /* Responsive Grid Columns - High specificity to beat block-style injections */
    ul.products.cel-columns-1, .cel-products-grid.cel-columns-1 { grid-template-columns: repeat(1, 1fr) !important; }
    ul.products.cel-columns-2, .cel-products-grid.cel-columns-2 { grid-template-columns: repeat(2, 1fr) !important; }
    ul.products.cel-columns-3, .cel-products-grid.cel-columns-3 { grid-template-columns: repeat(3, 1fr) !important; }
    ul.products.cel-columns-4, .cel-products-grid.cel-columns-4 { grid-template-columns: repeat(4, 1fr) !important; }
    ul.products.cel-columns-5, .cel-products-grid.cel-columns-5 { grid-template-columns: repeat(5, 1fr) !important; }
    ul.products.cel-columns-6, .cel-products-grid.cel-columns-6 { grid-template-columns: repeat(6, 1fr) !important; }

    /* Force Grid and kill calc(25%) influence */
    .cel-shop-results-col ul.products,
    .cel-shop-results-col .wc-block-grid__products,
    .cel-shop-results-col .wc-block-product-template {
        display: grid !important;
        grid-template-columns: repeat(4, 1fr) !important; /* Default 4 */
        gap: 30px !important;
        justify-content: center !important;
        justify-items: center !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    /* Target the product items themselves to remove inline-style width influence */
    .cel-shop-results-col ul.products li.product,
    .cel-shop-results-col .wc-block-grid__product,
    .cel-shop-results-col .wc-block-product-template li {
        width: 100% !important;
        max-width: 100% !important;
        flex: 0 0 100% !important; /* Kill flex-basis 25% */
        margin: 0 !important;
        box-sizing: border-box !important;
    }
}

/* --- LÓGICA DE MÓVIL --- */
@media (max-width: 980px) {
    .cel-shop-layout {
        flex-direction: column !important;
    }
    .cel-shop-layout-fallback .cel-shop-sidebar-col,
    .cel-shop-layout-fallback .cel-shop-results-col,
    .cel-shop-sidebar-col,
    .cel-shop-results-col {
        flex: 0 0 100% !important;
        max-width: 100% !important;
        padding-left: 0 !important;
        width: 100% !important;
    }

    .cel-filters-header {
        cursor: pointer !important;
        padding: 15px 20px !important;
    }

    /* Force hide form on mobile by default */
    .cel-filters-sidebar .cel-filters-form {
        display: none !important;
        opacity: 0 !important;
        visibility: hidden !important;
        height: 0 !important;
        overflow: hidden !important;
        pointer-events: none !important;
        transition: opacity 0.3s ease !important;
    }

    /* Show form when sidebar is active */
    .cel-filters-sidebar.is-active .cel-filters-form {
        display: grid !important;
        opacity: 1 !important;
        visibility: visible !important;
        height: auto !important;
        pointer-events: auto !important;
        border-top: 1px solid #eee !important;
        margin-top: 10px !important;
        padding: 20px !important;
    }
    
    .cel-filters-sidebar.is-active .cel-filters-header {
        margin-bottom: 0 !important;
    }

    /* Keep WooCommerce archive products as 2-column grid on mobile. */
    body.woocommerce ul.products,
    body.woocommerce-page ul.products,
    body.woocommerce .wc-block-product-template,
    body.woocommerce-page .wc-block-product-template,
    body.woocommerce .wc-block-grid__products,
    body.woocommerce-page .wc-block-grid__products,
    .wc-block-product-template,
    .cel-products-grid .wc-block-product-template,
    .wp-block-woocommerce-product-collection .wc-block-product-template {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 14px !important;
        padding-left: 10px !important;
        padding-right: 10px !important;
        margin: 0 !important;
        box-sizing: border-box !important;
    }

    /* Extremely aggressive overrides to kill calc(25%) and flex-basis */
    body.woocommerce ul.products li.product,
    body.woocommerce-page ul.products li.product,
    body.woocommerce .wc-block-product-template > li,
    body.woocommerce-page .wc-block-product-template > li,
    body.woocommerce .wc-block-grid__products > li,
    body.woocommerce-page .wc-block-grid__products > li,
    body.woocommerce .wc-block-grid__product,
    body.woocommerce-page .wc-block-grid__product,
    .wc-block-grid__product,
    ul.products li.product,
    li.product,
    .product,
    .cel-product {
        width: 100% !important;
        max-width: 100% !important;
        flex: 1 1 100% !important; /* Force full width in grid cell */
        flex-basis: 100% !important; /* Explicitly kill 25% */
        padding: 0 !important;
        margin: 0 !important;
        box-sizing: border-box !important;
        min-width: 0 !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        text-align: center !important;
        float: none !important; /* Kill legacy floats */
    }

    /* Target the block wrappers specifically */
    .wp-block-woocommerce-product-collection ul,
    .wc-block-grid__products,
    ul.products {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 auto !important;
        padding-left: 10px !important;
        padding-right: 10px !important;
        gap: 15px !important;
        box-sizing: border-box !important;
    }


    body.woocommerce ul.products li.product .button,
    body.woocommerce-page ul.products li.product .button {
        width: 100% !important;
        text-align: center !important;
        white-space: normal !important;
        line-height: 1.2 !important;
        padding: 10px 12px !important;
        box-sizing: border-box !important;
    }

    body.woocommerce ul.products li.product .price,
    body.woocommerce-page ul.products li.product .price,
    body.woocommerce ul.products li.product .woocommerce-loop-product__title,
    body.woocommerce-page ul.products li.product .woocommerce-loop-product__title {
        white-space: normal !important;
        overflow-wrap: anywhere !important;
    }

    .cel-rating-wrapper {
        display: flex !important;
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 2px !important;
        width: 100% !important;
        max-width: 100% !important;
        overflow: hidden !important;
    }

    .cel-rating-wrapper .star-rating {
        width: 5.4em !important;
        max-width: 100% !important;
        flex: 0 0 auto !important;
    }

    .cel-rating-count,
    .wc-block-components-product-rating__link,
    .wc-block-components-product-rating__amount,
    .woocommerce-product-rating .count,
    .cel-rating-wrapper > span:not(.star-rating) {
        display: none !important;
        visibility: hidden !important;
        opacity: 0 !important;
        width: 0 !important;
        height: 0 !important;
        pointer-events: none !important;
        overflow: hidden !important;
        margin: 0 !important;
    }
}

.cel-filters-form .cel-filter-check .cel-filter-check__text {
    display: inline-flex !important;
    align-items: center !important;
    line-height: 1 !important;
    margin: 0 !important;
}
.cel-filters-form input[type="hidden"] {
    display: none !important;
    visibility: hidden !important;
    width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

.cel-shop-sidebar-wrap.is-layout-constrained>*,
.cel-shop-sidebar-wrap.wp-block-group-is-layout-constrained>*,
.cel-filters-sidebar.is-layout-constrained>*,
.cel-filters-sidebar.wp-block-group-is-layout-constrained>*,
.cel-filters-form>* {
    margin-block-start: 0 !important;
    margin-block-end: 0 !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}
.cel-filters-form {
    align-content: start !important;
}
