/* Base */
.firh-wrap {
    position: relative;
    display: inline-block;
    z-index: 1;
}

/* High z-index container for image on hover */
.firh-wrap:hover {
    z-index: 999999;
}

.firh-block {
    display: block;
    width: 100%;
}

.firh-align-center { text-align: center; }
.firh-align-right { text-align: right; }
.firh-align-left { text-align: left; }

.firh-trigger {
    position: relative;
    display: inline-block;
    text-decoration: none !important;
    cursor: pointer;
}

.firh-label {
    position: relative;
    z-index: 2;
    display: inline;
    margin: 0;
    padding: 0;
    border-bottom: none;
}

/* Reset heading margins */
.firh-label h1,
.firh-label h2,
.firh-label h3,
.firh-label h4,
.firh-label h5,
.firh-label h6,
.firh-label p {
    margin: 0;
    padding: 0;
    display: inline;
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
    letter-spacing: inherit;
    text-transform: inherit;
}

/* Image Box - Fixed position, will be moved by JS */
.firh-image-box {
    position: absolute;
    top: 0;
    left: 0;
    pointer-events: none;
    opacity: 0;
    overflow: hidden;
    box-shadow: 0 20px 40px rgba(0,0,0,0.15);
    will-change: transform, opacity;
    z-index: 999999;
}

.firh-image-inner {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
    background: #f5f5f5;
    will-change: transform, opacity, filter, clip-path;
}

.firh-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    will-change: transform;
}

/* Effect variations */
.firh-effect-2 .firh-image-box,
.firh-effect-7 .firh-image-box {
    box-shadow: 0 25px 50px rgba(0,0,0,0.2);
}

/* 3D perspective effects */
.firh-effect-6 .firh-image-inner,
.firh-effect-7 .firh-image-inner,
.firh-effect-12 .firh-image-inner,
.firh-effect-19 .firh-image-inner,
.firh-effect-22 .firh-image-inner {
    transform-style: preserve-3d;
    perspective: 1000px;
}

/* Clip-path effects */
.firh-effect-8 .firh-image-inner,
.firh-effect-16 .firh-image-inner,
.firh-effect-20 .firh-image-inner,
.firh-effect-23 .firh-image-inner {
    will-change: clip-path;
}

/* Responsive */
@media (max-width: 768px) {
    .firh-image-box {
        max-width: 180px !important;
        max-height: 130px !important;
    }
}

/* Builder hide */
.ux-builder-active .firh-image-box,
.flatsome-builder-active .firh-image-box {
    display: none !important;
}