.hover_rotation {
    position: relative;
    overflow: hidden;
    float: left;
}

.hover_rotation div {
    position: absolute;
    /* The images have to be larger than their parent container to fill the visible area when rotating */
    /*width:400px;
    height:250px;*/
    /* Margins keep the image centered */
    top: 50%;
    left: 50%;
    /*	margin-top:-125px;
        margin-left:-200px;*/
    border: none;
    /* Opacity */
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";
    filter: alpha(opacity=80);

    /* Opacity & Rotation Transitions */
    -webkit-transition: all .2s;
    -moz-transition: all .2s;
    -o-transition: all .2s;
    -ms-transition: all .2s;
    transition: all .2s;
}

/* Right rotation */

.hover_rotation div.hover_rotation_right:hover {
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
    filter: alpha(opacity=100);
    opacity: 1;
    /* Applying a 15 degrees rotation */
    -webkit-transform: rotate(15deg);
    -moz-transform: rotate(15deg);
    -o-transform: rotate(15deg);
    -ms-transform: rotate(15deg);
    transform: rotate(15deg);
}

/* Left rotation */

.hover_rotation div.hover_rotation_left:hover {
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
    filter: alpha(opacity=100);
    opacity: 1;
    /* Applying a -15 degrees rotation */
    -webkit-transform: rotate(-15deg);
    -moz-transform: rotate(-15deg);
    -o-transform: rotate(-15deg);
    -ms-transform: rotate(-15deg);
    transform: rotate(-15deg);
}

/*  _______________________________________

	02 OVERLAY FADE
    _______________________________________  */

.overlay_fade {
    position: relative;
    /* Modify the width and the height according to your images sizes */
    overflow: hidden;
    float: left;
}

.overlay_fade div {
    width: 100%;
    height: 100%;
    border: none;
}

.overlay_fade .overlay_zoom {
    position: absolute;
    top: 0px;
    width: 100%;
    height: 100%;
    background-image: url("../images/icons/zoom.png");
    background-repeat: no-repeat;
    background-position: center center;
    /* Opacity */
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    filter: alpha(opacity=0);
    opacity: 0;
    /* Opacity Transition */
    -webkit-transition: opacity .4s ease-in;
    -moz-transition: opacity .4s ease-in;
    -o-transition: opacity .4s ease-in;
    -ms-transition: opacity .4s ease-in;
    transition: opacity .4s ease-in;
}

.overlay_fade:hover .overlay_zoom {
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
    filter: alpha(opacity=100);
    opacity: 1;
}

.overlay_fade .zoom_white {
    background-color: rgba(255, 255, 255, 0.7);
}

.overlay_fade .zoom_black {
    background-color: rgba(0, 0, 0, 0.7);
}

/*  _______________________________________

	03 OVERLAY SLIDE
    _______________________________________  */

.overlay_slide {
    position: relative;
    overflow: hidden;
    float: left;
}

.overlay_slide div {
    width: 100%;
    height: 100%;
    border: none;
}

.overlay_slide .overlay_zoom {
    position: absolute;
    top: -150px;
    width: 100%;
    height: 100%;
    background-image: url("../images/icons/zoom.png");
    background-repeat: no-repeat;
    background-position: center center;
    /* Slide Transition */
    -webkit-transition: top 0.4s;
    -moz-transition: top 0.4s;
    -o-transition: top 0.4s;
    -ms-transition: top 0.4s;
    transition: top 0.4s;
}

.overlay_slide:hover .overlay_zoom {
    top: 0 !important;
}

.overlay_slide .zoom_white {
    background-color: rgba(255, 255, 255, 0.7);
}

.overlay_slide .zoom_black {
    background-color: rgba(0, 0, 0, 0.7);
}

/*  _______________________________________

	04 OVERLAY SPLIT
    _______________________________________  */

.overlay_split {
    position: relative;
    overflow: hidden;
    float: left;
}

.overlay_split div {
    width: 100%;
    height: 100%;
    border: none;
}

/* Right and left sides */
.overlay_split .overlay_split_left,
.overlay_split .overlay_split_right {
    position: absolute;
    width: 50%;
    height: 100%;
}

.overlay_split .overlay_split_right {
    right: 0;
    /* Slide Transition */
    -webkit-transition: right 0.4s;
    -moz-transition: right 0.4s;
    -o-transition: right 0.4s;
    -ms-transition: right 0.4s;
    transition: right 0.4s;
}

.overlay_split .overlay_split_left {
    left: 0 !important;
    /* Slide Transition */
    -webkit-transition: left 0.4s;
    -moz-transition: left 0.4s;
    -o-transition: left 0.4s;
    -ms-transition: left 0.4s;
    transition: left 0.4s;
}

/* Top and bottom sides */

.overlay_split .overlay_split_top,
.overlay_split .overlay_split_bottom {
    position: absolute;
    width: 100%;
    height: 50%;
}

