/* ===================================
   Curseur Personnalisé Élégant
   =================================== */

/* Curseur par défaut élégant */
* {
    cursor: none;
}

/* Curseur personnalisé principal */
body {
    cursor: none;
}

.cursor {
    width: 20px;
    height: 20px;
    border: 2px solid var(--gold);
    border-radius: 50%;
    position: fixed;
    pointer-events: none;
    z-index: 99999;
    transition: all 0.15s cubic-bezier(0.4, 0, 0.2, 1);
    transform: translate(-50%, -50%);
    background: transparent;
    mix-blend-mode: difference;
}

.cursor-follower {
    width: 40px;
    height: 40px;
    border: 1px solid rgba(212, 175, 55, 0.3);
    border-radius: 50%;
    position: fixed;
    pointer-events: none;
    z-index: 99998;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    transform: translate(-50%, -50%);
    background: radial-gradient(circle, rgba(212, 175, 55, 0.1) 0%, transparent 70%);
}

/* Curseur agrandi sur éléments interactifs */
.cursor.cursor-hover {
    width: 50px;
    height: 50px;
    background: rgba(212, 175, 55, 0.1);
    border-color: var(--gold-light);
    box-shadow: 0 0 20px rgba(212, 175, 55, 0.4);
}

.cursor-follower.cursor-hover {
    width: 60px;
    height: 60px;
    background: radial-gradient(circle, rgba(212, 175, 55, 0.2) 0%, transparent 70%);
}

/* Effet de clic */
.cursor.cursor-click {
    transform: translate(-50%, -50%) scale(0.8);
    background: rgba(212, 175, 55, 0.3);
}

/* Traînée dorée */
.cursor-trail {
    width: 6px;
    height: 6px;
    background: var(--gold);
    border-radius: 50%;
    position: fixed;
    pointer-events: none;
    z-index: 99997;
    opacity: 0;
    animation: cursorTrailFade 0.5s ease-out forwards;
    box-shadow: 0 0 10px rgba(212, 175, 55, 0.6);
}

@keyframes cursorTrailFade {
    0% {
        opacity: 0.8;
        transform: scale(1);
    }
    100% {
        opacity: 0;
        transform: scale(0.3);
    }
}

/* Curseur texte sur éléments de texte */
.cursor.cursor-text {
    width: 2px;
    height: 30px;
    border: none;
    border-radius: 2px;
    background: var(--gold);
}

/* Masquer le curseur par défaut sur mobile */
@media (max-width: 968px) {
    * {
        cursor: auto !important;
    }
    
    .cursor,
    .cursor-follower,
    .cursor-trail {
        display: none !important;
    }
}

/* Rétablir les curseurs natifs pour les éléments interactifs (fallback) */
a, button, input[type="submit"], .btn, .nav-link {
    cursor: none;
}

/* Curseur par défaut du navigateur en fallback (si JS désactivé) */
body.no-custom-cursor * {
    cursor: auto !important;
}

body.no-custom-cursor a,
body.no-custom-cursor button,
body.no-custom-cursor .btn {
    cursor: pointer !important;
}
