/* =========================================================
   KAMAYO HOME MINI CART / STICKY CART CSS
   ---------------------------------------------------------
   Owns only the homepage quick mini cart drawer, overlay,
   sticky cart bar, and scoped cart-row quantity controls.
   No cart calculation / checkout / API logic here.
========================================================= */

.km-mini-cart-overlay,
#km-mini-cart-overlay,
#mini-cart-overlay{
    position:fixed;
    inset:0;
    z-index:9996;
    display:none;
    background:rgba(15,23,42,.50);
    backdrop-filter:blur(4px);
}

.km-mini-cart-overlay.is-open,
.km-mini-cart-overlay.is-active,
.km-mini-cart-overlay.active,
.km-mini-cart-overlay.open,
.km-mini-cart-overlay.show,
#km-mini-cart-overlay.is-open,
#km-mini-cart-overlay.is-active,
#km-mini-cart-overlay.active,
#km-mini-cart-overlay.open,
#km-mini-cart-overlay.show,
#mini-cart-overlay.is-open,
#mini-cart-overlay.is-active,
#mini-cart-overlay.active,
#mini-cart-overlay.open,
#mini-cart-overlay.show,
body.km-cart-open .km-mini-cart-overlay,
body.km-mini-cart-open .km-mini-cart-overlay,
body.mini-cart-open .km-mini-cart-overlay,
body.cart-open .km-mini-cart-overlay,
body.km-cart-open #km-mini-cart-overlay,
body.km-mini-cart-open #km-mini-cart-overlay,
body.mini-cart-open #km-mini-cart-overlay,
body.cart-open #km-mini-cart-overlay{
    display:block!important;
}

.km-mini-cart,
#km-mini-cart,
#mini-cart,
.km-mini-cart-panel,
.km-mini-cart-drawer{
    position:fixed;
    right:14px;
    bottom:86px;
    z-index:9997;
    display:none;
    width:min(420px,calc(100vw - 28px));
    max-height:min(74vh,640px);
    overflow:hidden;
    border-radius:22px;
    background:#fff;
    box-shadow:0 24px 70px rgba(15,23,42,.25);
    border:1px solid rgba(16,24,40,.08);
}

.km-mini-cart.is-open,
.km-mini-cart.is-active,
.km-mini-cart.active,
.km-mini-cart.open,
.km-mini-cart.show,
#km-mini-cart.is-open,
#km-mini-cart.is-active,
#km-mini-cart.active,
#km-mini-cart.open,
#km-mini-cart.show,
#mini-cart.is-open,
#mini-cart.is-active,
#mini-cart.active,
#mini-cart.open,
#mini-cart.show,
.km-mini-cart-panel.is-open,
.km-mini-cart-panel.is-active,
.km-mini-cart-panel.active,
.km-mini-cart-panel.open,
.km-mini-cart-panel.show,
.km-mini-cart-drawer.is-open,
.km-mini-cart-drawer.is-active,
.km-mini-cart-drawer.active,
.km-mini-cart-drawer.open,
.km-mini-cart-drawer.show,
body.km-cart-open .km-mini-cart,
body.km-mini-cart-open .km-mini-cart,
body.mini-cart-open .km-mini-cart,
body.cart-open .km-mini-cart,
body.km-cart-open #km-mini-cart,
body.km-mini-cart-open #km-mini-cart,
body.mini-cart-open #km-mini-cart,
body.cart-open #km-mini-cart,
body.km-cart-open .km-mini-cart-panel,
body.km-mini-cart-open .km-mini-cart-panel,
body.mini-cart-open .km-mini-cart-panel,
body.cart-open .km-mini-cart-panel,
body.km-cart-open .km-mini-cart-drawer,
body.km-mini-cart-open .km-mini-cart-drawer,
body.mini-cart-open .km-mini-cart-drawer,
body.cart-open .km-mini-cart-drawer{
    display:flex!important;
    flex-direction:column;
}

.km-mini-cart-head,
.km-mini-cart-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:14px 16px;
    border-bottom:1px solid rgba(16,24,40,.06);
}

