body.cart-drawer-open { overflow:hidden; }
.cart-drawer-backdrop[hidden],.cart-drawer[hidden] { display:none !important; }
.cart-drawer-backdrop { position:fixed; inset:0; z-index:10000; background:rgba(12,8,18,.67); opacity:0; transition:opacity .28s ease; }
.cart-drawer-backdrop.is-open { opacity:1; }
.cart-drawer { position:fixed; top:0; right:0; z-index:10001; display:flex; flex-direction:column; width:min(440px,100vw); height:100vh; height:100dvh; overflow:hidden; background:var(--card); color:var(--text); border-left:1px solid var(--border-strong); box-shadow:-20px 0 60px rgba(0,0,0,.28); transform:translateX(100%); transition:transform .28s cubic-bezier(.2,.8,.2,1); }
.cart-drawer.is-open { transform:translateX(0); }
.cart-drawer-head { flex:none; display:flex; justify-content:space-between; align-items:center; gap:16px; min-height:99px; padding:21px 24px; border-bottom:1px solid var(--border); background:var(--bg-alt); }
.cart-drawer-kicker { display:block; margin-bottom:3px; color:var(--brand); font-size:10px; font-weight:750; letter-spacing:.16em; }
.cart-drawer-head h2 { margin:0; font-size:25px; line-height:1.2; }
.cart-drawer-close { flex:none; display:grid; place-items:center; width:40px; height:40px; border:1px solid var(--border-strong); border-radius:50%; background:var(--card); color:var(--text); font-size:29px; line-height:1; cursor:pointer; }
.cart-drawer-close:hover { border-color:var(--brand); color:var(--brand); }
.cart-drawer-content { flex:1; display:flex; flex-direction:column; min-height:0; overflow-y:auto; overscroll-behavior:contain; }
.cart-drawer-content.is-updating { opacity:.58; pointer-events:none; }
.cart-drawer-loading,.cart-drawer-error { margin:24px; color:var(--text-muted); font-size:14px; }
.cart-drawer-error { padding:12px 14px; border:1px solid #bd4b55; border-radius:12px; color:#ffe0df; background:#622b3a; }
.cart-drawer-items { padding:4px 24px 20px; }
.cart-drawer-item { display:grid; grid-template-columns:78px minmax(0,1fr); gap:14px; padding:19px 0; border-bottom:1px solid var(--border); }
.cart-drawer-item-image { display:block; align-self:start; overflow:hidden; border-radius:13px; background:#fff; border:1px solid var(--border); }
.cart-drawer-item-image img { display:block; width:78px; height:88px; object-fit:contain; }
.cart-drawer-item-details { min-width:0; }
.cart-drawer-item-name { display:block; color:var(--text); font-size:13px; font-weight:650; line-height:1.4; }
.cart-drawer-item-name:hover { color:var(--brand); }
.cart-drawer-item-meta { margin-top:4px; color:var(--text-muted); font-size:11px; }
.cart-drawer-item-meta dl { margin:0; }.cart-drawer-item-meta dt,.cart-drawer-item-meta dd { display:inline; margin:0; }
.cart-drawer-item-price { display:block; margin-top:8px; color:var(--brand); font-size:14px; font-weight:700; }
.cart-drawer-item-controls { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:10px; }
.cart-drawer-quantity { display:inline-flex; align-items:center; height:32px; border:1px solid var(--border-strong); border-radius:999px; overflow:hidden; }
.cart-drawer-quantity button { width:31px; height:30px; padding:0; border:0; background:transparent; color:var(--text); font-size:20px; cursor:pointer; }
.cart-drawer-quantity button:hover { background:var(--bg-alt); color:var(--brand); }
.cart-drawer-quantity span { min-width:24px; text-align:center; font-size:12px; font-weight:650; }
.cart-drawer-remove { padding:5px 0; border:0; background:transparent; color:var(--text-muted); font-size:11px; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.cart-drawer-remove:hover { color:var(--brand); }
.cart-drawer-summary { margin-top:auto; padding:20px 24px 22px; border-top:1px solid var(--border-strong); background:var(--bg-alt); }
.cart-drawer-summary > div { display:flex; justify-content:space-between; gap:15px; margin-bottom:17px; color:var(--text); font-size:14px; }
.cart-drawer-summary strong { font-size:19px; white-space:nowrap; }
.cart-drawer-checkout { display:flex; justify-content:center; align-items:center; gap:12px; min-height:48px; border-radius:999px; background:var(--gradient); color:#fff !important; font-weight:700; font-size:14px; }
.cart-drawer-checkout:hover { filter:brightness(1.1); }
.cart-drawer-full { display:block; margin-top:13px; text-align:center; color:var(--text-muted); font-size:12px; font-weight:600; text-decoration:underline; text-underline-offset:3px; }
.cart-drawer-full:hover { color:var(--brand); }
.cart-drawer-empty { display:flex; flex:1; flex-direction:column; align-items:center; justify-content:center; padding:32px; text-align:center; }
.cart-drawer-empty svg { width:74px; height:74px; margin-bottom:18px; color:var(--brand); }
.cart-drawer-empty h3 { margin:0 0 7px; color:var(--text); font-size:20px; }
.cart-drawer-empty p { color:var(--text-muted); font-size:13px; }
.cart-drawer-empty a { display:inline-flex; justify-content:center; align-items:center; min-height:44px; margin-top:22px; padding:10px 22px; border-radius:999px; background:var(--gradient); color:#fff; font-size:13px; font-weight:700; }
.cart-drawer :focus-visible { outline:3px solid var(--brand-2); outline-offset:2px; }
body.halloween-campaign .cart-drawer-head { background:radial-gradient(circle at 100% 0%,rgba(226,110,39,.25),transparent 50%),var(--bg-alt); }
body.halloween-campaign .cart-drawer-kicker::before { content:"✦ "; }
body.halloween-campaign .cart-drawer-checkout,body.halloween-campaign .cart-drawer-empty a { color:#28151e !important; }
@media (max-width:500px) { .cart-drawer-head { padding:17px 20px; }.cart-drawer-items { padding:4px 19px 20px; }.cart-drawer-summary { padding:19px 20px 25px; } }
@media (prefers-reduced-motion:reduce) { .cart-drawer,.cart-drawer-backdrop { transition:none; } }
