.festive .hero-note {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 4px 11px;
  margin-bottom: 9px;
  border: 1px solid #ffd66e50;
  border-radius: 30px;
  background: #ffffff0b;
  color: #ffe4a2;
  font-size: 12px;
  font-weight: 550;
  line-height: 1.4;
}
.celebration-spark { width: 14px; height: 14px; fill: currentColor; flex-shrink: 0; }
.festive .model-note { color: #d1dfff; }
.festive .a-product::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 9%;
  width: 80%;
  max-width: 280px;
  height: 83%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, #8ba9ff6b, #668fff14 58%, transparent 73%);
  filter: blur(8px);
  border-radius: 50%;
  z-index: -2;
  pointer-events: none;
}
.celebration-prize-tag {
  position: absolute;
  right: clamp(0px, calc(50% - 168px), 82px);
  top: 12px;
  z-index: 2;
  padding: 8px 11px;
  border: 1px solid #ffecb0;
  border-radius: 8px;
  background: #ffd66e;
  color: #142b7e;
  font-size: 12px;
  font-weight: 750;
  line-height: 1.3;
  transform: rotate(8deg);
  box-shadow: 0 6px 15px #04174c3d;
}
.festive .hero-phone { position: relative; z-index: 1; }
.celebration-confetti {
  position: absolute;
  top: 12px;
  bottom: 12px;
  left: 50%;
  width: min(100%, 350px);
  transform: translateX(-50%);
  overflow: hidden;
  z-index: 0;
  pointer-events: none;
}
.confetti-rail {
  position: absolute;
  top: 0;
  bottom: 0;
  width: clamp(0px, calc(50% - 115px), 60px);
  overflow: hidden;
}
.confetti-left { left: 0; }
.confetti-right { right: 0; }
.celebration-confetti i {
  position: absolute;
  display: block;
  top: 0;
  left: var(--x);
  width: var(--w);
  height: 100%;
  opacity: .9;
  transform: translate3d(-50%, var(--rest), 0);
}
.celebration-confetti b {
  display: block;
  width: var(--w);
  height: var(--h);
  border-radius: 1px;
  background: var(--color);
  transform: rotate(var(--angle));
}
.confetti-rail i:nth-child(6n) b { border-radius: 50%; }
.celebration-entry-note { margin-top: 8px; color: #d6e4ff; font-size: 11px; line-height: 1.6; }
@media (prefers-reduced-motion: no-preference) {
  .celebration-confetti i {
    animation: celebration-fall var(--duration) linear infinite;
    animation-delay: var(--delay);
  }
  .celebration-confetti b {
    animation: celebration-tumble var(--spin) linear infinite;
    animation-delay: var(--delay);
  }
}
@keyframes celebration-fall {
  0% { transform: translate3d(-50%, -24px, 0); opacity: 0; }
  8%, 88% { opacity: .95; }
  100% { transform: translate3d(calc(-50% + var(--drift)), calc(100% + 24px), 0); opacity: 0; }
}
@keyframes celebration-tumble {
  from { transform: rotate(var(--angle)) rotateY(0deg) rotateX(20deg); }
  to { transform: rotate(calc(var(--angle) + 360deg)) rotateY(360deg) rotateX(20deg); }
}
@media (max-width:360px) {
  .festive .hero-note { font-size: 11px; padding: 4px 10px; }
  .celebration-prize-tag { font-size: 11px; padding: 7px 9px; top: 8px; right: 0; }
  .celebration-entry-note { font-size: 10px; margin-top: 7px; }
}