.km-mini-cart-title{font-size:16px;font-weight:950;color:#111827;}
.km-mini-cart-close{width:40px;height:40px;border-radius:12px;border:1px solid rgba(16,24,40,.08);background:#fff;color:#111827;cursor:pointer;}
.km-mini-cart-items{overflow:auto;padding:12px;display:flex;flex-direction:column;gap:10px;}
.km-mini-cart-foot,.km-mini-cart-footer{border-top:1px solid rgba(16,24,40,.06);padding:12px 16px;background:#fff;}

.km-sticky-bar{
    position:fixed;
    left:12px;
    right:12px;
    bottom:12px;
    z-index:9995;
    display:none;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    max-width:760px;
    margin:0 auto;
    padding:10px 12px;
    border-radius:18px;
    background:#0f172a;
    color:#fff;
    box-shadow:0 18px 48px rgba(15,23,42,.22);
}

.km-sticky-bar.is-visible{display:flex;}
.km-sticky-info{min-width:0;}
.km-sticky-title{font-size:12px;font-weight:950;}
.km-sticky-sub{font-size:11px;color:rgba(255,255,255,.72);}
.km-sticky-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto;}
.km-sticky-btn,.km-sticky-link{display:flex;align-items:center;justify-content:center;min-height:42px;padding:0 14px;border-radius:12px;text-decoration:none;font-size:11px;font-weight:950;white-space:nowrap;}
.km-sticky-btn{appearance:none;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.08);color:#fff;cursor:pointer;}
.km-sticky-link{border:0;background:#22c55e;color:#fff;}

body.km-cart-open .km-sticky-bar,
body.km-mini-cart-open .km-sticky-bar,
body.mini-cart-open .km-sticky-bar,
body.cart-open .km-sticky-bar{display:none!important;}

body.km-cart-open,
body.km-mini-cart-open,
body.mini-cart-open,
body.cart-open{overflow:hidden;touch-action:none;}

@media (max-width:768px){
    .km-mini-cart,
    #km-mini-cart,
    #mini-cart,
    .km-mini-cart-panel,
    .km-mini-cart-drawer{
        left:10px;
        right:10px;
        bottom:78px;
        width:auto;
        max-height:72vh;
    }
}

/* Mini cart uses compact cart rows; product cards/variant modal keep their own controls. */
.km-mini-cart,
#km-mini-cart,
#mini-cart,
.km-mini-cart-panel,
.km-mini-cart-drawer{
    width:min(430px,calc(100vw - 28px))!important;
    max-height:min(78vh,660px)!important;
    overflow:hidden!important;
}

.km-mini-cart-items,
#km-mini-cart-items,
.mini-cart-items{
    display:flex!important;
    flex-direction:column!important;
    gap:10px!important;
    padding:12px!important;
    overflow:auto!important;
    background:#f8fafc!important;
}

.km-mini-cart-items > *:not(.km-empty),
#km-mini-cart-items > *:not(.km-empty),
.mini-cart-items > *:not(.km-empty),
.km-mini-cart-item,
.mini-cart-item,
.cart-mini-item,
.km-cart-item{
    display:grid!important;
    grid-template-columns:70px minmax(0,1fr) 112px!important;
    gap:10px!important;
    align-items:center!important;
    min-height:92px!important;
    padding:10px!important;
    border-radius:16px!important;
    background:#ffffff!important;
    border:1px solid rgba(16,24,40,.07)!important;
    box-shadow:0 8px 18px rgba(15,23,42,.05)!important;
    overflow:hidden!important;
}

.km-mini-cart-items > *:not(.km-empty) img,
#km-mini-cart-items > *:not(.km-empty) img,
.mini-cart-items > *:not(.km-empty) img,
.km-mini-cart-item img,
.mini-cart-item img,
.cart-mini-item img,
.km-cart-item img{
    width:70px!important;
    height:70px!important;
    max-width:70px!important;
    max-height:70px!important;
    object-fit:contain!important;
    display:block!important;
    border-radius:14px!important;
    background:#f3f6f8!important;
    padding:4px!important;
    margin:0!important;
    justify-self:center!important;
    align-self:center!important;
}

.km-mini-cart-item-name,
.mini-cart-item-name,
.km-cart-item-name,
.km-mini-cart-product-name,
.mini-cart-product-name{
    color:#111827!important;
    font-size:12px!important;
    line-height:1.25!important;
    font-weight:850!important;
    display:-webkit-box!important;
    -webkit-line-clamp:2!important;
    -webkit-box-orient:vertical!important;
    overflow:hidden!important;
    margin:0 0 4px!important;
}

.km-mini-cart-item-meta,
.mini-cart-item-meta,
.km-cart-item-meta,
.km-mini-cart-price,
.mini-cart-price{
    color:#475569!important;
    font-size:11px!important;
    line-height:1.25!important;
    font-weight:750!important;
    margin:2px 0!important;
}

/* Mini cart quantity must be compact, not full-width product-card control. */
.km-mini-cart .km-qty-controller,
#km-mini-cart .km-qty-controller,
#mini-cart .km-qty-controller,
.km-mini-cart-panel .km-qty-controller,
.km-mini-cart-drawer .km-qty-controller,
.km-mini-cart .qty-control,
#km-mini-cart .qty-control,
#mini-cart .qty-control,
.km-mini-cart-panel .qty-control,
.km-mini-cart-drawer .qty-control,
.km-mini-cart .quantity-control,
#km-mini-cart .quantity-control,
#mini-cart .quantity-control,
.km-mini-cart-panel .quantity-control,
.km-mini-cart-drawer .quantity-control{
    width:112px!important;
    min-width:112px!important;
    max-width:112px!important;
    height:36px!important;
    min-height:36px!important;
    display:grid!important;
    grid-template-columns:34px 1fr 34px!important;
    gap:0!important;
    padding:0!important;
    border-radius:12px!important;
    background:#16a34a!important;
    border:1px solid #16a34a!important;
    color:#fff!important;
    overflow:hidden!important;
    justify-self:end!important;
    align-self:center!important;
}

.km-mini-cart .km-qty-btn,
#km-mini-cart .km-qty-btn,
#mini-cart .km-qty-btn,
.km-mini-cart-panel .km-qty-btn,
.km-mini-cart-drawer .km-qty-btn,
.km-mini-cart .qty-btn,
#km-mini-cart .qty-btn,
#mini-cart .qty-btn{
    width:34px!important;
    min-width:34px!important;
    height:34px!important;
    border-radius:10px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    color:#fff!important;
    background:transparent!important;
    border:0!important;
    font-size:18px!important;
    font-weight:950!important;
    line-height:1!important;
}

.km-mini-cart .km-qty-number,
#km-mini-cart .km-qty-number,
#mini-cart .km-qty-number,
.km-mini-cart-panel .km-qty-number,
.km-mini-cart-drawer .km-qty-number,
.km-mini-cart .qty-number,
#km-mini-cart .qty-number,
#mini-cart .qty-number,
.km-mini-cart .qty-count,
#km-mini-cart .qty-count,
#mini-cart .qty-count{
    min-width:0!important;
    text-align:center!important;
    color:#fff!important;
    font-size:12px!important;
    font-weight:950!important;
    line-height:1!important;
    align-self:center!important;
}

.km-mini-cart .km-add-btn,
#km-mini-cart .km-add-btn,
#mini-cart .km-add-btn,
.km-mini-cart-panel .km-add-btn,
.km-mini-cart-drawer .km-add-btn,
.km-mini-cart .add-btn,
#km-mini-cart .add-btn,
#mini-cart .add-btn{
    width:96px!important;
    min-width:96px!important;
    max-width:96px!important;
    height:36px!important;
    min-height:36px!important;
    border-radius:12px!important;
    justify-self:end!important;
}

