/* me-cart.css: bag drawer (450 ms slide, free-delivery bar, free sample line, gift message). */
cart-drawer .drawer__inner { transition: transform var(--me-duration-drawer) var(--me-ease); border-left: 1px solid var(--color-mist); }
cart-drawer.drawer { transition: visibility var(--me-duration-drawer) var(--me-ease); background: none; }
/* Dawn paints the scrim on .drawer, where it snaps in; a pseudo-element can fade with the slide. */
cart-drawer.drawer::before { content: ""; position: fixed; inset: 0; background: rgba(var(--color-foreground), 0.5); opacity: 0; transition: opacity var(--me-duration-drawer) var(--me-ease); }
cart-drawer.drawer.active::before { opacity: 1; }
cart-drawer .drawer__heading { font-family: var(--font-heading-family); font-weight: var(--me-weight-heading-light); font-size: 2.8rem; letter-spacing: 0; }
cart-drawer .cart-item__name { font-family: var(--font-heading-family); font-size: 1.8rem; font-weight: var(--me-weight-heading-medium); }
cart-drawer .product-option, cart-drawer .cart-item__quantity { font-size: 1.3rem; }
cart-drawer .totals__total { font-family: var(--font-body-family); font-size: 1.4rem; letter-spacing: 0.04em; text-transform: uppercase; }
cart-drawer .totals__total-value { font-size: 1.8rem; }
cart-drawer .cart__checkout-button { min-height: 5.2rem; }
cart-drawer .drawer__footer > details .summary__title { font-size: 1.4rem; letter-spacing: 0.02em; }
.me-cart__delivery { margin: 0 0 1.6rem; }
.me-cart__delivery-text { margin: 0 0 0.8rem; font-size: 1.3rem; letter-spacing: 0.02em; }
.me-cart__delivery--unlocked .me-cart__delivery-text { color: var(--color-accent); font-weight: var(--me-weight-body-medium); }
.me-cart__bar { height: 2px; background: var(--color-mist); overflow: hidden; }
.me-cart__bar-value { display: block; height: 100%; background: var(--color-accent); }
.me-cart__sample { display: flex; align-items: center; gap: 0.8rem; margin: 0 0 1.6rem; padding: 1rem 1.2rem; background: var(--color-accent-soft); color: var(--color-ink); font-size: 1.3rem; line-height: 1.4; }
.me-cart__sample-mark { flex: none; width: 0.8rem; height: 0.8rem; border-radius: 50%; background: var(--color-accent); }
@media (prefers-reduced-motion: reduce) { cart-drawer .drawer__inner, cart-drawer.drawer, cart-drawer.drawer::before { transition: none; } }

/* The delivery bar fills as the bag opens. */
cart-drawer.active .me-cart__bar-value { transform-origin: left; animation: me-bar-fill 800ms var(--me-ease) both; }
@keyframes me-bar-fill { from { transform: scaleX(0); } }
@media (prefers-reduced-motion: reduce) { cart-drawer.active .me-cart__bar-value { animation: none; } }
