/* =============================================== */
/* ---------->>> SAFARI COMPATIBILITY FIXES <<<-- */
/* =============================================== */

/* Correções específicas para Safari no macOS */

/* 1. Flexbox fixes para Safari */
.d-flex, .flex, [class*="d-flex"] {
    display: -webkit-box !important;
    display: -webkit-flex !important;
    display: -ms-flexbox !important;
    display: flex !important;
}

.flex-column {
    -webkit-box-orient: vertical !important;
    -webkit-box-direction: normal !important;
    -webkit-flex-direction: column !important;
    -ms-flex-direction: column !important;
    flex-direction: column !important;
}

.flex-row {
    -webkit-box-orient: horizontal !important;
    -webkit-box-direction: normal !important;
    -webkit-flex-direction: row !important;
    -ms-flex-direction: row !important;
    flex-direction: row !important;
}

.justify-content-center {
    -webkit-box-pack: center !important;
    -webkit-justify-content: center !important;
    -ms-flex-pack: center !important;
    justify-content: center !important;
}

.align-items-center {
    -webkit-box-align: center !important;
    -webkit-align-items: center !important;
    -ms-flex-align: center !important;
    align-items: center !important;
}

/* 2. Transform fixes para Safari */
.transform, [class*="transform"] {
    -webkit-transform-style: preserve-3d;
    transform-style: preserve-3d;
}

/* 3. Transition fixes para Safari */
.transition, [class*="transition"] {
    -webkit-transition: all 0.3s ease;
    -moz-transition: all 0.3s ease;
    -o-transition: all 0.3s ease;
    transition: all 0.3s ease;
}

/* 4. Border-radius fixes para Safari */
.rounded, .border-radius, [class*="rounded"] {
    -webkit-border-radius: inherit;
    -moz-border-radius: inherit;
    border-radius: inherit;
}

/* 5. Box-shadow fixes para Safari */
.shadow, .box-shadow, [class*="shadow"] {
    -webkit-box-shadow: inherit;
    -moz-box-shadow: inherit;
    box-shadow: inherit;
}

/* 6. Opacity fixes para Safari */
.opacity, [class*="opacity"] {
    -webkit-opacity: inherit;
    -moz-opacity: inherit;
    opacity: inherit;
}

/* 7. Specific fixes for common layout issues in Safari */

/* Header sticky fix */
.header-sticky, .sticky-header {
    -webkit-position: sticky;
    position: sticky;
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
}

