/* ====================================================================
   TSG Beckum 2.0 – ergänzende Styles
   Farben, Schriften, Abstände und Buttons stehen in theme.json und sind
   unter Design → Editor → Stile änderbar. Hier stehen nur die Feinheiten,
   die WordPress nicht über die Stile-Oberfläche anbietet.
   Wird im Frontend UND im Editor geladen.
   ==================================================================== */

:root {
	--tsg-radius: 16px;
	--tsg-ease: cubic-bezier(.16, .84, .44, 1);
}

html { scroll-behavior: smooth; }
[id] { scroll-margin-top: 96px; }
body { -webkit-font-smoothing: antialiased; }

/* ---------- Dachzeile (Block-Stil für Absätze) ---------- */
.is-style-tsg-dachzeile,
.tsg-dachzeile-site {
	display: inline-flex !important;
	align-items: center;
	gap: .6em;
	font-family: var(--wp--preset--font-family--inter) !important;
	font-size: .74rem !important;
	font-weight: 600 !important;
	letter-spacing: .18em !important;
	text-transform: uppercase;
	color: var(--wp--preset--color--clay);
	margin-bottom: 0;
}
.is-style-tsg-dachzeile::before,
.tsg-dachzeile-site::before {
	content: "";
	width: 26px;
	height: 2px;
	background: currentColor;
	display: inline-block;
}
.has-text-align-center.is-style-tsg-dachzeile { display: flex !important; justify-content: center; }
.has-pine-background-color .is-style-tsg-dachzeile,
.tsg-seitenkopf .is-style-tsg-dachzeile,
.tsg-seitenkopf .tsg-dachzeile-site,
.wp-block-cover .is-style-tsg-dachzeile { color: var(--wp--preset--color--clay-soft); }
.tsg-aufruf .is-style-tsg-dachzeile { color: #ffe2d4; display: flex !important; justify-content: center; }
.tsg-seitenkopf .tsg-dachzeile-site a { color: inherit; text-decoration: none; }

/* ---------- Kopfzeile ---------- */
.tsg-kopfbereich {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 100;
}
.tsg-kopf {
	border-bottom: 4px solid var(--wp--preset--color--clay);
	padding-top: 14px;
	padding-bottom: 14px;
}
.tsg-kopf-innen { gap: 24px; min-height: 46px; }
.tsg-marke { color: #fff; white-space: nowrap; display: flex; align-items: center; gap: 12px; }
.tsg-marke::before,
.tsg-fuss-marke::before {
	content: "";
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: #d9e84c radial-gradient(circle at 50% 50%, transparent 58%, rgba(255,255,255,.9) 60%, transparent 64%);
	box-shadow: inset 0 0 0 2px rgba(0,0,0,.06);
	flex: none;
	display: inline-block;
}
.tsg-hauptmenue { flex: 1; }
.tsg-hauptmenue .wp-block-navigation-item__content { padding: 10px 12px; border-radius: 8px; color: #eef3ee; }
.tsg-hauptmenue .wp-block-navigation-item__content:hover { background: rgba(255,255,255,.1); color: #fff; }
.tsg-hauptmenue .current-menu-item > .wp-block-navigation-item__content,
.tsg-hauptmenue .current-menu-ancestor > .wp-block-navigation-item__content { color: #e9c33a; }
.tsg-hauptmenue .wp-block-navigation__container { gap: 2px; }
.tsg-hauptmenue .wp-block-navigation__submenu-container {
	background: #fff !important;
	color: var(--wp--preset--color--ink) !important;
	border: 0 !important;
	border-radius: 14px;
	padding: 8px !important;
	box-shadow: 0 18px 50px rgba(20,39,29,.22);
	min-width: 232px !important;
}
.tsg-hauptmenue .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	color: var(--wp--preset--color--ink);
	font-weight: 500;
	padding: 9px 14px;
}
.tsg-hauptmenue .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
	background: var(--wp--preset--color--bone);
	color: var(--wp--preset--color--clay);
}
.tsg-hauptmenue .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.tsg-hauptmenue .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
.tsg-hauptmenue .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	align-items: flex-start !important;
	text-align: left;
}
.tsg-hauptmenue .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { width: 100%; gap: 0 !important; }
.tsg-hauptmenue .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item { width: 100%; border-bottom: 1px solid rgba(255,255,255,.14); padding: 6px 0; }
.tsg-hauptmenue .wp-block-navigation__responsive-container.is-menu-open { padding: 24px; }
.tsg-hauptmenue .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	color: #fff;
	font-family: var(--wp--preset--font-family--bricolage);
	font-size: 1.4rem;
	font-weight: 700;
}
.tsg-hauptmenue .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	background: transparent !important;
	box-shadow: none;
	color: #cfe0d4 !important;
}
.tsg-hauptmenue .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	color: #cfe0d4;
	font-size: 1.05rem;
	font-weight: 500;
	font-family: var(--wp--preset--font-family--inter);
}
.tsg-kopf-button .wp-block-button__link { padding: 11px 20px; font-size: .9rem; white-space: nowrap; }
@media (max-width: 900px) {
	.tsg-kopf-button { display: none !important; }
}

