/* Float Shadow */
.hvr-float-shadow {
	display: inline-block;
	vertical-align: middle;
	-webkit-transform: perspective(1px) translateZ(0);
	transform: perspective(1px) translateZ(0);
	box-shadow: 0 0 1px rgba(0, 0, 0, 0);
	position: relative;
	-webkit-transition-duration: 0.3s;
	transition-duration: 0.3s;
	-webkit-transition-property: transform;
	transition-property: transform;
}
.hvr-float-shadow:before {
	pointer-events: none;
	position: absolute;
	z-index: -1;
	content: "";
	top: 100%;
	left: 5%;
	height: 10px;
	width: 90%;
	opacity: 0;
	background: -webkit-radial-gradient(
		center,
		ellipse,
		rgba(0, 0, 0, 0.35) 0%,
		rgba(0, 0, 0, 0) 80%
	);
	background: radial-gradient(
		ellipse at center,
		rgba(0, 0, 0, 0.35) 0%,
		rgba(0, 0, 0, 0) 80%
	);
	/* W3C */
	-webkit-transition-duration: 0.3s;
	transition-duration: 0.3s;
	-webkit-transition-property: transform, opacity;
	transition-property: transform, opacity;
}
.hvr-float-shadow:hover,
.hvr-float-shadow:focus,
.hvr-float-shadow:active {
	-webkit-transform: translateY(-5px);
	transform: translateY(-5px);
	/* move the element up by 5px */
}
.hvr-float-shadow:hover:before,
.hvr-float-shadow:focus:before,
.hvr-float-shadow:active:before {
	opacity: 1;
	-webkit-transform: translateY(5px);
	transform: translateY(5px);
	/* move the element down by 5px (it will stay in place because it's attached to the element that also moves up 5px) */
}

/* Icon Hang */
@-webkit-keyframes hvr-icon-hang {
	0% {
		-webkit-transform: translateY(6px);
		transform: translateY(6px);
	}
	50% {
		-webkit-transform: translateY(2px);
		transform: translateY(2px);
	}
	100% {
		-webkit-transform: translateY(6px);
		transform: translateY(6px);
	}
}
@keyframes hvr-icon-hang {
	0% {
		-webkit-transform: translateY(6px);
		transform: translateY(6px);
	}
	50% {
		-webkit-transform: translateY(2px);
		transform: translateY(2px);
	}
	100% {
		-webkit-transform: translateY(6px);
		transform: translateY(6px);
	}
}
@-webkit-keyframes hvr-icon-hang-sink {
	100% {
		-webkit-transform: translateY(6px);
		transform: translateY(6px);
	}
}
@keyframes hvr-icon-hang-sink {
	100% {
		-webkit-transform: translateY(6px);
		transform: translateY(6px);
	}
}
.hvr-icon-hang {
	display: inline-block;
	vertical-align: middle;
	-webkit-transform: perspective(1px) translateZ(0);
	transform: perspective(1px) translateZ(0);
	box-shadow: 0 0 1px rgba(0, 0, 0, 0);
	-webkit-transition-duration: 0.3s;
	transition-duration: 0.3s;
}
.hvr-icon-hang .hvr-icon {
	-webkit-transform: translateZ(0);
	transform: translateZ(0);
}
.hvr-icon-hang:hover .hvr-icon,
.hvr-icon-hang:focus .hvr-icon,
.hvr-icon-hang:active .hvr-icon {
	-webkit-animation-name: hvr-icon-hang-sink, hvr-icon-hang;
	animation-name: hvr-icon-hang-sink, hvr-icon-hang;
	-webkit-animation-duration: 0.3s, 1.5s;
	animation-duration: 0.3s, 1.5s;
	-webkit-animation-delay: 0s, 0.3s;
	animation-delay: 0s, 0.3s;
	-webkit-animation-timing-function: ease-out, ease-in-out;
	animation-timing-function: ease-out, ease-in-out;
	-webkit-animation-iteration-count: 1, infinite;
	animation-iteration-count: 1, infinite;
	-webkit-animation-fill-mode: forwards;
	animation-fill-mode: forwards;
	-webkit-animation-direction: normal, alternate;
	animation-direction: normal, alternate;
}