.overlay_split .overlay_split_top {
    top: 0 !important;
    /* Slide Transition */
    -webkit-transition: top 0.4s;
    -moz-transition: top 0.4s;
    -o-transition: top 0.4s;
    -ms-transition: top 0.4s;
    transition: top 0.4s;
}

.overlay_split .overlay_split_bottom {
    bottom: 0 !important;
    /* Slide Transition */
    -webkit-transition: bottom 0.4s;
    -moz-transition: bottom 0.4s;
    -o-transition: bottom 0.4s;
    -ms-transition: bottom 0.4s;
    transition: bottom 0.4s;
}

.overlay_split:hover .overlay_split_left {
    left: -50% !important;
}

.overlay_split:hover .overlay_split_right {
    right: -50% !important;
}

.overlay_split:hover .overlay_split_top {
    top: -50% !important;
}

.overlay_split:hover .overlay_split_bottom {
    bottom: -50% !important;
}

.overlay_split .split_white {
    background-color: rgba(255, 255, 255, 0.7);
}

.overlay_split .split_black {
    background-color: rgba(0, 0, 0, 0.7);
}

/*  _______________________________________

	05 OVERLAY JOIN
    _______________________________________  */

.overlay_join {
    position: relative;
    overflow: hidden;
    float: left;
}

.overlay_join div {
    width: 100%;
    height: 100%;
    border: none;
}

/* Right and left sides */

.overlay_join .overlay_join_left,
.overlay_join .overlay_join_right {
    position: absolute;
    width: 50% !important;
    height: 100% !important;
}

.overlay_join .overlay_join_left {
    left: -50% !important;
    /* Slide Transition */
    -webkit-transition: left 0.4s;
    -moz-transition: left 0.4s;
    -o-transition: left 0.4s;
    -ms-transition: left 0.4s;
    transition: left 0.4s;
}

.overlay_join .overlay_join_right {
    right: -50% !important;
    /* Slide Transition */
    -webkit-transition: right 0.4s;
    -moz-transition: right 0.4s;
    -o-transition: right 0.4s;
    -ms-transition: right 0.4s;
    transition: right 0.4s;
}

/* Top and bottom sides */

.overlay_join .overlay_join_top,
.overlay_join .overlay_join_bottom {
    position: absolute;
    width: 100%;
    height: 50%;
}

.overlay_join .overlay_join_top {
    top: -50% !important;
    /* Slide Transition */
    -webkit-transition: top 0.4s;
    -moz-transition: top 0.4s;
    -o-transition: top 0.4s;
    -ms-transition: top 0.4s;
    transition: top 0.4s;
}

.overlay_join .overlay_join_bottom {
    bottom: -50% !important;
    /* Slide Transition */
    -webkit-transition: bottom 0.4s;
    -moz-transition: bottom 0.4s;
    -o-transition: bottom 0.4s;
    -ms-transition: bottom 0.4s;
    transition: bottom 0.4s;
}

.overlay_join:hover .overlay_join_left {
    left: 0 !important;
}

.overlay_join:hover .overlay_join_right {
    right: 0 !important;
}

.overlay_join:hover .overlay_join_top {
    top: 0 !important;
}

.overlay_join:hover .overlay_join_bottom {
    bottom: 0 !important;
}

/* Background colors and icons */

.overlay_join_left .join_zoom,
.overlay_join_right .join_favorite,
.overlay_join_top .join_zoom,
.overlay_join_bottom .join_favorite {
    position: absolute;
    background-repeat: no-repeat;
    background-position: center center;
}

.overlay_join .join_zoom,
.overlay_join .join_favorite {
    width: 100%;
    height: 100%;
}

.overlay_join_left .join_zoom, .overlay_join_top .join_zoom {
    background-image: url("../images/icons/zoom.png");
}

.overlay_join_right .join_favorite, .overlay_join_bottom .join_favorite {
    background-image: url("../images/icons/favorite.png");
}

.overlay_join .join_white {
    background-color: rgba(255, 255, 255, 0.7);
}

.overlay_join .join_black {
    background-color: rgba(0, 0, 0, 0.7);
}

/*  _______________________________________

	06 CORNER RIBBONS
    _______________________________________  */

.corner_ribbon {
    position: relative;

    overflow: hidden;
    float: left;
}

.corner_ribbon div {
    width: 100%;
    height: 100%;
    border: none;
}

