/**
 * HH Sitemap – Frontend-Styles
 *
 * Farben lassen sich über die CSS-Variablen überschreiben, z. B.:
 * .hh-sitemap { --hh-sitemap-accent: #0f766e; }
 */

.hh-sitemap {
	--hh-sitemap-accent: #12796f;
	--hh-sitemap-accent-hover: #0d5a52;
	--hh-sitemap-line: #d6e3e1;
	--hh-sitemap-title: #1c2a29;
	--hh-sitemap-text: #5d6d6b;
	--hh-sitemap-meta: #a0adab;
	--hh-sitemap-indent: 46px;
	--hh-sitemap-row-pad: 9px;
	/* Zusätzlicher Abstand zwischen den Hauptmenü-Punkten (oberste Ebene). */
	--hh-sitemap-gap-level-0: 20px;

	color: var(--hh-sitemap-text);
	max-width: 100%;
}

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

/* Abschnitte -------------------------------------------------------------- */

.hh-sitemap__section + .hh-sitemap__section {
	margin-top: 34px;
}

/* Titel der optionalen Blöcke (Footer, weitere Seiten, Sammelposten).
   Die Grösse ist in den Einstellungen überschreibbar.

   Höhere Spezifität plus !important auf Schriftgrösse und Zeilenhöhe: Themes
   setzen h2 global (Avada z. B. über .fusion-body h2) und würden die
   Einstellung sonst überstimmen. Die übrigen Eigenschaften bleiben bewusst
   normal gewichtet, damit das Theme Farbe und Abstände weiter beeinflussen
   kann. */
.hh-sitemap .hh-sitemap__section .hh-sitemap__heading {
	font-size: var(--hh-sitemap-heading-size, 1.125rem) !important;
	line-height: 1.3 !important;
	margin: 0 0 12px;
	color: var(--hh-sitemap-title);
}

/* Listen ----------------------------------------------------------------- */

.hh-sitemap__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.hh-sitemap__list--depth-0 {
	--hh-icon: 34px;
	--hh-parent: 34px;
	--hh-title-size: 1.0625rem;
	--hh-title-weight: 700;
}

.hh-sitemap__list--depth-1 {
	--hh-icon: 30px;
	--hh-parent: 34px;
	--hh-title-size: 1rem;
	--hh-title-weight: 700;
}

.hh-sitemap__list--depth-2 {
	--hh-icon: 28px;
	--hh-parent: 30px;
	--hh-title-size: 0.9375rem;
	--hh-title-weight: 600;
}

.hh-sitemap__list--depth-3 {
	--hh-icon: 26px;
	--hh-parent: 28px;
	--hh-title-size: 0.9375rem;
	--hh-title-weight: 600;
}

.hh-sitemap__list--depth-4 {
	--hh-icon: 26px;
	--hh-parent: 26px;
	--hh-title-size: 0.9375rem;
	--hh-title-weight: 600;
}

.hh-sitemap__children {
	padding-left: var(--hh-sitemap-indent);
}

/* Hauptmenü-Punkte deutlicher voneinander trennen. Die Verbindungslinien
   liegen innerhalb des jeweiligen Eintrags und werden davon nicht berührt.
   Bewusst nur im Hauptmenü-Block: die Einträge unter «Footer», «Weitere
   Seiten» und im Sammelposten stehen enger, wie die Unterpunkte des
   Hauptmenüs. */
.hh-sitemap__section--main .hh-sitemap__list--depth-0 > .hh-sitemap__item + .hh-sitemap__item {
	margin-top: var(--hh-sitemap-gap-level-0);
}

.hh-sitemap__item {
	position: relative;
	margin: 0;
	padding: 0;
	list-style: none;
}

.hh-sitemap__item::marker {
	content: none;
}

/* Zeile ----------------------------------------------------------------- */

.hh-sitemap__row {
	position: relative;
	display: flex;
	align-items: flex-start;
	gap: 14px;
	padding: var(--hh-sitemap-row-pad) 0;
}

.hh-sitemap__icon {
	position: relative;
	z-index: 1;
	flex: 0 0 var(--hh-icon);
	width: var(--hh-icon);
	height: var(--hh-icon);
	border-radius: 50%;
	background: var(--hh-sitemap-accent);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* Material Icons sind Flächen, keine Konturen. fill/stroke stehen bewusst nur
   am <svg>: die beiden Marken-Icons setzen eigene Attribute an ihren Elementen
   und überschreiben damit den geerbten Wert. */
.hh-sitemap__icon svg {
	width: calc(var(--hh-icon) * 0.56);
	height: calc(var(--hh-icon) * 0.56);
	display: block;
	fill: currentColor;
	stroke: none;
}

.hh-sitemap__body {
	min-width: 0;
	padding-top: 1px;
	/* Verhindert Überlauf bei langen Wörtern, URLs oder Keyword-Listen. */
	overflow-wrap: break-word;
	word-wrap: break-word;
}

.hh-sitemap__title {
	display: block;
	font-size: var(--hh-title-size, 1rem);
	font-weight: var(--hh-title-weight, 600);
	line-height: 1.35;
	color: var(--hh-sitemap-title);
	text-decoration: none;
}

a.hh-sitemap__title:hover,
a.hh-sitemap__title:focus {
	color: var(--hh-sitemap-accent);
	text-decoration: underline;
}

.hh-sitemap__item.is-group > .hh-sitemap__row .hh-sitemap__title {
	color: var(--hh-sitemap-title);
}

.hh-sitemap__description {
	display: block;
	margin-top: 2px;
	font-size: 0.875rem;
	line-height: 1.45;
	color: var(--hh-sitemap-text);
}

.hh-sitemap__keywords {
	display: block;
	margin-top: 3px;
	font-size: 0.75rem;
	line-height: 1.4;
	color: var(--hh-sitemap-meta);
}

/* Verbindungslinien ------------------------------------------------------ */

/* Segment unterhalb des Icons eines Eintrags mit Unterpunkten. */
.hh-sitemap__item.is-parent > .hh-sitemap__row::after {
	content: "";
	position: absolute;
	top: calc(var(--hh-sitemap-row-pad) + var(--hh-icon));
	bottom: 0;
	left: calc(var(--hh-icon) / 2 - 1px);
	width: 2px;
	background: var(--hh-sitemap-line);
}

/* Durchgehende Linie links der Unterpunkte, ausgerichtet auf das Eltern-Icon. */
.hh-sitemap__children > .hh-sitemap__item::before {
	content: "";
	position: absolute;
	top: 0;
	height: 100%;
	left: calc(var(--hh-parent) / 2 - var(--hh-sitemap-indent) - 1px);
	width: 2px;
	background: var(--hh-sitemap-line);
}

/* Beim letzten Unterpunkt endet die Linie auf Höhe seines Icons. */
.hh-sitemap__children > .hh-sitemap__item.is-last::before {
	height: calc(var(--hh-sitemap-row-pad) + var(--hh-icon) / 2);
}

/* Variante ohne Icons --------------------------------------------------- */

.hh-sitemap--no-icons .hh-sitemap__icon {
	display: none;
}

.hh-sitemap--no-icons .hh-sitemap__item.is-parent > .hh-sitemap__row::after,
.hh-sitemap--no-icons .hh-sitemap__children > .hh-sitemap__item::before {
	display: none;
}

.hh-sitemap--no-icons .hh-sitemap__children {
	margin-left: 4px;
	padding-left: 20px;
	border-left: 2px solid var(--hh-sitemap-line);
}

.hh-sitemap--no-icons .hh-sitemap__row {
	padding: 5px 0;
}

/* Hinweis für Redaktion ------------------------------------------------- */

.hh-sitemap-notice {
	padding: 12px 16px;
	border-left: 4px solid #d63638;
	background: #fcf0f1;
}

/* Mobil ----------------------------------------------------------------- */

@media (max-width: 600px) {
	.hh-sitemap {
		--hh-sitemap-indent: 26px;
	}

	.hh-sitemap__list--depth-0 {
		--hh-icon: 30px;
		--hh-parent: 30px;
	}

	.hh-sitemap__list--depth-1 {
		--hh-icon: 26px;
		--hh-parent: 30px;
	}

	.hh-sitemap__list--depth-2 {
		--hh-icon: 24px;
		--hh-parent: 26px;
	}

	.hh-sitemap__list--depth-3,
	.hh-sitemap__list--depth-4 {
		--hh-icon: 22px;
		--hh-parent: 24px;
	}

	.hh-sitemap__row {
		gap: 10px;
	}
}

/* Druck ----------------------------------------------------------------- */

@media print {
	.hh-sitemap__icon {
		background: none;
		color: #000;
		border: 1px solid #000;
	}

	.hh-sitemap__title {
		color: #000;
	}
}
