/* Professional Custom Cursor Styling */

:root {
    --cursor-color: #e11d48; /* PFT Red */
    --cursor-size-inner: 8px;
    --cursor-size-outer: 32px;
}

/* Hide default cursor on desktop */
@media (pointer: fine) {
    body, a, button, .elementor-button, select, input[type="submit"], .partner-item {
        cursor: none !important;
    }

    .cursor-inner,
    .cursor-outer {
        position: fixed;
        top: 0;
        left: 0;
        border-radius: 50%;
        pointer-events: none;
        z-index: 999999;
        transform: translate(-50%, -50%);
        transition: width 0.3s cubic-bezier(0.23, 1, 0.32, 1), 
                    height 0.3s cubic-bezier(0.23, 1, 0.32, 1), 
                    opacity 0.3s ease, 
                    background-color 0.3s ease, 
                    border-color 0.3s ease;
        will-change: transform;
    }

    /* Inner Dot */
    .cursor-inner {
        width: var(--cursor-size-inner);
        height: var(--cursor-size-inner);
        background-color: var(--cursor-color);
        opacity: 1;
    }

    /* Outer Circle */
    .cursor-outer {
        width: var(--cursor-size-outer);
        height: var(--cursor-size-outer);
        border: 2px solid var(--cursor-color);
        opacity: 0.4;
    }

    /* Hover States */
    .cursor-outer.cursor-hover {
        width: 60px;
        height: 60px;
        background-color: rgba(225, 29, 72, 0.1);
        border-color: var(--cursor-color);
        opacity: 0.8;
    }

    .cursor-inner.cursor-hover {
        width: 4px;
        height: 4px;
        opacity: 0.8;
    }

    /* Active State (Click) */
    .cursor-outer.cursor-active {
        width: 45px;
        height: 45px;
        background-color: var(--cursor-color);
        opacity: 0.2;
    }
}

/* Hide custom cursor on mobile */
@media (pointer: coarse) {
    .cursor-inner,
    .cursor-outer {
        display: none !important;
    }
}

.cursor-hidden {
    opacity: 0 !important;
}
