/* Custom Brand Color Utilities */
.bg-brand-green { background-color: #65d14a !important; }
.hover\:bg-brand-green:hover { background-color: #65d14a !important; }
.bg-brand-green-hover { background-color: #4eb833 !important; }
.hover\:bg-brand-green-hover:hover { background-color: #4eb833 !important; }
.bg-brand-green-light { background-color: #f0fbe9 !important; }
.bg-brand-green-border { background-color: #dbf5d2 !important; }
.text-brand-green { color: #65d14a !important; }
.hover\:text-brand-green:hover { color: #65d14a !important; }
.border-brand-green { border-color: #65d14a !important; }
.hover\:border-brand-green:hover { border-color: #65d14a !important; }
.border-brand-green-border { border-color: #dbf5d2 !important; }

.bg-brand-blue { background-color: #00abde !important; }
.hover\:bg-brand-blue:hover { background-color: #00abde !important; }
.bg-brand-blue-hover { background-color: #0096c7 !important; }
.hover\:bg-brand-blue-hover:hover { background-color: #0096c7 !important; }
.bg-brand-blue-light { background-color: #e6f7fc !important; }
.bg-brand-blue-border { background-color: #b3e6f5 !important; }
.text-brand-blue { color: #00abde !important; }
.hover\:text-brand-blue:hover { color: #00abde !important; }
.border-brand-blue { border-color: #00abde !important; }
.hover\:border-brand-blue:hover { border-color: #00abde !important; }
.border-brand-blue-border { border-color: #b3e6f5 !important; }

/* Gradients */
.from-brand-blue {
    --tw-gradient-from: #00abde !important;
    --tw-gradient-to: rgba(0, 171, 222, 0) !important;
    --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to) !important;
}

.to-brand-green { --tw-gradient-to: #65d14a !important; }
.from-brand-green {
    --tw-gradient-from: #65d14a !important;
    --tw-gradient-to: rgba(101, 209, 74, 0) !important;
    --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to) !important;
}
.to-brand-green-hover { --tw-gradient-to: #4eb833 !important; }
.to-brand-blue-hover { --tw-gradient-to: #0096c7 !important; }

body {
    font-family: 'Plus Jakarta Sans', sans-serif;
}

@keyframes float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-12px); }
}

.animate-float {
    animation: float 6s ease-in-out infinite;
}

@keyframes float-delayed {
    0%, 100% { transform: translateY(0) scale(1); }
    50% { transform: translateY(10px) scale(1.03); }
}

.animate-float-delayed {
    animation: float-delayed 8s ease-in-out infinite;
}

@keyframes pulse-slow {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.6; }
}

.animate-pulse-slow {
    animation: pulse-slow 4s ease-in-out infinite;
}

.transition-max-height {
    transition: max-height 0.3s ease-in-out;
}

/* Partner logos infinite marquee */
.partners-marquee {
    position: relative;
    width: 100%;
    overflow: hidden;
    mask-image: linear-gradient(to right, transparent, #000 8%, #000 92%, transparent);
    -webkit-mask-image: linear-gradient(to right, transparent, #000 8%, #000 92%, transparent);
}

.partners-marquee-track {
    display: flex;
    width: max-content;
    gap: 3rem;
    padding: 0.25rem 0;
    animation: partners-marquee-scroll 40s linear infinite;
}

.partners-marquee:hover .partners-marquee-track {
    animation-play-state: paused;
}

@keyframes partners-marquee-scroll {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}

@media (prefers-reduced-motion: reduce) {
    .partners-marquee-track {
        animation: none;
        flex-wrap: wrap;
        justify-content: center;
        width: 100%;
        max-width: 80rem;
        margin: 0 auto;
        padding-left: 1rem;
        padding-right: 1rem;
    }
}
