/*
Theme Name:        Tolbiacums Töchter
Theme URI:         https://tolbiacums-toechter.de
Description:       Child Theme für tolbiacums-toechter.de – Vereinsfarben Schwarz, Rot, Gold. Basiert auf Twenty Twenty-Four. Schriften (Playfair Display, Source Sans 3) lokal eingebunden.
Author:            Tolbiacums Töchter 2024 e.V.
Author URI:        https://tolbiacums-toechter.de
Template:          twentytwentyfour
Version:           2.2.1
Requires at least: 6.6
Requires PHP:      7.4
License:           GNU General Public License v2 or later
License URI:       http://www.gnu.org/licenses/gpl-2.0.html
Text Domain:       tolbiacums-toechter
Tags:              karneval, vereinswebseite, child-theme, block-theme
*/

/* ============================================================
   Farben, Schriften, Button- und Link-Grundstile stehen in theme.json.
   Hier: Layout-Bausteine aus dem Design (neues_design.pdf).
   ============================================================ */

:root {
  --tt-red:        #b8241b;
  --tt-red-dark:   #8f1c15;
  --tt-red-light:  #f9eeed;
  --tt-red-mid:    #e8c4c2;
  --tt-gold:       #c49a0a;
  --tt-gold-dark:  #a07d06;
  --tt-gold-light: #fdf6e0;
  --tt-green:      #2f6b34;
  --tt-dark:       #2a1f1e;
  --tt-text:       #5a5150;
  --tt-muted:      #9a908f;
  --tt-cream:      #faf8f4;
  --tt-line:       #f0dcda;
  --tt-card-border:#ece3e2;
  --tt-radius:     14px;
  --tt-shadow:     0 6px 22px rgba(42, 31, 30, 0.08);
  --tt-logo:       url("assets/img/logo-klein.png");
}

/* Abstand zwischen Header / Inhalt / Footer kommt aus den Bausteinen selbst */
.wp-site-blocks > * { margin-block-start: 0; }
.wp-site-blocks > main,
.tt-main { margin-block-start: 0; }

/* ============================================================
   DREIFARBSTREIFEN
   ============================================================ */
.tt-tricolor { display: flex; height: 5px; width: 100%; }
.tt-tricolor span { flex: 1; }
.tt-tricolor span:nth-child(1) { background: var(--tt-dark); }
.tt-tricolor span:nth-child(2) { background: var(--tt-red); }
.tt-tricolor span:nth-child(3) { background: var(--tt-gold); }

/* ============================================================
   HEADER
   ============================================================ */
header.wp-block-template-part {
  position: sticky;
  top: var(--wp-admin--admin-bar--height, 0px);
  z-index: 50;
  background: #fff;
  border-bottom: 3px solid var(--tt-red);
  transition: box-shadow .2s;
}
header.wp-block-template-part.tt-header-scrolled { box-shadow: 0 4px 18px rgba(42, 31, 30, .08); }

.tt-header { padding: 14px var(--wp--style--root--padding-right, 1.5rem) 14px var(--wp--style--root--padding-left, 1.5rem); }
.tt-header-inner { gap: 1.5rem; }
.tt-brand { gap: 14px; min-width: 0; }
.tt-brand-logo { flex-shrink: 0; margin: 0; }
.tt-brand-logo img { transition: width .2s; }
.tt-header-scrolled .tt-brand-logo img { width: 56px !important; }

.tt-brand-text { gap: 2px; }
.tt-brand-text > * { margin: 0; }
.tt-brand-name {
  font-family: var(--wp--preset--font-family--heading);
  font-size: 1.45rem;
  font-weight: 600;
  line-height: 1.1;
}
.tt-brand-name a { color: var(--tt-dark); text-decoration: none; }
.tt-brand-name a:hover { color: var(--tt-red); text-decoration: none; }
.tt-brand-sub { font-size: .95rem; color: var(--tt-text); line-height: 1.2; }

.tt-header-nav { gap: 2rem; }

/* Hauptnavigation */
.tt-main-nav { gap: 1.75rem; }
.tt-main-nav .wp-block-navigation-item__content { color: #444; text-decoration: none; }
.tt-main-nav .wp-block-navigation-item__content:hover { color: var(--tt-red); text-decoration: none; }
.tt-main-nav .current-menu-item > .wp-block-navigation-item__content,
.tt-main-nav .current-menu-ancestor > .wp-block-navigation-item__content,
.tt-main-nav [aria-current="page"] {
  color: var(--tt-red);
  font-weight: 600;
}
/* Menü bleibt einzeilig; bei weniger Platz kommt das Hamburger-Menü (siehe Responsive) */
.tt-brand-name { white-space: nowrap; }
.tt-main-nav .wp-block-navigation__container { flex-wrap: nowrap; }
.tt-main-nav .wp-block-navigation-item__content { white-space: nowrap; }

/* Untermenüs */
.tt-main-nav .wp-block-navigation__submenu-container {
  border: 1px solid var(--tt-card-border) !important;
  border-radius: 10px;
  box-shadow: var(--tt-shadow);
  padding: 6px 0;
  min-width: 220px !important;
}
.tt-main-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 8px 16px; }
/* Mobiles Menü (Overlay) – alles linksbündig */
.tt-main-nav .wp-block-navigation__responsive-container.is-menu-open {
  --navigation-layout-justification-setting: flex-start;
  --navigation-layout-justify: flex-start;
  padding: 2rem 1.75rem;
  background: #fff;
}
.tt-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.tt-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
.tt-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
  align-items: flex-start !important;
  text-align: left;
}
.tt-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
  padding: .2rem 0 .4rem 1.1rem !important;
  border-left: 2px solid var(--tt-line) !important;
  margin-left: .1rem;
}
.tt-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
  font-size: 1.05rem;
  padding: .2rem 0;
  color: var(--tt-text);
}
.tt-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
  font-size: 1.25rem;
  padding: .35rem 0;
}

/* "Mitglied werden"-Button im Header */
.tt-header-cta { margin: 0; }
.tt-header-cta .wp-block-button__link { padding: .55rem 1.2rem; white-space: nowrap; }

/* ============================================================
   SEITENKOPF (Seiten & Archive)
   ============================================================ */
.tt-page-header {
  padding-top: clamp(2.25rem, 5vw, 3.5rem);
  padding-bottom: clamp(1.75rem, 4vw, 2.5rem);
  border-bottom: 1px solid var(--tt-line);
  margin-block-start: 0 !important;
}
.tt-page-header h1 { margin: 0 0 .6rem; font-weight: 700; }
.tt-page-intro,
.tt-page-header .wp-block-term-description {
  max-width: 760px;
  margin: 0;
  font-size: 1.15rem;
  color: var(--tt-dark);
}
.tt-page-intro p, .tt-page-header .wp-block-term-description p { margin: 0; }
.tt-page-image { margin-top: 2rem; }
.tt-page-image img { border-radius: var(--tt-radius); }
.tt-page-content {
  padding-top: clamp(2rem, 4vw, 3rem);
  padding-bottom: clamp(3rem, 6vw, 4.5rem);
  margin-block-start: 0 !important;
}

/* ============================================================
   HERO (Muster "Startseite – Hero")
   ============================================================ */
.tt-hero {
  position: relative;
  background: #fff;
  padding-top: clamp(2.5rem, 6vw, 4.5rem);
  padding-bottom: clamp(2.5rem, 5vw, 3.5rem);
  margin-block-start: 0 !important;
}
.tt-hero::before {
  content: '';
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 5px;
  background: linear-gradient(to bottom, var(--tt-gold), var(--tt-red), var(--tt-dark));
}
.tt-hero-cols { gap: 0 !important; margin: 0; }
.tt-hero-main { padding-right: clamp(1.5rem, 4vw, 3.5rem); align-self: center; }
.tt-hero-main > * { margin-block-start: 0; }
.tt-hero-aside {
  border-left: 1px solid var(--tt-line);
  padding-left: clamp(1.5rem, 3vw, 2.5rem);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1.5rem;
}
.tt-hero-aside > * { margin: 0 !important; }

.tt-eyebrow {
  font-size: .82rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--tt-red);
  margin-bottom: 1rem !important;
}
.tt-hero-title {
  font-weight: 400 !important;
  font-size: clamp(2.2rem, 4.4vw, 3.35rem) !important;
  line-height: 1.15 !important;
  margin-bottom: 1.25rem !important;
}
.tt-hero-title em { font-style: normal; color: var(--tt-red); }
.tt-lead { font-size: 1.2rem; line-height: 1.75; color: var(--tt-text); max-width: 34em; }
.tt-hero-buttons { gap: 1rem; margin-top: 2rem !important; }

.tt-hero-logo { max-width: 220px; }
.tt-hero-logo img { width: 100%; height: auto; }

/* Gründungs-Badge */
.tt-founding-badge {
  background: #fff;
  border: 2px solid var(--tt-gold);
  border-radius: var(--tt-radius);
  padding: 14px 28px;
  text-align: center;
  width: fit-content;
  margin-inline: auto;
  box-shadow: 0 3px 12px rgba(196, 154, 10, .18);
}
.tt-founding-badge > * { margin: 0 !important; }
.tt-founding-badge .date {
  font-family: var(--wp--preset--font-family--heading);
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.2;
  color: var(--tt-dark);
}
.tt-founding-badge .time { font-size: 1rem; font-weight: 600; color: var(--tt-gold); line-height: 1.4; }
.tt-founding-badge .label { font-size: .92rem; color: var(--tt-text); }

/* ============================================================
   TERMINE-STREIFEN
   ============================================================ */
.tt-termine-bar {
  background: #fff;
  border-top: 1px solid var(--tt-line);
  border-bottom: 1px solid var(--tt-line);
  padding-top: 1.1rem;
  padding-bottom: 1.1rem;
  margin-block-start: 0 !important;
}
.tt-termine-inner { gap: .75rem 2.5rem; }
.tt-termine-bar .label {
  margin: 0;
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--tt-red);
  white-space: nowrap;
  display: flex;
  align-items: center;
  gap: 8px;
}
.tt-termine-bar .label::before {
  content: '';
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--tt-red);
}
.tt-termine-bar .termine-list {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem 2.25rem;
  list-style: none;
  margin: 0;
  padding: 0;
  flex: 1;
}
.tt-termine-bar .termine-list li { margin: 0; color: var(--tt-text); }
.tt-termine-bar .termine-list strong { color: var(--tt-dark); font-weight: 600; }

/* ============================================================
   ABSCHNITTE & ÜBERSCHRIFTEN
   ============================================================ */
.tt-section { padding-top: clamp(2.5rem, 5vw, 3.5rem); }
.tt-main-home > .wp-block-post-content > .tt-section:last-child,
.tt-main-home .tt-section:last-child { padding-bottom: clamp(3rem, 6vw, 4.5rem); }
.tt-section-head { margin-bottom: 1.5rem; gap: .5rem 1.5rem; }
.tt-section-head > * { margin: 0 !important; }
.tt-section-title { font-weight: 700; }
.tt-section-link { font-weight: 600; margin: 0; }
.tt-section-link a { color: var(--tt-red); }

/* ============================================================
   BEITRAGSKARTEN (Aktuelles, Archive)
   Kategorie-Farben: karneval = rot, events/veranstaltungen = gold,
   soziales = grün, sonst rot.
   ============================================================ */
.tt-post-cards { gap: 1.5rem !important; }
.tt-post-cards > .wp-block-post { --tt-cat: var(--tt-red); margin: 0; }
.tt-post-cards > .category-events,
.tt-post-cards > .category-veranstaltungen,
.tt-post-cards > .category-feste { --tt-cat: var(--tt-gold); }
.tt-post-cards > .category-soziales,
.tt-post-cards > .category-soziales-engagement { --tt-cat: var(--tt-green); }
.tt-post-cards > .category-karneval { --tt-cat: var(--tt-red); }
.tt-post-cards > .category-verein { --tt-cat: var(--tt-dark); }

