.needs {
  row-gap: 64px;
}

.step {
  row-gap: 32px;
  padding-bottom: 128px;
}

.step-text {
  display: grid;
  align-items: start;
  grid-template-rows: min-content;
  height: fit-content;
}

.step .primary-button {
  width: fit-content;
}

.steps-img {
  max-width: 450px;
  max-height: 409px;
  aspect-ratio: 450/409;
}

.step-numerotation {
  color: var(--orange-cta);
  font-size: 25px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 1px;
}

.texte-description {
  font-size: calc(18px + (22 - 18) * ((100vw - 320px) / (1440 - 320)));
  line-height: 1.7;
  font-weight: 400;
  max-width: 700px;
}

.progress,
.progress-mask {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-52.5%, 0);
  width: 100%;
  height: 100%;
  z-index: 1;
  display: flex;
  flex-direction: column;
  row-gap: 32px;
  align-items: center;
  padding: 32px 0 196px;
  pointer-events: none;
}

.progress-circle {
  width: 16px;
  height: 16px;
  aspect-ratio: 1;
  border-radius: 500px;
}

.progress-bar {
  width: 2px;
  height: 100%;
  border-radius: 500px;
}

.progress .progress-circle,
.progress .progress-bar {
  background-color: var(--medium-gray);
}

.progress-mask .progress-circle,
.progress-mask .progress-bar {
  background-color: var(--white);
}

.progress-mask {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-52.5%, 0);
  width: 100%;
  height: 100%;
  z-index: 1;
  display: flex;
  flex-direction: column;
  row-gap: 32px;
  align-items: center;
  padding: 32px 0 196px;
  pointer-events: none;
  clip-path: inset(0 0 100% 0);
}

@media screen and (max-width: 900px) {
  .step .img-container {
    display: grid;
    justify-items: center;
  }

  .even-step .img-container {
    grid-row: 2;
  }

  .even-step .step-text {
    grid-row: 1;
  }

  .progress,
  .progress-mask {
    display: none;
  }
}
