.page-numbers {
    border-radius: 99rem !important;
}

/* Écart des colonnes */
.elementor-777 .elementor-element.elementor-element-7a8baa6.elementor-wc-products ul.products {
    grid-column-gap: 0.25rem !important;
    grid-row-gap: 0.25rem !important;
}

/* Masquer boutons */
a.button.product_type_variable {
    display: none !important;
}

/* Prix masqué sur desktop */
@media (min-width: 1025px) {
    span.price {
        display: none !important;
    }
}

.woocommerce ul.products li.product a img {
    margin: 0;
}

h4.filter-title {
    font-size: 0.875rem !important;
    font-weight: 600;
    color: black !important;
}

/* Produit en colonne */
ul.products li.product {
    display: flex;
    flex-direction: column;
    position: relative;
}

/* Lien produit */
.woocommerce-LoopProduct-link {
    display: block;
    width: 100%;
    height: auto !important;
    position: relative;
    overflow: hidden;
}

/* Image portrait */
.woocommerce-LoopProduct-link img {
    width: 100% !important;
    aspect-ratio: 3 / 4;
    height: auto !important;
    object-fit: cover;
    object-position: center;
    display: block;
    margin: 0;
}

/* Titre sous l'image — desktop */
ul.products li.product h2.woocommerce-loop-product__title {
    display: block !important;
    font-size: 0.65rem !important;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: black !important;
    margin: 0.4rem 0 0;
    padding: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Overlay tailles — desktop uniquement */
.ta-overlay-test {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    background: black;
    color: #fff;
    padding: 8px;
    font-size: 12px;
    z-index: 2;
    transform: translateY(100%);
    opacity: 0;
    transition: transform 0.3s ease, opacity 0.3s ease;
}

.woocommerce-LoopProduct-link:hover .ta-overlay-test {
    transform: translateY(0);
    opacity: 1;
}

.ta-sizes-list {
    display: flex;
    gap: 8px;
    list-style: none;
    margin: 0 !important;
    padding: 0;
    font-size: 12px;
}

.ta-sizes-list li.out-of-stock {
    color: #525359 !important;
    text-decoration: line-through;
}

/* Filtres YITH */
.yith-wcan-filters .yith-wcan-filter .filter-items .filter-item {
    line-height: 1;
    padding: 0.25rem 0.5rem;
    border-radius: 99px !important;
    min-width: 2rem;
}

.yith-wcan-filters .yith-wcan-filter .filter-items .filter-item:hover {
    background-color: black !important;
    color: white !important;
}

.yith-wcan-filters .yith-wcan-filter .filter-items .filter-item.label {
    box-shadow: inset 0 0 0 0.6px black;
}

.yith-wcan-filters .yith-wcan-filter .filter-items .filter-item.label:hover,
.yith-wcan-filters .yith-wcan-filter .filter-items .filter-item.label.active:not(.with-image) {
    background-color: black !important;
    color: white !important;
    box-shadow: inset 0 0 0 0.6px black !important;
}

.yith-wcan-filter.filter-tax.label-design {
    margin-bottom: 1rem !important;
}

/* Filtres tailles en ligne */
.yith-wcan-filter[data-taxonomy="pa_sizes"] ul,
.yith-wcan-filter:has(a[href*="filter_sizes="]) ul {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
}

.yith-wcan-filter[data-taxonomy="pa_sizes"] ul > li,
.yith-wcan-filter:has(a[href*="filter_sizes="]) ul > li { order: 50; }

.yith-wcan-filter[data-taxonomy="pa_sizes"] li:has(> a[data-term-slug="xs"]) { order: 1; }
.yith-wcan-filter[data-taxonomy="pa_sizes"] li:has(> a[data-term-slug="s"])  { order: 2; }
.yith-wcan-filter[data-taxonomy="pa_sizes"] li:has(> a[data-term-slug="m"])  { order: 3; }
.yith-wcan-filter[data-taxonomy="pa_sizes"] li:has(> a[data-term-slug="l"])  { order: 4; }
.yith-wcan-filter[data-taxonomy="pa_sizes"] li:has(> a[data-term-slug="xl"]) { order: 5; }
.yith-wcan-filter[data-taxonomy="pa_sizes"] li:has(> a[data-term-slug="1"])  { order: 6; }
.yith-wcan-filter[data-taxonomy="pa_sizes"] li:has(> a[data-term-slug="2"])  { order: 7; }
.yith-wcan-filter[data-taxonomy="pa_sizes"] li:has(> a[data-term-slug="one-size"]) { order: 8; }

.yith-wcan-filter:has(a[href*="filter_sizes="]) li:has(> a[data-term-slug="xs"]) { order: 1; }
.yith-wcan-filter:has(a[href*="filter_sizes="]) li:has(> a[data-term-slug="s"])  { order: 2; }
.yith-wcan-filter:has(a[href*="filter_sizes="]) li:has(> a[data-term-slug="m"])  { order: 3; }
.yith-wcan-filter:has(a[href*="filter_sizes="]) li:has(> a[data-term-slug="l"])  { order: 4; }
.yith-wcan-filter:has(a[href*="filter_sizes="]) li:has(> a[data-term-slug="xl"]) { order: 5; }
.yith-wcan-filter:has(a[href*="filter_sizes="]) li:has(> a[data-term-slug="1"])  { order: 6; }
.yith-wcan-filter:has(a[href*="filter_sizes="]) li:has(> a[data-term-slug="2"])  { order: 7; }
.yith-wcan-filter:has(a[href*="filter_sizes="]) li:has(> a[data-term-slug="one-size"]) { order: 8; }

/* Filtres catégories */
.yith-wcan-filter[data-taxonomy="product_cat"]:has(a[data-term-slug="ready-to-wear"]) ul,
.yith-wcan-filter[data-taxonomy="product_cat"]:has(a[data-term-slug="beachwear"]) ul {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    align-items: flex-start;
}

.yith-wcan-filter[data-taxonomy="product_cat"]:has(a[data-term-slug="ready-to-wear"]) ul > li,
.yith-wcan-filter[data-taxonomy="product_cat"]:has(a[data-term-slug="beachwear"]) ul > li {
    order: 50;
    flex: 0 0 auto;
}

.yith-wcan-filter[data-taxonomy="product_cat"]:has(a[data-term-slug="ready-to-wear"]) li:has(> a[data-term-slug="ready-to-wear"]) { order: 1; }
.yith-wcan-filter[data-taxonomy="product_cat"]:has(a[data-term-slug="ready-to-wear"]) li:has(> a[data-term-slug="dress"]) { order: 2; }
.yith-wcan-filter[data-taxonomy="product_cat"]:has(a[data-term-slug="ready-to-wear"]) li:has(> a[data-term-slug="pants"]) { order: 3; }

.yith-wcan-filter[data-taxonomy="product_cat"]:has(a[data-term-slug="beachwear"]) li:has(> a[data-term-slug="beachwear"]) { order: 1; }
.yith-wcan-filter[data-taxonomy="product_cat"]:has(a[data-term-slug="beachwear"]) li:has(> a[data-term-slug="top"]) { order: 2; }
.yith-wcan-filter[data-taxonomy="product_cat"]:has(a[data-term-slug="beachwear"]) li:has(> a[data-term-slug="bottom"]) { order: 3; }

/* Sidebar desktop */
.sidebar {
    width: 0;
    overflow: hidden;
    transition: width 0.25s ease-in-out !important;
    background: white;
    height: 100vh;
}

.sidebar.active { width: 20%; }

.sidebar > * {
    opacity: 0;
    transition: opacity 0.1s ease-in-out;
    pointer-events: none;
}

.sidebar.active > * {
    opacity: 1;
    transition: opacity 0.2s ease-in-out;
    transition-delay: 0.15s;
    pointer-events: auto;
}

.toggle-filter {
    width: fit-content !important;
    cursor: pointer;
    user-select: none;
}

/* ---- MOBILE ---- */
@media (max-width: 1024px) {

    /* Grille 2 colonnes */
    ul.products.columns-4,
    .elementor-777 .elementor-element.elementor-element-7a8baa6.elementor-wc-products ul.products {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        grid-column-gap: 0.25rem !important;
        grid-row-gap: 0.25rem !important;
        width: 100% !important;
        max-width: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
        overflow-x: hidden !important;
    }

    /* Items */
    ul.products li.product {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        box-sizing: border-box !important;
    }

    /* Lien : overflow visible pour titre visible */
    .woocommerce-LoopProduct-link {
        overflow: visible !important;
    }

    /* Image */
    .woocommerce-LoopProduct-link img {
        width: 100% !important;
        aspect-ratio: 3 / 4 !important;
        height: auto !important;
        display: block;
    }

    /* Masquer bande noire sur mobile */
    .ta-overlay-test {
        display: none !important;
    }

    /* Barre titre + prix */
    .ta-mobile-bar {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    padding: 0.3rem 0 0 !important;
    box-sizing: border-box !important;
    gap: 0.15rem;
}

.ta-mobile-bar h2.woocommerce-loop-product__title {
    display: block !important;
    font-size: 0.6rem !important;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: black !important;
    margin: 0 !important;
    padding: 0 !important;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ta-mobile-bar span.price {
    display: block !important;
    font-size: 0.6rem !important;
    color: black !important;
    margin: 0 !important;
    padding: 0 !important;
    white-space: nowrap;
}
    /* Conteneurs parents */
    .woocommerce,
    .woocommerce.columns-4,
    .elementor-widget-wc-archive-products,
    .elementor-wc-products,
    .elementor-widget-container {
        overflow-x: hidden !important;
        max-width: 100% !important;
        width: 100% !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        box-sizing: border-box !important;
    }

    /* Sidebar */
    .sidebar {
        width: 100%;
        height: 0;
        transition: height 0.25s ease-in-out !important;
    }

    .sidebar.active {
        height: 100%;
        width: 100%;
    }