/* Common styles */

.effect {
  position: relative;
  width: 400px;
  height: 300px;
  overflow: hidden;
}

.effect a {
  text-decoration: none !important;
}

.effect img {
  min-width: 100%;
  width: auto;
  height: 100%;
}


.effect .caption {
  position: absolute;
  top: 0;
  left: 0;
  background: rgba(0,0,0,0.6);
  width: 100%;
  height: 100%;
  color: #fff;
  text-align: center;
  font-family: 'Lato', sans-serif; /* replace with your own font-family if you want */
  display: flex;
  display: -webkit-flex;
  display: -ms-flexbox;
  flex-direction: column;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  align-items: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  justify-content: space-between;
  -webkit-justify-content: space-between;
  -ms-flex-pack: justify;
  z-index: 2;
}

.effect .caption h4 {
  font-family: 'Montserrat', sans-serif; /* replace with your own font-family if you want */
  margin: 0px;
  font-size: 20px;
  font-weight: 600;
  text-transform: uppercase;
  padding: 20px;
  position: relative;
}

.effect .caption h4:before,
.effect .caption h4:after {
  content: "";
  display: block;
  height: 2px;
  position: absolute;
  left: 0;
  right: 0;
  margin: auto;
  background-color: #fff;
}

.effect .caption h4:before {
  width: 40px;
  bottom: 10px;
}

.effect .caption h4:after {
  width: 20px;
  bottom: 5px;
}

.effect .caption .text {
  margin: 0px;
  padding: 0px 20px;
  font-size: 16px;
  line-height: 22px;
  position: relative;
  width: 100%;
}

.effect .caption .text p {
  margin-bottom: 15px;
  margin-top: 0px;
}

.effect .caption .text p:last-child {
  margin-bottom: 0px;
}

.effect .caption a.btn {
  color: #fff;
  display: inline-block;
  border: 2px solid #fff;
  border-radius: 6px;
  font-size: 16px;
  padding: 10px 20px 12px 20px;
  background-color: transparent;
  transition: background 0.2s linear 0s;
  margin-bottom: 20px;
  position: relative;
}

.effect .caption a.btn:hover {
  background-color: #fff;
  color: #000;
}

/* effect #1 styles */
.effect.eff-1 .caption {
  top: -100%;
  -moz-transition: top 0.2s linear 0s;
  -webkit-transition: top 0.2s linear 0s;
  transition: top 0.2s linear 0s;
}

.effect.eff-1:hover .caption {
  top: 0;
}

/* effect #2 styles */

.effect.eff-2 .caption {
  left: 100%;
  -moz-transition: left 0.2s linear 0s;
  -webkit-transition: left 0.2s linear 0s;
  transition: left 0.2s linear 0s;
}

.effect.eff-2:hover .caption {
  left: 0;
}

/* effect #3 styles */

.effect.eff-3:before {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  background-color: rgba(0,0,0,0.3);
  top: 100%;
  left: 0;
  -moz-transition: all 0.2s linear 0s;
  -webkit-transition: all 0.2s linear 0s;
  transition: all 0.2s linear 0s;
}

.effect.eff-3 .caption {
  background-color: rgba(0,0,0,0.3);
  top: -100%;
  -moz-transition: all 0.2s linear 0s;
  -webkit-transition: all 0.2s linear 0s;
  transition: all 0.2s linear 0s;
}

.effect.eff-3:hover:before,
.effect.eff-3:hover .caption{
  top: 0;
}

/* effect #4 styles */

.effect.eff-4 .caption {
  opacity: 0;
}

.effect.eff-4 .caption h4,
.effect.eff-4 .caption a.btn {
  opacity: 0;
  -moz-transition: all 0.2s linear 0.1s;
  -webkit-transition: all 0.2s linear 0.1s;
  transition: all 0.2s linear 0.1s;
}

.effect.eff-4 .caption h4 {
  top: 72px;
}

.effect.eff-4 .caption a.btn {
  top: -72px;
}

