/* Herzog Dupont Copyright (C) 2019–2022 Thomas Weidlich GNU GPL v3 */

:root {
	--hd-timeline-line-color: rgba(0, 0, 0, 0.1);
	--hd-timeline-line-width: 4px;
	--hd-timeline-icon-size: 20px;
	--hd-timeline-icon-padding: calc(0.3 * var(--hd-timeline-icon-size));
	--hd-timeline-item-container-margin: 40px;
}

.hd-timeline-container {
	position: relative;
}

.hd-timeline-container>.hd-timeline-line {
	position: absolute;
	height: 100%;
	width: var(--hd-timeline-line-width);
	background-color: var(--hd-timeline-line-color);
	border-color: var(--hd-timeline-line-color);
	border-style: none;
}

.hd-timeline-container>.hd-timeline-line::after {
	content: '';
	height: calc(var(--hd-timeline-line-width) * 4);
	width: calc(var(--hd-timeline-line-width) * 4);
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translate(-50%, 100%);
	background-color: inherit;
	border-radius: 50%;
}

.hd-timeline-align-right>.hd-timeline-line {
	left: calc(var(--hd-timeline-icon-size) + var(--hd-timeline-icon-padding) + var(--hd-timeline-line-width) / 2);
	transform: none;
}

.hd-timeline-align-left>.hd-timeline-line {
	left: calc(100% - var(--hd-timeline-icon-size) - var(--hd-timeline-icon-padding) - var(--hd-timeline-line-width));
	transform: translateX(-50%);
}

.hd-timeline-align-right-alternate>.hd-timeline-line,
.hd-timeline-align-left-alternate>.hd-timeline-line {
	left: 50%;
	transform: translateX(-50%);
}

.hd-timeline-align-right > div:nth-child(n)>.hd-timeline-item-container {
	position: relative;
	width: auto;
	left: 0;
	margin-left: calc((var(--hd-timeline-icon-size) + var(--hd-timeline-icon-padding) + var(--hd-timeline-line-width)) * 2 + var(--hd-timeline-item-container-margin));
	margin-right: 0;
}

.hd-timeline-align-left > div:nth-child(n)>.hd-timeline-item-container {
	position: relative;
	width: auto;
	left: 0;
	margin-right: calc((var(--hd-timeline-icon-size) + var(--hd-timeline-icon-padding) + var(--hd-timeline-line-width)) * 2 + var(--hd-timeline-item-container-margin));
	margin-left: 0;
}

.hd-timeline-align-right-alternate > div:nth-child(even)>.hd-timeline-item-container {
	position: relative;
	width: calc(50% - var(--hd-timeline-icon-size) - var(--hd-timeline-icon-padding) - var(--hd-timeline-line-width) - var(--hd-timeline-item-container-margin));
	left: 50%;
	margin-left: calc((var(--hd-timeline-icon-size) + var(--hd-timeline-icon-padding) + var(--hd-timeline-line-width)) + var(--hd-timeline-item-container-margin));
	margin-right: 0;
}

.hd-timeline-align-right-alternate > div:nth-child(odd)>.hd-timeline-item-container {
	position: relative;
	width: calc(50% - var(--hd-timeline-icon-size) - var(--hd-timeline-icon-padding) - var(--hd-timeline-line-width) - var(--hd-timeline-item-container-margin));
	left: 0;
	margin-left: 0;
}

.hd-timeline-align-left-alternate > div:nth-child(even)>.hd-timeline-item-container {
	position: relative;
	width: calc(50% - var(--hd-timeline-icon-size) - var(--hd-timeline-icon-padding) - var(--hd-timeline-line-width) - var(--hd-timeline-item-container-margin));
	left: 0;
	margin-left: 0;
}

.hd-timeline-align-left-alternate > div:nth-child(odd)>.hd-timeline-item-container {
	position: relative;
	width: calc(50% - var(--hd-timeline-icon-size) - var(--hd-timeline-icon-padding) - var(--hd-timeline-line-width) - var(--hd-timeline-item-container-margin));
	left: 50%;
	margin-left: calc((var(--hd-timeline-icon-size) + var(--hd-timeline-icon-padding) + var(--hd-timeline-line-width)) + var(--hd-timeline-item-container-margin));
	margin-right: 0;
}

