/***************************************************************************
 *** LAB Theme - Shop Module UI                                           ***
 *** File suggerito: plugins/shop-module/app/assets/includes/lab-shop.css  ***
 ***************************************************************************/

:root {
    --lab-shop-concrete: #d6d2ca;
    --lab-shop-concrete-2: #efede8;
    --lab-shop-graphite: #121212;
    --lab-shop-graphite-2: #1d1b19;
    --lab-shop-rust: #9b4a22;
    --lab-shop-rust-dark: #4a2416;
    --lab-shop-rust-light: #c27039;
    --lab-shop-ink: #27231f;
    --lab-shop-muted: #77716a;
    --lab-shop-border: rgba(61, 52, 45, .14);
    --lab-shop-shadow: 0 24px 70px rgba(18, 18, 18, .16);
    --lab-shop-shadow-soft: 0 18px 46px rgba(18, 18, 18, .10);
    --lab-shop-radius-xl: 32px;
    --lab-shop-radius-lg: 24px;
    --lab-shop-radius-md: 18px;
}

.lab-shop-page,
.lab-product-page,
.lab-checkout-page,
.lab-shop-slider-wrap {
    position: relative;
    color: var(--lab-shop-ink);
    font-family: Inter, "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, Arial, sans-serif;
}

.lab-shop-section {
    padding: clamp(72px, 7vw, 118px) 0;
    background:
        radial-gradient(circle at 10% 10%, rgba(155, 74, 34, .13), transparent 32%),
        linear-gradient(180deg, #f6f3ee 0%, #e7e1d8 100%);
}

.lab-shop-container {
    width: min(1180px, calc(100% - 32px));
    margin: 0 auto;
}

.lab-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 14px;
    padding: 8px 13px;
    border: 1px solid rgba(155, 74, 34, .24);
    border-radius: 999px;
    background: rgba(255, 255, 255, .58);
    color: var(--lab-shop-rust-dark);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.lab-eyebrow::before {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--lab-shop-rust), var(--lab-shop-graphite));
    box-shadow: 0 0 0 5px rgba(155, 74, 34, .13);
}

.lab-shop-title {
    margin: 0;
    color: var(--lab-shop-graphite);
    font-size: clamp(36px, 5vw, 68px);
    line-height: .94;
    font-weight: 900;
    letter-spacing: -.055em;
}

.lab-shop-lead {
    max-width: 720px;
    margin: 18px auto 0;
    color: rgba(39, 35, 31, .78);
    font-size: clamp(16px, 2vw, 20px);
    line-height: 1.65;
}

.lab-shop-heading {
    text-align: center;
    margin-bottom: clamp(34px, 5vw, 64px);
}

.lab-btn-rust,
.lab-btn-dark,
.lab-btn-outline {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 46px;
    padding: 12px 18px;
    border-radius: 999px;
    border: 0;
    text-decoration: none !important;
    font-weight: 850;
    font-size: 14px;
    letter-spacing: -.01em;
    transition: transform .22s ease, box-shadow .22s ease, opacity .22s ease, border-color .22s ease;
}

