.vcrcl-clickable {
    position: relative;
    cursor: pointer;
    transition: background-color var(--vcrcl-speed, 300ms) ease,
                color var(--vcrcl-speed, 300ms) ease,
                box-shadow var(--vcrcl-speed, 300ms) ease,
                transform var(--vcrcl-speed, 300ms) ease,
                opacity var(--vcrcl-speed, 300ms) ease,
                border-color var(--vcrcl-speed, 300ms) ease;
}

/* Overlay */
.vcrcl-clickable.vcrcl-has-overlay::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: var(--vcrcl-overlay-color, rgba(0,0,0,0.15));
    opacity: 0;
    transition: opacity var(--vcrcl-speed, 300ms) ease;
    z-index: 1;
    pointer-events: none;
    border-radius: inherit;
}

.vcrcl-clickable.vcrcl-has-overlay:hover::before {
    opacity: 1;
}

/* Zoom */
.vcrcl-clickable.vcrcl-has-zoom {
    overflow: hidden;
}

.vcrcl-clickable.vcrcl-has-zoom > * {
    transition: transform var(--vcrcl-speed, 300ms) ease;
}

.vcrcl-clickable.vcrcl-has-zoom:hover > * {
    transform: scale(1.03);
}

/* Sombra */
.vcrcl-clickable.vcrcl-has-shadow {
    transition: box-shadow var(--vcrcl-speed, 300ms) ease,
                transform var(--vcrcl-speed, 300ms) ease,
                opacity var(--vcrcl-speed, 300ms) ease,
                border-color var(--vcrcl-speed, 300ms) ease;
}

.vcrcl-clickable.vcrcl-has-shadow:hover {
    box-shadow: 0 8px 30px var(--vcrcl-shadow-color, rgba(0,0,0,0.25));
}

/* Opacidade */
.vcrcl-clickable.vcrcl-has-opacity {
    transition: opacity var(--vcrcl-speed, 300ms) ease,
                box-shadow var(--vcrcl-speed, 300ms) ease,
                transform var(--vcrcl-speed, 300ms) ease,
                border-color var(--vcrcl-speed, 300ms) ease;
}

.vcrcl-clickable.vcrcl-has-opacity:hover {
    opacity: 0.8;
}

/* Mover para cima (lift) */
.vcrcl-clickable.vcrcl-has-lift {
    transition: transform var(--vcrcl-speed, 300ms) ease,
                box-shadow var(--vcrcl-speed, 300ms) ease,
                opacity var(--vcrcl-speed, 300ms) ease,
                border-color var(--vcrcl-speed, 300ms) ease;
}

.vcrcl-clickable.vcrcl-has-lift:hover {
    transform: translateY(-5px);
}

/* Bordo */
.vcrcl-clickable.vcrcl-has-border {
    border: 2px solid transparent;
    transition: border-color var(--vcrcl-speed, 300ms) ease,
                box-shadow var(--vcrcl-speed, 300ms) ease,
                transform var(--vcrcl-speed, 300ms) ease,
                opacity var(--vcrcl-speed, 300ms) ease;
}

.vcrcl-clickable.vcrcl-has-border:hover {
    border-color: var(--vcrcl-border-color, #333333);
}

/* Cor de Fundo */
.vcrcl-clickable.vcrcl-has-bgcolor:hover {
    background-color: var(--vcrcl-bg-color) !important;
}

/* Cor de Texto */
.vcrcl-clickable.vcrcl-has-textcolor:hover,
.vcrcl-clickable.vcrcl-has-textcolor:hover * {
    color: var(--vcrcl-text-color) !important;
}
