/* Lumisil — WooCommerce single product
 * Loaded only on product pages.
 */

/* =========================================================
   Stage 3 — Single product page
   ========================================================= */

body.single-product .content-area {
    width: min(1320px, calc(100% - 48px));
    max-width: 1320px;
    margin: 0 auto;
}

body.single-product div.product {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr);
    gap: 54px;
    align-items: start;
    padding: 46px 0 26px;
}

body.single-product div.product .summary {
    float: none !important;
    width: auto !important;
    margin: 0 !important;
}









body.single-product div.product .summary {
    min-width: 0;
}

body.single-product div.product .product_title {
    margin: 0 0 12px !important;
    color: var(--lumisil-ink);
    font-size: clamp(34px, 3.4vw, 52px);
    line-height: 1.04;
    letter-spacing: -.04em;
}

body.single-product div.product .woocommerce-product-rating {
    margin: 0 0 14px !important;
}

body.single-product div.product .price {
    line-height: 1.15;
}

body.single-product div.product .price del {
    color: #8c98a5 !important;
    font-size: 15px !important;
    font-weight: 600;
}

body.single-product div.product .price ins {
    color: #c97800 !important;
    text-decoration: none;
}

body.single-product div.product .woocommerce-product-details__short-description {
    color: var(--lumisil-muted);
}

body.single-product div.product form.variations_form .variations {
    margin-bottom: 14px !important;
}

body.single-product div.product .stock {
    color: #2f7b43 !important;
    font-weight: 750;
}

body.single-product div.product .out-of-stock {
    color: #b42318 !important;
}























body.single-product div.product .product_meta {
    line-height: 1.6;
}

body.single-product .woocommerce-tabs ul.tabs {
    display: flex;
    gap: 8px;
    margin: 0 0 18px !important;
    padding: 0 !important;
    border: 0 !important;
}

body.single-product .woocommerce-tabs ul.tabs::before {
    display: none !important;
}

body.single-product .woocommerce-tabs ul.tabs li {
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid var(--lumisil-line) !important;
    border-radius: 999px !important;
    background: #fff !important;
}

body.single-product .woocommerce-tabs ul.tabs li.active {
    border-color: var(--lumisil-orange) !important;
    background: #fff7df !important;
}

body.single-product .woocommerce-tabs ul.tabs li a {
    padding: 10px 15px !important;
    color: var(--lumisil-ink) !important;
    font-size: 12.5px;
    font-weight: 850 !important;
}

body.single-product .woocommerce-tabs .panel {
    color: var(--lumisil-muted);
    font-size: 15px;
    line-height: 1.75;
}

body.single-product .related.products > h2 {
    margin-bottom: 22px;
    color: var(--lumisil-ink);
    font-size: 28px;
    letter-spacing: -.025em;
}

body.single-product .related.products ul.products {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 22px !important;
}

body.single-product .related.products ul.products li.product {
    width: auto !important;
    margin: 0 !important;
    float: none !important;
}

body.single-product .related.products ul.products li.product img {
    width: 100% !important;
    height: 245px !important;
    padding: 14px !important;
    object-fit: contain;
    border: 1px solid #f0f2f4;
    background: #fafbfc;
    box-sizing: border-box;
}

body.single-product .related.products ul.products li.product .woocommerce-loop-product__title {
    min-height: 48px;
    padding: 12px 0 2px !important;
    color: var(--lumisil-ink);
    font-size: 13px !important;
    font-weight: 750 !important;
    line-height: 1.35;
}

body.single-product .related.products ul.products li.product .price {
    margin: 7px 0 8px !important;
    color: #135db7 !important;
    font-size: 14px !important;
    font-weight: 800 !important;
}

@media (max-width: 900px) {
    body.single-product .content-area {
        width: calc(100% - 24px);
    }

    body.single-product div.product {
        grid-template-columns: 1fr;
        gap: 28px;
        padding-top: 24px;
    }


    body.single-product div.product .product_title {
        font-size: 36px;
    }



    body.single-product .woocommerce-tabs ul.tabs {
        overflow-x: auto;
        scrollbar-width: none;
    }

    body.single-product .woocommerce-tabs ul.tabs::-webkit-scrollbar {
        display: none;
    }

    body.single-product .related.products ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
    }
}

