/* "Added to cart" notice card and the fly-to-cart animation (add-to-cart-fx.js). */
.woocommerce-notices-wrapper .woocommerce-message:has(.wc-forward) {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 18px;
  min-height: 74px;
  margin: 0 0 24px;
  padding: 16px 18px 16px 76px;
  border: 1px solid #d9eedf;
  border-radius: 16px;
  background: linear-gradient(110deg, #fff 35%, #eefaf1 50%, #fff 65%) 120% 0 / 260% 100% no-repeat, #fff;
  box-shadow: 0 14px 34px rgba(22, 120, 58, .12), 0 2px 6px rgba(20, 10, 12, .05);
  outline: none;
  color: #251e1f;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.4;
  animation: mm-atc-notice-in .55s cubic-bezier(.2, .9, .3, 1.2) both, mm-atc-sheen 1.4s .5s ease-out both;
}
/* Green circle and a check drawn left to right. */
.woocommerce-notices-wrapper .woocommerce-message:has(.wc-forward)::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 18px;
  width: 42px;
  height: 42px;
  margin-top: -21px;
  border-radius: 50%;
  background: linear-gradient(145deg, #27c25c, #149442);
  box-shadow: 0 0 0 6px rgba(39, 194, 92, .14);
  animation: mm-atc-circle .45s .15s cubic-bezier(.3, 1.6, .5, 1) both;
}
.woocommerce-notices-wrapper .woocommerce-message:has(.wc-forward)::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 31px;
  width: 9px;
  height: 18px;
  margin-top: -12px;
  border: solid #fff;
  border-width: 0 3.5px 3.5px 0;
  border-radius: 1px;
  transform: rotate(45deg);
  animation: mm-atc-check .35s .5s ease-out both;
}
.woocommerce-notices-wrapper .woocommerce-message:has(.wc-forward) .button.wc-forward {
  float: none;
  order: 2;
  margin: 0 0 0 auto;
  padding: 12px 20px;
  border: 0;
  border-radius: 999px;
  background: linear-gradient(145deg, #f10a17, #bd000b);
  box-shadow: 0 8px 20px rgba(196, 0, 12, .25);
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
  transition: transform .15s ease, box-shadow .15s ease;
}
.woocommerce-notices-wrapper .woocommerce-message:has(.wc-forward) .button.wc-forward::after {
  content: ' \2192';
}
.woocommerce-notices-wrapper .woocommerce-message:has(.wc-forward) .button.wc-forward:hover {
  transform: translateY(-1px);
  box-shadow: 0 12px 24px rgba(196, 0, 12, .32);
}

@keyframes mm-atc-notice-in {
  from { opacity: 0; transform: translateY(-14px) scale(.97); }
  to { opacity: 1; transform: none; }
}
@keyframes mm-atc-sheen {
  from { background-position: 120% 0, 0 0; }
  to { background-position: -20% 0, 0 0; }
}
@keyframes mm-atc-circle {
  from { transform: scale(0); }
  to { transform: scale(1); }
}
@keyframes mm-atc-check {
  from { clip-path: inset(0 100% 100% 0); }
  to { clip-path: inset(0 0 0 0); }
}

/* Flying product photo. */
.mm-atc-ghost {
  position: fixed;
  z-index: 100050;
  top: 0;
  left: 0;
  pointer-events: none;
  will-change: transform;
}
.mm-atc-ghost > span {
  display: block;
  width: 100%;
  height: 100%;
  border: 3px solid #fff;
  border-radius: 50%;
  background: #fff center / cover no-repeat;
  box-shadow: 0 12px 30px rgba(20, 10, 12, .3);
  will-change: transform;
}

/* Cart landing: bounce, ripple, confetti, "+1". */
.mm-atc-bump {
  animation: mm-atc-bump .6s cubic-bezier(.3, 1.6, .5, 1);
}
.mm-atc-pop {
  animation: mm-atc-pop .5s .1s cubic-bezier(.3, 1.8, .5, 1);
}
.mm-atc-fx {
  position: fixed;
  z-index: 100051;
  width: 0;
  height: 0;
  pointer-events: none;
}
.mm-atc-ring {
  position: absolute;
  top: -30px;
  left: -30px;
  width: 60px;
  height: 60px;
  border: 3px solid #e30613;
  border-radius: 50%;
  animation: mm-atc-ring .7s ease-out forwards;
}
.mm-atc-bit {
  position: absolute;
  top: -4px;
  left: -4px;
  width: 8px;
  height: 8px;
  border-radius: 2px;
}
.mm-atc-plus {
  position: absolute;
  top: -12px;
  left: -14px;
  width: 28px;
  color: #149442;
  font: 800 18px/24px system-ui, sans-serif;
  text-align: center;
  text-shadow: 0 1px 0 #fff, 0 0 6px #fff;
  animation: mm-atc-plus 1s ease-out forwards;
}

@keyframes mm-atc-bump {
  0% { transform: scale(1); }
  30% { transform: scale(1.28) rotate(-8deg); }
  55% { transform: scale(.92) rotate(5deg); }
  100% { transform: scale(1); }
}
@keyframes mm-atc-pop {
  0% { transform: scale(1); }
  45% { transform: scale(1.7); }
  100% { transform: scale(1); }
}
@keyframes mm-atc-ring {
  from { opacity: .8; transform: scale(.4); }
  to { opacity: 0; transform: scale(1.9); }
}
@keyframes mm-atc-plus {
  0% { opacity: 0; transform: translateY(0) scale(.6); }
  20% { opacity: 1; transform: translateY(-14px) scale(1.1); }
  100% { opacity: 0; transform: translateY(-46px) scale(1); }
}

@media (max-width: 768px) {
  .woocommerce-notices-wrapper .woocommerce-message:has(.wc-forward) {
    margin-bottom: 18px;
    padding: 14px 14px 14px 64px;
    font-size: 15px;
  }
  .woocommerce-notices-wrapper .woocommerce-message:has(.wc-forward)::before {
    top: 16px;
    left: 14px;
    width: 36px;
    height: 36px;
    margin-top: 0;
  }
  .woocommerce-notices-wrapper .woocommerce-message:has(.wc-forward)::after {
    top: 16px;
    left: 25px;
    width: 8px;
    height: 16px;
    margin-top: 7px;
  }
  .woocommerce-notices-wrapper .woocommerce-message:has(.wc-forward) .button.wc-forward {
    flex: 1 0 100%;
    margin: 2px 0 0 -50px;
    text-align: center;
  }
}

@media (prefers-reduced-motion: reduce) {
  .woocommerce-notices-wrapper .woocommerce-message:has(.wc-forward),
  .woocommerce-notices-wrapper .woocommerce-message:has(.wc-forward)::before,
  .woocommerce-notices-wrapper .woocommerce-message:has(.wc-forward)::after {
    animation: none;
  }
}
