@import "tailwindcss"; @theme { /* Breakpoints */ --breakpoint-xs: 475px; --breakpoint-sm: 640px; --breakpoint-md: 768px; --breakpoint-lg: 1024px; --breakpoint-xl: 1280px; --breakpoint-2xl: 1400px; --breakpoint-3xl: 1600px; /* Brand Colors */ --color-primary: #0e7a5c; --color-primary-dark: #0a5742; --color-primary-light: #149d76; --color-secondary: #194f3b; --color-secondary-light: #20654c; --color-secondary-dark: #13392a; --color-accent: #0e7a5c; --color-accent-light: #149d76; --color-neutral: #fafafa; --color-neutral-light: #ffffff; --color-neutral-dark: #333333; --color-neutral-black: #1a1a1a; /* Text Colors */ --color-text-primary: #1a1a1a; --color-text-secondary: #6c757d; --color-text-light: #adb5bd; /* Semantic Colors */ --color-success: #28a745; --color-warning: #ffc107; --color-danger: #dc3545; --color-info: #17a2b8; /* Fonts */ --font-sans: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; --font-heading: 'Inter', system-ui, sans-serif; --font-body: 'Inter', system-ui, sans-serif; /* Typography */ --text-xs: 0.75rem; --text-xs--line-height: 1.6; --text-sm: 0.875rem; --text-sm--line-height: 1.6; --text-base: 1rem; --text-base--line-height: 1.7; --text-lg: 1.125rem; --text-lg--line-height: 1.7; --text-xl: 1.25rem; --text-xl--line-height: 1.6; --text-2xl: 1.5rem; --text-2xl--line-height: 1.5; --text-3xl: 1.875rem; --text-3xl--line-height: 1.4; --text-4xl: 2.25rem; --text-4xl--line-height: 1.3; --text-5xl: 3rem; --text-5xl--line-height: 1.25; --text-6xl: 3.75rem; --text-6xl--line-height: 1.2; --text-7xl: 4.5rem; --text-7xl--line-height: 1.15; --text-8xl: 6rem; --text-8xl--line-height: 1.1; /* Font Weights */ --font-weight-regular: 400; --font-weight-medium: 500; --font-weight-semibold: 600; --font-weight-bold: 700; --font-weight-extrabold: 800; /* Border Radius */ --radius-sm: 0.25rem; --radius: 0.5rem; --radius-lg: 0.75rem; --radius-xl: 1rem; --radius-2xl: 1.5rem; /* Box Shadow */ --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05); --shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06); --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); } /* Custom Utilities (from JS plugins) */ @utility touch-target { min-height: 44px; min-width: 44px; display: inline-flex; align-items: center; justify-content: center; } @utility mobile-hidden { @media (max-width: 767px) { display: none !important; } } @utility tablet-hidden { @media (min-width: 768px) and (max-width: 1023px) { display: none !important; } } @utility desktop-hidden { @media (min-width: 1024px) { display: none !important; } } @utility mobile-only { @media (min-width: 768px) { display: none !important; } } @utility tablet-only { @media (max-width: 767px), (min-width: 1024px) { display: none !important; } } @utility desktop-only { @media (max-width: 1023px) { display: none !important; } } @utility fluid-spacing { padding: clamp(1rem, 3vw, 3rem); margin: clamp(0.5rem, 2vw, 2rem); } @utility text-start-mobile { @media (max-width: 767px) { text-align: left; } } @utility text-center-mobile { @media (max-width: 767px) { text-align: center; } } @utility text-end-mobile { @media (max-width: 767px) { text-align: right; } } @utility grid-mobile-stacked { @media (max-width: 767px) { display: flex; flex-direction: column; gap: 1rem; } } @utility safe-area-p { padding-top: env(safe-area-inset-top); padding-bottom: env(safe-area-inset-bottom); padding-left: env(safe-area-inset-left); padding-right: env(safe-area-inset-right); } /* E-TIB Custom Utilities (from previous globals.css) */ @layer utilities { .text-balance { text-wrap: balance; } .hide-scrollbar { -ms-overflow-style: none !important; /* IE and Edge */ scrollbar-width: none !important; /* Firefox */ } .hide-scrollbar::-webkit-scrollbar { display: none !important; /* Chrome, Safari and Opera */ width: 0 !important; height: 0 !important; } @keyframes bg-pulse-15 { 0%, 90%, 100% { opacity: 0.04; } 95% { opacity: 0.10; filter: brightness(1.2); } } @keyframes bg-pulse-20 { 0%, 90%, 100% { opacity: 0.07; } 95% { opacity: 0.14; filter: brightness(1.2); } } .animate-bg-pulse-15 { animation: bg-pulse-15 12s infinite ease-in-out; } .animate-bg-pulse-20 { animation: bg-pulse-20 12s infinite ease-in-out; } @keyframes hero-fade-in-up { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } } .animate-hero-fade-in-up { animation: hero-fade-in-up 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards; } @keyframes hero-zoom-out { from { transform: scale(1.05); } to { transform: scale(1); } } .animate-hero-zoom-out { animation: hero-zoom-out 1.5s ease-out forwards; } } /* Base Styles */ @layer base { html { scroll-behavior: smooth; } body { @apply bg-neutral font-sans text-neutral-dark antialiased; } /* Interactive elements pointer */ a, button, [role="button"], input[type="button"], input[type="submit"], input[type="reset"], select, summary, label[for] { cursor: pointer; } /* Ensure disabled elements don't show pointer */ button:disabled, [role="button"]:disabled, input:disabled, select:disabled, button[disabled] { cursor: not-allowed; } /* Custom Modern Scrollbar */ ::-webkit-scrollbar { width: 14px; height: 14px; } ::-webkit-scrollbar-track { background: transparent; } ::-webkit-scrollbar-thumb { background-color: rgba(14, 122, 92, 0.4); border-radius: 10px; border: 4px solid transparent; background-clip: padding-box; transition: background-color 0.2s ease; } ::-webkit-scrollbar-thumb:hover { background-color: rgba(14, 122, 92, 0.8); } /* Firefox */ html { scrollbar-color: rgba(14, 122, 92, 0.5) transparent; scrollbar-width: thin; } }