.ih-image-hover-link {
    display: inline-block;
    max-width: 100%;
    text-decoration: none;
    color: inherit;
    line-height: 0;
}

.ih-image-hover {
    --ih-transition: 350ms;
    position: relative;
    display: inline-block;
    width: auto;
    max-width: 100%;
    overflow: hidden;
    line-height: 0;
    vertical-align: top;
}

.ih-image-hover__img {
    display: block;
    object-fit: cover;
    object-position: center center;
    transition: opacity var(--ih-transition) ease, transform var(--ih-transition) ease, filter var(--ih-transition) ease;
    will-change: opacity, transform, filter;
}

.ih-image-hover__img--primary {
    position: relative;
    z-index: 1;
    width: auto;
    max-width: 100%;
    height: auto;
}

.ih-image-hover__img--hover {
    position: absolute;
    inset: 0;
    z-index: 2;
    width: 100%;
    height: 100%;
    opacity: 0;
}

/* Quando o usuário definir largura no Elementor, a imagem passa a respeitar essa largura. */
.ih-image-hover.ih-has-custom-width,
.ih-image-hover-link:has(.ih-has-custom-width) {
    display: block;
}

.ih-image-hover.ih-has-custom-width .ih-image-hover__img--primary {
    width: 100%;
    height: auto;
}

/* Quando o usuário definir altura no Elementor, a imagem preenche o box com object-fit. */
.ih-image-hover.ih-has-custom-height .ih-image-hover__img--primary {
    width: 100%;
    height: 100%;
}

.ih-image-hover.ih-no-hover .ih-image-hover__img--primary {
    opacity: 1;
}

.ih-effect-fade:hover .ih-image-hover__img--hover,
.ih-hover-card:hover .ih-effect-fade .ih-image-hover__img--hover,
.imagem-hover-card:hover .ih-effect-fade .ih-image-hover__img--hover {
    opacity: 1;
}

.ih-effect-zoom:hover .ih-image-hover__img--primary,
.ih-hover-card:hover .ih-effect-zoom .ih-image-hover__img--primary,
.imagem-hover-card:hover .ih-effect-zoom .ih-image-hover__img--primary {
    transform: scale(1.04);
}

.ih-effect-zoom .ih-image-hover__img--hover {
    transform: scale(1.04);
}

.ih-effect-zoom:hover .ih-image-hover__img--hover,
.ih-hover-card:hover .ih-effect-zoom .ih-image-hover__img--hover,
.imagem-hover-card:hover .ih-effect-zoom .ih-image-hover__img--hover {
    opacity: 1;
    transform: scale(1);
}

.ih-effect-slide-left .ih-image-hover__img--hover {
    opacity: 1;
    transform: translateX(100%);
}

.ih-effect-slide-left:hover .ih-image-hover__img--hover,
.ih-hover-card:hover .ih-effect-slide-left .ih-image-hover__img--hover,
.imagem-hover-card:hover .ih-effect-slide-left .ih-image-hover__img--hover {
    transform: translateX(0);
}

.ih-effect-slide-up .ih-image-hover__img--hover {
    opacity: 1;
    transform: translateY(100%);
}

.ih-effect-slide-up:hover .ih-image-hover__img--hover,
.ih-hover-card:hover .ih-effect-slide-up .ih-image-hover__img--hover,
.imagem-hover-card:hover .ih-effect-slide-up .ih-image-hover__img--hover {
    transform: translateY(0);
}

.ih-effect-blur:hover .ih-image-hover__img--primary,
.ih-hover-card:hover .ih-effect-blur .ih-image-hover__img--primary,
.imagem-hover-card:hover .ih-effect-blur .ih-image-hover__img--primary {
    filter: blur(3px);
    transform: scale(1.02);
}

.ih-effect-blur:hover .ih-image-hover__img--hover,
.ih-hover-card:hover .ih-effect-blur .ih-image-hover__img--hover,
.imagem-hover-card:hover .ih-effect-blur .ih-image-hover__img--hover {
    opacity: 1;
}


.ih-hover-card:has([data-ih-card-link]),
.imagem-hover-card:has([data-ih-card-link]) {
    cursor: pointer;
}
