.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
body, nav, main, section, footer { transition: all 0.3s ease-in-out; }

[dir="rtl"] .font-sans { font-family: 'El Messiri', sans-serif !important; }
[dir="rtl"] .rtl-flip { transform: scaleX(-1); }

/* Loader */
.loader-overlay {
    position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    background-color: #F9F7F5; z-index: 9999;
    display: flex; justify-content: center; align-items: center;
    transition: opacity 0.5s ease-out, visibility 0.5s ease-out;
}
.saw-blade { animation: spin 0.8s linear infinite; }
@keyframes spin { 100% { transform: rotate(360deg); } }
.wood-chip { animation: fly 1s ease-out infinite; opacity: 0; }
@keyframes fly {
    0% { transform: translate(0, 0) rotate(0deg); opacity: 1; }
    100% { transform: translate(-20px, -40px) rotate(-90deg); opacity: 0; }
}

/* Marquee Animation Classes */
.marquee-track {
    display: flex;
    gap: 3rem; 
    width: max-content;
}

/* LTR Animation: Move Left */
/* Start at 0, move to -50% (showing the right duplicate), then snap back to 0 */
.animate-scroll-ltr {
    animation: scrollLTR 30s linear infinite;
}
@keyframes scrollLTR {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

/* RTL Animation: Move Right */
/* Start at -50% (showing the left duplicate), move to 0 (showing the start), then snap back to -50% */
.animate-scroll-rtl {
    animation: scrollRTL 30s linear infinite;
}
@keyframes scrollRTL {
    0% { transform: translateX(-50%); }
    100% { transform: translateX(0); }
}

/* Pause on hover/touch */
#marquee-container:hover .marquee-track,
#marquee-container:active .marquee-track {
    animation-play-state: paused;
}

@media (max-width: 768px) {
    html[lang="en"] .hero-title-text { line-height: 1.25 !important; }
}