@media (max-width: 560px) {
    body.single-product div.product {
        gap: 22px;
    }


    body.single-product div.product .product_title {
        font-size: 32px;
    }

    body.single-product div.product .price {
        font-size: 24px !important;
    }



    body.single-product .woocommerce-tabs {
        margin-top: 36px;
    }
}


/* =========================================================
   Stage 3 hotfix — deterministic single product structure
   ========================================================= */

body.single-product .lumisil-single-product {
    margin: 0 auto;
}

body.single-product .lumisil-single-product-main {
    display: grid;
    align-items: start;
    padding: 44px 0 24px;
}

body.single-product .lumisil-single-product-gallery,
body.single-product .lumisil-single-product-summary {
    min-width: 0;
    width: 100% !important;
    max-width: none !important;
    float: none !important;
    margin: 0 !important;
}

body.single-product .lumisil-single-product-summary .product_title {
    hyphens: none;
}

body.single-product .lumisil-single-product-summary form.cart,
body.single-product .lumisil-single-product-summary form.variations_form,
body.single-product .lumisil-single-product-summary table.variations,
body.single-product .lumisil-single-product-summary .variations tbody,
body.single-product .lumisil-single-product-summary .variations tr {
    width: 100% !important;
    max-width: none !important;
}

body.single-product .lumisil-single-product-after {
    width: 100%;
}

body.single-product .lumisil-single-product-after > * {
    width: 100%;
    max-width: none;
}

@media (max-width: 900px) {
    body.single-product .lumisil-single-product {
        width: calc(100% - 24px);
    }

    body.single-product .lumisil-single-product-main {
        grid-template-columns: 1fr;
        gap: 24px;
        padding-top: 20px;
    }


    body.single-product .lumisil-single-product-summary {
        padding: 0 2px;
    }

    body.single-product .lumisil-single-product-summary .product_title {
        margin-top: 0 !important;
        font-size: 32px !important;
        line-height: 1.06 !important;
    }
}

@media (max-width: 560px) {
    body.single-product .lumisil-single-product {
        width: calc(100% - 20px);
    }

    body.single-product .lumisil-single-product-main {
        gap: 18px;
        padding-top: 14px;
    }



    body.single-product .lumisil-single-product-summary .product_title {
        font-size: 29px !important;
    }
}


/* =========================================================
   Stage 3 — NCR-inspired product detail layout
   Root cause fix: the legacy div.product grid was also being
   applied to the new wrapper. The new structure owns the layout.
   ========================================================= */

body.single-product {
    background: #f5f6f7;
    overflow-x: clip;
}

