.program-timeline {
    position: relative;
    z-index: 1;
    padding: 26px 60px 28px 32px;
    background: #f8f7f7;
    border: 1px solid #e8e8e8;
}

.program-timeline:before {
    content: "";
    display: block;
    position: absolute;
    z-index: -1;
    top: 47px;
    bottom: 37px;
    width: 2px;
    right: 37px;
    background: url('data:image/gif;base64,R0lGODlhAgAMAIABANXV1f///yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6YjQ5MjU1MGUtNTY5NS00ZGIzLWE0ODEtOTA4MGI1M2MxOTZkIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjg1QzRFQzk3Rjg4NDExRTk4QjkxOUVBMkU3Q0U5MjA4IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjg1QzRFQzk2Rjg4NDExRTk4QjkxOUVBMkU3Q0U5MjA4IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE4IChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6ZjQ3ZjdjY2QtMzU3ZC00N2QyLThiOGEtOTNmYWE4ZTMyYTExIiBzdFJlZjpkb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6NmE4YzQ5ZGQtMjI0My1iYjQ0LWI0N2QtMTgxZjAwNWI5OGQyIi8+IDxkYzp0aXRsZT4gPHJkZjpBbHQ+IDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+Q29kZVdpemFyZHNfQ3VyclBhZ2UtVjRfbW9ja3VwX2VkaXRzIGNvcHk8L3JkZjpsaT4gPC9yZGY6QWx0PiA8L2RjOnRpdGxlPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAEALAAAAAACAAwAAAIGhI8Jwc0FADs=') repeat-y 0 0;
}

.program-timeline > .heading {
    position: relative;
    z-index: 1;
    padding-bottom: 2px;
}

.program-timeline > .heading:after {
    content: "";
    display: block;
    position: absolute;
    z-index: -1;
    top: 17px;
    right: -26px;
    width: 8px;
    height: 6px;
    background: #ffc844;
}

.program-timeline .heading,
.program-timeline .foot {
    display: flex;
    align-items: center;
}

.program-timeline .heading img,
.program-timeline .foot img {
    width: 32px;
    margin-right: 20px;
}

.program-timeline .heading span,
.program-timeline .foot span {
    flex: 1;
}

.program-timeline .heading {
    font-weight: bold;
    text-transform: uppercase;
}

.program-timeline .items .item {
    margin-top: 27px;
}

.program-timeline .items .item.color-green .heading span span,
.program-timeline .items .item.color-green .capstone span {
    color: #048665;
}

.program-timeline .items .item.color-green .text p:before,
.program-timeline .items .item.color-green .capstone:before {
    background: #048665;
}

.program-timeline .items .item.color-blue .heading span span,
.program-timeline .items .item.color-blue .capstone span {
    color: #3276bb;
}

.program-timeline .items .item.color-blue .text p:before,
.program-timeline .items .item.color-blue .capstone:before {
    background: #3276bb;
}

.program-timeline .items .item.color-violet .heading span span,
.program-timeline .items .item.color-violet .capstone span {
    color: #9a72b2;
}

.program-timeline .items .item.color-violet .text p:before,
.program-timeline .items .item.color-violet .capstone:before {
    background: #9a72b2;
}

.program-timeline .items .item.color-pink .heading span span,
.program-timeline .items .item.color-pink .capstone span {
    color: #cc509e;
}

.program-timeline .items .item.color-pink .text p:before,
.program-timeline .items .item.color-pink .capstone:before {
    background: #cc509e;
}

.program-timeline .items .item > .heading {
    position: relative;
    z-index: 1;
}

.program-timeline .items .item > .heading:after {
    content: "";
    display: block;
    position: absolute;
    z-index: -1;
    top: 6px;
    right: -37px;
    width: 29px;
    height: 29px;
    background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAdCAMAAABhTZc9AAAAaVBMVEUAAAD9x0P9x0P9x0P9x0P9x0P9x0P9x0P9x0P9x0P9x0P9x0P9x0P9x0P9x0P9x0P9x0P////9x0P/+/KIlqZWaYD/9+P/9Nz+7MD+3o/+2oP91G4BHkH//PT+13ru8PLd4eZFWnQSLU4YbrAsAAAAEXRSTlMAG9mvkzHQCvGr4G1srfDRCO7H10UAAADmSURBVCjPjZPZksIgEEWBxCzuHEzMMnGW///IKaUVjJHyvgB1qpuGvq0e0pva7NmbeqPVXKuMoGz1xI45MHSts67tBiA/RkkL6J29y/VQ6AdcM55trPPIWnBZcJHAEH6hKG80ZxQY45H8Vi2EtFFyuFae0dsl9WRKaXCL1IFWWwa7rIGtqune0I6dMrRy+p7RFqMqJn/4+Tv5TfPr14lKgRU1X6f74gU+NmCBEuvvDVig3OtrDlig1Dx7byNQ3pv+q+Q/p3uU7m/aG2lfCT68ePIQWb4UP092Ej+XH85CmKMKzC6ao39Osi4tcZVk3AAAAABJRU5ErkJggg==') no-repeat center;
}

.program-timeline .items .text {
    margin-top: 18px;
}

.program-timeline .items .capstone {
    content: "";
    display: block;
    position: absolute;
    z-index: -1;
    font-weight: bold;
}

.program-timeline .items .capstone:after {
    content: "";
    display: block;
    position: absolute;
    z-index: -1;
    top: 10px;
    right: -26px;
    width: 8px;
    height: 6px;
    background: #ffc844;
}

.program-timeline .items .capstone span {
    margin-right: 4px;
}

.program-timeline .items .text p,
.program-timeline .items .capstone {
    position: relative;
    z-index: 1;
    margin-bottom: 8px;
    padding-left: 32px;
    line-height: 1.17;
}

.program-timeline .items .text p:before,
.program-timeline .items .capstone:before {
    content: "";
    display: block;
    position: absolute;
    z-index: -1;
    left: 12px;
    top: 8px;
    width: 8px;
    height: 8px;
    background: #011e41;
    -webkit-border-radius: 50%;
    -moz-border-radius: 50%;
    border-radius: 50%;
}

.program-timeline .foot {
    position: relative;
    z-index: 1;
    margin-top: 35px;
    font-size: 16px;
    line-height: 19px;
}

.program-timeline .foot:after {
    content: "";
    display: block;
    position: absolute;
    z-index: -1;
    bottom: 8px;
    right: -26px;
    width: 8px;
    height: 6px;
    background: #ffc844;
}

.program-timeline .foot span b {
    font-size: 18px;
    display: block;
    text-transform: uppercase;
}
