/* ============================================================
   Maisai Realty — site-wide custom styles
   Used only where Tailwind utilities can't express the rule.
============================================================ */

html { scroll-behavior: smooth; }

body {
    font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
    color: #1A1A1A;
    background: #FFFFFF;
}

/* Section reveal animation */
@keyframes fadeUp {
    from { opacity: 0; transform: translateY(20px); }
    to   { opacity: 1; transform: translateY(0); }
}
.reveal { opacity: 0; }
.reveal.in-view { animation: fadeUp 0.8s ease-out forwards; }

/* Marquee for partner logos */
@keyframes marquee {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
}
.marquee-track { animation: marquee 35s linear infinite; }

/* Subtle background grid for hero sections */
.hero-grid {
    background-image:
        linear-gradient(rgba(15,93,58,0.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(15,93,58,0.04) 1px, transparent 1px);
    background-size: 56px 56px;
}

/* Number counter monospace numerals */
.tabular-nums { font-variant-numeric: tabular-nums; }

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
    .marquee-track { animation: none; }
}

/* Property card image hover */
.property-card:hover .property-img { transform: scale(1.04); }
.property-img { transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1); }

/* Focus ring for accessibility */
*:focus-visible {
    outline: 2px solid #0F5D3A;
    outline-offset: 3px;
    border-radius: 4px;
}
