﻿/*
P.S: if you like my content maybe you will become a donator and donate some money? That helps me to create new awesome materials. https://www.paypal.me/melnik909
*/

/*
* fallback for browsers which doesn't support the CSS Custom Properties.
*/

.button_hb{
  border-color: #448AFF;
  color: #448AFF;
}

.button_hb:before{
  background-color: #448AFF;
}

/*
=====
LEVEL 1. RESET STYLES
=====
*/

.button {
    border: none;
    width: 13rem;
    padding: 0;
    background-color: transparent;
    font-family: inherit;
    cursor: pointer;
}

/*
=====
LEVEL 2. CORE STYLES OF MODIFIERS
=====
*/

.button_hb{
  padding: 0.5rem 2rem;
  text-transform: uppercase;
  color: var(--uiButtonBgColorHover);
  border-radius: 5px;
  border-width: 2px;
  border-style: solid;
  border-color: var(--uiButtonBgColorHover);
}

.button_hb span{
  font-weight:bold;
}

.button_hb{
	--uiButtonBgColorHover: var(--buttondBgColorHover);
  --uiButtonTextColorHover: var(--buttonTextColorHover);
  
	position: relative;
	overflow: hidden;
	transition: color .5s ease-out;
}

.button_hb:before{
	content: "";
	background-color: var(--uiButtonBgColorHover);
}

.button_hb:focus{
	outline: none;
}

.button_hb:hover, .button_hb:focus{
	/*color: var(--uiButtonTextColorHover);*/
    color:#fff;
}

.button_hb .button__icon, .button_hb:not(.button_hidden-text) .button__label{
	position: relative;
	z-index: 2;
}

/*
=====
LEVEL 3. STYLES FOR ANIMATIONS
=====
*/

/* animation 1 */

.button_hb-type1:before{
	width: 200%;
	height: 150%;
	opacity: 0;

	position: absolute;
	left: -50%;
	bottom: 0;

	transform-origin: left bottom;
	transform: rotate(-90deg) translateZ(0);

	will-change: transform, opacity;
	transition-property: transform, opacity;
	transition-duration: .6s;
	transition-timing-function: cubic-bezier(.01,-.24, 0, .68);
}

.button_hb-type1:hover:before, .button_hb-type1:focus:before{
	transform: rotate(0deg) translateZ(0);
	opacity: 1;
	transition-duration: .3s;
}

/* animation 2 */

.button_hb-type2:before{
	width: 0;
	height: 0;
	padding: 50%;
	border-radius: 50%;

	position: absolute;
	left: 50%;
	top: 50%;

	transform: translate3d(-50%, -50%, 0) scale(0);
  transition: transform .15s ease-out;
}

.button_hb-type2:hover:before, .button_hb-type2:focus:before{
  transition-duration: .3s;
	transform: translate3d(-50%, -50%, 0) scale(1.5);
}

/* animation 3 */

.button_hb-type3:before{
    width: 0;
	height: 0;
	padding: 50%;
	border-radius: 50%;

	position: absolute;
	left: 50%;
	top: 50%;

	transform: translate3d(-50%, -50%, 0) scale(0);
  transition: transform .15s ease-out;
	/*width: 110%;
	height: 0;
	opacity: 0;

	position: absolute;
	left: 50%;
	top: 50%;

	transform: translate3d(-50%, -50%, 0);
	will-change: opacity, height;

	transition-property: opacity, height;
	transition-duration: .25s, .25s;
  transition-delay: .15s, 0s;
  transition-timing-function: cubic-bezier(0, 0, 0.11, 1.24);*/
}

.button_hb-type3:hover:before, .button_hb-type3:focus:before{
    transition-duration: .3s;
	transform: translate3d(-50%, -50%, 0) scale(1.5);
	/*opacity: 1;
  height: 110%;
  transition-duration: .25s, .4s;
  transition-delay: 0s;*/
}

/* animation 4 */

.button_hb-type4:before{
	width: 0;
	height: 110%;
	opacity: 0;

	position: absolute;
	left: 50%;
	top: 50%;

	transform: translate3d(-50%, -50%, 0);
	will-change: opacity, width;

	transition-property: opacity, width;
	transition-duration: .25s, .25s;
  transition-delay: .15s, 0s;
  transition-timing-function: cubic-bezier(0, 0, 0.11, 1.24);
}

.button_hb-type4:hover:before, .button_hb-type4:focus:before{
	opacity: 1;
  width: 110%;
  transition-duration: .25s, .4s;
  transition-delay: 0s;
}

/* animation 5 */

.button_hb-type5:before{
	width: 0;
	height: 110%;
	opacity: 0;

	position: absolute;
	left: 0;
	top: 0;

	will-change: opacity, width;
	transition-property: opacity, width;
	transition-duration: .25s, .25s;
  transition-delay: .15s, 0s;
  transition-timing-function: cubic-bezier(0, 0, 0.11, 1.24);
}

.button_hb-type5:hover:before, .button_hb-type5:focus:before{
	opacity: 1;
  width: 110%;
  transition-duration: .25s, .4s;
  transition-delay: 0s;
}

/* animation 6 */

.button_hb-type6:before{
	width: 110%;
	height: 0;
	opacity: 0;

	position: absolute;
	left: 0;
	bottom: 0;
  
	will-change: opacity, height;
	transition-property: opacity, height;
	transition-duration: .25s, .25s;
  transition-delay: .15s, 0s;
  transition-timing-function: cubic-bezier(0, 0, 0.11, 1.24);
}

.button_hb-type6:hover:before, .button_hb-type6:focus:before{
	opacity: 1;
  height: 110%;
  transition-duration: .25s, .4s;
  transition-delay: 0s;
}

/*
=====
LEVEL 4. SETTINGS
=====
*/

.button_hb-type1{
  --buttonTextColor: #448AFF;
  --buttondBgColorHover: #448AFF;
  --buttonTextColorHover: #FFF;
}

.button_hb-type2 {
    --buttonTextColor: #6AE1C1;
    --buttondBgColorHover: #6AE1C1;
}

.button_hb-type3{
  --buttonTextColor: #C8C8C8;
  --buttondBgColorHover: #C8C8C8;
}

.button_hb-type4{
  --buttonTextColor: #F56476;
  --buttondBgColorHover: #F56476;
}

.button_hb-type5{
  --buttonTextColor: #673ab7;
  --buttondBgColorHover: #673ab7;
}

.button_hb-type6 {
    --buttonTextColor: #ffc107;
    --buttondBgColorHover: #ffc107;
}
/*.button_hb-type7 {
    --buttonTextColor: #eaac64;
    --buttondBgColorHover: #eaac64;
}*/