/* Custom styles for A Small Gathering */

body {
    background-color: #f8fafc;
    color: #334155;
}

/* Hero title text shadow */
.hero-title {
    text-shadow: 0 2px 4px rgba(0,0,0,0.3);
}

/* Hide scrollbar for clean look */
.no-scrollbar::-webkit-scrollbar {
    display: none;
}

.no-scrollbar {
    -ms-overflow-style: none;
    scrollbar-width: none;
}

/* Smooth transitions for tab switching */
.tab-content {
    opacity: 1;
    transform: translateY(0);
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.tab-content.hidden {
    opacity: 0;
    transform: translateY(10px);
}

/* Animation classes for content reveal */
.animate-in {
    animation: fadeInUp 0.5s ease-out;
}

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

/* Progress bar animations */
.progress-bar {
    animation: fillProgress 1s ease-out 0.5s both;
}

@keyframes fillProgress {
    from {
        width: 0%;
    }
}

/* Hover effects for interactive elements */
button:not(:disabled):hover {
    transform: translateY(-1px);
    transition: transform 0.2s ease;
}

/* Focus styles for accessibility */
button:focus-visible {
    outline: 2px solid #0ea5e9;
    outline-offset: 2px;
}

a:focus-visible {
    outline: 2px solid #0ea5e9;
    outline-offset: 2px;
}

/* Mobile optimizations */
@media (max-width: 768px) {
    .hero-title {
        font-size: 2rem;
    }
}

/* Print styles */
@media print {
    .no-print {
        display: none !important;
    }
    
    body {
        background: white !important;
    }
    
    main {
        box-shadow: none !important;
        border: 1px solid #e2e8f0;
    }
}