/**
 * Protection and Cross-Browser Compatibility CSS
 * Ensures site runs smoothly across all browsers and platforms
 */

/* Prevent text selection */
* {
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

/* Allow text selection in specific elements like inputs and textareas */
input, textarea {
    -webkit-user-select: auto;
    -moz-user-select: auto;
    -ms-user-select: auto;
    user-select: auto;
}

/* Prevent image dragging */
img {
    -webkit-user-drag: none;
    -khtml-user-drag: none;
    -moz-user-drag: none;
    -o-user-drag: none;
    user-drag: none;
}

/* Cross-browser compatibility fixes */

/* Fix for iOS 100vh issue */
:root {
    --vh: 1vh;
}

.full-height {
    height: 100vh; /* Fallback */
    height: calc(var(--vh, 1vh) * 100);
}

/* Hardware acceleration for smoother animations */
.hardware-accelerated,
.mobile-menu,
.mobile-menu-overlay,
.hamburger,
.mobile-nav-item,
.slick-slider,
.transition-element {
    -webkit-backface-visibility: hidden;
    -moz-backface-visibility: hidden;
    -ms-backface-visibility: hidden;
    backface-visibility: hidden;
    -webkit-perspective: 1000;
    -moz-perspective: 1000;
    -ms-perspective: 1000;
    perspective: 1000;
    -webkit-transform: translateZ(0);
    -moz-transform: translateZ(0);
    -ms-transform: translateZ(0);
    -o-transform: translateZ(0);
    transform: translateZ(0);
}

/* Flexbox prefixes for older browsers */
.d-flex {
    display: -webkit-box;
    display: -moz-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
}

/* Transition prefixes */
.transition {
    -webkit-transition: all 0.3s ease;
    -moz-transition: all 0.3s ease;
    -ms-transition: all 0.3s ease;
    -o-transition: all 0.3s ease;
    transition: all 0.3s ease;
}

/* Animation prefixes */
@-webkit-keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

@-moz-keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

@-ms-keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

@-o-keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

/* Fix for Safari border-radius overflow issue */
.overflow-hidden {
    -webkit-mask-image: -webkit-radial-gradient(white, black);
    overflow: hidden;
}

/* Fix for IE11 flexbox issues */
@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
    .d-flex {
        display: block;
    }
    
    .d-flex > * {
        display: inline-block;
        vertical-align: top;
    }
    
    .flex-column {
        display: block;
    }
}

/* Fix for older Edge versions */
@supports (-ms-ime-align: auto) {
    .d-flex {
        display: -ms-flexbox;
    }
}

/* Smooth scrolling with fallbacks */
html {
    scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }
}

/* Fix for Firefox specific issues */
@-moz-document url-prefix() {
    .firefox-fix {
        transform: translateZ(0);
    }
}

/* Protection styles */
.protected-content {
    position: relative;
}

.protected-content::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: transparent;
    z-index: 10;
    pointer-events: none;
}

/* Disable context menu indicator */
::-webkit-context-menu {
    display: none;
}