/* =====================================================================
   CHECKOUT MODAL
   ===================================================================== */
#cb-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:99999;align-items:center;justify-content:center;padding:16px}
#cb-overlay.cb-open{display:flex}
#cb-modal{background:#fff;border-radius:16px;width:100%;max-width:460px;overflow:hidden;box-shadow:0 24px 64px rgba(0,0,0,.2);animation:cbSlide .22s ease}
@keyframes cbSlide{from{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}
#cb-mh{background:#2d4c1e;padding:20px 24px;color:#fff;display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
#cb-mh h2{font-size:18px;font-weight:700;margin:0;line-height:1.3;color:#fff}
#cb-mh p{font-size:13px;color:rgba(255,255,255,.75);margin:4px 0 0}
#cb-mc{background:rgba(255,255,255,.15);border:none;color:#fff;width:30px;height:30px;border-radius:50%;cursor:pointer;font-size:18px;flex-shrink:0;display:flex;align-items:center;justify-content:center}
#cb-mc:hover{background:rgba(255,255,255,.25)}
#cb-mb{padding:24px}
#cb-ob{background:#f6faf2;border:1px solid #d4e4c8;border-radius:10px;padding:14px 16px;margin-bottom:14px}
#cb-ob strong{display:block;font-size:15px;font-weight:700;color:#111;margin-bottom:2px}
#cb-ob span{font-size:22px;font-weight:800;color:#2d4c1e}
.cb-sc{margin-bottom:8px}
.cb-sr{display:flex;justify-content:space-between;font-size:13px;color:#475569;padding:4px 0;border-bottom:1px dashed #e2e8f0}
.cb-sc .cb-sr:last-child{border-bottom:none}
.cb-st2{display:flex;justify-content:space-between;align-items:center;margin-top:10px;padding-top:8px;border-top:2px solid #d4e4c8;font-size:15px}
.cb-st2 strong{color:#2d4c1e;font-size:18px;font-weight:800}
#cb-sn{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;padding:8px 12px;font-size:13px;color:#166534;margin-bottom:14px}
.cb-f{margin-bottom:14px}
.cb-f label{display:block;font-size:13px;font-weight:600;color:#334155;margin-bottom:5px}
.cb-f input{width:100%;padding:12px 14px;border:1.5px solid #e2e8f0;border-radius:8px;font-size:15px;color:#111;box-sizing:border-box;font-family:inherit;transition:border .2s}
.cb-f input:focus{outline:none;border-color:#2d4c1e}
#cb-pb{width:100%;padding:15px;background:#2d4c1e;color:#fff;border:none;border-radius:10px;font-size:16px;font-weight:700;cursor:pointer;font-family:inherit;transition:background .2s}
#cb-pb:hover{background:#1a2e12}
#cb-pb:disabled{background:#94a3b8;cursor:not-allowed}
#cb-st{text-align:center;font-size:13px;min-height:18px;margin-top:10px}
#cb-st.err{color:#dc2626}
#cb-st.ok{color:#16a34a}

/* =====================================================================
   CART FAB BUTTON
   ===================================================================== */
#cb-cart-fab{
    position:fixed;bottom:28px;right:28px;z-index:9000;
    background:#2d4c1e;color:#fff;width:56px;height:56px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    font-size:24px;cursor:pointer;
    box-shadow:0 4px 20px rgba(45,76,30,.4);
    transition:transform .2s,box-shadow .2s;
    user-select:none;
}
#cb-cart-fab:hover{transform:scale(1.1);box-shadow:0 6px 24px rgba(45,76,30,.5)}
#cb-cart-badge{
    position:absolute;top:-5px;right:-5px;
    background:#dc2626;color:#fff;
    min-width:22px;height:22px;border-radius:11px;
    font-size:11px;font-weight:700;
    display:flex;align-items:center;justify-content:center;
    padding:0 4px;
    border:2px solid #fff;
    pointer-events:none;
    transition:transform .2s;
}
#cb-cart-badge.cb-pulse{animation:cbPulse .4s ease}
@keyframes cbPulse{0%{transform:scale(1)}50%{transform:scale(1.5)}100%{transform:scale(1)}}

/* =====================================================================
   CART DRAWER — slides in from right, does NOT block page interaction
   ===================================================================== */
#cb-cart-drawer{
    position:fixed;top:0;right:-420px;
    width:400px;max-width:100vw;height:100%;
    background:#fff;z-index:8999;
    box-shadow:-4px 0 32px rgba(0,0,0,.15);
    transition:right .3s cubic-bezier(.4,0,.2,1);
    display:flex;flex-direction:column;
    border-left:1px solid #e2e8f0;
}
#cb-cart-drawer.cb-open{right:0}

.cb-dh{
    background:#2d4c1e;color:#fff;
    padding:18px 20px;
    display:flex;justify-content:space-between;align-items:center;
    flex-shrink:0;
}
.cb-dh h3{margin:0;font-size:17px;font-weight:700;color:#fff}
#cb-cart-close{
    background:rgba(255,255,255,.15);border:none;color:#fff;
    width:30px;height:30px;border-radius:50%;cursor:pointer;
    font-size:16px;display:flex;align-items:center;justify-content:center;
    transition:background .2s;
}
#cb-cart-close:hover{background:rgba(255,255,255,.3)}

/* Cart items list — grows and scrolls */
#cb-cart-items{
    flex:1;
    overflow-y:auto;
    padding:16px;
    min-height:60px;
}
.cb-cart-empty{
    color:#94a3b8;font-size:14px;
    text-align:center;margin-top:40px;
    line-height:1.7;
}
.cb-ci{
    display:flex;align-items:flex-start;gap:10px;
    padding:12px 0;
    border-bottom:1px solid #f1f5f9;
    animation:cbFadeIn .2s ease;
}
@keyframes cbFadeIn{from{opacity:0;transform:translateX(10px)}to{opacity:1;transform:none}}
.cb-ci:last-child{border-bottom:none}
.cb-ci-info{flex:1}
.cb-ci-name{display:block;font-size:14px;font-weight:600;color:#111;margin-bottom:4px;line-height:1.4}
.cb-ci-price{font-size:13px;color:#2d4c1e;font-weight:700}
.cb-ci-del{
    background:none;border:1px solid #e2e8f0;color:#94a3b8;
    width:28px;height:28px;border-radius:50%;cursor:pointer;
    font-size:13px;display:flex;align-items:center;justify-content:center;
    flex-shrink:0;margin-top:2px;transition:all .15s;
}
.cb-ci-del:hover{background:#fee2e2;border-color:#fca5a5;color:#dc2626}

/* Cart footer — always visible at bottom */
.cb-cart-footer{
    flex-shrink:0;
    padding:16px;
    border-top:2px solid #e2e8f0;
    background:#fff;
}
#cb-cart-total-row{
    display:flex;justify-content:space-between;align-items:center;
    font-size:15px;margin-bottom:14px;
    padding-bottom:14px;
    border-bottom:1px solid #f1f5f9;
}
#cb-cart-total-row strong{color:#2d4c1e;font-size:20px;font-weight:800}
#cb-cart-checkout-btn{
    width:100%;padding:15px;
    background:#2d4c1e;color:#fff;border:none;border-radius:10px;
    font-size:15px;font-weight:700;cursor:pointer;font-family:inherit;
    transition:background .2s;margin-bottom:8px;display:block;
}
#cb-cart-checkout-btn:hover{background:#1a2e12}
#cb-cart-keep-btn{
    width:100%;padding:11px;
    background:#f1f5f9;color:#475569;border:none;border-radius:10px;
    font-size:14px;font-weight:600;cursor:pointer;font-family:inherit;
    transition:background .2s;display:block;
}
#cb-cart-keep-btn:hover{background:#e2e8f0}

/* =====================================================================
   BUY CHOICE POPOVER
   ===================================================================== */
.cb-pop{
    position:fixed;z-index:99999;
    background:#fff;border:1px solid #e2e8f0;border-radius:12px;
    box-shadow:0 10px 32px rgba(0,0,0,.16);
    padding:10px;display:flex;flex-direction:column;gap:7px;
    min-width:200px;
    animation:cbSlide .15s ease;
}
.cb-pop-title{
    font-size:12px;color:#64748b;font-weight:600;
    padding:0 4px 6px;border-bottom:1px solid #f1f5f9;
    margin:0;line-height:1.4;
}
.cb-pop-pay,.cb-pop-add{
    padding:11px 14px;border:none;border-radius:8px;
    font-size:14px;font-weight:600;cursor:pointer;
    font-family:inherit;text-align:left;transition:background .15s;
}
.cb-pop-pay{background:#2d4c1e;color:#fff}
.cb-pop-pay:hover{background:#1a2e12}
.cb-pop-add{background:#e8f5e0;color:#2d4c1e;border:1px solid #a8d88a}
.cb-pop-add:hover{background:#d4edbd}

/* =====================================================================
   TOAST NOTIFICATION
   ===================================================================== */
#cb-toast{
    position:fixed;bottom:100px;right:28px;z-index:99999;
    background:#1e293b;color:#fff;
    padding:11px 18px;border-radius:8px;
    font-size:14px;font-weight:500;
    opacity:0;transform:translateY(10px);
    transition:opacity .25s,transform .25s;
    pointer-events:none;max-width:280px;
    box-shadow:0 4px 16px rgba(0,0,0,.2);
}
#cb-toast.cb-show{opacity:1;transform:translateY(0)}

/* =====================================================================
   SHORTCODE TRIGGER BUTTON
   ===================================================================== */
.cb-trigger-btn{
    display:inline-block;padding:13px 28px;
    background:#2d4c1e;color:#fff;border:none;border-radius:8px;
    font-size:15px;font-weight:700;cursor:pointer;
    font-family:inherit;transition:background .2s;
}
.cb-trigger-btn:hover{background:#1a2e12}

/* Mobile */
@media(max-width:480px){
    #cb-cart-drawer{width:100vw;max-width:100vw}
    #cb-cart-fab{bottom:20px;right:16px}
}