.effect.eff-4:hover .caption {
  opacity: 1;
  -moz-transition: all 0.5s linear 0s;
  -webkit-transition: all 0.5s linear 0s;
  transition: all 0.5s linear 0s;
}

.effect.eff-4:hover .caption h4,
.effect.eff-4:hover .caption a.btn {
  opacity: 1;
  top: 0;
}

/* effect #5 styles */

.effect.eff-5 .caption {
  opacity: 0;
}

.effect.eff-5 .caption h4,
.effect.eff-5 .caption a.btn {
  opacity: 0;
  -moz-transition: all 0.2s linear 0.1s;
  -webkit-transition: all 0.2s linear 0.1s;
  transition: all 0.2s linear 0.1s;
}

.effect.eff-5 .caption h4 {
  top: -72px;
}

.effect.eff-5 .caption a.btn {
  top: 72px;
}

.effect.eff-5:hover .caption {
  opacity: 1;
  -moz-transition: all 0.5s linear 0s;
  -webkit-transition: all 0.5s linear 0s;
  transition: all 0.5s linear 0s;
}

.effect.eff-5:hover .caption h4,
.effect.eff-5:hover .caption a.btn {
  opacity: 1;
  top: 0;
}

/* effect #6 styles */

.effect.eff-6 .caption {
  opacity: 0;
}

.effect.eff-6 .caption h4,
.effect.eff-6 .caption a.btn {
  -moz-transition: all 0.2s linear 0.1s;
  -webkit-transition: all 0.2s linear 0.1s;
  transition: all 0.2s linear 0.1s;
}

.effect.eff-6 .caption h4 {
  left: 100%;
}

.effect.eff-6 .caption a.btn {
  left: -100%;
}

.effect.eff-6:hover .caption {
  opacity: 1;
  -moz-transition: all 0.5s linear 0s;
  -webkit-transition: all 0.5s linear 0s;
  transition: all 0.5s linear 0s;
}

.effect.eff-6:hover .caption h4,
.effect.eff-6:hover .caption a.btn {
  left: 0;
}

/* effect #7 styles */

.effect.eff-7 .caption {
  opacity: 0;
}

.effect.eff-7 .caption h4,
.effect.eff-7 .caption .text,
.effect.eff-7 .caption a.btn {
  opacity: 0;
  -moz-transform: scale(2);
  -webkit-transform: scale(2);
  transform: scale(2);
  -moz-transition: all 0.2s linear 0.1s;
  -webkit-transition: all 0.2s linear 0.1s;
  transition: all 0.2s linear 0.1s;
}

.effect.eff-7:hover .caption {
  opacity: 1;
  -moz-transition: all 0.5s linear 0s;
  -webkit-transition: all 0.5s linear 0s;
  transition: all 0.5s linear 0s;
}

.effect.eff-7:hover .caption h4,
.effect.eff-7:hover .caption .text,
.effect.eff-7:hover .caption a.btn {
  -moz-transform: scale(1);
  -webkit-transform: scale(1);
  transform: scale(1);
  opacity: 1;
}

/* effect #8 styles */

.effect.eff-8 .caption {
  opacity: 0;
}

.effect.eff-8 .caption h4,
.effect.eff-8 .caption .text,
.effect.eff-8 .caption a.btn {
  opacity: 0;
  -moz-transform: scale(0.3);
  -webkit-transform: scale(0.3);
  transform: scale(0.3);
  -moz-transition: all 0.2s linear 0.1s;
  -webkit-transition: all 0.2s linear 0.1s;
  transition: all 0.2s linear 0.1s;
}

.effect.eff-8:hover .caption {
  opacity: 1;
  -moz-transition: all 0.5s linear 0s;
  -webkit-transition: all 0.5s linear 0s;
  transition: all 0.5s linear 0s;
}

.effect.eff-8:hover .caption h4,
.effect.eff-8:hover .caption .text,
.effect.eff-8:hover .caption a.btn {
  -moz-transform: scale(1);
  -webkit-transform: scale(1);
  transform: scale(1);
  opacity: 1;
}

