/* TrendAuto Block: Ergänzungen, die theme.json nicht abdeckt. */

/* Kopfbereich bleibt beim Scrollen sichtbar */
.wp-block-template-part:has(> .ta-header) {
	position: sticky;
	top: 0;
	z-index: 100;
	margin: 0;
	background: var(--wp--preset--color--white);
	box-shadow: 0 1px 0 var(--wp--preset--color--line);
}
.admin-bar .wp-block-template-part:has(> .ta-header) { top: 32px; }
html { scroll-padding-top: 110px; }

/* Dreifarbiger Streifen oben rechts */
.ta-header { position: relative; align-items: center; }
.ta-header::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 7px;
	background: linear-gradient(90deg,
		transparent 0 40%,
		var(--wp--preset--color--navy) 40% 60%,
		var(--wp--preset--color--sky) 60% 80%,
		var(--wp--preset--color--green) 80% 100%);
}

/* Alte Elementor-Kopf- und Fußbereiche nicht zusätzlich anzeigen */
body:has(.ta-header) .elementor-location-header,
body:has(.ta-footer) .elementor-location-footer { display: none; }

/* Hauptmenü: erste Ebene */
.ta-header .wp-block-navigation__container { gap: 0.25rem; }
.ta-header .wp-block-navigation__container > .wp-block-navigation-item { align-items: stretch; }
.ta-header .wp-block-navigation__container > li > .wp-block-navigation-item__content {
	padding: 0.5em 0.5em;
	border-bottom: 3px solid transparent;
	white-space: nowrap;
}
.ta-header .wp-block-navigation__container > li.has-child > .wp-block-navigation-item__content { padding-right: 0.2em; }
.ta-header .wp-block-navigation__container > li > .wp-block-navigation__submenu-icon {
	margin: 0 0.5em 3px 0;
	padding: 0;
	align-self: center;
	color: var(--wp--preset--color--muted);
}
.ta-header .wp-block-navigation__container > li:hover > .wp-block-navigation-item__content,
.ta-header .wp-block-navigation__container > li:hover > .wp-block-navigation__submenu-icon,
.ta-header .wp-block-navigation__container > li:focus-within > .wp-block-navigation-item__content,
.ta-header .wp-block-navigation__container > li:focus-within > .wp-block-navigation__submenu-icon { color: var(--wp--preset--color--navy); }
.ta-header .wp-block-navigation__container > li > .wp-block-navigation-item__content[aria-current="page"],
.ta-header .wp-block-navigation__container > li:has(a[aria-current="page"]) > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--green-dark);
	border-bottom-color: var(--wp--preset--color--green);
}

/* Hauptmenü: Aufklappmenüs am Desktop */
.ta-header nav:not(.has-modal-open) .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container {
	min-width: 18rem !important;
	padding: 0.4rem 0;
	color: var(--wp--preset--color--ink) !important;
	background: var(--wp--preset--color--white) !important;
	border: 0 !important;
	border-top: 3px solid var(--wp--preset--color--green) !important;
	border-radius: 0 0 var(--wp--custom--radius--button) var(--wp--custom--radius--button);
	box-shadow: 0 12px 30px rgb(0 0 0 / 18%);
	font-size: 1.0625rem;
	font-weight: 500;
}
.ta-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: 0.55rem 1.1rem !important;
	color: var(--wp--preset--color--ink);
	line-height: 1.3;
}
.ta-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container .wp-block-navigation-item:hover > .wp-block-navigation-item__content,
.ta-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus {
	color: var(--wp--preset--color--navy);
	background: var(--wp--preset--color--surface);
}
.ta-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container a[aria-current="page"] {
	color: var(--wp--preset--color--green-dark);
	font-weight: 600;
}
.ta-header .wp-block-navigation__submenu-container .wp-block-navigation__submenu-icon { color: var(--wp--preset--color--muted); margin-right: 0.75rem; }
/* Dritte Ebene öffnet nach links, damit sie am rechten Rand nicht abgeschnitten wird */
.ta-header .wp-block-navigation__responsive-container:not(.is-menu-open) .has-child .has-child > .wp-block-navigation__submenu-container {
	top: -0.4rem !important;
	left: auto !important;
	right: 100% !important;
}

