/* ==========================================================
   PRODUCT CARDS — CANONICAL SYSTEM
   ========================================================== */
.sl-product-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--sl-card-gap);
}

.sl-product-card {
    position: relative;
    list-style: none;
    margin: 0;
    padding: 0;
    background: var(--sl-white);
    border: 1px solid var(--sl-sand);
    border-radius: var(--sl-radius);
    overflow: hidden;
    box-shadow: var(--sl-shadow-soft);
    transition: transform 0.3s cubic-bezier(0.4,0,0.2,1), box-shadow 0.3s ease, border-color 0.3s ease;
    display: flex;
    flex-direction: column;
}

.sl-product-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--sl-shadow-lift);
    border-color: var(--sl-sand-dark);
}

.sl-product-card-box {
    display: flex;
    flex-direction: column;
    height: 100%;
    background: transparent;
    border-radius: 0;
    overflow: visible;
    box-shadow: none;
    padding-bottom: 0;
}

.sl-product-card-box .sl-product-info {
    padding: 16px;
    gap: 12px;
}

.sl-product-img-wrap {
    position: relative;
    aspect-ratio: 4 / 5;
    background: var(--sl-cream-deep);
    overflow: hidden;
    flex-shrink: 0;
}

.sl-product-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s cubic-bezier(0.4,0,0.2,1);
}

.sl-product-card:hover .sl-product-img-wrap img {
    transform: scale(1.06);
}

/* Badge */
.sl-product-badge {
    position: absolute;
    top: 14px;
    left: 14px;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    padding: 5px 12px;
    border-radius: var(--sl-radius-pill);
    z-index: 2;
    line-height: 1;
}

.sl-product-badge--sale {
    background: var(--sl-terracotta);
    color: var(--sl-white);
}

.sl-product-badge--new {
    background: var(--sl-charcoal);
    color: var(--sl-white);
}

.sl-product-badge--featured {
    background: var(--sl-sage);
    color: var(--sl-white);
}

/* Info block */
.sl-product-info {
    padding: 16px;
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: 0;
}

.sl-product-main-link {
    display: block;
    color: inherit;
    text-decoration: none;
    margin-bottom: 10px;
}

.sl-product-main-link:hover,
.sl-product-main-link:focus {
    color: inherit;
    text-decoration: none;
}

.sl-product-name {
    font-family: var(--sl-font-display);
    font-size: 17px;
    font-weight: 500;
    color: var(--sl-charcoal);
    line-height: 1.35;
    margin-bottom: 10px;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    min-height: 2.7em;
}

.sl-product-name a {
    color: inherit;
}

.sl-product-price-row {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin-top: auto;
}

.sl-price-current {
    font-size: 16px;
    font-weight: 700;
    color: var(--sl-charcoal);
    letter-spacing: -0.01em;
    line-height: 1.3;
}

.sl-price-old {
    font-size: 12px;
    color: var(--sl-mist);
    text-decoration: line-through;
}

.sl-product-card-whatsapp .sl-btn-whatsapp,
.sl-product-card-whatsapp a.sl-btn-whatsapp,
.sl-product-card-whatsapp .sl-btn.sl-btn-whatsapp.sl-btn-block {
    display: inline-flex !important;
    width: 100% !important;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 10px 14px;
    border-radius: 10px;
    background: var(--sl-whatsapp-bg-soft) !important;
    border: 1px solid var(--sl-whatsapp-border-soft) !important;
    color: var(--sl-whatsapp-text-soft) !important;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    text-align: center;
    text-decoration: none;
    box-sizing: border-box;
    box-shadow: none !important;
    animation: none !important;
}

.sl-product-card-whatsapp .sl-btn-whatsapp:hover,
.sl-product-card-whatsapp .sl-btn-whatsapp:focus,
.sl-product-card-whatsapp a.sl-btn-whatsapp:hover,
.sl-product-card-whatsapp a.sl-btn-whatsapp:focus,
.sl-product-card-whatsapp .sl-btn.sl-btn-whatsapp.sl-btn-block:hover,
.sl-product-card-whatsapp .sl-btn.sl-btn-whatsapp.sl-btn-block:focus {
    background: var(--sl-whatsapp-bg-strong) !important;
    border-color: var(--sl-whatsapp-border-strong) !important;
    color: var(--sl-white) !important;
}

/* ==========================================================
   PRODUCT CARD WHATSAPP VISIBILITY — PHASE 3 MERGE
   Consolidates always-visible WhatsApp CTA spacing and
   visibility states across product loops.
   ========================================================== */
.sl-product-card-whatsapp {
    display: block;
    opacity: 1;
    visibility: visible;
    transform: none;
    pointer-events: auto;
    margin: 10px 16px 0;
}

.sl-product-card:hover .sl-product-card-whatsapp,
body.single-product .related .sl-product-card-whatsapp,
body.single-product .upsells .sl-product-card-whatsapp {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    pointer-events: auto !important;
}

@media (max-width: 767px) {
    .sl-product-card-whatsapp {
        margin: 8px 12px 0;
    }
}

/* Card action buttons */
.sl-product-card-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    margin: 10px 16px 16px;
}

