/* Animation Keyframes */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeInRight {
    from {
        opacity: 0;
        transform: translateX(20px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

/* Custom Animation Utility Classes */
.animate-fade-in-up {
    animation: fadeInUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.animate-fade-in-right {
    animation: fadeInRight 1.0s cubic-bezier(0.16, 1, 0.3, 1) forwards;
    opacity: 0; /* Init hidden */
    animation-delay: 0.2s;
}

/* Smooth Scrolling for entire page */
html {
    scroll-behavior: smooth;
}

/* FAQ Accordion Transitions */
.faq-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease-in-out, opacity 0.3s ease-in-out;
    opacity: 0;
}

.faq-item.active .faq-content {
    opacity: 1;
}

.faq-icon {
    transition: transform 0.3s ease;
}

.faq-item.active .faq-icon {
    transform: rotate(180deg);
}

/* Custom Selection Color */
::selection {
    background-color: #14B8A6; /* Tailwind teal-500 */
    color: white;
}

/* Form focus ring tweak */
input:focus, textarea:focus {
    box-shadow: 0 0 0 4px rgba(20, 184, 166, 0.2); /* Brand Teal with opacity */
}
