
:root {

    --icon-size: 2rem;
    --icon-margin: calc(var(--icon-size) / 2);
    --head-margin-neg: -1.25rem;
    --head-margin-pos: 1.25rem;
    --content-padding: 1.25rem;
    --contentbox-size: 47%;
}


  .timeline:before {
    content: "";
    width: 4px;
    height: 100%;
    background: var(--ci400);
    left: calc(50% - 2px);
    top: 0;
    position: absolute;
  }


  .timeline {
    position: relative;
    transition: all 0.4s ease;
    display: flex;
    flex-direction: column;
  }

  .timeline-item {
    margin-bottom: 3rem;
    position: relative;
    display: flex;
  }
  .timeline-item:last-child {
    margin-bottom: 1rem;
  }

  .timeline-item:nth-child(even) {
    justify-content: flex-end;
  }

 .timeline-icon {
    background: var(--ci100);
    width: var(--icon-size);
    height: var(--icon-size);
    position: absolute;
    top: 1rem;
    left: 50%;
    overflow: hidden;
    margin-left: -1rem;
    border-radius: 50%;
  }
 .timeline-icon img {
    position: relative;
    transform: translate(50%, 50%);
  }

 .timeline-content {
    flex: 0 1 var(--contentbox-size);
    background: var(--white100);
    padding: var(--content-padding);
    position: relative;
    box-shadow: var(--boxShadowSmall);
    border-radius: 5px;
    transition: all 0.3s ease;
  }
  .timeline-content .head {
    display: block;
    line-height: 1em;
    padding: 1rem;
    margin-bottom: 0;
    background: var(--gradient-head-links-04);
    color: var(--white100);
    margin: var(--head-margin-neg) var(--head-margin-neg) var(--head-margin-pos) var(--head-margin-neg);
    border-radius: var(--radius_half) var(--radius_half) 0 0;
  }
  .timeline-item:nth-child(odd) .timeline-content .head {
    text-align: right;
    background: var(--gradient-head-links-03);
  }

  .timeline-content p {
    font-size:var(--font_size04);
  }

  .timeline-content:before {
    content: "";
    position: absolute;
    top: 1.5rem;
    right: -5px;
    width: 1rem;
    height: 1rem;
    background-color: var(--ci100);
    display: block;
    border-radius: var(--radius_half);
    transform: rotate(45deg);
  }

  .timeline-item:nth-child(even) .timeline-content:before {
    left: -5px;
    right: inherit;
  }
  
  @media screen and (max-width: 1097px) {
    .timeline {
      padding: 0;
    }
    .timeline:before {
      left: calc(1rem);
    }
    .timeline-item:nth-child(even) {
      justify-content: flex-start;
    }
    .timeline-item .timeline-content {
      flex: 1 1 100%;
      margin-left: calc(30px + 0.5rem);
    }
    .timeline-item:nth-child(odd) .timeline-content .head {
      text-align: left;
      background: var(--gradient-head-links-04);
    }
    .timeline-item .timeline-content:before, 
    .timeline-item .timeline-content.right:before {
      left: -5px;
      right: inherit;
    }
    .timeline-item .timeline-icon {
      left: 1rem;
    }

  }
  