/* Hauptmenü: Menü-Knopf */
.ta-header .wp-block-navigation__responsive-container-open { color: var(--wp--preset--color--navy); padding: 0.4rem; }
.ta-header .wp-block-navigation__responsive-container-open svg { width: 34px; height: 34px; }

/* Hauptmenü: Überlagerung auf Tablet und Handy */
.ta-header .wp-block-navigation__responsive-container.is-menu-open { padding: 1rem 1.25rem 2rem; overflow-y: auto; }
.ta-header .is-menu-open .wp-block-navigation__responsive-container-close { color: var(--wp--preset--color--white); }
.ta-header .is-menu-open .wp-block-navigation__responsive-dialog,
.ta-header .is-menu-open .wp-block-navigation__responsive-container-content { width: 100%; margin: 0; padding-top: 2.75rem; align-items: stretch !important; }
.ta-header .is-menu-open .wp-block-navigation__responsive-dialog { padding-top: 0; }
.ta-header .is-menu-open .wp-block-navigation__container {
	width: 100%;
	gap: 0 !important;
	align-items: stretch !important;
	justify-content: flex-start !important;
	font-size: 1.375rem;
	font-weight: 600;
}
.ta-header .is-menu-open li.wp-block-navigation-item {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) auto;
	width: 100%;
	align-items: center;
	text-align: left;
	border-bottom: 1px solid rgb(255 255 255 / 22%);
}
.ta-header .is-menu-open .wp-block-navigation-item__content {
	display: block !important;
	width: 100%;
	padding: 0.8rem 0 !important;
	color: var(--wp--preset--color--white) !important;
	border: 0 !important;
	white-space: normal;
	text-align: left;
}
.ta-header .is-menu-open a[aria-current="page"] { color: var(--wp--preset--color--sky) !important; }
.ta-header .is-menu-open .wp-block-navigation__submenu-container {
	grid-column: 1 / -1;
	position: static !important;
	min-width: 0 !important;
	width: 100% !important;
	padding: 0 0 0.5rem 1rem !important;
	gap: 0 !important;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	font-size: 1.125rem;
	font-weight: 500;
	align-items: stretch !important;
}
.ta-header .is-menu-open .wp-block-navigation__submenu-container li.wp-block-navigation-item { border-bottom: 0; }
.ta-header .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 0.55rem 0 !important; }
.ta-js .ta-header .is-menu-open .wp-block-navigation__submenu-icon {
	display: grid !important;
	place-items: center;
	width: 3rem;
	height: 3rem;
	margin: 0;
	padding: 0;
	color: var(--wp--preset--color--white) !important;
	background: none;
	border: 0;
	cursor: pointer;
}
.ta-js .ta-header .is-menu-open .wp-block-navigation__submenu-icon svg { width: 16px; height: 16px; stroke: currentColor; transition: transform 0.15s; transform: none; margin: 0; }
.ta-js .ta-header .is-menu-open li[data-ta-open] > .wp-block-navigation__submenu-icon svg { transform: rotate(180deg); }
.ta-js .ta-header .is-menu-open li.has-child:not([data-ta-open]) > .wp-block-navigation__submenu-container { display: none !important; }

/* Auf Tablets passt das Menü nicht in eine Zeile: Überlagerung bis 960px verwenden */
@media (min-width: 600px) and (max-width: 959px) {
	.ta-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.ta-header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}