.lab-btn-rust {
    color: #fff !important;
    background: linear-gradient(135deg, var(--lab-shop-rust), var(--lab-shop-rust-dark) 62%, #16110f);
    box-shadow: 0 14px 30px rgba(91, 42, 21, .24);
}

.lab-btn-dark {
    color: #fff !important;
    background: linear-gradient(135deg, #25211e, #0d0d0d);
    box-shadow: 0 14px 30px rgba(0, 0, 0, .20);
}

.lab-btn-outline {
    color: var(--lab-shop-graphite) !important;
    border: 1px solid rgba(45, 38, 32, .18);
    background: rgba(255, 255, 255, .58);
}

.lab-btn-rust:hover,
.lab-btn-dark:hover,
.lab-btn-outline:hover {
    transform: translateY(-2px);
    opacity: .95;
}

/* ==========================================================================
   SLIDER
   ========================================================================== */
.lab-shop-slider-wrap {
    padding: clamp(18px, 2.5vw, 34px);
    background:
        linear-gradient(135deg, rgba(18, 18, 18, .95), rgba(54, 32, 22, .94)),
        radial-gradient(circle at 20% 10%, rgba(194, 112, 57, .24), transparent 34%);
}

.lab-shop-slider-wrap .w3-slider-container {
    position: relative;
    width: min(1320px, 100%);
    height: clamp(520px, 68vh, 760px);
    margin: 0 auto;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .12) !important;
    border-radius: var(--lab-shop-radius-xl);
    background: #111;
    box-shadow: 0 34px 90px rgba(0, 0, 0, .34);
    isolation: isolate;
}

.lab-shop-slider-wrap .w3-slider-container::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    background:
        linear-gradient(90deg, rgba(14, 13, 12, .88) 0%, rgba(14, 13, 12, .54) 38%, rgba(14, 13, 12, .16) 100%),
        linear-gradient(0deg, rgba(0, 0, 0, .60), transparent 54%);
}

.lab-shop-slider-wrap .w3-slider-slide {
    height: 100%;
    display: none;
}

.lab-shop-slider-wrap .w3-slider-slide > img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.03);
    filter: saturate(.95) contrast(1.08);
}

.lab-shop-slider-wrap .w3-slider-number {
    position: absolute;
    top: 24px;
    left: 24px;
    z-index: 5;
    padding: 8px 13px;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 999px;
    color: rgba(255, 255, 255, .82);
    background: rgba(0, 0, 0, .26);
    backdrop-filter: blur(14px);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .08em;
    text-shadow: none;
}

.lab-shop-slider-wrap .w3-slider-caption {
    position: absolute;
    left: clamp(28px, 7vw, 90px);
    right: auto;
    bottom: clamp(54px, 8vw, 110px);
    z-index: 5;
    width: min(620px, calc(100% - 56px));
    margin: 0;
    padding: 0;
    color: #fff;
    text-align: left;
    background: transparent;
}

.lab-shop-slider-wrap .w3-slider-title {
    margin: 0;
    color: #fff;
    font-size: clamp(40px, 5.5vw, 82px);
    line-height: .92;
    font-weight: 950;
    letter-spacing: -.06em;
}

.lab-shop-slider-wrap .w3-slider-paragraph {
    max-width: 520px;
    margin: 18px 0 26px;
    color: rgba(255, 255, 255, .82);
    font-size: clamp(16px, 2vw, 21px);
    line-height: 1.55;
}

.lab-shop-slider-wrap .w3-slider-button,
.lab-shop-slider-wrap button.w3-slider-button {
    width: auto !important;
    min-width: 150px;
    border: 0 !important;
    border-radius: 999px !important;
    background: linear-gradient(135deg, var(--lab-shop-rust-light), var(--lab-shop-rust-dark) 62%, #15110f) !important;
    color: #fff !important;
    box-shadow: 0 18px 40px rgba(0, 0, 0, .28);
    font-size: 14px;
    font-weight: 850;
    padding: 13px 20px !important;
}

.lab-shop-slider-wrap .slider-dots {
    position: absolute;
    left: clamp(28px, 7vw, 90px);
    bottom: 28px;
    z-index: 6;
    display: flex;
    gap: 8px;
}

.lab-shop-slider-wrap .w3-slider-dot {
    width: 34px;
    height: 5px;
    margin: 0;
    border-radius: 999px;
    background: rgba(255, 255, 255, .32);
    transition: width .35s ease, background .35s ease;
}

.lab-shop-slider-wrap .w3-slider-dot.active {
    width: 58px;
    background: linear-gradient(90deg, var(--lab-shop-rust-light), #fff);
}

/* ==========================================================================
   PRODUCT LIST
   ========================================================================== */
.lab-products-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}

.lab-product-card {
    position: relative;
    min-height: 100%;
    overflow: hidden;
    border: 1px solid rgba(53, 45, 39, .13);
    border-radius: var(--lab-shop-radius-lg);
    background: rgba(255, 255, 255, .70);
    box-shadow: var(--lab-shop-shadow-soft);
    transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}

.lab-product-card:hover {
    transform: translateY(-6px);
    border-color: rgba(155, 74, 34, .30);
    box-shadow: var(--lab-shop-shadow);
}

.lab-product-media {
    position: relative;
    min-height: 250px;
    overflow: hidden;
    background-color: #151515;
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
}

.lab-product-media::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0, 0, 0, .05), rgba(0, 0, 0, .56));
}