/* effect #9 styles */

.effect.eff-9 .caption {
  opacity: 0;
}

.effect.eff-9 .caption h4,
.effect.eff-9 .caption a.btn{
  -moz-transform: scale(0.15);
  -webkit-transform: scale(0.15);
  transform: scale(0.15);
}

.effect.eff-9 .caption h4 {
  top: -50%;
}

.effect.eff-9 .caption a.btn {
  top: 50%;
}

.effect.eff-9:hover .caption {
  opacity: 1;
  -moz-transition: all 0.5s linear 0s;
  -webkit-transition: all 0.5s linear 0s;
  transition: all 0.5s linear 0s;
}

.effect.eff-9:hover h4,
.effect.eff-9:hover a.btn {
  top: 0;
  -moz-transform: scale(1);
  -webkit-transform: scale(1);
  transform: scale(1);
  -moz-transition: top 0.3s linear 0.1s, transform 0.2s linear 0.3s;
  -webkit-transition: top 0.3s linear 0.1s, -webkit-transform 0.2s linear 0.3s;
  transition: top 0.3s linear 0.1s, transform 0.2s linear 0.3s;
}

/* effect #10 styles */

.effect.eff-10 .caption {
  -moz-transform: scale(0.7) rotateX(0deg);
  -webkit-transform: scale(0.7) rotateX(0deg);
  transform: scale(0.7) rotateX(0deg);
  opacity: 0;
}

.effect.eff-10:hover .caption {
  -moz-transform: scale(1) rotateX(360deg);
  -webkit-transform: scale(1) rotateX(360deg);
  transform: scale(1) rotateX(360deg);
  opacity: 1;
  -moz-transition: all 0.5s linear 0s;
  -webkit-transition: all 0.5s linear 0s;
  transition: all 0.5s linear 0s;
}

/* effect #11 styles */

.effect.eff-11 .caption {
  -moz-transform: scale(0.7) rotateY(0deg);
  -webkit-transform: scale(0.7) rotateY(0deg);
  transform: scale(0.7) rotateY(0deg);
  opacity: 0;
}

.effect.eff-11:hover .caption {
  -moz-transform: scale(1) rotateY(360deg);
  -webkit-transform: scale(1) rotateY(360deg);
  transform: scale(1) rotateY(360deg);
  opacity: 1;
  -moz-transition: all 0.5s linear 0s;
  -webkit-transition: all 0.5s linear 0s;
  transition: all 0.5s linear 0s;
}

/* effect #12 styles */

.effect.eff-12 .caption {
  -moz-transform: scale(0.7) rotate(120deg);
  -webkit-transform: scale(0.7) rotate(120deg);
  transform: scale(0.7) rotate(120deg);
  opacity: 0;
}

.effect.eff-12:hover .caption {
  -moz-transform: scale(1) rotate(360deg);
  -webkit-transform: scale(1) rotate(360deg);
  transform: scale(1) rotate(360deg);
  opacity: 1;
  -moz-transition: all 0.3s linear 0s;
  -webkit-transition: all 0.3s linear 0s;
  transition: all 0.3s linear 0s;
}

/* effect #13 styles */

.effect.eff-13 .caption {
  -moz-transform: scale(0,1);
  -webkit-transform: scale(0,1);
  transform: scale(0,1);
  -moz-transform-origin: center top;
  -webkit-transform-origin: center top;
  transform-origin: center top;
}

.effect.eff-13:hover .caption {
  -moz-transform: scale(1,1);
  -webkit-transform: scale(1,1);
  transform: scale(1,1);
  -moz-transition: all 0.3s linear 0s;
  -webkit-transition: all 0.3s linear 0s;
  transition: all 0.3s linear 0s;
}

/* effect #14 styles */

.effect.eff-14 .caption {
  -moz-transform: scale(1,0);
  -webkit-transform: scale(1,0);
  transform: scale(1,0);
  -moz-transform-origin: left center;
  -webkit-transform-origin: left center;
  transform-origin: left center;
}