/* Überschrift mit Pfeil im Kreis */
.ta-arrow { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; }
.ta-arrow a { color: inherit; text-decoration: none; }
.ta-arrow a:hover { text-decoration: underline; }
.ta-arrow::after {
	content: "";
	flex: 0 0 24px;
	height: 24px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm0 2.2a7.8 7.8 0 1 1 0 15.6 7.8 7.8 0 0 1 0-15.6ZM12.6 7l-1.5 1.5 2.4 2.4H7v2.2h6.5l-2.4 2.4 1.5 1.5 5-5-5-5Z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm0 2.2a7.8 7.8 0 1 1 0 15.6 7.8 7.8 0 0 1 0-15.6ZM12.6 7l-1.5 1.5 2.4 2.4H7v2.2h6.5l-2.4 2.4 1.5 1.5 5-5-5-5Z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Hero */
.ta-hero > .wp-block-column { margin: 0; }
.ta-hero .wp-block-cover { height: 100%; }
.ta-hero h1 { text-wrap: balance; hyphens: manual; }
.ta-hero__pub a { color: inherit; }
.ta-cover-shadow img { box-shadow: 0 12px 28px rgb(0 0 0 / 35%); }
.ta-on-dark, .ta-on-dark a { color: var(--wp--preset--color--white); }

/* Linkliste in der Highlight-Zeile */
.ta-linklist .wp-block-post-template > li { border-bottom: 1px solid var(--wp--preset--color--line); padding-block: 0.6em; margin: 0; }
.ta-linklist .wp-block-post-title { font-weight: 400; line-height: 1.3; }
.ta-linklist .wp-block-post-title a { color: var(--wp--preset--color--muted); text-decoration: none; }
.ta-linklist .wp-block-post-title a:hover { color: var(--wp--preset--color--navy); text-decoration: underline; }

/* Karten */
.ta-card {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--wp--custom--radius--card);
	padding: 1.25rem;
	overflow: hidden;
	color: var(--wp--preset--color--muted);
}
.ta-card .wp-block-post-featured-image { margin: -1.25rem -1.25rem 1rem; }
.ta-card .wp-block-post-title a { text-decoration: none; }

/* Handlungsfelder */
.ta-band a:not(.wp-element-button) { color: inherit; }
.ta-spot { overflow: hidden; border-radius: 0; }
.ta-spot__media { align-self: stretch; }
.ta-spot__media figure, .ta-spot__media img { width: 100%; height: 100%; object-fit: cover; margin: 0; }
.ta-field { border: 0; }
.ta-field__head { gap: 0.75rem; align-items: center; margin-bottom: 1rem; }
.ta-field__head figure { margin: 0; flex: 0 0 35px; }
.ta-field__head img { box-sizing: border-box; padding: 5px; border-radius: 50%; background: var(--wp--preset--color--navy); }
.ta-field__head h3 a { color: var(--wp--preset--color--navy); text-decoration: none; }

/* Veranstaltungsliste aus [ta_events] */
.ta-events { list-style: none; margin: 0; padding: 0; color: var(--wp--preset--color--ink); }
.ta-events__item { display: grid; grid-template-columns: 2.75rem 1fr; gap: 0.5rem; padding-block: 0.75rem; border-top: 1px solid var(--wp--preset--color--line); }
.ta-events__date { display: flex; flex-direction: column; align-items: center; line-height: 1.1; }
.ta-events__month { font-size: 0.75rem; text-transform: uppercase; }
.ta-events__day { font-size: 1.5rem; font-weight: 700; }
.ta-events__body { display: flex; flex-direction: column; }
.ta-events__time { font-size: 0.875rem; color: var(--wp--preset--color--muted); }
.ta-events__title { font-size: 1.0625rem; font-weight: 700; line-height: 1.25; color: var(--wp--preset--color--ink) !important; text-decoration: none; }
.ta-events__title:hover { text-decoration: underline; }
.ta-events__empty { font-size: 1rem; color: var(--wp--preset--color--muted); margin: 0; }

/* Galerien: Das Skript ergänzt die Klasse, Pfeile und Punkte. Ohne Skript stehen die Einträge untereinander. */
.ta-carousel-track {
	display: flex;
	gap: var(--ta-gap, 1.25rem);
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	margin: 0;
	padding: 0;
	list-style: none;
	/* Hält absolut positionierte Texte der Einträge in der Galerie, sonst wird die Seite breiter */
	position: relative;
}
.ta-carousel-track::-webkit-scrollbar { display: none; }
.ta-carousel-track > * {
	flex: 0 0 calc((100% - (var(--ta-per, 1) - 1) * var(--ta-gap, 1.25rem)) / var(--ta-per, 1));
	min-width: 0;
	margin: 0 !important;
	scroll-snap-align: start;
}
.ta-carousel-nav { display: flex; align-items: center; justify-content: center; gap: 0.5rem; margin-top: 1rem; color: inherit; }
.ta-carousel-nav button { appearance: none; border: 0; background: none; color: inherit; cursor: pointer; padding: 0; }
.ta-carousel-arrow { display: grid; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: 50%; border: 2px solid currentColor !important; font-size: 1.1rem; line-height: 1; }
.ta-carousel-arrow:disabled { opacity: 0.35; cursor: default; }
.ta-carousel-dot { display: grid; place-items: center; width: 1.5rem; height: 1.5rem; }
.ta-carousel-dot::before { content: ""; width: 0.625rem; height: 0.625rem; border-radius: 50%; background: currentColor; opacity: 0.35; }
.ta-carousel-dot[aria-current="true"]::before { opacity: 1; }
.ta-carousel-nav button:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) { .ta-carousel-track { scroll-behavior: auto; } }

/* Galerie Publikationen im Hero */
.ta-pubs { color: var(--wp--preset--color--white); }
.ta-pubs .wp-block-post-featured-image { margin: 0 0 0.75rem; background: rgb(255 255 255 / 10%); }
.ta-pubs .wp-block-post-featured-image img { display: block; width: 100%; height: 230px; object-fit: contain; }
.ta-pubs .wp-block-post-title { margin: 0 0 0.75rem; font-weight: 600; line-height: 1.25; }
.ta-pubs .wp-block-post-title a { text-decoration: none; }
.ta-pubs .wp-block-read-more {
	display: inline-block;
	padding: 0.4em 1em;
	color: var(--wp--preset--color--white);
	border: 1px solid currentColor;
	border-radius: var(--wp--custom--radius--button);
	text-decoration: none;
	font-size: 1rem;
}
.ta-pubs .wp-block-read-more:hover { color: var(--wp--preset--color--navy); background: var(--wp--preset--color--white); }

/* Galerie Stimmen */
.ta-quotes + .ta-carousel-nav { color: var(--wp--preset--color--navy); }
.ta-quotes.ta-carousel-track { --ta-per: 2; --ta-gap: var(--wp--preset--spacing--40); margin-top: var(--wp--preset--spacing--40); }
.ta-quote { display: flex; flex-direction: column; gap: 1rem; }
.ta-quote__text {
	flex: 1;
	margin: 0;
	padding: 1.25rem 1.5rem;
	background: var(--wp--preset--color--white);
	border-radius: var(--wp--custom--radius--card);
	color: var(--wp--preset--color--ink);
	font-size: 1.0625rem;
}
.ta-quote__who { color: var(--wp--preset--color--navy); gap: 1rem; align-items: center; }
.ta-quote__who figure { margin: 0; flex: 0 0 96px; }
.ta-quote__who p { margin: 0; line-height: 1.3; }
.ta-quote__who strong { font-size: 1.375rem; font-weight: 600; }

/* Grußwort */
.ta-twocol { columns: 2 26rem; column-gap: 2.5rem; }
.ta-twocol > p { margin-block: 0 1em; break-inside: avoid-column; }
.ta-twocol > p:first-child::first-letter { float: left; font-size: 3.2em; line-height: 0.9; padding-right: 0.08em; color: var(--wp--preset--color--navy); font-weight: 600; }
.ta-gruss figcaption { color: var(--wp--preset--color--navy); font-size: 1rem; font-style: italic; text-align: center; }

/* Newsletter (Fluent Forms) */
.ta-news .fluentform label { color: var(--wp--preset--color--navy); font-weight: 600; }
.ta-news .fluentform .ff-el-form-control { border: 0; border-radius: var(--wp--custom--radius--button); }
.ta-news .fluentform .ff-btn-submit {
	background: var(--wp--preset--color--navy) !important;
	color: var(--wp--preset--color--white) !important;
	border-radius: var(--wp--custom--radius--button);
}
.ta-news .wp-block-button { width: 100%; }
.ta-news .wp-block-button__link { width: 100%; }

