.printeon-btn-wrapper [class^="printeon-btn-"] {
  position: relative;
  text-decoration: none !important;
  z-index: 0;
  overflow: hidden;
  display: inline-block;
  line-height: 1;
  max-width: 100%;
  vertical-align: bottom;
}

.printeon-btn-wrapper .btn {
  display: inline-block;
}

.printeon-btn-sm {
  padding: 8px;
  font-size: 0.85em;
  -webkit-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
}

.printeon-btn-md {
  padding: 15px;
  font-size: 1em;
  -webkit-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
}

.printeon-btn-lg {
  padding: 25px;
  font-size: 1.15em;
  -webkit-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
}

/* animation 1 */
.printeon-btn-1:before {
  position: absolute;
  content: "";
  z-index: -1;
  width: 200%;
  height: 150%;
  opacity: 0;
  left: -50%;
  bottom: 0;
  -webkit-transform-origin: left bottom;
  transform-origin: left bottom;
  -webkit-transform: rotate(-90deg) translateZ(0);
  transform: rotate(-90deg) translateZ(0);
  will-change: transform, opacity;
  transition-property: opacity, -webkit-transform;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-transition-duration: .6s;
          transition-duration: .6s;
  -webkit-transition-timing-function: cubic-bezier(0.01, -0.24, 0, 0.68);
          transition-timing-function: cubic-bezier(0.01, -0.24, 0, 0.68);
}
.printeon-btn-1:hover:before {
  -webkit-transform: rotate(0deg) translateZ(0);
  transform: rotate(0deg) translateZ(0);
  opacity: 1;
  -webkit-transition-duration: .2s;
          transition-duration: .2s;
}

/* animation 2 */
.printeon-btn-2:before {
  position: absolute;
  content: "";
  z-index: -1;
  width: 0;
  height: 0;
  padding: 50%;
  border-radius: 50% !important;
  left: 50%;
  top: 50%;
  -webkit-transform: translate3d(-50%, -50%, 0) scale(0);
  transform: translate3d(-50%, -50%, 0) scale(0);
  transition: -webkit-transform .15s ease-out;
  -webkit-transition: -webkit-transform .15s ease-out;
  transition: transform .15s ease-out;
  transition: transform .15s ease-out, -webkit-transform .15s ease-out;
}
.printeon-btn-2:hover:before {
  -webkit-transition-duration: .3s;
          transition-duration: .3s;
  -webkit-transform: translate3d(-50%, -50%, 0) scale(1.5);
  transform: translate3d(-50%, -50%, 0) scale(1.5);
  width: 100%;
}

/* animation 3 */
.printeon-btn-3:before {
  position: absolute;
  content: "";
  z-index: -1;
  width: 110%;
  height: 0;
  opacity: 0;
  left: 50%;
  top: 50%;
  -webkit-transform: translate3d(-50%, -50%, 0);
  transform: translate3d(-50%, -50%, 0);
  will-change: opacity, height;
  -webkit-transition-property: opacity, height;
  transition-property: opacity, height;
  -webkit-transition-duration: .25s, .25s;
          transition-duration: .25s, .25s;
  -webkit-transition-delay: .15s, 0s;
          transition-delay: .15s, 0s;
  -webkit-transition-timing-function: cubic-bezier(0, 0, 0.11, 1.24);
          transition-timing-function: cubic-bezier(0, 0, 0.11, 1.24);
}
.printeon-btn-3:hover:before {
  opacity: 1;
  height: 110%;
  -webkit-transition-duration: .25s, .4s;
          transition-duration: .25s, .4s;
  -webkit-transition-delay: 0s;
          transition-delay: 0s;
}

/* animation 4 */
.printeon-btn-4:before {
  position: absolute;
  content: "";
  z-index: -1;
  width: 0;
  height: 110%;
  opacity: 0;
  left: 50%;
  top: 50%;
  -webkit-transform: translate3d(-50%, -50%, 0);
  transform: translate3d(-50%, -50%, 0);
  will-change: opacity, width;
  -webkit-transition-property: opacity, width;
  transition-property: opacity, width;
  -webkit-transition-duration: .25s, .25s;
          transition-duration: .25s, .25s;
  -webkit-transition-delay: .15s, 0s;
          transition-delay: .15s, 0s;
  -webkit-transition-timing-function: cubic-bezier(0, 0, 0.11, 1.24);
          transition-timing-function: cubic-bezier(0, 0, 0.11, 1.24);
}
.printeon-btn-4:hover:before {
  opacity: 1;
  width: 110%;
  -webkit-transition-duration: .25s, .4s;
          transition-duration: .25s, .4s;
  -webkit-transition-delay: 0s;
          transition-delay: 0s;
}

/* animation 5 & 7 */
.printeon-btn-5:before,
.printeon-btn-7:before {
  position: absolute;
  content: "";
  z-index: -1;
  width: 0;
  height: 110%;
  opacity: 0;
  left: 0;
  top: 0;
  will-change: opacity, width;
  -webkit-transition-property: opacity, width;
  transition-property: opacity, width;
  -webkit-transition-duration: .25s, .25s;
          transition-duration: .25s, .25s;
  -webkit-transition-delay: .15s, 0s;
          transition-delay: .15s, 0s;
  -webkit-transition-timing-function: cubic-bezier(0, 0, 0.11, 1.24);
          transition-timing-function: cubic-bezier(0, 0, 0.11, 1.24);
}
.printeon-btn-5:hover:before,
.printeon-btn-7:hover:before {
  opacity: 1;
  width: 110%;
  -webkit-transition-duration: .25s, .4s;
          transition-duration: .25s, .4s;
  -webkit-transition-delay: 0s;
          transition-delay: 0s;
}

.printeon-btn-7:before {
  left: auto;
  right: 0;
}

/* animation 6 & 8 */
.printeon-btn-6:before,
.printeon-btn-8:before {
  position: absolute;
  content: "";
  z-index: -1;
  width: 110%;
  height: 0;
  opacity: 0;
  left: 0;
  bottom: 0;
  will-change: opacity, height;
  -webkit-transition-property: opacity, height;
  transition-property: opacity, height;
  -webkit-transition-duration: .25s, .25s;
          transition-duration: .25s, .25s;
  -webkit-transition-delay: .15s, 0s;
          transition-delay: .15s, 0s;
  -webkit-transition-timing-function: cubic-bezier(0, 0, 0.11, 1.24);
          transition-timing-function: cubic-bezier(0, 0, 0.11, 1.24);
}
.printeon-btn-6:hover:before,
.printeon-btn-8:hover:before {
  opacity: 1;
  height: 110%;
  -webkit-transition-duration: .25s, .4s;
          transition-duration: .25s, .4s;
  -webkit-transition-delay: 0s;
          transition-delay: 0s;
}

.printeon-btn-8:before {
  bottom: auto;
  top: 0;
}
