/* Custom Cursor Styles - SEO Optimized with Local Images */

/* Default cursor (arrow) - Apply to all elements */
*, *::before, *::after {
    cursor: url('/images/cursors/pointer-arrow-mini.png') 0 0, auto;
}

/* Pointer cursor (hand) for clickable elements - More comprehensive */
a, button, [role="button"], input[type="button"], input[type="submit"], input[type="reset"], 
.btn, .nav-link, .dropdown-toggle, .navbar-toggler, .close, .modal-header .btn-close,
[data-bs-toggle="dropdown"], [data-bs-toggle="modal"], [data-bs-toggle="collapse"],
[onclick], [href], .clickable, .cursor-pointer, 
/* Additional selectors for better coverage */
[tabindex], [data-toggle], [data-target], [data-dismiss], [data-bs-dismiss],
[data-bs-toggle], [data-bs-target], [data-bs-dismiss], [data-bs-placement],
[data-bs-offset], [data-bs-auto-close], [data-bs-boundary],
/* Form elements that are clickable */
input[type="checkbox"], input[type="radio"], select, option, optgroup,
/* Bootstrap components */
.dropdown-item, .list-group-item, .list-group-item-action, .page-link,
.accordion-button, .carousel-control-prev, .carousel-control-next,
.carousel-indicators button, .btn-close, .close,
/* Custom components */
.navbar-brand, .modern-brand, .brand-icon, .brand-content, .brand-text,
.modern-link, .nav-icon, .btn-user, .user-avatar, .user-info, .user-name,
.dropdown-arrow, .btn-pricing, .btn-orange, .btn-gradient, .btn-shine,
.feature-card, .testimonial-card, .pricing-card, .step-item, .step-icon,
.chat-button, .chat-popup, .chat-popup button, .chat-popup a,
/* Additional interactive elements */
[data-action], [data-click], [data-href], [data-url], [data-link],
[data-route], [data-navigate], [data-redirect], [data-goto],
/* SVG and image elements that might be clickable */
svg, img[onclick], img[data-click], img[data-action],
/* Div and span elements with click handlers */
div[onclick], div[data-click], div[data-action], div[data-toggle],
span[onclick], span[data-click], span[data-action], span[data-toggle],
/* Any element with cursor pointer class */
.cursor-pointer, .pointer, .clickable, .interactive {
    cursor: url('/images/cursors/pointer-hand-mini.png') 0 0, pointer;
}

/* Specific elements that should have pointer cursor */
.navbar-brand, .dropdown-item, .btn-user, .modern-link, .btn-pricing, .btn-orange,
.btn-primary, .btn-outline-primary, .btn-gradient, .feature-card, .testimonial-card,
.pricing-card, .step-item, .chat-button, .chat-popup button, .chat-popup a,
input[type="checkbox"], input[type="radio"], select, .form-select, .form-check-input,
label[for], .accordion-button, .carousel-control-prev, .carousel-control-next,
.carousel-indicators button, .pagination .page-link, .breadcrumb a,
.table-hover tbody tr:hover, .list-group-item-action, .card-link {
    cursor: url('/images/cursors/pointer-hand-mini.png') 0 0, pointer;
}

/* Text input elements should have default cursor */
input[type="text"], input[type="email"], input[type="password"], input[type="search"],
input[type="url"], input[type="tel"], input[type="number"], textarea, .form-control,
input[type="date"], input[type="time"], input[type="datetime-local"] {
    cursor: url('/images/cursors/pointer-arrow-mini.png') 0 0, text;
}

/* Disabled elements */
.disabled, [disabled], .btn:disabled, input:disabled, select:disabled, textarea:disabled {
    cursor: url('/images/cursors/pointer-arrow-mini.png') 0 0, not-allowed;
}

/* Loading states */
.loading, .spinner-border, .spinner-grow {
    cursor: url('/images/cursors/pointer-arrow-mini.png') 0 0, wait;
}

/* Resize cursors for specific elements */
textarea[resize], .resizable {
    cursor: url('/images/cursors/pointer-arrow-mini.png') 0 0, n-resize;
}

