/* ── Base & Utilities ── */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { overflow-x: hidden; }

/* ── Scroll Reveal (progressive enhancement) ── */
@media (prefers-reduced-motion: no-preference) {
    .reveal { opacity: 0; transform: translateY(30px); transition: opacity 0.7s ease, transform 0.7s ease; }
    .reveal.revealed { opacity: 1; transform: translateY(0); }
    .reveal-delay-1 { transition-delay: 0.1s; }
    .reveal-delay-2 { transition-delay: 0.2s; }
    .reveal-delay-3 { transition-delay: 0.3s; }
    .reveal-delay-4 { transition-delay: 0.4s; }
    .reveal-delay-5 { transition-delay: 0.5s; }
    .reveal-delay-6 { transition-delay: 0.6s; }
}

/* Fallback: always visible if JS is disabled or prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
    .reveal { opacity: 1; transform: none; }
}

/* ── Service Cards ── */
.service-card { position: relative; }

/* ── Gallery Items ── */
.gallery-item { position: relative; }

/* ── Testimonial Cards ── */
.testimonial-card { position: relative; }

/* ── Mobile Menu ── */
#mobile-menu { transition: max-height 0.3s ease, opacity 0.3s ease; }
#mobile-menu.hidden { max-height: 0; opacity: 0; overflow: hidden; }
#mobile-menu:not(.hidden) { max-height: 400px; opacity: 1; }

/* ── Menu Button Animation ── */
.menu-line { transition: all 0.3s ease; }
#menu-btn.active .menu-line:nth-child(1) { transform: rotate(45deg) translate(5px, 5px); }
#menu-btn.active .menu-line:nth-child(2) { opacity: 0; }
#menu-btn.active .menu-line:nth-child(3) { transform: rotate(-45deg) translate(5px, -5px); width: 6px; }

/* ── Custom Scrollbar ── */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: #fdf4ff; }
::-webkit-scrollbar-thumb { background: #d946ef; border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: #c026d3; }

/* ── Selection ── */
::selection { background: #d946ef; color: #fff; }
