/* Cart: drawer, cart page, mobile bar */
.cart-msg{min-height:1.4em;margin:0;padding:0 1.25rem;font-weight:700;color:var(--basil)}
.cart-msg.is-error{color:var(--tomato-dark)}
.cart-page .cart-msg{padding:0;margin-bottom:.75rem}
.cart-page__title{font-size:clamp(2rem,5vw,3.2rem)}
.cart-page__card{max-width:760px}

[data-cart-body]{transition:opacity .15s}
[data-cart-body].is-busy{opacity:.55;pointer-events:none}

/* Drawer (a <dialog>, so focus is trapped and Esc closes it) */
dialog.drawer{border:0;padding:0;margin:0 0 0 auto;height:100dvh;max-height:100dvh;width:min(440px,100%);max-width:100%;background:var(--cheese);color:var(--ink);overflow:hidden}
dialog.drawer::backdrop{background:rgba(27,20,17,.6);backdrop-filter:blur(3px)}
dialog.drawer[open]{animation:drawer-in .18s ease-out}
@keyframes drawer-in{from{transform:translateX(100%)}}
.drawer__panel{display:flex;flex-direction:column;height:100%}
.drawer__head{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem .5rem}
.drawer__head h2{font-size:1.7rem;margin:0}
.drawer__close{position:static}
.drawer__body{flex:1;overflow-y:auto;padding:.5rem 1.25rem 1.25rem}

/* Lines */
.cart-lines{list-style:none;margin:0;padding:0}
.cart-line{display:flex;justify-content:space-between;gap:1rem;padding:1rem 0;border-bottom:2px solid var(--line)}
.cart-line__info{display:flex;flex-direction:column;min-width:0}
.cart-line__info a{text-decoration:none}
.cart-line__info a:hover{text-decoration:underline}
.cart-line__meta{color:var(--muted);font-size:.9rem;overflow-wrap:anywhere}
.cart-line__side{display:flex;flex-direction:column;align-items:flex-end;gap:.4rem;flex:none}
.cart-line__total{font-variant-numeric:tabular-nums}
.qty--sm button{width:40px;height:40px;font-size:1.25rem}
.qty--sm button:disabled{opacity:.35;cursor:not-allowed}
.qty--sm form{display:contents}
.link-btn{background:none;border:0;padding:.5rem;min-height:40px;color:var(--tomato-dark);font:700 .9rem var(--font-body);text-decoration:underline;cursor:pointer}

/* Coupon */
.cart-coupon{padding:1rem 0 .25rem}
.cart-coupon__form{display:flex;gap:.5rem}
.cart-coupon__applied{display:flex;align-items:center;gap:.5rem}
.cart-coupon .field-error{margin:.4rem 0 0}

/* Totals */
.cart-totals{margin:.75rem 0 0}
.cart-totals div{display:flex;justify-content:space-between;padding:.25rem 0}
.cart-totals dt,.cart-totals dd{margin:0}
.cart-totals dd{font-variant-numeric:tabular-nums;font-weight:700}
.cart-totals .is-discount{color:var(--basil)}
.cart-totals__sum{margin-top:.4rem;padding-top:.6rem!important;border-top:2px solid var(--oven);font:800 1.35rem var(--font-display)}

.cart-delivery{margin-top:.75rem;padding:.8rem 1rem;background:var(--kraft-2);border-radius:var(--radius-sm);font-size:.95rem}
.cart-delivery p{margin:0 0 .4rem}
.cart-delivery p:last-child{margin:0}
.meter{height:10px;border-radius:5px;background:rgba(27,20,17,.12);overflow:hidden}
.meter span{display:block;height:100%;background:var(--basil);border-radius:5px;transition:width .4s}

.cart-actions{display:grid;gap:.6rem;margin-top:1.25rem}

.cart-empty{text-align:center;padding:2.5rem 1rem}
.cart-empty__icon{font-size:3.5rem;margin:0}
.cart-empty p{margin-inline:auto}

/* Mobile bar */
.cartbar{display:none}
@media (max-width:700px){
  .cartbar:not([hidden]){position:fixed;left:.75rem;right:.75rem;bottom:.75rem;z-index:90;display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:56px;padding:.6rem 1.2rem;border-radius:var(--radius-pill);background:var(--tomato);color:#fff;text-decoration:none;font-weight:700;box-shadow:0 10px 30px -8px rgba(27,20,17,.6),0 5px 0 var(--tomato-dark)}
  body:has(.cartbar:not([hidden])){padding-bottom:84px}
}

@media (prefers-reduced-motion:reduce){dialog.drawer[open]{animation:none}.meter span{transition:none}}

.cart-empty__title{font-size:1.35rem}
