/* Brand Identity CSS Variables - Roz Skin - Professional Beauty Brand */ :root { /* Primary Brand Colors - وردي/بيري احترافي */ --brand-primary: #E57393; /* Rose/Berry Pink - وردي بيري أساسي */ --brand-primary-light: #F2A8C0; /* Light Rose - وردي فاتح */ --brand-primary-dark: #D1537A; /* Dark Rose - وردي داكن */ --brand-primary-hover: #C73E6B; /* Hover Rose - للـ hover */ /* Accent Colors - ذهبي ناعم للفخامة */ --brand-accent: #D4AF37; /* Soft Gold - ذهبي ناعم */ --brand-accent-light: #E8D07A; /* Light Gold - ذهبي فاتح */ --brand-accent-dark: #B8941F; /* Dark Gold - ذهبي داكن */ /* Background Colors - خلفيات نظيفة */ --brand-bg-primary: #FAF7F7; /* Off-White Background - خلفية كريمية */ --brand-bg-secondary: #F8F5F5; /* Light Cream - كريمي فاتح */ --brand-bg-card: #FFFFFF; /* Pure White Cards - بطاقات بيضاء نقية */ --brand-bg-soft: #FDF9F9; /* Soft Background - خلفية ناعمة */ /* Text Colors - ألوان نص احترافية */ --brand-text-primary: #1F2937; /* Deep Charcoal - فحمي عميق */ --brand-text-secondary: #4B5563; /* Medium Gray - رمادي متوسط */ --brand-text-light: #9CA3AF; /* Light Gray - رمادي فاتح */ --brand-white: #FFFFFF; /* Pure White - أبيض نقي */ /* Text Colors - نظام نصوص بسيط */ --brand-text-primary: var(--brand-black); /* نص أساسي */ --brand-text-secondary: var(--brand-gray-text); /* نص ثانوي */ --brand-text-light: #999999; /* نص فاتح */ --brand-text-white: var(--brand-white); /* نص أبيض */ --brand-text-coral: var(--brand-primary); /* نص كورال */ /* Spacing & Borders - مساحات وحدود */ --brand-radius-small: 12px; /* انحناء صغير */ --brand-radius-medium: 20px; /* انحناء متوسط */ --brand-radius-large: 28px; /* انحناء كبير */ --brand-radius-xl: 36px; /* انحناء كبير جداً */ /* Shadows - ظلال ناعمة */ --brand-shadow-soft: 0 4px 20px rgba(0, 0, 0, 0.06); --brand-shadow-medium: 0 8px 30px rgba(0, 0, 0, 0.08); --brand-shadow-large: 0 12px 40px rgba(0, 0, 0, 0.1); /* Status Colors - كورال للكل */ --brand-success: var(--brand-primary); --brand-warning: var(--brand-primary); --brand-danger: var(--brand-primary); --brand-info: var(--brand-primary); /* Typography */ --brand-font-primary: 'Tajawal', 'Work Sans', sans-serif; --brand-font-secondary: 'Work Sans', sans-serif; /* Spacing */ --brand-spacing-xs: 0.25rem; /* 4px */ --brand-spacing-sm: 0.5rem; /* 8px */ --brand-spacing-md: 1rem; /* 16px */ --brand-spacing-lg: 1.5rem; /* 24px */ --brand-spacing-xl: 2rem; /* 32px */ --brand-spacing-2xl: 3rem; /* 48px */ /* Border Radius */ --brand-radius-sm: 0.25rem; /* 4px */ --brand-radius-md: 0.5rem; /* 8px */ --brand-radius-lg: 0.75rem; /* 12px */ --brand-radius-xl: 1rem; /* 16px */ /* Shadows */ --brand-shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.08); --brand-shadow-md: 0 4px 15px rgba(0, 0, 0, 0.12); --brand-shadow-lg: 0 8px 25px rgba(0, 0, 0, 0.15); --brand-shadow-xl: 0 12px 35px rgba(233, 30, 99, 0.2); --brand-shadow-brand: 0 4px 20px rgba(233, 30, 99, 0.25); } /* Utility Classes for Brand Colors */ .brand-primary { color: var(--brand-primary); } .brand-secondary { color: var(--brand-secondary); } .brand-accent { color: var(--brand-accent); } .brand-text-primary { color: var(--brand-text-primary); } .brand-text-secondary { color: var(--brand-text-secondary); } .bg-brand-primary { background-color: var(--brand-primary); } .bg-brand-secondary { background-color: var(--brand-secondary); } .bg-brand-accent { background-color: var(--brand-accent); } .bg-brand-background { background-color: var(--brand-background); } .bg-brand-background-alt { background-color: var(--brand-background-alt); } .border-brand-primary { border-color: var(--brand-primary); } .border-brand-secondary { border-color: var(--brand-secondary); } .border-brand-accent { border-color: var(--brand-accent); } /* Hover States */ .hover\:brand-primary:hover { color: var(--brand-primary); } .hover\:bg-brand-primary:hover { background-color: var(--brand-primary); } .hover\:bg-brand-secondary:hover { background-color: var(--brand-secondary); } .hover\:border-brand-primary:hover { border-color: var(--brand-primary); } /* Focus States */ .focus\:ring-brand-primary:focus { --tw-ring-color: var(--brand-primary); } .focus\:border-brand-primary:focus { border-color: var(--brand-primary); } /* Button Styles - Enhanced */ /* Soft Beauty App Style Buttons */ .btn-brand-primary { background: var(--brand-primary); color: white; padding: 16px 32px; border-radius: var(--brand-radius-large); border: none; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; font-weight: 500; font-size: 16px; box-shadow: var(--brand-shadow-soft); transition: all 0.3s ease; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 52px; } .btn-brand-primary:hover { transform: translateY(-1px); box-shadow: var(--brand-shadow-medium); background: var(--brand-primary-hover); } .btn-brand-primary:active { transform: translateY(0); box-shadow: var(--brand-shadow-soft); } .btn-brand-primary:active { transform: translateY(0); } .btn-brand-secondary { background-color: var(--brand-secondary); color: white; padding: var(--brand-spacing-sm) var(--brand-spacing-md); border-radius: var(--brand-radius-md); border: 1px solid var(--brand-secondary); font-family: var(--brand-font-primary); font-weight: 500; transition: all 0.2s ease; } .btn-brand-secondary:hover { background-color: var(--brand-secondary-dark); border-color: var(--brand-secondary-dark); color: white; } /* Card Styles - Enhanced & Beautiful */ /* Soft Beauty App Style Cards */ .card-brand { background: var(--brand-bg-card); border-radius: var(--brand-radius-large); box-shadow: var(--brand-shadow-soft); border: none; overflow: hidden; transition: all 0.3s ease; position: relative; height: 100%; display: flex; flex-direction: column; } .card-brand:hover { transform: translateY(-2px); box-shadow: var(--brand-shadow-medium); } /* Ensure text area has clean white background */ .card-brand > div:last-child { background: white; position: relative; z-index: 2; } .card-brand::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, var(--brand-primary), var(--brand-primary-dark)); transform: scaleX(0); transform-origin: left; transition: transform 0.4s ease; z-index: 1; } .card-brand:hover::before { transform: scaleX(1); } .card-brand:hover { box-shadow: 0 12px 40px rgba(229, 115, 147, 0.2); transform: translateY(-12px); border-color: rgba(229, 115, 147, 0.3); } /* Product Card Image Overlay */ .product-card-image { position: relative; overflow: hidden; background: linear-gradient(135deg, #fef7f7 0%, #fff5f8 100%); aspect-ratio: 4 / 5; } .product-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1); } .card-brand:hover .product-card-image img { transform: scale(1.15) rotate(2deg); } .product-card-overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(233, 30, 99, 0.3), transparent 60%); opacity: 0; transition: opacity 0.4s ease; z-index: 1; pointer-events: none; } .card-brand:hover .product-card-overlay { opacity: 1; } /* Product Card Badge */ .product-badge-container { position: absolute; top: 12px; left: 12px; z-index: 10; } .product-badge-container .discount-badge { background: linear-gradient(135deg, #E91E63 0%, #C2185B 100%); color: white; padding: 6px 14px; border-radius: 20px; font-size: 0.75rem; font-weight: 700; box-shadow: 0 4px 12px rgba(233, 30, 99, 0.4); display: inline-flex; align-items: center; gap: 4px; animation: pulse 2s infinite; } @keyframes pulse { 0%, 100% { box-shadow: 0 4px 12px rgba(233, 30, 99, 0.4); } 50% { box-shadow: 0 4px 20px rgba(233, 30, 99, 0.6); } } /* Heart Button Enhanced */ .heart-btn { background: rgba(255, 255, 255, 0.95) !important; backdrop-filter: blur(10px); border: 1px solid rgba(233, 30, 99, 0.1); transition: all 0.3s ease; } .heart-btn:hover { background: rgba(255, 255, 255, 1) !important; transform: scale(1.1); box-shadow: 0 4px 12px rgba(233, 30, 99, 0.3); } /* Typography */ .font-brand-primary { font-family: var(--brand-font-primary); } .font-brand-secondary { font-family: var(--brand-font-secondary); } .text-brand-primary { color: var(--brand-text-primary); } .text-brand-secondary { color: var(--brand-text-secondary); } /* Layout Spacing */ .spacing-brand-xs { margin: var(--brand-spacing-xs); } .spacing-brand-sm { margin: var(--brand-spacing-sm); } .spacing-brand-md { margin: var(--brand-spacing-md); } .spacing-brand-lg { margin: var(--brand-spacing-lg); } .spacing-brand-xl { margin: var(--brand-spacing-xl); } /* ============================================ Enhanced Navigation Styles ============================================ */ .navbar-enhanced { background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05); border-bottom: 1px solid rgba(233, 30, 99, 0.1); } .nav-link { position: relative; color: var(--brand-text-primary); font-weight: 500; transition: color 0.3s ease; padding: 0.5rem 0; } .nav-link::after { content: ''; position: absolute; bottom: 0; left: 0; width: 0; height: 2px; background: linear-gradient(90deg, var(--brand-primary), var(--brand-primary-dark)); transition: width 0.3s ease; } .nav-link:hover { color: var(--brand-primary); } .nav-link:hover::after { width: 100%; } /* ============================================ Hero Section Blob Animations ============================================ */ .hero-blob { position: absolute; border-radius: 50%; filter: blur(80px); opacity: 0.3; animation: blob 20s infinite; pointer-events: none; } .hero-blob-1 { width: 300px; height: 300px; background: var(--brand-primary-light); top: 20%; right: 10%; } .hero-blob-2 { width: 250px; height: 250px; background: var(--brand-accent-light); bottom: 20%; left: 10%; animation-delay: -10s; } @keyframes blob { 0%, 100% { transform: translate(0, 0) scale(1); } 33% { transform: translate(30px, -50px) scale(1.1); } 66% { transform: translate(-20px, 20px) scale(0.9); } } /* ============================================ Animations ============================================ */ @keyframes fadeInUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } } .fade-in-up { animation: fadeInUp 0.6s ease-out; } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } .fade-in { animation: fadeIn 0.5s ease-out; } /* ============================================ Discount Badge ============================================ */ .discount-badge { background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-primary-dark) 100%); color: white; padding: 0.25rem 0.75rem; border-radius: 9999px; font-size: 0.75rem; font-weight: 700; box-shadow: 0 2px 8px rgba(233, 30, 99, 0.3); display: inline-flex; align-items: center; gap: 0.25rem; } /* ============================================ Category Cards Enhanced ============================================ */ .category-card-enhanced { position: relative; width: 120px; height: 120px; border-radius: 50%; overflow: hidden; cursor: pointer; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); box-shadow: var(--brand-shadow-md); } .category-card-enhanced:hover { transform: scale(1.1) rotate(5deg); box-shadow: var(--brand-shadow-lg); } .category-card-bg { position: absolute; inset: 0; background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-primary-dark) 100%); } .category-card-content { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: white; font-weight: 700; font-size: 0.875rem; text-align: center; padding: 1rem; z-index: 2; } .category-card-overlay { position: absolute; inset: 0; background: rgba(0, 0, 0, 0); transition: background 0.3s ease; z-index: 1; } .category-card-enhanced:hover .category-card-overlay { background: rgba(0, 0, 0, 0.1); } /* Dark Mode Support (Future Enhancement) */ @media (prefers-color-scheme: dark) { :root { --brand-background: #1f2937; --brand-background-alt: #111827; --brand-text-primary: #f9fafb; --brand-text-secondary: #d1d5db; } } /* New Premium Product Card Design */ body.card-layout { background: linear-gradient(135deg, rgba(226,226,226,1) 0%, rgba(219,219,219,1) 50%, rgba(209,209,209,1) 50%, rgba(209,209,209,1) 50%, rgba(254,254,254,1) 100%) center/cover no-repeat; min-height: 100vh; } .card { width: 360px; background: #fff; border-radius: 15px; box-shadow: 0 5px 20px rgba(0, 0, 0, 0.1); transition: all 0.3s ease; font-family: 'Segoe UI', sans-serif; margin: 20px auto; overflow: hidden; position: relative; cursor: pointer; } .card:hover { transform: translateY(-5px); box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15); } .badge { position: absolute; top: 10px; right: 10px; background: linear-gradient(to right, rgba(169, 3, 41, 1) 0%, rgba(196, 72, 72, 1) 44%, rgba(170, 34, 56, 1) 100%); color: #fff; padding: 5px 10px; font-size: 11px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; border-radius: 10px; box-shadow: 0 3px 10px rgba(0, 0, 0, 0.2); z-index: 10; } .tilt { overflow: hidden; } .img { height: 200px; overflow: hidden; } .img img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; } .card:hover .img img { transform: scale(1.05); } .info { padding: 20px; } .cat { font-size: 11px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; color: #71717A; margin-bottom: 5px; } .title { font-size: 18px; font-weight: 700; color: #18181B; margin: 0 0 10px; letter-spacing: -0.5px; } .desc { font-size: 13px; color: #52525B; line-height: 1.4; margin-bottom: 12px; } .feats { display: flex; gap: 6px; margin-bottom: 15px; flex-wrap: wrap; } .feat { font-size: 10px; background: #F4F4F5; color: #71717A; padding: 3px 8px; border-radius: 10px; font-weight: 500; } .bottom { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; } .price { display: flex; flex-direction: column; } .old { font-size: 13px; text-decoration: line-through; color: #A1A1AA; margin-bottom: 2px; } .new { font-size: 20px; font-weight: 700; color: #18181B; } .btn { background: linear-gradient(45deg, #18181B, #27272A); color: #fff; border: none; border-radius: 10px; padding: 8px 15px; font-size: 13px; font-weight: 600; cursor: pointer; display: flex; align-items: center; gap: 6px; transition: all 0.3s ease; box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1); position: relative; overflow: hidden; } .btn:hover { background: linear-gradient(45deg, #27272A, #3F3F46); transform: translateY(-2px); box-shadow: 0 5px 15px rgba(0, 0, 0, 0.15); } .btn::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent); transition: left 0.5s ease; } .btn:hover::before { left: 100%; } .icon { transition: transform 0.3s ease; } .btn:hover .icon { transform: rotate(-10deg) scale(1.1); } .meta { display: flex; justify-content: space-between; align-items: center; border-top: 1px solid #F4F4F5; padding-top: 12px; } .rating { display: flex; align-items: center; gap: 2px; } .rcount { margin-left: 6px; font-size: 11px; color: #71717A; } .stock { font-size: 11px; font-weight: 600; color: #22C55E; } @media (max-width: 400px) { .card { width: 90%; } .title { font-size: 16px; } .img { height: 180px; } .bottom { flex-direction: column; align-items: flex-start; gap: 10px; } .price { margin-bottom: 5px; } .btn { width: 100%; justify-content: center; } } /* ============================================ Enhanced Mobile Optimizations for Roz Skin ============================================ */ @media (max-width: 768px) { .container { padding-left: 1rem; padding-right: 1rem; } /* Mobile Hero Section - More Elegant */ .carousel-item { height: 85vh !important; min-height: 450px !important; background: linear-gradient(135deg, #fdf2f8 0%, #fce7f3 50%, #f3e8ff 100%); } /* Enhanced Mobile Typography */ h1 { font-size: 1.875rem; line-height: 1.2; text-shadow: 0 2px 8px rgba(233, 30, 99, 0.3); background: linear-gradient(135deg, #E91E63, #C2185B); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } h2 { font-size: 1.5rem; line-height: 1.3; color: #2C2C2C; } h3 { font-size: 1.25rem; line-height: 1.4; color: #374151; } /* Enhanced Mobile Buttons */ .btn-brand-primary { padding: 1rem 2rem; font-size: 0.9rem; border-radius: 50px; min-height: 52px; font-weight: 600; box-shadow: 0 8px 25px rgba(32, 125, 136, 0.3); background: linear-gradient(135deg, #207D88 0%, #1A6B75 100%); position: relative; overflow: hidden; } .btn-brand-primary::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent); transition: left 0.6s ease; } .btn-brand-primary:hover::before { left: 100%; } .btn-brand-primary:active { transform: scale(0.98); } /* Enhanced Mobile Cards */ .card-brand { margin-bottom: 1.5rem; border-radius: 20px; box-shadow: 0 8px 30px rgba(233, 30, 99, 0.1); border: 1px solid rgba(233, 30, 99, 0.05); background: linear-gradient(135deg, #ffffff 0%, #fefefe 100%); } .card-brand:hover { transform: translateY(-8px); box-shadow: 0 15px 40px rgba(233, 30, 99, 0.2); } /* Mobile Product Cards */ .card { width: 100%; max-width: 320px; margin: 0 auto 1.5rem; border-radius: 20px; box-shadow: 0 8px 25px rgba(0, 0, 0, 0.08); background: white; overflow: hidden; } .card .img { height: 220px; background: linear-gradient(135deg, #fdf2f8 0%, #fce7f3 100%); } .card .info { padding: 1.25rem; } .card .title { font-size: 1.1rem; color: #1f2937; margin-bottom: 0.5rem; } .card .desc { font-size: 0.875rem; color: #6b7280; line-height: 1.5; } .card .btn { background: linear-gradient(135deg, #E91E63 0%, #C2185B 100%); border-radius: 12px; padding: 0.75rem 1.25rem; font-size: 0.875rem; font-weight: 600; box-shadow: 0 4px 15px rgba(233, 30, 99, 0.3); } /* Mobile Spacing Improvements */ .py-16 { padding-top: 3rem; padding-bottom: 3rem; } .py-12 { padding-top: 2.5rem; padding-bottom: 2.5rem; } .py-8 { padding-top: 2rem; padding-bottom: 2rem; } .mb-12 { margin-bottom: 2.5rem; } .mb-8 { margin-bottom: 2rem; } /* Enhanced Touch Targets */ button, a, input[type="button"], .btn { min-height: 48px; min-width: 48px; touch-action: manipulation; } /* Mobile Navigation Enhancements */ .mobile-nav-item { padding: 1rem; border-radius: 12px; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); background: rgba(255, 255, 255, 0.8); backdrop-filter: blur(10px); } .mobile-nav-item:active { transform: scale(0.96); background-color: rgba(233, 30, 99, 0.1); } /* Mobile Category Cards */ .category-card-enhanced { width: 100px; height: 100px; box-shadow: 0 6px 20px rgba(233, 30, 99, 0.15); } /* Mobile Search Bar */ #searchInput { border-radius: 25px; padding: 0.875rem 1rem; font-size: 0.9rem; border: 2px solid rgba(233, 30, 99, 0.1); background: rgba(255, 255, 255, 0.95); } #searchInput:focus { border-color: #E91E63; box-shadow: 0 0 0 3px rgba(233, 30, 99, 0.1); } /* Mobile Reviews Section */ #reviewContainer { border-radius: 20px; padding: 1.5rem; background: linear-gradient(135deg, #ffffff 0%, #fefefe 100%); box-shadow: 0 8px 25px rgba(233, 30, 99, 0.08); border: 1px solid rgba(233, 30, 99, 0.05); } /* Mobile Wishlist & Cart */ .heart-btn { width: 44px; height: 44px; border-radius: 50%; background: rgba(255, 255, 255, 0.95) !important; backdrop-filter: blur(10px); box-shadow: 0 4px 15px rgba(233, 30, 99, 0.2); } /* Mobile Grid Improvements */ .grid { gap: 1rem; } .grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); } /* Mobile Text Improvements */ .text-center p { font-size: 0.95rem; line-height: 1.6; color: #4b5563; } /* Mobile Animation Enhancements */ .fade-in-up { animation: mobileSlideUp 0.6s ease-out; } @keyframes mobileSlideUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } } /* ============================================ Small Mobile Devices (iPhone SE, etc.) ============================================ */ @media (max-width: 480px) { .container { padding-left: 0.75rem; padding-right: 0.75rem; } h1 { font-size: 1.625rem !important; } .btn-brand-primary { font-size: 0.85rem; padding: 0.875rem 1.75rem; } .card { max-width: 280px; } .card .img { height: 200px; } .card .info { padding: 1rem; } } /* ============================================ Enhanced Animations & Interactions ============================================ */ @keyframes shimmer { 0% { background-position: -200px 0; } 100% { background-position: calc(200px + 100%) 0; } } .shimmer { background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%); background-size: 200px 100%; animation: shimmer 1.5s infinite; } /* Floating Action Button for Mobile */ .fab-mobile { position: fixed; bottom: 20px; right: 20px; width: 56px; height: 56px; border-radius: 50%; background: linear-gradient(135deg, #E91E63 0%, #C2185B 100%); color: white; border: none; box-shadow: 0 8px 25px rgba(233, 30, 99, 0.4); z-index: 1000; display: flex; align-items: center; justify-content: center; transition: all 0.3s ease; } .fab-mobile:hover { transform: scale(1.1); box-shadow: 0 12px 35px rgba(233, 30, 99, 0.5); } @media (min-width: 769px) { .fab-mobile { display: none; } } /* Enhanced Loading States */ .loading-skeleton { background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%); background-size: 200px 100%; animation: shimmer 1.5s infinite; border-radius: 8px; } /* Improved Focus States for Accessibility */ button:focus, a:focus, input:focus { outline: 2px solid #E91E63; outline-offset: 2px; } /* Enhanced Hover Effects */ .hover-lift { transition: transform 0.3s ease, box-shadow 0.3s ease; } .hover-lift:hover { transform: translateY(-4px); box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15); }/* ==== ======================================== Hero Section Enhancements ============================================ */ .hero-section { position: relative; min-height: 100vh; display: flex; align-items: center; justify-content: center; } .hero-image { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; } .hero-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(135deg, rgba(0,0,0,0.4) 0%, rgba(0,0,0,0.3) 50%, rgba(0,0,0,0.5) 100%); } .hero-content { position: relative; z-index: 10; text-align: center; color: white; } .hero-title { font-size: 3.5rem; font-weight: 800; line-height: 1.1; margin-bottom: 1.5rem; text-shadow: 0 4px 20px rgba(0,0,0,0.5); } .hero-subtitle { font-size: 1.25rem; line-height: 1.6; margin-bottom: 2.5rem; text-shadow: 0 2px 10px rgba(0,0,0,0.3); } .hero-buttons { display: flex; flex-direction: column; gap: 1rem; align-items: center; margin-bottom: 3rem; } .hero-stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem; max-width: 600px; margin: 0 auto; } /* Mobile Hero Optimizations */ @media (max-width: 768px) { .hero-title { font-size: 2.5rem; } .hero-subtitle { font-size: 1.1rem; } .hero-buttons { flex-direction: column; gap: 1rem; } .hero-stats { grid-template-columns: repeat(2, 1fr); gap: 1rem; } } @media (min-width: 768px) { .hero-title { font-size: 4rem; } .hero-subtitle { font-size: 1.5rem; } .hero-buttons { flex-direction: row; gap: 1.5rem; } .hero-stats { grid-template-columns: repeat(4, 1fr); gap: 2rem; max-width: 800px; } } @media (min-width: 1024px) { .hero-title { font-size: 5rem; } .hero-subtitle { font-size: 1.75rem; } } /* Parallax Effect for Hero Image */ .hero-parallax { transform: translateZ(0); will-change: transform; } /* Enhanced Backdrop Blur Support */ @supports (backdrop-filter: blur(10px)) { .hero-glass { backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); } } /* Improved Text Shadows for Better Readability */ .hero-text-shadow { text-shadow: 0 1px 3px rgba(0,0,0,0.3), 0 4px 8px rgba(0,0,0,0.2), 0 8px 16px rgba(0,0,0,0.1); } /* Enhanced Button Styles for Hero */ .hero-btn-primary { background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-primary-dark) 100%); border: 2px solid rgba(255,255,255,0.2); backdrop-filter: blur(10px); box-shadow: 0 8px 32px rgba(32, 125, 136, 0.3), 0 4px 16px rgba(0,0,0,0.2); } .hero-btn-secondary { background: rgba(255,255,255,0.95); border: 2px solid var(--brand-secondary); backdrop-filter: blur(10px); box-shadow: 0 8px 32px rgba(229, 115, 147, 0.2), 0 4px 16px rgba(0,0,0,0.1); } .hero-btn-primary:hover, .hero-btn-secondary:hover { transform: translateY(-4px); box-shadow: 0 12px 40px rgba(32, 125, 136, 0.4), 0 8px 24px rgba(0,0,0,0.2); } /* ============================================ Hero Image Container Styles ============================================ */ .hero-image-container { position: relative; width: 90%; height: 60vh; min-height: 400px; margin: 0 auto; border-radius: 3rem; overflow: hidden; box-shadow: 0 25px 50px rgba(0, 0, 0, 0.15); } .hero-image-rounded { border-radius: 3rem; overflow: hidden; position: relative; } .hero-content-overlay { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; text-align: center; padding: 2rem; z-index: 10; } /* Mobile Optimizations for Hero Image */ @media (max-width: 768px) { .hero-image-container { width: 95%; height: 50vh; min-height: 350px; border-radius: 2rem; } .hero-image-rounded { border-radius: 2rem; } .hero-content-overlay { padding: 1.5rem; } } @media (max-width: 480px) { .hero-image-container { width: 98%; height: 45vh; min-height: 320px; border-radius: 1.5rem; } .hero-image-rounded { border-radius: 1.5rem; } .hero-content-overlay { padding: 1rem; } } /* Enhanced Shadow Effects */ .hero-shadow { box-shadow: 0 10px 25px rgba(32, 125, 136, 0.1), 0 20px 40px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.05); } .hero-shadow:hover { box-shadow: 0 15px 35px rgba(32, 125, 136, 0.15), 0 25px 50px rgba(0, 0, 0, 0.15), 0 1px 3px rgba(0, 0, 0, 0.05); } /* Stats Cards Enhancement */ .stats-card { background: white; border-radius: 1.5rem; padding: 1.5rem; box-shadow: 0 8px 25px rgba(0, 0, 0, 0.08); border: 1px solid rgba(32, 125, 136, 0.05); transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .stats-card:hover { transform: translateY(-8px); box-shadow: 0 15px 40px rgba(0, 0, 0, 0.12); border-color: rgba(32, 125, 136, 0.1); } /* Responsive Text Sizing for Hero */ @media (min-width: 1024px) { .hero-title-lg { font-size: 3.5rem; line-height: 1.1; } } @media (min-width: 1280px) { .hero-title-lg { font-size: 4rem; line-height: 1.1; } } /* Image Loading Animation */ .hero-image-loading { background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%); background-size: 200px 100%; animation: shimmer 1.5s infinite; } @keyframes shimmer { 0% { background-position: -200px 0; } 100% { background-position: calc(200px + 100%) 0; } }/* === ========================================= Pinterest Image Optimization ============================================ */ .hero-pinterest-image { object-fit: cover; object-position: center; width: 100%; height: 100%; transition: transform 0.3s ease; } .hero-pinterest-image:hover { transform: scale(1.02); } /* Enhanced Image Loading for Pinterest */ .pinterest-image-container { background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%); position: relative; } .pinterest-image-container::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: linear-gradient(90deg, transparent 25%, rgba(255,255,255,0.2) 50%, transparent 75%); animation: shimmer 2s infinite; z-index: 1; } .pinterest-image-container img { position: relative; z-index: 2; } /* Improved Overlay for Pinterest Image */ .pinterest-overlay { background: linear-gradient( 135deg, rgba(32, 125, 136, 0.1) 0%, rgba(0, 0, 0, 0.3) 30%, rgba(0, 0, 0, 0.4) 70%, rgba(229, 115, 147, 0.1) 100% ); } /* Better Text Contrast on Pinterest Image */ .pinterest-text-shadow { text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5), 0 4px 8px rgba(0, 0, 0, 0.3), 0 8px 16px rgba(0, 0, 0, 0.2); } /* Pinterest Image Responsive Adjustments */ @media (max-width: 768px) { .pinterest-image-container { border-radius: 2rem; } } @media (max-width: 480px) { .pinterest-image-container { border-radius: 1.5rem; } }/* ======== ==================================== Enhanced Button Styles with Reduced Radius ============================================ */ .btn-brand-primary { background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-primary-dark) 100%); color: white; border-radius: 0.75rem; /* Reduced from rounded-full */ border: none; font-family: var(--brand-font-primary); font-weight: 600; box-shadow: 0 4px 15px rgba(32, 125, 136, 0.3); transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; } .btn-brand-primary:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(32, 125, 136, 0.4); background: linear-gradient(135deg, var(--brand-primary-dark) 0%, var(--brand-primary-hover) 100%); } /* Mobile Button Adjustments */ @media (max-width: 768px) { .hero-buttons-mobile { display: flex; flex-direction: row; gap: 0.75rem; width: 100%; } .hero-buttons-mobile > * { flex: 1; text-align: center; padding: 0.875rem 1rem; font-size: 0.875rem; border-radius: 0.75rem; } } /* Enhanced Mobile Navigation */ .mobile-nav-enhanced { background: rgba(255, 255, 255, 0.98); backdrop-filter: blur(10px); border-top: 1px solid rgba(32, 125, 136, 0.1); } .mobile-nav-item-enhanced { transition: all 0.2s ease; border-radius: 0.5rem; margin: 0.125rem; } .mobile-nav-item-enhanced:hover { background-color: rgba(32, 125, 136, 0.05); transform: translateY(-1px); } .mobile-nav-item-enhanced.active { color: var(--brand-primary); background-color: rgba(32, 125, 136, 0.1); } /* Cart Badge Enhancement */ .cart-badge-enhanced { background: linear-gradient(135deg, var(--brand-secondary), var(--brand-secondary-dark)); box-shadow: 0 2px 8px rgba(229, 115, 147, 0.3); animation: pulse 2s infinite; } @keyframes pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.05); } } /* Icon Improvements */ .nav-icon-enhanced { transition: transform 0.2s ease; } .mobile-nav-item-enhanced:hover .nav-icon-enhanced { transform: scale(1.1); } /* Better Touch Targets */ @media (max-width: 768px) { .mobile-nav-item-enhanced { min-height: 60px; padding: 0.75rem 0.25rem; } }/* ======= ===================================== Two-Color System Enforcement ============================================ */ /* Override any remaining colors to use only pink, white, black */ .text-pink-600, .text-pink-500, .text-teal-600, .text-teal-500 { color: var(--brand-primary) !important; } .bg-pink-500, .bg-pink-600, .bg-teal-500, .bg-teal-600 { background-color: var(--brand-primary) !important; } .border-pink-500, .border-pink-600, .border-teal-500, .border-teal-600 { border-color: var(--brand-primary) !important; } /* Hover states using brand colors only */ .hover\:text-pink-600:hover { color: var(--brand-secondary) !important; } .hover\:text-teal-600:hover { color: var(--brand-primary) !important; } .hover\:bg-pink-50:hover { background-color: var(--brand-secondary-ultra-light) !important; } .hover\:bg-teal-50:hover { background-color: var(--brand-primary-ultra-light) !important; } /* Focus states */ .focus\:border-pink-500:focus { border-color: var(--brand-secondary) !important; } .focus\:border-teal-500:focus { border-color: var(--brand-primary) !important; } /* Ring colors */ .focus\:ring-pink-500:focus { --tw-ring-color: var(--brand-secondary) !important; } .focus\:ring-teal-500:focus { --tw-ring-color: var(--brand-primary) !important; } /* Gradient backgrounds using brand colors */ .bg-gradient-brand-primary { background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-primary-dark) 100%); } .bg-gradient-brand-secondary { background: linear-gradient(135deg, var(--brand-secondary) 0%, var(--brand-secondary-dark) 100%); } .bg-gradient-brand-mixed { background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-secondary) 100%); } /* Text gradients */ .text-gradient-brand { background: linear-gradient(135deg, var(--brand-primary), var(--brand-secondary)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } /* Shadow colors using brand colors */ .shadow-brand-primary { box-shadow: 0 4px 15px rgba(32, 125, 136, 0.2); } .shadow-brand-secondary { box-shadow: 0 4px 15px rgba(229, 115, 147, 0.2); } /* Two-color alternating pattern */ .brand-pattern-primary { color: var(--brand-primary); } .brand-pattern-secondary { color: var(--brand-secondary); } /* Ensure all interactive elements use brand colors */ a:not(.no-brand-color) { color: var(--brand-primary); } a:not(.no-brand-color):hover { color: var(--brand-primary-dark); } button:not(.no-brand-color):not(.btn-brand-primary):not(.btn-brand-secondary) { color: var(--brand-primary); } button:not(.no-brand-color):not(.btn-brand-primary):not(.btn-brand-secondary):hover { color: var(--brand-primary-dark); } /* Form elements */ input:focus, textarea:focus, select:focus { border-color: var(--brand-primary) !important; box-shadow: 0 0 0 3px rgba(32, 125, 136, 0.1) !important; } /* Override any remaining non-brand colors */ .text-blue-500, .text-blue-600, .text-green-500, .text-green-600, .text-purple-500, .text-purple-600, .text-indigo-500, .text-indigo-600, .text-yellow-400, .text-yellow-500, .text-red-500, .text-red-600 { color: var(--brand-primary) !important; } .bg-blue-100, .bg-green-100, .bg-purple-100, .bg-indigo-100, .bg-yellow-100, .bg-red-100 { background-color: var(--brand-primary-ultra-light) !important; } /* Ensure consistent brand color usage */ .brand-primary-color { color: var(--brand-primary); } .brand-secondary-color { color: var(--brand-secondary); } .brand-primary-bg { background-color: var(--brand-primary); } .brand-secondary-bg { background-color: var(--brand-secondary); }/* == ========================================== Soft Beauty App Style - Additional Styles ============================================ */ /* Global Soft Styling */ * { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } body { background-color: var(--brand-bg-primary, #FAF7F7); font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; } /* Soft Sections */ section { background-color: var(--brand-bg-primary, #FAF7F7); } /* Enhanced Card Styles */ .soft-card { background: var(--brand-bg-card, #FFFFFF); border-radius: var(--brand-radius-large, 20px); box-shadow: var(--brand-shadow-soft, 0 4px 20px rgba(0, 0, 0, 0.06)); border: none; padding: 24px; transition: all 0.3s ease; } .soft-card:hover { transform: translateY(-2px); box-shadow: var(--brand-shadow-medium, 0 8px 30px rgba(0, 0, 0, 0.08)); } /* Soft Button Variations */ .btn-soft-secondary { background: var(--brand-bg-card, #FFFFFF); color: var(--brand-primary, #FF9B9B); border: 2px solid var(--brand-primary, #FF9B9B); border-radius: var(--brand-radius-large, 20px); padding: 14px 28px; font-weight: 500; transition: all 0.3s ease; box-shadow: var(--brand-shadow-soft, 0 4px 20px rgba(0, 0, 0, 0.06)); } .btn-soft-secondary:hover { background: var(--brand-primary, #FF9B9B); color: white; transform: translateY(-1px); box-shadow: var(--brand-shadow-medium, 0 8px 30px rgba(0, 0, 0, 0.08)); } /* Soft Navigation */ .soft-nav { background: var(--brand-bg-card, #FFFFFF); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); box-shadow: var(--brand-shadow-soft, 0 4px 20px rgba(0, 0, 0, 0.06)); } /* Soft Bottom Navigation */ .soft-bottom-nav { background: var(--brand-bg-card, #FFFFFF); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.06); border-top: 1px solid rgba(0, 0, 0, 0.05); } .soft-nav-item { transition: all 0.3s ease; border-radius: var(--brand-radius-medium, 16px); padding: 12px; } .soft-nav-item.active { background-color: rgba(255, 155, 155, 0.1); color: var(--brand-primary, #FF9B9B); } .soft-nav-item:hover:not(.active) { background-color: var(--brand-gray-light, #F5F5F5); } /* Soft Icon Containers */ .soft-icon-container { width: 32px; height: 32px; border-radius: 50%; display: flex; align-items: center; justify-content: center; transition: all 0.3s ease; } .soft-icon-container.active { background-color: var(--brand-primary, #FF9B9B); color: white; } .soft-icon-container:not(.active) { background-color: var(--brand-gray-light, #F5F5F5); color: var(--brand-text-secondary, #666666); } /* Soft Text Styles */ .soft-title { color: var(--brand-text-primary, #2C2C2C); font-weight: 600; line-height: 1.3; } .soft-subtitle { color: var(--brand-text-secondary, #666666); font-weight: 400; line-height: 1.5; } .soft-accent { color: var(--brand-primary, #FF9B9B); font-weight: 500; } /* Soft Spacing */ .soft-section { padding: 32px 16px; } @media (min-width: 768px) { .soft-section { padding: 48px 24px; } } /* Soft Animations */ .soft-fade-in { animation: softFadeIn 0.6s ease-out; } @keyframes softFadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } /* Soft Hover Effects */ .soft-hover { transition: all 0.3s ease; } .soft-hover:hover { transform: translateY(-2px); box-shadow: var(--brand-shadow-medium, 0 8px 30px rgba(0, 0, 0, 0.08)); } /* Mobile Optimizations */ @media (max-width: 768px) { .soft-card { padding: 20px; border-radius: var(--brand-radius-medium, 16px); } .btn-brand-primary { padding: 14px 24px; font-size: 15px; } .soft-section { padding: 24px 16px; } }/* === ========================================= Enhanced Wishlist Heart Button ============================================ */ .heart-btn svg { transition: all 0.3s ease; } .heart-btn:hover svg { stroke: var(--brand-primary, #E57393); transform: scale(1.1); } .heart-btn.active svg, .heart-btn.favorited svg { fill: var(--brand-primary, #E57393); stroke: var(--brand-primary, #E57393); transform: scale(1.1); } .heart-btn.active, .heart-btn.favorited { background: rgba(229, 115, 147, 0.1); } /* ============================================ Professional Price Styling ============================================ */ .price .new { color: var(--brand-text-primary, #1F2937); font-weight: 700; font-size: 1.25rem; } .price .old { color: var(--brand-text-light, #9CA3AF); text-decoration: line-through; font-size: 0.875rem; } /* ============================================ Enhanced Button Styles ============================================ */ .btn-brand-primary { background: var(--brand-primary, #E57393); color: white; border: none; border-radius: var(--brand-radius-large, 20px); padding: 16px 32px; font-weight: 600; font-size: 16px; transition: all 0.3s ease; box-shadow: 0 4px 15px rgba(229, 115, 147, 0.25); } .btn-brand-primary:hover { background: var(--brand-primary-dark, #D1537A); transform: translateY(-2px); box-shadow: 0 8px 25px rgba(229, 115, 147, 0.35); } .btn-brand-secondary { background: white; color: var(--brand-primary, #E57393); border: 2px solid var(--brand-primary, #E57393); border-radius: var(--brand-radius-large, 20px); padding: 14px 30px; font-weight: 600; transition: all 0.3s ease; } .btn-brand-secondary:hover { background: var(--brand-primary, #E57393); color: white; transform: translateY(-1px); } /* ============================================ Accent Gold Elements ============================================ */ .accent-gold { color: var(--brand-accent, #D4AF37); } .bg-accent-gold { background-color: var(--brand-accent, #D4AF37); } .border-accent-gold { border-color: var(--brand-accent, #D4AF37); } /* ============================================ Professional Text Contrast ============================================ */ .text-primary-contrast { color: var(--brand-text-primary, #1F2937); } .text-secondary-contrast { color: var(--brand-text-secondary, #4B5563); } .text-light-contrast { color: var(--brand-text-light, #9CA3AF); }