.oxi-addons-container [class^='oxi-image-zoom'],
.oxi-addons-container [class*=' oxi-image-zoom'] {
    overflow: hidden;
}

.oxi-addons-container .oxi-image-zoom-in .oxi-image-hover-figure-caption {
    opacity: 0;
    -webkit-transform: scale(0.5);
    -moz-transform: scale(0.5);
    -ms-transform: scale(0.5);
    -o-transform: scale(0.5);
    transform: scale(0.5);
}

.oxi-addons-container .oxi-image-zoom-in:hover .oxi-image-hover-figure-caption,
.oxi-addons-container .oxi-image-zoom-in.oxi-touch .oxi-image-hover-figure-caption {
    -webkit-transform: scale(1);
    -moz-transform: scale(1);
    -ms-transform: scale(1);
    -o-transform: scale(1);
    transform: scale(1);
    opacity: 1;
}

.oxi-addons-container [class^='oxi-image-zoom-out'] .oxi-image-hover-figure-caption,
.oxi-addons-container [class*=' oxi-image-zoom-out'] .oxi-image-hover-figure-caption {
    -webkit-transform: scale(0.5);
    -moz-transform: scale(0.5);
    -ms-transform: scale(0.5);
    -o-transform: scale(0.5);
    transform: scale(0.5);
    -webkit-transform-origin: 50% 50%;
    -moz-transform-origin: 50% 50%;
    -ms-transform-origin: 50% 50%;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    opacity: 0;
}

.oxi-addons-container [class^='oxi-image-zoom-out']:hover .oxi-image-hover-figure-caption,
.oxi-addons-container [class^='oxi-image-zoom-out'].oxi-touch .oxi-image-hover-figure-caption,
.oxi-addons-container [class*=' oxi-image-zoom-out']:hover .oxi-image-hover-figure-caption,
.oxi-addons-container [class*=' oxi-image-zoom-out'].oxi-touch .oxi-image-hover-figure-caption {
    -webkit-transform: scale(1);
    -moz-transform: scale(1);
    -ms-transform: scale(1);
    -o-transform: scale(1);
    transform: scale(1);
    opacity: 1;
    -webkit-transition-delay: 0.35s;
    -moz-transition-delay: 0.35s;
    -o-transition-delay: 0.35s;
    transition-delay: 0.35s;
}

.oxi-addons-container .oxi-image-zoom-out:hover .oxi-image-hover-image,
.oxi-addons-container .oxi-image-zoom-out.oxi-touch .oxi-image-hover-image {
    -webkit-transform: scale(0.5);
    -moz-transform: scale(0.5);
    -ms-transform: scale(0.5);
    -o-transform: scale(0.5);
    transform: scale(0.5);
    opacity: 0;
}

.oxi-addons-container .oxi-image-zoom-out-up:hover .oxi-image-hover-image,
.oxi-addons-container .oxi-image-zoom-out-up.oxi-touch .oxi-image-hover-image {
    -webkit-animation: oxi-image-zoom-out-up 0.4025s linear;
    -moz-animation: oxi-image-zoom-out-up 0.4025s linear;
    -o-animation: oxi-image-zoom-out-up 0.4025s linear;
    animation: oxi-image-zoom-out-up 0.4025s linear;
    -webkit-animation-iteration-count: 1;
    -moz-animation-iteration-count: 1;
    -o-animation-iteration-count: 1;
    animation-iteration-count: 1;
    -webkit-animation-fill-mode: forwards;
    -moz-animation-fill-mode: forwards;
    -o-animation-fill-mode: forwards;
    animation-fill-mode: forwards;
}

@-webkit-keyframes oxi-image-zoom-out-up {
    50% {
        -webkit-transform: scale(0.8) translateY(0%);
        transform: scale(0.8) translateY(0%);
        opacity: 0.5;
    }
    100% {
        -webkit-transform: scale(0.8) translateY(-150%);
        transform: scale(0.8) translateY(-150%);
        opacity: 0.5;
    }
}

@-moz-keyframes oxi-image-zoom-out-up {
    50% {
        -webkit-transform: scale(0.8) translateY(0%);
        -moz-transform: scale(0.8) translateY(0%);
        transform: scale(0.8) translateY(0%);
        opacity: 0.5;
    }
    100% {
        -webkit-transform: scale(0.8) translateY(-150%);
        -moz-transform: scale(0.8) translateY(-150%);
        transform: scale(0.8) translateY(-150%);
        opacity: 0.5;
    }
}