.tt-card {
  height: 100%;
  background: #fff;
  border: 1px solid var(--tt-card-border);
  border-radius: var(--tt-radius);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: border-color .2s, transform .15s, box-shadow .2s;
}
.tt-card > * { margin: 0 !important; }
.tt-card:hover {
  border-color: var(--tt-red-mid);
  transform: translateY(-3px);
  box-shadow: var(--tt-shadow);
}
.tt-card-media {
  position: relative;
  aspect-ratio: 16 / 10;
  background: #fbf7f6;
  border-bottom: 3px solid var(--tt-cat, var(--tt-red));
}
.tt-card-media::before {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--tt-logo) center / auto 58% no-repeat;
  opacity: .22;
  pointer-events: none;
}
.tt-card-media .wp-block-post-featured-image {
  position: absolute;
  inset: 0;
  margin: 0;
  height: 100%;
}
.tt-card-media .wp-block-post-featured-image a,
.tt-card-media .wp-block-post-featured-image img {
  display: block;
  width: 100%;
  height: 100% !important;
  object-fit: cover;
}
.tt-card-cat {
  position: absolute;
  top: 12px; left: 12px;
  margin: 0 !important;
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  z-index: 1;
}
.tt-card-cat .wp-block-post-terms__separator { display: none; }
.tt-card-cat a {
  background: var(--tt-cat, var(--tt-red));
  color: #fff !important;
  font-size: .7rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .08em;
  line-height: 1;
  padding: 5px 10px;
  border-radius: 20px;
  text-decoration: none !important;
}
.tt-card-cat a[href$="/karneval/"] { background: var(--tt-red); }
.tt-card-cat a[href$="/events/"],
.tt-card-cat a[href$="/veranstaltungen/"] { background: var(--tt-gold); }
.tt-card-cat a[href$="/soziales/"] { background: var(--tt-green); }
.tt-card-cat a[href$="/verein/"] { background: var(--tt-dark); }
.tt-post-meta .wp-block-post-terms a[href$="/events/"] { background: var(--tt-gold); }
.tt-post-meta .wp-block-post-terms a[href$="/soziales/"] { background: var(--tt-green); }
.tt-post-meta .wp-block-post-terms a[href$="/verein/"] { background: var(--tt-dark); }
.tt-post-meta .wp-block-post-terms a[href$="/aktuelles/"]:not(:only-of-type) { display: none; }
/* "Aktuelles" ausblenden, wenn eine weitere Kategorie da ist */
.tt-card-cat a[href$="/category/aktuelles/"]:not(:only-of-type) { display: none; }

.tt-card-body { padding: 1.1rem 1.25rem 1.4rem; flex: 1; }
.tt-card-body > * { margin: 0; }
.tt-card-date { font-size: .88rem; color: var(--tt-text); }
.tt-card-title {
  font-size: 1.22rem !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  margin: .4rem 0 .5rem !important;
}
.tt-card-title a { color: var(--tt-dark); text-decoration: none; }
.tt-card-title a:hover { color: var(--tt-red); text-decoration: none; }
.tt-card-excerpt { font-size: .97rem; color: var(--tt-text); line-height: 1.55; }
.tt-card-excerpt p { margin: 0; }
.tt-card-excerpt .wp-block-post-excerpt__more-text { display: none; }

/* Seiten-Navigation in Archiven */
.tt-pagination { margin-top: 2.5rem !important; padding-bottom: 3rem; gap: .5rem; }
.tt-pagination a, .tt-pagination .page-numbers {
  padding: .35rem .8rem;
  border-radius: 8px;
  border: 1px solid var(--tt-card-border);
  color: var(--tt-dark);
  text-decoration: none;
}
.tt-pagination .current { background: var(--tt-red); color: #fff; border-color: var(--tt-red); }
.wp-block-query.tt-section > .wp-block-post-template { margin-block-start: 0; }
main .wp-block-query.tt-section { padding-bottom: 3.5rem; }

/* ============================================================
   INSTAGRAM (Smash Balloon)
   ============================================================ */
.tt-instagram #sb_instagram { padding-bottom: 0 !important; }
.tt-instagram #sb_instagram .sbi_photo,
.tt-instagram #sb_instagram .sbi_item img { border-radius: 10px; }

/* ============================================================
   VORSTAND-KARTEN (Muster "Vorstand – Kartenraster")
   Farbe per CSS-Klasse der Karte: "is-rot" oder "is-gold"
   ============================================================ */
.tt-vorstand-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.5rem;
  margin-top: 0;
}
.tt-vorstand-grid > * { margin: 0 !important; }

.tt-vorstand-card {
  --tt-band: linear-gradient(135deg, var(--tt-red-light), var(--tt-red-mid));
  --tt-avatar-bg: var(--tt-red);
  --tt-avatar-fg: #fff;
  position: relative;
  background: #fff;
  border: 1px solid var(--tt-card-border);
  border-radius: var(--tt-radius);
  overflow: hidden;
  padding: 0 1.4rem 1.5rem;
  transition: border-color .2s, box-shadow .2s;
}
.tt-vorstand-card.is-gold {
  --tt-band: linear-gradient(135deg, var(--tt-gold-light), #f8ecb8);
  --tt-avatar-bg: var(--tt-gold);
  --tt-avatar-fg: var(--tt-dark);
}
.tt-vorstand-card:hover { border-color: var(--tt-red-mid); box-shadow: var(--tt-shadow); }
/* farbiges Kopfband mit Dreifarbstreifen */
.tt-vorstand-card::before {
  content: '';
  position: absolute;
  left: 0; right: 0; top: 0;
  height: 84px;
  background:
    linear-gradient(to right, var(--tt-dark) 0 33.33%, var(--tt-red) 33.33% 66.66%, var(--tt-gold) 66.66%) bottom / 100% 3px no-repeat,
    var(--tt-band);
}
/* Wappen als Wasserzeichen oben rechts */
.tt-vorstand-card::after {
  content: '';
  position: absolute;
  top: 12px; right: 14px;
  width: 46px; height: 52px;
  background: var(--tt-logo) center / contain no-repeat;
  opacity: .55;
  pointer-events: none;
}
.tt-vorstand-card > * { position: relative; z-index: 1; margin-block-start: 0 !important; }

.tt-avatar {
  width: 66px;
  height: 66px;
  margin: 50px 0 1rem !important;
  border-radius: 50%;
  border: 3px solid #fff;
  box-shadow: 0 3px 10px rgba(0, 0, 0, .14);
  background: var(--tt-avatar-bg);
  color: var(--tt-avatar-fg);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: .03em;
  overflow: hidden;
}
.tt-avatar img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; display: block; }
/* Alternative: Bild-Block mit Klasse "tt-avatar" statt Initialen */
figure.tt-avatar { background: #fff; }

.tt-card-name { font-size: 1.3rem !important; font-weight: 700 !important; margin: 0 0 .2rem !important; }
.tt-card-role {
  font-size: .8rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--tt-red);
  margin: 0 0 .7rem !important;
}
.tt-card-text { font-size: .98rem; line-height: 1.6; color: var(--tt-dark); margin: 0 !important; }

/* Karte "Aktive Mitgliedschaft" */
.tt-mitglied-card {
  border: 2px dashed var(--tt-red-mid);
  border-radius: var(--tt-radius);
  background: var(--tt-cream);
  padding: 2rem 1.5rem;
  text-align: center;
  gap: .5rem !important;
  min-height: 100%;
  transition: border-color .2s;
}
.tt-mitglied-card:hover { border-color: var(--tt-red); }
.tt-mitglied-card > * { margin: 0 !important; }
.tt-mitglied-card .tt-card-name { font-size: 1.15rem !important; }
.tt-mitglied-card p { color: var(--tt-text); }
.tt-mitglied-card .wp-block-buttons { margin-top: .75rem !important; }

