/* (A) TIMELINE CONTAINER */
.vtl {
  /* (A1) RELATIVE POSITION REQUIRED TO PROPERLY POSITION THE TIMELINE */
  position: relative;
 
  /* (A2) RESERVE MORE SPACE TO THE LEFT FOR THE TIMELINE */
  padding: 10px 10px 10px 50px;
 
}
.vtl, .vtl * { box-sizing: border-box; }

/* (B) DRAW VERTICAL LINE USING ::BEFORE */
.vtl::before {
  /* (B1) VERTICAL LINE */
  content: "";
  width: 5px;
  background-color: #d5d8dd;
 
  /* (B2) POSITION TO THE LEFT */
  position: absolute;
  top: 0; bottom: 0; left: 15px;
}

/* (C) COSMETICS FOR EVENTS */
div.event {
  padding: 20px 30px;
  background-color: #fff;
  position: relative;
  border-radius: 6px;
  margin-bottom: 10px;
  border: 1px solid rgba(0, 0, 0, 0.125);
}
.event h3 {font-weight: 600;}
.timeline-date {
  margin: 10px 0;
  font-weight: 600;
}
.meta div {
  margin: 0 10px 0 0;
  background: #F1F4F8;
  color: #3d4248;
  padding: 5px 10px;
  border-radius: 4px;
  font-weight: 600;
  font-size: 80%;
}
.timeline-category {display: inline-block;}
.timeline-map {display: inline-block;}
.timeline-location {display: inline-block;}
.timeline-img-block {
  max-width: 400px;
}
.timeline-img-block .card-block {
  padding: 20px;
  background: #f4f4f0;
}
.timeline-img-block .card-block figcaption {
margin: 0;
padding: 0 0 0 0;
font-weight: 500;
}
/* (D) COSMETICS FOR EVENT DATE & TEXT */
p.date {
  font-size: 1.1em;
  font-weight: 700;
  color: #ff6a00;
}
p.txt {
  margin: 10px 0 0 0;
  color: #222;
}

/* (E) EVENT "SPEECH BUBBLE CALLOUT" */
div.event::before {
  /* (E1) "MAGIC TRIANGLE" */
  content: "";
  border: 10px solid transparent;
  border-right-color: #fff;
  border-left: 0;
 
   /* (E2) POSITION TO THE LEFT */
  position: absolute;
  top: 20%; left: -10px;
}

/* (F) CIRCLE ON TIMELINE */
div.event::after {
  /* (F1) "MAGIC CIRCLE" */
  content: "";
  background: #e4e6ea;
  border: 4px solid #205eb8;
  width: 16px; height: 16px;
  border-radius: 50%;
 
  /* (F2) POSITION TO THE LEFT */
  position: absolute;
  top: 20%; left: -41px;
}