@-o-keyframes oxi-image-zoom-out-up {
    50% {
        -webkit-transform: scale(0.8) translateY(0%);
        -o-transform: scale(0.8) translateY(0%);
        transform: scale(0.8) translateY(0%);
        opacity: 0.5;
    }
    100% {
        -webkit-transform: scale(0.8) translateY(-150%);
        -o-transform: scale(0.8) translateY(-150%);
        transform: scale(0.8) translateY(-150%);
        opacity: 0.5;
    }
}

@keyframes oxi-image-zoom-out-up {
    50% {
        -webkit-transform: scale(0.8) translateY(0%);
        -moz-transform: scale(0.8) translateY(0%);
        -o-transform: scale(0.8) translateY(0%);
        transform: scale(0.8) translateY(0%);
        opacity: 0.5;
    }
    100% {
        -webkit-transform: scale(0.8) translateY(-150%);
        -moz-transform: scale(0.8) translateY(-150%);
        -o-transform: scale(0.8) translateY(-150%);
        transform: scale(0.8) translateY(-150%);
        opacity: 0.5;
    }
}

.oxi-addons-container .oxi-image-zoom-out-down:hover .oxi-image-hover-image,
.oxi-addons-container .oxi-image-zoom-out-down.oxi-touch .oxi-image-hover-image {
    -webkit-animation: oxi-image-zoom-out-down 0.4025s linear;
    -moz-animation: oxi-image-zoom-out-down 0.4025s linear;
    -o-animation: oxi-image-zoom-out-down 0.4025s linear;
    animation: oxi-image-zoom-out-down 0.4025s linear;
    -webkit-animation-iteration-count: 1;
    -moz-animation-iteration-count: 1;
    -o-animation-iteration-count: 1;
    animation-iteration-count: 1;
    -webkit-animation-fill-mode: forwards;
    -moz-animation-fill-mode: forwards;
    -o-animation-fill-mode: forwards;
    animation-fill-mode: forwards;
}

@-webkit-keyframes oxi-image-zoom-out-down {
    50% {
        -webkit-transform: scale(0.8) translateY(0%);
        transform: scale(0.8) translateY(0%);
        opacity: 0.5;
    }
    100% {
        -webkit-transform: scale(0.8) translateY(150%);
        transform: scale(0.8) translateY(150%);
        opacity: 0.5;
    }
}

@-moz-keyframes oxi-image-zoom-out-down {
    50% {
        -webkit-transform: scale(0.8) translateY(0%);
        -moz-transform: scale(0.8) translateY(0%);
        transform: scale(0.8) translateY(0%);
        opacity: 0.5;
    }
    100% {
        -webkit-transform: scale(0.8) translateY(150%);
        -moz-transform: scale(0.8) translateY(150%);
        transform: scale(0.8) translateY(150%);
        opacity: 0.5;
    }
}

@-o-keyframes oxi-image-zoom-out-down {
    50% {
        -webkit-transform: scale(0.8) translateY(0%);
        -o-transform: scale(0.8) translateY(0%);
        transform: scale(0.8) translateY(0%);
        opacity: 0.5;
    }
    100% {
        -webkit-transform: scale(0.8) translateY(150%);
        -o-transform: scale(0.8) translateY(150%);
        transform: scale(0.8) translateY(150%);
        opacity: 0.5;
    }
}

@keyframes oxi-image-zoom-out-down {
    50% {
        -webkit-transform: scale(0.8) translateY(0%);
        -moz-transform: scale(0.8) translateY(0%);
        -o-transform: scale(0.8) translateY(0%);
        transform: scale(0.8) translateY(0%);
        opacity: 0.5;
    }
    100% {
        -webkit-transform: scale(0.8) translateY(150%);
        -moz-transform: scale(0.8) translateY(150%);
        -o-transform: scale(0.8) translateY(150%);
        transform: scale(0.8) translateY(150%);
        opacity: 0.5;
    }
}

.oxi-addons-container .oxi-image-zoom-out-left:hover .oxi-image-hover-image,
.oxi-addons-container .oxi-image-zoom-out-left.oxi-touch .oxi-image-hover-image {
    -webkit-animation: oxi-image-zoom-out-left 0.4025s linear;
    -moz-animation: oxi-image-zoom-out-left 0.4025s linear;
    -o-animation: oxi-image-zoom-out-left 0.4025s linear;
    animation: oxi-image-zoom-out-left 0.4025s linear;
    -webkit-animation-iteration-count: 1;
    -moz-animation-iteration-count: 1;
    -o-animation-iteration-count: 1;
    animation-iteration-count: 1;
    -webkit-animation-fill-mode: forwards;
    -moz-animation-fill-mode: forwards;
    -o-animation-fill-mode: forwards;
    animation-fill-mode: forwards;
}