/* Carousel/Slider fixes */
.owl-carousel, .carousel, .slider {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

/* Button hover effects fix */
.btn, button, [type="button"], [type="submit"] {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
}

.btn:hover, button:hover {
    -webkit-transform: translateZ(0) scale(1.05);
    transform: translateZ(0) scale(1.05);
}

/* 8. Font rendering fixes para Safari */
body, html {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

/* 9. Scroll behavior fixes */
.smooth-scroll {
    -webkit-overflow-scrolling: touch;
    scroll-behavior: smooth;
}

/* 10. Grid layout fixes para Safari */
.grid, [class*="grid"] {
    display: -webkit-grid;
    display: -ms-grid;
    display: grid;
}

/* 11. Animation fixes para Safari */
@-webkit-keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

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

.fade-in {
    -webkit-animation: fadeIn 0.5s ease-in;
    animation: fadeIn 0.5s ease-in;
}

/* 12. Specific fixes for Revolution Slider in Safari */
.rs-layer {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

/* 13. Menu dropdown fixes para Safari */
.dropdown-menu, .nav-dropdown {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-will-change: transform, opacity;
    will-change: transform, opacity;
}

/* 14. Image rendering fixes para Safari */
img {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    image-rendering: -webkit-optimize-contrast;
    image-rendering: crisp-edges;
}

/* 15. Video fixes para Safari */
video {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
}

/* 16. Form input fixes para Safari */
input, textarea, select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    -webkit-border-radius: 0;
    border-radius: 0;
}

input[type="search"] {
    -webkit-appearance: textfield;
}

input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button {
    -webkit-appearance: none;
}

/* 17. Prevent zoom on input focus in Safari iOS */
@media screen and (max-width: 768px) {
    input, textarea, select {
        font-size: 16px !important;
    }
}

/* 18. Fix for Safari's handling of vh units */
.full-height, .vh-100 {
    height: 100vh;
    height: -webkit-fill-available;
}

/* 19. Backdrop filter support for Safari */
.backdrop-blur {
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
}

/* 20. CSS Grid fallback for older Safari versions */
@supports not (display: grid) {
    .grid-fallback {
        display: -webkit-flex;
        display: flex;
        -webkit-flex-wrap: wrap;
        flex-wrap: wrap;
    }
}

/* 21. Specific styles when Safari is detected via JavaScript */
body.safari-browser {
    /* Force hardware acceleration */
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

body.safari-browser * {
    /* Improve text rendering */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* 22. Fix for Safari's handling of position sticky */
body.safari-browser .sticky-header,
body.safari-browser .header-sticky {
    position: -webkit-sticky;
    position: sticky;
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    will-change: transform;
}

/* 23. Fix for Safari's flexbox issues */
body.safari-browser .d-flex,
body.safari-browser .flex {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
}

/* 24. Fix for Safari's transform issues */
body.safari-browser .transform,
body.safari-browser [class*="transform"] {
    -webkit-transform-style: preserve-3d;
    transform-style: preserve-3d;
    -webkit-perspective: 1000px;
    perspective: 1000px;
}

/* 25. Fix for Safari's animation issues */
body.safari-browser .animated,
body.safari-browser [class*="animate"] {
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-duration: inherit;
    animation-duration: inherit;
}

/* 26. Fix for Safari's carousel/slider issues */
body.safari-browser .owl-carousel,
body.safari-browser .carousel,
body.safari-browser .slider {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    will-change: transform;
}

/* 27. Fix for Safari's dropdown menu issues */
body.safari-browser .dropdown-menu,
body.safari-browser .nav-dropdown {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-will-change: transform, opacity;
    will-change: transform, opacity;
}

/* 28. Custom CSS variables for vh fix */
:root {
    --vh: 1vh;
}

body.safari-browser .full-height,
body.safari-browser .vh-100 {
    height: calc(var(--vh, 1vh) * 100);
}

/* 29. Specific fixes for logo in sticky header on Safari */
body.safari-browser .sticky-head.header-sticky .navbar .logo-sticky {
    display: block !important;
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    will-change: transform;
}

body.safari-browser .sticky-head .navbar .logo-sticky,
body.safari-browser .sticky-head.header-sticky .navbar .logo-general {
    display: none !important;
}

/* Fix for header-1 logo sticky */
body.safari-browser .header-1 .header-sticky .logo-sticky img {
    max-height: 65px !important;
    padding: 10px 0 !important;
    width: 100% !important;
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    image-rendering: -webkit-optimize-contrast;
    image-rendering: crisp-edges;
}

/* Fix for header-3 logo sticky */
body.safari-browser .header-3 .header-sticky .logo-sticky img {
    max-height: 65px !important;
    padding: 10px 0 !important;
    width: 100% !important;
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    image-rendering: -webkit-optimize-contrast;
    image-rendering: crisp-edges;
}

/* Fix for header-4 logo sticky */
body.safari-browser .header-4 .header-sticky .logo-sticky img {
    max-height: 65px !important;
    padding: 10px 0 !important;
    width: 100% !important;
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    image-rendering: -webkit-optimize-contrast;
    image-rendering: crisp-edges;
}

/* Fix for header-4 main-logo specific issues */
body.safari-browser .header-4 .sticky-head.header-sticky .main-logo {
    padding: initial !important;
    position: unset !important;
    width: inherit !important;
    height: inherit !important;
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

body.safari-browser .header-4 .sticky-head.header-sticky .main-logo::before {
    content: none !important;
    display: none !important;
}

body.safari-browser .header-4 .main-logo img {
    max-height: 61px !important;
    margin-top: -9px !important;
    position: relative !important;
    padding: 10px 0 !important;
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    image-rendering: -webkit-optimize-contrast;
    image-rendering: crisp-edges;
}

/* Fix for sticky header animations on Safari */
body.safari-browser .sticky-outer .header-sticky,
body.safari-browser .sticky-outer .sticky-scroll.show-menu {
    -webkit-animation-name: header_sticky_safari;
    animation-name: header_sticky_safari;
    -webkit-animation-duration: 0.3s;
    animation-duration: 0.3s;
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
}

@-webkit-keyframes header_sticky_safari {
    0% {
        -webkit-transform: translate3d(0, -100%, 0);
        transform: translate3d(0, -100%, 0);
        opacity: 0;
    }
    100% {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
        opacity: 1;
    }
}

@keyframes header_sticky_safari {
    0% {
        -webkit-transform: translate3d(0, -100%, 0);
        transform: translate3d(0, -100%, 0);
        opacity: 0;
    }
    100% {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
        opacity: 1;
    }
}

/* Fix for logo container positioning */
body.safari-browser .navbar .logo-sticky,
body.safari-browser .navbar .logo-general {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    will-change: transform;
}

/* Fix for sticky header transform issues */
body.safari-browser .sticky-scroll {
    -webkit-transform: translate3d(0, 0, 0) !important;
    transform: translate3d(0, 0, 0) !important;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    will-change: transform;
}

body.safari-browser .sticky-scroll.show-menu {
    -webkit-transform: translate3d(0, 0, 0) !important;
    transform: translate3d(0, 0, 0) !important;
}