.effect.eff-14:hover .caption {
  -moz-transform: scale(1,1);
  -webkit-transform: scale(1,1);
  transform: scale(1,1);
  -moz-transition: all 0.3s linear 0s;
  -webkit-transition: all 0.3s linear 0s;
  transition: all 0.3s linear 0s;
}

/* effect #15 styles */

.effect.eff-15 .caption {
  -moz-transform: scale(0,1);
  -webkit-transform: scale(0,1);
  transform: scale(0,1);
  -moz-transform-origin: left top;
  -webkit-transform-origin: left top;
  transform-origin: left top;
}

.effect.eff-15:hover .caption {
  -moz-transform: scale(1,1);
  -webkit-transform: scale(1,1);
  transform: scale(1,1);
  -moz-transition: all 0.3s linear 0s;
  -webkit-transition: all 0.3s linear 0s;
  transition: all 0.3s linear 0s;
}

/* effect #16 styles */

.effect.eff-16 .caption {
  -moz-transform: scale(1,0);
  -webkit-transform: scale(1,0);
  transform: scale(1,0);
  -moz-transform-origin: left top;
  -webkit-transform-origin: left top;
  transform-origin: left top;
}

.effect.eff-16:hover .caption {
  -moz-transform: scale(1,1);
  -webkit-transform: scale(1,1);
  transform: scale(1,1);
  -moz-transition: all 0.3s linear 0s;
  -webkit-transition: all 0.3s linear 0s;
  transition: all 0.3s linear 0s;
}

/* effect #17 styles */

.effect.eff-17 .caption {
  -moz-transform: rotate(180deg);
  -webkit-transform: rotate(180deg);
  transform: rotate(180deg);
  -moz-transform-origin: center top;
  -webkit-transform-origin: center top;
  transform-origin: center top;
}

.effect.eff-17:hover .caption {
  -moz-transform: rotate(0deg);
  -webkit-transform: rotate(0deg);
  transform: rotate(0deg);
  -moz-transition: all 0.4s cubic-bezier(0.4, 0, 1, 1) 0s;
  -webkit-transition: all 0.4s cubic-bezier(0.4, 0, 1, 1) 0s;
  transition: all 0.4s cubic-bezier(0.4, 0, 1, 1) 0s;
}

/* effect #18 styles */

.effect.eff-18 .caption {
  -moz-transform: rotate(-180deg);
  -webkit-transform: rotate(-180deg);
  transform: rotate(-180deg);
  -moz-transform-origin: center bottom;
  -webkit-transform-origin: center bottom;
  transform-origin: center bottom;
}

.effect.eff-18:hover .caption {
  -moz-transform: rotate(0deg);
  -webkit-transform: rotate(0deg);
  transform: rotate(0deg);
  -moz-transition: all 0.4s cubic-bezier(0.4, 0, 1, 1) 0s;
  -webkit-transition: all 0.4s cubic-bezier(0.4, 0, 1, 1) 0s;
  transition: all 0.4s cubic-bezier(0.4, 0, 1, 1) 0s;
}

/* effect #19 styles */

.effect.eff-19 .caption {
  -moz-transform: rotate(-180deg);
  -webkit-transform: rotate(-180deg);
  transform: rotate(-180deg);
  -moz-transform-origin: right center;
  -webkit-transform-origin: right center;
  transform-origin: right center;
}

.effect.eff-19:hover .caption {
  -moz-transform: rotate(0deg);
  -webkit-transform: rotate(0deg);
  transform: rotate(0deg);
  -moz-transition: all 0.4s cubic-bezier(0.4, 0, 1, 1) 0s;
  -webkit-transition: all 0.4s cubic-bezier(0.4, 0, 1, 1) 0s;
  transition: all 0.4s cubic-bezier(0.4, 0, 1, 1) 0s;
}

/* effect #20 styles */

