        @import url('https://fonts.googleapis.com/css2?family=Merriweather:wght@300;400;700&family=Open+Sans:wght@300;400;600;700&display=swap');

        body {
            font-family: 'Open Sans', sans-serif;
        }

        h1, h2, h3, h4, h5, h6 {
            font-family: 'Merriweather', serif;
        }

        .nav-link {
            position: relative;
            transition: color 0.3s ease;
        }

        .nav-link::after {
            content: '';
            position: absolute;
            width: 0;
            height: 2px;
            bottom: -4px;
            left: 0;
            background-color: #8B5A2B;
            transition: width 0.3s ease;
        }

        .nav-link:hover::after {
            width: 100%;
        }

        .btn-primary {
            background-color: #2D4F1E;
            transition: all 0.3s ease;
        }

        .btn-primary:hover {
            background-color: #1f3614;
            transform: translateY(-2px);
            box-shadow: 0 4px 12px rgba(45, 79, 30, 0.3);
        }

        .btn-secondary {
            border: 2px solid #8B5A2B;
            color: #8B5A2B;
            transition: all 0.3s ease;
        }

        .btn-secondary:hover {
            background-color: #8B5A2B;
            color: white;
            transform: translateY(-2px);
        }

        .event-card {
            transition: transform 0.3s ease, box-shadow 0.3s ease;
            border-left: 4px solid #2D4F1E;
        }

        .event-card:hover {
            transform: translateY(-4px);
            box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
        }

        .filter-btn {
            transition: all 0.3s ease;
        }

        .filter-btn.active {
            background-color: #2D4F1E;
            color: white;
        }

        .event-badge {
            display: inline-block;
            padding: 0.25rem 0.75rem;
            border-radius: 9999px;
            font-size: 0.75rem;
            font-weight: 600;
            text-transform: uppercase;
        }

        .badge-community {
            background-color: #2D4F1E;
            color: white;
        }

        .badge-class {
            background-color: #8B5A2B;
            color: white;
        }

        .badge-private {
            background-color: #6B7280;
            color: white;
        }

        .badge-special {
            background-color: #DC2626;
            color: white;
        }

        .calendar-icon {
            min-width: 80px;
        }

        @media (max-width: 640px) {
            .calendar-icon {
                min-width: 60px;
            }
        }

        .fade-in {
            animation: fadeIn 0.5s ease-in;
        }

        @keyframes fadeIn {
            from {
                opacity: 0;
                transform: translateY(10px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }