/* =========================================================
   CYBERVILLA CART MODERNIZATION STATIC V4
   Compact polished cart UI
========================================================= */

.oe_website_sale{
    max-width:1320px !important;
    padding-top:42px !important;
    padding-bottom:56px !important;
}

.oe_cart{
    padding-right:30px !important;
}

.oe_cart h1.display-6{
    font-size:38px !important;
    font-weight:800 !important;
    letter-spacing:-1px !important;
    color:#111827 !important;
    margin-bottom:24px !important;
}

/* Desktop cart box */
.oe_cart #cart_products{
    width:100% !important;
    border-collapse:separate !important;
    border-spacing:0 !important;
    border:1px solid #e8edf5 !important;
    border-radius:22px !important;
    overflow:hidden !important;
    background:#fff !important;
    box-shadow:0 10px 32px rgba(15,23,42,.055) !important;
}

.oe_cart #cart_products thead{
    display:table-header-group !important;
    background:#f8fafc !important;
}

.oe_cart #cart_products thead th{
    padding:16px 18px !important;
    font-size:12px !important;
    font-weight:900 !important;
    color:#64748b !important;
    text-transform:uppercase !important;
    letter-spacing:.06em !important;
    border:none !important;
}

.oe_cart #cart_products tbody tr{
    background:#fff !important;
}

.oe_cart #cart_products tbody td{
    padding:20px 18px !important;
    vertical-align:middle !important;
    border-top:1px solid #edf2f7 !important;
    background:#fff !important;
}

/* hide verbose product description */
.oe_cart #cart_products .td-product_name .text-muted,
.oe_cart #cart_products .td-product_name p,
.oe_cart #cart_products .td-product_name ul,
.oe_cart #cart_products .td-product_name br,
.oe_cart #cart_products .td-product_name small{
    display:none !important;
}

.oe_cart #cart_products .td-img{
    width:108px !important;
}

.oe_cart #cart_products .td-img img,
.oe_cart #cart_products .td-img .o_image_64_max{
    width:76px !important;
    height:76px !important;
    max-width:76px !important;
    max-height:76px !important;
    object-fit:contain !important;
    border-radius:16px !important;
    border:1px solid #edf2f7 !important;
    background:#fff !important;
    padding:8px !important;
}

.oe_cart #cart_products .td-product_name strong{
    display:block !important;
    max-width:330px !important;
    font-size:16px !important;
    font-weight:800 !important;
    line-height:1.35 !important;
    color:#111827 !important;
}

.oe_cart .css_quantity{
    width:118px !important;
    height:42px !important;
    border:1px solid #e5e7eb !important;
    border-radius:999px !important;
    overflow:hidden !important;
    background:#fff !important;
    box-shadow:0 4px 14px rgba(15,23,42,.06) !important;
}

.oe_cart .css_quantity .btn{
    width:36px !important;
    height:40px !important;
    border:none !important;
    background:#f8fafc !important;
    color:#d600b8 !important;
    text-decoration:none !important;
    padding:0 !important;
}

.oe_cart .css_quantity input{
    height:40px !important;
    border:none !important;
    box-shadow:none !important;
    text-align:center !important;
    font-weight:800 !important;
    font-size:15px !important;
    color:#111827 !important;
    padding:0 !important;
}

.oe_cart #cart_products .td-price{
    font-size:17px !important;
    font-weight:900 !important;
    color:#7c3cff !important;
    white-space:nowrap !important;
}

.oe_cart .js_delete_product{
    width:38px !important;
    height:38px !important;
    border-radius:999px !important;
    background:#f8fafc !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    color:#ef4444 !important;
}

/* Action row */
.oe_cart .d-flex.justify-content-between{
    margin-top:16px !important;
    align-items:center !important;
}

.oe_cart .btn-secondary{
    min-height:44px !important;
    border:none !important;
    border-radius:999px !important;
    padding:0 22px !important;
    font-weight:800 !important;
    background:#67d9f7 !important;
    color:#062033 !important;
}

/* Summary */
#o_cart_summary .card{
    border:none !important;
    border-radius:24px !important;
    box-shadow:0 18px 50px rgba(15,23,42,.10) !important;
    overflow:hidden !important;
    position:sticky !important;
    top:120px !important;
}

#o_cart_summary .card:before{
    content:"Order Summary";
    display:block;
    padding:26px 30px 0;
    font-size:22px;
    font-weight:900;
    color:#111827;
    background:#fff;
}

#o_cart_summary .card-body{
    padding:24px 30px 30px !important;
    background:#fff !important;
}

#o_cart_summary .btn-primary,
.buynowbtnplain{
    min-height:50px !important;
    border:none !important;
    border-radius:999px !important;
    font-size:16px !important;
    font-weight:800 !important;
    background:linear-gradient(135deg,#ff21c8 0%,#6f00ff 100%) !important;
    color:#fff !important;
    box-shadow:0 14px 30px rgba(128,0,255,.25) !important;
}

/* Mobile */
@media(max-width:767px){
    .oe_website_sale{
        padding:30px 14px 46px !important;
    }

    .oe_cart{
        padding-right:0 !important;
    }

    .oe_cart h1.display-6{
        font-size:29px !important;
        margin-bottom:18px !important;
    }

    .oe_cart #cart_products{
        border-radius:22px !important;
        box-shadow:0 10px 30px rgba(15,23,42,.07) !important;
    }

    .oe_cart #cart_products thead{
        display:none !important;
    }

    .oe_cart #cart_products,
    .oe_cart #cart_products tbody,
    .oe_cart #cart_products tr{
        display:block !important;
        width:100% !important;
    }

    .oe_cart #cart_products tbody tr{
        display:grid !important;
        grid-template-columns:82px 1fr 38px !important;
        grid-template-areas:
            "img name remove"
            "img qty remove"
            "img price remove" !important;
        column-gap:14px !important;
        align-items:center !important;
        padding:18px !important;
    }

    .oe_cart #cart_products tbody td{
        display:block !important;
        width:auto !important;
        border:none !important;
        padding:0 !important;
        text-align:left !important;
    }

    .oe_cart #cart_products .td-img{
        grid-area:img !important;
        width:82px !important;
    }

    .oe_cart #cart_products .td-product_name{
        grid-area:name !important;
    }

    .oe_cart #cart_products .td-qty{
        grid-area:qty !important;
        margin-top:10px !important;
    }

    .oe_cart #cart_products .td-price{
        grid-area:price !important;
        margin-top:10px !important;
        font-size:16px !important;
    }

    .oe_cart #cart_products .td-action{
        grid-area:remove !important;
        align-self:center !important;
        justify-self:end !important;
    }

    .oe_cart #cart_products .td-img img,
    .oe_cart #cart_products .td-img .o_image_64_max{
        width:76px !important;
        height:76px !important;
        max-width:76px !important;
        max-height:76px !important;
        border-radius:16px !important;
    }

    .oe_cart #cart_products .td-product_name strong{
        max-width:100% !important;
        font-size:15px !important;
        line-height:1.35 !important;
    }

    .oe_cart .css_quantity{
        margin:0 !important;
        width:112px !important;
    }

    .oe_cart .d-flex.justify-content-between{
        gap:12px !important;
        margin-top:14px !important;
    }

    .oe_cart .btn-secondary{
        min-height:50px !important;
        padding:0 20px !important;
        font-size:14px !important;
    }

    .oe_cart .d-flex.flex-column.d-xl-none{
        flex:1 !important;
    }

    .buynowbtnplain{
        width:100% !important;
        min-height:54px !important;
    }

    #o_cart_summary .card{
        position:relative !important;
        top:auto !important;
        margin-top:18px !important;
        border-radius:24px !important;
    }
}

/* =========================================================
   CYBERVILLA CART MODERNIZATION STATIC V5
   Button alignment + desktop spacing refinement
========================================================= */

/* fix Continue Shopping button text alignment */
.oe_cart .btn-secondary,
.oe_cart .btn-secondary span{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:6px !important;
    line-height:1 !important;
}

.oe_cart .btn-secondary{
    height:44px !important;
    min-height:44px !important;
    padding:0 24px !important;
    margin-top:0 !important;
    margin-bottom:0 !important;
}

/* desktop: reduce large empty area under cart */
@media(min-width:768px){
    .oe_website_sale{
        padding-bottom:34px !important;
    }

    .oe_cart .d-flex.justify-content-between{
        margin-top:12px !important;
        margin-bottom:0 !important;
    }

    .oe_cart #cart_products{
        margin-bottom:0 !important;
    }

    .oe_cart #cart_products tbody td{
        padding-top:18px !important;
        padding-bottom:18px !important;
    }

    #o_cart_summary .card{
        margin-top:0 !important;
    }
}

/* mobile: make action row balanced */
@media(max-width:767px){
    .oe_cart .d-flex.justify-content-between{
        display:grid !important;
        grid-template-columns:110px 1fr !important;
        gap:12px !important;
        align-items:center !important;
    }

    .oe_cart .d-flex.justify-content-between > div:first-child{
        min-width:0 !important;
    }

    .oe_cart .btn-secondary{
        width:110px !important;
        padding:0 10px !important;
        height:48px !important;
        min-height:48px !important;
        font-size:14px !important;
    }

    .oe_cart .d-flex.flex-column.d-xl-none{
        width:100% !important;
    }

    .oe_cart .d-flex.flex-column.d-xl-none .btn-primary{
        width:100% !important;
        height:54px !important;
        min-height:54px !important;
        display:flex !important;
        align-items:center !important;
        justify-content:center !important;
        gap:8px !important;
        padding:0 18px !important;
        line-height:1 !important;
    }
}

/* =========================================================
   CYBERVILLA CART MODERNIZATION STATIC V6
   Mobile polish + duplicate footer cleanup on cart page
========================================================= */

/* hide duplicate Odoo footer on cart page only: keep first custom footer, hide nested o_footer copy */
body:has(.oe_website_sale .oe_cart) footer.o_footer{
    display:none !important;
}

/* mobile cart card: remove broken grid/table remnants */
@media(max-width:767px){

    .oe_cart #cart_products{
        border-radius:22px !important;
        overflow:hidden !important;
        margin-bottom:0 !important;
    }

    .oe_cart #cart_products tbody tr{
        display:grid !important;
        grid-template-columns:80px 1fr 42px !important;
        grid-template-areas:
            "img name remove"
            "img qty remove"
            "img price remove" !important;
        column-gap:14px !important;
        row-gap:8px !important;
        align-items:center !important;
        padding:20px 18px !important;
        min-height:auto !important;
    }

    .oe_cart #cart_products tbody td{
        display:block !important;
        width:auto !important;
        min-width:0 !important;
        padding:0 !important;
        margin:0 !important;
        border:none !important;
        text-align:left !important;
    }

    .oe_cart #cart_products .td-img{
        grid-area:img !important;
        width:80px !important;
        align-self:center !important;
    }

    .oe_cart #cart_products .td-product_name{
        grid-area:name !important;
        align-self:end !important;
    }

    .oe_cart #cart_products .td-qty{
        grid-area:qty !important;
        align-self:center !important;
    }

    .oe_cart #cart_products .td-price{
        grid-area:price !important;
        align-self:start !important;
        margin:0 !important;
        font-size:16px !important;
        line-height:1.2 !important;
    }

    /* hide subtotal column on mobile to avoid double price */
    .oe_cart #cart_products td:nth-child(5){
        display:none !important;
    }

    .oe_cart #cart_products .td-action{
        grid-area:remove !important;
        align-self:center !important;
        justify-self:end !important;
        width:42px !important;
    }

    .oe_cart #cart_products .td-img img,
    .oe_cart #cart_products .td-img .o_image_64_max{
        width:72px !important;
        height:72px !important;
        max-width:72px !important;
        max-height:72px !important;
        padding:8px !important;
    }

    .oe_cart #cart_products .td-product_name strong{
        font-size:15px !important;
        line-height:1.3 !important;
        max-width:100% !important;
    }

    .oe_cart .css_quantity{
        width:104px !important;
        height:40px !important;
        margin:0 !important;
    }

    .oe_cart .css_quantity input{
        height:38px !important;
    }

    .oe_cart .css_quantity .btn{
        height:38px !important;
        width:32px !important;
    }

    .oe_cart .js_delete_product{
        width:38px !important;
        height:38px !important;
    }

    /* remove small proceed-to-checkout button inside summary on mobile */
    #o_cart_summary .card .btn-primary{
        display:none !important;
    }

    /* mobile bottom action row */
    .oe_cart .d-flex.justify-content-between{
        display:grid !important;
        grid-template-columns:112px 1fr !important;
        gap:12px !important;
        align-items:center !important;
        margin-top:14px !important;
        margin-bottom:28px !important;
    }

    .oe_cart .d-flex.justify-content-between > div:first-child{
        width:112px !important;
        min-width:112px !important;
    }

    .oe_cart .btn-secondary{
        width:112px !important;
        height:48px !important;
        min-height:48px !important;
        padding:0 12px !important;
        font-size:13px !important;
        white-space:nowrap !important;
        overflow:hidden !important;
    }

    .oe_cart .d-flex.flex-column.d-xl-none{
        width:100% !important;
        min-width:0 !important;
    }

    .oe_cart .d-flex.flex-column.d-xl-none .buynowbtnplain,
    .oe_cart .d-flex.flex-column.d-xl-none .btn-primary{
        width:100% !important;
        height:54px !important;
        min-height:54px !important;
        display:flex !important;
        align-items:center !important;
        justify-content:center !important;
        gap:8px !important;
        padding:0 18px !important;
        font-size:16px !important;
        line-height:1 !important;
        white-space:nowrap !important;
    }
}