.lab-product-badge {
    position: absolute;
    top: 16px;
    left: 16px;
    z-index: 2;
    padding: 7px 11px;
    border-radius: 999px;
    color: #fff;
    background: rgba(0, 0, 0, .42);
    backdrop-filter: blur(14px);
    font-size: 11px;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.lab-product-view {
    position: absolute;
    right: 16px;
    bottom: 16px;
    z-index: 3;
    opacity: 0;
    transform: translateY(10px);
}

.lab-product-card:hover .lab-product-view {
    opacity: 1;
    transform: translateY(0);
}

.lab-product-body {
    position: relative;
    padding: 22px;
}

.lab-product-name {
    margin: 0 0 14px;
    color: var(--lab-shop-graphite);
    font-size: 20px;
    font-weight: 900;
    line-height: 1.16;
    letter-spacing: -.03em;
}

.lab-product-price {
    display: flex;
    align-items: baseline;
    gap: 6px;
    margin-bottom: 18px;
    color: var(--lab-shop-rust-dark);
    font-size: 26px;
    font-weight: 950;
}

.lab-product-price span {
    color: rgba(39, 35, 31, .68);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.lab-product-actions,
.lab-product-page-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.lab-product-actions button,
.lab-product-page-actions button {
    width: 100% !important;
    min-height: 48px;
    border-radius: 16px !important;
    border: 0 !important;
    box-shadow: none !important;
    transition: transform .2s ease, opacity .2s ease !important;
}

.lab-product-actions button:hover,
.lab-product-page-actions button:hover {
    transform: translateY(-2px);
}

.lab-product-actions .add-to-cart,
.lab-product-page-actions .add-to-cart {
    background: linear-gradient(135deg, #2c2926, #111) !important;
    color: #fff !important;
}

.lab-product-actions .goto-checkout-page,
.lab-product-page-actions .goto-checkout-page {
    background: linear-gradient(135deg, var(--lab-shop-rust), var(--lab-shop-rust-dark)) !important;
    color: #fff !important;
}

/* ==========================================================================
   SINGLE PRODUCT
   ========================================================================== */
.lab-single-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.04fr) minmax(360px, .72fr);
    gap: clamp(28px, 4vw, 58px);
    align-items: start;
}

.lab-single-media-card,
.lab-single-info-card,
.lab-description-card,
.lab-checkout-card,
.lab-order-summary {
    border: 1px solid rgba(53, 45, 39, .13);
    border-radius: var(--lab-shop-radius-xl);
    background: rgba(255, 255, 255, .72);
    box-shadow: var(--lab-shop-shadow-soft);
    overflow: hidden;
}

.lab-single-main-image {
    min-height: clamp(360px, 46vw, 560px);
    background-color: #111 !important;
    background-size: contain !important;
    border: 0 !important;
    border-radius: var(--lab-shop-radius-xl) var(--lab-shop-radius-xl) 0 0 !important;
}

.lab-single-gallery {
    padding: 18px;
    background: rgba(255, 255, 255, .38);
}

.lab-single-info-card {
    padding: clamp(28px, 4vw, 44px);
    position: sticky;
    top: 110px;
}

.lab-product-type {
    display: inline-flex;
    margin: 0 0 16px;
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(155, 74, 34, .12);
    color: var(--lab-shop-rust-dark);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .10em;
    text-transform: uppercase;
}

.lab-single-title {
    margin: 0 0 18px;
    color: var(--lab-shop-graphite);
    font-size: clamp(34px, 4vw, 56px);
    line-height: .96;
    font-weight: 950;
    letter-spacing: -.055em;
}

.lab-single-price {
    margin: 0 0 28px;
    color: var(--lab-shop-rust-dark);
    font-size: clamp(38px, 5vw, 64px);
    line-height: 1;
    font-weight: 950;
    letter-spacing: -.05em;
}

.lab-single-price .w3-currency {
    color: rgba(39, 35, 31, .62);
    font-size: .42em;
    font-style: normal;
    font-weight: 850;
    letter-spacing: .03em;
}

.lab-product-trust {
    display: grid;
    gap: 10px;
    margin: 28px 0 0;
    padding-top: 22px;
    border-top: 1px solid rgba(53, 45, 39, .12);
}

.lab-trust-item {
    display: flex;
    align-items: center;
    gap: 10px;
    color: rgba(39, 35, 31, .76);
    font-size: 14px;
    font-weight: 750;
}

.lab-trust-dot {
    width: 9px;
    height: 9px;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--lab-shop-rust), var(--lab-shop-graphite));
    box-shadow: 0 0 0 5px rgba(155, 74, 34, .10);
}

