/* Gemeinsame Grundlage der neuen Layouts. Jedes Layout setzt die
   Variablen und ordnet Kopf, Menue und Startseite eigenstaendig an.
   Die Inhalte (Seiten, Berichte, Termine) verwenden ueberall dasselbe
   Markup wie das Original (Twenty-Ten-Klassen). */
:root {
	--paper: #fff;
	--surface: #fff;
	--ink: #222;
	--muted: #666;
	--line: #ddd;
	--accent: #b0306f;
	--accent-ink: #fff;
	--link: #8d1d58;
	--font-body: Georgia, "Palatino Linotype", "Book Antiqua", Palatino, serif;
	--font-head: Georgia, "Palatino Linotype", "Book Antiqua", Palatino, serif;
	--font-ui: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--measure: 42rem;
	--radius: 0;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
	margin: 0; background: var(--paper); color: var(--ink);
	font: 1.0625rem/1.65 var(--font-body);
}
img { max-width: 100%; height: auto; }
/* Das Gemaelde aus dem Kopf der alten Seite: immer vollstaendig zeigen. */
.painting { display: block; width: 100%; height: auto; aspect-ratio: 940 / 198; object-fit: cover; }
a { color: var(--link); }
a:hover { text-decoration-thickness: 2px; }
a:focus-visible, summary:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }
h1, h2, h3, h4 { font-family: var(--font-head); line-height: 1.2; margin: 0 0 .6em; }

.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px); white-space: nowrap;
}
.skip-link:focus {
	position: fixed !important; top: 8px; left: 8px; z-index: 5000; width: auto; height: auto;
	clip: auto; padding: 10px 14px; background: #fff; color: #000;
}

/* Menue-Grundform; Layouts gestalten Ausrichtung und Farben. */
.menu, .menu ul { list-style: none; margin: 0; padding: 0; }
.menu a { text-decoration: none; }
.menu .children { display: none; }

/* --- Inhalte -------------------------------------------------------- */
.hentry { margin: 0 0 3rem; }
.entry-title { font-size: clamp(1.6rem, 1.2rem + 1.5vw, 2.3rem); }
.entry-title a { color: inherit; text-decoration: none; }
.entry-meta, .entry-utility { color: var(--muted); font: .9rem/1.5 var(--font-ui); margin: 0 0 1.2rem; }
.entry-meta a, .entry-utility a { color: inherit; }
.entry-utility { margin-top: 1.2rem; }
.entry-content { max-width: var(--measure); }
.entry-content p { margin: 0 0 1.1em; }
.entry-content h2 { font-size: 1.45rem; margin-top: 1.6em; }
.entry-content h3 { font-size: 1.2rem; margin-top: 1.4em; }
.entry-content blockquote { margin: 1.5em 0; padding: .2em 0 .2em 1.2em; border-left: 4px solid var(--accent); font-style: italic; }
.entry-content ul, .entry-content ol { padding-left: 1.4em; }
.entry-content table { border-collapse: collapse; }
.entry-content td, .entry-content th { border: 1px solid var(--line); padding: .3em .6em; }
.entry-content figure { margin: 0 0 1.5em; }
.entry-content figure img { display: block; }
.entry-content figcaption, .wp-caption-text { color: var(--muted); font: .85rem/1.4 var(--font-ui); text-align: center; margin-top: .4em; }
.alignleft { float: left; margin: .3em 1.5em 1em 0; }
.alignright { float: right; margin: .3em 0 1em 1.5em; }
.aligncenter { display: block; margin-left: auto; margin-right: auto; }
.wp-caption { max-width: 100%; }
.wp-block-gallery { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 1.5em; padding: 0; }
.wp-block-gallery .wp-block-image { flex: 1 1 180px; margin: 0; }
.wp-block-gallery img { width: 100%; height: 100%; object-fit: cover; }
.entry-content::after { content: ""; display: table; clear: both; }

/* Klassische Galerie (Impressionen, Feld "Bilder") als Raster. */
.gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; margin: 1.5em 0; }
.gallery dl, .gallery dt { margin: 0; }
.gallery br { display: none; }
.gallery img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--radius); }

/* Blaettern / Vor-Zurueck */
.navigation { display: flex; justify-content: space-between; gap: 1rem; margin: 0 0 2rem; font: .9rem/1.4 var(--font-ui); }
.navigation .nav-next { text-align: right; margin-left: auto; }
.navigation a { display: inline-block; padding: .55rem 0; text-decoration: none; }
.entry-meta a, .entry-utility a { padding-block: .3rem; }
.more a:not(.button) { display: inline-block; padding: .3rem 0; }

/* Terminseite */
.termin-next-label, .termin-datum { display: none; }
.termin { padding-bottom: 2rem; border-bottom: 1px solid var(--line); }
.termin .entry-meta { color: var(--accent); font-weight: 700; font-size: .95rem; }
.termin .entry-content { overflow: hidden; }
.termin-bild { float: right; margin: 0 0 1rem 1.5rem; max-width: 220px; }
.termin-bild img { display: block; border-radius: var(--radius); }

