:root {
  --step-progress-color: rgb(105, 168, 113);
}

.step-progress-component {
  display: flex;
  justify-content: space-between;
  position: relative;
  margin-bottom: 20px;
  margin-top: 50px;
}

.step-progress-component::before {
  content: "";
  background-color: rgb(172, 172, 172);
  position: absolute;
  bottom: 12px;
  left: 0;
  transform: translateY(-50%);
  height: 4px;
  width: 100%;
  z-index: 1;
}

.step-progress-component .progress {
  background-color: var(--step-progress-color);
  position: absolute;
  bottom: 12px;
  left: 0;
  transform: translateY(-50%);
  height: 4px;
  z-index: 1;
  transition: 0.4s ease-in;
}

.step-progress-component .circle {
  background-color: rgb(212, 212, 212);
  height: 30px;
  width: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  z-index: 1;
  transition: 0.4s ease-in;
}

.step-progress-component .circle-wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
}

.step-progress-component .text-over-circle {
  color: rgb(26, 26, 26);
  position: absolute;
  bottom: 100%;
  z-index: 2;
  width: 110px;
  text-align: center;
  font-size: 15px;
  line-height: 19px;
  margin-bottom: 10px;
  display: -webkit-box; /* Flexbox for text wrapping */
  -webkit-box-orient: vertical; /* Set vertical orientation */
  overflow: hidden; /* Hide overflowing text */
  -webkit-line-clamp: 2; /* Clamp text to 2 lines */
  line-clamp: 2; /* Standard property for modern browsers */
  text-overflow: ellipsis; /* Add ellipsis to truncated text */
}

.step-progress-component .circle.active {
  border-color: var(--step-progress-color);
  background-color: var(--step-progress-color);
  color: white;
}

@media (max-width: 350px) {
  .step-progress-component .text-over-circle {
    display: none;
  }
}

@media (min-width: 600px) {
  .step-progress-component .text-over-circle {
    width: 150px;
  }
}