.lab-description-card {
    margin-top: 30px;
    padding: clamp(28px, 4vw, 42px);
}

.lab-description-card h3 {
    margin: 0 0 14px;
    color: var(--lab-shop-graphite);
    font-size: 28px;
    font-weight: 950;
    letter-spacing: -.04em;
}

.lab-description-card p {
    margin: 0;
    color: rgba(39, 35, 31, .74);
    font-size: 16px;
    line-height: 1.78;
}

.row.gallery-wrapper {
    max-width: none !important;
    gap: 10px !important;
    justify-content: flex-start !important;
}

.col-md-3.image-gallery.position-relative.mb-3 img {
    height: 92px !important;
    width: 92px !important;
    object-fit: cover;
    border: 1px solid rgba(53, 45, 39, .12) !important;
    border-radius: 16px !important;
    background: #f7f4ee !important;
}

/* ==========================================================================
   CHECKOUT
   ========================================================================== */
.lab-checkout-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 390px;
    gap: 28px;
    align-items: start;
}

.lab-checkout-card {
    padding: clamp(24px, 4vw, 38px);
}

.lab-order-summary {
    padding: 22px;
    position: sticky;
    top: 110px;
}

.lab-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.lab-form-section {
    margin-bottom: 30px;
}

.lab-form-section:last-child {
    margin-bottom: 0;
}

.lab-form-section-title {
    display: flex;
    align-items: center;
    gap: 11px;
    margin: 0 0 22px;
    color: var(--lab-shop-graphite);
    font-size: 24px;
    font-weight: 950;
    letter-spacing: -.04em;
}

.lab-form-section-title::before {
    content: "";
    width: 12px;
    height: 12px;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--lab-shop-rust), var(--lab-shop-graphite));
    box-shadow: 0 0 0 6px rgba(155, 74, 34, .10);
}

.lab-field {
    margin-bottom: 16px;
}

.lab-field label,
.lab-checkout-page label {
    display: block;
    margin: 0 0 8px;
    color: rgba(39, 35, 31, .82);
    font-size: 13px;
    font-weight: 850;
    letter-spacing: .02em;
}

