:root{--cart-green:#0d543d;--cart-green-dark:#073c2a;--cart-line:#dedede;--cart-soft:#f3f3f3}
body.cart-open{overflow:hidden}
.cart-overlay{position:fixed;inset:0;background:rgba(0,0,0,.42);z-index:998;opacity:0;visibility:hidden;transition:.22s ease}
.cart-overlay.open{opacity:1;visibility:visible}
.cart-drawer{position:fixed;top:0;right:0;bottom:0;z-index:999;width:min(470px,100%);background:#fff;box-shadow:-12px 0 30px rgba(0,0,0,.18);transform:translateX(102%);transition:transform .25s ease;display:grid;grid-template-rows:auto 1fr auto;color:#171717}
.cart-drawer.open{transform:translateX(0)}
.cart-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:22px 24px;border-bottom:1px solid var(--cart-line)}
.cart-drawer-header h2{margin:0;font-size:24px}
.cart-close{width:40px;height:40px;border:0;background:transparent;font-size:31px;line-height:1;cursor:pointer}
.cart-items{overflow:auto;padding:8px 24px}
.cart-empty{display:grid;place-items:center;text-align:center;min-height:260px;color:#6b6b6b}
.cart-empty strong{display:block;color:#222;font-size:20px;margin-bottom:7px}
.cart-item{display:grid;grid-template-columns:84px minmax(0,1fr) auto;gap:14px;padding:17px 0;border-bottom:1px solid var(--cart-line)}
.cart-item-media{width:84px;height:74px;background:#d2d2d2;overflow:hidden}
.cart-item-media img{width:100%;height:100%;object-fit:cover}
.cart-item-info h3{margin:0 0 7px;font-size:15px;line-height:1.25}
.cart-item-spec{margin:2px 0;color:#686868;font-size:12px;line-height:1.35}
.cart-item-price{font-weight:800;font-size:14px}
.cart-item-controls{display:flex;align-items:center;gap:8px;margin-top:10px}
.cart-qty{display:flex;align-items:center;border:1px solid var(--cart-line)}
.cart-qty button{width:31px;height:30px;border:0;background:#fff;cursor:pointer;font-size:18px}
.cart-qty span{min-width:29px;text-align:center;font-weight:700;font-size:13px}
.cart-remove{border:0;background:transparent;color:#8a2727;padding:4px;cursor:pointer;font-size:13px;text-decoration:underline}
.cart-item-total{font-size:14px;font-weight:800;white-space:nowrap}
.cart-footer{border-top:1px solid var(--cart-line);padding:18px 24px 24px;background:#fff}
.cart-total{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;font-size:18px}
.cart-total strong{font-size:22px}
.cart-actions{display:grid;grid-template-columns:1fr 1.4fr;gap:10px}
.cart-clear,.cart-checkout{min-height:45px;border:0;font-weight:800;cursor:pointer}
.cart-clear{background:var(--cart-soft);color:#333}
.cart-checkout{background:var(--cart-green);color:#fff}
.cart-checkout:hover{background:var(--cart-green-dark)}
.cart-notice{margin:10px 0 0;font-size:12px;color:#6c6c6c;text-align:center}
.cart-toast{position:fixed;left:50%;bottom:24px;z-index:1001;transform:translate(-50%,20px);opacity:0;background:var(--cart-green);color:#fff;padding:12px 18px;box-shadow:0 8px 20px rgba(0,0,0,.22);pointer-events:none;transition:.2s ease}
.cart-toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:560px){.cart-drawer{width:100%}.cart-drawer-header{padding:17px 18px}.cart-items{padding-inline:18px}.cart-footer{padding:16px 18px 20px}.cart-item{grid-template-columns:72px minmax(0,1fr)}.cart-item-media{width:72px;height:67px}.cart-item-total{grid-column:2;justify-self:end;margin-top:-24px}.cart-actions{grid-template-columns:1fr}}

@media(max-width:420px){
  .cart-drawer{width:100%;max-width:none}
  .cart-drawer-header{padding:14px 14px}
  .cart-drawer-header h2{font-size:21px}
  .cart-close{width:42px;height:42px}
  .cart-items{padding:4px 14px}
  .cart-item{grid-template-columns:68px minmax(0,1fr);gap:11px;padding:14px 0}
  .cart-item-media{width:68px;height:64px}
  .cart-item-info h3{font-size:14px}
  .cart-item-controls{align-items:flex-start;flex-direction:column;gap:7px}
  .cart-qty button{width:36px;height:34px}
  .cart-qty span{min-width:34px}
  .cart-item-total{grid-column:1/-1;justify-self:start;margin:0}
  .cart-footer{padding:14px}
  .cart-total strong{font-size:20px}
  .cart-clear,.cart-checkout{min-height:44px}
  .cart-toast{left:12px;right:12px;bottom:14px;transform:translateY(20px);text-align:center}
  .cart-toast.show{transform:translateY(0)}
}
