/* Carte SOY SOY — v1.9 */

.ssc-carte *, .ssc-carte *::before, .ssc-carte *::after,
.soy-filter-wrapper *, .soy-filter-wrapper *::before, .soy-filter-wrapper *::after {
    box-sizing: border-box !important;
}

.ssc-carte, .soy-filter-wrapper {
    --ssc-cat-parent-color: #1a1a1a;
    --ssc-cat-count-color:  #888888;
    --ssc-cat-child-color:  #555555;
    --ssc-badge-color:      #666666;
    --ssc-filter-bg:        #2d2828;
    --ssc-filter-text:      #ffffff;
}

/* CARTE */
.ssc-carte {
    width: 100% !important; display: flex !important;
    flex-direction: column !important; gap: 2.5rem !important;
    padding: 0 !important; margin: 0 !important; float: none !important;
}

.ssc-section {
    scroll-margin-top: 80px !important;
    width: 100% !important; float: none !important; clear: both !important;
}

.ssc-depth-2 { margin-bottom: 1.75rem !important; }

/* EN-TÊTES — zéro bordure */
.ssc-cat-header {
    display: flex !important; align-items: baseline !important;
    flex-wrap: wrap !important; margin-bottom: 1rem !important;
    padding: 0 !important; background: none !important;
    border: none !important; border-top: none !important; border-bottom: none !important;
    box-shadow: none !important; outline: none !important;
}
.ssc-cat-header::before, .ssc-cat-header::after { display: none !important; content: none !important; }

/* Catégorie parente — depth 1 */
.ssc-cat-depth-1 { border: none !important; padding: 0 !important; background: none !important; }
.ssc-cat-depth-1 .ssc-cat-name {
    font-size: clamp(1.2rem, .9rem + .8vw, 1.6rem) !important;
    font-weight: 700 !important;
    text-transform: uppercase !important; letter-spacing: .04em !important;
    color: var(--ssc-cat-parent-color) !important;
    cursor: default !important; text-decoration: none !important;
    border: none !important; background: none !important;
    padding: 0 !important; margin: 0 !important; display: inline !important;
}
.ssc-cat-depth-1 .ssc-cat-count {
    font-size: clamp(1.2rem, .9rem + .8vw, 1.6rem) !important;
    font-weight: 400 !important; color: var(--ssc-cat-count-color) !important;
    white-space: nowrap !important; display: inline !important;
}

/* Sous-catégories — depth 2+ : MÊME taille que parente, poids 500 */
.ssc-cat-depth-2, .ssc-cat-depth-3 { border: none !important; padding: 0 !important; background: none !important; }
.ssc-cat-depth-2 .ssc-cat-name,
.ssc-cat-depth-3 .ssc-cat-name {
    font-size: clamp(1.2rem, .9rem + .8vw, 1.6rem) !important;
    font-weight: 500 !important;
    text-transform: uppercase !important; letter-spacing: .04em !important;
    color: var(--ssc-cat-child-color) !important;
    cursor: default !important; text-decoration: none !important;
    border: none !important; background: none !important;
    padding: 0 !important; margin: 0 !important; display: inline !important;
}

/* GRILLE */
.ssc-section-body { width: 100% !important; float: none !important; clear: both !important; }
.ssc-products-grid {
    display: grid !important;
    /* colonnes gérées par output_grid_styles() en PHP */
    gap: 1rem !important; width: 100% !important;
    float: none !important; clear: both !important;
    margin: 0 !important; padding: 0 !important; list-style: none !important;
}
.ssc-product-wrap {
    width: 100% !important; min-width: 0 !important;
    float: none !important; margin: 0 !important; padding: 0 !important; display: block !important;
}
.ssc-product-wrap > *,
.ssc-product-wrap .elementor,
.ssc-product-wrap .elementor-element,
.ssc-product-wrap .e-loop-item,
.ssc-product-wrap .elementor-section,
.ssc-product-wrap .elementor-container {
    width: 100% !important; max-width: 100% !important; min-width: 0 !important;
}

/* FALLBACK produit natif */
.ssc-product-card { width: 100% !important; border-radius: 8px !important; overflow: hidden !important; background: none !important; border: none !important; padding: 0 !important; margin: 0 !important; }
.ssc-prod-img-link { display: block !important; text-decoration: none !important; width: 100% !important; }
.ssc-prod-img-wrap { position: relative !important; width: 100% !important; padding-top: 100% !important; overflow: hidden !important; background: #111 !important; border-radius: 8px !important; }
.ssc-prod-img-wrap img { position: absolute !important; top: 0 !important; left: 0 !important; width: 100% !important; height: 100% !important; object-fit: cover !important; transition: transform .3s !important; margin: 0 !important; padding: 0 !important; border: none !important; }
.ssc-product-card:hover .ssc-prod-img-wrap img { transform: scale(1.04) !important; }
.ssc-prod-name-overlay { position: absolute !important; bottom: 0 !important; left: 0 !important; right: 0 !important; padding: .35rem .5rem !important; background: linear-gradient(transparent,rgba(0,0,0,.72)) !important; color: #fff !important; font-size: 9px !important; font-weight: 600 !important; text-transform: uppercase !important; letter-spacing: .05em !important; line-height: 1.3 !important; }
.ssc-prod-footer { display: flex !important; align-items: center !important; justify-content: space-between !important; padding: .5rem .1rem .25rem !important; gap: .4rem !important; background: none !important; border: none !important; }
.ssc-prod-price { font-size: 12px !important; font-weight: 600 !important; }
.ssc-prod-price del { color: #aaa !important; font-weight: 400 !important; font-size: 10px !important; }
.ssc-prod-price ins { text-decoration: none !important; }
.ssc-prod-qty { display: flex !important; align-items: center !important; gap: .25rem !important; }
.ssc-qty-btn { width: 22px !important; height: 22px !important; background: #e8342a !important; color: #fff !important; border: none !important; border-radius: 4px !important; font-size: 14px !important; cursor: pointer !important; display: flex !important; align-items: center !important; justify-content: center !important; padding: 0 !important; margin: 0 !important; line-height: 1 !important; }
.ssc-qty-btn:hover { opacity: .85 !important; }
.ssc-qty-num { font-size: 12px !important; min-width: 14px !important; text-align: center !important; font-weight: 500 !important; }
.ssc-view-btn { font-size: 12px !important; color: #e8342a !important; text-decoration: none !important; font-weight: 600 !important; }

/* BADGES */
.ssc-alg-badges { display: flex !important; flex-wrap: wrap !important; gap: .2rem !important; margin-top: .35rem !important; padding: 0 !important; }
.ssc-alg-badge { font-size: 9px !important; padding: .1rem .35rem !important; border: 1px solid var(--ssc-badge-color) !important; border-radius: 3px !important; color: var(--ssc-badge-color) !important; white-space: nowrap !important; background: none !important; display: inline-block !important; }
.ssc-no-products, .ssc-empty { font-size: 13px !important; color: #aaa !important; font-style: italic !important; }

/* RESPONSIVE */
/* media queries colonnes générées dynamiquement par PHP (output_grid_styles) */
@media (max-width: 480px)  { .ssc-products-grid { gap: .6rem !important; } }