@-webkit-keyframes oxi-image-zoom-out-left {
    50% {
        -webkit-transform: scale(0.8) translateX(0%);
        transform: scale(0.8) translateX(0%);
        opacity: 0.5;
    }
    100% {
        -webkit-transform: scale(0.8) translateX(-150%);
        transform: scale(0.8) translateX(-150%);
        opacity: 0.5;
    }
}

@-moz-keyframes oxi-image-zoom-out-left {
    50% {
        -webkit-transform: scale(0.8) translateX(0%);
        -moz-transform: scale(0.8) translateX(0%);
        transform: scale(0.8) translateX(0%);
        opacity: 0.5;
    }
    100% {
        -webkit-transform: scale(0.8) translateX(-150%);
        -moz-transform: scale(0.8) translateX(-150%);
        transform: scale(0.8) translateX(-150%);
        opacity: 0.5;
    }
}

@-o-keyframes oxi-image-zoom-out-left {
    50% {
        -webkit-transform: scale(0.8) translateX(0%);
        -o-transform: scale(0.8) translateX(0%);
        transform: scale(0.8) translateX(0%);
        opacity: 0.5;
    }
    100% {
        -webkit-transform: scale(0.8) translateX(-150%);
        -o-transform: scale(0.8) translateX(-150%);
        transform: scale(0.8) translateX(-150%);
        opacity: 0.5;
    }
}

@keyframes oxi-image-zoom-out-left {
    50% {
        -webkit-transform: scale(0.8) translateX(0%);
        -moz-transform: scale(0.8) translateX(0%);
        -o-transform: scale(0.8) translateX(0%);
        transform: scale(0.8) translateX(0%);
        opacity: 0.5;
    }
    100% {
        -webkit-transform: scale(0.8) translateX(-150%);
        -moz-transform: scale(0.8) translateX(-150%);
        -o-transform: scale(0.8) translateX(-150%);
        transform: scale(0.8) translateX(-150%);
        opacity: 0.5;
    }
}

.oxi-addons-container .oxi-image-zoom-out-right:hover .oxi-image-hover-image,
.oxi-addons-container .oxi-image-zoom-out-right.oxi-touch .oxi-image-hover-image {
    -webkit-animation: oxi-image-zoom-out-right 0.4025s linear;
    -moz-animation: oxi-image-zoom-out-right 0.4025s linear;
    -o-animation: oxi-image-zoom-out-right 0.4025s linear;
    animation: oxi-image-zoom-out-right 0.4025s linear;
    -webkit-animation-iteration-count: 1;
    -moz-animation-iteration-count: 1;
    -o-animation-iteration-count: 1;
    animation-iteration-count: 1;
    -webkit-animation-fill-mode: forwards;
    -moz-animation-fill-mode: forwards;
    -o-animation-fill-mode: forwards;
    animation-fill-mode: forwards;
}

@-webkit-keyframes oxi-image-zoom-out-right {
    50% {
        -webkit-transform: scale(0.8) translateX(0%);
        transform: scale(0.8) translateX(0%);
        opacity: 0.5;
    }
    100% {
        -webkit-transform: scale(0.8) translateX(150%);
        transform: scale(0.8) translateX(150%);
        opacity: 0.5;
    }
}

@-moz-keyframes oxi-image-zoom-out-right {
    50% {
        -webkit-transform: scale(0.8) translateX(0%);
        -moz-transform: scale(0.8) translateX(0%);
        transform: scale(0.8) translateX(0%);
        opacity: 0.5;
    }
    100% {
        -webkit-transform: scale(0.8) translateX(150%);
        -moz-transform: scale(0.8) translateX(150%);
        transform: scale(0.8) translateX(150%);
        opacity: 0.5;
    }
}

@-o-keyframes oxi-image-zoom-out-right {
    50% {
        -webkit-transform: scale(0.8) translateX(0%);
        -o-transform: scale(0.8) translateX(0%);
        transform: scale(0.8) translateX(0%);
        opacity: 0.5;
    }
    100% {
        -webkit-transform: scale(0.8) translateX(150%);
        -o-transform: scale(0.8) translateX(150%);
        transform: scale(0.8) translateX(150%);
        opacity: 0.5;
    }
}