/* Shortcode-Variante (alte Seiten mit [tt_vorstand]) */
.tt-vorstand-grid .tt-vorstand-card br { display: none; }

/* ============================================================
   GALERIE (Muster "Galerie")
   ============================================================ */
.tt-galerie > * { margin-block-start: 0; }
.tt-galerie-filter { gap: .6rem; margin-bottom: 1.75rem !important; }
.tt-galerie-filter .wp-block-button .wp-block-button__link {
  background: #fff;
  color: var(--tt-text);
  border: 1.5px solid #ddd5d4;
  border-radius: 999px;
  padding: .4rem 1.15rem;
  font-size: .95rem;
  font-weight: 500;
}
.tt-galerie-filter .wp-block-button .wp-block-button__link:hover {
  border-color: var(--tt-red-mid);
  color: var(--tt-red);
  background: #fff;
}
.tt-galerie-filter .wp-block-button.is-active .wp-block-button__link {
  border-color: var(--tt-red);
  color: var(--tt-red);
  font-weight: 600;
}

.tt-galerie-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}
.tt-galerie-grid > * { margin: 0 !important; }
.tt-galerie-item {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--tt-card-border);
  border-radius: 12px;
  overflow: hidden;
  transition: box-shadow .2s, transform .15s;
}
.tt-galerie-item:hover { box-shadow: var(--tt-shadow); transform: translateY(-2px); }
.tt-galerie-item img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  flex: 1;
  display: block;
}
.tt-galerie-item:first-child { grid-row: span 2; }
.tt-galerie-item:first-child img { aspect-ratio: auto; height: 100%; }
.tt-galerie-item figcaption {
  margin: 0 !important;
  padding: .6rem .8rem;
  text-align: left;
  font-size: .92rem;
  color: var(--tt-dark);
  border-top: 1px solid var(--tt-card-border);
}
.tt-galerie-item.is-hidden { display: none; }
.tt-galerie.is-filtered .tt-galerie-item:first-child { grid-row: auto; }
.tt-galerie.is-filtered .tt-galerie-item:first-child img { aspect-ratio: 4 / 3; height: auto; }

/* Instagram-Hinweisbox */
.tt-insta-box {
  margin-top: 2rem !important;
  border: 1.5px solid var(--tt-red-mid);
  border-radius: var(--tt-radius);
  padding: 1.4rem 1.75rem;
  gap: 1rem 2rem;
  background: #fff;
}
.tt-insta-box-main { gap: 1.25rem; flex: 1 1 420px; }
.tt-insta-box-main > * { margin: 0 !important; }
.tt-insta-box h3 { font-size: 1.3rem; margin: 0 0 .25rem; }
.tt-insta-box p { margin: 0; color: var(--tt-dark); }
.tt-insta-logo { margin: 0; flex-shrink: 0; }
.tt-insta-box .tt-section-link { margin: 0; }

/* ============================================================
   FOOTER
   ============================================================ */
