/* ============================================================
   PREMIUM DECOR SD — SHARED CART (extracted from the live store)
   Same cart UI/behavior as /store, so product pages and the store
   share one cart. Uses the site's existing :root tokens.
   ============================================================ */

/* header cart button */
.cart-btn{position:relative;background:none;border:none;cursor:pointer;color:var(--ink);display:inline-flex;align-items:center;justify-content:center;padding:6px}
.cart-btn svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.5}
.cart-count{position:absolute;top:-3px;right:-5px;min-width:16px;height:16px;padding:0 4px;background:var(--ink);color:#fff;border-radius:9px;font-size:10px;font-weight:600;line-height:1;display:none;align-items:center;justify-content:center}
.cart-count.visible{display:flex}

/* slide-out panel */
.cart-overlay{position:fixed;inset:0;background:rgba(17,17,16,0.35);z-index:200;opacity:0;pointer-events:none;transition:opacity 0.2s;backdrop-filter:blur(2px)}
.cart-overlay.open{opacity:1;pointer-events:all}
.cart-panel{position:fixed;top:0;right:0;width:100%;max-width:420px;height:100%;background:var(--white);border-left:1px solid var(--border);display:flex;flex-direction:column;z-index:201;transform:translateX(100%);transition:transform 0.3s cubic-bezier(0.4,0,0.2,1);box-shadow:-4px 0 24px rgba(17,17,16,0.1)}
.cart-panel.open{transform:translateX(0)}
.cart-header{padding:20px 24px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.cart-header h2{font-family:var(--serif);font-size:22px;font-weight:400;color:var(--ink)}
.cart-header-left{display:flex;align-items:baseline;gap:10px}
#cart-item-label{font-size:12px;color:var(--muted)}
.cart-close{background:none;border:none;cursor:pointer;font-size:18px;color:var(--muted);width:32px;height:32px;display:flex;align-items:center;justify-content:center;transition:color 0.15s}
.cart-close:hover{color:var(--ink)}
.cart-items{flex:1;overflow-y:auto;padding:12px 24px}
.cart-empty{text-align:center;padding:40px 16px;font-size:14px;color:var(--muted);line-height:1.7}
.cart-item{display:flex;gap:12px;padding:14px 0;border-bottom:1px solid var(--border);align-items:flex-start}
.cart-item:last-child{border-bottom:none}
.cart-item-img{width:64px;height:64px;object-fit:cover;background:var(--light);flex-shrink:0}
.cart-item-info{flex:1}
.cart-item-name{font-size:13px;font-weight:500;color:var(--ink);margin-bottom:2px;line-height:1.3}
.cart-item-variant{font-size:12px;color:var(--muted);margin-bottom:5px}
.cart-item-price{font-family:var(--serif);font-size:16px;color:var(--ink)}
.cart-qty-ctrl{display:inline-flex;align-items:center;gap:8px;margin-top:7px}
.cart-qty-btn{width:24px;height:24px;border:1px solid var(--border);background:none;cursor:pointer;font-size:14px;color:var(--body);display:inline-flex;align-items:center;justify-content:center;transition:border-color 0.15s}
.cart-qty-btn:hover{border-color:var(--ink);color:var(--ink)}
.cart-qty-val{font-size:13px;min-width:20px;text-align:center}
.cart-item-remove{background:none;border:none;cursor:pointer;font-size:16px;color:var(--muted);padding:2px;transition:color 0.15s}
.cart-item-remove:hover{color:var(--red)}
.cart-footer{padding:20px 24px;border-top:1px solid var(--border);background:var(--white)}
.cart-subtotal{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:14px}
.cart-subtotal-label{font-size:13px;color:var(--body)}
.cart-subtotal-amount{font-family:var(--serif);font-size:24px;font-weight:400;color:var(--ink)}
.cart-note{font-size:11px;color:var(--muted);margin-bottom:14px;line-height:1.5}
.btn-checkout{width:100%;background:var(--ink);color:var(--white);border:none;padding:15px 20px;font-family:var(--sans);font-size:13px;font-weight:500;cursor:pointer;transition:background 0.15s;letter-spacing:0.04em}
.btn-checkout:hover{background:var(--gold)}

/* toast */
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--ink);color:var(--white);padding:12px 24px;font-size:13px;font-weight:500;opacity:0;transition:opacity 0.2s,transform 0.2s;z-index:500;white-space:nowrap;pointer-events:none}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
