/**
  Additional css for formatting the
  snakeline elements
  **/
.snakeline-connector {
    position: relative;
    z-index: 0;
    box-sizing: border-box;
    padding: 0;
    margin: 0;
    word-break: keep-all;
    word-wrap: normal;
    white-space: nowrap;
}

/** reset **/
.snakeline-connector * {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

.snakeline-connector .snakeline-main-wrapper {
    display: flex;
    flex-direction: row;
    margin-left: 10px;
    margin-right: 10px;
}

.snakeline-connector .snakeline-canvas {
    position: absolute;
    z-index: 1;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
}

/** Bug fix, lazypainter creates wrong stroke dashoffset value **/
.snakeline-connector:not(.snakeline-with-animation) .snakeline-canvas path {
    stroke-dashoffset: 0 !important;
}

.snakeline-connector .snakeline-content {
    display: flex;
    flex-direction: column;
    width: 180px;
    float: none;
    z-index: 3;
    position: relative;
    margin: 0;
    padding: 80px 0;
}

.snakeline-connector .snakeline-content:nth-child(even) {
    flex-direction: column-reverse;
}

.snakeline-connector .snakeline-wrapper {
    padding: 20px;
    display: flex;
    flex-direction: column;
    text-align: center;
}

.snakeline-connector .snakeline-content:nth-child(odd) .snakeline-wrapper {
    flex-direction: column-reverse;
}

.snakeline-connector .snakeline-date {
    font-size: 22px;
    word-break: break-all;
    word-wrap: break-word;
    white-space: normal;
    line-height: 140%;
    font-weight: bold;
}

.snakeline-connector .snakeline-text {
    font-size: 12px;
    word-break: break-all;
    word-wrap: break-word;
    white-space: normal;
    line-height: 140%;
}

.snakeline-connector .snakeline-dot {
    width: 88px;
    height: 88px;
    font-size: 14px;
    line-height: 84px;
    text-align: center;
    border-radius: 100%;
    vertical-align: middle;
    margin: 0 auto;
    flex-shrink: 0;
    position: relative;
    overflow: hidden;
}
.snakeline-connector .with-image .snakeline-dot {
    background: transparent !important;
    justify-content: flex-end;
}
.snakeline-connector .with-image .snakeline-dot:after {
    content: '';
    display: block;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    position: absolute;
    z-index: 2;
    box-shadow: inset 0 0 10px #aaa;
    border-radius: 100%;
    background-color: inherit;
    opacity: 0.5;
}


.snakeline-connector .snakeline-image {
    position: absolute;
    top: 0;
    left: 0;
    min-width: 100%;
    min-height: 100%;
    width: auto;
    height: auto;
    z-index: 1;
    border-radius: 100%;
}

/**
  Vertical mode
  **/
.snakeline-direction-vertical .snakeline-main-wrapper {
    flex-direction: column;
    padding: 40px 0;
}

.snakeline-direction-vertical .snakeline-content {
    width: 100%;
    padding: 0;
    margin: 20px 0;
}

.snakeline-direction-vertical .snakeline-content:nth-child(even) {
    flex-direction: row;
}

.snakeline-direction-vertical .snakeline-content:nth-child(odd) {
    flex-direction: row-reverse;
}


.snakeline-direction-vertical .snakeline-content:nth-child(even) .snakeline-wrapper {
    flex-direction: column;
    text-align: right;
    margin-right: 20px;
}

.snakeline-direction-vertical .snakeline-content:nth-child(odd) .snakeline-wrapper {
    flex-direction: column;
    text-align: left;
    margin-left: 20px;
}

.snakeline-direction-vertical .snakeline-dot {
    margin: 0;
}

.snakeline-direction-vertical .snakeline-content:nth-child(even) {
    padding-right: 40px;
}

.snakeline-direction-vertical .snakeline-content:nth-child(odd) {
    padding-left: 40px;
}

/** Custom scrollbar **/
.snakeline-connector .scroll-bar.horizontal {
    height: 10px !important;
    background-color: #d7d7d7;
    border-radius: 5px;
    margin: 20px auto;
}

.snakeline-connector .scroll-bar.horizontal .thumb {
    width: 24px !important;
    height: 24px !important;
    margin-top: -7px;
    background-repeat: no-repeat;
    background-position: center center;
    background-color: #51b2e7;
    border-radius: 12px;
    cursor: pointer;
}

.snakeline-with-animation .snakeline-canvas path {
    stroke-dasharray: 1000;
    stroke-dashoffset: 1000;
    animation: snake-dash 5s linear forwards;
}

@keyframes snake-dash {
    to {
        stroke-dashoffset: 0;
    }
}