footer.wp-block-template-part {
  background: var(--tt-dark);
  border-top: 3px solid var(--tt-red);
  margin-block-start: 0;
}
.tt-footer {
  padding: 1.6rem var(--wp--style--root--padding-right, 1.5rem) 1.6rem var(--wp--style--root--padding-left, 1.5rem);
  color: rgba(255, 255, 255, .7);
}
.tt-footer-inner { gap: 1rem 2rem; }
.tt-footer-brand { gap: 14px; }
.tt-footer-copy { margin: 0; font-size: .92rem; color: rgba(255, 255, 255, .7); }
.tt-footer-nav { gap: .5rem 1.6rem; font-size: .92rem; }
.tt-footer-nav .wp-block-navigation-item__content { color: rgba(255, 255, 255, .7); text-decoration: none; }
.tt-footer-nav .wp-block-navigation-item__content:hover { color: #fff; text-decoration: none; }

/* ============================================================
   WEITERE ELEMENTE
   ============================================================ */
.wp-block-button.is-style-gold .wp-block-button__link {
  background: var(--tt-gold);
  border-color: var(--tt-gold);
  color: var(--tt-dark);
}
.wp-block-button.is-style-gold .wp-block-button__link:hover {
  background: var(--tt-gold-dark);
  border-color: var(--tt-gold-dark);
  color: #fff;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
  background: var(--tt-red-light);
  color: var(--tt-red);
}

.wp-block-separator.is-style-wide { border-color: var(--tt-red); border-width: 2px; }

.wp-block-table thead { background: var(--tt-red); color: #fff; }
.wp-block-table thead th { color: #fff; }

.wp-block-gallery .wp-block-image img { border-radius: 10px; }

/* Formulare (Gravity Forms & Standard) */
.gform_wrapper input[type="text"],
.gform_wrapper input[type="email"],
.gform_wrapper input[type="tel"],
.gform_wrapper textarea,
.gform_wrapper select,
.wp-block-search__input,
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form textarea {
  border: 1px solid #ddd5d4;
  border-radius: 8px;
  padding: 10px 14px;
  font-family: inherit;
  font-size: 1rem;
}
.gform_wrapper input:focus,
.gform_wrapper textarea:focus,
.gform_wrapper select:focus {
  border-color: var(--tt-red);
  outline: none;
  box-shadow: 0 0 0 3px rgba(184, 36, 27, .12);
}
.gform_wrapper .gform_button,
.gform_wrapper input[type="submit"] {
  background: var(--tt-red) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 8px !important;
  padding: 10px 24px !important;
  font-weight: 600 !important;
  cursor: pointer;
}
.gform_wrapper .gform_button:hover,
.gform_wrapper input[type="submit"]:hover { background: var(--tt-red-dark) !important; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1340px) {
  .tt-main-nav { gap: 1.25rem; }
  .tt-header-nav { gap: 1.25rem; }
}

/* Unter 1180 px: Hamburger-Menü statt Menüzeile (WordPress schaltet sonst erst unter 600 px um) */
@media (max-width: 1180px) {
  .tt-main-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
  .tt-main-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
  .tt-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { display: flex; }
  .tt-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { flex-wrap: wrap; flex-direction: column; align-items: flex-start; gap: .5rem; }
  .tt-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
    position: static; opacity: 1; visibility: visible; height: auto; width: auto;
    border: 0 !important; box-shadow: none; padding: .25rem 0 .25rem 1rem; min-width: 0 !important;
  }
  .tt-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle { display: none; }
}

@media (max-width: 1024px) {
  .tt-vorstand-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tt-galerie-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .tt-header-nav { gap: 1.25rem; }
  .tt-main-nav { gap: 1.1rem; }
}

@media (max-width: 900px) {
  .tt-post-cards { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .tt-header .tt-header-cta { display: none; }
}

@media (max-width: 781px) {
  .tt-brand-logo img { width: 48px !important; }
  .tt-brand-sub { display: none; }
  .tt-brand-name { font-size: 1.2rem; }

  .tt-hero-cols { flex-direction: column; gap: 1.75rem !important; }
  .tt-hero-aside {
    order: -1;
    border-left: 0;
    padding-left: 0;
    gap: 1.25rem;
  }
  .tt-hero-main { padding-right: 0; }
  .tt-hero-logo { max-width: 150px; }
  .tt-founding-badge { width: 100%; padding: 10px 16px; }

  .tt-termine-inner { flex-direction: column; align-items: flex-start !important; }
  .tt-termine-bar .termine-list { flex-direction: column; }

  .tt-galerie-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tt-galerie-item:first-child { grid-row: auto; }
  .tt-galerie-item:first-child img { aspect-ratio: 4 / 3; height: auto; }
}

@media (max-width: 600px) {
  .tt-vorstand-grid { grid-template-columns: 1fr; }

  /* Beitragskarten kompakt: Bild links, Text rechts */
  .tt-post-cards { grid-template-columns: 1fr !important; gap: 1rem !important; }
  .tt-card { flex-direction: row; }
  .tt-card-media {
    flex: 0 0 96px;
    aspect-ratio: auto;
    min-height: 96px;
    border-bottom: 0;
    border-right: 3px solid var(--tt-cat, var(--tt-red));
  }
  .tt-card-cat { position: static; padding: 0; margin-bottom: .35rem !important; }
  .tt-card-media .tt-card-cat { display: none; }
  .tt-card-body { padding: .85rem 1rem; }
  .tt-card-title { font-size: 1.05rem !important; margin: .15rem 0 0 !important; }
  .tt-card-excerpt { display: none; }

  .tt-insta-box-main { flex-direction: column; align-items: flex-start !important; }
  .tt-footer-inner { flex-direction: column; align-items: flex-start !important; }
  .tt-footer-nav .wp-block-navigation__container { justify-content: flex-start; }
}

/* Aktiver Unterpunkt im Overlay-Menü */
.tt-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .current-menu-item > .wp-block-navigation-item__content { color: var(--tt-red); }

/* ============================================================
   UNTERSEITEN-BAUSTEINE (ab 2.1.0)
   ============================================================ */

/* Inhalt von Seiten: Lesetypografie */
.tt-page-content > h2,
.tt-page-content .wp-block-html h2 { font-size: 1.75rem; margin-top: 2.75rem; margin-bottom: .75rem; }
.tt-page-content > h3,
.tt-page-content .wp-block-html h3 { font-size: 1.3rem; margin-top: 2rem; margin-bottom: .5rem; }
.tt-page-content .wp-block-html h4 { font-size: 1.08rem; margin-top: 1.5rem; margin-bottom: .4rem; font-family: var(--wp--preset--font-family--body); font-weight: 700; }
.tt-page-content > p,
.tt-page-content > ul,
.tt-page-content > ol { line-height: 1.75; }
.tt-page-content .wp-block-image img { border-radius: 12px; }
.tt-page-content > * + .alignwide { margin-top: 2.5rem; }

/* Abschnittskopf mit Augenbraue */
.tt-block-head { margin-top: 3rem !important; margin-bottom: 1.5rem !important; }
.tt-block-head > * { margin: 0 !important; }
.tt-block-head .tt-eyebrow { margin-bottom: .5rem !important; }
.tt-page-content > .tt-block-head:first-child { margin-top: 0 !important; }

/* Hervorgehobener Einleitungstext */
.tt-lead-box {
  position: relative;
  background: var(--tt-cream);
  border-radius: var(--tt-radius);
  padding: clamp(1.5rem, 4vw, 2.5rem) clamp(1.5rem, 5vw, 3.25rem);
  overflow: hidden;
}
.tt-lead-box::before {
  content: '';
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 6px;
  background: linear-gradient(to bottom, var(--tt-gold), var(--tt-red), var(--tt-dark));
}
.tt-lead-box > * { margin: 0 !important; }
.tt-lead-text {
  font-family: var(--wp--preset--font-family--heading);
  font-size: clamp(1.15rem, 2.2vw, 1.45rem);
  line-height: 1.6;
  color: var(--tt-dark);
}
.tt-lead-text a { color: var(--tt-red); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.tt-page-content > .tt-lead-box:first-child { margin-top: 0; }

/* Motto */
.tt-motto {
  text-align: center;
  padding: clamp(2rem, 5vw, 3.25rem) 1.5rem;
  margin-top: 3rem !important;
  margin-bottom: 1rem !important;
}
.tt-motto::before {
  content: '';
  display: block;
  width: 96px; height: 4px;
  margin: 0 auto 1.5rem;
  background: linear-gradient(to right, var(--tt-dark) 0 33.33%, var(--tt-red) 33.33% 66.66%, var(--tt-gold) 66.66%);
  border-radius: 2px;
}
.tt-motto > * { margin: 0 auto !important; max-width: 820px; }
.tt-motto-text {
  font-family: var(--wp--preset--font-family--heading);
  font-size: clamp(1.6rem, 3.6vw, 2.5rem);
  line-height: 1.25;
  color: var(--tt-red);
}
.tt-motto-sub { margin-top: 1rem !important; color: var(--tt-text); font-size: 1.05rem; }

/* Zitat (Uniform) */
.wp-block-quote.tt-pullquote {
  border-left: 4px solid var(--tt-gold) !important;
  background: var(--tt-gold-light);
  border-radius: 0 12px 12px 0;
  padding: 1.25rem 1.5rem;
  font-style: normal;
}
.wp-block-quote.tt-pullquote p { font-size: 1.2rem; line-height: 1.6; margin: 0; }

/* Zeitleiste (Historie) */
.tt-timeline {
  position: relative;
  padding-left: 2.25rem;
  margin-top: 0 !important;
}
.tt-timeline::before {
  content: '';
  position: absolute;
  left: 9px; top: 6px; bottom: 6px;
  width: 2px;
  background: linear-gradient(to bottom, var(--tt-gold), var(--tt-red), var(--tt-dark));
  border-radius: 2px;
}
.tt-timeline > * { margin: 0 0 1.25rem !important; }
.tt-tl-item {
  position: relative;
  background: #fff;
  border: 1px solid var(--tt-card-border);
  border-radius: var(--tt-radius);
  padding: 1.25rem 1.5rem 1.35rem;
}
.tt-tl-item::before {
  content: '';
  position: absolute;
  left: calc(-2.25rem + 2px); top: 1.5rem;
  width: 16px; height: 16px;
  border-radius: 50%;
  background: #fff;
  border: 3px solid var(--tt-gold);
  box-sizing: border-box;
}
.tt-tl-item.is-highlight { border-color: var(--tt-gold); box-shadow: 0 3px 14px rgba(196, 154, 10, .16); }
.tt-tl-item.is-highlight::before { background: var(--tt-red); border-color: var(--tt-red); }
.tt-tl-item > * { margin: 0 !important; }
.tt-tl-item > p + p { margin-top: .75rem !important; }
.tt-tl-date {
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--tt-red);
}
.tt-tl-title { font-size: 1.35rem !important; margin: .2rem 0 .5rem !important; }

/* Text + Bild */
.tt-split { gap: clamp(1.5rem, 4vw, 3.5rem) !important; align-items: center !important; margin-top: 0; }
.tt-split + * { margin-top: 2.5rem !important; }
* + .tt-split { margin-top: 3rem !important; }
.tt-split.is-reverse { flex-direction: row-reverse; }
.tt-split-text > * { margin-block-start: 0; }
.tt-split-text > * + * { margin-top: 1rem; }
.tt-split-text h2 { margin-bottom: .5rem; }
.tt-split-media figure,
.tt-split-media .wp-block-video { margin: 0; position: relative; }
.tt-split-media img,
.tt-split-media video {
  width: 100%;
  border-radius: var(--tt-radius);
  box-shadow: var(--tt-shadow);
  display: block;
}
.tt-split-media .tt-split-img { border-bottom: 0; }
.tt-split-media .tt-split-img::after {
  content: '';
  display: block;
  height: 4px;
  margin: 10px 18% 0;
  border-radius: 2px;
  background: linear-gradient(to right, var(--tt-dark) 0 33.33%, var(--tt-red) 33.33% 66.66%, var(--tt-gold) 66.66%);
}

/* Karten mit Nummer (Vorteile) */
.tt-feature-grid { display: grid; gap: 1.25rem; margin-top: 0 !important; }
.tt-feature-grid.cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tt-feature-grid.cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tt-feature-grid > * { margin: 0 !important; }
.tt-feature {
  background: #fff;
  border: 1px solid var(--tt-card-border);
  border-radius: var(--tt-radius);
  padding: 1.5rem 1.5rem 1.6rem;
  transition: border-color .2s, box-shadow .2s;
}
.tt-feature:hover { border-color: var(--tt-red-mid); box-shadow: var(--tt-shadow); }
.tt-feature > * { margin: 0 !important; }
.tt-feature-num {
  width: 44px; height: 44px;
  border-radius: 50%;
  background: var(--tt-red-light);
  color: var(--tt-red);
  font-weight: 700;
  font-size: .95rem;
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 1rem !important;
}
.tt-feature:nth-child(even) .tt-feature-num { background: var(--tt-gold-light); color: var(--tt-gold-dark); }
.tt-feature-title { font-size: 1.25rem !important; margin-bottom: .5rem !important; }
.tt-feature p:last-child { color: var(--tt-text); line-height: 1.65; }

/* Querverweis-Karten */
.tt-link-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1.25rem;
  margin-top: 3rem !important;
}
.tt-link-cards > * { margin: 0 !important; }
.tt-link-card {
  position: relative;
  background: #fff;
  border: 1px solid var(--tt-card-border);
  border-top: 3px solid var(--tt-red);
  border-radius: var(--tt-radius);
  padding: 1.35rem 1.5rem 1.4rem;
  transition: transform .15s, box-shadow .2s;
}
.tt-link-card:nth-child(2) { border-top-color: var(--tt-gold); }
.tt-link-card:hover { transform: translateY(-2px); box-shadow: var(--tt-shadow); }
.tt-link-card > * { margin: 0 !important; }
.tt-link-eyebrow { font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--tt-muted); }
.tt-link-title { font-size: 1.3rem !important; margin: .25rem 0 .4rem !important; }
.tt-link-title a { color: var(--tt-dark); text-decoration: none; }
.tt-link-title a::after { content: ''; position: absolute; inset: 0; }
.tt-link-card p { color: var(--tt-text); }
.tt-link-card .tt-section-link { margin-top: .75rem !important; }

/* Übersicht (Über uns) */
.tt-hub-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.5rem;
  margin-top: 2.5rem !important;
}
.tt-hub-grid > * { margin: 0 !important; }
.tt-hub-card {
  position: relative;
  background: #fff;
  border: 1px solid var(--tt-card-border);
  border-radius: var(--tt-radius);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform .15s, box-shadow .2s, border-color .2s;
}
.tt-hub-card:hover { transform: translateY(-3px); box-shadow: var(--tt-shadow); border-color: var(--tt-red-mid); }
.tt-hub-card > * { margin: 0 !important; }
.tt-hub-img { aspect-ratio: 16 / 10; overflow: hidden; border-bottom: 3px solid var(--tt-red); background: #fbf7f6; }
.tt-hub-card:nth-child(even) .tt-hub-img { border-bottom-color: var(--tt-gold); }
.tt-hub-img a, .tt-hub-img img { display: block; width: 100%; height: 100% !important; object-fit: cover; border-radius: 0 !important; }
.tt-hub-body { padding: 1.15rem 1.35rem 1.35rem; flex: 1; }
.tt-hub-body > * { margin: 0 !important; }
.tt-hub-title { font-size: 1.3rem !important; margin-bottom: .35rem !important; }
.tt-hub-title a { color: var(--tt-dark); text-decoration: none; }
.tt-hub-title a::after { content: ''; position: absolute; inset: 0; }
.tt-hub-body p { color: var(--tt-text); }
.tt-hub-body .tt-section-link { margin-top: .75rem !important; }

/* Formular-Karte */
.tt-form-card {
  background: var(--tt-cream);
  border: 1px solid var(--tt-card-border);
  border-radius: 18px;
  padding: clamp(1.5rem, 4vw, 2.75rem);
  margin-top: 3rem !important;
}
.tt-form-card > * { margin-block-start: 0; }
.tt-form-card > h2 { margin: .3rem 0 .4rem; }
.tt-form-card > p:not(.tt-eyebrow) { color: var(--tt-text); margin-bottom: 1.5rem; }
.tt-form-card.is-plain { background: #fff; margin-top: 0 !important; }
.tt-form-card .gform_wrapper { margin: 0 !important; }
.tt-form-card .gform_wrapper .gform_button { width: auto; }

/* Hinweis */
.tt-note {
  background: var(--tt-gold-light);
  border-left: 4px solid var(--tt-gold);
  border-radius: 0 12px 12px 0;
  padding: 1rem 1.25rem;
  font-size: .95rem;
  color: var(--tt-dark);
  margin-top: 1.5rem !important;
}
.tt-note > * { margin: 0 !important; }

/* Download (Datei-Block) */
.tt-download {
  background: #fff;
  border: 1px solid var(--tt-card-border);
  border-radius: var(--tt-radius);
  padding: 1.5rem 1.75rem;
  margin-top: 2.5rem !important;
}
.tt-download > * { margin: 0 !important; }
.tt-download h3 { font-size: 1.25rem !important; margin: .25rem 0 1rem !important; }
.tt-download .wp-block-file {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .75rem 1.25rem;
  padding: .9rem 1rem .9rem 4.25rem;
  position: relative;
  background: var(--tt-cream);
  border-radius: 10px;
  margin: 0;
}
.tt-download .wp-block-file::before {
  content: 'PDF';
  position: absolute;
  left: 1rem; top: 50%;
  transform: translateY(-50%);
  width: 2.5rem; height: 2.5rem;
  border-radius: 8px;
  background: var(--tt-red);
  color: #fff;
  font-size: .72rem;
  font-weight: 700;
  display: flex; align-items: center; justify-content: center;
}
.tt-download .wp-block-file > a:first-child { color: var(--tt-dark); font-weight: 600; }
.tt-download .wp-block-file__button { margin-left: auto !important; }

/* Spendenkonto */
.tt-bank-card {
  position: relative;
  max-width: 760px;
  margin-left: auto !important;
  margin-right: auto !important;
  background: #fff;
  border: 2px solid var(--tt-gold);
  border-radius: 18px;
  padding: clamp(1.5rem, 4vw, 2.5rem);
  box-shadow: 0 4px 18px rgba(196, 154, 10, .14);
  overflow: hidden;
}
.tt-bank-card::before {
  content: '';
  position: absolute; left: 0; right: 0; top: 0; height: 5px;
  background: linear-gradient(to right, var(--tt-dark) 0 33.33%, var(--tt-red) 33.33% 66.66%, var(--tt-gold) 66.66%);
}
.tt-bank-card > * { margin-block-start: 0; }
.tt-bank-card > h2 { margin: .3rem 0 1.25rem; font-size: 1.6rem; }
.tt-bank-rows > * { margin: 0 !important; }
.tt-bank-row {
  display: flex;
  flex-wrap: wrap;
  gap: .25rem 1rem;
  padding: .7rem 0;
  border-bottom: 1px solid var(--tt-line);
  font-size: 1.05rem;
}
.tt-bank-row:last-child { border-bottom: 0; }
.tt-bank-label,
.tt-contact-line .tt-bank-label {
  display: inline-block;
  min-width: 8.5rem;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--tt-muted);
  padding-top: .2rem;
}
.tt-iban { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 1.05rem; letter-spacing: .04em; font-weight: 600; }
.tt-bank-card .wp-block-buttons { margin-top: 1.25rem; }
.tt-copy-iban.is-copied .wp-block-button__link { background: var(--tt-green); border-color: var(--tt-green); color: #fff; }

/* Partner */
.tt-partner-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.25rem;
  margin-top: 0 !important;
}
.tt-partner-grid > * { margin: 0 !important; }
.tt-partner {
  background: #fff;
  border: 1px solid var(--tt-card-border);
  border-radius: var(--tt-radius);
  padding: 1.5rem 1.25rem 1.1rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  transition: border-color .2s, box-shadow .2s, transform .15s;
}
.tt-partner:hover { border-color: var(--tt-red-mid); box-shadow: var(--tt-shadow); transform: translateY(-2px); }
.tt-partner > * { margin: 0 !important; }
.tt-partner-logo { width: 100%; height: 120px; display: flex; align-items: center; justify-content: center; }
.tt-partner-logo a { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }
.tt-partner-logo img { max-width: 100%; max-height: 120px; width: auto; height: auto; object-fit: contain; border-radius: 6px !important; }
.tt-partner-name { margin-top: 1rem !important; padding-top: .75rem; border-top: 1px solid var(--tt-line); width: 100%; font-size: .9rem; font-weight: 600; color: var(--tt-text); }

/* CTA-Band */
.tt-cta-band {
  margin-top: 3rem !important;
  background: var(--tt-dark);
  color: #fff;
  border-radius: 18px;
  padding: clamp(1.5rem, 4vw, 2.25rem) clamp(1.5rem, 4vw, 2.75rem);
  gap: 1rem 2rem;
  position: relative;
  overflow: hidden;
}
.tt-cta-band::after {
  content: '';
  position: absolute; left: 0; right: 0; bottom: 0; height: 4px;
  background: linear-gradient(to right, var(--tt-dark) 0 33.33%, var(--tt-red) 33.33% 66.66%, var(--tt-gold) 66.66%);
}
.tt-cta-band > * { margin: 0 !important; }
.tt-cta-band h3 { color: #fff; font-size: 1.5rem; flex: 0 0 100%; }
.tt-cta-band p { color: rgba(255, 255, 255, .78); flex: 1 1 380px; }

/* Foto groß (Gründungstöchter) */
.tt-photo-feature { margin-top: 2.5rem !important; }
.tt-photo-feature img { border-radius: 18px !important; box-shadow: var(--tt-shadow); width: 100%; }
.tt-photo-feature figcaption {
  margin-top: 1rem !important;
  text-align: center;
  font-size: .98rem;
  color: var(--tt-text);
  max-width: 760px;
  margin-left: auto; margin-right: auto;
}

/* Kontakt */
.tt-contact { gap: clamp(1.5rem, 4vw, 3rem) !important; align-items: stretch !important; }
.tt-contact-card {
  height: 100%;
  background: var(--tt-dark);
  color: rgba(255, 255, 255, .85);
  border-radius: 18px;
  padding: clamp(1.5rem, 4vw, 2.25rem);
  position: relative;
  overflow: hidden;
}
.tt-contact-card::before {
  content: '';
  position: absolute; left: 0; right: 0; top: 0; height: 5px;
  background: linear-gradient(to right, var(--tt-dark) 0 33.33%, var(--tt-red) 33.33% 66.66%, var(--tt-gold) 66.66%);
}
.tt-contact-card > * { margin: 0 0 1rem !important; }
.tt-contact-card h3 { color: #fff; font-size: 1.35rem; }
.tt-contact-card a { color: #fff; }
.tt-contact-card a:hover { color: var(--tt-gold-mid, #f0d060); }
.tt-contact-line { line-height: 1.6; }
.tt-contact-line .tt-bank-label { color: rgba(255, 255, 255, .5); display: block; min-width: 0; padding-top: 0; }
.tt-contact-social { padding-top: 1rem; border-top: 1px solid rgba(255, 255, 255, .15); font-weight: 600; }
.tt-contact-logo { margin-bottom: 1.25rem !important; }

/* Töchterlied */
.tt-song { display: grid; gap: 1.25rem; max-width: 760px; margin-left: auto !important; margin-right: auto !important; }
.tt-song > * { margin: 0 !important; }
.tt-song-title { text-align: center; color: var(--tt-red); font-size: clamp(1.5rem, 3vw, 2.1rem) !important; margin-bottom: .5rem !important; }
.tt-verse {
  background: #fff;
  border: 1px solid var(--tt-card-border);
  border-radius: var(--tt-radius);
  padding: 1.25rem 1.5rem;
}
.tt-verse > * { margin: 0 !important; }
.tt-verse > p + p { margin-top: .9rem !important; }
.tt-verse p { font-size: 1.08rem; line-height: 1.75; }
.tt-refrain {
  background: var(--tt-red-light);
  border-left: 4px solid var(--tt-red);
  border-radius: 0 var(--tt-radius) var(--tt-radius) 0;
  padding: 1.25rem 1.5rem;
  position: relative;
}
.tt-refrain::before {
  content: 'Refrain';
  display: block;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--tt-red);
  margin-bottom: .5rem;
}
.tt-refrain > * { margin: 0 !important; }
.tt-refrain > p + p { margin-top: .6rem !important; }
.tt-refrain p { font-family: var(--wp--preset--font-family--heading); font-size: 1.15rem; line-height: 1.65; color: var(--tt-dark); }
.tt-refrain strong, .tt-refrain em { font-weight: 600; }
.tt-song-credits { text-align: center; font-size: .92rem; color: var(--tt-text); margin-top: .75rem !important; }

/* ============================================================
   EINZELNER BEITRAG
   ============================================================ */
.tt-post-header {
  padding-top: clamp(2rem, 5vw, 3.25rem);
  padding-bottom: 1.75rem;
  margin-block-start: 0 !important;
}
.tt-post-header > * { margin: 0 !important; }
.tt-back-link { font-weight: 600; margin-bottom: 1.25rem !important; }
.tt-back-link a { color: var(--tt-red); }
.tt-post-meta { gap: .75rem 1rem; margin-bottom: .9rem !important; }
.tt-post-meta > * { margin: 0 !important; }
.tt-post-meta .wp-block-post-terms a {
  background: var(--tt-red);
  color: #fff;
  font-size: .7rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .08em;
  padding: 5px 10px;
  border-radius: 20px;
  text-decoration: none;
}
.tt-post-meta .wp-block-post-terms__separator { display: none; }
.tt-post-meta .wp-block-post-date { color: var(--tt-text); font-size: .95rem; }
.tt-post-header h1 { font-size: clamp(1.9rem, 4vw, 2.75rem); font-weight: 700; line-height: 1.2; }
.tt-post-image { margin-top: .5rem !important; margin-bottom: 2rem !important; }
.tt-post-image img { border-radius: 16px; box-shadow: var(--tt-shadow); max-height: 560px; object-fit: cover; width: 100%; }
.tt-post-content { padding-bottom: 2.5rem; }
.tt-post-content > p:first-child strong:only-child { font-family: var(--wp--preset--font-family--heading); font-weight: 600; font-size: 1.25rem; line-height: 1.5; }
.tt-post-content .wp-block-image img { border-radius: 12px; }
.tt-post-footer {
  border-top: 1px solid var(--tt-line);
  padding-top: 2rem;
  padding-bottom: 3.5rem;
}
.tt-post-nav { gap: 1rem; }
.tt-post-nav > * { margin: 0 !important; flex: 1 1 260px; }
.tt-post-nav .post-navigation-link-previous,
.tt-post-nav .post-navigation-link-next {
  display: block;
  background: #fff;
  border: 1px solid var(--tt-card-border);
  border-radius: 12px;
  padding: 1rem 1.25rem;
  transition: border-color .2s, box-shadow .2s;
}
.tt-post-nav .post-navigation-link-next { text-align: right; }
.tt-post-nav .post-navigation-link-previous:hover,
.tt-post-nav .post-navigation-link-next:hover { border-color: var(--tt-red-mid); box-shadow: var(--tt-shadow); }
.tt-post-nav a { color: var(--tt-dark); font-family: var(--wp--preset--font-family--heading); font-weight: 600; text-decoration: none; }
.tt-post-nav .tt-nav-label { display: block; font-family: var(--wp--preset--font-family--body); font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--tt-red); margin-bottom: .25rem; }

/* 404 */
.tt-404 { text-align: center; padding: clamp(3rem, 8vw, 6rem) 0; }
.tt-404 > * { margin-left: auto !important; margin-right: auto !important; }
.tt-404 .tt-404-logo { max-width: 140px; }
.tt-404 .wp-block-buttons { justify-content: center; }

/* Responsive Unterseiten */
@media (max-width: 1024px) {
  .tt-hub-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tt-partner-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tt-feature-grid.cols-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 781px) {
  .tt-split, .tt-split.is-reverse { flex-direction: column; }
  .tt-split-media { max-width: 420px; margin: 0 auto; width: 100%; }
  .tt-feature-grid.cols-2, .tt-feature-grid.cols-3 { grid-template-columns: 1fr; }
  .tt-timeline { padding-left: 1.75rem; }
  .tt-timeline::before { left: 6px; }
  .tt-tl-item::before { left: calc(-1.75rem - 1px); }
  .tt-tl-item { padding: 1.1rem 1.15rem; }
}
@media (max-width: 600px) {
  .tt-hub-grid { grid-template-columns: 1fr; }
  .tt-partner-grid { grid-template-columns: 1fr 1fr; gap: .75rem; }
  .tt-partner { padding: 1rem .75rem .75rem; }
  .tt-partner-logo { height: 80px; }
  .tt-partner-logo img { max-height: 80px; }
  .tt-bank-label { min-width: 0; display: block; }
  .tt-download .wp-block-file__button { margin-left: 0 !important; }
}


/* Termine-Streifen als Block (ab 2.2.0) */
.tt-termine-bar.is-dynamic {
  padding-left: var(--wp--style--root--padding-left, 1.5rem);
  padding-right: var(--wp--style--root--padding-right, 1.5rem);
}
.tt-termine-bar.is-dynamic .tt-termine-inner {
  max-width: var(--wp--style--global--wide-size, 1180px);
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}
.tt-termine-bar .tt-termin-meta { color: var(--tt-muted); font-size: .9em; }
@media (max-width: 781px) {
  .tt-termine-bar.is-dynamic .tt-termine-inner { flex-direction: column; align-items: flex-start; }
}
