.header { text-align: center; margin-bottom: 4rem; } .badge { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.5rem 1.25rem; background: linear-gradient(135deg, rgba(236, 72, 153, 0.1), rgba(59, 130, 246, 0.1)); border: 1px solid rgba(236, 72, 153, 0.2); border-radius: 50px; font-size: 0.875rem; font-weight: 600; color: var(--primary); margin-bottom: 1rem; } .title { font-size: clamp(2rem, 5vw, 3rem); font-weight: 800; margin-bottom: 1rem; line-height: 1.2; } .subtitle { font-size: 1.125rem; color: var(--text-secondary); max-width: 600px; margin: 0 auto; } .stepsContainer { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 2rem; margin-bottom: 4rem; position: relative; } @media (min-width: 768px) { .stepsContainer { grid-template-columns: repeat(2, 1fr); } } @media (min-width: 1024px) { .stepsContainer { grid-template-columns: repeat(4, 1fr); } } .step { position: relative; opacity: 0; transform: translateY(30px); transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1); } .step.visible { opacity: 1; transform: translateY(0); } .stepNumber { position: absolute; top: -10px; right: 20px; width: 50px; height: 50px; display: flex; align-items: center; justify-content: center; font-size: 1.25rem; font-weight: 800; border-radius: 12px; z-index: 2; } .stepContent { background: var(--card-bg); border: 1px solid var(--border-color); border-radius: 20px; padding: 2rem 1.5rem; height: 100%; transition: all 0.3s ease; position: relative; overflow: hidden; } .stepContent::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: linear-gradient(135deg, rgba(236, 72, 153, 0.05), rgba(59, 130, 246, 0.05)); opacity: 0; transition: opacity 0.3s ease; } .stepContent:hover { transform: translateY(-5px); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1); border-color: var(--primary); } .stepContent:hover::before { opacity: 1; } .stepIcon { width: 70px; height: 70px; display: flex; align-items: center; justify-content: center; border-radius: 16px; margin-bottom: 1.5rem; font-size: 2rem; position: relative; } .stepTitle { font-size: 1.25rem; font-weight: 700; margin-bottom: 0.75rem; color: var(--text-primary); } .stepDescription { font-size: 0.9375rem; color: var(--text-secondary); line-height: 1.6; } .connector { display: none; } @media (min-width: 1024px) { .connector { display: block; position: absolute; top: 50%; right: -2rem; transform: translateY(-50%); width: 2rem; color: var(--primary); opacity: 0.3; z-index: 1; } .step:last-child .connector { display: none; } } .ctaBox { background: linear-gradient(135deg, var(--primary), var(--secondary)); border-radius: 24px; padding: 3rem 2rem; display: flex; flex-direction: column; align-items: center; gap: 2rem; text-align: center; position: relative; overflow: hidden; } .ctaBox::before { content: ''; position: absolute; top: -50%; left: -50%; width: 200%; height: 200%; background: radial-gradient(circle, rgba(255, 255, 255, 0.1) 0%, transparent 70%); animation: pulse 4s ease-in-out infinite; } @keyframes pulse { 0%, 100% { transform: scale(1); opacity: 0.5; } 50% { transform: scale(1.1); opacity: 0.8; } } @media (min-width: 768px) { .ctaBox { flex-direction: row; justify-content: space-between; text-align: left; padding: 3rem 4rem; } } .ctaContent { position: relative; z-index: 1; } .ctaTitle { font-size: 1.75rem; font-weight: 800; color: white; margin-bottom: 0.5rem; } .ctaText { font-size: 1rem; color: rgba(255, 255, 255, 0.9); } .arrow { margin-left: 0.5rem; transition: transform 0.3s ease; display: inline-block; } .ctaBox a:hover .arrow { transform: translateX(5px); }