.o-btn {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.o-btn.--center {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.o-btn__link {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: var(--spacing-16) var(--spacing-32) var(--spacing-16) var(--spacing-48);
  border-radius: 999px;
  background-image: -webkit-gradient(linear, left top, right top, from(var(--color-secondary)), to(var(--color-primary)));
  background-image: linear-gradient(to right, var(--color-secondary), var(--color-primary));
  background-size: 120% 100%;
  font-size: var(--text-xl);
  color: var(--color-gray-light) !important;
  -webkit-box-shadow: 0 2px 12px -4px var(--color-primary);
          box-shadow: 0 2px 12px -4px var(--color-primary);
  -webkit-transition: padding 0.3s, background 0.3s, -webkit-box-shadow 0.3s;
  transition: padding 0.3s, background 0.3s, -webkit-box-shadow 0.3s;
  transition: padding 0.3s, background 0.3s, box-shadow 0.3s;
  transition: padding 0.3s, background 0.3s, box-shadow 0.3s, -webkit-box-shadow 0.3s;
}
.o-btn__link:hover {
  padding-left: var(--spacing-64);
  padding-right: var(--spacing-24);
  background-size: 100% 100%;
  -webkit-box-shadow: 0 0 10px -4px var(--color-primary);
          box-shadow: 0 0 10px -4px var(--color-primary);
}
.o-btn__link.--size-sm {
  padding: var(--spacing-8) var(--spacing-16) var(--spacing-8) var(--spacing-24);
  background-image: none;
  background-color: var(--color-cocoa-dark);
  font-size: var(--text-lg);
  -webkit-box-shadow: none;
          box-shadow: none;
}
.o-btn__link.--size-sm:hover {
  background-color: var(--color-primary);
}
.o-btn__link:not([class*="--size"]):hover .o-btn__text {
  margin-right: var(--spacing-40);
}
.o-btn__text {
  margin-right: var(--spacing-16);
  -webkit-transition: margin 0.3s;
  transition: margin 0.3s;
}
.o-btn__link.--size-sm .o-btn__text {
  margin-right: var(--spacing-8);
}