/* Custom Elements CSS - Cursore personalizzato */

/* Cursore personalizzato a cuore - NUOVO SISTEMA */
html,
body {
    cursor: none !important;
}

/* Forza cursore personalizzato su tutti gli elementi */
*,
*::before,
*::after {
    cursor: none !important;
}

/* Cursore personalizzato a cuore */
.cursor {
    width: 24px;
    height: 24px;
    position: fixed;
    pointer-events: none;
    z-index: 999999;
    transition: transform 0.2s ease;
}

/* Assicura che il cursore sia sempre visibile sopra i modal */
.modal-overlay .cursor,
.verification-modal .cursor,
.confirmation-modal .cursor,
.photo-panel-overlay .cursor,
.photo-panel .cursor,
.fullscreen-modal-active .cursor,
.video-intro-overlay .cursor {
    z-index: 9999999 !important;
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
}

/* Specifico per il modal fullscreen e video intro */
#fullscreen-modal .cursor,
body.fullscreen-modal-active .cursor,
.video-intro-overlay .cursor {
    z-index: 9999999 !important;
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
}

.cursor-heart {
    color: #fff;
    font-size: 15px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    transition: all 0.2s ease;
    /* Cuore bianco con bordo più spesso e visibile */
    text-shadow: 0 0 0 2px #fff, 0 0 0 3px transparent;
    -webkit-text-stroke: 2px #fff;
    -webkit-text-fill-color: transparent;
}

.cursor.grow {
    transform: scale(1.5);
}

.cursor.grow .cursor-heart {
    /* Mantiene sempre il colore bianco anche in hover */
    color: #fff;
    transform: translate(-50%, -50%) scale(1.3);
    -webkit-text-stroke: 2.5px #fff;
    -webkit-text-fill-color: transparent;
}

/* Stato click */
.cursor.click {
    transform: scale(0.8);
}

.cursor.click .cursor-heart {
    color: #ff6b6b;
    text-shadow: 
        0 0 0 2px #000, 
        0 0 0 4px #ff6b6b,
        0 3px 6px rgba(255, 107, 107, 0.4);
}

/* Forza cursore nascosto su tutti gli elementi interattivi */
input,
button,
select,
textarea,
a,
.clickable,
label[for],
.file-input-label,
.checkbox-item,
.hover-category,
.category,
.sidebar-toggle,
.menu-toggle,
.close-btn,
.submit-btn,
.model-card,
.gallery-image,
.lightbox-close,
.back-to-top,
.model-image,
.nav-login,
[role="button"],
[type="button"],
[type="submit"],
[type="reset"],
.social-links a,
.footer-nav a,
.form-group.consent,
.footer-social a,
.sidebar-social a,
.social-icons a,
.category-nav a,
.model-info,
.get-scouted-btn,
.nav-item,
.nav-link,
.action-btn,
.card-btn,
.logout-btn,
.btn,
.btn-primary,
.btn-secondary,
.btn-danger,
.action-icon,
.modal-close,
.tab-btn,
.photo-slot,
.photo-action-btn,
.filter-select,
.search-box input,
.pagination-btn,
.dropdown-toggle,
.notification-item,
.sidebar-nav a,
#desktop-language-toggle,
#desktop-language-toggle *,
#language-toggle,
#language-toggle *,
.language-btn,
.language-btn *,
.desktop-only,
.desktop-only * {
    cursor: none !important;
}
.sidebar-nav {
    background: #371e10 !important;
}

/* Hover states mantengono cursore nascosto */
input:hover,
button:hover,
select:hover,
textarea:hover,
a:hover,
.clickable:hover,
label[for]:hover,
.file-input-label:hover,
.checkbox-item:hover,
.hover-category:hover,
.category:hover,
.sidebar-toggle:hover,
.menu-toggle:hover,
.close-btn:hover,
.submit-btn:hover,
.model-card:hover,
.gallery-image:hover,
.lightbox-close:hover,
.back-to-top:hover,
.model-image:hover,
.nav-login:hover,
.get-scouted-btn:hover,
.nav-item:hover,
.nav-link:hover,
.action-btn:hover,
.card-btn:hover,
.logout-btn:hover,
.btn:hover,
.action-icon:hover,
.modal-close:hover,
.tab-btn:hover,
.photo-slot:hover,
.photo-action-btn:hover,
#language-toggle:hover,
#desktop-language-toggle:hover,
.language-btn:hover {
    cursor: none !important;
}

.enlarge-photo-btn:hover,
.fullscreen-close:hover,
.photo-panel-close:hover,
.select-file-btn:hover,
.remove-photo-btn:hover {
    cursor: none !important;
}

/* Fullscreen modal specifico */
#fullscreen-modal,
#fullscreen-modal *,
#fullscreen-modal img,
body.fullscreen-modal-active,
body.fullscreen-modal-active * {
    cursor: none !important;
}

/* Assicura che il cursore di default sia completamente nascosto */
body.fullscreen-modal-active {
    cursor: none !important;
}

body.fullscreen-modal-active *,
body.fullscreen-modal-active *:hover,
body.fullscreen-modal-active *:focus,
body.fullscreen-modal-active *:active {
    cursor: none !important;
}

/* Model dashboard specifico */
.model-dashboard,
.model-dashboard *,
.model-dashboard-approved,
.model-dashboard-approved * {
    cursor: none !important;
}

/* Nascondi completamente il cursore del browser */
html.model-dashboard,
html.model-dashboard *,
body.model-dashboard,
body.model-dashboard * {
    cursor: none !important;
}

/* Forza nascondi cursore su tutti gli stati */
*:hover,
*:focus,
*:active,
*:visited {
    cursor: none !important;
}

/* =================================================================
   NASCONDI CURSORE PERSONALIZZATO SU MOBILE - GLOBALE
   ================================================================= */

/* Nascondi il cursore personalizzato su dispositivi touch/mobile */
@media (max-width: 768px), (hover: none), (pointer: coarse) {
    /* Ripristina il cursore di default su mobile */
    html,
    body {
        cursor: auto !important;
    }
    
    /* Ripristina cursori normali su tutti gli elementi */
    *,
    *::before,
    *::after {
        cursor: auto !important;
    }
    
    /* Nasconde completamente tutti gli elementi del cursore personalizzato */
    .cursor,
    .cursor-dot,
    .cursor-outline,
    .custom-cursor,
    .cursor-follower,
    .cursor-pointer,
    .cursor-heart {
        display: none !important;
        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;
    }
    
    /* Cursori specifici per elementi interattivi su mobile */
    button,
    input[type="button"],
    input[type="submit"],
    input[type="reset"],
    a,
    .btn,
    .clickable,
    [role="button"],
    .action-btn,
    .modal-close {
        cursor: pointer !important;
        height: 8%;
    }
    
    /* Cursore text per input di testo */
    input[type="text"],
    input[type="email"],
    input[type="password"],
    input[type="search"],
    input[type="tel"],
    input[type="url"],
    textarea,
    [contenteditable] {
        cursor: text !important;
    }
    
    /* Cursore di ridimensionamento per textarea */
    textarea {
        cursor: text !important;
    }
    
    /* Cursore not-allowed per elementi disabilitati */
    button:disabled,
    input:disabled,
    textarea:disabled,
    select:disabled,
    .disabled {
        cursor: not-allowed !important;
    }
}

/* Fine regole cursore mobile globale */
