/* Message « ajouté au panier » : carte suspendue en bas d'écran (js/components/cart-toast.js) */
.cart-toast-region { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); z-index: 310; width: min(92vw, 520px); pointer-events: none; }
.cart-toast { position: relative; display: grid; grid-template-columns: auto 1fr auto; grid-template-areas: "badge body close" "link link link"; align-items: center; column-gap: 16px; row-gap: 14px; padding: 16px 16px 20px 20px; border-radius: var(--r-card); background: var(--color-paper); color: var(--color-ink); box-shadow: var(--shadow-card-hover), 0 20px 44px color-mix(in srgb, var(--color-ink) 18%, transparent); overflow: hidden; pointer-events: auto; opacity: 0; transform: translateY(20px) scale(0.97); transition: opacity 260ms ease, transform 360ms cubic-bezier(0.2, 0.9, 0.3, 1.2); }
.cart-toast.is-visible { opacity: 1; transform: none; }
.cart-toast__badge { grid-area: badge; position: relative; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 999px; background: var(--color-forest); color: var(--color-paper); }
.cart-toast__icon { width: 24px; height: 24px; }
.cart-toast__tick { position: absolute; top: -4px; right: -4px; display: grid; place-items: center; width: 20px; height: 20px; border-radius: 999px; background: var(--color-ember); color: var(--color-paper); font-size: 12px; font-weight: 700; line-height: 1; box-shadow: 0 0 0 2px var(--color-paper); }
.cart-toast__body { grid-area: body; min-width: 0; }
.cart-toast__title { margin: 0; font-family: var(--font-serif); font-size: var(--fs-base); font-weight: 600; color: var(--color-forest); }
.cart-toast__text { margin: 2px 0 0; font-size: var(--fs-sm); color: var(--color-text-muted); }
.cart-toast__link { grid-area: link; display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 20px; border-radius: var(--r-control); background: var(--color-ember); color: var(--color-paper); font-size: var(--fs-base); font-weight: 600; text-decoration: none; white-space: nowrap; }
.cart-toast__link:hover { background: var(--color-ember-dark); }
.cart-toast__close { grid-area: close; align-self: start; display: grid; place-items: center; min-width: 44px; min-height: 44px; margin: -8px -4px -8px 0; border: 0; border-radius: var(--r-control); background: transparent; color: var(--color-text-muted); font-size: 24px; line-height: 1; cursor: pointer; }
.cart-toast__close:hover { background: var(--color-surface-dim); color: var(--color-ink); }
.cart-toast__link:focus-visible, .cart-toast__close:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
.cart-toast__timer { position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: var(--color-ember); transform-origin: left center; animation: cart-toast-timer var(--cart-toast-duration, 6000ms) linear forwards; }
.cart-toast.is-paused .cart-toast__timer { animation-play-state: paused; }
.cart-toast.is-visible .cart-toast__badge { animation: cart-toast-pop 520ms 120ms cubic-bezier(0.2, 0.9, 0.3, 1.4) both; }
@keyframes cart-toast-timer { from { transform: scaleX(1); } to { transform: scaleX(0); } }
@keyframes cart-toast-pop { from { transform: scale(0.6); } to { transform: scale(1); } }
@media (min-width: 520px) {
  .cart-toast { grid-template-columns: auto 1fr auto auto; grid-template-areas: "badge body link close"; padding-bottom: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .cart-toast { transition: opacity 120ms linear; transform: none; }
  .cart-toast.is-visible .cart-toast__badge { animation: none; }
  .cart-toast__timer { animation: none; display: none; }
}
