/* Tailwind CSS Dark Theme Customizations */ /* Line Clamp Utilities */ .line-clamp-1 { overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 1; line-clamp: 1; } .line-clamp-2 { overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; } .line-clamp-3 { overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; } /* Smooth Scrolling */ html { scroll-behavior: smooth; } /* Custom Scrollbar */ ::-webkit-scrollbar { width: 8px; } ::-webkit-scrollbar-track { background: #f1f5f9; } .dark ::-webkit-scrollbar-track { background: #1e293b; } ::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 4px; } .dark ::-webkit-scrollbar-thumb { background: #475569; } ::-webkit-scrollbar-thumb:hover { background: #94a3b8; } .dark ::-webkit-scrollbar-thumb:hover { background: #64748b; } /* Focus States */ .focus-ring:focus { outline: 2px solid #3b82f6; outline-offset: 2px; } /* Card Hover Effects */ .card-hover-lift { transition: all 0.3s ease; } .card-hover-lift:hover { transform: translateY(-4px); box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); } .dark .card-hover-lift:hover { box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.3), 0 10px 10px -5px rgba(0, 0, 0, 0.2); } /* Button Animations */ .btn-scale:hover { transform: scale(1.05); } .btn-slide:hover { transform: translateX(4px); } /* Loading Animation */ @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .animate-spin { animation: spin 1s linear infinite; } /* Fade In Animation */ @keyframes fadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } .animate-fade-in { animation: fadeIn 0.5s ease-out; } /* Gradient Text */ .gradient-text { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } /* Custom Dark Mode Enhancements */ .dark { color-scheme: dark; } .glass-effect { backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); } /* Responsive Image Container */ .aspect-ratio-4-3 { aspect-ratio: 4/3; } .aspect-ratio-16-9 { aspect-ratio: 16/9; } /* Product Card Square Aspect Ratio */ .aspect-square { aspect-ratio: 1 / 1; } /* Product Image Cover - ensures images fill the entire card space */ .product-image-cover { width: 100%; height: 100%; object-fit: cover; object-position: center; } /* Fallback for browsers that don't support aspect-ratio */ @supports not (aspect-ratio: 1 / 1) { .aspect-square { position: relative; width: 100%; padding-bottom: 100%; /* Creates 1:1 aspect ratio */ } .aspect-square > * { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } .aspect-square img { object-fit: cover; object-position: center; } } /* Text Selection */ ::selection { background: #3b82f6; color: white; } .dark ::selection { background: #60a5fa; color: #1e293b; } /* Print Styles */ @media print { .no-print { display: none !important; } body { background: white !important; color: black !important; } } /* High Contrast Mode */ @media (prefers-contrast: high) { .contrast-enhance { border: 2px solid currentColor; } } /* Reduced Motion */ @media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; } } /* Image Display Enhancements */ .image-contain-wrapper { position: relative; overflow: hidden; } .image-contain-bg { background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%); } .dark .image-contain-bg { background: linear-gradient(135deg, #1e293b 0%, #334155 100%); } /* Product Image Specific Styles */ .product-image-container { display: flex; align-items: center; justify-content: center; min-height: 200px; } .product-image-main { max-width: 100%; max-height: 100%; object-fit: contain; transition: transform 0.3s ease; } .product-image-main:hover { transform: scale(1.02); } /* Thumbnail Image Styles */ .product-thumbnail { display: flex; align-items: center; justify-content: center; background: #f8fafc; border-radius: 0.5rem; overflow: hidden; } .dark .product-thumbnail { background: #1e293b; } .product-thumbnail img { object-fit: contain; width: 100%; height: 100%; transition: transform 0.2s ease; } .product-thumbnail:hover img { transform: scale(1.05); }