.block_timeline {
  display: flex;
  flex-direction: row;
  align-items: center;
  padding: 50px 0;
  gap: 100px;
  overflow-x: auto;
  position: relative;
  z-index: 0;
}
.block_timeline::after {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    width: 55vw;
    height: 100%;
    background: repeating-linear-gradient(-50deg, var(--white) 0 8px, #f5f5f5 2px 10px);
    z-index: -1;
}
.block_timeline .timeline-header {
  max-width: 500px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin-left: calc((100vw - 1200px) /2);
  flex: 1;
}
.block_timeline .timeline-header h2 {
  margin-top: 0;
}
.block_timeline .timeline-scroll {
  flex: 1 1 0;
  overflow-x: auto;
  padding: 30px 30px 30px 0;
  flex: 1;
}
.block_timeline .timeline {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  min-width: 100%;
  gap: 40px;
  position: relative;
}
.block_timeline .btn-el {
  align-self: flex-end;
}
.block_timeline .timeline::before {
  content: "";
  position: absolute;
  top: 35px;
  left: 0;
  right: 0;
  height: 2px;
  border-top: 1px dashed var(--black);
  z-index: 0;
}

.block_timeline .timeline-item {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 260px;
  max-width: 320px;
  z-index: 1;
}
.block_timeline .timeline-wrapper-icon {
  background: var(--black);
  color: var(--primary);
  width: 70px;
  height: 70px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: self-start;
  padding: 10px;
}
.block_timeline .timeline-wrapper-icon .timeline-icon {
    max-width: 60%;
}
.block_timeline .timeline-year {
  font-size: 3vw;
  font-weight: 700;
  width: 100%;
}
.block_timeline .timeline-text a { color: var(--black); text-decoration: underline; }

@media (max-width: 900px) {
  .block_timeline {
    flex-direction: column;
    align-items: flex-start;
    gap: 30px;
    padding: 10px;
  }
  .block_timeline .timeline-header {
    max-width: 100%;
    width: 100%;
    margin-left: 0;
  }
  .block_timeline .timeline {
    min-width: 0;
  }
  .block_timeline .timeline-item {
    min-width: 250px;
    width: 100%;
    box-sizing: border-box;
  }
  .block_timeline .timeline-wrapper-icon { width: 50px; height: 50px; }
  .block_timeline .timeline::before { top: 25px; }
}

@media (max-width: 768px) {
  .block_timeline .btn-el {align-self: flex-start;}
  .block_timeline .timeline-header { justify-content: start; }
  .block_timeline .timeline {
    min-width: 0;
  }
}