/* Common styling to all variants */
.corner_ribbon .corner_ribbon_top_left_white,
.corner_ribbon .corner_ribbon_top_left_black,
.corner_ribbon .corner_ribbon_bottom_left_white,
.corner_ribbon .corner_ribbon_bottom_left_black,
.corner_ribbon .corner_ribbon_top_right_white,
.corner_ribbon .corner_ribbon_top_right_black,
.corner_ribbon .corner_ribbon_bottom_right_white,
.corner_ribbon .corner_ribbon_bottom_right_black {
    position: absolute;
    width: 0;
    height: 0;
    /* Slide Transition */
    -webkit-transition: all 0.4s;
    -moz-transition: all 0.4s;
    -o-transition: all 0.4s;
    -ms-transition: all 0.4s;
    transition: all 0.4s;
}

.corner_ribbon .corner_zoom,
.corner_ribbon .corner_zoom {
    position: absolute;
    background: url("../images/icons/zoom.png") no-repeat center center;
}

/* Top Left Ribbon */

.corner_ribbon:hover .corner_ribbon_top_left_white,
.corner_ribbon:hover .corner_ribbon_top_left_black {
    top: 0 !important;
    left: 0 !important;
}

/* Bottom Left Ribbon */

.corner_ribbon:hover .corner_ribbon_bottom_left_white,
.corner_ribbon:hover .corner_ribbon_bottom_left_black {
    bottom: 0 !important;
    left: 0 !important;
}

/* Top Right Ribbon */

.corner_ribbon:hover .corner_ribbon_top_right_white,
.corner_ribbon:hover .corner_ribbon_top_right_black {
    top: 0 !important;
    right: 0 !important;
}

/* Bottom Right Ribbon */

.corner_ribbon:hover .corner_ribbon_bottom_right_white,
.corner_ribbon:hover .corner_ribbon_bottom_right_black {
    bottom: 0 !important;
    right: 0 !important;
}

/*  _______________________________________

	10 LEVITATION SHADOW
    _______________________________________  */

.levitation_shadow {
    position: relative;
    float: left;
    margin-left: 10px;
    margin-top: 10px;
}

.levitation_shadow div.levitation_small,
.levitation_shadow div.levitation_large {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    /* Animation of the effect */
    -webkit-transition: top 0.3s;
    -moz-transition: top 0.3s;
    -o-transition: top 0.3s;
    -ms-transition: top 0.3s;
    transition: top 0.3s;
}

.levitation_shadow:hover div.levitation_small {
    top: -5px !important;
}

.levitation_shadow:hover div.levitation_large {
    top: -10px !important;
}

/*  _______________________________________

	11 LOMO EFFECT
    _______________________________________  */

.lomo_black,
.lomo_white,
.lomo_black_reversed,
.lomo_white_reversed {
    position: relative;
    float: left;
    overflow: hidden;
}

.lomo_black div,
.lomo_white div,
.lomo_black_reversed div,
.lomo_white_reversed div {
    display: block;
    width: 100%;
    height: 100%;
    border: none;
}

.lomo_black:after,
.lomo_white:after,
.lomo_black_reversed:after,
.lomo_white_reversed:after {
    /* Positionning this black glow on mouse hover */
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 2;
    content: "";
    -webkit-transition: all 0.4s;
    -moz-transition: all 0.4s;
    -o-transition: all 0.4s;
    -ms-transition: all 0.4s;
    transition: all 0.4s;
}

.lomo_black:after,
.lomo_black_reversed:hover:after {
    -webkit-box-shadow: inset 0 0 5px #000000;
    -moz-box-shadow: inset 0 0 5px #000000;
    box-shadow: inset 0 0 5px #000000;
}

.lomo_black:hover:after,
.lomo_black_reversed:after {
    -webkit-box-shadow: inset 0 0 90px #000000;
    -moz-box-shadow: inset 0 0 90px #000000;
    box-shadow: inset 0 0 90px #000000;
}

.lomo_white:after,
.lomo_white_reversed:hover:after {
    -webkit-box-shadow: inset 0 0 1px #ffffff;
    -moz-box-shadow: inset 0 0 1px #ffffff;
    box-shadow: inset 0 0 1px #ffffff;
}

.lomo_white:hover:after,
.lomo_white_reversed:after {
    -webkit-box-shadow: inset 0 0 90px #ffffff;
    -moz-box-shadow: inset 0 0 90px #ffffff;
    box-shadow: inset 0 0 90px #ffffff;
}

/*  _______________________________________

	14 ROUNDED IMAGES
    _______________________________________  */

.rounded_image {
    position: relative;
    float: left;

    /*margin:15px 30px 15px 15px;*/
}

.rounded_image div.rounded_img,
.rounded_image div.squared_img {
    /*width:100%;
    height:100%;*/
    display: block;

    -webkit-transition: all 0.6s;
    -moz-transition: all 0.6s;
    -o-transition: all 0.6s;
    -ms-transition: all 0.6s;
    transition: all 0.6s;
}

.rounded_image div.rounded_img,
.rounded_image div.squared_img:hover {
    -webkit-border-radius: 75% !important;
    -moz-border-radius: 75% !important;
    -o-border-radius: 75% !important;
    -ms-border-radius: 75% !important;
    -khtml-border-radius: 75% !important;
    border-radius: 75% !important;
}

