.acc-custom-cursor {
    width: var(--acc-size, 18px);
    height: var(--acc-size, 18px);
    position: fixed;
    top: 0;
    left: 0;
    pointer-events: none;
    transform: translate3d(-50%, -50%, 0);
    transition: transform 0.1s ease-out, opacity 0.2s ease-out;
    z-index: 99999;
    opacity: 0;
    border-radius: 50%;
}

/* Hide on touch / non-hover devices (mobiles/tablets) */
@media (hover: none) and (pointer: coarse) {
    .acc-custom-cursor {
        display: none;
    }
}

/* --- Base style reset --- */
.acc-custom-cursor {
    background: transparent;
    border-style: solid;
    border-width: var(--acc-border-width, 2px);
    border-color: var(--acc-color, #00b7c2);
    box-shadow: none;
}

/* --- Preset: Dot --- */
.acc-custom-cursor.style-dot {
    background: var(--acc-color, #00b7c2);
    border-width: 0;
}

/* --- Preset: Ring --- */
.acc-custom-cursor.style-ring {
    background: transparent;
}

/* --- Preset: Glow --- */
.acc-custom-cursor.style-glow {
    background: rgba(0, 183, 194, 0.12);
    box-shadow: 0 0 12px rgba(0, 183, 194, 0.75);
}

/* --- Preset: Outline + Dot --- */
.acc-custom-cursor.style-outline-dot {
    background: var(--acc-color, #00b7c2);
    box-shadow: 0 0 0 3px rgba(0, 183, 194, 0.3);
}

/* --- Hover styles (applied together with .is-hovering) --- */

/* Dot on hover */
.acc-custom-cursor.is-hovering.hover-style-dot {
    transform: translate3d(-50%, -50%, 0) scale(1.6);
    background: var(--acc-color, #00b7c2);
    border-width: 0;
    box-shadow: 0 0 8px rgba(0, 183, 194, 0.6);
}

/* Ring on hover */
.acc-custom-cursor.is-hovering.hover-style-ring {
    transform: translate3d(-50%, -50%, 0) scale(1.8);
    background: transparent;
    border-width: var(--acc-border-width, 2px);
    box-shadow: none;
}

/* Glow on hover */
.acc-custom-cursor.is-hovering.hover-style-glow {
    transform: translate3d(-50%, -50%, 0) scale(2);
    background: rgba(0, 183, 194, 0.18);
    box-shadow: 0 0 18px rgba(0, 183, 194, 0.85);
}

/* Outline+Dot on hover */
.acc-custom-cursor.is-hovering.hover-style-outline-dot {
    transform: translate3d(-50%, -50%, 0) scale(1.8);
    background: var(--acc-color, #00b7c2);
    border-width: 0;
    box-shadow: 0 0 0 4px rgba(0, 183, 194, 0.4);
}


/* Hover FX */
.acc-hover-anim {
    transition: transform 0.25s ease, box-shadow 0.25s ease, filter 0.25s ease, background-color 0.25s ease, color 0.25s ease;
}

.acc-hover-anim.acc-hover-on {
    transform: translateY(-1px);
    box-shadow: 0 6px 18px rgba(0,0,0,0.12);
}

a.acc-hover-anim.acc-hover-on {
    text-decoration: none;
    filter: brightness(1.05);
}

button.acc-hover-anim.acc-hover-on,
.acc-hover-anim.acc-hover-on.button,
[role="button"].acc-hover-anim.acc-hover-on,
input[type="submit"].acc-hover-anim.acc-hover-on {
    transform: translateY(-1px) scale(1.02);
}

img.acc-hover-anim.acc-hover-on {
    transform: translateY(-2px) scale(1.03);
    filter: brightness(1.05);
}