.sl-product-card-actions .sl-add-btn,
.sl-product-card-actions .sl-buy-now-btn,
.sl-product-card-actions .sl-view-btn {
    width: 100%;
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    text-decoration: none;
    border-radius: 10px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    transition: all 0.2s ease;
    cursor: pointer;
    padding: 10px 12px;
    border: 1.5px solid transparent;
    font-family: var(--sl-font-body);
}

.sl-add-btn {
    background: var(--sl-cream-deep);
    border-color: var(--sl-sand);
    color: var(--sl-charcoal-soft);
    border-radius: 10px;
    min-height: 42px;
    padding: 10px 14px;
    font-size: 11px;
    font-weight: 700;
}

.sl-add-btn:hover {
    background: var(--sl-sand);
    border-color: var(--sl-sand-dark);
    color: var(--sl-charcoal);
}

.sl-add-btn.is-added {
    background: var(--sl-soft-green);
    border-color: var(--sl-sage);
    color: var(--sl-sage-dark);
}

.sl-buy-now-btn {
    background: var(--sl-charcoal);
    border: 1.5px solid var(--sl-charcoal);
    color: var(--sl-white);
    border-radius: 10px;
    padding: 10px 14px;
    font-size: 11px;
    font-weight: 700;
    font-family: var(--sl-font-body);
    white-space: nowrap;
    transition: background 0.2s, border-color 0.2s, transform 0.2s;
    text-decoration: none;
}

.sl-buy-now-btn:hover {
    background: var(--sl-sage);
    border-color: var(--sl-sage);
    color: var(--sl-white);
    text-decoration: none;
}

.sl-view-btn {
    background: var(--sl-cream-deep);
    border-color: var(--sl-sand);
    color: var(--sl-charcoal-soft);
}

.sl-product-stock-out {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 8px 14px;
    border-radius: 10px;
    background: #f5efe8;
    color: var(--sl-text-light);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.04em;
}

