/* ==========================================================================
   Goxel – globale Styles (Ergänzung zu theme.json)
   ========================================================================== */

:root {
	--goxel-surface: #fff;
	--goxel-line: #e4dfd3;
	--goxel-muted: #5f5b52;
	--goxel-text: #1d1d1b;
	--goxel-header-h: 72px;
}

html { scroll-padding-top: calc(var(--goxel-header-h) + 16px); }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img { height: auto; }
:where(a, button, input, select, textarea, summary):focus-visible { outline: 3px solid var(--goxel-accent, #DB6F00); outline-offset: 2px; }

.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

/* ── Kopfzeile ─────────────────────────────────────────────────────────── */
header:has(> .site-header) {
	position: sticky; top: 0; z-index: 100;
	background: rgba(255, 255, 255, 0.94);
	backdrop-filter: saturate(1.4) blur(10px);
	box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06);
}
.admin-bar header:has(> .site-header) { top: var(--wp-admin--admin-bar--height, 32px); }
@media (max-width: 600px) { .admin-bar header:has(> .site-header) { top: 0; } }
.site-header { position: relative; }
.site-header__bar { min-height: var(--goxel-header-h); gap: 16px; }
.site-header__logo img { width: clamp(104px, 22vw, 130px); }
.site-header__actions { gap: 4px; }
.site-header__search .wp-block-search__button {
	width: 44px; height: 44px; padding: 10px; margin: 0;
	border-radius: 8px; background: transparent; color: var(--goxel-text);
}
.site-header__search .wp-block-search__button:hover { background: var(--goxel-accent-soft); }
.site-header__search.wp-block-search__searchfield-hidden .wp-block-search__input { border: 0; }
.site-header__search .wp-block-search__input { border-radius: 8px; border-color: var(--goxel-line); }
@media (max-width: 999px) {
	/* Handy: Menü-Knopf rechts außen, Suche daneben */
	.site-header__actions { flex-direction: row-reverse; }
}

/* ── Inhalt ────────────────────────────────────────────────────────────── */
.site-main { padding-block: clamp(28px, 5vw, 56px) clamp(40px, 7vw, 80px); }
.site-main > .wp-block-post-content > * + * { margin-block-start: 1.25rem; }
.site-main--article .wp-block-post-content { font-size: 1.0625rem; }
.site-main--article .article__image { text-align: center; }
.site-main--article .article__image img { width: auto; max-width: 100%; max-height: min(70vh, 640px); object-fit: contain; border-radius: 12px; }
.article__more { margin-top: clamp(40px, 7vw, 72px) !important; padding-top: clamp(28px, 4vw, 40px); border-top: 1px solid var(--goxel-line); }

/* Überschrift mit Akzentlinie (ersetzt die Elementor-Trenner) */
.is-style-linie { padding-bottom: 12px; position: relative; }
.is-style-linie::after {
	content: ""; position: absolute; left: 0; bottom: 0;
	width: 56px; height: 3px; border-radius: 2px; background: var(--goxel-accent);
}
.has-text-align-center.is-style-linie::after { left: 50%; transform: translateX(-50%); }

/* Karte & Hinweis (ersetzt die Essential-Addons-Infoboxen) */
.is-style-karte {
	padding: clamp(18px, 3vw, 24px); border-radius: 12px;
	background: var(--goxel-surface); box-shadow: 0 1px 2px rgba(0,0,0,.06), 0 4px 16px rgba(0,0,0,.04);
}
.is-style-karte > :first-child { margin-top: 0; }
.is-style-karte > :last-child { margin-bottom: 0; }
.is-style-hinweis {
	padding: 16px 20px; border-radius: 10px;
	background: var(--goxel-accent-soft); border-left: 4px solid var(--goxel-accent);
}

/* Spalten: auf Tablets nicht zu früh nebeneinander */
@media (max-width: 899px) {
	.wp-block-columns.is-not-stacked-on-mobile { flex-wrap: wrap !important; }
	.wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column { flex-basis: 100% !important; }
}

/* Tabellen */
.wp-block-table { overflow-x: auto; }
.wp-block-table table { border-collapse: collapse; width: 100%; background: #fff; border-radius: 10px; overflow: hidden; }
.wp-block-table th, .wp-block-table td { padding: 10px 14px; border: 0; border-bottom: 1px solid var(--goxel-line); text-align: left; }
.wp-block-table thead th { background: var(--goxel-accent-strong); color: #fff; border-bottom: 0; }
.wp-block-table.is-style-zebra tbody tr:nth-child(odd) { background: rgba(0,0,0,.025); }

/* Bilder & Galerien */
.wp-block-image img, .wp-block-gallery img { border-radius: 8px; }
.wp-block-gallery.is-style-logos { align-items: center; }
.wp-block-gallery.is-style-logos img { max-height: 90px; width: auto !important; object-fit: contain !important; border-radius: 0; }
.wp-block-file { padding: 12px 16px; border-radius: 10px; background: #fff; display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.wp-block-file .wp-block-file__button { border-radius: 6px; background: var(--goxel-accent-strong); }

/* Lange Wörter (Schützenkönigspaare, Gebäudereinigung …) dürfen umbrechen */
h1, h2, h3, .goxel-card__title { overflow-wrap: break-word; }
.goxel-hero__title { hyphens: auto; }

/* ── Archive / Suche (Query-Block im Kartenlook) ───────────────────────── */
.goxel-query__card {
	display: flex; flex-direction: column; height: 100%;
	border-radius: 12px; overflow: hidden; background: #fff;
	box-shadow: 0 1px 2px rgba(0,0,0,.06), 0 4px 16px rgba(0,0,0,.04);
}
.goxel-query__card .wp-block-post-featured-image { margin: 0; background: var(--goxel-accent-soft); }
.goxel-query__card .wp-block-post-featured-image img { border-radius: 0; }
.goxel-query__body { padding: 18px 20px 20px; gap: 8px; flex: 1; }
.goxel-query__body > * { margin: 0 !important; }
.goxel-query__cats { font-size: .75rem; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; color: var(--goxel-accent-strong); }
.goxel-query__cats a { color: inherit; text-decoration: none; }
.goxel-query .wp-block-post-title { font-size: 1.1875rem; }
.goxel-query .wp-block-post-title a { color: var(--goxel-accent-strong); text-decoration: none; }
.goxel-query .wp-block-post-excerpt { font-size: .9375rem; }
.goxel-query .wp-block-post-date { margin-top: auto !important; color: var(--goxel-muted); font-size: .875rem; }
.wp-block-query-pagination { margin-top: 32px; gap: 8px; }
.wp-block-query-pagination a, .wp-block-query-pagination .current { padding: 8px 14px; border-radius: 8px; background: #fff; text-decoration: none; }
.wp-block-query-pagination .current { background: var(--goxel-accent-strong); color: #fff; }
.site-search { max-width: 640px; margin-bottom: 32px; }
.site-search .wp-block-search__input { padding: 12px 14px; border-radius: 8px; border-color: var(--goxel-line); }
.site-search .wp-block-search__button { border-radius: 8px; }

/* ── Fußzeile ──────────────────────────────────────────────────────────── */
footer:has(> .site-footer) { background: var(--wp--preset--color--dunkel); color: #f1eee6; }
.site-footer__inner { padding-block: 36px 28px; gap: 14px; }
.site-footer a { color: #fff; }
.site-footer__note { max-width: 62ch; margin: 0; font-size: .875rem; opacity: .75; }

/* ── Termine (The Events Calendar) an den Look anpassen ───────────────── */
.tribe-common { --tec-color-accent-primary: var(--goxel-accent-strong); --tec-color-button-primary: var(--goxel-accent-strong); --tec-font-family-sans-serif: Roboto, system-ui, sans-serif; }
.tribe-events .tribe-events-calendar-list__event-title-link { color: var(--goxel-accent-strong); }
.tribe-events-c-subscribe-dropdown__container { display: none; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* Kopfbild, Untermenü und Inhalt schließen ohne Lücke aneinander an */
.wp-site-blocks > .goxel-hero,
.wp-site-blocks > .goxel-subnav,
.wp-site-blocks > .goxel-hero + *,
.wp-site-blocks > .goxel-subnav + *,
.wp-site-blocks > footer { margin-block-start: 0; }

/* Untermenü direkt unter der Kopfzeile, ohne Spalt */
.wp-site-blocks > header + * { margin-block-start: 0; }

/* Terminspalte bleibt beim Scrollen neben den Beiträgen stehen */
@media (min-width: 900px) {
	.wp-block-column:has(> .wp-block-goxel-events:first-of-type),
	.wp-block-column:has(> .is-style-linie + .wp-block-goxel-events) {
		position: sticky; top: calc(var(--goxel-header-h) + 24px); align-self: flex-start;
	}
}

/* Mehr Luft vor Zwischenüberschriften im Inhalt */
.wp-block-post-content > :is(h2, .wp-block-heading:is(h2)):not(:first-child),
.wp-block-column > h2:not(:first-child) { margin-block-start: clamp(2rem, 4vw, 3rem); }

/* Archiv-/Suchkarten: Wappen und Hochformate vollständig zeigen */
.goxel-fit-contain { position: relative; overflow: hidden; }
.goxel-fit-contain::before { content: ""; position: absolute; inset: -20px; background: var(--goxel-card-bg) center / cover; filter: blur(18px); opacity: .55; }
.goxel-fit-contain img { position: relative; object-fit: contain !important; }

/* ==========================================================================
   Design-Review (2026-10-21): Wärme, Vereinsstolz, Lesbarkeit
   ========================================================================== */

/* Fließtext im Beitrag etwas größer für ältere Leser */
.site-main--article .wp-block-post-content { font-size: 1.1875rem; }

/* Galerien in Beiträgen breiter, auf dem Handy zwei Spalten */
.site-main--article .wp-block-gallery { max-width: 1040px !important; }
@media (max-width: 599px) {
	.wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image) { width: calc(50% - var(--wp--style--unstable-gallery-gap, 16px) / 2) !important; }
}
.site-main--article .goxel-stage { max-width: 1040px !important; margin-inline: auto !important; }

/* Termine auf dem Handy vor den Beiträgen – das Wichtigste zuerst */
@media (max-width: 899px) {
	.wp-block-columns > .wp-block-column:has(.wp-block-goxel-events) { order: -1; }
}

/* Untermenü auf dem Handy: alle Punkte sichtbar als Umbruch statt verstecktem Wischen */
@media (max-width: 699px) {
	.goxel-subnav__list { flex-wrap: wrap; justify-content: center; gap: 6px; padding-block: 10px; overflow: visible; }
	.goxel-subnav__list a { padding: 7px 12px; border-radius: 999px; background: rgba(255,255,255,.12); box-shadow: none !important; }
	.goxel-subnav__list .current-menu-item > a, .goxel-subnav__list .current-page-ancestor > a { background: #fff; color: var(--goxel-accent-strong); }
}

/* Fußzeile mit Trägern */
footer:has(> .site-footer) { color: #F1EEE6; }
.site-footer { padding-block: clamp(36px, 6vw, 56px) 28px; }
.site-footer__cols { gap: clamp(24px, 4vw, 48px); }
.site-footer__label { margin: 0 0 12px; font-size: .8125rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; opacity: .7; }
.site-footer__links { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.site-footer a { color: #fff; text-decoration-color: rgba(255,255,255,.4); text-underline-offset: 3px; }
.site-footer a:hover { text-decoration-color: #fff; }
.site-footer .goxel-nav--footer .goxel-nav__list { justify-content: flex-start; flex-direction: column; gap: 8px; }

/* Termine: Titel steht schon im Kopfband */
.site-main--event .tribe-events-single-event-title,
.site-main--event .tribe-events-back { display: none; }
.site-main--events .tribe-common-l-container { padding-inline: 0; }
.tribe-events .tribe-events-calendar-list__event-title { font-family: var(--wp--preset--font-family--serif); }
.site-main--event .tribe-events-notices { display: none; }

/* Karten- und Hinweiskästen: Inhalt nutzt die volle Kastenbreite */
.is-style-karte > *, .is-style-hinweis > * { max-width: none !important; margin-inline: 0 !important; }
.is-style-karte .wp-block-list { padding-left: 1.1em; }
.is-style-karte .wp-block-list li + li { margin-top: .35em; }
