// ========================================================================== // Card Components // Professional Resume Builder - Card Styles // ========================================================================== // Base card enhancements .card { border: none; border-radius: var(--border-radius-lg); box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); transition: all 0.3s ease-in-out; background: var(--color-white); overflow: hidden; &:hover { transform: translateY(-2px); box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); } } // Card header enhancements .card-header { background-color: transparent; border-bottom: 1px solid var(--color-gray-100); font-weight: 600; color: var(--color-dark); padding: var(--spacing-lg); &.bg-light { background: linear-gradient(135deg, var(--color-gray-50) 0%, var(--color-white) 100%) !important; } &.bg-primary { background: var(--brand-gradient) !important; color: var(--color-white); border-bottom-color: rgba(255, 255, 255, 0.2); } &.bg-success { background: var(--brand-gradient-success) !important; color: var(--color-white); border-bottom-color: rgba(255, 255, 255, 0.2); } } // Card body enhancements .card-body { padding: var(--spacing-lg); } // Card footer enhancements .card-footer { background-color: var(--color-gray-50); border-top: 1px solid var(--color-gray-100); padding: var(--spacing-lg); } // Feature Cards .feature-card { background: var(--color-white); border-radius: var(--border-radius-lg); padding: var(--spacing-xl); box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); transition: all 0.3s ease-in-out; text-align: center; height: 100%; &: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); } .feature-icon { width: 4rem; height: 4rem; border-radius: var(--border-radius-full); display: flex; align-items: center; justify-content: center; margin: 0 auto var(--spacing-lg); background: var(--brand-gradient); color: var(--color-white); font-size: 1.5rem; box-shadow: 0 8px 16px rgba(102, 126, 234, 0.3); &.icon-success { background: var(--brand-gradient-success); box-shadow: 0 8px 16px rgba(34, 197, 94, 0.3); } &.icon-warning { background: var(--brand-gradient-warning); box-shadow: 0 8px 16px rgba(251, 191, 36, 0.3); } &.icon-info { background: var(--brand-gradient-info); box-shadow: 0 8px 16px rgba(59, 130, 246, 0.3); } } .feature-title { font-size: 1.25rem; font-weight: 600; color: var(--color-dark); margin-bottom: var(--spacing-sm); } .feature-description { color: var(--color-gray-600); line-height: 1.6; margin-bottom: 0; } .feature-link { color: var(--brand-primary); font-weight: 500; text-decoration: none; margin-top: var(--spacing-md); display: inline-flex; align-items: center; transition: color 0.2s ease; &:hover { color: var(--brand-primary-dark); text-decoration: underline; } i { margin-left: 0.25rem; transition: transform 0.2s ease; } &:hover i { transform: translateX(2px); } } } // Stats Cards .stats-card { background: var(--color-white); border-radius: var(--border-radius-lg); padding: var(--spacing-lg); box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); text-align: center; transition: all 0.3s ease; height: 100%; &:hover { transform: translateY(-2px); box-shadow: 0 12px 20px -5px rgba(0, 0, 0, 0.15); } .stats-number { font-size: 2.5rem; font-weight: 800; color: var(--brand-primary); margin-bottom: 0.5rem; line-height: 1; &.text-success { color: var(--brand-success); } &.text-warning { color: var(--brand-warning); } &.text-danger { color: var(--brand-danger); } } .stats-label { color: var(--color-gray-600); font-weight: 500; text-transform: uppercase; font-size: 0.875rem; letter-spacing: 0.05em; margin-bottom: 0; } .stats-change { margin-top: var(--spacing-sm); font-size: 0.875rem; font-weight: 500; &.positive { color: var(--brand-success); } &.negative { color: var(--brand-danger); } i { margin-right: 0.25rem; } } } // Profile Cards .profile-card { background: var(--color-white); border-radius: var(--border-radius-lg); padding: var(--spacing-xl); box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); text-align: center; transition: all 0.3s ease; &:hover { transform: translateY(-2px); box-shadow: 0 12px 20px -5px rgba(0, 0, 0, 0.15); } .profile-avatar { width: 5rem; height: 5rem; border-radius: 50%; margin: 0 auto var(--spacing-md); border: 4px solid var(--color-white); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); overflow: hidden; img { width: 100%; height: 100%; object-fit: cover; } .avatar-initials { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; background: var(--brand-gradient); color: var(--color-white); font-weight: 600; font-size: 1.5rem; } } .profile-name { font-size: 1.25rem; font-weight: 600; color: var(--color-dark); margin-bottom: 0.25rem; } .profile-role { color: var(--color-gray-600); margin-bottom: var(--spacing-md); } .profile-bio { color: var(--color-gray-600); font-size: 0.9rem; line-height: 1.5; margin-bottom: var(--spacing-lg); } .profile-actions { display: flex; gap: 0.5rem; justify-content: center; } } // Testimonial Cards .testimonial-card { background: var(--color-white); border-radius: var(--border-radius-lg); padding: var(--spacing-xl); box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); position: relative; &::before { content: '"'; position: absolute; top: -0.5rem; left: var(--spacing-lg); font-size: 4rem; color: var(--brand-primary); font-weight: 700; line-height: 1; opacity: 0.3; } .testimonial-content { font-style: italic; color: var(--color-gray-700); margin-bottom: var(--spacing-lg); font-size: 1.1rem; line-height: 1.6; } .testimonial-author { display: flex; align-items: center; gap: var(--spacing-md); .author-avatar { width: 3rem; height: 3rem; border-radius: 50%; overflow: hidden; img { width: 100%; height: 100%; object-fit: cover; } } .author-info { .author-name { font-weight: 600; color: var(--color-dark); margin-bottom: 0.125rem; } .author-role { font-size: 0.875rem; color: var(--color-gray-600); margin-bottom: 0; } } } .testimonial-rating { display: flex; gap: 0.125rem; margin-bottom: var(--spacing-md); i { color: var(--brand-warning); font-size: 0.875rem; } } } // Pricing Cards .pricing-card { background: var(--color-white); border-radius: var(--border-radius-lg); padding: var(--spacing-xl); box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); text-align: center; position: relative; transition: all 0.3s ease; height: 100%; &: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); } &.featured { border: 2px solid var(--brand-primary); transform: scale(1.05); .pricing-badge { position: absolute; top: -0.5rem; left: 50%; transform: translateX(-50%); background: var(--brand-gradient); color: var(--color-white); padding: 0.375rem 1rem; border-radius: var(--border-radius-full); font-size: 0.75rem; font-weight: 600; text-transform: uppercase; } } .pricing-title { font-size: 1.5rem; font-weight: 600; color: var(--color-dark); margin-bottom: var(--spacing-md); } .pricing-price { margin-bottom: var(--spacing-lg); .price-currency { font-size: 1.25rem; color: var(--color-gray-600); vertical-align: top; } .price-amount { font-size: 3rem; font-weight: 800; color: var(--brand-primary); line-height: 1; } .price-period { color: var(--color-gray-600); font-size: 1rem; } } .pricing-features { list-style: none; padding: 0; margin: 0 0 var(--spacing-xl); li { padding: 0.5rem 0; color: var(--color-gray-600); display: flex; align-items: center; i { color: var(--brand-success); margin-right: var(--spacing-sm); font-size: 0.875rem; } } } } // Card variations .card-elevated { box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); } .card-flat { box-shadow: none; border: 1px solid var(--color-gray-100); } .card-bordered { border: 2px solid var(--color-gray-100); &.border-primary { border-color: var(--brand-primary); } &.border-success { border-color: var(--brand-success); } &.border-warning { border-color: var(--brand-warning); } &.border-danger { border-color: var(--brand-danger); } } // Responsive adjustments @include media-breakpoint-down(md) { .feature-card { padding: var(--spacing-lg); text-align: left; .feature-icon { margin: 0 0 var(--spacing-md) 0; width: 3rem; height: 3rem; font-size: 1.25rem; } } .stats-card { .stats-number { font-size: 2rem; } } .profile-card { padding: var(--spacing-lg); .profile-avatar { width: 4rem; height: 4rem; } } .pricing-card { padding: var(--spacing-lg); &.featured { transform: none; margin-bottom: var(--spacing-lg); } .pricing-price { .price-amount { font-size: 2.5rem; } } } .testimonial-card { padding: var(--spacing-lg); .testimonial-content { font-size: 1rem; } } } // Card animations @keyframes cardFadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } .card-animate { animation: cardFadeIn 0.6s ease-out; &:nth-child(2) { animation-delay: 0.1s; } &:nth-child(3) { animation-delay: 0.2s; } &:nth-child(4) { animation-delay: 0.3s; } }