.cta {
  text-decoration: none;
  text-transform: uppercase;
  font-weight: font-weight(medium);
  line-height: initial;
  cursor: pointer;

  &:hover {
    .cta_text {
      box-shadow: inset 0 -3px 0 currentColor;
      transition: box-shadow 100ms;
    }
  }

  &_text {
    box-shadow: inset 0 -2px 0 currentColor;
    transition: box-shadow 100ms;
  }

  .icon {
    width: 0.75em;
    height: 0.75em;
    font-size: 1em;

    &.icon-right {
      margin-left: 0.1em;
    }
  }
}

.cta {
  text-decoration: none;
  text-transform: uppercase;
  font-weight: font-weight(medium);
  line-height: initial;
  cursor: pointer;

  &:hover {
    .cta_text {
      box-shadow: inset 0 -3px 0 currentColor;
      transition: box-shadow 100ms;
    }

    .icon {
      animation: cta-hover 1s infinite;
    }
  }

  &_text {
    box-shadow: inset 0 -2px 0 currentColor;
    transition: box-shadow 100ms;
  }

  .icon {
    width: 0.75em;
    height: 0.75em;
    font-size: 1em;

    &.icon-right {
      margin-left: 0.1em;
    }
  }
}

@keyframes cta-hover {
  0% {
    transform: translateX(-1px);
  }

  50% {
    transform: translateX(0);
  }

  100% {
    transform: translateX(-1px);
  }
}

Add subtle CTA arrow animation.
feat(Branding): Add subtle CTA arrow animation.
