/* ── Base ─────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; }

/* ── Scroll indicator animation ───────────────────── */
@keyframes scroll-indicator {
    0% { transform: translateY(-100%); }
    100% { transform: translateY(100%); }
}
.animate-scroll-indicator {
    animation: scroll-indicator 1.2s ease-in-out infinite;
}

/* ── Service cards ────────────────────────────────── */
.service-card {
    opacity: 1;
    transform: translateY(0);
    transition: opacity 0.5s ease, transform 0.5s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}
.service-card.revealed {
    opacity: 1;
    transform: translateY(0);
}

/* ── Gallery items ────────────────────────────────── */
.gallery-item {
    opacity: 1;
    transform: translateY(0);
    transition: opacity 0.5s ease, transform 0.5s ease;
}

/* ── FAQ ──────────────────────────────────────────── */
.faq-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.35s ease, padding 0.35s ease;
}
.faq-item.open .faq-content {
    max-height: 200px;
}
.faq-item.open .faq-icon {
    transform: rotate(45deg);
}

/* ── Reduced motion ───────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
    .animate-scroll-indicator { animation: none; }
}
