.progressbar {
  position: relative;
  display: flex;
  justify-content: space-between;
  counter-reset: step;
  margin: 1rem 0 2rem;
}

.progressbar::before,
.progress {
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  height: 4px;
  width: 100%;
  background-color: #dcdcdc;
  z-index: -1;
}

.progress {
  background-color: var(--primary-color);
  width: 0%;
  transition: 0.3s;
}

.progress-step {
  width: 2.1875rem;
  height: 2.1875rem;

  width: 1.5rem;
  height: 1.5rem;
  background-color: #dcdcdc;
  border-radius: 5px;
  display: flex;
  justify-content: center;
  align-items: center;
}

.progress-step::before {
  counter-increment: step;
  content: counter(step);
  font-size: 0.8em;
}

.progress-step::after {
  content: attr(data-title);
  position: absolute;
  top: calc(100% + 0.5rem);
  font-size: 0.85rem;
  color: #666;
}

.progress-step-active {
  background-color: var(--primary-color);
  color: #fff;
}



/* 
<div class="progressbar">
    <div class="progress" id="progress"></div>

    <div class="progress-step progress-step-active" data-title=""></div>
    <div class="progress-step" data-title=""></div>
    <div class="progress-step" data-title=""></div>
    <div class="progress-step" data-title=""></div>
</div>
*/