.hd-timeline-container > div>.el-timeline-icon {
	position: absolute;
	background-color: #fff;
	border-radius: 50%;
	border-width: var(--hd-timeline-line-width);
	padding: var(--hd-timeline-icon-padding);
	border-style: solid;
}

.hd-timeline-align-right > div>.el-timeline-icon {
	left: 0;
}

.hd-timeline-align-left > div>.el-timeline-icon {
	left: calc(100% - (var(--hd-timeline-icon-size) + var(--hd-timeline-icon-padding) + var(--hd-timeline-line-width)) * 2);
}

.hd-timeline-align-right-alternate > div>.el-timeline-icon,
.hd-timeline-align-left-alternate > div>.el-timeline-icon {
	left: calc(50% - var(--hd-timeline-icon-size) - var(--hd-timeline-line-width) - var(--hd-timeline-icon-padding));
}

.hd-timeline-align-right > div>.hd-timeline-icon-default,
.hd-timeline-align-left > div>.hd-timeline-icon-default,
.hd-timeline-align-left-alternate > div>.hd-timeline-icon-default,
.hd-timeline-align-right-alternate > div>.hd-timeline-icon-default {
	margin-left: var(--hd-timeline-icon-size);
}

@media (min-width: 640px) {
	.hd-timeline-align-right\@s>.hd-timeline-line {
		left: calc(var(--hd-timeline-icon-size) + var(--hd-timeline-icon-padding) + var(--hd-timeline-line-width) / 2);
		transform: none;
	}

	.hd-timeline-align-left\@s>.hd-timeline-line {
		left: calc(100% - var(--hd-timeline-icon-size) - var(--hd-timeline-icon-padding) - var(--hd-timeline-line-width));
		transform: translateX(-50%);
	}

	.hd-timeline-align-right-alternate\@s>.hd-timeline-line {
		left: 50%;
		transform: translateX(-50%);
	}

	.hd-timeline-align-left-alternate\@s>.hd-timeline-line {
		left: 50%;
		transform: translateX(-50%);
	}


	.hd-timeline-align-right\@s > div:nth-child(n)>.hd-timeline-item-container {
		width: auto;
		left: 0;
		margin-left: calc((var(--hd-timeline-icon-size) + var(--hd-timeline-icon-padding) + var(--hd-timeline-line-width)) * 2 + var(--hd-timeline-item-container-margin));
		margin-right: 0;
	}

	.hd-timeline-align-left\@s > div:nth-child(n)>.hd-timeline-item-container {
		width: auto;
		left: 0;
		margin-right: calc((var(--hd-timeline-icon-size) + var(--hd-timeline-icon-padding) + var(--hd-timeline-line-width)) * 2 + var(--hd-timeline-item-container-margin));
		margin-left: 0;
	}

	.hd-timeline-align-right-alternate\@s > div:nth-child(even)>.hd-timeline-item-container {
		width: calc(50% - var(--hd-timeline-icon-size) - var(--hd-timeline-icon-padding) - var(--hd-timeline-line-width) - var(--hd-timeline-item-container-margin));
		left: 50%;
		margin-left: calc((var(--hd-timeline-icon-size) + var(--hd-timeline-icon-padding) + var(--hd-timeline-line-width)) + var(--hd-timeline-item-container-margin));
		margin-right: 0;
	}

	.hd-timeline-align-right-alternate\@s > div:nth-child(odd)>.hd-timeline-item-container {
		width: calc(50% - var(--hd-timeline-icon-size) - var(--hd-timeline-icon-padding) - var(--hd-timeline-line-width) - var(--hd-timeline-item-container-margin));
		left: 0;
		margin-left: 0;
	}

	.hd-timeline-align-left-alternate\@s > div:nth-child(even)>.hd-timeline-item-container {
		width: calc(50% - var(--hd-timeline-icon-size) - var(--hd-timeline-icon-padding) - var(--hd-timeline-line-width) - var(--hd-timeline-item-container-margin));
		left: 0;
		margin-left: 0;
	}

	.hd-timeline-align-left-alternate\@s > div:nth-child(odd)>.hd-timeline-item-container {
		width: calc(50% - var(--hd-timeline-icon-size) - var(--hd-timeline-icon-padding) - var(--hd-timeline-line-width) - var(--hd-timeline-item-container-margin));
		left: 50%;
		margin-left: calc((var(--hd-timeline-icon-size) + var(--hd-timeline-icon-padding) + var(--hd-timeline-line-width)) + var(--hd-timeline-item-container-margin));
		margin-right: 0;
	}

	.hd-timeline-align-right\@s > div>.el-timeline-icon {
		left: 0;
	}

	.hd-timeline-align-left\@s > div>.el-timeline-icon {
		left: calc(100% - (var(--hd-timeline-icon-size) + var(--hd-timeline-icon-padding) + var(--hd-timeline-line-width)) * 2);
	}

	.hd-timeline-align-right-alternate\@s > div>.el-timeline-icon,
	.hd-timeline-align-left-alternate\@s > div>.el-timeline-icon {
		left: calc(50% - var(--hd-timeline-icon-size) - var(--hd-timeline-line-width) - var(--hd-timeline-icon-padding));
	}
}