.lab-checkout-page input[type="text"],
.lab-checkout-page input[type="email"],
.lab-checkout-page input[type="tel"],
.lab-checkout-page input[type="number"] {
    width: 100%;
    min-height: 50px;
    margin: 0;
    padding: 12px 14px;
    border: 1px solid rgba(53, 45, 39, .16);
    border-radius: 16px;
    background: rgba(255, 255, 255, .72);
    color: var(--lab-shop-graphite);
    font-size: 15px;
    outline: none;
    transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

.lab-checkout-page input:focus {
    border-color: rgba(155, 74, 34, .55);
    background: #fff;
    box-shadow: 0 0 0 4px rgba(155, 74, 34, .12);
}

.lab-gateway-selector {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 18px;
}

.lab-gateway-selector label {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 56px;
    margin: 0;
    padding: 13px;
    border: 1px solid rgba(53, 45, 39, .14);
    border-radius: 18px;
    background: rgba(255, 255, 255, .52);
    cursor: pointer;
}

.lab-check-row {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    margin: 8px 0 22px;
    padding: 14px;
    border: 1px solid rgba(53, 45, 39, .12);
    border-radius: 18px;
    background: rgba(255, 255, 255, .42);
}

.lab-card-icons {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 14px;
    border-radius: 18px;
    background: rgba(18, 18, 18, .06);
    color: rgba(39, 35, 31, .70);
    font-size: 24px;
}

#StoreCheckoutCart {
    min-height: 260px;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    padding: 0 !important;
}

.lab-summary-title {
    margin: 0 0 18px;
    color: var(--lab-shop-graphite);
    font-size: 22px;
    font-weight: 950;
    letter-spacing: -.04em;
}

#BTNcheckoutConfirm.cart-place-order,
.btn.cart-place-order {
    min-height: 54px;
    border: 0 !important;
    border-radius: 18px !important;
    background: linear-gradient(135deg, var(--lab-shop-rust), var(--lab-shop-rust-dark) 62%, #111) !important;
    color: #fff !important;
    text-shadow: none !important;
    font-size: 16px !important;
    font-weight: 900 !important;
    box-shadow: 0 18px 36px rgba(91, 42, 21, .24) !important;
    opacity: 1 !important;
}

/* ==========================================================================
   FLOAT CART COMPATIBILITY
   ========================================================================== */
#StoreFloatCart {
    border: 1px solid rgba(53, 45, 39, .14) !important;
    border-radius: 24px !important;
    background: rgba(250, 248, 244, .95) !important;
    box-shadow: 0 24px 70px rgba(0, 0, 0, .18) !important;
    backdrop-filter: blur(18px);
}

#ToggleFloatCart {
    border: 1px solid rgba(255, 255, 255, .30) !important;
    background: linear-gradient(135deg, var(--lab-shop-rust), var(--lab-shop-rust-dark) 62%, #15110f) !important;
    box-shadow: 0 14px 34px rgba(0, 0, 0, .24) !important;
    opacity: 1 !important;
}

span.badge.counter-items {
    background: #fff !important;
    color: var(--lab-shop-rust-dark) !important;
    border-color: rgba(155, 74, 34, .34) !important;
    font-weight: 900;
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 1180px) {
    .lab-products-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .lab-single-grid,
    .lab-checkout-grid {
        grid-template-columns: 1fr;
    }

    .lab-single-info-card,
    .lab-order-summary {
        position: relative;
        top: auto;
    }
}

@media (max-width: 720px) {
    .lab-shop-slider-wrap {
        padding: 12px;
    }

    .lab-shop-slider-wrap .w3-slider-container {
        height: 560px;
        border-radius: 24px;
    }

    .lab-shop-slider-wrap .w3-slider-container::before {
        background: linear-gradient(0deg, rgba(0,0,0,.82), rgba(0,0,0,.18));
    }

    .lab-shop-slider-wrap .w3-slider-caption {
        left: 22px;
        bottom: 72px;
        width: calc(100% - 44px);
    }

    .lab-shop-slider-wrap .slider-dots {
        left: 22px;
    }

    .lab-products-grid,
    .lab-form-grid,
    .lab-gateway-selector {
        grid-template-columns: 1fr;
    }

    .lab-product-actions,
    .lab-product-page-actions {
        grid-template-columns: 1fr;
    }
}