/* Fußbereich */
.ta-footer { background: linear-gradient(#efefef 0, #fff 120px); }
.ta-footer__title { color: var(--wp--preset--color--muted) !important; }
.ta-logos { align-items: center; gap: 2rem; }
.ta-logos figure { margin: 0; flex: 0 1 auto; }
.ta-logos img { max-height: 90px; width: auto; }
.ta-funding figure { margin: 0; }
.ta-funding img { max-height: 180px; width: auto; }
.ta-footer__bottom { align-items: center; }

/* The Events Calendar an das Theme anpassen */
.tribe-common {
	--tec-color-accent-primary: var(--wp--preset--color--navy);
	--tec-color-link-accent: var(--wp--preset--color--navy);
	--tec-font-family-sans-serif: var(--wp--preset--font-family--roboto-condensed);
}

/* Noch nicht umgestellte Elementor-Seiten behalten ihre eigene Breite */
.ta-elementor-page .ta-main { padding-top: 0 !important; padding-bottom: 0 !important; }
.ta-elementor-page .ta-main > * { max-width: none !important; }
.ta-elementor-page .ta-main .wp-block-post-content > * { max-width: none !important; }

/* Schmale Bildschirme */
@media (max-width: 781px) {
	.ta-hero h1 { font-size: 2rem !important; overflow-wrap: break-word; hyphens: auto; }
	html { scroll-padding-top: 80px; }
	.ta-hero .wp-block-cover { padding: 2rem 1.25rem !important; min-height: 420px !important; }
	.ta-quotes.ta-carousel-track { --ta-per: 1; align-items: flex-start; }
	.ta-quote__text { flex: none; }
	.ta-field { flex-basis: 100% !important; }
	.ta-footer__bottom { justify-content: center !important; }
	.ta-logos { justify-content: center !important; }
	.ta-funding { justify-content: center !important; }
}
@media (min-width: 782px) and (max-width: 1180px) {
	.ta-fields { flex-wrap: wrap !important; }
	.ta-field { flex-basis: calc(50% - 1rem) !important; flex-grow: 1 !important; }
	.ta-hero { flex-wrap: wrap !important; }
	.ta-hero > .wp-block-column:first-child { flex-basis: 100% !important; }
	.ta-hero > .wp-block-column:not(:first-child) { flex-basis: 50% !important; }
}

/* Teilnahme-Button und Veranstalter aus dem Plugin TrendAuto Funktionen */
.meeting-button {
	display: inline-block;
	padding: 0.7em 1.6em;
	color: var(--wp--preset--color--white);
	background: var(--wp--preset--color--green-dark);
	border-radius: var(--wp--custom--radius--button);
	font-weight: 500;
	text-decoration: none;
}
.meeting-button:hover { color: var(--wp--preset--color--white); background: var(--wp--preset--color--navy); }
.meeting-details { margin-top: 0.75rem; }
.meeting-label { font-weight: 600; }
.veranstalter-eintrag { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.75rem; }
.veranstalter-bild { width: 64px; height: 64px; object-fit: cover; border-radius: 50%; }
.veranstalter-name { font-weight: 600; color: var(--wp--preset--color--navy); }

/* Seiten aus get_header(): Abstände wie bei Block-Vorlagen */
.wp-site-blocks > * + * { margin-block-start: 0; }

/* Veranstaltungsübersicht */
.ta-events-page { max-width: var(--wp--style--global--wide-size, 1400px); margin-inline: auto; padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40) var(--wp--preset--spacing--60); }
.ta-page-title { margin: 0 0 1rem; color: var(--wp--preset--color--navy); font-size: var(--wp--preset--font-size--xx-large); font-weight: 600; line-height: 1.15; }
.ta-events-page .tribe-common-l-container { max-width: none !important; padding-inline: 0 !important; padding-top: 0 !important; }