/* Hover states maintain cursor */
a:hover, button:hover, .btn:hover, .nav-link:hover, .dropdown-toggle:hover,
.navbar-toggler:hover, .close:hover, .modal-header .btn-close:hover,
[data-bs-toggle="dropdown"]:hover, [data-bs-toggle="modal"]:hover, [data-bs-toggle="collapse"]:hover,
[onclick]:hover, [href]:hover, .clickable:hover, .cursor-pointer:hover,
.navbar-brand:hover, .dropdown-item:hover, .btn-user:hover, .modern-link:hover,
.btn-pricing:hover, .btn-orange:hover, .btn-primary:hover, .btn-outline-primary:hover,
.btn-gradient:hover, .feature-card:hover, .testimonial-card:hover, .pricing-card:hover,
.step-item:hover, .chat-button:hover, .chat-popup button:hover, .chat-popup a:hover {
    cursor: url('/images/cursors/pointer-hand-mini.png') 0 0, pointer;
}

/* Focus states */
a:focus, button:focus, .btn:focus, .nav-link:focus, .dropdown-toggle:focus,
.navbar-toggler:focus, .close:focus, .modal-header .btn-close:focus,
[data-bs-toggle="dropdown"]:focus, [data-bs-toggle="modal"]:focus, [data-bs-toggle="collapse"]:focus,
[onclick]:focus, [href]:focus, .clickable:focus, .cursor-pointer:focus,
.navbar-brand:focus, .dropdown-item:focus, .btn-user:focus, .modern-link:focus,
.btn-pricing:focus, .btn-orange:focus, .btn-primary:focus, .btn-outline-primary:focus,
.btn-gradient:focus, .feature-card:focus, .testimonial-card:focus, .pricing-card:focus,
.step-item:focus, .chat-button:focus, .chat-popup button:focus, .chat-popup a:focus {
    cursor: url('/images/cursors/pointer-hand-mini.png') 0 0, pointer;
}

/* Active states */
a:active, button:active, .btn:active, .nav-link:active, .dropdown-toggle:active,
.navbar-toggler:active, .close:active, .modal-header .btn-close:active,
[data-bs-toggle="dropdown"]:active, [data-bs-toggle="modal"]:active, [data-bs-toggle="collapse"]:active,
[onclick]:active, [href]:active, .clickable:active, .cursor-pointer:active,
.navbar-brand:active, .dropdown-item:active, .btn-user:active, .modern-link:active,
.btn-pricing:active, .btn-orange:active, .btn-primary:active, .btn-outline-primary:active,
.btn-gradient:active, .feature-card:active, .testimonial-card:active, .pricing-card:active,
.step-item:active, .chat-button:active, .chat-popup button:active, .chat-popup a:active {
    cursor: url('/images/cursors/pointer-hand-mini.png') 0 0, pointer;
}

/* Mobile devices - use default cursors */
@media (max-width: 768px) {
    * {
        cursor: auto;
    }
    
    a, button, [role="button"], input[type="button"], input[type="submit"], input[type="reset"], 
    .btn, .nav-link, .dropdown-toggle, .navbar-toggler, .close, .modal-header .btn-close,
    [data-bs-toggle="dropdown"], [data-bs-toggle="modal"], [data-bs-toggle="collapse"],
    [onclick], [href], .clickable, .cursor-pointer {
        cursor: pointer;
    }
    
    input[type="text"], input[type="email"], input[type="password"], input[type="search"],
    input[type="url"], input[type="tel"], input[type="number"], textarea, .form-control,
    input[type="date"], input[type="time"], input[type="datetime-local"] {
        cursor: text;
    }
    
    .disabled, [disabled], .btn:disabled, input:disabled, select:disabled, textarea:disabled {
        cursor: not-allowed;
    }
}

/* High contrast mode - use default cursors */
@media (prefers-contrast: high) {
    * {
        cursor: auto;
    }
    
    a, button, [role="button"], input[type="button"], input[type="submit"], input[type="reset"], 
    .btn, .nav-link, .dropdown-toggle, .navbar-toggler, .close, .modal-header .btn-close,
    [data-bs-toggle="dropdown"], [data-bs-toggle="modal"], [data-bs-toggle="collapse"],
    [onclick], [href], .clickable, .cursor-pointer {
        cursor: pointer;
    }
}

/* Reduced motion - use default cursors */
@media (prefers-reduced-motion: reduce) {
    * {
        cursor: auto;
    }
    
    a, button, [role="button"], input[type="button"], input[type="submit"], input[type="reset"], 
    .btn, .nav-link, .dropdown-toggle, .navbar-toggler, .close, .modal-header .btn-close,
    [data-bs-toggle="dropdown"], [data-bs-toggle="modal"], [data-bs-toggle="collapse"],
    [onclick], [href], .clickable, .cursor-pointer {
        cursor: pointer;
    }
}
