/* Fonts */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,700;1,400&display=swap');

html {
    scroll-behavior: smooth;
}

body {
    background-color: white;
    color: #1d1d1d;
    font-family: 'Montserrat', sans-serif;
    -webkit-font-smoothing: antialiased;
}

.hero-overlay {
    background: linear-gradient(rgba(10, 25, 47, 0.8), rgba(10, 25, 47, 0.8));
}

.text-justify-center {
    text-align: justify;
    text-align-last: center;
}

.text-highlight {
    background-color: rgba(0, 0, 0, 0.4);
    padding: 0 0.5rem;
}

.faq-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease-out, padding 0.3s ease;
}

.faq-item.active .faq-content {
    max-height: 500px;
    padding-bottom: 1.5rem;
}

.faq-item.active .faq-icon {
    transform: rotate(180deg);
}

.mobile-menu {
    transform: translateY(-100%);
    transition: transform 0.3s ease-in-out;
}

.mobile-menu.active {
    transform: translateY(0);
}

@keyframes bounce {
    0%, 20%, 50%, 80%, 100% {transform: translateY(0);}
    40% {transform: translateY(-10px);}
    60% {transform: translateY(-5px);}
}

.animate-bounce-custom {
    animation: bounce 2s infinite;
}

@keyframes ping {
    75%, 100% {
        transform: scale(2);
        opacity: 0;
    }
}

.animate-ping-custom {
    animation: ping 2s cubic-bezier(0, 0, 0.2, 1) infinite;
}

/* Ensure Lucide icons have dimensions */
svg.lucide {
    display: inline-block;
    vertical-align: middle;
}
