@tailwind base; @tailwind components; @tailwind utilities; @layer base { :root { --background: hsl(0 0% 100%); --foreground: hsl(222.2 84% 4.9%); --card: hsl(0 0% 100%); --card-foreground: hsl(222.2 84% 4.9%); --popover: hsl(0 0% 100%); --popover-foreground: hsl(222.2 84% 4.9%); --primary: 151 31% 27%; --primary-foreground: 0 0% 100%; --secondary: 84 38% 37%; --secondary-foreground: 0 0% 100%; --muted: 210 40% 96.1%; --muted-foreground: 215.4 16.3% 46.9%; --accent: 60 41% 82%; --accent-foreground: 151 31% 27%; --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: 151 31% 27%; --radius: 0.5rem; } .dark { --background: hsl(222.2 84% 4.9%); --foreground: hsl(210 40% 98%); --card: hsl(222.2 84% 4.9%); --card-foreground: hsl(210 40% 98%); --popover: hsl(222.2 84% 4.9%); --popover-foreground: hsl(210 40% 98%); --primary: 151 31% 27%; --primary-foreground: 0 0% 100%; --secondary: 84 38% 37%; --secondary-foreground: 0 0% 100%; --muted: 217.2 32.6% 17.5%; --muted-foreground: 215 20.2% 65.1%; --accent: 60 41% 82%; --accent-foreground: 151 31% 27%; --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: 151 31% 27%; } } @layer base { * { @apply border-border; } body { @apply bg-background text-foreground; } /* Применяем шрифт для заголовков */ h1, h2, h3, h4, h5, h6 { @apply font-serif tracking-tight; } /* Типографика */ h1 { @apply font-light; } h2 { @apply font-normal; } .heading-text { @apply font-arimo tracking-tight; } /* Стили для кнопок */ button, .button { @apply transition-all duration-300; } } /* Исправления для изображений в продуктах */ .product-image { width: 100%; height: auto; object-fit: cover; background-color: #f8f9fa; } .product-image-container { position: relative; overflow: hidden; background-color: #f8f9fa; } /* Анимация загрузки для изображений */ .image-loading { position: relative; overflow: hidden; } .image-loading::before { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(90deg, #f0f0f0 0%, #f8f8f8 50%, #f0f0f0 100%); background-size: 200% 100%; animation: loading 1.5s infinite; } @keyframes loading { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } } /* Фиксы для мобильных устройств */ @media (max-width: 768px) { .product-grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); } }