@media (max-width:575.98px){
    .km-mini-cart,
    #km-mini-cart,
    #mini-cart,
    .km-mini-cart-panel,
    .km-mini-cart-drawer{
        left:10px!important;
        right:10px!important;
        bottom:74px!important;
        width:auto!important;
        max-height:min(76vh,620px)!important;
        border-radius:20px!important;
    }

    .km-mini-cart-items > *:not(.km-empty),
    #km-mini-cart-items > *:not(.km-empty),
    .mini-cart-items > *:not(.km-empty),
    .km-mini-cart-item,
    .mini-cart-item,
    .cart-mini-item,
    .km-cart-item{
        grid-template-columns:62px minmax(0,1fr) 104px!important;
        min-height:84px!important;
        gap:8px!important;
        padding:9px!important;
        border-radius:15px!important;
    }

    .km-mini-cart-items > *:not(.km-empty) img,
    #km-mini-cart-items > *:not(.km-empty) img,
    .mini-cart-items > *:not(.km-empty) img,
    .km-mini-cart-item img,
    .mini-cart-item img,
    .cart-mini-item img,
    .km-cart-item img{
        width:62px!important;
        height:62px!important;
        max-width:62px!important;
        max-height:62px!important;
        border-radius:13px!important;
    }

    .km-mini-cart .km-qty-controller,
    #km-mini-cart .km-qty-controller,
    #mini-cart .km-qty-controller,
    .km-mini-cart-panel .km-qty-controller,
    .km-mini-cart-drawer .km-qty-controller,
    .km-mini-cart .qty-control,
    #km-mini-cart .qty-control,
    #mini-cart .qty-control,
    .km-mini-cart-panel .qty-control,
    .km-mini-cart-drawer .qty-control,
    .km-mini-cart .quantity-control,
    #km-mini-cart .quantity-control,
    #mini-cart .quantity-control,
    .km-mini-cart-panel .quantity-control,
    .km-mini-cart-drawer .quantity-control{
        width:104px!important;
        min-width:104px!important;
        max-width:104px!important;
        height:34px!important;
        min-height:34px!important;
        grid-template-columns:32px 1fr 32px!important;
    }
}

