/* Hide default cursor */
html,
body,
body * {
    cursor: none !important;
}

/* Force pointer cursor on all clickable elements and their children */
a,
a *,
button,
button *,
input,
input *,
textarea,
textarea *,
select,
select *,
label,
label *,
img,
img *,
svg,
svg *,
[role="button"],
[role="button"] *,
input[type="submit"],
input[type="submit"] *,
input[type="button"],
input[type="button"] *,
.elementor-button,
.elementor-button *,
.elementor-icon,
.elementor-icon *,
.elementor-widget-button a,
.elementor-widget-button a * {
    cursor: pointer !important;
}

/* Also cover pseudo-elements inside buttons/links */
a::before,
a::after,
button::before,
button::after,
.elementor-button::before,
.elementor-button::after {
    cursor: pointer !important;
}

/* Main cursor */
.dds-cursor {
    position: fixed;
    top: 0;
    left: 0;
    width: 65px;
    height: 65px;
    pointer-events: none;
    z-index: 2147483647;
    transform: translate3d(-50%, -50%, 0);
    transition: transform .2s ease;
    will-change: transform;
}

/* Cursor image */
.dds-cursor img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    user-select: none;
    -webkit-user-drag: none;
}

.dds-cursor.hidden{
    opacity:0;
}

/* Hover effect */
.dds-cursor.hover {
    transform: translate3d(-50%, -50%, 0) scale(1.25) rotate(10deg);
}

/* Click effect */
.dds-cursor.click {
    transform: translate3d(-50%, -50%, 0) scale(.9);
}

/* Touch devices */
@media (hover:none),(pointer:coarse){

    html,
    body{
        cursor:auto;
    }

    .dds-cursor{
        display:none;
    }

}