.effect.eff-20 .caption {
  top: -100%;
  background-color: transparent;
  -moz-transition: all 0.2s linear 0s;
  -webkit-transition: all 0.2s linear 0s;
  transition: all 0.2s linear 0s;
}

  /* overlay styles */
.effect.eff-20:before,
.effect.eff-20:after {
  content: "";
  display: block;
  width: 100%;
  height: 50%;
  background-color: rgba(0,0,0,0.6);
  position: absolute;
  left: 0;
  -moz-transition: all 0.2s linear 0.3s;
  -webkit-transition: all 0.2s linear 0.3s;
  transition: all 0.2s linear 0.3s;
  z-index: 1;
}

.effect.eff-20:before {
  top: -100%;
}

.effect.eff-20:after {
  top: 100%;
}

.effect.eff-20:hover:before {
  top: 0;
}

.effect.eff-20:hover:after {
  top: 50%;
}

.effect.eff-20:hover:before,
.effect.eff-20:hover:after {
  -moz-transition: all 0.2s linear 0s;
  -webkit-transition: all 0.2s linear 0s;
  transition: all 0.2s linear 0s;
}

.effect.eff-20:hover .caption {
  top: 0;
  -moz-transition: all 0.2s linear 0.3s;
  -webkit-transition: all 0.2s linear 0.3s;
  transition: all 0.2s linear 0.3s;
}

/* effect #21 styles */

.effect.eff-21 .caption {
  background-color: transparent;
  -moz-transform: scale(1,0.6);
  -webkit-transform: scale(1,0.6);
  transform: scale(1,0.6);
  opacity: 0;
  -moz-transform-origin: center center;
  -webkit-transform-origin: center center;
  transform-origin: center center;
  -moz-transition: all 0.2s linear 0s;
  -webkit-transition: all 0.2s linear 0s;
  transition: all 0.2s linear 0s;
}
/* overlay styles */
.effect.eff-21:before,
.effect.eff-21:after {
  content: "";
  display: block;
  width: 50%;
  height: 100%;
  background-color: rgba(0,0,0,0.6);
  position: absolute;
  -moz-transition: all 0.2s linear 0.3s;
  -webkit-transition: all 0.2s linear 0.3s;
  transition: all 0.2s linear 0.3s;
  z-index: 1;
}

.effect.eff-21:before {
  top: -100%;
  left: 0;
}

.effect.eff-21:after {
  top: 100%;
  right: 0;
}

.effect.eff-21:hover:before {
  top: 0;
}

.effect.eff-21:hover:after {
  top: 0;
}

.effect.eff-21:hover:before,
.effect.eff-21:hover:after {
  -moz-transition: all 0.2s linear 0s;
  -webkit-transition: all 0.2s linear 0s;
  transition: all 0.2s linear 0s;
}

.effect.eff-21:hover .caption {
  -moz-transform: scale(1,1);
  -webkit-transform: scale(1,1);
  transform: scale(1,1);
  opacity: 1;
  -moz-transition: all 0.2s linear 0.3s;
  -webkit-transition: all 0.2s linear 0.3s;
  transition: all 0.2s linear 0.3s;
}

/* effect #22 styles */

.effect.eff-22 .caption {
  background-color: transparent;
  opacity: 0;
}

  /* overlay styles */
.effect.eff-22:before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background-color: rgba(0,0,0,0.6);
  position: absolute;
  z-index: 1;
  top: 0;
  left: 0;
  -moz-transform: scale(1,0);
  -webkit-transform: scale(1,0);
  transform: scale(1,0);
}

.effect.eff-22:hover:before {
  -moz-transform: scale(1,1);
  -webkit-transform: scale(1,1);
  transform: scale(1,1);
  -moz-transition: all 0.4s cubic-bezier(0, 1.31, 1, -0.29) 0s;
  -webkit-transition: all 0.4s cubic-bezier(0, 1.31, 1, -0.29) 0s;
  transition: all 0.4s cubic-bezier(0, 1.31, 1, -0.29) 0s;
}

