/** * Global E-commerce Theme * Professional, Clean, International Style * Inspired by: Amazon, Shopify, Zalando */ :root { /* Primary Colors - Professional Blue/Gray */ --primary: #0066C0; --primary-dark: #004C99; --primary-light: #3385D6; /* Secondary Colors */ --secondary: #FF9900; --secondary-dark: #E68A00; /* Neutral Colors */ --dark: #0F1111; --gray-900: #232F3E; --gray-800: #37475A; --gray-700: #565959; --gray-600: #6F7780; --gray-500: #8B9196; --gray-400: #AAB7B8; --gray-300: #D5DBDB; --gray-200: #EAEDED; --gray-100: #F3F3F3; --white: #FFFFFF; /* Status Colors */ --success: #067D62; --success-light: #E6F4F1; --warning: #F08804; --warning-light: #FEF5E7; --error: #C40000; --error-light: #FDECEA; --info: #0066C0; --info-light: #E7F3FF; /* Shadows */ --shadow-sm: 0 1px 2px rgba(15, 17, 17, 0.15); --shadow-md: 0 2px 5px rgba(15, 17, 17, 0.15); --shadow-lg: 0 4px 8px rgba(15, 17, 17, 0.15); --shadow-xl: 0 8px 16px rgba(15, 17, 17, 0.15); /* Border Radius */ --radius-sm: 4px; --radius-md: 8px; --radius-lg: 12px; /* Spacing */ --space-xs: 4px; --space-sm: 8px; --space-md: 16px; --space-lg: 24px; --space-xl: 32px; /* Typography */ --font-primary: 'Amazon Ember', Arial, sans-serif; --font-size-xs: 12px; --font-size-sm: 13px; --font-size-base: 14px; --font-size-md: 16px; --font-size-lg: 18px; --font-size-xl: 24px; --font-size-2xl: 28px; } /* Global Resets */ * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: var(--font-primary); font-size: var(--font-size-base); color: var(--dark); background: var(--white); line-height: 1.5; } /* Buttons - Amazon Style */ .btn-primary { background: var(--secondary); color: var(--dark); border: 1px solid var(--secondary-dark); padding: 10px 24px; border-radius: var(--radius-md); font-size: var(--font-size-sm); font-weight: 600; cursor: pointer; transition: all 0.15s ease; box-shadow: 0 2px 5px rgba(213, 217, 217, 0.5); } .btn-primary:hover { background: var(--secondary-dark); border-color: #C77700; box-shadow: 0 2px 5px rgba(213, 217, 217, 0.8); } .btn-secondary { background: var(--white); color: var(--dark); border: 1px solid var(--gray-300); padding: 10px 24px; border-radius: var(--radius-md); font-size: var(--font-size-sm); font-weight: 600; cursor: pointer; transition: all 0.15s ease; } .btn-secondary:hover { background: var(--gray-100); border-color: var(--gray-400); } .btn-buy-now { background: var(--primary); color: var(--white); border: 1px solid var(--primary-dark); padding: 12px 32px; border-radius: var(--radius-md); font-size: var(--font-size-md); font-weight: 600; cursor: pointer; transition: all 0.15s ease; } .btn-buy-now:hover { background: var(--primary-dark); } /* Cards - Clean Style */ .card { background: var(--white); border: 1px solid var(--gray-300); border-radius: var(--radius-md); padding: var(--space-lg); box-shadow: var(--shadow-sm); transition: all 0.2s ease; } .card:hover { box-shadow: var(--shadow-md); border-color: var(--gray-400); } /* Product Card */ .product-card { background: var(--white); border: 1px solid var(--gray-200); border-radius: var(--radius-sm); padding: var(--space-md); transition: all 0.2s ease; cursor: pointer; } .product-card:hover { box-shadow: var(--shadow-lg); transform: translateY(-2px); } .product-image { width: 100%; aspect-ratio: 1; object-fit: contain; background: var(--white); border-radius: var(--radius-sm); } .product-title { font-size: var(--font-size-base); color: #E57393 !important; font-weight: 400; margin: var(--space-sm) 0; line-height: 1.4; } .product-price { font-size: var(--font-size-xl); color: var(--dark); font-weight: 400; } .product-price-currency { font-size: var(--font-size-sm); vertical-align: super; } /* Rating Stars */ .rating { display: flex; align-items: center; gap: var(--space-xs); margin: var(--space-sm) 0; } .stars { color: var(--secondary); font-size: var(--font-size-sm); } .rating-count { color: var(--primary); font-size: var(--font-size-sm); cursor: pointer; } .rating-count:hover { color: var(--primary-dark); text-decoration: underline; } /* Badges */ .badge { display: inline-block; padding: 4px 8px; border-radius: var(--radius-sm); font-size: var(--font-size-xs); font-weight: 600; text-transform: uppercase; } .badge-success { background: var(--success-light); color: var(--success); } .badge-warning { background: var(--warning-light); color: var(--warning); } .badge-error { background: var(--error-light); color: var(--error); } .badge-prime { background: var(--primary); color: var(--white); } /* Navigation */ .navbar { background: var(--gray-900); color: var(--white); padding: var(--space-sm) 0; box-shadow: var(--shadow-md); } .navbar-link { color: var(--white); text-decoration: none; padding: var(--space-sm) var(--space-md); border-radius: var(--radius-sm); transition: all 0.15s ease; font-size: var(--font-size-sm); font-weight: 600; } .navbar-link:hover { background: rgba(255, 255, 255, 0.1); } /* Search Bar */ .search-container { display: flex; max-width: 900px; margin: 0 auto; } .search-input { flex: 1; padding: 12px 16px; border: none; border-radius: var(--radius-sm) 0 0 var(--radius-sm); font-size: var(--font-size-base); outline: none; } .search-input:focus { box-shadow: 0 0 0 3px var(--secondary); } .search-btn { background: var(--secondary); border: none; padding: 0 24px; border-radius: 0 var(--radius-sm) var(--radius-sm) 0; cursor: pointer; transition: all 0.15s ease; } .search-btn:hover { background: var(--secondary-dark); } /* Breadcrumb */ .breadcrumb { display: flex; align-items: center; gap: var(--space-sm); padding: var(--space-md) 0; font-size: var(--font-size-xs); color: var(--gray-700); } .breadcrumb-link { color: var(--primary); text-decoration: none; } .breadcrumb-link:hover { color: var(--primary-dark); text-decoration: underline; } /* Quantity Selector */ .quantity-selector { display: flex; align-items: center; border: 1px solid var(--gray-300); border-radius: var(--radius-md); overflow: hidden; width: fit-content; } .qty-btn { background: var(--gray-100); border: none; padding: 8px 16px; cursor: pointer; font-size: var(--font-size-md); color: var(--dark); transition: all 0.15s ease; } .qty-btn:hover { background: var(--gray-200); } .qty-input { border: none; border-left: 1px solid var(--gray-300); border-right: 1px solid var(--gray-300); padding: 8px 16px; width: 60px; text-align: center; font-size: var(--font-size-base); font-weight: 600; } /* Stock Indicator */ .stock-badge { display: inline-flex; align-items: center; gap: var(--space-xs); padding: 6px 12px; border-radius: var(--radius-sm); font-size: var(--font-size-sm); font-weight: 600; } .stock-in { background: var(--success-light); color: var(--success); } .stock-low { background: var(--warning-light); color: var(--warning); } .stock-out { background: var(--error-light); color: var(--error); } /* Shipping Info */ .shipping-info { background: var(--info-light); border: 1px solid #B3D7FF; border-radius: var(--radius-md); padding: var(--space-md); margin: var(--space-md) 0; } .shipping-item { display: flex; align-items: center; gap: var(--space-sm); padding: var(--space-sm) 0; font-size: var(--font-size-sm); color: var(--dark); } .shipping-icon { color: var(--primary); font-size: var(--font-size-md); } /* Reviews Section */ .reviews-container { background: var(--white); border: 1px solid var(--gray-300); border-radius: var(--radius-md); padding: var(--space-lg); margin: var(--space-xl) 0; } .review-item { border-bottom: 1px solid var(--gray-200); padding: var(--space-lg) 0; } .review-item:last-child { border-bottom: none; } .reviewer-name { font-weight: 600; color: var(--dark); font-size: var(--font-size-sm); } .review-date { color: var(--gray-600); font-size: var(--font-size-xs); } .review-text { color: var(--dark); line-height: 1.6; margin-top: var(--space-sm); } /* Toast Notification */ .toast { position: fixed; top: 20px; right: 20px; background: var(--white); border: 1px solid var(--gray-300); border-radius: var(--radius-md); padding: var(--space-md); box-shadow: var(--shadow-xl); z-index: 9999; animation: slideIn 0.3s ease; } .toast-success { border-left: 4px solid var(--success); } .toast-error { border-left: 4px solid var(--error); } @keyframes slideIn { from { transform: translateX(400px); opacity: 0; } to { transform: translateX(0); opacity: 1; } } /* Modal */ .modal-overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.5); z-index: 9998; } .modal-content { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); background: var(--white); border-radius: var(--radius-lg); padding: var(--space-xl); max-width: 600px; width: 90%; max-height: 90vh; overflow-y: auto; box-shadow: var(--shadow-xl); z-index: 9999; } /* Form Elements */ .form-group { margin-bottom: var(--space-md); } .form-label { display: block; font-weight: 600; margin-bottom: var(--space-xs); font-size: var(--font-size-sm); color: var(--dark); } .form-input, .form-textarea, .form-select { width: 100%; padding: 10px 12px; border: 1px solid var(--gray-300); border-radius: var(--radius-sm); font-size: var(--font-size-base); font-family: inherit; transition: all 0.15s ease; } .form-input:focus, .form-textarea:focus, .form-select:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px rgba(0, 102, 192, 0.1); } /* Utility Classes */ .text-primary { color: var(--primary); } .text-secondary { color: var(--secondary); } .text-success { color: var(--success); } .text-warning { color: var(--warning); } .text-error { color: var(--error); } .text-muted { color: var(--gray-600); } .bg-primary { background: var(--primary); } .bg-secondary { background: var(--secondary); } .bg-light { background: var(--gray-100); } .bg-white { background: var(--white); } .font-bold { font-weight: 700; } .font-semibold { font-weight: 600; } .font-normal { font-weight: 400; } .text-xs { font-size: var(--font-size-xs); } .text-sm { font-size: var(--font-size-sm); } .text-base { font-size: var(--font-size-base); } .text-lg { font-size: var(--font-size-lg); } .text-xl { font-size: var(--font-size-xl); } /* Responsive */ @media (max-width: 768px) { :root { --font-size-base: 13px; --space-md: 12px; --space-lg: 16px; } .product-card { padding: var(--space-sm); } .modal-content { width: 95%; padding: var(--space-lg); } }