/* JCG Repertoire – passt zur Chronik-Vorlage (gleiche Farben) */
.jcg-rep, .jcg-lied, .jcg-programm {
	--jcg-ink: #1a1612;
	--jcg-rust: #b84c1c;
	--jcg-cream: #f5f2ec;
	--jcg-line: #e0dbd0;
	--jcg-muted: #6f675e;
}

/* ── Programm im Beitrag / in der Chronik ───────────────────────────── */
.jcg-programm { margin: 1.5rem 0 0; }
.entry-content .jcg-programm {
	border-top: 2px solid var(--jcg-ink);
	padding-top: 1rem;
}
.jcg-programm-titel {
	font-size: 1rem;
	margin: 0 0 .5rem;
	color: var(--jcg-ink);
}
.jcg-programm-hinweis { font-style: italic; color: var(--jcg-muted); margin: 0 0 .5rem; }
.entry-content ol.jcg-programm-liste,
ol.jcg-programm-liste {
	margin: 0;
	list-style: decimal;
	padding-left: 1.6em;
	line-height: 1.6;
}
.jcg-programm-liste li { margin: 0 0 .15rem; }
.jcg-programm-liste a { color: var(--jcg-rust); text-decoration: none; }
.jcg-programm-liste a:hover, .jcg-programm-liste a:focus-visible { text-decoration: underline; }
.jcg-stueck-info { color: var(--jcg-muted); font-size: .85em; }
.jcg-programm.is-abgesagt .jcg-stueck { color: var(--jcg-muted); }
.jcg-programm-mehr a { color: var(--jcg-rust); }

/* ── Repertoire-Übersicht ───────────────────────────────────────────── */
.jcg-rep { margin: 1rem 0 2rem; }
.jcg-rep-summe { font-size: 1rem; }
.jcg-rep-label {
	font-size: 10px;
	text-transform: uppercase;
	letter-spacing: .1em;
	color: var(--jcg-muted);
	margin-bottom: .4rem;
}
.jcg-rep-top {
	background: var(--jcg-cream);
	border: 1px solid var(--jcg-line);
	border-radius: 4px;
	padding: .9rem 1.1rem;
	margin: 1rem 0 1.5rem;
}
.entry-content .jcg-rep-top ol { margin: 0; padding-left: 1.4em; }
.jcg-rep-top li { margin: .15rem 0; }
.jcg-rep-top a { color: var(--jcg-ink); font-weight: bold; text-decoration: none; }
.jcg-rep-top a:hover { color: var(--jcg-rust); }
.jcg-rep-top span { color: var(--jcg-muted); font-size: .85em; margin-left: .4em; font-variant-numeric: tabular-nums; }

.jcg-rep-suche { display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: center; margin-bottom: .75rem; }
.jcg-rep-suche input[type="search"] {
	flex: 1 1 16rem;
	min-width: 0;
	padding: 9px 14px;
	border: 1px solid var(--jcg-line);
	background: var(--jcg-cream);
	border-radius: 3px;
	font: inherit;
	color: var(--jcg-ink);
}
.jcg-rep-suche input[type="search"]:focus { border-color: var(--jcg-rust); outline: none; }
#jcg-rep-count { font-size: 13px; color: var(--jcg-muted); }