.effect.eff-22:hover .caption {
  opacity: 1;
  -moz-transition: all 0.2s linear 0.4s;
  -webkit-transition: all 0.2s linear 0.4s;
  transition: all 0.2s linear 0.4s;
}

/* effect #23 styles */

.effect.eff-23 .caption {
  background-color: transparent;
  top: 100%;
}

  /* overlay styles */
.effect.eff-23:before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background-color: rgba(0,0,0,0.6);
  position: absolute;
  z-index: 1;
  top: 0;
  left: 0;
  -moz-transform: scale(0,1);
  -webkit-transform: scale(0,1);
  transform: scale(0,1);
}

.effect.eff-23:hover:before {
  -moz-transform: scale(1,1);
  -webkit-transform: scale(1,1);
  transform: scale(1,1);
  -moz-transition: all 0.4s cubic-bezier(0, 1.31, 1, -0.29) 0s;
  -webkit-transition: all 0.4s cubic-bezier(0, 1.31, 1, -0.29) 0s;
  transition: all 0.4s cubic-bezier(0, 1.31, 1, -0.29) 0s;
}

.effect.eff-23:hover .caption {
  top: 0;
  -moz-transition: all 0.2s linear 0.6s;
  -webkit-transition: all 0.2s linear 0.6s;
  transition: all 0.2s linear 0.6s;
}

/* effect #24 styles */

.effect.eff-24 .caption {
  background-color: transparent;
  top: -100%;
  left: 100%;
}

  /* overlay styles */
.effect.eff-24:before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background-color: rgba(0,0,0,0.6);
  position: absolute;
  z-index: 1;
  top: 0;
  left: 0;
  -moz-transform: scale(0);
  -webkit-transform: scale(0);
  transform: scale(0);
}

.effect.eff-24:hover:before {
  -moz-transform: scale(1,1);
  -webkit-transform: scale(1,1);
  transform: scale(1,1);
  -moz-transition: all 0.4s cubic-bezier(0, 1.31, 1, -0.29) 0s;
  -webkit-transition: all 0.4s cubic-bezier(0, 1.31, 1, -0.29) 0s;
  transition: all 0.4s cubic-bezier(0, 1.31, 1, -0.29) 0s;
}

.effect.eff-24:hover .caption {
  top: 0;
  left: 0;
  -moz-transition: all 0.2s cubic-bezier(0, 0.5, 0.07, 0.6) 0.6s;
  -webkit-transition: all 0.2s cubic-bezier(0, 0.5, 0.07, 0.6) 0.6s;
  transition: all 0.2s cubic-bezier(0, 0.5, 0.07, 0.6) 0.6s;
}

/* effect #25 styles */

.effect.eff-25 .caption {
  background-color: transparent;
  left: -100%;
}

  /* overlay styles */
.effect.eff-25:before,
.effect.eff-25:after {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background-color: rgba(0,0,0,0.3);
  position: absolute;
  z-index: 1;
  top: 0;
  left: 0;
  -moz-transform: scale(0);
  -webkit-transform: scale(0);
  transform: scale(0);
}

.effect.eff-25:hover:before {
  -moz-transform: scale(1,1);
  -webkit-transform: scale(1,1);
  transform: scale(1,1);
  -moz-transition: all 0.2s linear 0s;
  -webkit-transition: all 0.2s linear 0s;
  transition: all 0.2s linear 0s;
}

.effect.eff-25:hover:after {
  -moz-transform: scale(1,1);
  -webkit-transform: scale(1,1);
  transform: scale(1,1);
  -moz-transition: all 0.2s linear 0.2s;
  -webkit-transition: all 0.2s linear 0.2s;
  transition: all 0.2s linear 0.2s;
}

.effect.eff-25:hover .caption {
  left: 0;
  -moz-transition: all 0.2s linear 0.4s;
  -webkit-transition: all 0.2s linear 0.4s;
  transition: all 0.2s linear 0.4s;
}

/* effect #26 styles */

