@font-face {
    font-family: kalameh;
    src: url(../font/Kalameh-Regular.ttf);
}

* {
    font-family: "Open Sans", sans-serif, kalameh;
}

.treeview {
    text-align: left;
}

.treeview ul {
    list-style: none;
    padding-left: 32px;
}

.treeview ul li {
    padding: 30px 0 0 20px;
    position: relative;
}

.treeview ul li:before {
    content: "";
    position: absolute;
    top: -15px;
    left: -31px;
    border-left: 2px dashed #a2a5b5;
    width: 1px;
    height: 100%;
}

.treeview ul li:after {
    content: "";
    position: absolute;
    border-top: 2px dashed #a2a5b5;
    top: 45px;
    left: -30px;
    width: 60px;
}

.treeview ul li:last-child:before {
    top: -43px;
    height: 90px;
}

.treeview > ul > li:after, .treeview > ul > li:last-child:before {
    content: unset;
}

.treeview > ul > li:before {
    top: 90px;
    left: 36px;
}

.treeview > ul > li:not(:last-child) > ul > li:before {
    content: unset;
}

.treeview > ul > li > .treeview__level:before {
    height: 60px;
    width: 60px;
    top: -9.5px;
    background-color: #54a6d9;
    border: 7.5px solid #d5e9f6;
    font-size: 22px;
}

.treeview > ul > li > ul {
    padding-left: 34px;
}

.treeview__level {
    padding: 7px;
    padding-left: 42.5px;
    display: inline-block;
    border-radius: 5px;
    font-weight: 700;
    border: 1px solid #e3e5ef;
    position: relative;
    z-index: 1;
}

.treeview__level:before {
    content: attr(data-level);
    position: absolute;
    left: -24px;
    top: -12px;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 55px;
    width: 55px;
    border-radius: 50%;
    border: 7.5px solid #eef6d5;
    background-color: #bada55;
    color: #fff;
    font-size: 20px;
}


.treeview .level-title {
    cursor: pointer;
    user-select: none;
}

.treeview .level-title:hover {
    text-decoration: underline;
}

.treeview--mapview ul {
    justify-content: center;
    display: flex;
}

.treeview--mapview ul li:before {
    content: unset;
}

.treeview--mapview ul li:after {
    content: unset;
}

.timeline {
    width: 800px;
    height: 20px;
    list-style: none;
    text-align: justify;
    position: absolute;
    left: 50%;
    top: 50%;
    -webkit-transform: translate(-50%, -50%);
    -moz-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    -o-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    background: -moz-linear-gradient(top, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0) 45%, rgba(191, 128, 11, 1) 51%, rgba(255, 255, 255, 0) 57%, rgba(255, 255, 255, 0) 100%);
    background: -webkit-gradient(left top, left bottom, color-stop(0%, rgba(255, 255, 255, 0)), color-stop(45%, rgba(255, 255, 255, 0)), color-stop(51%, rgba(191, 128, 11, 1)), color-stop(57%, rgba(255, 255, 255, 0)), color-stop(100%, rgba(255, 255, 255, 0)));
    background: -webkit-linear-gradient(top, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0) 45%, rgba(191, 128, 11, 1) 51%, rgba(255, 255, 255, 0) 57%, rgba(255, 255, 255, 0) 100%);
    background: -o-linear-gradient(top, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0) 45%, rgba(191, 128, 11, 1) 51%, rgba(255, 255, 255, 0) 57%, rgba(255, 255, 255, 0) 100%);
    background: -ms-linear-gradient(top, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0) 45%, rgba(191, 128, 11, 1) 51%, rgba(255, 255, 255, 0) 57%, rgba(255, 255, 255, 0) 100%);
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0) 45%, rgba(191, 128, 11, 1) 51%, rgba(255, 255, 255, 0) 57%, rgba(255, 255, 255, 0) 100%);
}

.timeline:after {
    display: inline-block;
    content: "";
    width: 100%;
}

.timeline li {
    display: inline-block;
    width: 20px;
    height: 20px;
    background: #F2BB13;
    text-align: center;
    line-height: 1.2;
    position: relative;
    -webkit-border-radius: 50%;
    border-radius: 50%;
}

.timeline li:before {
    display: inline-block;
    content: attr(data-year);
    font-size: 26px;
    position: absolute;
    left: 50%;
    -webkit-transform: translateX(-50%);
    -moz-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    -o-transform: translateX(-50%);
    transform: translateX(-50%);
}

.timeline li:nth-child(odd):before {
    top: -40px;
}

.timeline li:nth-child(even):before {
    bottom: -40px;
}

.timeline li:after {
    display: inline-block;
    content: attr(data-text);
    font-size: 16px;
    position: absolute;
    left: 50%;
    -webkit-transform: translateX(-50%);
    -moz-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    -o-transform: translateX(-50%);
    transform: translateX(-50%);
}

.timeline li:nth-child(odd):after {
    bottom: 0;
    margin-bottom: -10px;
    -webkit-transform: translate(-50%, 100%);
    -moz-transform: translate(-50%, 100%);
    -ms-transform: translate(-50%, 100%);
    -o-transform: translate(-50%, 100%);
    transform: translate(-50%, 100%);
}

.timeline li:nth-child(even):after {
    top: 0;
    margin-top: -10px;
    -webkit-transform: translate(-50%, -100%);
    -moz-transform: translate(-50%, -100%);
    -ms-transform: translate(-50%, -100%);
    -o-transform: translate(-50%, -100%);
    transform: translate(-50%, -100%);
}