/* ============================================
   LUMI EVENTS — WooCommerce Overrides
   Exact match to cart.html & checkout.html mockups
   ============================================ */

/* ── BREAK OUT OF THEME CONTAINER ── */
/* Only break out for Cart and Checkout so Shop stays boxed */
.woocommerce-cart .site-main, .woocommerce-cart .content-area, .woocommerce-cart #primary,
.woocommerce-checkout .site-main, .woocommerce-checkout .content-area, .woocommerce-checkout #primary {
    max-width: 100% !important;
    width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* ── GLOBAL WOOCOMMERCE PAGE WRAPPER ── */
.catalog-main .site-main,
.catalog-main .content-area,
.catalog-main #primary {
    max-width: 100% !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}
body.woocommerce-shop, body.archive.woocommerce {
    background-color: var(--lumi-warm-white, #FFFCF7) !important;
}

/* ══ CART & CHECKOUT — SHARED SECTION ══ */
.woocommerce-cart .woocommerce,
.woocommerce-checkout .woocommerce {
    max-width: 1400px; margin: 0 auto; padding: 80px 40px;
    background: var(--lumi-warm-white, #FFFCF7);
}

/* ── CART PAGE ── */
.woocommerce-cart .woocommerce {
    display: grid; grid-template-columns: 1fr 340px; gap: 40px; align-items: start;
}
@media (max-width: 992px) {
    .woocommerce-cart .woocommerce { grid-template-columns: 1fr; padding: 40px 16px; }
}

/* Cart notices span full width */
.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }

/* Cart Table Card */
.woocommerce-cart form.woocommerce-cart-form {
    background: var(--lumi-white, #fff); border-radius: 16px;
    box-shadow: 0 2px 12px rgba(0,0,0,.06); padding: 0; overflow: hidden;
}
.woocommerce-cart table.cart {
    border: none !important; box-shadow: none;
    width: 100%; border-collapse: collapse;
}

/* Table Header */
.woocommerce-cart table.cart th {
    background: var(--lumi-light-section, #F8F4EC); padding: 14px 16px;
    font-family: 'Inter', sans-serif; color: var(--lumi-charcoal, #1E1E2A);
    font-weight: 600; text-transform: uppercase; font-size: .8rem; letter-spacing: 1px;
    border: none; white-space: nowrap;
}

/* Table Cells */
.woocommerce-cart table.cart td {
    padding: 16px; border-bottom: 1px solid rgba(0,0,0,.08);
    vertical-align: middle; border-top: none;
}

/* Product Thumbnails */
.woocommerce-cart table.cart td.product-thumbnail a { display: block; }
.woocommerce-cart table.cart td.product-thumbnail img,
.woocommerce-cart table.cart img {
    width: 70px !important; height: 70px !important; min-width: 70px;
    border-radius: 8px; object-fit: cover; box-shadow: none; display: block;
}

/* Product Name */
.woocommerce-cart table.cart td.product-name a {
    font-size: 1rem; font-weight: 600; color: var(--lumi-charcoal, #1E1E2A);
    text-decoration: none; white-space: nowrap;
}
.woocommerce-cart table.cart td.product-name a:hover { color: var(--lumi-burgundy, #7A2D40); }

/* Price & Subtotal — never wrap */
.woocommerce-cart table.cart td.product-price,
.woocommerce-cart table.cart td.product-subtotal {
    white-space: nowrap; font-weight: 500; font-size: .95rem;
}

/* Remove button */
.woocommerce-cart table.cart td.product-remove { text-align: center; }
.woocommerce-cart table.cart td.product-remove a.remove {
    color: #e74c3c !important; font-size: 1.3rem; background: none !important; line-height: 1;
}

/* ══ MOBILE CART ══ */
@media (max-width: 768px) {
    .woocommerce-cart .woocommerce { padding: 24px 12px; }
    .woocommerce-cart form.woocommerce-cart-form { border-radius: 12px; overflow: visible; }

    /* Force table into card layout */
    .woocommerce-cart table.cart { display: block; }
    .woocommerce-cart table.cart thead { display: none !important; }
    .woocommerce-cart table.cart tbody { display: block; }
    .woocommerce-cart table.cart tbody tr {
        display: grid !important; width: 100% !important;
        grid-template-columns: 60px 1fr auto;
        grid-template-rows: auto auto;
        gap: 4px 12px; align-items: center;
        padding: 16px; border-bottom: 1px solid rgba(0,0,0,.08);
        position: relative;
    }
    .woocommerce-cart table.cart tbody tr:last-child { border-bottom: none; }

    /* Remove — top right */
    .woocommerce-cart table.cart td.product-remove {
        position: absolute !important; top: 10px; right: 10px;
        width: auto !important; padding: 0; border: none;
    }

    /* Thumbnail — row 1, col 1, spans 2 rows */
    .woocommerce-cart table.cart td.product-thumbnail {
        grid-row: 1 / 3; grid-column: 1;
        width: auto !important; padding: 0; border: none;
        display: block !important;
    }
    .woocommerce-cart table.cart td.product-thumbnail img {
        width: 60px !important; height: 60px !important; min-width: 60px;
    }

    /* Product name — row 1, col 2-3 */
    .woocommerce-cart table.cart td.product-name {
        grid-row: 1; grid-column: 2 / 4;
        width: auto !important; padding: 0 24px 0 0; border: none;
        align-self: end;
    }
    .woocommerce-cart table.cart td.product-name::before { display: none !important; }
    .woocommerce-cart table.cart td.product-name a {
        font-size: .95rem; white-space: normal;
    }

    /* Price — row 2, col 2 */
    .woocommerce-cart table.cart td.product-price {
        grid-row: 2; grid-column: 2;
        width: auto !important; padding: 0; border: none;
        font-size: .85rem; align-self: start;
    }

    /* Quantity — row 2, col 3 */
    .woocommerce-cart table.cart td.product-quantity {
        grid-row: 2; grid-column: 3;
        width: auto !important; padding: 0; border: none;
        font-size: .85rem; align-self: start;
    }

    /* Subtotal — hide on mobile (price * qty is obvious) */
    .woocommerce-cart table.cart td.product-subtotal {
        grid-row: 3; grid-column: 2 / 4;
        width: auto !important; padding: 4px 0 0; border: none;
        font-weight: 700; font-size: .9rem;
    }
    .woocommerce-cart table.cart td.product-subtotal::before {
        content: 'Subtotal: ' !important; font-weight: 400; color: #8E8E9E;
    }

    /* Actions row */
    .woocommerce-cart table.cart td.actions {
        display: block !important; width: 100% !important;
        grid-column: 1 / -1; padding: 16px;
    }
}
/* Cart action buttons row */
.woocommerce-cart table.cart td.actions {
    padding: 20px; border-bottom: none;
}
.woocommerce-cart table.cart td.actions .coupon { display: inline-flex; gap: 10px; align-items: center; }
.woocommerce-cart table.cart td.actions .coupon input.input-text {
    padding: 12px 15px; border: 1px solid rgba(0,0,0,.08); border-radius: 8px;
    background: var(--lumi-warm-white, #FFFCF7); font-family: 'Inter', sans-serif;
}
.woocommerce-cart table.cart td.actions .coupon button,
.woocommerce-cart table.cart td.actions > button[name="update_cart"] {
    background: linear-gradient(135deg, #B8922E, #D4B65A, #B8922E); color: #fff;
    padding: 12px 28px; border-radius: 50px; font-weight: 600; font-size: .9rem;
    letter-spacing: 1px; text-transform: uppercase; border: none; cursor: pointer;
    transition: all 0.4s cubic-bezier(.25,.46,.45,.94);
    box-shadow: 0 8px 30px rgba(184,146,46,.2);
}
.woocommerce-cart table.cart td.actions .coupon button:hover,
.woocommerce-cart table.cart td.actions > button[name="update_cart"]:hover {
    transform: translateY(-3px); box-shadow: 0 12px 40px rgba(184,146,46,.35);
}

/* ── Cart Collaterals (contains BOTH cross-sells AND cart_totals) ── */
/* Make the collaterals wrapper transparent and use internal layout */
.woocommerce-cart .cart-collaterals {
    width: 100% !important; float: none;
    background: none; padding: 0; border: none; box-shadow: none; border-radius: 0;
    display: flex; flex-direction: column; gap: 40px;
}

/* Cart Totals box — the styled card (matches .cart-totals-box in mockup) */
.woocommerce-cart .cart-collaterals .cart_totals {
    width: 100% !important; float: none; order: 1;
    background: var(--lumi-white, #fff); padding: 30px; border-radius: 16px;
    box-shadow: 0 2px 12px rgba(0,0,0,.06); border: 1px solid rgba(0,0,0,.08);
}
.woocommerce-cart .cart-collaterals .cart_totals h2 {
    font-family: 'Playfair Display', serif; font-size: 1.5rem;
    margin-bottom: 20px; padding-bottom: 15px; border-bottom: 1px solid rgba(0,0,0,.08);
}
.woocommerce-cart .cart-collaterals .cart_totals .shop_table { border: none !important; box-shadow: none; }
.woocommerce-cart .cart-collaterals .cart_totals .shop_table th {
    background: none; text-transform: none; font-weight: 400; font-size: 1.05rem;
    color: var(--lumi-text-body, #5A5A6E); padding: 15px 0; border-top: none;
}
.woocommerce-cart .cart-collaterals .cart_totals .shop_table td {
    text-align: right; padding: 15px 0; border-top: none;
    font-size: 1.05rem; color: var(--lumi-text-body, #5A5A6E);
}
.woocommerce-cart .cart-collaterals .cart_totals .shop_table tr.order-total th,
.woocommerce-cart .cart-collaterals .cart_totals .shop_table tr.order-total td {
    font-weight: 700; font-size: 1.3rem; color: var(--lumi-charcoal, #1E1E2A);
    border-top: 1px solid rgba(0,0,0,.08); padding-top: 15px;
}
.woocommerce-cart .cart-collaterals .wc-proceed-to-checkout a.button {
    display: block; width: 100%; text-align: center;
    background: linear-gradient(135deg, #7A2D40, #9E3D55); color: #fff;
    padding: 15px 0; border-radius: 50px; font-weight: 600; font-size: 1rem;
    text-transform: uppercase; letter-spacing: 1px; margin-top: 20px;
    transition: all 0.4s cubic-bezier(.25,.46,.45,.94); border: none;
}
.woocommerce-cart .cart-collaterals .wc-proceed-to-checkout a.button:hover {
    transform: translateY(-3px); box-shadow: 0 12px 40px rgba(122,45,64,.3);
}

/* Cross-sells — hide from sidebar, or show below if desired */
.woocommerce-cart .cart-collaterals .cross-sells {
    display: none; /* Hide cross-sells from cart sidebar — they clutter the mockup layout */
}

/* ── CHECKOUT PAGE (matches checkout.html) ── */
.woocommerce-checkout .woocommerce { display: block; }

/* Notices & login/coupon toggles span full width */
.woocommerce-checkout .woocommerce-notices-wrapper,
.woocommerce-form-login-toggle,
.woocommerce-form-coupon-toggle {
    max-width: 100%; margin-bottom: 20px;
}
.woocommerce-form-login-toggle,
.woocommerce-form-coupon-toggle {
    background: var(--lumi-light-section, #F8F4EC); padding: 20px;
    border-radius: 8px; border-left: 4px solid var(--lumi-gold, #B8922E);
}
.woocommerce-form-login-toggle a,
.woocommerce-form-coupon-toggle a { color: var(--lumi-burgundy, #7A2D40); font-weight: 600; }

/* Checkout form grid */
.woocommerce-checkout form.checkout {
    display: grid; grid-template-columns: 1fr 400px; gap: 40px; align-items: start;
}
@media (max-width: 992px) { .woocommerce-checkout form.checkout { grid-template-columns: 1fr; } }
.woocommerce-checkout form.checkout > .woocommerce-notices-wrapper { grid-column: 1 / -1; }

/* Billing section card — left column */
#customer_details {
    grid-column: 1; grid-row: 1 / 3;
    background: var(--lumi-white, #fff); padding: 30px; border-radius: 16px;
    box-shadow: 0 2px 12px rgba(0,0,0,.06); border: 1px solid rgba(0,0,0,.08);
}
#customer_details h3 {
    font-family: 'Playfair Display', serif; font-size: 1.5rem;
    margin-bottom: 20px; padding-bottom: 15px; border-bottom: 1px solid rgba(0,0,0,.08);
}
/* Keep billing cols stacked */
#customer_details .col-1, #customer_details .col-2 { width: 100% !important; float: none; }

/* Order review — right column */
#order_review_heading {
    grid-column: 2; grid-row: 1;
    background: var(--lumi-white, #fff); padding: 30px; border-radius: 16px;
    box-shadow: 0 2px 12px rgba(0,0,0,.06); border: 1px solid rgba(0,0,0,.08);
    margin: 0; border-bottom-left-radius: 0; border-bottom-right-radius: 0;
    border-bottom: none; padding-bottom: 15px; align-self: end;
    font-family: 'Playfair Display', serif; font-size: 1.5rem;
}
#order_review {
    grid-column: 2; grid-row: 2;
    background: var(--lumi-white, #fff); padding: 30px; border-radius: 16px;
    box-shadow: 0 2px 12px rgba(0,0,0,.06); border: 1px solid rgba(0,0,0,.08);
    border-top-left-radius: 0; border-top-right-radius: 0;
    border-top: none; padding-top: 0; align-self: start;
}
@media (max-width: 992px) {
    #customer_details { grid-column: 1; grid-row: auto; }
    #order_review_heading, #order_review { grid-column: 1; grid-row: auto; }
}

/* Order review table (matches .order-review-table) */
.woocommerce-checkout #order_review table.shop_table {
    border: none; box-shadow: none; border-radius: 0; margin-bottom: 20px;
}
.woocommerce-checkout #order_review table.shop_table th {
    background: none; padding: 15px 0; color: var(--lumi-charcoal, #1E1E2A); font-weight: 600;
    border-bottom: 1px solid rgba(0,0,0,.08);
}
.woocommerce-checkout #order_review table.shop_table td {
    padding: 15px 0; border-top: none; border-bottom: 1px solid rgba(0,0,0,.08);
    color: var(--lumi-text-body, #5A5A6E);
}
.woocommerce-checkout #order_review table.shop_table td.product-total { text-align: right; }
.woocommerce-checkout #order_review table.shop_table tfoot th { background: none; }
.woocommerce-checkout #order_review table.shop_table tr.order-total th,
.woocommerce-checkout #order_review table.shop_table tr.order-total td {
    font-weight: 700; font-size: 1.2rem; padding-top: 20px;
    border-top: 1px solid rgba(0,0,0,.08);
}
.woocommerce-checkout #order_review table.shop_table tr.order-total td {
    color: var(--lumi-burgundy, #7A2D40); text-align: right;
}

/* Form fields (matches mockup form-group) */
.woocommerce form .form-row { margin-bottom: 20px; padding: 0; }
.woocommerce form .form-row label {
    display: block; margin-bottom: 8px; font-size: .9rem;
    color: var(--lumi-charcoal, #1E1E2A); font-weight: 600;
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
    width: 100%; padding: 12px 15px; border: 1px solid rgba(0,0,0,.08);
    border-radius: 8px; font-family: 'Inter', sans-serif; font-size: 1rem;
    background: var(--lumi-warm-white, #FFFCF7);
    transition: all 0.4s cubic-bezier(.25,.46,.45,.94);
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus {
    border-color: var(--lumi-gold, #B8922E); outline: none;
    box-shadow: 0 0 0 3px rgba(184,146,46,.1);
}

/* Payment methods (matches .payment-method) */
.woocommerce #payment { background: transparent; border-radius: 0; }
.woocommerce #payment ul.payment_methods { padding: 0; border: none; margin-bottom: 30px; }
.woocommerce #payment ul.payment_methods li {
    background: var(--lumi-warm-white, #FFFCF7); border: 1px solid rgba(0,0,0,.08);
    border-radius: 8px; padding: 15px; margin-bottom: 15px; list-style: none;
}
.woocommerce #payment ul.payment_methods li label {
    display: flex; align-items: center; gap: 10px; font-weight: 600;
    color: var(--lumi-charcoal, #1E1E2A); cursor: pointer;
}
.woocommerce #payment div.payment_box {
    background: transparent; padding: 10px 0 0;
    color: var(--lumi-text-muted, #8E8E9E); font-size: .85rem; line-height: 1.5;
}
.woocommerce #payment div.payment_box::before { display: none; }

/* Place order / Submit button */
.woocommerce-checkout #payment #place_order,
.woocommerce-checkout #payment input[type="submit"],
.woocommerce-checkout #payment button[type="submit"] {
    background: linear-gradient(135deg, #7A2D40, #9E3D55); color: #fff;
    width: 100%; padding: 15px 0; border-radius: 50px; font-weight: 600;
    font-size: 1.1rem; text-transform: uppercase; letter-spacing: 1px;
    transition: all 0.4s cubic-bezier(.25,.46,.45,.94); border: none; cursor: pointer;
}
.woocommerce-checkout #payment #place_order:hover,
.woocommerce-checkout #payment input[type="submit"]:hover,
.woocommerce-checkout #payment button[type="submit"]:hover {
    transform: translateY(-3px); box-shadow: 0 12px 40px rgba(122,45,64,.3);
}

/* Privacy text */
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper {
    font-size: .85rem; color: var(--lumi-text-muted, #8E8E9E); margin-bottom: 20px;
}

/* Remove link */
.woocommerce a.remove { color: #e74c3c !important; font-size: 1.5em; background: transparent !important; }
.woocommerce a.remove:hover { color: #c0392b !important; background: transparent !important; }

/* Select2 Dropdown Fixes */
.select2-container .select2-selection--single { height: 48px !important; border: 1px solid rgba(0,0,0,.08) !important; border-radius: 8px !important; background: var(--lumi-warm-white, #FFFCF7) !important; }
.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 48px !important; color: var(--lumi-text-body, #5A5A6E) !important; padding-left: 15px !important; }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 46px !important; }

/* Grid Span Fixes */
.woocommerce-notices-wrapper { grid-column: 1 / -1; }
.woocommerce-form-login-toggle, .woocommerce-form-coupon-toggle { grid-column: 1 / -1; background: var(--lumi-light-section); padding: 20px; border-radius: var(--lumi-radius-sm); border-left: 4px solid var(--lumi-gold); margin-bottom: 20px; }


/* ══════════════════════════════════════════
   SINGLE PRODUCT LAYOUT
   Matches: single-rental.html mockup
   ══════════════════════════════════════════ */

.woocommerce div.product {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    margin-bottom: 0;
    align-items: start;
    padding: 60px 0 0;
}
@media (max-width: 992px) { .woocommerce div.product { grid-template-columns: 1fr; gap: 30px; } }

/* ── Product Gallery ── */
.woocommerce div.product div.images,
.woocommerce div.product div.summary { float: none; width: 100%; margin: 0; }

.woocommerce div.product div.images { display: flex; flex-direction: column; gap: 16px; }
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper { display: flex; flex-direction: column; gap: 16px; }
.woocommerce div.product div.images .woocommerce-product-gallery__image:first-child img {
    width: 100%;
    height: 500px;
    object-fit: cover;
    border-radius: var(--lumi-radius-md);
    border: 1px solid var(--lumi-border);
}
.woocommerce div.product div.images .woocommerce-product-gallery__image:not(:first-child) {
    display: none; /* thumbnails handled separately */
}
.woocommerce div.product div.images .flex-control-thumbs { margin-top: 0 !important; display: grid !important; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.woocommerce div.product div.images .flex-control-thumbs li { float: none; width: 100%; }
.woocommerce div.product div.images .flex-control-thumbs li img {
    height: 100px;
    object-fit: cover;
    border-radius: var(--lumi-radius-sm);
    border: 2px solid transparent;
    opacity: .7;
    transition: var(--lumi-transition);
    cursor: pointer;
}
.woocommerce div.product div.images .flex-control-thumbs li img:hover,
.woocommerce div.product div.images .flex-control-thumbs li img.flex-active { opacity: 1; border-color: var(--lumi-gold); }
.woocommerce div.product div.images .woocommerce-product-gallery__trigger { display: none; }

/* ── Product Summary ── */
.woocommerce div.product div.summary { display: flex; flex-direction: column; }

/* WooCommerce Breadcrumb */
.woocommerce .woocommerce-breadcrumb {
    font-size: .85rem;
    color: var(--lumi-text-muted);
    margin-bottom: 16px;
    padding: 0;
}
.woocommerce .woocommerce-breadcrumb a { color: var(--lumi-charcoal); text-decoration: none; }
.woocommerce .woocommerce-breadcrumb a:hover { color: var(--lumi-burgundy); }

/* Product Title */
.woocommerce div.product .product_title {
    font-family: var(--lumi-font-heading);
    font-size: 2.5rem;
    color: var(--lumi-charcoal);
    margin-bottom: 12px;
    line-height: 1.2;
}
@media (max-width: 768px) { .woocommerce div.product .product_title { font-size: 1.8rem; } }

/* Price */
.woocommerce div.product p.price,
.woocommerce div.product span.price {
    font-size: 1.8rem;
    color: var(--lumi-burgundy);
    font-weight: 700;
    margin-bottom: 24px;
    display: flex;
    align-items: baseline;
    gap: 8px;
}
.woocommerce div.product p.price ins { background: none; color: var(--lumi-burgundy); font-weight: 700; text-decoration: none; }
.woocommerce div.product p.price del { font-size: 1.2rem; color: var(--lumi-text-muted); font-weight: 400; }

/* Short Description */
.woocommerce div.product .woocommerce-product-details__short-description {
    font-size: 1.05rem;
    line-height: 1.7;
    color: var(--lumi-text-body);
    margin-bottom: 30px;
    padding-bottom: 30px;
    border-bottom: 1px solid var(--lumi-border);
}

/* Product Meta (SKU, Category) */
.woocommerce div.product .product_meta {
    margin-bottom: 30px;
    font-size: .95rem;
}
.woocommerce div.product .product_meta > span {
    display: flex;
    margin-bottom: 12px;
}
.woocommerce div.product .product_meta > span > span:first-child,
.woocommerce div.product .product_meta .sku_wrapper,
.woocommerce div.product .product_meta .posted_in {
    font-weight: 600;
    color: var(--lumi-charcoal);
    min-width: 120px;
}
.woocommerce div.product .product_meta a { color: var(--lumi-text-body); text-decoration: none; }
.woocommerce div.product .product_meta a:hover { color: var(--lumi-burgundy); }

/* ── ADD TO CART FORM (Mockup Match) ── */
.woocommerce div.product form.cart {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 20px;
    margin-bottom: 20px;
    padding: 24px;
    background: var(--lumi-warm-white);
    border-radius: var(--lumi-radius-md);
    border: 1px solid var(--lumi-border);
}

/* Quantity Wrapper with +/- Buttons */
.woocommerce div.product form.cart .quantity,
.woocommerce-cart table.cart .quantity {
    display: flex !important;
    align-items: center;
    border: 1px solid var(--lumi-border);
    border-radius: var(--lumi-radius-sm);
    background: var(--lumi-white);
    overflow: hidden;
    margin: 0;
    width: auto;
}

.lumi-qty-btn {
    width: 40px;
    height: 48px;
    background: none;
    border: none;
    color: var(--lumi-charcoal);
    cursor: pointer;
    font-size: 1.2rem;
    font-weight: 400;
    transition: var(--lumi-transition);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    line-height: 1;
}
.lumi-qty-btn:hover {
    background: var(--lumi-light-section);
}

.woocommerce div.product form.cart .quantity input.qty,
.woocommerce-cart table.cart .quantity input.qty {
    width: 60px;
    height: 48px;
    border: none;
    border-left: 1px solid var(--lumi-border);
    border-right: 1px solid var(--lumi-border);
    text-align: center;
    font-family: var(--lumi-font-body);
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--lumi-charcoal);
    padding: 0;
    -moz-appearance: textfield;
    appearance: textfield;
    margin: 0;
    background: var(--lumi-white);
}
.woocommerce div.product form.cart .quantity input.qty::-webkit-outer-spin-button,
.woocommerce div.product form.cart .quantity input.qty::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Add to Quote Button */
.woocommerce div.product form.cart button.button,
.woocommerce div.product form.cart .single_add_to_cart_button {
    height: 48px;
    padding: 0 32px;
    flex-grow: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background: var(--lumi-burgundy);
    color: var(--lumi-white);
    border-radius: 30px;
    font-weight: 600;
    font-size: 1rem;
    transition: var(--lumi-transition);
    border: none;
    cursor: pointer;
    text-transform: none;
    letter-spacing: 0;
}
.woocommerce div.product form.cart button.button:hover,
.woocommerce div.product form.cart .single_add_to_cart_button:hover {
    background: var(--lumi-charcoal);
}

/* ── PRODUCT TABS ── */
.woocommerce div.product .woocommerce-tabs {
    grid-column: 1 / -1;
    margin-top: 40px;
    padding: 0 0 60px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs {
    display: flex;
    gap: 40px;
    border-bottom: 1px solid var(--lumi-border);
    margin-bottom: 30px;
    padding: 0;
    overflow-x: auto;
    list-style: none;
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs::after { display: none !important; content: none !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
    background: none !important;
    border: none !important;
    padding: 0 0 16px !important;
    margin: 0 !important;
    border-radius: 0 !important;
    border-bottom: 2px solid transparent !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none !important; content: none !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { border-bottom-color: var(--lumi-gold) !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
    font-family: var(--lumi-font-body);
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--lumi-text-muted);
    padding: 0;
    transition: var(--lumi-transition);
    text-decoration: none;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover { color: var(--lumi-charcoal); }
.woocommerce div.product .woocommerce-Tabs-panel {
    font-size: 1.05rem;
    line-height: 1.8;
    color: var(--lumi-text-body);
    padding: 0 !important;
    background: none !important;
    border: none !important;
    box-shadow: none !important;
}
.woocommerce div.product .woocommerce-Tabs-panel h2 { display: none; }
.woocommerce div.product .woocommerce-Tabs-panel h3 {
    font-family: var(--lumi-font-heading);
    font-size: 1.4rem;
    color: var(--lumi-charcoal);
    margin: 30px 0 15px;
}
.woocommerce div.product .woocommerce-Tabs-panel ul {
    list-style: disc;
    padding-left: 20px;
    margin: 20px 0;
}
.woocommerce div.product .woocommerce-Tabs-panel li {
    margin-bottom: 10px;
}

/* ── RELATED PRODUCTS ── */
.woocommerce .related.products,
.woocommerce .upsells.products {
    grid-column: 1 / -1;
    padding: 80px 0;
    background: var(--lumi-warm-white);
}
.woocommerce .related.products > h2,
.woocommerce .upsells.products > h2 {
    text-align: center;
    font-family: var(--lumi-font-heading);
    font-size: 2rem;
    color: var(--lumi-charcoal);
    margin-bottom: 40px;
}

/* ── PRODUCT GRID (Shop + Related) ── */
.woocommerce ul.products { display: grid; gap: 24px; padding: 0; margin: 0; }
.woocommerce ul.products.columns-1 { grid-template-columns: 1fr; }
.woocommerce ul.products.columns-2 { grid-template-columns: repeat(2, 1fr); }
.woocommerce ul.products.columns-3 { grid-template-columns: repeat(3, 1fr); }
.woocommerce ul.products.columns-4 { grid-template-columns: repeat(4, 1fr); }
.woocommerce ul.products.columns-5 { grid-template-columns: repeat(5, 1fr); }
.woocommerce ul.products.columns-6 { grid-template-columns: repeat(6, 1fr); }
.woocommerce ul.products:not([class*="columns-"]) { grid-template-columns: repeat(3, 1fr); }

.woocommerce ul.products::before, .woocommerce ul.products::after { display: none !important; content: none !important; }
@media (max-width: 992px) { .woocommerce ul.products { grid-template-columns: repeat(2, 1fr) !important; } }
@media (max-width: 600px) { .woocommerce ul.products { grid-template-columns: 1fr !important; } }

.woocommerce ul.products li.product {
    float: none;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    background: #ffffff !important;
    border: 1px solid rgba(0,0,0,0.08) !important;
    border-radius: 12px !important;
    overflow: hidden !important;
    transition: all 0.3s ease;
    box-shadow: 0 4px 24px rgba(0,0,0,0.04) !important;
    display: flex;
    flex-direction: column;
    text-align: left;
    padding: 0 !important;
}
.woocommerce ul.products li.product:hover {
    transform: translateY(-5px);
    box-shadow: 0 12px 32px rgba(0,0,0,0.08) !important;
    border-color: rgba(184,146,46,0.3) !important;
}
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link {
    display: block;
    text-decoration: none;
    background: var(--lumi-light-section); /* Behind image */
}
.woocommerce ul.products li.product img {
    width: 100%;
    height: 220px;
    object-fit: cover;
    margin: 0;
    border-radius: 0;
    border: none;
    transition: var(--lumi-transition);
}
.woocommerce ul.products li.product:hover img {
    transform: scale(1.05);
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-family: var(--lumi-font-heading);
    font-size: 1.2rem;
    color: var(--lumi-charcoal);
    margin: 20px 20px 10px;
    padding: 0;
    line-height: 1.3;
}
.woocommerce ul.products li.product .price {
    color: var(--lumi-burgundy);
    font-weight: 600;
    font-size: 1.1rem;
    margin: 0 20px 20px;
    display: flex;
    align-items: center;
    gap: 6px;
}
/* Price suffix styling if present */
.woocommerce ul.products li.product .price .woocommerce-price-suffix {
    font-size: .85rem;
    color: var(--lumi-text-muted);
    font-weight: 400;
}
.woocommerce ul.products li.product .button {
    margin: auto 20px 20px;
    background: transparent;
    color: var(--lumi-gold);
    border: 1px solid var(--lumi-gold);
    border-radius: 30px;
    padding: 10px 20px;
    font-weight: 600;
    transition: var(--lumi-transition);
    display: block;
    text-align: center;
    text-transform: none;
}
.woocommerce ul.products li.product .button:hover {
    background: var(--lumi-gold);
    color: var(--lumi-white);
}

/* ── SHOP / ARCHIVE PAGE ── */
.woocommerce-shop .woocommerce,
.archive.woocommerce .woocommerce {
    /* Layout handled by rentals-layout now */
}

/* Shop Layout with Sidebar */
.rentals-layout {
    display: grid;
    grid-template-columns: 280px minmax(0, 1fr);
    gap: 30px; /* Move sidebar closer to products */
    align-items: start;
    max-width: 1280px; /* Match theme boxed layout perfectly */
    margin: 0 auto;
    padding: 60px 24px;
}
.rentals-layout.no-sidebar {
    grid-template-columns: minmax(0, 1fr);
}
@media (max-width: 992px) {
    .rentals-layout { grid-template-columns: minmax(0, 1fr); }
}

/* ── SIDEBAR WIDGETS ── */
.lumi-shop-sidebar {
    position: sticky;
    top: 100px;
}
.sidebar-widget {
    background: #ffffff !important;
    border: 1px solid rgba(0,0,0,0.08) !important;
    border-radius: 12px !important;
    padding: 30px !important;
    margin-bottom: 30px !important;
    box-shadow: 0 4px 24px rgba(0,0,0,0.04) !important; /* Stronger box style */
}
.sidebar-title {
    font-family: var(--lumi-font-body, 'Inter', sans-serif);
    font-size: 1.1rem;
    font-weight: 700;
    margin-bottom: 20px;
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(0,0,0,0.08);
    color: var(--lumi-charcoal, #1E1E2A);
}

/* Search Form */
.search-form { position: relative; }
.search-form input[type="text"] {
    width: 100%;
    padding: 12px 16px;
    padding-right: 40px;
    border: 1px solid rgba(0,0,0,0.08);
    border-radius: 8px;
    font-family: var(--lumi-font-body);
    font-size: .9rem;
    outline: none;
    transition: var(--lumi-transition);
    background: var(--lumi-light-section, #F8F4EC);
}
.search-form input[type="text"]:focus {
    border-color: var(--lumi-gold);
    box-shadow: 0 0 0 3px rgba(184,146,46,0.1);
}
.search-form button {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    color: var(--lumi-text-muted);
    cursor: pointer;
    font-size: 1rem;
}

/* Categories List */
.category-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.category-list li { margin-bottom: 12px; }
.category-list li:last-child { margin-bottom: 0; }
.category-list a {
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: var(--lumi-text-body);
    font-size: .95rem;
    transition: var(--lumi-transition);
    text-decoration: none;
}
.category-list a:hover, .category-list a.active {
    color: var(--lumi-burgundy);
    font-weight: 600;
}
.category-list .count {
    background: var(--lumi-light-section);
    padding: 2px 8px;
    border-radius: 20px;
    font-size: .8rem;
    color: var(--lumi-text-muted);
}
.category-list a:hover .count, .category-list a.active .count {
    background: var(--lumi-burgundy-light, #9E3D55);
    color: var(--lumi-white);
}

/* Need Help CTA */
.btn-call-expert {
    display: flex;
    width: 100%;
    justify-content: center;
    padding: 10px 0;
    border: 1px solid var(--lumi-gold);
    color: var(--lumi-gold);
    border-radius: 30px;
    text-decoration: none;
    font-weight: 600;
    transition: var(--lumi-transition);
    align-items: center;
    gap: 8px;
}
.btn-call-expert:hover {
    background: var(--lumi-gold);
    color: var(--lumi-white);
}

/* ── CATALOG MAIN HEADER ── */
.woocommerce-products-header { display: none !important; } /* Hide default title to fix spacing */
.catalog-main > .woocommerce-notices-wrapper { margin-bottom: 20px; }

/* Flexbox wrapper for count and sort */
.woocommerce::before { content: ''; display: table; clear: both; }

.woocommerce .woocommerce-result-count {
    float: left;
    margin: 0 0 30px 0;
    color: var(--lumi-text-body);
    font-size: .95rem;
}
.woocommerce .woocommerce-ordering {
    float: right;
    margin: 0 0 30px 0;
}
.woocommerce .woocommerce-ordering select {
    padding: 8px 12px;
    border: 1px solid rgba(0,0,0,0.08);
    border-radius: 8px;
    font-family: var(--lumi-font-body);
    font-size: .9rem;
    outline: none;
    background: #ffffff;
    cursor: pointer;
}

/* Clearfix for grid */
.woocommerce ul.products { clear: both; }

/* ── WOOCOMMERCE PAGINATION ── */
.woocommerce nav.woocommerce-pagination { margin-top: 50px; text-align: center; }
.woocommerce nav.woocommerce-pagination ul {
    display: inline-flex;
    justify-content: center;
    gap: 8px;
    border: none;
    padding: 0;
    margin: 0;
}
.woocommerce nav.woocommerce-pagination ul li {
    border: none;
    display: inline-block;
}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span.current {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #ffffff;
    border: 1px solid rgba(0,0,0,0.08);
    color: var(--lumi-text-dark);
    font-weight: 600;
    transition: var(--lumi-transition);
    text-decoration: none;
    padding: 0;
}
.woocommerce nav.woocommerce-pagination ul li a:focus,
.woocommerce nav.woocommerce-pagination ul li a:hover {
    background: var(--lumi-light-section);
    color: var(--lumi-burgundy);
    border-color: rgba(0,0,0,0.08);
}
.woocommerce nav.woocommerce-pagination ul li span.current {
    background: var(--lumi-gradient-gold, linear-gradient(135deg, #B8922E, #D4B65A));
    color: var(--lumi-white);
    border-color: transparent;
}

/* ── WOOCOMMERCE BUTTONS (Global) ── */
.woocommerce button.button.alt,
.woocommerce a.button.alt,
.woocommerce input.button.alt {
    background: var(--lumi-burgundy);
    color: var(--lumi-white);
    border-radius: 30px;
    font-weight: 600;
    border: none;
    transition: var(--lumi-transition);
}
.woocommerce button.button.alt:hover,
.woocommerce a.button.alt:hover,
.woocommerce input.button.alt:hover {
    background: var(--lumi-charcoal);
    color: var(--lumi-white);
}
.woocommerce button.button,
.woocommerce a.button {
    border-radius: 30px;
    font-weight: 600;
    transition: var(--lumi-transition);
}

/* ── WooCommerce Messages ── */
.woocommerce-message { border-top-color: var(--lumi-gold) !important; }
.woocommerce-message::before { color: var(--lumi-gold) !important; }
.woocommerce-message a.button {
    background: var(--lumi-burgundy);
    color: var(--lumi-white);
}
.woocommerce-message a.button:hover {
    background: var(--lumi-charcoal);
    color: var(--lumi-white);
}

/* ── Category Tabs (Shop Filter) ── */
.lumi-shop-category-tabs {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    gap: 12px;
    margin-bottom: 30px;
    padding-bottom: 10px;
    width: 100%;
    scrollbar-width: none; /* Firefox */
}
.lumi-shop-category-tabs::-webkit-scrollbar {
    display: none; /* Safari and Chrome */
}
.lumi-cat-tab {
    display: inline-block;
    padding: 10px 20px;
    background: var(--lumi-white);
    border: 1px solid var(--lumi-border);
    border-radius: 30px;
    font-size: 0.95rem;
    font-family: var(--lumi-font-body);
    font-weight: 500;
    color: var(--lumi-text-body);
    white-space: nowrap;
    transition: var(--lumi-transition);
}
.lumi-cat-tab:hover {
    color: var(--lumi-burgundy);
    border-color: var(--lumi-gold);
}
.lumi-cat-tab.active {
    background: var(--lumi-burgundy);
    color: var(--lumi-white);
    border-color: var(--lumi-burgundy);
}
