@tailwind base; @tailwind components; @tailwind utilities; @layer base { :root { --background: 0 0% 100%; --foreground: 222.2 84% 4.9%; --card: 0 0% 100%; --card-foreground: 222.2 84% 4.9%; --popover: 0 0% 100%; --popover-foreground: 222.2 84% 4.9%; --primary: 222.2 47.4% 11.2%; --primary-foreground: 210 40% 98%; --secondary: 210 40% 96%; --secondary-foreground: 222.2 47.4% 11.2%; --muted: 210 40% 96%; --muted-foreground: 215.4 16.3% 46.9%; --accent: 210 40% 96%; --accent-foreground: 222.2 47.4% 11.2%; --destructive: 0 84.2% 60.2%; --destructive-foreground: 210 40% 98%; --border: 214.3 31.8% 91.4%; --input: 214.3 31.8% 91.4%; --ring: 222.2 84% 4.9%; --radius: 0.5rem; --chart-1: 12 76% 61%; --chart-2: 173 58% 39%; --chart-3: 197 37% 24%; --chart-4: 43 74% 66%; --chart-5: 27 87% 67%; --font-oswald: var(--font-oswald); --font-permanent-marker: var(--font-permanent-marker); --font-playfair-display: var(--font-playfair-display); --font-roboto: var(--font-roboto); } .dark { --background: 222.2 84% 4.9%; --foreground: 210 40% 98%; --card: 222.2 84% 4.9%; --card-foreground: 210 40% 98%; --popover: 222.2 84% 4.9%; --popover-foreground: 210 40% 98%; --primary: 210 40% 98%; --primary-foreground: 222.2 47.4% 11.2%; --secondary: 217.2 32.6% 17.5%; --secondary-foreground: 210 40% 98%; --muted: 217.2 32.6% 17.5%; --muted-foreground: 215 20.2% 65.1%; --accent: 217.2 32.6% 17.5%; --accent-foreground: 210 40% 98%; --destructive: 0 62.8% 30.6%; --destructive-foreground: 210 40% 98%; --border: 217.2 32.6% 17.5%; --input: 217.2 32.6% 17.5%; --ring: 212.7 26.8% 83.9%; --chart-1: 220 70% 50%; --chart-2: 160 60% 45%; --chart-3: 30 80% 55%; --chart-4: 280 65% 60%; --chart-5: 340 75% 55%; } } @layer base { * { @apply border-border; } body { @apply bg-background text-foreground; font-family: var(--font-oswald), sans-serif; font-weight: 300; /* Ensure smooth font rendering */ -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; } /* All headings use Permanent Marker */ h1, h2, h3, h4, h5, h6 { font-family: var(--font-permanent-marker), cursive; font-weight: 400; /* Optimize font rendering for headings */ font-display: swap; } /* Navigation uses Oswald */ nav, nav a { font-family: var(--font-oswald), sans-serif; font-weight: 300; } /* Ensure all text elements use Oswald by default */ p, span, div, a, button, input, textarea, label { font-family: var(--font-oswald), sans-serif; font-weight: 300; } /* Specific font classes */ .font-oswald { font-family: var(--font-oswald), sans-serif !important; font-weight: 300 !important; } .font-roboto { font-family: var(--font-roboto), sans-serif !important; } .font-permanent-marker { font-family: var(--font-permanent-marker), cursive !important; } .font-playfair { font-family: var(--font-playfair-display), serif !important; } /* Hero title - using Permanent Marker */ .hero-title { font-family: var(--font-permanent-marker), cursive !important; font-weight: 400 !important; letter-spacing: -0.02em; font-display: swap; } /* Section titles - using Permanent Marker */ .section-title { font-family: var(--font-permanent-marker), cursive !important; font-weight: 400 !important; font-display: swap; } /* Service card titles - using Permanent Marker */ .service-title { font-family: var(--font-permanent-marker), cursive !important; font-weight: 400 !important; font-display: swap; } /* Testimonial names - using Permanent Marker */ .testimonial-name { font-family: var(--font-permanent-marker), cursive !important; font-weight: 400 !important; font-display: swap; } /* Prevent font flash during load */ .font-loading { visibility: hidden; } .fonts-loaded .font-loading { visibility: visible; } /* Custom height for larger logos */ .max-h-30 { max-height: 7.5rem; /* 120px */ } /* Text shadow */ .text-shadow-sm { text-shadow: 1px 1px 2px rgba(255, 255, 255, 0.8); } } /* Critical font loading optimization */ @font-face { font-family: "Oswald"; font-style: normal; font-weight: 300; font-display: swap; src: url("https://fonts.gstatic.com/s/oswald/v53/TK3_WkUHHAIjg75cFRf3bXL8LICs1_FvsUtiZTaR.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } @font-face { font-family: "Roboto"; font-style: normal; font-weight: 400; font-display: swap; src: url("https://fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu4mxKKTU1Kg.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } @font-face { font-family: "Roboto"; font-style: normal; font-weight: 300; font-display: swap; src: url("https://fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmEU9fBBc4AMP6lQ.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }