
.swh-wrap {
	--swh-ink: #171713;
	--swh-muted: #66665f;
	--swh-line: #d8d8d1;
	--swh-panel: #fff;
	--swh-soft: #f7f7f3;
	--swh-fresh: #2c7750;
	--swh-delayed: #a46a0a;
	--swh-stale: #a46a0a;
	--swh-missing: #7a7f87;
	--swh-serif: "Iowan Old Style", "Palatino Linotype", Palatino, Baskerville, Georgia, serif;
	--swh-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	color: var(--swh-ink);
	margin-block: 1.5rem 2.5rem;
}
.swh-wrap.swh-wide {
	position: relative;
	left: 50%;
	width: min(1180px, calc(100vw - 32px));
	max-width: none !important;
	transform: translateX(-50%);
}
.swh-section-head {
	display: flex;
	align-items: baseline;
	gap: 1.25rem;
	margin-bottom: 1rem;
}
.swh-section-head h2 {
	flex: 0 0 auto;
	margin: 0;
	font-family: var(--swh-serif);
	font-size: clamp(2rem, 3.5vw, 2.85rem);
	font-weight: 400;
	line-height: 1;
}
.swh-section-head p {
	max-width: 700px;
	margin: 0;
	color: var(--swh-muted);
	font-family: var(--swh-sans);
	font-size: .9rem;
	line-height: 1.45;
}
.swh-grid {
	display: grid;
	gap: .9rem;
	align-items: stretch;
}
.swh-columns-2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}
.swh-columns-3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}
.swh-columns-4 {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}
.swh-card {
	display: flex;
	flex-direction: column;
	min-width: 0;
	min-height: 250px;
	border: 1px solid var(--swh-line);
	border-top: 2px solid transparent;
	border-radius: 4px;
	padding: 1rem 1.05rem .95rem;
	background: var(--swh-panel);
	font-family: var(--swh-sans);
}
.swh-state-fresh {
	border-top-color: var(--swh-fresh);
}
.swh-state-delayed,
.swh-state-stale {
	border-top-color: var(--swh-delayed);
}
.swh-state-missing {
	border-top-color: var(--swh-missing);
}
.swh-state-static {
	border-top-color: #b5b5ad;
}
.swh-card-head {
	display: grid;
	grid-template-columns: 39px minmax(0, 1fr);
	gap: .75rem;
	align-items: start;
}
.swh-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 39px;
	height: 39px;
}
.swh-icon svg {
	width: 36px;
	height: 36px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.45;
	stroke-linecap: round;
	stroke-linejoin: round;
}
.swh-card h3 {
	margin: .02rem 0 .18rem;
	font-family: var(--swh-serif);
	font-size: 1.38rem;
	font-weight: 400;
	line-height: 1.08;
}
.swh-description {
	margin: 0;
	color: var(--swh-muted);
	font-size: .79rem;
	line-height: 1.4;
}
.swh-card-data {
	margin: .9rem 0 .75rem;
}
.swh-primary,
.swh-secondary,
.swh-meta {
	margin: 0;
}
.swh-primary {
	font-size: .91rem;
	font-weight: 740;
	line-height: 1.42;
}
.swh-secondary {
	margin-top: .3rem;
	color: #343431;
	font-size: .82rem;
	font-weight: 590;
	line-height: 1.42;
}
.swh-meta {
	margin-top: .5rem;
	color: var(--swh-muted);
	font-size: .72rem;
	line-height: 1.38;
}
.swh-more {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	width: fit-content;
	margin-top: auto;
	color: var(--swh-ink);
	font-size: .81rem;
	font-weight: 720;
	text-decoration: none;
	text-underline-offset: .16em;
}
.swh-more:hover,
.swh-more:focus-visible {
	text-decoration: underline;
}
.swh-empty {
	border: 1px dashed var(--swh-line);
	border-radius: 4px;
	padding: 1rem;
	background: var(--swh-soft);
}
@media (max-width: 1050px) {
	.swh-columns-3,
	.swh-columns-4 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (max-width: 700px) {
	.swh-section-head {
		display: block;
	}
	.swh-section-head p {
		margin-top: .5rem;
	}
}
@media (max-width: 620px) {
	.swh-wrap.swh-wide {
		width: min(100%, calc(100vw - 24px));
	}
	.swh-columns-2,
	.swh-columns-3,
	.swh-columns-4 {
		grid-template-columns: 1fr;
	}
	.swh-card {
		min-height: 0;
	}
}
@media (prefers-reduced-motion: reduce) {
	.swh-wrap *,
	.swh-wrap *::before,
	.swh-wrap *::after {
		scroll-behavior: auto !important;
		transition: none !important;
	}
}


/* Kompakte Startseiten-/Sidebar-Ansicht */
.swh-layout-compact {
	margin-block: 0;
}
.swh-layout-compact .swh-section-head {
	display: block;
	margin-bottom: .7rem;
}
.swh-layout-compact .swh-section-head h2 {
	font-size: clamp(1.7rem, 2.5vw, 2.15rem);
}
.swh-layout-compact .swh-section-head p {
	margin-top: .35rem;
	font-size: .78rem;
}
.swh-compact-list {
	border: 1px solid var(--swh-line);
	border-radius: 4px;
	background: var(--swh-panel);
}
.swh-compact-row {
	display: grid;
	grid-template-columns: 34px minmax(0, 1fr) 18px;
	gap: .65rem;
	align-items: center;
	padding: .72rem .8rem;
	border-left: 3px solid transparent;
	border-bottom: 1px solid var(--swh-line);
	color: var(--swh-ink);
	font-family: var(--swh-sans);
	text-decoration: none;
}
.swh-compact-row:last-child { border-bottom: 0; }
.swh-compact-row.swh-state-fresh { border-left-color: var(--swh-fresh); }
.swh-compact-row.swh-state-delayed,
.swh-compact-row.swh-state-stale { border-left-color: var(--swh-delayed); }
.swh-compact-row.swh-state-missing { border-left-color: var(--swh-missing); }
.swh-compact-row:hover,
.swh-compact-row:focus-visible { background: var(--swh-soft); }
.swh-compact-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
}
.swh-compact-icon svg { width: 28px; height: 28px; fill: none; stroke: currentColor; stroke-width: 1.45; }
.swh-compact-copy { display: block; min-width: 0; }
.swh-compact-title { display: block; font-family: var(--swh-serif); font-size: 1rem; font-weight: 600; line-height: 1.1; }
.swh-compact-primary { display: block; margin-top: .18rem; font-size: .78rem; font-weight: 700; line-height: 1.3; }
.swh-compact-secondary { display: block; margin-top: .1rem; color: var(--swh-muted); font-size: .71rem; line-height: 1.3; }
.swh-compact-arrow { font-weight: 700; }


/* v0.4.1: kompakte Startseitenansicht */
.swh-layout-compact .swh-section-head{
	display:grid;
	grid-template-columns:1fr;
	gap:.35rem;
}
.swh-layout-compact .swh-section-head h2{
	font-size:clamp(1.8rem,2.5vw,2.35rem);
	line-height:1.05;
}
.swh-layout-compact .swh-section-head p{
	margin:0;
	max-width:36rem;
}
.swh-layout-compact .swh-compact-list{
	overflow:hidden;
}
.swh-layout-compact .swh-compact-row{
	min-height:64px;
}
@media (max-width:900px){
	.swh-layout-compact .swh-compact-row{
		min-height:0;
	}
}


/* ==========================================================
   v0.5.0 – eigener Homepage-Renderer
   Bewusst getrennte Klassen, damit Theme-CSS der bisherigen
   Compact-Ansicht nicht in die Startseitenzeilen hineinwirkt.
   ========================================================== */
.swh-layout-home{
	margin:0;
	width:100%;
}
.swh-layout-home .swh-section-head{
	display:none;
}
.swh-home-list{
	width:100%;
	border:0;
	background:transparent;
}
.swh-home-row{
	display:grid;
	grid-template-columns:36px minmax(0,1fr) 16px;
	align-items:center;
	gap:10px;
	width:100%;
	box-sizing:border-box;
	padding:12px 4px 12px 8px;
	border-left:2px solid transparent;
	border-bottom:1px solid rgba(18,51,74,.13);
	color:var(--swh-ink);
	text-decoration:none;
	font-family:var(--swh-sans);
}
.swh-home-row:last-child{
	border-bottom:0;
}
.swh-home-row.swh-state-fresh{border-left-color:var(--swh-fresh);}
.swh-home-row.swh-state-delayed,
.swh-home-row.swh-state-stale{border-left-color:var(--swh-delayed);}
.swh-home-row.swh-state-missing{border-left-color:var(--swh-missing);}
.swh-home-row:hover,
.swh-home-row:focus-visible{
	background:rgba(255,255,255,.58);
}
.swh-home-icon{
	display:flex;
	align-items:center;
	justify-content:center;
	width:32px;
	height:32px;
}
.swh-home-icon svg{
	width:26px;
	height:26px;
	fill:none;
	stroke:currentColor;
	stroke-width:1.45;
}
.swh-home-text{
	display:block;
	width:100%;
	min-width:0;
}
.swh-home-title,
.swh-home-primary,
.swh-home-secondary{
	display:block;
	width:100%;
	max-width:none;
	min-width:0;
	margin:0;
	padding:0;
	white-space:normal;
	word-break:normal;
	overflow-wrap:break-word;
	writing-mode:horizontal-tb;
	text-orientation:mixed;
}
.swh-home-title{
	font-family:var(--swh-serif);
	font-size:.98rem;
	font-weight:700;
	line-height:1.15;
}
.swh-home-primary{
	margin-top:3px;
	font-size:.78rem;
	font-weight:700;
	line-height:1.3;
}
.swh-home-secondary{
	margin-top:2px;
	color:var(--swh-muted);
	font-size:.7rem;
	line-height:1.3;
}
.swh-home-arrow{
	justify-self:end;
	font-size:.9rem;
	font-weight:700;
}


/* ==========================================================
   v0.5.2 – robuste Homepage-Zeile
   Grid wird für die Homepage nicht mehr benutzt. Die drei
   Bereiche werden als Flex-Zeile aufgebaut; kritische
   Breitenregeln stehen zusätzlich inline im Renderer, damit
   Theme-/Block-CSS sie nicht wieder auf wenige Zeichen
   zusammenschieben kann.
   ========================================================== */
.swh-home-row{
	display:flex;
	align-items:center;
	gap:10px;
	width:100%;
	min-width:0;
}
.swh-home-icon{
	flex:0 0 32px;
}
.swh-home-text{
	flex:1 1 auto;
	width:auto;
	min-width:0;
	max-width:none;
}
.swh-home-arrow{
	flex:0 0 16px;
}
.swh-home-title,
.swh-home-primary,
.swh-home-secondary{
	width:auto;
	max-width:none;
	min-width:0;
}
