:root {
  --c-transparent: transparent;
  --c-white: #fff;
  --c-black: #000;
  --c-uncolored: #F2F2F2;
  --c-colored: #71B6F9;
  --c-final: #83e089;
}

.horizontal.timeline {
  display: flex;
  position: relative;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  width: 100%;
}
.horizontal.timeline:before {
  content: "";
  display: block;
  position: absolute;
  top: 40%;
  left: 0;
  width: 100%;
  height: 0.2em;
  background-color: var(--c-uncolored);
}
.horizontal.timeline .line {
  display: block;
  position: absolute;
  width: 15%;
  height: 0.2em;
  background-color: var(--c-colored);
}
.horizontal.timeline .steps {
  display: flex;
  position: relative;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  width: 100%;
}
.horizontal.timeline .steps .step {
  display: block;
  position: relative;
  bottom: calc(100% + 1em);
  padding: 0.33em;
  margin: 0 2em;
  box-sizing: content-box;
  color: var(--c-colored);
  background-color: currentColor;
  border: 0.25em solid var(--c-white);
  border-radius: 50%;
  z-index: 500;
}
.horizontal.timeline .steps .step:first-child {
  margin-left: 0;
}
.horizontal.timeline .steps .step:last-child {
  margin-right: 0;
  color: var(--c-final);
}
.horizontal.timeline .steps .step span {
  position: absolute;
  top: calc(100% + 1em);
  left: 50%;
  transform: translateX(-50%);
  white-space: nowrap;
  color: var(--c-black);
  opacity: 0.4;
}
.horizontal.timeline .steps .step.current:before {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  padding: 1em;
  background-color: currentColor;
  border-radius: 50%;
  opacity: 0;
  z-index: -1;
  animation-name: animation-timeline-current;
  animation-duration: 2s;
  animation-iteration-count: infinite;
  animation-timing-function: ease-out;
}
.horizontal.timeline .steps .step.current span {
  opacity: 1;
  font-weight: 600;
}

.text-first-step { padding-left: 100px !important; }
.text-last-step { padding-right: 110px !important; }

#timeline-booking { margin-top: 5px !important; }

@keyframes animation-timeline-current {
  from {
    transform: translate(-50%, -50%) scale(0);
    opacity: 1;
  }
  to {
    transform: translate(-50%, -50%) scale(1);
    opacity: 0;
  }
}