/* =========================================================
   CYBERVILLA CART MODERNIZATION STATIC V7
   Final mobile CTA + spacing cleanup
========================================================= */

@media(max-width:767px){

    /* FORCE remove summary internal checkout button */
    #o_cart_summary .btn,
    #o_cart_summary .btn-primary,
    #o_cart_summary a.btn{
        display:none !important;
    }

    /* bottom action row */
    .oe_cart .d-flex.justify-content-between{
        display:grid !important;
        grid-template-columns:132px 1fr !important;
        gap:14px !important;
        align-items:center !important;
        margin-top:18px !important;
        margin-bottom:22px !important;
    }

    /* Continue shopping */
    .oe_cart .btn-secondary{
        width:132px !important;
        min-width:132px !important;
        max-width:132px !important;
        height:48px !important;
        min-height:48px !important;
        padding:0 14px !important;
        font-size:13px !important;
        border-radius:999px !important;
        overflow:hidden !important;

        display:flex !important;
        align-items:center !important;
        justify-content:center !important;
        white-space:nowrap !important;
        line-height:1 !important;
    }

    /* Checkout button */
    .oe_cart .d-flex.flex-column.d-xl-none .buynowbtnplain,
    .oe_cart .d-flex.flex-column.d-xl-none .btn-primary{
        width:100% !important;
        min-width:0 !important;
        max-width:100% !important;

        height:52px !important;
        min-height:52px !important;

        border-radius:999px !important;

        display:flex !important;
        align-items:center !important;
        justify-content:center !important;

        font-size:17px !important;
        font-weight:800 !important;

        padding:0 18px !important;
        white-space:nowrap !important;
        overflow:hidden !important;

        box-shadow:0 10px 24px rgba(128,0,255,.22) !important;
    }

    /* reduce oversized purple button feel */
    .oe_cart .d-flex.flex-column.d-xl-none{
        max-width:100% !important;
    }

    /* remove random white bottom spacer */
    body{
        padding-bottom:0 !important;
        margin-bottom:0 !important;
    }

    #wrapwrap{
        padding-bottom:0 !important;
        margin-bottom:0 !important;
    }

    footer.footer{
        margin-bottom:0 !important;
        padding-bottom:28px !important;
    }

    /* hide accidental empty mobile strip/container */
    .tp-bottombar + div:empty,
    .tp-bottombar ~ div:empty{
        display:none !important;
    }

    /* reduce huge footer spacing on cart page */
    body:has(.oe_cart) footer.footer{
        padding-bottom:90px !important;
    }
}

/* =========================================================
   CYBERVILLA CART MODERNIZATION STATIC V8
   Restore mobile bottom safe space + CTA sizing
========================================================= */