.effect.eff-26 .caption {
  background-color: transparent;
  opacity: 0;
  -moz-transform: scale(0.5);
  -webkit-transform: scale(0.5);
  transform: scale(0.5);
}

  /* overlay styles */
.effect.eff-26:before,
.effect.eff-26:after {
  content: "";
  display: block;
  top: 50%;
  left: 50%;
  width: 30px;
  height: 30px;
  background-color: rgba(0,0,0,0.3);
  position: absolute;
  z-index: 1;
  -moz-transform: scale(0);
  -webkit-transform: scale(0);
  transform: scale(0);
  border-radius: 50%;
  -webkit-border-radius: 50%;
}

.effect.eff-26:hover:before {
  -moz-transform: scale(30);
  -webkit-transform: scale(30);
  transform: scale(30);
  -moz-transition: all 0.4s linear 0s;
  -webkit-transition: all 0.4s linear 0s;
  transition: all 0.4s linear 0s;
}

.effect.eff-26:hover:after {
  -moz-transform: scale(30);
  -webkit-transform: scale(30);
  transform: scale(30);
  -moz-transition: all 0.5s linear 0.2s;
  -webkit-transition: all 0.5s linear 0.2s;
  transition: all 0.5s linear 0.2s;
}

.effect.eff-26:hover .caption {
  opacity: 1;
  -moz-transform: scale(1,1);
  -webkit-transform: scale(1,1);
  transform: scale(1,1);
  transition: all 0.2s linear 0.4s;
}

/* effect #27 styles */

.effect.eff-27 .caption {
  background-color: transparent;
  opacity: 0;
  -moz-transform: rotate(-45deg) scale(1,0.3);
  -webkit-transform: rotate(-45deg) scale(1,0.3);
  transform: rotate(-45deg) scale(1,0.3);
  -moz-transform-origin: left bottom;
  -webkit-transform-origin: left bottom;
  transform-origin: left bottom;
}

 /* overlay styles */
.effect.eff-27:before,
.effect.eff-27:after {
  content: "";
  display: block;
  top: 50%;
  width: 30px;
  height: 30px;
  background-color: rgba(0,0,0,0.3);
  position: absolute;
  z-index: 1;
  -moz-transform: scale(0);
  -webkit-transform: scale(0);
  transform: scale(0);
  border-radius: 50%;
}

.effect.eff-27:before {
  left: 0;
}

.effect.eff-27:after {
  right: 0;
}

.effect.eff-27:hover:before {
  -moz-transform: scale(30);
  -webkit-transform: scale(30);
  transform: scale(30);
  -moz-transition: all 0.3s linear 0s;
  -webkit-transition: all 0.3s linear 0s;
  transition: all 0.3s linear 0s;
}

.effect.eff-27:hover:after {
  -moz-transform: scale(30);
  -webkit-transform: scale(30);
  transform: scale(30);
  -moz-transition: all 0.3s linear 0.15s;
  -webkit-transition: all 0.3s linear 0.15s;
  transition: all 0.3s linear 0.15s;
}

.effect.eff-27:hover .caption {
  -moz-transform: rotate(0deg) scale(1);
  -webkit-transform: rotate(0deg) scale(1);
  transform: rotate(0deg) scale(1);
  opacity: 1;
  -moz-transition: all 0.2s linear 0.5s;
  -webkit-transition: all 0.2s linear 0.5s;
  transition: all 0.2s linear 0.5s;
}

/* effect #28 styles */

.effect.eff-28 .caption {
  background-color: transparent;
  opacity: 0;
  -moz-transform: rotateY(-90deg);
  -webkit-transform: rotateY(-90deg);
  transform: rotateY(-90deg);
}

 /* overlay styles */
.effect.eff-28:before {
  content: "";
  display: block;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  position: absolute;
  z-index: 1;
}

.effect.eff-28:hover:before {
  box-shadow: inset 0px 0px 25px 300px rgba(0,0,0,0.6);
  -moz-transition: all 0.8s linear 0s;
  -webkit-transition: all 0.8s linear 0s;
  transition: all 0.8s linear 0s;
}

