#timeline{
  display: flex;
  position: relative;
  flex-wrap: wrap;
}

@media only screen and (min-width: 1000px) {
  #timeline{
    padding: var(--gutter-out) 0;
    margin-bottom: var(--gutter-out);
  }
}

.timeline-item{
  display: flex;
  padding: 20px 0;
  z-index: 3;
  position: relative;
}

@media only screen and (min-width: 600px) {
  .timeline-item{
    width: 50%;
    padding: 20px;
  }
}

@media only screen and (min-width: 1000px) {
  .timeline-item{
    width: 25%;
    padding: 40px 20px;
    transform: translateY(50%);
  }
}

@media only screen and (min-width: 1000px) {
  .timeline-item:nth-child(even){
    transform: translateY(-47%);
  }
}

.timeline-item-pointer{
  display: none;
}

@media only screen and (min-width: 1000px) {
  .timeline-item-pointer{
    display: block;
    position: absolute;
  }
}

.timeline-item-pointer-dot{
  width: 24px;
  height: 24px;
  background: var(--degrade);
  border-radius: 320px;
  display: block;
  position: relative;
  z-index: 2;
}

.timeline-item-pointer-container{
  position: relative;
}

.timeline-item-pointer-container::before{
  content: '';
  display: block;
  width: 40px;
  height: 40px;
  position: absolute;
  top: 0;
  left: 0;
  background: var(--degrade);
  opacity: .5;
  z-index: 1;
  border-radius: 320px;
  transition: all .2s ease;
  animation: 3s linear 1s normal none infinite running pulsating;
  transform-origin: center;
}

.timeline-item:nth-child(even) .timeline-item-pointer{
  bottom: 0;
}

.timeline-item:nth-child(odd) .timeline-item-pointer{
  transform: translateY(-15px);
  top: 0;
}

.timeline-item:nth-child(1) .timeline-item-pointer-dot{
  background: #ffcb00;
}

.timeline-item:nth-child(2) .timeline-item-pointer-dot{
  background: #f18700;
}

.timeline-item:nth-child(3) .timeline-item-pointer-dot{
  background: #e94431;
}

.timeline-item:nth-child(4) .timeline-item-pointer-dot{
  background: #e7343f;
}

.timeline-item-icon img{
  width: 32px;
  height: 32px;
  object-fit: contain;
  display: block;
  margin-right: 20px;
}

.timeline-item-text {
  color: #FFFFFF;
}

.timeline-item-text h3{
  font-weight: bold;
  font-size: 1rem;
  font-size: clamp(1rem, 0.875rem + 0.4166666666666667vw, 1.375rem);
  line-height: 1.3em;
  margin-bottom: 10px;
}

.timeline-item-text p{
  font-size: 12px;
  line-height: 1.8em;
}

@media only screen and (min-width: 1000px) {
  #timeline::before{
    height: 8px;
    border-radius: 320px;
    width: 100%;
    display: block;
    content: '';
    position: absolute;
    left: 0;
    bottom: 50%;
    z-index: 2;
    background: var(--degrade);
  }
}


@-webkit-keyframes pulsating {
    0% {-webkit-transform: translateX(-8px) translateY(-7px) scale(0); }
    50% {-webkit-transform: translateX(-8px) translateY(-7px) scale(1); }
    100% {-webkit-transform: translateX(-8px) translateY(-7px) scale(0); }
}

@-moz-keyframes pulsating {
    0% {-moz-transform: translateX(-8px) translateY(-7px) scale(0); }
    50% {-moz-transform: translateX(-8px) translateY(-7px) scale(1); }
    100% {-moz-transform: translateX(-8px) translateY(-7px) scale(0); }
}

@keyframes pulsating {
    0% {transform: translateX(-8px) translateY(-7px) scale(0); }
    50% {transform: translateX(-8px) translateY(-7px) scale(1); }
    100% {transform: translateX(-8px) translateY(-7px) scale(0); }
}
