/* ================================================ MODERN DESIGN SYSTEM - Sky Art Shop Inspired by leading ecommerce platforms ================================================ */ :root { /* Primary Color Palette */ --primary: #FF6B6B; --primary-dark: #EE5A52; --primary-light: #FF9999; --secondary: #4ECDC4; --accent: #FFE66D; /* Neutral Colors */ --text-primary: #2D3436; --text-secondary: #636E72; --text-muted: #B2BEC3; --bg-primary: #FFFFFF; --bg-secondary: #F8F9FA; --bg-tertiary: #E9ECEF; --border-color: #E1E8ED; /* Status Colors */ --success: #00B894; --warning: #FDCB6E; --error: #D63031; --info: #74B9FF; /* Spacing System (8px base) */ --space-xs: 0.5rem; /* 8px */ --space-sm: 1rem; /* 16px */ --space-md: 1.5rem; /* 24px */ --space-lg: 2rem; /* 32px */ --space-xl: 3rem; /* 48px */ --space-2xl: 4rem; /* 64px */ --space-3xl: 6rem; /* 96px */ /* Typography */ --font-primary: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; --font-display: 'Poppins', sans-serif; --font-size-xs: 0.75rem; /* 12px */ --font-size-sm: 0.875rem; /* 14px */ --font-size-base: 1rem; /* 16px */ --font-size-lg: 1.125rem; /* 18px */ --font-size-xl: 1.25rem; /* 20px */ --font-size-2xl: 1.5rem; /* 24px */ --font-size-3xl: 2rem; /* 32px */ --font-size-4xl: 2.5rem; /* 40px */ /* Shadows */ --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05); --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.07); --shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.1); --shadow-xl: 0 20px 25px rgba(0, 0, 0, 0.15); --shadow-2xl: 0 25px 50px rgba(0, 0, 0, 0.25); /* Border Radius */ --radius-sm: 0.375rem; /* 6px */ --radius-md: 0.5rem; /* 8px */ --radius-lg: 0.75rem; /* 12px */ --radius-xl: 1rem; /* 16px */ --radius-2xl: 1.5rem; /* 24px */ --radius-full: 9999px; /* Transitions */ --transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1); --transition-base: 250ms cubic-bezier(0.4, 0, 0.2, 1); --transition-slow: 350ms cubic-bezier(0.4, 0, 0.2, 1); /* Z-index layers */ --z-dropdown: 1000; --z-sticky: 1020; --z-fixed: 1030; --z-modal-backdrop: 1040; --z-modal: 1050; --z-popover: 1060; --z-tooltip: 1070; } /* ================================================ RESET & BASE STYLES ================================================ */ * { margin: 0; padding: 0; box-sizing: border-box; } html { font-size: 16px; scroll-behavior: smooth; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } body { font-family: var(--font-primary); color: var(--text-primary); background-color: var(--bg-primary); line-height: 1.6; overflow-x: hidden; } /* ================================================ TYPOGRAPHY ================================================ */ h1, h2, h3, h4, h5, h6 { font-family: var(--font-display); font-weight: 600; line-height: 1.2; color: var(--text-primary); } h1 { font-size: var(--font-size-4xl); margin-bottom: var(--space-lg); } h2 { font-size: var(--font-size-3xl); margin-bottom: var(--space-md); } h3 { font-size: var(--font-size-2xl); margin-bottom: var(--space-md); } h4 { font-size: var(--font-size-xl); margin-bottom: var(--space-sm); } h5 { font-size: var(--font-size-lg); margin-bottom: var(--space-sm); } h6 { font-size: var(--font-size-base); margin-bottom: var(--space-sm); } p { margin-bottom: var(--space-sm); color: var(--text-secondary); } a { color: var(--primary); text-decoration: none; transition: color var(--transition-fast); } a:hover { color: var(--primary-dark); } /* ================================================ CONTAINER & LAYOUT ================================================ */ .container { width: 100%; max-width: 1280px; margin: 0 auto; padding: 0 var(--space-lg); } .container-fluid { width: 100%; padding: 0 var(--space-lg); } .section { padding: var(--space-3xl) 0; } .section-sm { padding: var(--space-2xl) 0; } /* Grid System */ .grid { display: grid; gap: var(--space-lg); } .grid-cols-2 { grid-template-columns: repeat(2, 1fr); } .grid-cols-3 { grid-template-columns: repeat(3, 1fr); } .grid-cols-4 { grid-template-columns: repeat(4, 1fr); } .grid-cols-5 { grid-template-columns: repeat(5, 1fr); } /* Flexbox Utilities */ .flex { display: flex; } .flex-col { flex-direction: column; } .flex-wrap { flex-wrap: wrap; } .items-center { align-items: center; } .justify-center { justify-content: center; } .justify-between { justify-content: space-between; } .gap-sm { gap: var(--space-sm); } .gap-md { gap: var(--space-md); } .gap-lg { gap: var(--space-lg); } /* ================================================ BUTTONS ================================================ */ .btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-xs); padding: var(--space-sm) var(--space-lg); font-family: var(--font-primary); font-size: var(--font-size-base); font-weight: 500; border: none; border-radius: var(--radius-md); cursor: pointer; transition: all var(--transition-base); text-decoration: none; white-space: nowrap; } .btn-primary { background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%); color: white; box-shadow: var(--shadow-md); } .btn-primary:hover { transform: translateY(-2px); box-shadow: var(--shadow-lg); color: white; } .btn-secondary { background: var(--secondary); color: white; } .btn-outline { background: transparent; border: 2px solid var(--primary); color: var(--primary); } .btn-outline:hover { background: var(--primary); color: white; } .btn-ghost { background: transparent; color: var(--text-primary); } .btn-ghost:hover { background: var(--bg-secondary); } .btn-sm { padding: var(--space-xs) var(--space-md); font-size: var(--font-size-sm); } .btn-lg { padding: var(--space-md) var(--space-xl); font-size: var(--font-size-lg); } .btn-icon { padding: var(--space-sm); border-radius: var(--radius-full); } /* ================================================ CARDS ================================================ */ .card { background: var(--bg-primary); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); overflow: hidden; transition: all var(--transition-base); } .card:hover { box-shadow: var(--shadow-lg); transform: translateY(-4px); } .card-body { padding: var(--space-lg); } /* ================================================ BADGES ================================================ */ .badge { display: inline-flex; align-items: center; padding: var(--space-xs) var(--space-sm); font-size: var(--font-size-xs); font-weight: 600; border-radius: var(--radius-full); text-transform: uppercase; letter-spacing: 0.5px; } .badge-primary { background: var(--primary-light); color: var(--primary-dark); } .badge-success { background: #C6F6D5; color: #22543D; } .badge-warning { background: #FEF3C7; color: #92400E; } .badge-error { background: #FED7D7; color: #742A2A; } .badge-info { background: #DBEAFE; color: #1E3A8A; } /* ================================================ FORMS ================================================ */ .form-group { margin-bottom: var(--space-md); } .form-label { display: block; margin-bottom: var(--space-xs); font-size: var(--font-size-sm); font-weight: 500; color: var(--text-primary); } .form-control { width: 100%; padding: var(--space-sm) var(--space-md); font-family: var(--font-primary); font-size: var(--font-size-base); color: var(--text-primary); background: var(--bg-primary); border: 2px solid var(--border-color); border-radius: var(--radius-md); transition: all var(--transition-fast); } .form-control:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px rgba(255, 107, 107, 0.1); } .form-select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23636E72' d='M6 9L1 4h10z'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right var(--space-sm) center; padding-right: var(--space-xl); } /* ================================================ FOOTER ================================================ */ .footer { background: var(--text-primary); color: white; padding: var(--space-3xl) 0 var(--space-lg); margin-top: var(--space-3xl); } .footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: var(--space-xl); margin-bottom: var(--space-2xl); } .footer-col { display: flex; flex-direction: column; gap: var(--space-md); } .footer-title { font-size: var(--font-size-2xl); font-weight: 700; margin-bottom: var(--space-sm); } .footer-text { color: var(--text-muted); line-height: 1.6; } .footer-heading { font-size: var(--font-size-base); font-weight: 600; margin-bottom: var(--space-sm); } .footer-links { list-style: none; display: flex; flex-direction: column; gap: var(--space-xs); } .footer-links a { color: rgba(255, 255, 255, 0.7); transition: color var(--transition-fast); } .footer-links a:hover { color: white; } .footer-bottom { padding-top: var(--space-lg); border-top: 1px solid rgba(255, 255, 255, 0.1); text-align: center; color: rgba(255, 255, 255, 0.6); } .social-links { display: flex; gap: var(--space-sm); } .social-link { width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; background: rgba(255, 255, 255, 0.1); border-radius: var(--radius-full); color: white; transition: all var(--transition-fast); } .social-link:hover { background: var(--primary); transform: translateY(-2px); } /* ================================================ RESPONSIVE ================================================ */ @media (max-width: 1024px) { .grid-cols-5 { grid-template-columns: repeat(3, 1fr); } .grid-cols-4 { grid-template-columns: repeat(3, 1fr); } .footer-grid { grid-template-columns: repeat(2, 1fr); } } @media (max-width: 768px) { html { font-size: 14px; } .container { padding: 0 var(--space-md); } .grid-cols-5, .grid-cols-4, .grid-cols-3 { grid-template-columns: repeat(2, 1fr); } .section { padding: var(--space-2xl) 0; } h1 { font-size: var(--font-size-3xl); } h2 { font-size: var(--font-size-2xl); } .footer-grid { grid-template-columns: 1fr; } } @media (max-width: 480px) { .grid-cols-5, .grid-cols-4, .grid-cols-3, .grid-cols-2 { grid-template-columns: 1fr; } .btn { width: 100%; } }