/* Custom Styles */
@layer components {
    /* Custom animations */
    @keyframes fadeIn {
        from { opacity: 0; transform: translateY(20px); }
        to { opacity: 1; transform: translateY(0); }
    }
    
    @keyframes fadeInUp {
        from { opacity: 0; transform: translateY(40px); }
        to { opacity: 1; transform: translateY(0); }
    }
    
    .animate-fade-in {
        animation: fadeIn 0.8s ease-out forwards;
    }
    
    /* Custom components */
    .btn {
        @apply px-6 py-3 rounded-full font-semibold transition-all duration-300 ease-in-out;
    }
    
    .btn-primary {
        @apply bg-blue-900 text-white hover:bg-blue-800 hover:shadow-lg;
    }
    
    .btn-outline {
        @apply border-2 border-white text-white hover:bg-white hover:text-blue-900;
    }
    
    /* Section spacing */
    section {
        @apply py-16 md:py-24;
    }
    
    /* Typography */
    h1, h2, h3, h4, h5, h6 {
        @apply font-heading font-bold leading-tight;
    }
    
    h1 { @apply text-4xl md:text-5xl lg:text-6xl; }
    h2 { @apply text-3xl md:text-4xl; }
    h3 { @apply text-2xl md:text-3xl; }
    
    /* Navigation */
    .nav-link {
        @apply relative after:absolute after:bottom-0 after:left-0 after:h-0.5 after:bg-white after:transition-all after:duration-300 after:w-0 hover:after:w-full;
    }
    
    /* Form elements */
    .form-input {
        @apply w-full px-4 py-3 rounded-lg border border-gray-300 focus:ring-2 focus:ring-blue-500 focus:border-transparent outline-none transition;
    }
    
    .form-label {
        @apply block text-sm font-medium text-gray-700 mb-1;
    }
}

/* Custom utilities */
.font-heading {
    font-family: 'Oswald', sans-serif;
}

/* Smooth scrolling */
html {
    scroll-behavior: smooth;
}

/* Accessibility focus styles */
:focus:not(:focus-visible) {
    outline: none;
}

:focus-visible {
    @apply ring-2 ring-blue-500 ring-offset-2 outline-none;
}

/* Print styles */
@media print {
    .no-print {
        display: none !important;
    }
    
    body {
        font-size: 12pt;
    }
    
    a::after {
        content: " (" attr(href) ")";
        font-size: 0.8em;
        font-weight: normal;
    }
}

/* Custom scrollbar */
::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

::-webkit-scrollbar-track {
    @apply bg-gray-100;
}

::-webkit-scrollbar-thumb {
    @apply bg-blue-600 rounded-full;
}

::-webkit-scrollbar-thumb:hover {
    @apply bg-blue-700;
}