/* ---------- Seitenkopf (Unterseiten, News) ---------- */
.tsg-seitenkopf {
	padding-top: clamp(48px, 7vw, 72px);
	padding-bottom: 54px;
	border-bottom: 4px solid var(--wp--preset--color--clay);
}
.tsg-seitenkopf h1,
.tsg-seitenkopf .wp-block-post-title,
.tsg-seitenkopf .wp-block-query-title { margin-top: 12px; color: #fff; }
.tsg-bereich { padding-top: var(--wp--preset--spacing--60); padding-bottom: var(--wp--preset--spacing--70); }

/* ---------- Abschnitte ---------- */
.tsg-abschnitt h2 { margin-top: 14px; }
.tsg-einleitung { color: var(--wp--preset--color--muted); }
.tsg-einleitung-hell { color: var(--wp--preset--color--mint); }
.tsg-abschnittskopf { margin-bottom: 52px; }
.tsg-zweispaltig { gap: clamp(32px, 5vw, 60px) !important; }
.tsg-zweispaltig p:not(.is-style-tsg-dachzeile):not(.tsg-etikett) { color: var(--wp--preset--color--muted); }
.tsg-zweispaltig p strong { color: var(--wp--preset--color--ink); }
.tsg-zweispaltig .wp-block-buttons { margin-top: 28px; }
@media (max-width: 781px) {
	.tsg-bild-links > .wp-block-column:first-child { order: 2; }
}

/* Kein Abstand zwischen Kopfzeile, Inhalt und Fußzeile */
.wp-site-blocks > * + * { margin-block-start: 0; }
main.wp-block-group > .alignfull:first-child { margin-block-start: 0; }
.entry-content.alignfull > .alignfull,
.wp-block-post-content.alignfull > .alignfull { margin-block-start: 0; }

/* ---------- Hero ---------- */
.tsg-hero > .wp-block-cover__inner-container,
.tsg-aufruf > .wp-block-cover__inner-container { width: 100% !important; }
.tsg-hero { padding-bottom: 64px !important; }
.tsg-hero .tsg-hero-titel {
	font-size: var(--wp--preset--font-size--xx-large);
	font-weight: 800;
	max-width: 14ch;
	margin-top: 18px;
	text-shadow: 0 2px 30px rgba(0,0,0,.25);
}
.tsg-hero .tsg-hero-titel em { font-style: normal; color: var(--wp--preset--color--clay-soft); }
.tsg-hero .tsg-hero-text { font-size: var(--wp--preset--font-size--large); max-width: 54ch; color: #eaf1ea; margin-top: 22px; }
.tsg-hero .wp-block-buttons { margin-top: 34px; }
.tsg-hero .wp-block-cover__background { opacity: 1 !important; }

/* Kennzahlen */
.tsg-kennzahlen { margin-top: 48px; gap: 14px !important; }
.is-style-tsg-kennzahl {
	background: rgba(255,255,255,.1);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	border: 1px solid rgba(255,255,255,.18);
	border-radius: 14px;
	padding: 16px 22px;
	min-width: 140px;
}
.is-style-tsg-kennzahl > * { margin: 0 !important; }
.is-style-tsg-kennzahl .tsg-zahl { font-family: var(--wp--preset--font-family--bricolage); font-size: 1.9rem; font-weight: 800; line-height: 1.1; color: #fff; }
.is-style-tsg-kennzahl .tsg-zahl-text { font-size: .82rem; letter-spacing: .04em; color: #d6e2d8; text-transform: uppercase; }
@media (max-width: 560px) {
	.is-style-tsg-kennzahl { flex: 1 1 calc(50% - 7px); min-width: 0; text-align: center; }
}

/* ---------- Bild-Kachel (Cover mit Etikett) ---------- */
.is-style-tsg-bildkachel {
	border-radius: 20px;
	overflow: hidden;
	box-shadow: 0 30px 60px rgba(20,39,29,.18);
	padding: 18px !important;
}
.is-style-tsg-bildkachel .wp-block-cover__image-background { transition: transform 1.1s var(--tsg-ease); }
.is-style-tsg-bildkachel:hover .wp-block-cover__image-background { transform: scale(1.05); }
.tsg-etikett {
	display: inline-block;
	background: var(--wp--preset--color--clay);
	color: #fff !important;
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .05em;
	padding: 7px 14px;
	border-radius: 999px;
	text-transform: uppercase;
	margin: 0;
}
.tsg-etikett:empty { display: none; }

/* ---------- Karten (Angebot, News) ---------- */
.tsg-karten { gap: 22px !important; }
.is-style-tsg-karte {
	background: #fff;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--tsg-radius);
	padding: 28px 24px;
	height: 100%;
	display: flex;
	flex-direction: column;
	transition: transform .3s var(--tsg-ease), box-shadow .3s, border-color .3s;
}
.is-style-tsg-karte:hover { transform: translateY(-6px); box-shadow: 0 22px 44px rgba(20,39,29,.12); border-color: transparent; }
.is-style-tsg-karte > * { margin-top: 0; margin-bottom: 0; }
.is-style-tsg-karte > * + * { margin-top: 8px; }
.is-style-tsg-karte h3 { font-size: 1.28rem; }
.is-style-tsg-karte p { color: var(--wp--preset--color--muted); font-size: .96rem; }
.is-style-tsg-karte .tsg-mehr { margin-top: auto; padding-top: 14px; }
.tsg-mehr a { color: var(--wp--preset--color--clay); font-weight: 600; font-size: .9rem; text-decoration: none; }
.tsg-mehr a:hover { text-decoration: underline; }
.tsg-symbol img { width: 46px; height: 46px; padding: 11px; border-radius: 12px; background: var(--wp--preset--color--bone-2); margin-bottom: 10px; }
.tsg-symbol-rund img { width: 64px; height: 64px; padding: 15px; border-radius: 50%; background: rgba(193,87,47,.1); }
.tsg-symbol-rund { display: flex; justify-content: center; }

.tsg-beitragskarte { padding: 0 0 24px; overflow: hidden; }
.tsg-beitragskarte > *:not(.wp-block-post-featured-image) { padding-left: 24px; padding-right: 24px; }
.tsg-beitragskarte .wp-block-post-featured-image { margin: 0 0 16px; background: var(--wp--preset--color--bone-2); }
.tsg-beitragskarte .tsg-datum { font-size: .78rem; letter-spacing: .06em; text-transform: uppercase; color: var(--wp--preset--color--clay); font-weight: 600; }
.tsg-beitragskarte .wp-block-post-title { font-size: 1.3rem; }
.tsg-beitragskarte .wp-block-post-excerpt__more-link { color: var(--wp--preset--color--clay); font-weight: 600; font-size: .9rem; text-decoration: none; }

/* ---------- Hinweis-Kachel ---------- */
.is-style-tsg-hinweis {
	text-align: center;
	background: #fff;
	border: 2px dashed var(--wp--preset--color--clay);
	border-radius: 16px;
	padding: clamp(36px, 5vw, 52px) clamp(22px, 4vw, 40px) 44px;
	box-shadow: 0 10px 30px rgba(28,82,56,.06);
}
.is-style-tsg-hinweis .is-style-tsg-dachzeile { display: flex !important; justify-content: center; }
.is-style-tsg-hinweis h2 { color: var(--wp--preset--color--pine); }
.is-style-tsg-hinweis p:not(.is-style-tsg-dachzeile) { color: #4a5a52; }
.is-style-tsg-hinweis .wp-block-buttons { justify-content: center; }

/* ---------- Termine ---------- */
.is-style-tsg-termine {
	border-radius: var(--tsg-radius);
	overflow: hidden;
	border: 1px solid rgba(255,255,255,.16);
	margin-top: 0;
}
.is-style-tsg-termine table { border-collapse: collapse; width: 100%; }
.is-style-tsg-termine th,
.is-style-tsg-termine td { border: 0 !important; text-align: left; }
.is-style-tsg-termine thead { border: 0 !important; }
.is-style-tsg-termine th {
	font-weight: 600;
	font-size: .74rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #bcd0c1;
	padding: 16px 22px;
	background: rgba(0,0,0,.18);
}
.is-style-tsg-termine td { padding: 18px 22px; border-top: 1px solid rgba(255,255,255,.1) !important; color: #eaf1ea; }
.is-style-tsg-termine tr:hover td { background: rgba(255,255,255,.05); }
.is-style-tsg-termine td:first-child { font-weight: 600; color: #fff; white-space: nowrap; font-variant-numeric: tabular-nums; }
.is-style-tsg-termine td:last-child { font-weight: 600; color: #fff; }
.is-style-tsg-termine td strong {
	display: inline-block;
	font-size: .72rem;
	letter-spacing: .05em;
	text-transform: uppercase;
	background: var(--wp--preset--color--clay);
	color: #fff;
	padding: 4px 11px;
	border-radius: 999px;
	margin-left: 8px;
}
@media (max-width: 560px) {
	.is-style-tsg-termine th, .is-style-tsg-termine td { padding: 14px; font-size: .9rem; }
	.is-style-tsg-termine th:nth-child(3), .is-style-tsg-termine td:nth-child(3) { display: none; }
}
.is-style-tsg-leer {
	background: rgba(255,255,255,.06);
	border: 1px dashed rgba(255,255,255,.25);
	border-radius: 12px;
	padding: 38px 24px;
	text-align: center;
}
.is-style-tsg-leer p { margin: 0; color: #cfe0d5; font-size: 1.05rem; }
.tsg-notiz { margin-top: 24px; color: var(--wp--preset--color--mint); font-size: .92rem; }

/* ---------- Aufruf-Band ---------- */
.tsg-aufruf { text-align: center; padding-top: 110px !important; padding-bottom: 110px !important; }
.tsg-aufruf h2 { font-size: clamp(2.1rem, 5vw, 3.6rem); max-width: 18ch; margin-left: auto !important; margin-right: auto !important; margin-top: 14px; }
.tsg-aufruf p:not(.is-style-tsg-dachzeile) { max-width: 50ch; margin-left: auto !important; margin-right: auto !important; font-size: 1.12rem; color: #ffe9df; }
.tsg-aufruf .wp-block-buttons { margin-top: 32px; }
.tsg-aufruf .wp-block-cover__background { opacity: 1 !important; }

/* ---------- Buttons ---------- */
.wp-block-button__link { transition: transform .25s var(--tsg-ease), background .25s, color .25s, border-color .25s; }
.wp-block-button__link:hover { transform: translateY(-2px); }
.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--wp--preset--color--pine) !important;
	border-color: var(--wp--preset--color--pine);
	color: #fff !important;
}
.is-style-tsg-hell-umrandet > .wp-block-button__link {
	background: transparent;
	color: #fff;
	border: 2px solid rgba(255,255,255,.55);
	padding: 13px 24px;
}
.is-style-tsg-hell-umrandet > .wp-block-button__link:hover { border-color: #fff; background: rgba(255,255,255,.1); }
.wp-block-button__link.has-white-background-color:hover { background: var(--wp--preset--color--bone) !important; }
.tsg-button-klein .wp-block-button__link { padding: 9px 18px; font-size: .85rem; }

/* ---------- Seiteninhalt ---------- */
.tsg-inhalt h2 { font-size: 2rem; margin-top: 2.4rem; }
.tsg-inhalt h3 { font-size: 1.45rem; margin-top: 1.8rem; }
.tsg-inhalt ul li::marker { color: var(--wp--preset--color--clay); }
.tsg-inhalt img, .tsg-inhalt figure.wp-block-image { border-radius: 14px; }
.tsg-inhalt .wp-block-table { border: 1px solid var(--wp--preset--color--line); border-radius: 12px; overflow: hidden; }
.tsg-inhalt .wp-block-table:not(.is-style-tsg-termine) th { background: var(--wp--preset--color--pine); color: #fff; text-align: left; font-weight: 600; padding: 14px 18px; font-size: .82rem; letter-spacing: .04em; text-transform: uppercase; border: 0; }
.tsg-inhalt .wp-block-table:not(.is-style-tsg-termine) td { padding: 14px 18px; border: 0; border-top: 1px solid var(--wp--preset--color--line); }
.tsg-inhalt .wp-block-table:not(.is-style-tsg-termine) tbody tr:nth-child(even) td { background: var(--wp--preset--color--bone-2); }
.is-style-tsg-abgerundet img, .wp-block-post-featured-image.is-style-tsg-abgerundet img { border-radius: 14px; }

/* ---------- Fußzeile ---------- */
.tsg-fuss { padding-top: 38px; font-size: .95rem; }
.tsg-fuss a { color: #fff; }
.tsg-fuss-kontakt { padding-bottom: 30px; border-bottom: 1px solid rgba(255,255,255,.12); margin-bottom: 34px; }
.tsg-fuss-kontakt .wp-block-columns { margin-top: 22px; gap: 28px; }
.tsg-fuss-kontakt p { margin: 0 0 14px; font-size: .9rem; line-height: 1.7; color: #cfe0d5; }
.tsg-fuss-kontakt p a { text-decoration: underline; text-underline-offset: 2px; }
.tsg-fuss .wp-element-button { color: #fff; text-decoration: none; }
.tsg-fuss-titel { color: #fff; font-size: 1.3rem; margin: 0; }
.tsg-fuss-label { color: #f0b79a; font-family: var(--wp--preset--font-family--inter); font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; margin: 0 0 8px; font-weight: 600; }
.tsg-fuss-raster .tsg-fuss-label { color: #fff; letter-spacing: .14em; margin-bottom: 16px; }
.tsg-fuss-marke { font-family: var(--wp--preset--font-family--bricolage); font-weight: 800; font-size: 1.5rem; color: #fff; display: flex; align-items: center; gap: 12px; letter-spacing: -.02em; }
.tsg-fuss-adresse { line-height: 1.8; }
.tsg-fuss-adresse a { color: var(--wp--preset--color--clay-soft); text-decoration: none; }
.tsg-saison { display: inline-flex; align-items: center; gap: 8px; font-size: .82rem; color: #a9c2b0; }
.tsg-saison::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--wp--preset--color--clay-soft); }
.tsg-linkliste { list-style: none; padding: 0; margin: 0; }
.tsg-linkliste a { display: block; padding: 6px 0; text-decoration: none; color: #cfe0d4; transition: color .18s; }
.tsg-linkliste a:hover { color: #fff; }
.tsg-fuss-unten { margin-top: 60px; border-top: 1px solid rgba(255,255,255,.12); padding: 24px 0; font-size: .85rem; color: #9bb4a2; }
.tsg-fuss-unten p { margin: 0; }
.tsg-fuss-unten a { color: #9bb4a2; text-decoration: none; }
.tsg-fuss-unten a:hover { color: #fff; }

/* ---------- Kontaktformular ---------- */
.tsg-kontakt { max-width: 720px; margin-left: auto !important; margin-right: auto !important; }
.kontakt-form { background: #fff; border: 1px solid #e3ddd2; border-radius: 14px; padding: 34px 34px 26px; box-shadow: 0 10px 30px rgba(28,82,56,.06); }
.kontakt-form label { display: block; font-size: .82rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--wp--preset--color--pine); margin-bottom: 7px; }
.kontakt-form input[type=text], .kontakt-form input[type=email], .kontakt-form textarea { width: 100%; border: 1px solid #d4cec3; border-radius: 9px; padding: 12px 14px; font: inherit; color: #1c2a24; background: #fdfcf9; box-sizing: border-box; }
.kontakt-form input:focus, .kontakt-form textarea:focus { outline: none; border-color: var(--wp--preset--color--clay); box-shadow: 0 0 0 3px rgba(193,87,47,.14); }
.kontakt-form textarea { resize: vertical; min-height: 140px; }
.kontakt-form__reihe { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.kontakt-form p { margin: 0 0 18px; }
.kontakt-form__dsgvo label { display: flex; gap: 10px; align-items: flex-start; text-transform: none; letter-spacing: 0; font-weight: 400; font-size: .88rem; color: #4a5a52; line-height: 1.6; cursor: pointer; }
.kontakt-form__dsgvo input[type=checkbox] { flex: 0 0 auto; width: 19px; height: 19px; margin-top: 2px; accent-color: var(--wp--preset--color--pine); }
.kontakt-form button { cursor: pointer; border: 0; }
.hp-feld { position: absolute !important; left: -9999px !important; height: 0; overflow: hidden; }
.form-meldung { margin: 0 0 20px; padding: 14px 18px; border-radius: 10px; font-weight: 600; }
.form-meldung--ok { background: #e4efe7; color: #1c5238; border: 1px solid #bcd8c6; }
.form-meldung--fehler { background: #f9e7de; color: #a8451f; border: 1px solid #ecc4ae; }
@media (max-width: 640px) {
	.kontakt-form { padding: 24px 20px; }
	.kontakt-form__reihe { grid-template-columns: 1fr; }
}

/* ---------- Bewegung reduzieren ---------- */
@media (prefers-reduced-motion: reduce) {
	* { animation: none !important; transition: none !important; }
	html { scroll-behavior: auto; }
}

/* Beitragskarten ohne Beitragsbild: Abstand oben */
.tsg-beitragskarte > :first-child:not(.wp-block-post-featured-image) { margin-top: 24px !important; }
