.z-button {
	opacity: 0;
    height: 100%;
	overflow: hidden;
    cursor: pointer;
	transition: .5s ease;
    z-index: 2;
}

.z-button:hover .z-button {
    opacity: 1;
}

.z-button-type {
  	-webkit-transform: translate(-50%, -50%);
  	-ms-transform: translate(-50%, -50%);
  	transform: translate(-50%, -50%);
  	white-space: nowrap;
}

.z-overlay {
	display: flex;
    justify-content: center;
    align-items: center;
  	width: 100%;
  	height: 100%;
	pointer-events: all;
}

.z-overlay-fade {
	opacity: 0;
	transition: opacity 0.5s ease;
}
.z-button:hover .z-overlay-fade {
  	opacity: 1;
}

.z-overlay-slide-top {
	height: 0;
	overflow: hidden;
	transition: height 0.5s ease;
}
.z-button:hover .z-overlay-slide-top {
  	height: 100%;
}

.z-overlay-slide-left {
	width: 0;
  	overflow: hidden;
  	transition: width 0.5s ease;
}
.z-button:hover .z-overlay-slide-left {
  	width: 100%;
}

.z-overlay-slide-bottom {
	bottom: 0;
	height: 0;
	overflow: hidden;
	position: absolute;
	transition: height 0.5s ease;
}
.z-button:hover .z-overlay-slide-bottom {
  	height: 100%;
}

.z-overlay-slide-right {
	left: auto;
	right: 0;
	width: 0;
	overflow: hidden;
	transition: width 0.5s ease;
}
.z-button:hover .z-overlay-slide-right {
	width: 100%;
	left: 0;
	right: auto;
}

.z-overlay-zoom {
	-webkit-transform: scale(0);
	-ms-transform: scale(0);
	transform: scale(0);
	-webkit-transition: .4s ease;
	transition: .4s ease;
}
.z-button:hover .z-overlay-zoom {
	-webkit-transform: scale(1);
	-ms-transform: scale(1);
	transform: scale(1);
}

.z-overlay-slide-inside-out {
	transform: scale(0.2);
	opacity: 0;
	transition: transform 0.4s ease, opacity 0.4s ease;
	transform-origin: center center;
}

.z-button:hover .z-overlay-inside-out {
	-webkit-transform: scale(1);
	-ms-transform: scale(1);
	transform: scale(1);
}
.z-overlay-rotate {
	transform: rotate(-90deg) scale(0);
	opacity: 0;
	transition: transform 0.5s ease, opacity 0.5s ease;
}

.z-button:hover .z-overlay-rotate {
	transform: rotate(0deg) scale(1);
	opacity: 1;
}
.z-overlay-flip-horizontal {
	transform: rotateY(90deg);
	opacity: 0;
	transition: transform 0.5s ease, opacity 0.5s ease;
	transform-origin: center;
}

.z-button:hover .z-overlay-flip-horizontal {
	transform: rotateY(0deg);
	opacity: 1;
}
.z-overlay-pulse {
	transform: scale(0.5);
	opacity: 0;
	transition: transform 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55), opacity 0.4s ease;
}

.z-button:hover .z-overlay-pulse {
	transform: scale(1);
	opacity: 1;
}
.z-overlay-blur {
	filter: blur(10px);
	opacity: 0;
	transition: filter 0.5s ease, opacity 0.5s ease;
}

.z-button:hover .z-overlay-blur {
	filter: blur(0);
	opacity: 1;
}
.z-overlay-slide-diagonal {
	transform: translate(-100%, -100%);
	opacity: 0;
	transition: transform 0.4s ease, opacity 0.4s ease;
}

.z-button:hover .z-overlay-slide-diagonal {
	transform: translate(0, 0);
	opacity: 1;
}