@media(max-width:767px){

    /* restore safe white space under footer so floating mobile menu does not cover footer */
    body:has(.oe_cart){
        padding-bottom:120px !important;
    }

    #wrapwrap{
        padding-bottom:120px !important;
    }

    body:has(.oe_cart) footer.footer{
        padding-bottom:150px !important;
    }

    /* better mobile action row */
    .oe_cart .d-flex.justify-content-between{
        grid-template-columns:150px 1fr !important;
        gap:12px !important;
        padding:0 2px !important;
        margin-bottom:28px !important;
    }

    /* Continue button: make text fit */
    .oe_cart .btn-secondary{
        width:150px !important;
        min-width:150px !important;
        max-width:150px !important;
        height:48px !important;
        padding:0 16px !important;
        font-size:13px !important;
        letter-spacing:-.2px !important;
    }

    /* Checkout button: reduce height and visual weight */
    .oe_cart .d-flex.flex-column.d-xl-none .buynowbtnplain,
    .oe_cart .d-flex.flex-column.d-xl-none .btn-primary{
        height:48px !important;
        min-height:48px !important;
        max-height:48px !important;
        font-size:16px !important;
        border-radius:18px !important;
        box-shadow:0 8px 20px rgba(128,0,255,.18) !important;
    }
}

/* =========================================================
   CYBERVILLA MOBILE SAFE SPACE STANDARDIZATION V1
   Gives all mobile pages consistent space above floating bottom menu
========================================================= */

@media(max-width:767px){
    body{
        padding-bottom:120px !important;
    }

    #wrapwrap{
        padding-bottom:120px !important;
    }

    footer.footer,
    footer.o_footer{
        padding-bottom:150px !important;
    }
}

/* =========================================================
   CYBERVILLA CART MODERNIZATION STATIC V9
   Restore unified footer after embedded cart footer removal
========================================================= */

body:has(.oe_website_sale .oe_cart) footer.o_footer{
    display:block !important;
}

@media(max-width:767px){
    body:has(.oe_website_sale .oe_cart) footer.o_footer{
        display:block !important;
        padding-bottom:150px !important;
    }
}

/* =========================================================
   CYBERVILLA CART MODERNIZATION STATIC V10
   Mobile footer spacing trim
========================================================= */

@media(max-width:767px){

    body:has(.oe_website_sale .oe_cart){
        padding-bottom:80px !important;
    }

    body:has(.oe_website_sale .oe_cart) #wrapwrap{
        padding-bottom:80px !important;
    }

    body:has(.oe_website_sale .oe_cart) footer.o_footer,
    body:has(.oe_website_sale .oe_cart) footer.footer{
        padding-bottom:75px !important;
        margin-bottom:0 !important;
    }

    body:has(.oe_website_sale .oe_cart) footer.o_footer .footer,
    body:has(.oe_website_sale .oe_cart) footer.o_footer footer.footer{
        padding-bottom:75px !important;
        margin-bottom:0 !important;
    }
}

/* =========================================================
   CYBERVILLA GLOBAL MOBILE SAFE SPACE V2
   Applies consistent footer breathing room for floating mobile menu
========================================================= */

@media(max-width:767px){

    body{
        padding-bottom:80px !important;
    }

    #wrapwrap{
        padding-bottom:80px !important;
    }

    footer.o_footer,
    footer.footer,
    footer.o_footer .footer,
    footer.o_footer footer.footer{
        padding-bottom:75px !important;
        margin-bottom:0 !important;
    }
}

/* =========================================================
   CYBERVILLA GLOBAL MOBILE SAFE SPACE V3
   Stronger safe area for shop/product pages floating menu
========================================================= */

@media(max-width:767px){

    body{
        padding-bottom:150px !important;
    }

    #wrapwrap{
        padding-bottom:150px !important;
    }

    footer.o_footer,
    footer.footer,
    footer.o_footer .footer,
    footer.o_footer footer.footer{
        padding-bottom:160px !important;
        margin-bottom:0 !important;
    }

    .tp-bottombar,
    .tp-bottom-bar,
    .tp-mobile-bottom-bar{
        z-index:9999 !important;
    }
}
