/* Approved option 2: light sweep, a 3px lift and a passing arrow, every 3.8s.
   Retain each CTA's existing dimensions, circle, label and checkout target. */
body :is(#main,#nuviq-desktop-navigation-v139,#course-dock-v101) :is(a[data-order],.dock-action)[data-cta-motion="shine-launch"] {
  position:relative;
  isolation:isolate;
  animation:nuviq-cta-shine-lift 3.8s cubic-bezier(.22,.61,.36,1) infinite;
}

/* Replace the earlier faint sheen instead of stacking a second overlay. */
body :is(#main,#nuviq-desktop-navigation-v139,#course-dock-v101) :is(a[data-order],.dock-action)[data-cta-motion="shine-launch"]::after {
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  border-radius:inherit;
  pointer-events:none;
  background-image:linear-gradient(105deg,transparent 35%,#fff4d994 49%,transparent 63%);
  background-size:240% 100%;
  background-repeat:no-repeat;
  background-position:130% 0;
  opacity:0;
  animation:nuviq-cta-shine-pass 3.8s cubic-bezier(.22,.61,.36,1) infinite;
}

/* The clip and SVG circle remain still; only the two arrow drawings move. */
:is(a[data-order],.dock-action)[data-cta-motion="shine-launch"] .cta-launch-out,
:is(a[data-order],.dock-action)[data-cta-motion="shine-launch"] .cta-launch-in {
  transform-box:view-box;
  animation-duration:3.8s;
  animation-timing-function:cubic-bezier(.22,.61,.36,1);
  animation-iteration-count:infinite;
}
:is(a[data-order],.dock-action)[data-cta-motion="shine-launch"] .cta-launch-out {
  opacity:1;
  transform:translate(0,0);
  animation-name:nuviq-cta-launch-out;
}
:is(a[data-order],.dock-action)[data-cta-motion="shine-launch"] .cta-launch-in {
  opacity:0;
  animation-name:nuviq-cta-launch-in;
}
:is(a[data-order],.dock-action)[data-cta-motion="shine-launch"] .cta-launch-text {
  display:inline-grid;
  vertical-align:baseline;
  clip-path:inset(0);
  transform:none;
}
:is(a[data-order],.dock-action)[data-cta-motion="shine-launch"] .cta-launch-text > span {
  grid-area:1 / 1;
  font:inherit;
  color:inherit;
  background:none;
  padding:0;
  transform:none;
}

@keyframes nuviq-cta-shine-lift {
  0%,8%,53%,100% { translate:0 0; }
  28% { translate:0 -3px; }
}
@keyframes nuviq-cta-shine-pass {
  0%,8% { background-position:130% 0; opacity:0; }
  14%,38% { opacity:1; }
  44%,100% { background-position:-30% 0; opacity:0; }
}
@keyframes nuviq-cta-launch-out {
  0%,22% { transform:translate(0,0); opacity:1; }
  36%,52% { transform:translate(28px,-28px); opacity:0; }
  53%,100% { transform:translate(0,0); opacity:1; }
}
@keyframes nuviq-cta-launch-in {
  0%,26% { transform:translate(-28px,28px); opacity:0; }
  46%,52% { transform:translate(0,0); opacity:1; }
  53%,100% { transform:translate(0,0); opacity:0; }
}
@media (prefers-reduced-motion:reduce) {
  body :is(#main,#nuviq-desktop-navigation-v139,#course-dock-v101) :is(a[data-order],.dock-action)[data-cta-motion="shine-launch"],
  body :is(#main,#nuviq-desktop-navigation-v139,#course-dock-v101) :is(a[data-order],.dock-action)[data-cta-motion="shine-launch"]::after,
  :is(a[data-order],.dock-action)[data-cta-motion="shine-launch"] .cta-launch-out,
  :is(a[data-order],.dock-action)[data-cta-motion="shine-launch"] .cta-launch-in {
    animation:none;
    translate:none;
    transform:none;
  }
  body :is(#main,#nuviq-desktop-navigation-v139,#course-dock-v101) :is(a[data-order],.dock-action)[data-cta-motion="shine-launch"]::after,
  :is(a[data-order],.dock-action)[data-cta-motion="shine-launch"] .cta-launch-in { opacity:0; }
}
