@import "../styles/fonts.css"; @tailwind base; @tailwind components; @tailwind utilities; /* Font imports */ @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800&family=Inter:wght@300;400;500;600;700&display=swap'); /* Screen reader only utility - hidden unless focused */ .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; } .focus\:not-sr-only:focus { position: static; width: auto; height: auto; padding: 0.5rem 0.75rem; margin: 0; overflow: visible; clip: auto; white-space: normal; } /* Ensure focus indicators are visible */ *:focus { outline: 2px solid #16A34A; outline-offset: 2px; } /* Hide focus outline when using mouse */ :focus:not(:focus-visible) { outline: none; } /* Visible focus for keyboard navigation */ :focus-visible { outline: 2px solid #16A34A; outline-offset: 2px; } /* Enhanced Button System */ .btn-primary { @apply bg-gradient-to-r from-brand-green to-green-600 text-white font-semibold px-8 py-4 rounded-button hover:from-green-600 hover:to-green-700 hover:shadow-lg hover:-translate-y-0.5 focus:ring-4 focus:ring-green-200 focus:shadow-lg active:from-green-700 active:to-green-800 active:translate-y-0 transition-all duration-300 ease-out; } .btn-secondary { @apply bg-white border-2 border-brand-orange text-brand-orange font-semibold px-8 py-4 rounded-button hover:bg-gradient-to-r hover:from-brand-orange hover:to-orange-600 hover:text-white hover:border-transparent hover:shadow-lg hover:-translate-y-0.5 focus:ring-4 focus:ring-orange-200 focus:shadow-lg active:from-orange-600 active:to-orange-700 active:translate-y-0 transition-all duration-300 ease-out; } .btn-outline { @apply bg-transparent border-2 border-brand-green text-brand-green font-semibold px-8 py-4 rounded-button hover:bg-brand-green hover:text-white hover:shadow-lg hover:-translate-y-0.5 focus:ring-4 focus:ring-green-200 focus:shadow-lg active:bg-green-700 active:translate-y-0 transition-all duration-300 ease-out; } .btn-ghost { @apply bg-transparent text-brand-green font-semibold px-8 py-4 rounded-button hover:bg-green-50 hover:text-green-700 hover:shadow-md focus:ring-4 focus:ring-green-200 active:bg-green-100 transition-all duration-200 ease-out; } .btn-danger { @apply bg-gradient-to-r from-brand-danger to-red-600 text-white font-semibold px-8 py-4 rounded-button hover:from-red-600 hover:to-red-700 hover:shadow-lg hover:-translate-y-0.5 focus:ring-4 focus:ring-red-200 focus:shadow-lg active:from-red-700 active:to-red-800 active:translate-y-0 transition-all duration-300 ease-out; } .btn-sm { @apply px-6 py-3 text-sm; } .btn-lg { @apply px-10 py-5 text-lg; } /* Enhanced Card System */ .card { @apply bg-white rounded-card shadow-card p-6 border border-gray-100 hover:shadow-xl hover:-translate-y-1 hover:border-gray-200 transition-all duration-300 ease-out; } .card-elevated { @apply bg-white rounded-card shadow-lg p-8 border border-gray-100 hover:shadow-2xl hover:-translate-y-2 hover:border-gray-200 transition-all duration-300 ease-out; } .card-gradient { @apply bg-gradient-to-br from-white to-gray-50 rounded-card shadow-card p-6 border border-gray-100 hover:shadow-xl hover:-translate-y-1 hover:from-gray-50 hover:to-gray-100 transition-all duration-300 ease-out; } .card-dark { @apply bg-gradient-to-br from-brand-dark to-slate-800 text-white rounded-card shadow-lg p-6 hover:shadow-xl hover:-translate-y-1 hover:from-slate-800 hover:to-brand-dark transition-all duration-300 ease-out; } /* Gradient Utilities */ .gradient-primary { @apply bg-gradient-to-r from-brand-green to-green-600; } .gradient-secondary { @apply bg-gradient-to-r from-brand-orange to-orange-600; } .gradient-dark { @apply bg-gradient-to-br from-brand-dark to-slate-800; } .gradient-light { @apply bg-gradient-to-br from-gray-50 to-white; } .gradient-text { @apply bg-gradient-to-r from-brand-green to-green-600 bg-clip-text text-transparent; } .gradient-text-orange { @apply bg-gradient-to-r from-brand-orange to-orange-600 bg-clip-text text-transparent; } /* Enhanced Typography */ .text-gradient { @apply bg-gradient-to-r from-brand-green to-green-600 bg-clip-text text-transparent; } .text-gradient-orange { @apply bg-gradient-to-r from-brand-orange to-orange-600 bg-clip-text text-transparent; } .font-light { font-weight: 300; } .font-medium { font-weight: 500; } .font-semibold { font-weight: 600; } .font-bold { font-weight: 700; } .font-extrabold { font-weight: 800; } /* Container */ .container-custom { @apply max-w-container mx-auto px-6 md:px-8; } /* Animation Utilities */ .animate-fade-in { animation: fadeIn 0.6s ease-out; } .animate-slide-up { animation: slideUp 0.6s ease-out; } .animate-scale-in { animation: scaleIn 0.4s ease-out; } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes slideUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } @keyframes scaleIn { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } }