/* =====================================================================================================
   Zeitleiste „Unser Stamm“ (com_dpsgchronik) – DPSG Stamm Bardenberg
   Entwurf „A + C · Fahrtenbuch in Kapiteln“ (Okt. 2026).
   Nutzt nur die Variablen des Templates dpsgbardenberg (tags.css); Werte nach dem Komma sind Ersatz,
   falls die Seite einmal ohne das Template angezeigt wird.
   Linien: 1px fein (Gold, durchgehend wie in Beiträgen), 2px Akzent, 4px Karte (Linie oben).
===================================================================================================== */

.chronik {
	--chronik-blau: var(--dpsg-blue, #013056);
	--chronik-gold: var(--hover-color, #c9b97e);
	--chronik-grund: var(--background-1, #faf6f0);
	--chronik-weiss: var(--white, #ffffff);
	--chronik-text: var(--text-font-color, #616161);
	--chronik-schatten: var(--box-shadow, 0 2px 15px rgba(0, 0, 0, 0.08));
	--chronik-abstand: var(--gap-big, 2.4vw);
	--chronik-fett: var(--text-font-weight-bold, 600);

	/* gleiche Breite wie Beiträge (Template-Variable --site-width, 85 %) */
	width: var(--site-width, 85%);
	max-width: none;
	margin: 0 auto;
	padding: calc(var(--chronik-abstand) * 1.5) 0 calc(var(--chronik-abstand) * 2);
	color: var(--chronik-text);
	font-family: var(--font-family, "Roboto"), var(--font-family-alternativ, "Arial"), sans-serif;
}

.chronik *,
.chronik *::before,
.chronik *::after {
	box-sizing: border-box;
}

.chronik p,
.chronik figure,
.chronik blockquote,
.chronik ol,
.chronik h1,
.chronik h2 {
	margin: 0;
}

.chronik__kicker {
	font-size: 0.8125rem;
	font-weight: var(--chronik-fett);
	letter-spacing: 0.13em;
	text-transform: uppercase;
	color: var(--chronik-blau);
}

.chronik__linie {
	height: 1px;
	margin: calc(var(--chronik-abstand) * 1.5) 0;
	background: var(--chronik-gold); /* durchgehend wie in Beiträgen, ohne Übergang */
}

.chronik__klebeband {
	position: absolute;
	top: -12px;
	left: 3rem;
	width: 110px;
	height: 26px;
	background: var(--chronik-gold);
	opacity: 0.55;
	transform: rotate(-3deg);
}

/* ---------- Kopf ---------- */
.chronik__kopf {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	max-width: 60rem;
}

.chronik__titel {
	font-size: clamp(2rem, 3vw, 2.75rem);
	line-height: 1.15;
	font-weight: 700;
	letter-spacing: 0.06em;
	color: var(--chronik-blau);
}

.chronik__einleitung {
	font-size: 1.1875rem;
	line-height: 1.7;
	font-weight: 300;
}

/* ---------- Zitat / erste Erwähnung ---------- */
.chronik-brief {
	display: flex;
	flex-wrap: wrap;
	gap: 3rem;
	align-items: center;
}

.chronik-brief__datum {
	flex: 0 1 18rem;
	display: flex;
	flex-direction: column;
	color: var(--chronik-blau);
}

.chronik-brief__tag,
.chronik-brief__jahr {
	font-size: clamp(4rem, 7vw, 6rem);
	line-height: 0.92;
	font-weight: 700;
}

.chronik-brief__jahr {
	color: transparent;
	-webkit-text-stroke: 2px var(--chronik-blau);
}

.chronik-brief__monat {
	font-size: 1.875rem;
	font-weight: 300;
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

.chronik-brief__zettel {
	position: relative;
	flex: 999 1 32rem;
	padding: 2.5rem 2.75rem 2rem;
	background: var(--chronik-weiss);
	box-shadow: var(--chronik-schatten);
	transform: rotate(-0.6deg);
}

.chronik-brief__zitat {
	padding: 0;
	border: 0;
	font-size: 1.375rem;
	line-height: 1.6;
	font-weight: 300;
	font-style: italic;
	color: var(--chronik-blau);
}

.chronik-brief__quelle {
	margin-top: 1.5rem;
	padding-top: 1rem;
	border-top: 1px solid var(--chronik-gold);
	font-size: 0.875rem;
	line-height: 1.6;
}

/* ---------- Kapitel-Leiste ---------- */
.chronik-nav {
	margin-top: calc(var(--chronik-abstand) * 2);
	border-top: 1px solid var(--chronik-gold);
	border-bottom: 1px solid var(--chronik-gold);
}

.chronik-nav__liste {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(11.5rem, 1fr));
	padding: 0;
	list-style: none;
}

.chronik-nav__liste li {
	margin: 0;
	padding: 0;
}

.chronik-nav__link {
	display: block;
	height: 100%;
	min-height: 5.25rem;
	padding: 1.125rem 1rem;
	border-top: 4px solid transparent;
	color: var(--chronik-blau);
	text-decoration: none;
	transition: background-color 0.2s;
}

.chronik-nav__link:hover,
.chronik-nav__link:focus-visible {
	background: var(--chronik-weiss);
	color: var(--chronik-blau);
}

.chronik-nav__link[aria-current="true"] {
	border-top-color: var(--chronik-blau);
	background: var(--chronik-weiss);
}

.chronik-nav__nr {
	display: block;
	font-size: 0.75rem;
	font-weight: var(--chronik-fett);
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

.chronik-nav__titel {
	display: block;
	margin-top: 0.375rem;
	font-size: 1.0625rem;
	line-height: 1.3;
	font-weight: var(--chronik-fett);
}

/* ---------- Ein Kapitel ---------- */
.chronik-kapitel {
	display: flex;
	flex-wrap: wrap;
	gap: 2.5rem 3.5rem;
	align-items: flex-start;
	margin-top: calc(var(--chronik-abstand) * 2);
	scroll-margin-top: 6rem;
}

/* Mit JavaScript ist immer nur ein Kapitel sichtbar */
.chronik.ist-aktiv .chronik-kapitel:not(.ist-offen) {
	display: none;
}

.chronik-kapitel__seite {
	flex: 0 1 18.75rem;
	align-self: stretch;
}

.chronik-kapitel__klebe {
	position: sticky;
	top: 2rem;
}

.chronik-kapitel__von {
	margin-top: 0.625rem;
	font-size: clamp(4.5rem, 8vw, 7.5rem);
	line-height: 0.85;
	font-weight: 700;
	color: transparent;
	-webkit-text-stroke: 2px var(--chronik-gold);
}

.chronik-kapitel__bis {
	font-size: clamp(1.75rem, 3vw, 2.75rem);
	line-height: 1.1;
	font-weight: 300;
	color: var(--chronik-blau);
}

.chronik-kapitel__titel {
	margin-top: 1.375rem;
	font-size: 1.625rem;
	line-height: 1.3;
	font-weight: 700;
	letter-spacing: 0.06em;
	color: var(--chronik-blau);
}

.chronik-kapitel__intro {
	margin-top: 0.875rem;
	font-size: 1rem;
	line-height: 1.7;
	font-weight: 300;
}

.chronik-kapitel__inhalt {
	flex: 999 1 35rem;
	min-width: 0;
}

/* ---------- Ereignisse ---------- */
.chronik-eintraege {
	display: flex;
	flex-direction: column;
	gap: 2.5rem;
	padding: 0;
	list-style: none;
}

.chronik-eintrag {
	margin: 0;
	padding: 0;
}

.chronik-eintrag--foto {
	display: flex;
	flex-wrap: wrap;
	gap: 1.75rem;
	align-items: flex-start;
}

.chronik-eintrag--links {
	flex-direction: row-reverse;
}

.chronik-eintrag__text {
	flex: 1 1 18.75rem;
	min-width: 0;
}

.chronik-eintrag__jahr {
	margin-bottom: 0.5rem;
	font-size: 1.375rem;
	font-weight: 700;
	letter-spacing: 0.13em;
	color: var(--chronik-blau);
}

.chronik-eintrag__beschreibung {
	font-size: 1.0625rem;
	line-height: 1.7;
}

.chronik-eintrag__zitat {
	margin-top: 1.125rem;
	padding: 0 0 0 1.25rem;
	border: 0;
	border-left: 2px solid var(--chronik-gold);
	font-size: 1.0625rem;
	line-height: 1.6;
	font-style: italic;
	font-weight: 300;
	color: var(--chronik-blau);
}

/* Foto: weißer Rahmen, leicht schräg (bewusst ohne Bewegung beim Darüberfahren) */
.chronik-foto {
	flex: 0 1 22rem;
	padding: 10px 10px 12px;
	background: var(--chronik-weiss);
	box-shadow: var(--chronik-schatten);
	transform: rotate(1.4deg);
}

.chronik-eintrag--links .chronik-foto {
	transform: rotate(-1.2deg);
}

.chronik-foto--hoch {
	flex-basis: 15rem;
}

.chronik .chronik-foto img {
	display: block;
	width: 100%;
	max-width: none;
	height: auto;
	margin: 0;
	padding: 0;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.chronik .chronik-foto--hoch img {
	aspect-ratio: 3 / 4;
	object-position: center top;
}

.chronik-foto figcaption {
	margin-top: 0.5rem;
	font-size: 0.8125rem;
	line-height: 1.5;
}

/* ---------- Sommerlager ---------- */
.chronik-lager {
	margin-top: 3.5rem;
	background: var(--chronik-weiss);
	box-shadow: var(--chronik-schatten);
}

.chronik-lager__titel {
	padding: 1.125rem 1.375rem;
	background: var(--chronik-blau);
	color: var(--chronik-weiss);
	font-size: 0.8125rem;
	font-weight: var(--chronik-fett);
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

.chronik-lager__liste {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(16.25rem, 1fr));
	column-gap: 2rem;
	padding: 0.375rem 1.375rem 0.875rem;
	list-style: none;
}

.chronik-lager__zeile {
	display: flex;
	gap: 0.75rem;
	align-items: baseline;
	margin: 0;
	padding: 0.6875rem 0;
	border-bottom: 1px solid var(--background-table, #ebebeb);
	color: var(--chronik-blau);
	font-size: 1rem;
	line-height: 1.4;
}

.chronik-lager__jahr {
	flex: 0 0 auto;
	min-width: 3.25rem;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}

.chronik-lager__ort {
	flex: 1 1 auto;
	min-width: 0;
}

.chronik-lager__land {
	flex: 0 0 auto;
	padding: 3px 6px;
	border: 1px solid var(--chronik-gold);
	color: var(--chronik-text);
	font-size: 0.6875rem;
	font-weight: var(--chronik-fett);
	letter-spacing: 0.13em;
}

/* ---------- Weiter (Pfeil follow.webp wie bei „Weiterlesen“) ---------- */
.chronik-weiter {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	min-height: 3rem;
	margin-top: 2.5rem;
	color: var(--chronik-blau);
	font-size: 1rem;
	text-decoration: none;
}

.chronik-weiter::after {
	content: "";
	flex: none;
	width: clamp(20px, 1.5vw, 40px);
	height: clamp(20px, 1.5vw, 40px);
	background: url("../images/follow.webp") no-repeat center / contain;
}

.chronik-weiter:hover,
.chronik-weiter:focus-visible {
	color: var(--hover-color2, #5d2f88);
}

/* ---------- Vorreiter im Bezirk ---------- */
.chronik-vorreiter {
	display: flex;
	flex-wrap: wrap;
	gap: 2rem 3.5rem;
	align-items: flex-start;
}

.chronik-vorreiter__kopf {
	flex: 0 1 18.75rem;
}

.chronik-vorreiter__titel {
	margin-top: 0.75rem;
	font-size: 1.625rem;
	line-height: 1.3;
	font-weight: 700;
	letter-spacing: 0.06em;
	color: var(--chronik-blau);
}

.chronik-vorreiter__text {
	margin-top: 0.875rem;
	font-size: 1rem;
	line-height: 1.7;
	font-weight: 300;
}

.chronik-vorreiter__liste {
	flex: 999 1 35rem;
	min-width: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
	gap: 2.5rem 1.5rem;
	overflow: hidden; /* das Linienstück des letzten Meilensteins einer Reihe endet am Rand */
	margin-top: 0;
	padding: 2.5rem 0 0 8px; /* Platz für die Zeichen über der Linie */
	list-style: none;
}

/* Jeder Meilenstein trägt sein Stück der goldenen Linie – so läuft sie auch nach einem Umbruch weiter */
.chronik-meilenstein {
	position: relative;
	margin: 0;
	padding-top: 3rem;
}

.chronik-meilenstein::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: -1.5rem;
	height: 2px;
	background: var(--chronik-gold);
}

/* Zeichen auf der Linie: Stamm = unser Logo, ganze DPSG = Lilie, Bezirk = Bezirkslogo
   (Bilder unter Optionen → „Vorreiter“; ohne eigenes Bild die mitgelieferten Zeichen) */
.chronik-meilenstein__marke {
	position: absolute;
	z-index: 1;
	top: -31px;
	left: -8px;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: var(--chronik-grund);
}

/* blau eingefärbt: das Bild dient als Maske (transparenter Hintergrund nötig) */
.chronik-meilenstein__marke--blau::before {
	content: "";
	position: absolute;
	inset: 3px;
	background: var(--chronik-blau);
	-webkit-mask: var(--chronik-marke) center / contain no-repeat;
	mask: var(--chronik-marke) center / contain no-repeat;
}

/* Bild in Originalfarben */
.chronik .chronik-meilenstein__marke img {
	position: absolute;
	inset: 3px;
	width: calc(100% - 6px);
	max-width: none;
	height: calc(100% - 6px);
	margin: 0;
	object-fit: contain;
}

/* noch kein Bild hinterlegt (z. B. Bezirkslogo): offener Kreis */
.chronik-meilenstein__marke--leer {
	top: -8px;
	left: 0;
	width: 18px;
	height: 18px;
	border: 2px solid var(--chronik-gold);
}

.chronik-meilenstein__jahr {
	font-size: 1.625rem;
	line-height: 1;
	font-weight: 700;
	color: var(--chronik-blau);
}

.chronik-meilenstein__ebene {
	margin-top: 0.625rem;
	font-size: 0.6875rem;
	font-weight: var(--chronik-fett);
	letter-spacing: 0.13em;
	text-transform: uppercase;
	color: var(--chronik-blau);
}

.chronik-meilenstein__text {
	margin-top: 0.5rem;
	font-size: 0.9375rem;
	line-height: 1.55;
}

/* ---------- Handy ---------- */
@media (max-width: 1020px) {
	.chronik {
		width: auto;
		padding-right: var(--gap, 3vw);
		padding-left: var(--gap, 3vw);
	}

	.chronik-kapitel__klebe {
		position: static;
	}

	.chronik-eintrag--links {
		flex-direction: row;
	}

	.chronik-foto,
	.chronik-foto--hoch {
		flex-basis: 100%;
		max-width: 26rem;
	}

	.chronik-foto--hoch {
		max-width: 16rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.chronik-nav__link {
		transition: none;
	}
}

@media print {
	.chronik.ist-aktiv .chronik-kapitel:not(.ist-offen) {
		display: flex;
	}

	.chronik-nav,
	.chronik-weiter {
		display: none;
	}
}