/* --- Startseiten-Bausteine ---------------------------------------------- */
.section-title { font-size: clamp(1.4rem, 1.1rem + 1vw, 1.9rem); }
/* Der importierte Text erzwingt Blocksatz (Inline-Style); in den
   Startseiten-Spalten ergibt das Luecken. */
.home-intro .entry-content p, .home-mitmachen .entry-content p { text-align: left !important; }
.more { font: 600 .95rem/1.4 var(--font-ui); margin: 1rem 0 0; }
.button {
	display: inline-block; padding: .65em 1.2em; border-radius: var(--radius);
	background: var(--accent); color: var(--accent-ink); text-decoration: none; font: 600 .95rem/1.2 var(--font-ui);
}
.button-secondary { background: transparent; color: var(--link); box-shadow: inset 0 0 0 2px currentColor; }
.event-list, .report-list, .photo-strip { list-style: none; margin: 0; padding: 0; }
.event a { display: flex; gap: 1rem; color: inherit; text-decoration: none; }
.event-date { flex: 0 0 auto; display: flex; flex-direction: column; align-items: center; justify-content: center; min-width: 4rem; font-family: var(--font-ui); line-height: 1; }
.event-day { font-size: 1.8rem; font-weight: 700; }
.event-month { font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; margin-top: .25rem; }
.event-body { display: flex; flex-direction: column; gap: .2rem; }
.event-title { font-family: var(--font-head); font-size: 1.15rem; }
.event-when { color: var(--muted); font: .9rem/1.4 var(--font-ui); }
.event-excerpt { font-size: .95rem; }
.event-empty { color: var(--muted); }
.report a { display: block; color: inherit; text-decoration: none; }
.report img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; margin-bottom: .6rem; border-radius: var(--radius); }
.report-date { display: block; color: var(--muted); font: .85rem/1.4 var(--font-ui); }
.report-title { display: block; font-family: var(--font-head); font-size: 1.1rem; line-height: 1.3; margin: .2rem 0 .4rem; }
.report-excerpt { display: block; font-size: .92rem; color: var(--muted); }
.photo-strip { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 8px; }
.photo-strip img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--radius); }

/* --- Fusszeile ------------------------------------------------------------ */
.site-footer { font: .9rem/1.6 var(--font-ui); }
.footer-inner { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: 1.5rem 2rem; }
.site-footer li a { display: inline-block; padding: .2rem 0; }
.footer-legal { display: none; }
.footer-title { display: block; font-family: var(--font-head); font-size: 1.1rem; }
.site-footer ul { list-style: none; margin: 0; padding: 0; }
.site-footer a { color: inherit; }
.footer-links > span { font-weight: 700; }

@media (min-width: 1000px) {
	.footer-inner { grid-template-columns: 2fr 1fr 1fr; }
}
@media (min-width: 601px) and (max-width: 999px) {
	.footer-inner { grid-template-columns: 1fr 1fr; }
	.footer-about { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
	.footer-nav { display: none; }
	.footer-legal { display: block; width: fit-content; margin-top: .4rem; padding: .2rem 0; }
}
@media (max-width: 760px) {
	.termin-bild, .alignleft, .alignright { float: none; margin: 0 0 1rem; max-width: 100%; }
}

/* Galerie als Liste (vorher WordPress-<dl>) */
ul.gallery { list-style: none; padding: 0; }
.gallery .gallery-item { margin: 0; }

/* Berichte-Uebersicht: Anrisse statt ganzer Berichte */
.report-index { list-style: none; margin: 0 0 2rem; padding: 0; }
.report-row { border-bottom: 1px solid var(--line); }
.report-row a { display: grid; grid-template-columns: 11rem 1fr; gap: 1.4rem; padding: 1.3rem 0; color: inherit; text-decoration: none; }
.report-row a:not(:has(img)) .report-text { grid-column: 1 / -1; }
.report-row img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--radius); }
.report-row .report-title { font-size: 1.3rem; }
.report-row a:hover .report-title, .report-row a:focus-visible .report-title { text-decoration: underline; text-decoration-thickness: 1px; }
.list-page { display: block; font-size: .5em; color: var(--muted); }
@media (max-width: 600px) {
	.report-row a { grid-template-columns: 6.5rem 1fr; gap: 1rem; }
	.report-row .report-title { font-size: 1.1rem; }
	.report-row .report-excerpt { display: none; }
}

/* Druck: nur Inhalt, schwarz auf weiss, Linkziele ausgeschrieben */
@media print {
	body, .sheet { background: #fff !important; color: #000; }
	.mainnav, .strip, .skip-link, .layout-switcher, .site-footer nav, .button, .more, .navigation { display: none !important; }
	a { color: #000; }
	main a[href^="http"]::after { content: " (" attr(href) ")"; font-size: .8em; word-break: break-all; }
	.lead-date { color: #000; background: none; border: 2px solid #000; }
	img { break-inside: avoid; }
	h1, h2, h3 { break-after: avoid; }
}