.rounded_image div.rounded_img:hover,
.rounded_image div.squared_img {
    -webkit-border-radius: 0 !important;
    -moz-border-radius: 0 !important;
    -o-border-radius: 0 !important;
    -ms-border-radius: 0 !important;
    -khtml-border-radius: 0 !important;
    border-radius: 0 !important;
}

/*  _______________________________________

	17 PERSPECTIVE IMAGES
    _______________________________________  */

.perspective {

    float: left;
    /* 3D Effect - Safari and Chrome only */
    -webkit-perspective: 600;
    -webkit-transform-style: preserve-3d;
    -webkit-transition-property: perspective;
    -webkit-transition-duration: 0.5s;
}

.perspective:hover {
    /* 3D Effect - Safari and Chrome only */
    -webkit-perspective: 1000;
}

.perspective div.perspective_right,
.perspective div.perspective_left {
    width: 100%;
    height: 100%;
    -moz-box-shadow: 0 0 6px #666;
    box-shadow: 0 0 6px #666;
    -webkit-box-shadow: 0 0 6px #666;
    /* Animation - Safari and Chrome only */
    -webkit-transition-property: transform;
    -webkit-transition-duration: 0.5s;
}

.perspective div.perspective_right {
    -webkit-transform: rotateY(30deg);
}

.perspective div.perspective_left {
    -webkit-transform: rotateY(-30deg);
}

.perspective div:hover.perspective_right,
.perspective div:hover.perspective_left {
    -webkit-transform: rotateY(0deg);
}

/* Grayscale */

.gallery_grayscale {
    position: relative;
    display:inline-block;
    filter: gray;
    -webkit-filter: grayscale(100%);

    -webkit-backface-visibility: hidden;
    -moz-filter: grayscale(100%);
    -ms-filter: grayscale(100%);
    -o-filter: grayscale(100%);
    filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#grayscale");

}

.gallery_grayscale:hover {
    filter: none;
    -webkit-filter: grayscale(0%);
    -webkit-transition: all .6s ease !important; /* Fade to color for Chrome and Safari */
}

/* Sepia */

.gallery_sepia {
    position: relative;
    display:inline-block;
    -webkit-transition: all .6s ease;
    filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'old-timey\'><feColorMatrix type=\'matrix\' values=\'0.14 0.45 0.05 0 0 0.12 0.39 0.04 0 0 0.08 0.28 0.03 0 0 0 0 0 1 0\'/></filter></svg>#old-timey");
    -webkit-filter: sepia(1);
    -webkit-filter: sepia(100%);
    -moz-filter: sepia(100%);
    -ms-filter: sepia(100%);
    -o-filter: sepia(100%);
    filter: sepia(100%);

}

.gallery_sepia:hover {
    filter: none;
    -webkit-filter: sepia(0);
    -moz-filter: sepia(0);
    -ms-filter: sepia(0);
    -o-filter: sepia(0);
    filter: sepia(0);
    -webkit-transition: all .6s ease; /* Fade to color for Chrome and Safari */
}

/* Blur */

.gallery_blur {
    position: relative;
    display:inline-block;
    -webkit-filter: blur(2px);
    -moz-filter: blur(2px);
    -o-filter: blur(2px);
    -ms-filter: blur(2px);

}

.gallery_blur:hover {
    filter: none;
    -webkit-filter: blur(0);
    -moz-filter: blur(0);
    -o-filter: blur(0);
    -ms-filter: blur(0);
    -webkit-transition: all .6s ease; /* Fade to color for Chrome and Safari */
}

/* Pulse */
@-webkit-keyframes special_pulse {
	25% {
		-webkit-transform: scale(1.1);
		transform: scale(1.1);
	}
	
	75% {
		-webkit-transform: scale(0.9);
		transform: scale(0.9);
	}
}

@keyframes special_pulse {
	25% {
		-webkit-transform: scale(1.1);
		-ms-transform: scale(1.1);
		transform: scale(1.1);
	}
	
	75% {
		-webkit-transform: scale(0.9);
		-ms-transform: scale(0.9);
		transform: scale(0.9);
	}
}

.special_pulse {
	display: inline-block !important;
	-webkit-transform: translateZ(0);
	-ms-transform: translateZ(0);
	transform: translateZ(0);
	box-shadow: 0 0 1px rgba(0, 0, 0, 0);
}
.special_pulse:hover {
	-webkit-animation-name: pulse;
	animation-name: pulse;
	-webkit-animation-duration: 1s;
	animation-duration: 1s;
	-webkit-animation-timing-function: linear;
	animation-timing-function: linear;
	-webkit-animation-iteration-count: infinite;
	animation-iteration-count: infinite;
}