body.single-product #inner-wrap,
body.single-product .site-content,
body.single-product .site-content > .container,
body.single-product .site-content > .site-container,
body.single-product .content-container,
body.single-product .content-container.site-container,
body.single-product .content-wrap,
body.single-product #primary,
body.single-product .content-area,
body.single-product main.site-main {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    float: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

body.single-product .content-container.site-container {
    display: block !important;
    grid-template-columns: none !important;
    grid-template-areas: none !important;
}

body.single-product #secondary,
body.single-product .widget-area {
    display: none !important;
}

/* Important: neutralise the old product-level grid. */
body.single-product div.product.lumisil-single-product {
    display: block !important;
    margin: 0 auto !important;
    padding: 28px 0 58px !important;
}

body.single-product .lumisil-single-product-main {
    display: grid !important;
    align-items: start !important;
    width: 100% !important;
    padding: 0 !important;
}

/* Gallery card */
body.single-product .lumisil-single-product-gallery {
    min-width: 0;
    padding: 8px;
    border-radius: 14px;
    background: #fff;
}






/* Product information card */
body.single-product .lumisil-single-product-summary {
    min-width: 0;
    padding: 28px 30px 30px;
    border-radius: 14px;
    background: #fff;
}

body.single-product .lumisil-single-product-summary .summary {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    float: none !important;
    margin: 0 !important;
}

body.single-product .lumisil-single-product-summary .product_title {
    margin: 0 0 8px !important;
    font-size: clamp(26px, 2.15vw, 36px) !important;
    line-height: 1.18 !important;
    letter-spacing: -.025em !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
}

body.single-product .lumisil-single-product-summary .product_meta {
    order: initial;
    margin: 0 0 16px !important;
    padding: 0 0 14px !important;
    border-top: 0 !important;
    border-bottom: 1px solid var(--lumisil-line);
    color: #7b8490;
    font-size: 12px;
}

body.single-product .lumisil-single-product-summary .woocommerce-product-rating {
    margin: 0 0 12px !important;
}

body.single-product .lumisil-single-product-summary .price {
    margin: 22px 0 6px !important;
    color: #37414c !important;
    font-size: clamp(30px, 2.3vw, 38px) !important;
    font-weight: 850 !important;
    text-align: center;
    letter-spacing: -.025em;
}

body.single-product .lumisil-single-product-summary .woocommerce-product-details__short-description {
    margin: 18px 0 0;
    padding-top: 18px;
    border-top: 1px solid var(--lumisil-line);
    font-size: 14px;
    line-height: 1.6;
}

/* Variations and purchase controls */
body.single-product .lumisil-single-product-summary .single_variation_wrap {
    margin-top: 8px;
}















/* Tabs and related products */
body.single-product .lumisil-single-product-after {
    width: 100%;
}

body.single-product .woocommerce-tabs,
body.single-product .related.products,
body.single-product .upsells.products {
    width: 100% !important;
    max-width: none !important;
}

body.single-product .woocommerce-tabs {
    margin-top: 22px;
    padding: 24px 28px;
    border-radius: 14px;
    background: #fff;
}

body.single-product .related.products,
body.single-product .upsells.products {
    margin-top: 28px;
    padding: 24px 28px;
    border-radius: 14px;
    background: #fff;
}

@media (max-width: 900px) {
    body.single-product div.product.lumisil-single-product {
        width: min(100% - 20px, 680px) !important;
        padding-top: 14px !important;
    }

    body.single-product .lumisil-single-product-main {
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }

    body.single-product .lumisil-single-product-gallery {
        padding: 6px;
    }


    body.single-product .lumisil-single-product-summary {
        padding: 22px 20px 24px;
    }

    body.single-product .lumisil-single-product-summary .product_title {
        font-size: 27px !important;
    }

    body.single-product .lumisil-single-product-summary .price {
        text-align: left;
        font-size: 28px !important;
    }

}

@media (max-width: 560px) {
    body.single-product div.product.lumisil-single-product {
        width: calc(100% - 12px) !important;
    }


    body.single-product .lumisil-single-product-summary {
        padding: 20px 16px 22px;
    }


    body.single-product .woocommerce-tabs,
    body.single-product .related.products,
    body.single-product .upsells.products {
        padding: 20px 16px;
        border-radius: 12px;
    }
}


/* =========================================================
   Stage 3 / Step 1 — product skeleton lock
   Scope: desktop structure only. No commercial/UI refinements.
   ========================================================= */
@media (min-width: 901px) {
    body.single-product div.product.lumisil-single-product {
        margin-inline: auto !important;
    }

    body.single-product .lumisil-single-product-main {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
        gap: 28px !important;
        align-items: start !important;
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
    }

    body.single-product .lumisil-single-product-gallery,
    body.single-product .lumisil-single-product-summary {
        width: 100% !important;
        max-width: none !important;
        min-width: 0 !important;
        margin: 0 !important;
        float: none !important;
        box-sizing: border-box;
    }

    body.single-product .lumisil-single-product-summary .product_title {
        max-width: 100% !important;
    }
}


/* =========================================================
   Stage 3 / Step 1b — direct markup layout lock
   Ensures gallery and summary are actual siblings in one row.
   ========================================================= */
@media (min-width: 901px) {
    body.single-product .lumisil-single-product-gallery,
    body.single-product .lumisil-single-product-summary {
        align-self: start !important;
    }

    body.single-product .lumisil-single-product-summary {
        position: relative !important;
        top: auto !important;
        left: auto !important;
        right: auto !important;
        bottom: auto !important;
        transform: none !important;
    }

    body.single-product .lumisil-product-category-kicker {
        margin: 0 0 8px;
        color: #6f6247;
        font-size: 13px;
        font-weight: 800;
        letter-spacing: .12em;
        text-transform: uppercase;
    }
}


/* =========================================================
   Stage 3 / Step 2 — product gallery + variation cleanup
   ========================================================= */

body.single-product .lumisil-product-gallery {
    position: relative;
    width: 100%;
}

body.single-product .lumisil-product-gallery-track {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

body.single-product .lumisil-product-gallery.is-single .lumisil-product-gallery-track {
    grid-template-columns: 1fr;
}

body.single-product .lumisil-product-gallery-item {
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 1 / 1;
    margin: 0;
    overflow: hidden;
    border: 1px solid var(--lumisil-line);
    border-radius: 10px;
    background: #fff;
}

body.single-product .lumisil-product-gallery.is-single .lumisil-product-gallery-item {
    aspect-ratio: 1.12 / 1;
}

body.single-product .lumisil-product-gallery-item a {
    display: flex;
    width: 100%;
    height: 100%;
    align-items: center;
    justify-content: center;
}

body.single-product .lumisil-product-gallery-item img {
    display: block;
    width: 100%;
    height: 100%;
    max-height: none !important;
    padding: 18px;
    object-fit: contain;
    box-sizing: border-box;
}

body.single-product .lumisil-product-gallery-arrow,
body.single-product .lumisil-product-gallery-dots {
    display: none;
}

body.single-product .lumisil-single-product-summary .price::after {
    display: none !important;
    content: none !important;
}

body.single-product .lumisil-product-price-note {
    margin: 6px 0 0;
    color: #89929c;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.45;
    text-align: center;
}

@media (max-width: 900px) {
    body.single-product .lumisil-product-gallery {
        overflow: hidden;
    }

    body.single-product .lumisil-product-gallery-track {
        display: flex;
        gap: 0;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        overscroll-behavior-x: contain;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }

    body.single-product .lumisil-product-gallery-track::-webkit-scrollbar {
        display: none;
    }

    body.single-product .lumisil-product-gallery-item,
    body.single-product .lumisil-product-gallery.is-single .lumisil-product-gallery-item {
        flex: 0 0 100%;
        min-width: 100%;
        aspect-ratio: 1 / 1;
        scroll-snap-align: start;
    }

    body.single-product .lumisil-product-gallery-item img {
        padding: 12px;
    }

    body.single-product .lumisil-product-gallery.has-multiple .lumisil-product-gallery-arrow {
        position: absolute;
        top: 50%;
        z-index: 3;
        display: grid;
        width: 42px;
        height: 42px;
        place-items: center;
        transform: translateY(-50%);
        border: 1px solid var(--lumisil-line);
        border-radius: 50%;
        background: rgba(255,255,255,.94);
        color: var(--lumisil-ink);
        font-size: 28px;
        line-height: 1;
        box-shadow: 0 6px 20px rgba(12, 35, 58, .08);
    }

    body.single-product .lumisil-product-gallery-arrow.is-prev {
        left: 12px;
    }

    body.single-product .lumisil-product-gallery-arrow.is-next {
        right: 12px;
    }

    body.single-product .lumisil-product-gallery.has-multiple .lumisil-product-gallery-dots {
        position: absolute;
        right: 0;
        bottom: 12px;
        left: 0;
        z-index: 3;
        display: flex;
        justify-content: center;
        gap: 6px;
    }

    body.single-product .lumisil-product-gallery-dots span {
        width: 7px;
        height: 7px;
        border-radius: 999px;
        background: #c6cbd1;
        transition: width .2s ease, background .2s ease;
    }

    body.single-product .lumisil-product-gallery-dots span.is-active {
        width: 22px;
        background: var(--lumisil-orange);
    }

    body.single-product .lumisil-product-price-note {
        text-align: left;
    }
}


/* =========================================================
   Stage 3 / Step 2 polish — mobile gallery layering
   Keep product badges/content below the fixed commerce header.
   ========================================================= */
body.single-product .lumisil-single-product-gallery {
    z-index: 0;
}

body.single-product .lumisil-single-product-gallery > .onsale,
body.single-product .lumisil-single-product-gallery .onsale {
    z-index: 4 !important;
}

@media (max-width: 900px) {
    body.single-product .lumisil-site-header {
        z-index: 10000 !important;
        isolation: isolate;
    }

}

/* =========================================================
   Stage 3 — definitive product purchase UI
   One source of truth for quantity + action buttons.
   ========================================================= */

body.single-product .lumisil-product-order-mode {
    display: flex;
    gap: 11px;
    align-items: flex-start;
    margin: 18px 0 4px;
    padding: 13px 14px;
    border: 1px solid #e8ebef;
    border-radius: 10px;
    background: #fafbfc;
}

body.single-product .lumisil-flow-customisable .lumisil-product-order-mode {
    border-color: #f0d9a6;
    background: #fffaf0;
}

body.single-product .lumisil-product-order-mode-icon {
    display: grid;
    flex: 0 0 30px;
    width: 30px;
    height: 30px;
    place-items: center;
    border-radius: 999px;
    background: #edf6ef;
    color: #28733c;
    font-size: 14px;
    font-weight: 900;
}

body.single-product .lumisil-flow-customisable .lumisil-product-order-mode-icon {
    background: #fff0c9;
    color: #b46b00;
}

body.single-product .lumisil-product-order-mode strong,
body.single-product .lumisil-product-order-mode span {
    display: block;
}

body.single-product .lumisil-product-order-mode strong {
    color: var(--lumisil-ink);
    font-size: 13px;
    line-height: 1.25;
}

body.single-product .lumisil-product-order-mode div > span {
    margin-top: 3px;
    color: var(--lumisil-muted);
    font-size: 11.5px;
    line-height: 1.45;
}

/*
 * Important reset:
 * older Stage 3 rules and the parent theme both turn these WooCommerce
 * wrappers into grids. That constrains our inner action row to the first
 * grid column and is what made "Encomendar" tiny/overlapped.
 */
body.single-product .lumisil-single-product-summary form.cart.lumisil-purchase-form,
body.single-product .lumisil-single-product-summary .woocommerce-variation-add-to-cart {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    grid-template-columns: none !important;
    gap: 0 !important;
    float: none !important;
    clear: both !important;
}

body.single-product .lumisil-single-product-summary form.cart.lumisil-purchase-form {
    margin: 20px 0 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
}

/* Variations */
body.single-product .lumisil-single-product-summary form.variations_form .variations {
    margin: 18px 0 !important;
}

body.single-product .lumisil-single-product-summary .reset_variations {
    display: inline-block;
    margin-top: 8px;
    color: #7a8490;
    font-size: 11px;
    text-decoration: none;
}

/* Canonical action row built by product-purchase.js */
body.single-product .lumisil-purchase-actions {
    position: static !important;
    display: grid !important;
    width: 100% !important;
    max-width: none !important;
    margin: 16px 0 0 !important;
    padding: 0 !important;
    gap: 10px !important;
    align-items: stretch !important;
    box-sizing: border-box !important;
    float: none !important;
    clear: both !important;
    transform: none !important;
}

body.single-product .lumisil-flow-customisable .lumisil-purchase-actions {
    grid-template-columns: 150px minmax(0, 1fr) !important;
}

body.single-product .lumisil-flow-direct .lumisil-purchase-actions {
    grid-template-columns: 150px minmax(0, 1fr) minmax(0, 1fr) !important;
}

/* Quantity: exactly minus | value | plus */
body.single-product .lumisil-single-product-summary .quantity.lumisil-quantity-duplicate {
    display: none !important;
}

body.single-product .lumisil-purchase-actions > .quantity {
    position: relative !important;
    display: grid !important;
    grid-template-columns: 42px minmax(56px, 1fr) 42px !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 52px !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden;
    border: 1px solid #e4e7eb !important;
    border-radius: 10px !important;
    background: #f7f8f9 !important;
    box-sizing: border-box !important;
}

body.single-product .lumisil-purchase-actions > .quantity::before,
body.single-product .lumisil-purchase-actions > .quantity::after {
    display: none !important;
    content: none !important;
}

body.single-product .lumisil-purchase-actions > .quantity > *:not(input.qty):not(.lumisil-qty-btn) {
    display: none !important;
}

body.single-product .lumisil-purchase-actions > .quantity > .lumisil-qty-btn {
    display: grid !important;
    width: 42px !important;
    min-width: 42px !important;
    height: 50px !important;
    margin: 0 !important;
    padding: 0 !important;
    place-items: center;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: var(--lumisil-ink) !important;
    font-size: 18px !important;
    line-height: 1 !important;
    cursor: pointer;
}

body.single-product .lumisil-purchase-actions > .quantity > .lumisil-qty-btn:hover {
    background: #eef1f3 !important;
}

body.single-product .lumisil-purchase-actions > .quantity > input.qty {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 50px !important;
    min-height: 50px !important;
    margin: 0 !important;
    padding: 0 6px !important;
    border: 0 !important;
    border-right: 1px solid #e4e7eb !important;
    border-left: 1px solid #e4e7eb !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: var(--lumisil-ink) !important;
    font-size: 15px !important;
    font-weight: 750 !important;
    text-align: center !important;
    -moz-appearance: textfield;
}

body.single-product .lumisil-purchase-actions > .quantity > input.qty::-webkit-outer-spin-button,
body.single-product .lumisil-purchase-actions > .quantity > input.qty::-webkit-inner-spin-button {
    margin: 0;
    -webkit-appearance: none;
}

/* Actions */
body.single-product .lumisil-purchase-actions > .single_add_to_cart_button,
body.single-product .lumisil-purchase-actions > .lumisil-buy-now,
body.single-product .lumisil-purchase-actions > .lumisil-order-button {
    position: static !important;
    inset: auto !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    min-height: 52px !important;
    margin: 0 !important;
    padding: 0 18px !important;
    float: none !important;
    clear: none !important;
    border-radius: 9px !important;
    box-sizing: border-box !important;
    transform: none !important;
    white-space: nowrap !important;
    font-weight: 900 !important;
}

body.single-product .lumisil-purchase-actions > .single_add_to_cart_button {
    border: 1.5px solid var(--lumisil-orange) !important;
    background: #fff !important;
    color: var(--lumisil-ink) !important;
}

body.single-product .lumisil-purchase-actions > .single_add_to_cart_button:hover {
    background: #fff7df !important;
}

body.single-product .lumisil-purchase-actions > .lumisil-buy-now,
body.single-product .lumisil-purchase-actions > .lumisil-order-button {
    border: 1.5px solid var(--lumisil-orange) !important;
    background: var(--lumisil-orange) !important;
    color: #111 !important;
}

body.single-product .lumisil-purchase-actions > .lumisil-buy-now:hover,
body.single-product .lumisil-purchase-actions > .lumisil-order-button:hover {
    background: #f5a400 !important;
}

body.single-product .lumisil-purchase-actions > .lumisil-buy-now[hidden],
body.single-product .lumisil-flow-customisable .lumisil-buy-now[hidden] {
    display: none !important;
}

body.single-product .lumisil-single-product-summary form.variations_form:not(.is-variation-ready) .lumisil-purchase-actions .single_add_to_cart_button,
body.single-product .lumisil-single-product-summary form.variations_form:not(.is-variation-ready) .lumisil-purchase-actions .lumisil-buy-now,
body.single-product .lumisil-control-disabled {
    opacity: .48 !important;
    filter: grayscale(.12);
    cursor: not-allowed !important;
}









@media (max-width: 900px) {
    body.single-product .lumisil-product-order-mode {
        margin-top: 14px;
    }

    body.single-product .lumisil-flow-customisable .lumisil-purchase-actions {
        grid-template-columns: 1fr !important;
    }

    body.single-product .lumisil-flow-customisable .lumisil-purchase-actions > .quantity,
    body.single-product .lumisil-flow-customisable .lumisil-purchase-actions > .lumisil-order-button {
        grid-column: 1 !important;
    }

    body.single-product .lumisil-flow-direct .lumisil-purchase-actions {
        grid-template-columns: 1fr 1fr !important;
    }

    body.single-product .lumisil-flow-direct .lumisil-purchase-actions > .quantity {
        grid-column: 1 / -1 !important;
    }


}

@media (max-width: 560px) {
    body.single-product .lumisil-purchase-actions {
        gap: 10px !important;
    }

    body.single-product .lumisil-purchase-actions > .single_add_to_cart_button,
    body.single-product .lumisil-purchase-actions > .lumisil-buy-now,
    body.single-product .lumisil-purchase-actions > .lumisil-order-button {
        min-height: 52px !important;
        font-size: 15px !important;
    }
}

body.single-product .lumisil-single-product-summary form.variations_form.lumisil-variation-form-duplicate {
    display: none !important;
}

/* =========================================================
   Stage 3 — definitive variation combobox UI
   Lumisil uses combo boxes only. Swatches/buttons are hidden.
   ========================================================= */
body.single-product .lumisil-single-product-summary form.variations_form table.variations tbody {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px !important;
    width: 100% !important;
}

body.single-product .lumisil-single-product-summary form.variations_form table.variations tr {
    display: block !important;
    width: 100% !important;
    padding: 0 !important;
    border: 0 !important;
}

body.single-product .lumisil-single-product-summary form.variations_form table.variations th.label {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

body.single-product .lumisil-single-product-summary form.variations_form table.variations td.value {
    display: block !important;
    width: 100% !important;
    padding: 0 !important;
}

/*
 * Woo Variation Swatches / Avanam may render visual buttons before/after
 * the native WooCommerce selects. Lumisil deliberately uses only selects.
 */
body.single-product .lumisil-single-product-summary form.variations_form .variable-items-wrapper,
body.single-product .lumisil-single-product-summary form.variations_form .woo-variation-items-wrapper,
body.single-product .lumisil-single-product-summary form.variations_form .woo-variation-swatches,
body.single-product .lumisil-single-product-summary form.variations_form .wvs-style-squared.variable-items-wrapper,
body.single-product .lumisil-single-product-summary form.variations_form .wvs-style-rounded.variable-items-wrapper,
body.single-product .lumisil-single-product-summary form.variations_form .variable-item {
    display: none !important;
}

body.single-product .lumisil-single-product-summary form.variations_form select[name^="attribute_"],
body.single-product .lumisil-single-product-summary form.variations_form select.woo-variation-raw-select {
    position: static !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 50px !important;
    min-height: 50px !important;
    margin: 0 !important;
    padding: 0 42px 0 14px !important;
    border: 1px solid #e1e5e9 !important;
    border-radius: 9px !important;
    background-color: #fff !important;
    color: var(--lumisil-ink) !important;
    box-shadow: none !important;
    font-size: 14px !important;
    font-weight: 750 !important;
    line-height: 1.2 !important;
    appearance: auto !important;
    -webkit-appearance: menulist !important;
}

body.single-product .lumisil-single-product-summary form.variations_form select[name^="attribute_"]:focus,
body.single-product .lumisil-single-product-summary form.variations_form select.woo-variation-raw-select:focus {
    outline: 0 !important;
    border-color: var(--lumisil-orange) !important;
    box-shadow: 0 0 0 2px rgba(255, 174, 0, .14) !important;
}

body.single-product .lumisil-single-product-summary .reset_variations {
    grid-column: 1 / -1;
    margin-top: 2px !important;
}

@media (max-width: 560px) {
    body.single-product .lumisil-single-product-summary form.variations_form table.variations tbody {
        grid-template-columns: 1fr !important;
        gap: 10px !important;
    }

    body.single-product .lumisil-single-product-summary form.variations_form select[name^="attribute_"],
    body.single-product .lumisil-single-product-summary form.variations_form select.woo-variation-raw-select {
        height: 48px !important;
        min-height: 48px !important;
        font-size: 15px !important;
    }
}

/* Product-only refinements moved from the global commerce layer. */

@media (min-width: 901px) {
    body.single-product div.product.lumisil-single-product {
        padding: 24px 0 48px !important;
    }
    
    body.single-product .lumisil-single-product-main {
        grid-template-columns: minmax(0, 1fr) minmax(390px, .92fr) !important;
        gap: 24px !important;
    }
    
    
    body.single-product .lumisil-single-product-summary {
        padding: 24px 26px 26px !important;
    }
}

/* Product title already provides the visible H1, so the long breadcrumb bar is unnecessary. */
body.single-product .woocommerce-breadcrumb,
body.single-product .kadence-breadcrumbs,
body.single-product .breadcrumbs,
body.single-product .rank-math-breadcrumb {
    display: none !important;
}

/* Avoid leftover vertical space from theme breadcrumb/title wrappers on product pages. */
body.single-product .entry-hero,
body.single-product .entry-header:not(.lumisil-product-header),
body.single-product .page-header {
    min-height: 0 !important;
}

/* =========================================================
   Single product top-area cleanup
   Avanam still prints an empty .product-title.product-above wrapper after
   the visual breadcrumb is removed. Hide the empty theme band completely
   so product content starts directly below the Lumisil navigation.
   ========================================================= */
body.single-product .product-title.product-above {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
}

body.single-product #primary.content-area,
body.single-product .content-container.site-container,
body.single-product main#main.site-main {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

body.single-product div.product.lumisil-single-product {
    margin-top: 0 !important;
}

/* The compact breadcrumb owns the space directly below the global nav. */
body.single-product div.product.lumisil-single-product {
    padding-top: 18px !important;
}

@media (max-width: 900px) {
    body.single-product div.product.lumisil-single-product {
        padding-top: 12px !important;
    }
}

/* Product-card CTA optical centering
 * The explicit height + matching line-height overrides parent-theme metrics.
 */
body.single-product .related.products ul.products li.product .button,
body.single-product .upsells.products ul.products li.product .button {
    box-sizing: border-box !important;
}

/*
 * Use an explicit height + matching line-height because the parent theme
 * applies button font metrics that make the label look too low on hover.
 */
body.single-product .related.products ul.products li.product .button,
body.single-product .upsells.products ul.products li.product .button {
    height: 38px !important;
    min-height: 38px !important;
    padding: 0 14px !important;
    display: inline-block !important;
    line-height: 38px !important;
    text-align: center !important;
    vertical-align: middle !important;
    white-space: nowrap;
}

body.single-product .related.products ul.products li.product .button > *,
body.single-product .upsells.products ul.products li.product .button > * {
    line-height: inherit !important;
    vertical-align: middle !important;
}

@media (max-width: 900px) {
    body.single-product .related.products ul.products li.product .button,
    body.single-product .upsells.products ul.products li.product .button {
        height: 42px !important;
        min-height: 42px !important;
        padding: 0 12px !important;
        line-height: 42px !important;
    }
}

/* Desktop content width formerly shared globally. */
@media (min-width: 901px) {
    body.single-product .lumisil-single-product,
    body.single-product div.product.lumisil-single-product {
        width: min(var(--lumisil-desktop-content), calc(100% - var(--lumisil-desktop-gutter))) !important;
        max-width: var(--lumisil-desktop-content) !important;
    }
}
