/* How It Works */
.cvm-how-it-works { background: var(--cvm-white); }

.cvm-steps__grid {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px;
    position: relative; max-width: 1000px; margin: 0 auto;
}
.cvm-steps__grid::before {
    content: ''; position: absolute; top: 44px;
    left: calc(16.666% + 20px); right: calc(16.666% + 20px);
    height: 2px;
    background: repeating-linear-gradient(90deg, var(--cvm-blue-300) 0, var(--cvm-blue-300) 12px, transparent 12px, transparent 24px);
    z-index: 0;
}

.cvm-step-card {
    background: var(--cvm-white); border: 1.5px solid var(--cvm-gray-200);
    border-radius: var(--cvm-radius); padding: 36px 28px;
    text-align: center; position: relative; z-index: 1;
    transition: border-color 0.3s, box-shadow 0.3s, transform 0.3s;
}
.cvm-step-card:hover {
    border-color: var(--cvm-blue-400);
    box-shadow: var(--cvm-shadow-lg);
    transform: translateY(-4px);
}

body .cvm-step__number {
    width: 52px; height: 52px; border-radius: 16px; margin: 0 auto 20px;
    background: linear-gradient(135deg, var(--cvm-blue-500), var(--cvm-blue-700));
    display: flex; align-items: center; justify-content: center;
    font-family: var(--cvm-font-display) !important; font-size: 1.4rem !important; font-weight: 800 !important; color: #fff !important;
    box-shadow: 0 6px 20px rgba(37,99,235,0.3);
}
.cvm-step__icon { font-size: 1.6rem; margin-bottom: 14px; }
.cvm-step__icon--img { font-size: 0; }
.cvm-step__icon--img img { width: 56px; height: 56px; object-fit: contain; border-radius: 10px; }
body .cvm-step__title {
    font-family: var(--cvm-font-display) !important; font-size: 1.15rem !important;
    font-weight: 700 !important; color: var(--cvm-blue-900) !important; margin-bottom: 10px;
}
body .cvm-step__desc { font-size: 0.9rem !important; color: var(--cvm-gray-600) !important; line-height: 1.65 !important; font-family: var(--cvm-font-body) !important; }

@media (max-width: 1024px) {
    .cvm-steps__grid { grid-template-columns: 1fr; max-width: 480px; margin: 0 auto; }
    .cvm-steps__grid::before { display: none; }
}
@media (max-width: 600px) {
    .cvm-steps__grid { max-width: 100%; gap: 16px; }
    .cvm-step-card { padding: 24px 20px; }
}