/* Mini cart footer buttons and scoped cart qty should remain cart style only. */
.km-mini-cart-actions,
.km-mini-cart-foot .km-mini-cart-actions{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:10px !important;
    margin-top:12px !important;
}

.km-mini-cart-open-btn,
.km-mini-cart-checkout-btn,
.km-mini-cart-foot a[href*="cart"],
.km-mini-cart-foot a[href*="checkout"]{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    min-height:42px !important;
    padding:0 14px !important;
    border-radius:12px !important;
    font-size:12px !important;
    font-weight:900 !important;
    text-decoration:none !important;
    white-space:nowrap !important;
}

.km-mini-cart-open-btn,
.km-mini-cart-foot a[href*="cart"]{
    background:#f8fafc !important;
    color:#334155 !important;
    border:1px solid rgba(16,24,40,.08) !important;
}

.km-mini-cart-checkout-btn,
.km-mini-cart-foot a[href*="checkout"]{
    background:linear-gradient(135deg,#16a34a,#15803d) !important;
    color:#ffffff !important;
    border:1px solid #16a34a !important;
}

.km-mini-cart-item .km-qty-controller{
    width:126px !important;
    min-width:126px !important;
    max-width:126px !important;
    height:38px !important;
    min-height:38px !important;
    display:grid !important;
    grid-template-columns:34px minmax(30px,1fr) 34px !important;
    gap:4px !important;
    padding:4px !important;
    border-radius:12px !important;
    background:#16a34a !important;
}

.km-mini-cart-item .km-qty-btn{
    width:34px !important;
    min-width:34px !important;
    height:30px !important;
    border-radius:9px !important;
}

.km-mini-cart-item .km-qty-number{
    font-size:12px !important;
    font-weight:950 !important;
}

@media (max-width:575.98px){
    .km-mini-cart-actions,
    .km-mini-cart-foot .km-mini-cart-actions{
        grid-template-columns:1fr 1fr !important;
        gap:8px !important;
    }

    .km-mini-cart-open-btn,
    .km-mini-cart-checkout-btn,
    .km-mini-cart-foot a[href*="cart"],
    .km-mini-cart-foot a[href*="checkout"]{
        min-height:38px !important;
        padding:0 10px !important;
        font-size:11px !important;
    }
}

html.km-mobile-device .km-mini-cart,
html.km-mobile-device #km-mini-cart,
html.km-mobile-device #mini-cart,
html.km-mobile-device .km-mini-cart-panel,
html.km-mobile-device .km-mini-cart-drawer{
    left:10px!important;
    right:10px!important;
    bottom:74px!important;
    width:auto!important;
    max-height:min(76dvh,620px)!important;
    border-radius:20px!important;
}

html.km-mobile-device .km-mini-cart-items > *:not(.km-empty),
html.km-mobile-device #km-mini-cart-items > *:not(.km-empty),
html.km-mobile-device .mini-cart-items > *:not(.km-empty),
html.km-mobile-device .km-mini-cart-item,
html.km-mobile-device .mini-cart-item,
html.km-mobile-device .cart-mini-item,
html.km-mobile-device .km-cart-item{
    grid-template-columns:58px minmax(0,1fr) 96px!important;
    min-height:82px!important;
    gap:8px!important;
    padding:9px!important;
}

html.km-mobile-device .km-mini-cart-items > *:not(.km-empty) img,
html.km-mobile-device #km-mini-cart-items > *:not(.km-empty) img,
html.km-mobile-device .mini-cart-items > *:not(.km-empty) img,
html.km-mobile-device .km-mini-cart-item img,
html.km-mobile-device .mini-cart-item img,
html.km-mobile-device .cart-mini-item img,
html.km-mobile-device .km-cart-item img{
    width:58px!important;
    height:58px!important;
    max-width:58px!important;
    max-height:58px!important;
}

html.km-mobile-device .km-mini-cart .km-qty-controller,
html.km-mobile-device #km-mini-cart .km-qty-controller,
html.km-mobile-device #mini-cart .km-qty-controller,
html.km-mobile-device .km-mini-cart-panel .km-qty-controller,
html.km-mobile-device .km-mini-cart-drawer .km-qty-controller{
    width:96px!important;
    min-width:96px!important;
    max-width:96px!important;
    height:34px!important;
    min-height:34px!important;
    grid-template-columns:30px 1fr 30px!important;
}
