/* ========================================
   iOS Safari & Mobile Optimization Fixes
   PRODUCTION-SAFE - GSAP ScrollSmoother Compatible
   ======================================== */

/* iOS Momentum Scrolling - Native feel */
html, body {
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-y: none;
    -webkit-tap-highlight-color: transparent;
}

/* ScrollSmoother wrapper - Production safe */
#smooth-wrapper {
    /* Let GSAP handle overflow on desktop */
    /* Native scroll on mobile */
}

/* iOS Viewport Height Fix - Production Safe */
.hero:not(.__inner) {
    /* Fallback for older browsers */
    height: calc(100vh - var(--site-header, 7rem));
    
    /* Modern browsers with dvh support */
    height: calc(100dvh - var(--site-header, 7rem));
    
    /* iOS Safari fallback using custom property set by JS */
    height: calc(var(--vh, 1vh) * 100 - var(--site-header, 7rem));
}

.hero.__inner {
    height: calc(768px - var(--site-header, 7rem));
    min-height: calc(var(--vh, 1vh) * 80);
}

.hero.__inner.__lg-inner {
    height: calc(910px - var(--site-header, 7rem));
    min-height: calc(var(--vh, 1vh) * 85);
}

.hero.__inner.__in {
    height: calc(99vh - var(--site-header, 7rem));
    height: calc(var(--vh, 1vh) * 99 - var(--site-header, 7rem));
}

/* Mobile specific viewport fixes */
@media (max-width: 767px) {
    .hero:not(.__inner) {
        height: calc(var(--vh, 1vh) * 100 - var(--site-header, 7rem));
        min-height: 600px;
    }
    
    .hero.__inner {
        height: calc(600px - var(--site-header, 7rem));
        min-height: calc(var(--vh, 1vh) * 70);
    }
}

/* iOS Safari Fixed Position Optimization */
/*
.site-header {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    will-change: transform;
}*/

/* Mobile: Solid background for performance */
@media (max-width: 991px) {
    .site-header {
        background: var(--bs-white) !important;
    }
    
    .site-header.header-dark {
        background: #000000 !important;
    }
}

/* Offcanvas Menu iOS Optimization */
.offcanvas {
    transition: transform 0.3s ease-in-out;
    will-change: transform;
    
    /* Hardware acceleration */
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

/* Prevent iOS zoom on input focus */
input, textarea, select {
    font-size: 16px !important;
}

/* iOS Font Rendering Optimization */
html, body, * {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

/* Video Container iOS Optimization */
video {
    /* Hardware acceleration */
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

/* Sticky Cards - Work on all devices */
.sticky-card {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
}

/* iOS Safe Area Support */
@supports (padding: max(0px)) {
    body {
        padding-left: max(0px, env(safe-area-inset-left));
        padding-right: max(0px, env(safe-area-inset-right));
    }
    
    .site-header {
        padding-left: max(0px, env(safe-area-inset-left));
        padding-right: max(0px, env(safe-area-inset-right));
    }
}

/* Image Loading Optimization */
img {
    /* Prevent layout shift */
    height: auto;
    
    /* iOS optimization */
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
}

/* Button Touch Optimization */
button, .btn, a {
    -webkit-tap-highlight-color: transparent;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    user-select: none;
}

/* Text Selection */
p, span, h1, h2, h3, h4, h5, h6 {
    -webkit-user-select: text;
    user-select: text;
}

/* iOS Landscape Optimization */
@media (max-width: 991px) and (orientation: landscape) {
    .hero:not(.__inner) {
        height: calc(var(--vh, 1vh) * 100 - var(--site-header, 7rem));
        min-height: 500px;
    }
}

/* Performance: Reduce animations on iOS if user prefers */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

/* Card animations optimization */
.card {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

/* Swiper iOS Optimization */
.swiper {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
}

.swiper-slide {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

/* Footer iOS Optimization */
.site-footer {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
}

/* iOS: Prevent text size adjustment */
html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

/* iOS: Optimize modal/offcanvas backdrop */
.modal-backdrop,
.offcanvas-backdrop {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    will-change: opacity;
}