/* WooCommerce loop grid */
.woocommerce ul.products {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: var(--sl-card-gap) !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.woocommerce ul.products li.product {
    margin: 0 !important;
    padding: 0 !important;
    display: flex;
    flex-direction: column;
}

.woocommerce ul.products li.product:hover {
    transform: none;
}

.woocommerce ul.products li.product a img {
    display: block;
    width: 100%;
    object-fit: cover;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-family: var(--sl-font-display) !important;
    font-size: 17px !important;
    font-weight: 500 !important;
    color: var(--sl-charcoal) !important;
    padding: 14px 16px 4px !important;
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 2 !important;
    overflow: hidden !important;
    min-height: 2.7em;
}

.woocommerce ul.products li.product .price {
    font-size: 15px;
    font-weight: 700;
    color: var(--sl-charcoal) !important;
    padding: 4px 16px 14px;
    display: block;
    line-height: 1.3;
}

.woocommerce ul.products li.product .price del {
    color: var(--sl-mist) !important;
    font-size: 12px;
}

.woocommerce ul.products li.product .price ins {
    text-decoration: none;
    color: var(--sl-terracotta);
}

.woocommerce ul.products li.product .onsale {
    background: var(--sl-terracotta) !important;
    border-radius: var(--sl-radius-pill) !important;
    font-size: 9px !important;
    font-weight: 800 !important;
    padding: 4px 11px !important;
    min-width: auto !important;
    min-height: auto !important;
    line-height: 1.5 !important;
}

/* ==========================================================
   PHASE 4 PRODUCT CARD RESPONSIVE CLEANUP
   ========================================================== */
@media (max-width: 1023px) {
    .woocommerce ul.products {
        grid-template-columns: repeat(3, 1fr) !important;
    }
}

@media (max-width: 767px) {
    .woocommerce ul.products {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 12px !important;
    }

    .sl-product-card,
    .woocommerce ul.products li.product,
    .woocommerce .related ul.products li.product,
    .woocommerce .upsells ul.products li.product {
        border-radius: 14px;
    }

    .sl-product-info {
        padding: 12px 12px 0;
    }

    .sl-product-card-box .sl-product-info {
        padding: 12px;
    }

    .sl-product-name,
    .woocommerce ul.products li.product .woocommerce-loop-product__title {
        font-size: 14px !important;
        min-height: 2.7em;
    }

    .sl-price-current,
    .woocommerce ul.products li.product .price {
        font-size: 14px;
    }

    .sl-product-card-actions {
        grid-template-columns: 1fr;
        margin: 8px 12px 12px;
        gap: 6px;
    }
}


/* ==========================================================
   HOMEPAGE PRODUCT CARD PATCH — 2026-04-10
   ========================================================== */
.sl-product-card--homepage .sl-product-info {
    padding: 16px 16px 14px;
}

.sl-product-card--homepage .sl-product-main-link {
    margin-bottom: 8px;
}

.sl-product-card--homepage .sl-product-name {
    font-size: 16px;
    margin-bottom: 8px;
    min-height: 2.55em;
}

.sl-product-card--homepage .sl-product-card-actions {
    grid-template-columns: 1fr;
    margin: 0;
}

.sl-product-card--homepage .sl-product-card-actions .sl-add-btn,
.sl-product-card--homepage .sl-product-card-actions .sl-view-btn {
    min-height: 44px;
}

.sl-product-card--homepage .sl-product-card-whatsapp,
.sl-product-card--homepage .sl-buy-now-btn {
    display: none !important;
}

@media (max-width: 767px) {
    .sl-product-card--homepage .sl-product-info {
        padding: 12px 12px 12px;
    }

    .sl-product-card--homepage .sl-product-card-actions {
        margin-top: 0;
    }
}


/* ==========================================================
   PREMIUM CATALOG CARD REFINEMENT — SHOP + COLLECTION PAGES
   ========================================================== */
.sl-product-card--catalog .sl-product-main-link {
    margin-bottom: 8px;
}

.sl-product-card--catalog .sl-product-name {
    font-size: 16px;
    line-height: 1.35;
    min-height: 4.05em;
    -webkit-line-clamp: 3;
}

.sl-product-card--catalog .sl-product-price-row {
    gap: 8px;
}

.sl-product-card--catalog .sl-price-current {
    font-size: 15px;
}

.sl-product-card--catalog .sl-product-card-whatsapp {
    display: none !important;
}

.sl-product-card--catalog .sl-product-card-actions {
    grid-template-columns: 1fr;
    margin: 8px 16px 16px;
}

.sl-product-card--catalog .sl-product-card-actions .sl-add-btn,
.sl-product-card--catalog .sl-product-card-actions .sl-view-btn,
.sl-product-card--catalog .sl-product-card-actions .sl-buy-now-btn {
    min-height: 44px;
    font-size: 11px;
}

body.post-type-archive-product .woocommerce ul.products li.product.sl-product-card,
body.tax-product_cat .woocommerce ul.products li.product.sl-product-card,
body.tax-product_tag .woocommerce ul.products li.product.sl-product-card,
body.page-template-template-product-collection .woocommerce ul.products li.product.sl-product-card,
body.page-template-template-curated-selection .woocommerce ul.products li.product.sl-product-card {
    min-width: 0;
}

@media (max-width: 767px) {
    .sl-product-card--catalog {
        border-radius: 18px;
    }

    .sl-product-card--catalog .sl-product-card-box .sl-product-info {
        padding: 14px 14px 0;
        gap: 10px;
    }

    .sl-product-card--catalog .sl-product-name {
        font-size: 15px;
        min-height: 4.05em;
    }

    .sl-product-card--catalog .sl-price-current {
        font-size: 14px;
    }

    .sl-product-card--catalog .sl-price-old {
        font-size: 11px;
    }

    .sl-product-card--catalog .sl-product-card-actions {
        margin: 8px 14px 14px;
        gap: 8px;
    }

    .sl-product-card--catalog .sl-product-card-actions .sl-add-btn,
    .sl-product-card--catalog .sl-product-card-actions .sl-view-btn,
    .sl-product-card--catalog .sl-product-card-actions .sl-buy-now-btn {
        min-height: 42px;
        padding: 10px 12px;
    }

    body.page-template-template-curated-selection .woocommerce ul.products,
    body.page-template-template-product-collection .woocommerce ul.products,
    body.post-type-archive-product .woocommerce ul.products,
    body.tax-product_cat .woocommerce ul.products,
    body.tax-product_tag .woocommerce ul.products {
        gap: 14px !important;
    }
}


/* ==========================================================
   SAFE PREMIUM PATCH V3 — GRID + MOBILE CARD POLISH
   ========================================================== */
@media (max-width: 1023px) {
    .sl-product-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 16px;
    }
}

@media (max-width: 767px) {
    .sl-product-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
    }

    .sl-product-card {
        border-radius: 16px;
    }

    .sl-product-name {
        font-size: 14px;
    }

    .sl-price-current {
        font-size: 14px;
    }

    body.post-type-archive-product .sl-product-card-actions,
    body.tax-product_cat .sl-product-card-actions,
    body.tax-product_tag .sl-product-card-actions,
    body.search-results .sl-product-card-actions {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================
   HOMEPAGE CARD FIX — KEEP WHATSAPP HIDDEN ON HOME SECTIONS
   Prevent legacy hover visibility from surfacing WhatsApp CTA
   on New Arrivals / Most Loved homepage cards.
   ========================================================== */
.sl-homepage .sl-product-card--homepage .sl-product-card-whatsapp,
.sl-homepage .sl-product-card--homepage:hover .sl-product-card-whatsapp,
.sl-homepage .sl-product-card--homepage:focus-within .sl-product-card-whatsapp,
.home .sl-product-card--homepage .sl-product-card-whatsapp,
.home .sl-product-card--homepage:hover .sl-product-card-whatsapp,
.home .sl-product-card--homepage:focus-within .sl-product-card-whatsapp {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transform: none !important;
    pointer-events: none !important;
    margin: 0 !important;
    max-height: 0 !important;
    overflow: hidden !important;
}

.sl-homepage .sl-product-card--homepage .sl-product-card-actions,
.home .sl-product-card--homepage .sl-product-card-actions {
    margin-top: 0 !important;
}
