.timeline_horizontal {
  --timeline_h_mark_color: var(--primary_color);
  --timeline_h_number_color: #3f8f86;
  --timeline_h_line_color: var(--line_color_light);
}
[data-theme=dark] .timeline_horizontal {
  --timeline_h_number_color: var(--primary_color);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme=light]) .timeline_horizontal {
    --timeline_h_number_color: var(--primary_color);
  }
}
.timeline_horizontal {
  container-type: inline-size;
}
.timeline_horizontal .timeline_row {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space_l) var(--grid_gutter);
}
@media (min-width: 480px) {
  .timeline_horizontal .timeline_row {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
@media (min-width: 820px) {
  .timeline_horizontal .timeline_row {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
}
.timeline_horizontal .timeline_item {
  z-index: var(--z_normal);
  position: relative;
  padding-top: var(--space_m);
  border-top: 1px solid var(--timeline_h_line_color);
}
.timeline_horizontal .timeline_item::before {
  content: "";
  position: absolute;
  top: -2px;
  inset-inline-start: 0;
  width: 3rem;
  height: 3px;
  background-color: var(--timeline_h_mark_color);
}
@media (min-width: 480px) {
  .timeline_horizontal .timeline_item {
    grid-column: span 2;
  }
}
@media only screen and (min-width: 480px) and (max-width: 819px) {
  .timeline_horizontal .timeline_item:nth-child(odd):last-child {
    grid-column: 2/span 2;
  }
}
@media (min-width: 820px) {
  .timeline_horizontal .timeline_item.item_1 {
    grid-column: 3/span 2;
  }
  .timeline_horizontal .timeline_item.item_2:first-child {
    grid-column: 2/span 2;
  }
}
.timeline_horizontal .timeline_number {
  display: block;
  margin-bottom: var(--space_s);
  color: var(--timeline_h_number_color);
  font-size: clamp(2.75rem, 2rem + 2.5vw, 4rem);
  font-weight: 300;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}
.timeline_horizontal .timeline_content {
  position: relative;
  --h1_size: 1.68rem;
  --h2_size: 1.4rem;
  --h3_size: 1.4rem;
  --h4_size: 1.4rem;
  --h5_size: 1.12rem;
  --h6_size: 1.12rem;
}
.timeline_horizontal .timeline_content .title {
  margin-bottom: var(--space_xs);
}