@media (min-width: 960px) {

	.hd-timeline-align-right\@m>.hd-timeline-line {
		left: calc(var(--hd-timeline-icon-size) + var(--hd-timeline-icon-padding) + var(--hd-timeline-line-width) / 2);
		transform: none;
	}

	.hd-timeline-align-left\@m>.hd-timeline-line {
		left: calc(100% - var(--hd-timeline-icon-size) - var(--hd-timeline-icon-padding) - var(--hd-timeline-line-width));
		transform: translateX(-50%);
	}

	.hd-timeline-align-right-alternate\@m>.hd-timeline-line {
		left: 50%;
		transform: translateX(-50%);
	}

	.hd-timeline-align-left-alternate\@m>.hd-timeline-line {
		left: 50%;
		transform: translateX(-50%);
	}


	.hd-timeline-align-right\@m > div:nth-child(n)>.hd-timeline-item-container {
		width: auto;
		left: 0;
		margin-left: calc((var(--hd-timeline-icon-size) + var(--hd-timeline-icon-padding) + var(--hd-timeline-line-width)) * 2 + var(--hd-timeline-item-container-margin));
		margin-right: 0;
	}

	.hd-timeline-align-left\@m > div:nth-child(n)>.hd-timeline-item-container {
		width: auto;
		left: 0;
		margin-right: calc((var(--hd-timeline-icon-size) + var(--hd-timeline-icon-padding) + var(--hd-timeline-line-width)) * 2 + var(--hd-timeline-item-container-margin));
		margin-left: 0;
	}

	.hd-timeline-align-right-alternate\@m > div:nth-child(even)>.hd-timeline-item-container {
		width: calc(50% - var(--hd-timeline-icon-size) - var(--hd-timeline-icon-padding) - var(--hd-timeline-line-width) - var(--hd-timeline-item-container-margin));
		left: 50%;
		margin-left: calc((var(--hd-timeline-icon-size) + var(--hd-timeline-icon-padding) + var(--hd-timeline-line-width)) + var(--hd-timeline-item-container-margin));
		margin-right: 0;
	}

	.hd-timeline-align-right-alternate\@m > div:nth-child(odd)>.hd-timeline-item-container {
		width: calc(50% - var(--hd-timeline-icon-size) - var(--hd-timeline-icon-padding) - var(--hd-timeline-line-width) - var(--hd-timeline-item-container-margin));
		left: 0;
		margin-left: 0;
	}

	.hd-timeline-align-left-alternate\@m > div:nth-child(even)>.hd-timeline-item-container {
		width: calc(50% - var(--hd-timeline-icon-size) - var(--hd-timeline-icon-padding) - var(--hd-timeline-line-width) - var(--hd-timeline-item-container-margin));
		left: 0;
		margin-left: 0;
	}

	.hd-timeline-align-left-alternate\@m > div:nth-child(odd)>.hd-timeline-item-container {
		width: calc(50% - var(--hd-timeline-icon-size) - var(--hd-timeline-icon-padding) - var(--hd-timeline-line-width) - var(--hd-timeline-item-container-margin));
		left: 50%;
		margin-left: calc((var(--hd-timeline-icon-size) + var(--hd-timeline-icon-padding) + var(--hd-timeline-line-width)) + var(--hd-timeline-item-container-margin));
		margin-right: 0;
	}

	.hd-timeline-align-right\@m > div>.el-timeline-icon {
		left: 0;
	}

	.hd-timeline-align-left\@m > div>.el-timeline-icon {
		left: calc(100% - (var(--hd-timeline-icon-size) + var(--hd-timeline-icon-padding) + var(--hd-timeline-line-width)) * 2);
	}

	.hd-timeline-align-right-alternate\@m > div>.el-timeline-icon,
	.hd-timeline-align-left-alternate\@m > div>.el-timeline-icon {
		left: calc(50% - var(--hd-timeline-icon-size) - var(--hd-timeline-line-width) - var(--hd-timeline-icon-padding));
	}
}

