/* ==========================================================================
   PSUA Product Filter — Estilos editables
   ========================================================================== */

/* Wrapper general */
.psua-pf-wrapper {
    margin-bottom: 2em;
}

/* ---- Barra de filtros ---- */
.psua-pf-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
    margin-bottom: 1.5em;
    padding: 0 1em;
}

/* Botones de categoría */
.psua-pf-btn {
    display: inline-block;
    padding: 8px 20px;
    border: 1px solid #ddd;
    border-radius: 4px;
    background: #fff;
    color: #333;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s ease;
    line-height: 1.4;
}

.psua-pf-btn:hover {
    border-color: #333;
    color: #000;
}

.psua-pf-btn.psua-pf-active {
    background: #333;
    border-color: #333;
    color: #fff;
}

/* ---- Contenedor de productos ---- */
.psua-pf-products {
    transition: opacity 0.3s ease;
}

/* ---- Grilla de productos (override tema) ---- */
.psua-pf-products ul.products {
    display: grid !important;
    gap: 20px;
    list-style: none;
    padding: 0;
    margin: 0;
}

.psua-pf-products ul.products.columns-2 { grid-template-columns: repeat(2, 1fr); }
.psua-pf-products ul.products.columns-3 { grid-template-columns: repeat(3, 1fr); }
.psua-pf-products ul.products.columns-4 { grid-template-columns: repeat(4, 1fr); }
.psua-pf-products ul.products.columns-5 { grid-template-columns: repeat(5, 1fr); }
.psua-pf-products ul.products.columns-6 { grid-template-columns: repeat(6, 1fr); }

.psua-pf-products ul.products li.product {
    width: 100% !important;
    margin: 0 !important;
    float: none !important;
}

.psua-pf-products ul.products li.product img {
    width: 100%;
    height: auto;
}

/* ---- Badge de cantidad dentro del botón ---- */
.psua-pf-products a.add_to_cart_button,
.psua-pf-products a.product_type_simple,
.psua-pf-products a.ajax_add_to_cart,
.psua-pf-products a.button.add_to_cart_button,
.psua-pf-products a.button.product_type_simple,
.psua-pf-products a.button.ajax_add_to_cart {
    position: relative;
}

.psua-pf-products a.ast-on-card-button,
.psua-pf-products a.ast-select-options-trigger,
.psua-pf-products a.button.ast-on-card-button,
.psua-pf-products a.button.ast-select-options-trigger,
.psua-pf-products a.add_to_cart_button.ast-on-card-button,
.psua-pf-products a.product_type_simple.ast-on-card-button,
.psua-pf-products a.ajax_add_to_cart.ast-on-card-button,
.psua-pf-products a.add_to_cart_button.ast-select-options-trigger,
.psua-pf-products a.product_type_simple.ast-select-options-trigger,
.psua-pf-products a.ajax_add_to_cart.ast-select-options-trigger {
    position: relative !important;
    top: auto !important;
    right: auto !important;
    left: auto !important;
    opacity: 1 !important;
    visibility: visible !important;
    z-index: auto !important;
}

.psua-pf-products a.ast-on-card-button .ahfb-svg-iconset,
.psua-pf-products a.ast-on-card-button .ast-card-action-tooltip,
.psua-pf-products a.ast-select-options-trigger .ahfb-svg-iconset,
.psua-pf-products a.ast-select-options-trigger .ast-card-action-tooltip,
.psua-pf-products a.button.ast-on-card-button .ahfb-svg-iconset,
.psua-pf-products a.button.ast-on-card-button .ast-card-action-tooltip,
.psua-pf-products a.button.ast-select-options-trigger .ahfb-svg-iconset,
.psua-pf-products a.button.ast-select-options-trigger .ast-card-action-tooltip {
    display: none !important;
}

.psua-pf-products .psua-pf-cart-count {
    position: static;
    display: inline;
    margin-left: 0.35em;
    padding: 0;
    background: transparent;
    border: 0;
    color: inherit;
    font-size: 0.95em;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 0.08em;
}

.psua-pf-products .psua-pf-cart-count.is-empty {
    display: none;
}

.psua-pf-products a.added_to_cart.wc-forward {
    display: none !important;
}

.psua-pf-products .astra-shop-thumbnail-wrap .psua-pf-cart-count,
.psua-pf-products .astra-shop-thumbnail-wrap .ast-on-card-button,
.psua-pf-products .astra-shop-thumbnail-wrap .ast-select-options-trigger {
    display: none !important;
}

.psua-pf-products a.button.added::after,
.psua-pf-products a.button.loading::after,
.psua-pf-products a.add_to_cart_button::before,
.psua-pf-products a.add_to_cart_button::after,
.psua-pf-products a.ajax_add_to_cart::before,
.psua-pf-products a.ajax_add_to_cart::after,
.psua-pf-products a.product_type_simple::before,
.psua-pf-products a.product_type_simple::after,
.psua-pf-products a.add_to_cart_button.added::after,
.psua-pf-products a.ajax_add_to_cart.added::after,
.psua-pf-products a.product_type_simple.added::after {
    display: none !important;
    content: none !important;
}

/* ---- Loading spinner ---- */
.psua-pf-loading {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 2em 0;
}

.psua-pf-spinner {
    width: 32px;
    height: 32px;
    border: 3px solid #ddd;
    border-top-color: #333;
    border-radius: 50%;
    animation: psua-spin 0.7s linear infinite;
}

@keyframes psua-spin {
    to { transform: rotate(360deg); }
}

/* ---- Mensaje vacío ---- */
.psua-pf-empty {
    text-align: center;
    padding: 2em;
    color: #888;
    font-size: 15px;
}

/* ---- Responsive ---- */
@media (max-width: 1024px) {
    .psua-pf-products ul.products[class*="columns-"] {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

@media (max-width: 768px) {
    .psua-pf-filters {
        gap: 6px;
    }

    .psua-pf-btn {
        padding: 6px 14px;
        font-size: 13px;
    }

    .psua-pf-products ul.products[class*="columns-"] {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

@media (max-width: 480px) {
    .psua-pf-products ul.products[class*="columns-"] {
        grid-template-columns: 1fr !important;
    }
}