@keyframes oxi-image-zoom-out-right {
    50% {
        -webkit-transform: scale(0.8) translateX(0%);
        -moz-transform: scale(0.8) translateX(0%);
        -o-transform: scale(0.8) translateX(0%);
        transform: scale(0.8) translateX(0%);
        opacity: 0.5;
    }
    100% {
        -webkit-transform: scale(0.8) translateX(150%);
        -moz-transform: scale(0.8) translateX(150%);
        -o-transform: scale(0.8) translateX(150%);
        transform: scale(0.8) translateX(150%);
        opacity: 0.5;
    }
}

.oxi-addons-container .oxi-image-zoom-out-flip-horizontal * {
    -webkit-perspective: 50em;
    -moz-perspective: 50em;
    perspective: 50em;
}

.oxi-addons-container .oxi-image-zoom-out-flip-horizontal .oxi-image-hover-figure-caption {
    opacity: 0;
    -webkit-transform: rotateX(90deg) translateY(-100%) scale(0.5);
    -moz-transform: rotateX(90deg) translateY(-100%) scale(0.5);
    transform: rotateX(90deg) translateY(-100%) scale(0.5);
}

.oxi-addons-container .oxi-image-zoom-out-flip-horizontal:hover .oxi-image-hover-image,
.oxi-addons-container .oxi-image-zoom-out-flip-horizontal.oxi-touch .oxi-image-hover-image {
    -webkit-transform: rotateX(-100deg) translateY(50%) scale(0.5);
    -moz-transform: rotateX(-100deg) translateY(50%) scale(0.5);
    transform: rotateX(-100deg) translateY(50%) scale(0.5);
    opacity: 0;
    -webkit-transition-delay: 0;
    -moz-transition-delay: 0;
    -o-transition-delay: 0;
    transition-delay: 0;
}

.oxi-addons-container .oxi-image-zoom-out-flip-horizontal:hover .oxi-image-hover-figure-caption,
.oxi-addons-container .oxi-image-zoom-out-flip-horizontal.oxi-touch .oxi-image-hover-figure-caption {
    -webkit-transform: rotateX(0) translateY(0%) scale(1);
    -moz-transform: rotateX(0) translateY(0%) scale(1);
    transform: rotateX(0) translateY(0%) scale(1);
    opacity: 1;
    -webkit-transition-delay: 0.35s;
    -moz-transition-delay: 0.35s;
    -o-transition-delay: 0.35s;
    transition-delay: 0.35s;
}

.oxi-addons-container .oxi-image-zoom-out-flip-vertical {
    -webkit-perspective: 50em;
    -moz-perspective: 50em;
    perspective: 50em;
}

.oxi-addons-container .oxi-image-zoom-out-flip-vertical .oxi-image-hover-figure-caption {
    opacity: 0;
    -webkit-transform: rotateY(90deg) translate(50%, 0) scale(0.5);
    -moz-transform: rotateY(90deg) translate(50%, 0) scale(0.5);
    transform: rotateY(90deg) translate(50%, 0) scale(0.5);
}

.oxi-addons-container .oxi-image-zoom-out-flip-vertical:hover .oxi-image-hover-image,
.oxi-addons-container .oxi-image-zoom-out-flip-vertical.oxi-touch .oxi-image-hover-image {
    -webkit-transform: rotateY(-100deg) translateX(50%) scale(0.5);
    -moz-transform: rotateY(-100deg) translateX(50%) scale(0.5);
    transform: rotateY(-100deg) translateX(50%) scale(0.5);
    opacity: 0;
    -webkit-transition-delay: 0;
    -moz-transition-delay: 0;
    -o-transition-delay: 0;
    transition-delay: 0;
}

.oxi-addons-container .oxi-image-zoom-out-flip-vertical:hover .oxi-image-hover-figure-caption,
.oxi-addons-container .oxi-image-zoom-out-flip-vertical.oxi-touch .oxi-image-hover-figure-caption {
    -webkit-transform: rotateY(0) translate(0, 0) scale(1);
    -moz-transform: rotateY(0) translate(0, 0) scale(1);
    transform: rotateY(0) translate(0, 0) scale(1);
    opacity: 1;
    -webkit-transition-delay: 0.35s;
    -moz-transition-delay: 0.35s;
    -o-transition-delay: 0.35s;
    transition-delay: 0.35s;
}