@tailwind base; @tailwind components; @tailwind utilities; /* Lennart Svenssons Konditorivaror - Traditionell Svensk Konditoristil */ @import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&family=Crimson+Text:ital,wght@0,400;0,600;0,700;1,400&display=swap'); @layer base { :root { --background: 38 25% 96%; --foreground: 25 30% 12%; --card: 40 30% 94%; --card-foreground: 25 30% 12%; --popover: 40 30% 94%; --popover-foreground: 25 30% 12%; --primary: 4 70% 45%; --primary-foreground: 40 30% 96%; --secondary: 35 20% 88%; --secondary-foreground: 25 30% 18%; --muted: 35 15% 85%; --muted-foreground: 0 0% 0%; --accent: 4 70% 45%; --accent-foreground: 40 30% 96%; --destructive: 4 70% 40%; --destructive-foreground: 40 30% 96%; --border: 30 20% 80%; --input: 30 20% 80%; --ring: 4 70% 45%; --radius: 0.25rem; /* Custom tokens */ --gradient-warm: linear-gradient(180deg, hsl(40 30% 94%) 0%, hsl(35 25% 90%) 100%); --shadow-classic: 0 4px 20px -4px hsl(25 30% 12% / 0.15); --shadow-card: 0 2px 8px hsl(25 30% 12% / 0.08); --font-display: 'Cormorant Garamond', serif; --font-body: 'Crimson Text', serif; } .dark { --background: 25 20% 8%; --foreground: 38 25% 92%; --card: 25 18% 12%; --card-foreground: 38 25% 92%; --primary: 30 50% 55%; --primary-foreground: 25 20% 8%; --secondary: 25 15% 18%; --secondary-foreground: 38 25% 92%; --muted: 25 12% 22%; --muted-foreground: 30 15% 60%; --border: 25 15% 25%; } } @layer base { * { @apply border-border; } html { scroll-behavior: smooth; scrollbar-width: none; /* Firefox */ -ms-overflow-style: none; /* IE/Edge */ } html::-webkit-scrollbar { display: none; /* Chrome, Safari, Opera */ } body { @apply bg-background text-foreground antialiased; font-family: var(--font-body); } /* Ensure full-width layout (avoid template max-width/padding on #root) */ #root { max-width: none; margin: 0; padding: 0; text-align: inherit; } h1, h2, h3, h4, h5, h6 { font-family: var(--font-display); } } @layer components { .hero-gradient { background: var(--gradient-warm); } .text-accent-warm { color: hsl(var(--accent)); } .card-classic { box-shadow: var(--shadow-card); border: 1px solid hsl(var(--border)); transition: all 0.3s ease; } .card-classic:hover { box-shadow: var(--shadow-classic); transform: translateY(-4px); } .btn-classic { @apply bg-primary text-primary-foreground font-semibold transition-all duration-300; border: 2px solid hsl(var(--primary)); } .btn-classic:hover { @apply bg-transparent; color: hsl(var(--primary)); } .btn-outline-classic { @apply bg-transparent font-semibold transition-all duration-300; color: hsl(var(--primary)); border: 2px solid hsl(var(--primary)); } .btn-outline-classic:hover { @apply bg-primary text-primary-foreground; } .divider-ornament { display: flex; align-items: center; gap: 1rem; } .divider-ornament::before, .divider-ornament::after { content: ''; flex: 1; height: 1px; background: linear-gradient(90deg, transparent, hsl(var(--border)), transparent); } .ornament { color: hsl(var(--primary)); font-family: var(--font-display); font-size: 1.5rem; } } @layer utilities { .animate-fade-up { animation: fadeUp 0.8s ease-out forwards; } @keyframes fadeUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } .text-balance { text-wrap: balance; } }