:root {
  --exp-point-size: 16px;
  --exp-left-margin: 16px;
  --exp-margin-combined: calc((var(--exp-point-size) / 2) + 1px);
}

.experience__timeline-wrapper {
  display: flex;
  flex-direction: row;
}

.experience {
  width: 100%;
  padding: 0.5em 0.8em;
  border: 1px solid var(--border-color);
}

.experience__head {
  display: grid;
  grid-template: "icon title period" auto / auto auto 1fr;
}

@media (width <= 450px) {
  .experience__head {
    grid-template: "icon period" auto "title title" auto / auto 1fr;
  }
}

.experience__icon {
  display: inline-block;
  grid-area: icon;
  width: 24px;
  height: 24px;
  margin-right: 4px;
}

.experience__icon svg {
  fill: var(--border-color);
}

.experience__title {
  grid-area: title;
}

.section__item-period {
  grid-area: period;
}

.experience__content {
  margin-top: 0.5em;
}

.experience .section__item-pills {
  margin-top: -0.5em;
  margin-bottom: 0.2em;
}

/* The Line */
.experience__line {
  z-index: 10;
  margin: calc(6px + (var(--exp-point-size) / 2)) var(--exp-left-margin) -12px var(--exp-margin-combined);
  border: 1px solid var(--border-color);
  border-left-width: 0;
}

/* The Dot */
.experience__line::before {
  position: absolute;
  z-index: 20;
  width: var(--exp-point-size);
  height: var(--exp-point-size);
  margin-top: calc(-1 * (var(--exp-point-size) / 2));
  margin-left: calc(-1 * var(--exp-margin-combined));
  border: 1px solid var(--border-color);
  border-radius: 50%;
  background-color: var(--bg-color);
  content: "";
}

.experience__timeline-wrapper:last-of-type {
  .experience__line {
    border-color: transparent;
  }

  .section__item {
    margin-bottom: 0;
  }
}