.jcg-rep-scroll { overflow-x: auto; }
.entry-content table.jcg-rep-tabelle,
table.jcg-rep-tabelle {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
	line-height: 1.4;
	border: none;
	margin: 0;
}
.jcg-rep-tabelle th, .jcg-rep-tabelle td {
	border: none;
	border-bottom: 1px solid var(--jcg-line);
	padding: .45rem .5rem;
	text-align: left;
	vertical-align: top;
}
.jcg-rep-tabelle thead th { border-bottom: 2px solid var(--jcg-ink); padding: 0; }
.jcg-rep-tabelle th button {
	all: unset;
	display: block;
	padding: .45rem .5rem;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--jcg-ink);
	cursor: pointer;
	box-sizing: border-box;
	width: 100%;
}
.jcg-rep-tabelle th button:focus-visible { outline: 2px solid var(--jcg-rust); outline-offset: -2px; }
.jcg-rep-tabelle th button[aria-sort="ascending"]::after { content: " ▲"; color: var(--jcg-rust); }
.jcg-rep-tabelle th button[aria-sort="descending"]::after { content: " ▼"; color: var(--jcg-rust); }
.jcg-rep-tabelle .jcg-num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.jcg-rep-tabelle th.jcg-num button { text-align: right; }
.jcg-rep-tabelle td a { color: var(--jcg-ink); font-weight: bold; text-decoration: none; }
.jcg-rep-tabelle td a:hover, .jcg-rep-tabelle td a:focus-visible { color: var(--jcg-rust); text-decoration: underline; }
.jcg-rep-tabelle td:nth-child(2) { color: var(--jcg-muted); }
.jcg-rep-tabelle tbody tr:hover { background: var(--jcg-cream); }
.jcg-show-sm { display: none; }
.jcg-rep-fuss { font-size: 12px; color: var(--jcg-muted); margin-top: .75rem; }

@media (max-width: 600px) {
	.jcg-hide-sm { display: none; }
	.jcg-show-sm { display: block; font-weight: normal; font-size: 12px; color: var(--jcg-muted); }
	.jcg-rep-tabelle th, .jcg-rep-tabelle td { padding-left: .3rem; padding-right: .3rem; }
}

/* ── Seite eines Liedes ─────────────────────────────────────────────── */
.jcg-lied {
	max-width: 860px;
	margin: 0 auto;
	padding: 2rem 1.5rem 4rem;
	color: var(--jcg-ink);
}
.jcg-lied-zurueck a { color: var(--jcg-rust); text-decoration: none; font-size: 13px; }
.jcg-lied-kopf {
	border-bottom: 2px solid var(--jcg-ink);
	padding: 1rem 0 1.25rem;
	margin-bottom: 1.5rem;
}
.jcg-lied-kopf h1 {
	font-size: 2.1rem;
	font-weight: normal;
	line-height: 1.2;
	margin: 0 0 .75rem;
	text-wrap: balance;
}
.jcg-lied-angaben {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
	gap: .75rem 1.5rem;
	margin: 0;
}
.jcg-lied-angaben div { min-width: 0; }
.jcg-lied-angaben dt {
	font-size: 10px;
	text-transform: uppercase;
	letter-spacing: .1em;
	color: var(--jcg-muted);
	font-weight: normal;
}
.jcg-lied-angaben dd { margin: 0; font-size: 15px; }
.jcg-lied-beschreibung { margin-top: 1rem; font-size: 14px; line-height: 1.7; }
.jcg-lied-auftritte h2 {
	font-size: 1.1rem;
	font-weight: normal;
	color: var(--jcg-rust);
	border-left: 3px solid var(--jcg-rust);
	padding-left: .6rem;
	margin: 0 0 1rem;
}
.jcg-lied-liste { list-style: none; margin: 0; padding: 0; }
.jcg-lied-liste li {
	display: grid;
	grid-template-columns: 4rem 1fr;
	gap: 1rem;
	padding: .7rem 0;
	border-bottom: 1px solid var(--jcg-line);
}
.jcg-lied-jahr { font-size: 1.3rem; line-height: 1.2; color: var(--jcg-ink); font-variant-numeric: tabular-nums; }
.jcg-lied-konzert { min-width: 0; font-size: 14px; line-height: 1.6; }
.jcg-lied-konzert a { color: var(--jcg-ink); font-weight: bold; text-decoration: none; }
.jcg-lied-konzert a:hover, .jcg-lied-konzert a:focus-visible { color: var(--jcg-rust); text-decoration: underline; }
.jcg-lied-datum { color: var(--jcg-muted); font-size: 12px; margin-left: .3rem; }
.jcg-lied-konzert .jcg-stueck-info { display: block; }

@media (prefers-reduced-motion: reduce) {
	.jcg-rep *, .jcg-lied * { transition: none !important; }
}
