/* OneStack v370 — Hero offer strip only.
 * 1) Gift floats continuously without layout shift.
 * 2) Copy re-enters every 10s; CTA follows once the copy is visible.
 * No HTML rewriting, layout changes, or unrelated site animations.
 */
body.oneweb-template-home .os-home-v9 .os-v9-promo .os-v9-promo__inner > img {
  transform-origin: 50% 52%;
  animation: os-v370-gift-float 3.8s ease-in-out infinite;
  will-change: transform;
}

/* Title and description stay grouped to preserve line wrapping and spacing. */
body.oneweb-template-home .os-home-v9 .os-v9-promo .os-v9-promo__inner > div {
  animation: os-v370-promo-copy 10s cubic-bezier(.22,.68,.24,1) infinite both;
  transform-origin: 50% 50%;
  will-change: opacity, transform;
}

/* The CTA starts its appearance once the entire text group has appeared. */
body.oneweb-template-home .os-home-v9 .os-v9-promo .os-v9-promo__inner > a.os-v9-btn {
  animation: os-v370-promo-action 10s ease-in-out infinite both;
  will-change: opacity, transform;
}

@keyframes os-v370-gift-float {
  0%, 100% { transform: translate3d(0, 0, 0); }
  50%      { transform: translate3d(0, -9px, 0); }
}

/* Cycle: text settles by .9s, remains readable >8s, resets softly at end. */
@keyframes os-v370-promo-copy {
  0%, 1%   { opacity: 0; transform: translate3d(0, 14px, 0); }
  9%, 90%  { opacity: 1; transform: translate3d(0, 0, 0); }
  97%, 100% { opacity: 0; transform: translate3d(0, -5px, 0); }
}

/* CTA follows text (~.9s), settles at 1.55s and resets each 10s cycle. */
@keyframes os-v370-promo-action {
  0%, 9%    { opacity: 0; transform: translate3d(0, 13px, 0); }
  15.5%, 88% { opacity: 1; transform: translate3d(0, 0, 0); }
  95%, 100% { opacity: 0; transform: translate3d(0, -4px, 0); }
}

/* Do not hide the call to action when tabbed to with a keyboard. */
body.oneweb-template-home .os-home-v9 .os-v9-promo .os-v9-promo__inner > a.os-v9-btn:focus-visible {
  animation: none !important;
  opacity: 1 !important;
  transform: none !important;
}

/* Accessibility: no continuous animation if reduced motion is requested. */
@media (prefers-reduced-motion: reduce) {
  body.oneweb-template-home .os-home-v9 .os-v9-promo .os-v9-promo__inner > img,
  body.oneweb-template-home .os-home-v9 .os-v9-promo .os-v9-promo__inner > div,
  body.oneweb-template-home .os-home-v9 .os-v9-promo .os-v9-promo__inner > a.os-v9-btn {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
    will-change: auto !important;
  }
}