@media (min-width: 1200px) {

	.hd-timeline-align-right\@l>.hd-timeline-line {
		left: calc(var(--hd-timeline-icon-size) + var(--hd-timeline-icon-padding) + var(--hd-timeline-line-width) / 2);
		transform: none;
	}

	.hd-timeline-align-left\@l>.hd-timeline-line {
		left: calc(100% - var(--hd-timeline-icon-size) - var(--hd-timeline-icon-padding) - var(--hd-timeline-line-width));
		transform: translateX(-50%);
	}

	.hd-timeline-align-right-alternate\@l>.hd-timeline-line {
		left: 50%;
		transform: translateX(-50%);
	}

	.hd-timeline-align-left-alternate\@l>.hd-timeline-line {
		left: 50%;
		transform: translateX(-50%);
	}


	.hd-timeline-align-right\@l > div:nth-child(n)>.hd-timeline-item-container {
		width: auto;
		left: 0;
		margin-left: calc((var(--hd-timeline-icon-size) + var(--hd-timeline-icon-padding) + var(--hd-timeline-line-width)) * 2 + var(--hd-timeline-item-container-margin));
		margin-right: 0;
	}

	.hd-timeline-align-left\@l > div:nth-child(n)>.hd-timeline-item-container {
		width: auto;
		left: 0;
		margin-right: calc((var(--hd-timeline-icon-size) + var(--hd-timeline-icon-padding) + var(--hd-timeline-line-width)) * 2 + var(--hd-timeline-item-container-margin));
		margin-left: 0;
	}

	.hd-timeline-align-right-alternate\@l > div:nth-child(even)>.hd-timeline-item-container {
		width: calc(50% - var(--hd-timeline-icon-size) - var(--hd-timeline-icon-padding) - var(--hd-timeline-line-width) - var(--hd-timeline-item-container-margin));
		left: 50%;
		margin-left: calc((var(--hd-timeline-icon-size) + var(--hd-timeline-icon-padding) + var(--hd-timeline-line-width)) + var(--hd-timeline-item-container-margin));
		margin-right: 0;
	}

	.hd-timeline-align-right-alternate\@l > div:nth-child(odd)>.hd-timeline-item-container {
		width: calc(50% - var(--hd-timeline-icon-size) - var(--hd-timeline-icon-padding) - var(--hd-timeline-line-width) - var(--hd-timeline-item-container-margin));
		left: 0;
		margin-left: 0;
	}

	.hd-timeline-align-left-alternate\@l > div:nth-child(even)>.hd-timeline-item-container {
		width: calc(50% - var(--hd-timeline-icon-size) - var(--hd-timeline-icon-padding) - var(--hd-timeline-line-width) - var(--hd-timeline-item-container-margin));
		left: 0;
		margin-left: 0;
	}

	.hd-timeline-align-left-alternate\@l > div:nth-child(odd)>.hd-timeline-item-container {
		width: calc(50% - var(--hd-timeline-icon-size) - var(--hd-timeline-icon-padding) - var(--hd-timeline-line-width) - var(--hd-timeline-item-container-margin));
		left: 50%;
		margin-left: calc((var(--hd-timeline-icon-size) + var(--hd-timeline-icon-padding) + var(--hd-timeline-line-width)) + var(--hd-timeline-item-container-margin));
		margin-right: 0;
	}

	.hd-timeline-align-right\@l > div>.el-timeline-icon {
		left: 0;
	}

	.hd-timeline-align-left\@l > div>.el-timeline-icon {
		left: calc(100% - (var(--hd-timeline-icon-size) + var(--hd-timeline-icon-padding) + var(--hd-timeline-line-width)) * 2);
	}

	.hd-timeline-align-right-alternate\@l > div>.el-timeline-icon,
	.hd-timeline-align-left-alternate\@l > div>.el-timeline-icon {
		left: calc(50% - var(--hd-timeline-icon-size) - var(--hd-timeline-line-width) - var(--hd-timeline-icon-padding));
	}
}