.effect.eff-28:hover .caption {
  -moz-transform: rotateY(0deg);
  -webkit-transform: rotateY(0deg);
  transform: rotateY(0deg);
  opacity: 1;
  -moz-transition: all 0.2s linear 0.4s;
  -webkit-transition: all 0.2s linear 0.4s;
  transition: all 0.2s linear 0.4s;
}

/* effect #29 styles */

.effect.eff-29 .caption {
  background-color: transparent;
  z-index: 2;
}

.effect.eff-29 .caption h4, 
.effect.eff-29 .caption .text,
.effect.eff-29 .caption a.btn {
  top: -100%;
}

.effect.eff-29:before,
.effect.eff-29:after {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  z-index: 1;
  -moz-transform: scale(0);
  -webkit-transform: scale(0);
  transform: scale(0);
  opacity: 0;
}

.effect.eff-29:before {
  top: 0;
  left: 0;
  background-color: rgba(0,0,0,0.6);
  -moz-transform-origin: left top;
  -webkit-transform-origin: left top;
  transform-origin: left top;
}

.effect.eff-29:after {
  bottom: 0;
  right: 0;
  background-color: transparent;
  border: 3px double #fff;
  -moz-transform-origin: right bottom;
  -webkit-transform-origin: right bottom;
  transform-origin: right bottom;
  box-sizing: border-box;
}

.effect.eff-29:hover:before,
.effect.eff-29:hover:after {
  -moz-transform: scale(1,1);
  -webkit-transform: scale(1,1);
  transform: scale(1,1);
  opacity: 1;
  -moz-transition: all 0.4s linear 0s;
  -webkit-transition: all 0.4s linear 0s;
  transition: all 0.4s linear 0s;
}

.effect.eff-29:hover .caption h4,
.effect.eff-29:hover .caption .text,
.effect.eff-29:hover .caption a.btn {
  top: 0;
  -moz-transition: all 0.2s linear;
  -webkit-transition: all 0.2s linear;
  transition: all 0.2s linear;
}

.effect.eff-29:hover .caption h4 {
  -moz-transition-delay: 0.6s;
  -webkit-transition-delay: 0.6s;
  transition-delay: 0.6s;
}

.effect.eff-29:hover .caption .text {
  -webkit-transition-delay: 0.45s;
  -moz-transition-delay: 0.45s;
  transition-delay: 0.45s;
}

.effect.eff-29:hover .caption a.btn {
  -moz-transition-delay: 0.3s;
  -webkit-transition-delay: 0.3s;
  transition-delay: 0.3s;
}

/* effect #30 styles */

.effect.eff-30 .caption {
  opacity: 0;
  -moz-transform: rotate(30deg);
  -webkit-transform: rotate(30deg);
  transform: rotate(30deg);
  -moz-transform-origin: right bottom;
  -webkit-transform-origin: right bottom;
  transform-origin: right bottom;
}

.effect.eff-30 img {
  -moz-transition: all 0.25s linear 0.3s;
  -webkit-transition: all 0.25s linear 0.3s;
  transition: all 0.25s linear 0.3s;
}

.effect.eff-30:hover img {
  -moz-transform: scale(1.3);
  -webkit-transform: scale(1.3);
  transform: scale(1.3);
  -moz-transition-delay: 0s;
  -webkit-transition-delay: 0s;
  transition-delay: 0s;
}

.effect.eff-30:hover .caption {
  opacity: 1;
  -moz-transform: rotate(0deg);
  -webkit-transform: rotate(0deg);
  transform: rotate(0deg);
  -moz-transition: all 0.35s cubic-bezier(0.49, -0.19, 0.7, -0.01) 0.3s;
  -webkit-transition: all 0.35s cubic-bezier(0.49, -0.19, 0.7, -0.01) 0.3s;
  transition: all 0.35s cubic-bezier(0.49, -0.19, 0.7, -0.01) 0.3s;
}