@media (min-width: 1600px) {

	.hd-timeline-align-right\@xl>.hd-timeline-line {
		left: calc(var(--hd-timeline-icon-size) + var(--hd-timeline-icon-padding) + var(--hd-timeline-line-width) / 2);
		transform: none;
	}

	.hd-timeline-align-left\@xl>.hd-timeline-line {
		left: calc(100% - var(--hd-timeline-icon-size) - var(--hd-timeline-icon-padding) - var(--hd-timeline-line-width));
		transform: translateX(-50%);
	}

	.hd-timeline-align-right-alternate\@xl>.hd-timeline-line {
		left: 50%;
		transform: translateX(-50%);
	}

	.hd-timeline-align-left-alternate\@xl>.hd-timeline-line {
		left: 50%;
		transform: translateX(-50%);
	}

	.hd-timeline-align-right\@xl > div:nth-child(n)>.hd-timeline-item-container {
		width: auto;
		left: 0;
		margin-left: calc((var(--hd-timeline-icon-size) + var(--hd-timeline-icon-padding) + var(--hd-timeline-line-width)) * 2 + var(--hd-timeline-item-container-margin));
		margin-right: 0;
	}

	.hd-timeline-align-left\@xl > div:nth-child(n)>.hd-timeline-item-container {
		width: auto;
		left: 0;
		margin-right: calc((var(--hd-timeline-icon-size) + var(--hd-timeline-icon-padding) + var(--hd-timeline-line-width)) * 2 + var(--hd-timeline-item-container-margin));
		margin-left: 0;
	}

	.hd-timeline-align-right-alternate\@xl > div:nth-child(even)>.hd-timeline-item-container {
		width: calc(50% - var(--hd-timeline-icon-size) - var(--hd-timeline-icon-padding) - var(--hd-timeline-line-width) - var(--hd-timeline-item-container-margin));
		left: 50%;
		margin-left: calc((var(--hd-timeline-icon-size) + var(--hd-timeline-icon-padding) + var(--hd-timeline-line-width)) + var(--hd-timeline-item-container-margin));
		margin-right: 0;
	}

	.hd-timeline-align-right-alternate\@xl > div:nth-child(odd)>.hd-timeline-item-container {
		width: calc(50% - var(--hd-timeline-icon-size) - var(--hd-timeline-icon-padding) - var(--hd-timeline-line-width) - var(--hd-timeline-item-container-margin));
		left: 0;
		margin-left: 0;
	}

	.hd-timeline-align-left-alternate\@xl > div:nth-child(even)>.hd-timeline-item-container {
		width: calc(50% - var(--hd-timeline-icon-size) - var(--hd-timeline-icon-padding) - var(--hd-timeline-line-width) - var(--hd-timeline-item-container-margin));
		left: 0;
		margin-left: 0;
	}

	.hd-timeline-align-left-alternate\@xl > div:nth-child(odd)>.hd-timeline-item-container {
		width: calc(50% - var(--hd-timeline-icon-size) - var(--hd-timeline-icon-padding) - var(--hd-timeline-line-width) - var(--hd-timeline-item-container-margin));
		left: 50%;
		margin-left: calc((var(--hd-timeline-icon-size) + var(--hd-timeline-icon-padding) + var(--hd-timeline-line-width)) + var(--hd-timeline-item-container-margin));
		margin-right: 0;
	}

	.hd-timeline-align-right\@xl > div>.el-timeline-icon {
		left: 0;
	}

	.hd-timeline-align-left\@xl > div>.el-timeline-icon {
		left: calc(100% - (var(--hd-timeline-icon-size) + var(--hd-timeline-icon-padding) + var(--hd-timeline-line-width)) * 2);
	}

	.hd-timeline-align-right-alternate\@xl > div>.el-timeline-icon,
	.hd-timeline-align-left-alternate\@xl > div>.el-timeline-icon {
		left: calc(50% - var(--hd-timeline-icon-size) - var(--hd-timeline-line-width) - var(--hd-timeline-icon-padding));
	}
}