/*! FZM* — WordPress adaptations.
   Bridges WP markup (side menu <ul>/<li>, post content, forms) to the design system. */

/* ---- Side menu: wp_nav_menu / fallback output <ul><li> ---- */
.side__menu { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 1px; width: 100%; }
.side__menu .side__group { list-style: none; }
.side__sub { list-style: none; }
.side__sub li { margin: 0; }
/* In WP the submenu is always in the DOM — collapse it until its group is open */
.side__group .side__sub { display: none; }
.side__group.is-open .side__sub { display: flex; }
.side__group.is-open > .side__item-row .side__caret { transform: rotate(180deg); color: var(--brass-300); }
.current-menu-item > .side__item-row > .side__item,
.current-menu-item > .side__item,
.current_page_item > .side__item { color: var(--brass-300); }

/* ---- Skip link / a11y ---- */
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.screen-reader-text:focus { position: fixed; top: 12px; left: 12px; width: auto; height: auto; clip: auto;
  z-index: 200; background: var(--brand); color: var(--paper-0); padding: 10px 16px; border-radius: var(--radius-md); }
body.fzm-nav-open { overflow: hidden; }

/* ---- Footer menu (if assigned) ---- */
.ftr__col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }

/* ---- Generic page / post content (the_content) ---- */
.page-body { max-width: var(--container-md); margin: 0 auto; }
.page-body :where(h2,h3,h4) { margin-top: 1.4em; }
.page-body img { border-radius: var(--radius-lg); }
.page-body blockquote { border-left: 3px solid var(--accent-brass); margin: 1.4em 0; padding: 4px 0 4px 22px;
  font-family: var(--font-display); font-size: var(--text-xl); font-weight: 600; color: var(--text-strong); }
.page-body ul, .page-body ol { padding-left: 1.3em; }
.page-body li { margin: .35em 0; }
.page-body a { color: var(--text-link); }

/* ---- WordPress alignments / captions ---- */
.aligncenter { margin-left: auto; margin-right: auto; display: block; }
.alignright { float: right; margin: 0 0 1rem 1.5rem; }
.alignleft { float: left; margin: 0 1.5rem 1rem 0; }
.wp-caption-text, .wp-element-caption { font-size: var(--text-sm); color: var(--text-muted); text-align: center; margin-top: 8px; }

/* ---- Forms: native + Contact Form 7 picked up by .field-style ---- */
.fzm-form input[type=text], .fzm-form input[type=email], .fzm-form input[type=tel],
.fzm-form textarea, .fzm-form select,
.wpcf7 input[type=text], .wpcf7 input[type=email], .wpcf7 input[type=tel], .wpcf7 textarea {
  font-family: var(--font-text); font-size: 15px; color: var(--text-body);
  background: var(--surface-card); border: 1.5px solid var(--border-strong);
  border-radius: var(--radius-md); padding: 11px 14px; width: 100%;
  transition: border-color .14s, box-shadow .14s;
}
.fzm-form textarea, .wpcf7 textarea { resize: vertical; min-height: 120px; line-height: 1.55; }
.fzm-form input:focus, .fzm-form textarea:focus, .fzm-form select:focus,
.wpcf7 input:focus, .wpcf7 textarea:focus {
  outline: none; border-color: var(--brand); box-shadow: var(--shadow-focus);
}
.wpcf7 input[type=submit] { /* style CF7 submit as our pill */
  background: var(--brand); color: var(--brand-contrast); border: 0; cursor: pointer;
  font-family: var(--font-text); font-weight: 600; font-size: 15px; line-height: 1;
  padding: 13px 26px; border-radius: var(--radius-pill);
}
.wpcf7 input[type=submit]:hover { background: var(--brand-hover); }

/* ---- Pagination ---- */
.fzm-pagination { display: flex; gap: 8px; justify-content: center; margin-top: var(--space-7); }
.fzm-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center;
  min-width: 40px; height: 40px; padding: 0 12px; border-radius: var(--radius-md);
  border: 1px solid var(--border-strong); color: var(--text-body); text-decoration: none;
  font-family: var(--font-sans); font-weight: 500; }
.fzm-pagination .page-numbers.current { background: var(--brand); color: var(--brand-contrast); border-color: var(--brand); }
.fzm-pagination .page-numbers:hover { border-color: var(--brand); color: var(--brand); }

/* =========================================================================
   SITE REFRESH OVERRIDES (load after fzm.css)
   — header beige / white body · violet asterisk · larger scale ·
     editorial Projekte · enlarged values · footer-page layouts.
   ========================================================================= */

/* ---- Header: solid warm-beige bar over white body, larger logo ---- */
.shell { background: #fff; }
.topbar { background: var(--surface-page); backdrop-filter: none; }
.topbar__logo img, .topbar .custom-logo { height: 42px; }

/* ---- Violet asterisk motif (was brass) ---- */
.eyebrow .star,
.hero__title .star,
.pagehero__title .star,
.stat__n .star,
.divider .star,
.article__title .star { color: var(--plum-500); }
.hero__star { color: var(--mauve-200); }
.section--invert .divider .star,
.manifesto__q .star { color: var(--mauve-300); }

/* ---- Larger scale (euroalter feel) ---- */
.section { padding: var(--space-11) 0; }
.section__title { font-size: clamp(1.75rem, 1.55rem + 1.1vw, 3.25rem); line-height: 1.04; letter-spacing: -.014em; }
.lead { font-size: var(--text-xl); line-height: 1.5; }
.hero__sub { font-size: var(--text-xl); line-height: 1.5; margin-bottom: 32px; max-width: 42ch; }
.card__body { padding: 24px 24px 26px; gap: 11px; }
.card__title { font-size: 24px; line-height: 1.12; overflow-wrap: break-word; hyphens: auto; }
.card__text { font-size: 16px; overflow-wrap: break-word; hyphens: auto; }
.card__cta { white-space: nowrap; }
.card--icon .card__icon { width: 56px; height: 56px; font-size: 29px; margin-bottom: 6px; }
.event__title { font-size: 23px; margin: 0 0 5px; }
.event__meta { font-size: 15px; }

/* ---- Values (Über uns) — enlarged ---- */
.values { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-7); }
.value { display: flex; flex-direction: column; gap: 14px; }
.value__icon { width: 72px; height: 72px; display: flex; align-items: center; justify-content: center;
  border-radius: var(--radius-lg); background: var(--surface-brand-soft); color: var(--plum-600); font-size: 38px; }
.value__title { font-family: var(--font-display); font-weight: 600; font-size: var(--text-2xl); line-height: 1.12;
  letter-spacing: -.01em; color: var(--text-strong); margin: 0; }
.value__text { font-size: var(--text-lg); line-height: 1.55; color: var(--text-muted); margin: 0; max-width: 34ch; text-wrap: pretty; }

/* ---- Projekte — editorial layout ---- */
.proj-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-7) var(--space-6); }
.proj { display: flex; flex-direction: column; text-decoration: none; color: inherit; cursor: pointer; }
.proj__media-wrap { position: relative; }
.proj__media { aspect-ratio: 4/3; border-radius: var(--radius-lg); transition: transform .3s var(--ease-out); }
.proj:hover .proj__media { transform: translateY(-4px); }
.proj__num { position: absolute; top: 16px; left: 18px; z-index: 1; font-family: var(--font-display);
  font-weight: 700; font-size: 26px; line-height: 1; color: rgba(246,243,238,.62); }
.proj__body { display: flex; flex-direction: column; gap: 8px; padding-top: 16px; }
.proj__title { font-family: var(--font-display); font-weight: 700; font-size: var(--text-xl); line-height: 1.15;
  letter-spacing: -.008em; color: var(--text-strong); margin: 2px 0 0; text-wrap: balance; }
.proj:hover .proj__title { color: var(--brand); }
.proj__text { font-size: 15px; line-height: 1.5; color: var(--text-muted); margin: 0; text-wrap: pretty; }
.proj .card__cta { font-size: 15px; margin-top: 4px; }
.proj:hover .card__cta { color: var(--accent-brass-text); gap: .75em; }

/* ---- Doc / legal pages (Impressum, Datenschutz, Barrierefreiheit) ---- */
.doc__updated { font-family: var(--font-sans); font-size: 13px; letter-spacing: .04em; color: var(--text-faint); margin: 4px 0 0; }
.doc { max-width: 720px; display: flex; flex-direction: column; gap: var(--space-6); }
.doc__block { display: flex; flex-direction: column; gap: 10px; }
.doc__h { font-family: var(--font-display); font-weight: 600; font-size: var(--text-2xl); line-height: 1.15;
  letter-spacing: -.01em; color: var(--text-strong); margin: 0; }
.doc__p { font-size: 17px; line-height: 1.7; color: var(--text-body); margin: 0; text-wrap: pretty; }
.doc__list { margin: 4px 0 0; padding-left: 0; list-style: none; display: flex; flex-direction: column; gap: 10px; }
.doc__list li { position: relative; padding-left: 26px; font-size: 17px; line-height: 1.6; color: var(--text-body); text-wrap: pretty; margin: 0; }
.doc__list li::before { content: ""; position: absolute; left: 4px; top: 11px; width: 7px; height: 7px;
  border-radius: 50%; background: var(--accent-brass); }
.doc__dl { margin: 4px 0 0; display: flex; flex-direction: column; }
.doc__dl-row { display: grid; grid-template-columns: 200px 1fr; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--border); }
.doc__dl-row dt { font-family: var(--font-sans); font-weight: 600; font-size: 14px; color: var(--text-strong); }
.doc__dl-row dd { margin: 0; font-size: 16px; color: var(--text-body); line-height: 1.45; }

/* ---- Spenden ---- */
.donate-card { background: var(--surface-card); border: 1px solid var(--border); border-radius: var(--radius-xl);
  box-shadow: var(--shadow-md); padding: 32px; display: flex; flex-direction: column; gap: 16px; }
.donate-card__title { font-family: var(--font-display); font-weight: 600; font-size: var(--text-2xl); color: var(--text-strong); margin: 0; }
.donate-card__sub { font-size: 15px; line-height: 1.55; color: var(--text-muted); margin: 0; }
.donate-bank { margin: 6px 0 4px; display: flex; flex-direction: column; }
.donate-bank__row { display: grid; grid-template-columns: 150px 1fr; gap: 12px; padding: 11px 0; border-bottom: 1px solid var(--border); }
.donate-bank__row dt { font-family: var(--font-sans); font-weight: 600; font-size: 12.5px; letter-spacing: .04em;
  text-transform: uppercase; color: var(--text-faint); align-self: center; }
.donate-bank__row dd { margin: 0; font-size: 15.5px; color: var(--text-body); font-variant-numeric: tabular-nums; }
.donate-card__note { display: flex; align-items: center; gap: 8px; font-size: 13.5px; color: var(--text-muted); margin: 2px 0 0; }
.donate-card__note .ph { color: var(--brass-700); font-size: 17px; }
.mit__h { font-family: var(--font-display); font-weight: 600; font-size: var(--text-xl); color: var(--text-strong); margin: 0; }
.mit__cross { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px;
  margin-top: var(--space-6); padding-top: var(--space-5); border-top: 1px solid var(--border); }
.mit__cross span { font-size: 15px; color: var(--text-muted); }
.mit__perks { margin-top: var(--space-8); max-width: 640px; }

/* ---- Mitglied werden (tiers) ---- */
.tiers { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-5); }
.tier { position: relative; display: flex; flex-direction: column; gap: 10px; align-items: flex-start;
  background: var(--surface-card); border: 1px solid var(--border); border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm); padding: 28px 26px; }
.tier--featured { border-color: var(--brand); box-shadow: var(--shadow-md); }
.tier__badge { position: absolute; top: 18px; right: 18px; font-family: var(--font-sans); font-weight: 600;
  font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--brand-contrast);
  background: var(--brand); padding: 5px 11px; border-radius: var(--radius-pill); }
.tier__name { font-family: var(--font-sans); font-weight: 600; font-size: 13px; letter-spacing: .1em;
  text-transform: uppercase; color: var(--text-accent); margin: 0; }
.tier__price { font-family: var(--font-display); font-weight: 700; font-size: 40px; line-height: 1; color: var(--text-strong);
  display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 8px; }
.tier__amt { white-space: nowrap; }
.tier__per { font-family: var(--font-text); font-weight: 400; font-size: 14px; color: var(--text-muted); letter-spacing: 0; }
.tier__note { font-size: 14.5px; line-height: 1.55; color: var(--text-muted); margin: 4px 0 8px; flex: 1; }
.tier .btn { width: 100%; justify-content: center; }

/* ---- Bereiche (areas of work) — alternating editorial rows ---- */
.bereiche { display: flex; flex-direction: column; gap: var(--space-10); }
.bereich { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-8); align-items: center; }
.bereich:nth-child(even) .bereich__media-wrap { order: 2; }
.bereich__media { aspect-ratio: 4/3; border-radius: var(--radius-lg); }
.bereich__body { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }
.bereich__title { font-family: var(--font-display); font-weight: 700; font-size: var(--text-3xl); line-height: 1.06;
  letter-spacing: -.012em; color: var(--text-strong); margin: 2px 0 0; }
.bereich__text { font-size: var(--text-lg); line-height: 1.6; color: var(--text-muted); margin: 0; text-wrap: pretty; }
.bereich__formats { display: flex; flex-wrap: wrap; gap: 8px; }

/* ---- Responsive ---- */
@media (max-width: 760px) {
  .proj-grid { grid-template-columns: 1fr; gap: var(--space-8); }
  .values { grid-template-columns: 1fr; gap: var(--space-6); }
  .tiers { grid-template-columns: 1fr; }
  .doc__dl-row { grid-template-columns: 1fr; gap: 2px; }
  .donate-bank__row { grid-template-columns: 1fr; gap: 2px; }
  .bereich { grid-template-columns: 1fr; gap: var(--space-5); }
  .bereich:nth-child(even) .bereich__media-wrap { order: 0; }
}


/* ---------- Förderer & Netzwerk (logo strips) ---------- */
.partners { display: flex; flex-direction: column; gap: var(--space-8); align-items: center; text-align: center; }
.partners__group { display: flex; flex-direction: column; gap: 22px; align-items: center; width: 100%; }
.partners__label { font-family: var(--font-sans); font-weight: 500; font-size: 15px; letter-spacing: .01em;
  color: var(--text-muted); margin: 0; max-width: 60ch; text-wrap: balance; }
.logo-strip { display: flex; flex-wrap: wrap; gap: 20px; align-items: center; justify-content: center; }
.logo-tile { display: flex; align-items: center; justify-content: center; text-align: center;
  width: 200px; height: 96px; padding: 16px 20px; background: #fff; border: 0;
  border-radius: var(--radius-md); box-shadow: none; }
.logo-tile--wide { width: 320px; }
.logo-tile span { font-family: var(--font-sans); font-weight: 500; font-size: 12.5px; line-height: 1.35;
  letter-spacing: .02em; color: var(--text-faint); }
@media (max-width: 640px) { .logo-tile, .logo-tile--wide { width: 100%; max-width: 320px; } }


/* =========================================================================
   NATIVE ELEMENTOR WIDGETS → FZM* look (so pages are point-and-click editable)
   Set the FZM class as the widget's "CSS Classes" (Advanced tab).
   ========================================================================= */

/* Headings: typography inherits from the FZM class on the widget wrapper. */
.elementor-widget-heading .elementor-heading-title { color: inherit; font-family: inherit; font-weight: inherit;
  font-size: inherit; line-height: inherit; letter-spacing: inherit; margin: 0; }
.elementor-widget-heading.pagehero__title .elementor-heading-title,
.elementor-widget-heading.hero__title .elementor-heading-title,
.elementor-widget-heading.section__title .elementor-heading-title,
.elementor-widget-heading.article__title .elementor-heading-title { text-wrap: balance; }

/* Eyebrow rendered as a heading (class "fzm-eyebrow"). */
.elementor-widget-heading.fzm-eyebrow .elementor-heading-title { display: inline-flex; align-items: center; gap: 12px;
  font-family: var(--font-sans); font-weight: 600; font-size: 12.5px; letter-spacing: .16em;
  text-transform: uppercase; color: var(--text-accent); }
.elementor-widget-heading.fzm-eyebrow .elementor-heading-title::before { content: ""; width: 28px; height: 1.5px;
  background: var(--accent-brass); display: inline-block; flex: none; }
.elementor-widget-heading.fzm-eyebrow .elementor-heading-title::after { content: "*"; color: var(--plum-500);
  font-size: 1.4em; line-height: 0; position: relative; top: .18em; }

/* Text-editor: body copy; FZM class (e.g. "lead") sets the look via inheritance. */
.elementor-widget-text-editor { color: var(--text-body); font-size: 17px; line-height: 1.7; }
.elementor-widget-text-editor.lead { font-size: var(--text-xl); line-height: 1.5; color: var(--text-muted); }
.elementor-widget-text-editor.lead p { font-size: inherit; line-height: inherit; color: inherit; margin: 0 0 .6em; }
.elementor-widget-text-editor p { margin: 0 0 1em; }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.elementor-widget-text-editor ul { list-style: none; margin: 4px 0 0; padding-left: 0; display: flex; flex-direction: column; gap: 10px; }
.elementor-widget-text-editor ul li { position: relative; padding-left: 26px; line-height: 1.6; }
.elementor-widget-text-editor ul li::before { content: ""; position: absolute; left: 4px; top: 11px; width: 7px; height: 7px;
  border-radius: 50%; background: var(--accent-brass); }

/* Buttons: native Elementor button → FZM button. Add class is-primary / is-brass / is-lg. */
.elementor-widget-button .elementor-button { font-family: var(--font-sans); font-weight: 600; font-size: 15px;
  line-height: 1.2; border-radius: var(--radius-pill); padding: 13px 22px; background: var(--surface-card);
  color: var(--text-strong); border: 1.5px solid var(--border-strong); box-shadow: var(--shadow-sm);
  transition: background .16s, color .16s, border-color .16s; }
.elementor-widget-button .elementor-button:hover { background: var(--surface-sunken); }
.elementor-widget-button.is-primary .elementor-button { background: var(--brand); color: var(--brand-contrast); border-color: var(--brand); }
.elementor-widget-button.is-primary .elementor-button:hover { background: var(--brand-hover); }
.elementor-widget-button.is-brass .elementor-button { background: var(--accent-brass); color: var(--plum-950); border-color: var(--accent-brass); }
.elementor-widget-button.is-brass .elementor-button:hover { background: var(--accent-brass-hover); color: var(--paper-0); }
.elementor-widget-button.is-lg .elementor-button { font-size: 16px; padding: 16px 26px; }

/* Section background helpers usable as a Section CSS Class. */
.elementor-section.section, .elementor-section.section--sunken, .elementor-section.section--brand-faint,
.elementor-section.section--brand-soft, .elementor-section.section--brass { } /* padding/bg from base .section* rules */


/* =========================================================================
   FZM* — Elementor layout polish (section rhythm, hero balance)
   ========================================================================= */
.elementor-section.hero { padding-top: clamp(36px,5vw,80px) !important; padding-bottom: clamp(36px,5vw,80px) !important; }
/* Match the site-wide fluid side margin on every top-level Elementor section, regardless of its own Content Width setting. */
.elementor-top-section > .elementor-container { padding-left: var(--gutter) !important; padding-right: var(--gutter) !important; box-sizing: border-box !important; }
.elementor-section.section,
.elementor-section.section--sunken,
.elementor-section.section--brand-faint,
.elementor-section.section--brand-soft,
.elementor-section.section--brass { padding-top: clamp(48px,7vw,112px) !important; padding-bottom: clamp(48px,7vw,112px) !important; }

/* Vertically center hero text against the portrait (classic sections + flex containers). */
.elementor-section.hero > .elementor-container { align-items: center; }
.elementor-section.hero > .elementor-container > .elementor-column { align-self: center; }

/* Cap the hero image so the section isn't overly tall (kills the big empty gap). Scales down with the viewport instead of staying fixed. */
.elementor-section .hero__media { aspect-ratio: 1 / 1; max-height: clamp(320px, 34vw, 520px); }

/* Tighten the stacked native widgets in headers; give the lead room before buttons. */
.elementor-widget-heading.fzm-eyebrow { margin-bottom: 4px; }
.elementor-widget-heading.hero__title, .elementor-widget-heading.pagehero__title,
.elementor-widget-heading.section__title { margin-bottom: 10px; }
.elementor-widget-text-editor.lead { margin-bottom: 22px; }
/* Section heads: keep eyebrow→title→lead tight, then a clear gap before the component below. */
.elementor-section.section--brand-faint .elementor-widget-html,
.elementor-section.section--brand-soft .elementor-widget-html,
.elementor-section.section .elementor-widget-html { margin-top: 10px; }


/* =========================================================================
   FZM* — Abstand zwischen ALLEN Elementor-Sections (greift auf jeder Seite)
   ========================================================================= */
.elementor-page .elementor-top-section { padding-top: clamp(44px,6vw,104px); padding-bottom: clamp(44px,6vw,104px); }
.elementor-page .elementor-section.hero,
.elementor-page .elementor-section.pagehero { padding-top: clamp(40px,5vw,84px); padding-bottom: clamp(40px,5vw,84px); }
/* Untereinander stehende Widgets in Kopfbereichen sauf Abstand halten. */
.elementor-page .elementor-widget:not(:last-child) { margin-bottom: 16px; }
.elementor-page .elementor-widget-heading.fzm-eyebrow:not(:last-child) { margin-bottom: 6px; }
.elementor-page .elementor-widget-heading.hero__title,
.elementor-page .elementor-widget-heading.pagehero__title,
.elementor-page .elementor-widget-heading.section__title { margin-bottom: 8px; }
.elementor-page .elementor-widget-text-editor.lead:not(:last-child) { margin-bottom: 24px; }


/* =========================================================================
   FZM* — Section-Hintergründe in Elementor erzwingen (Home-Farben zurück)
   ========================================================================= */
.elementor-element.section--sunken { background-color: #ECE4DA !important; }
.elementor-element.section--brass { background-color: #EFE0C6 !important; }
.elementor-element.section--brand-faint { background-color: #ECE3F3 !important; }
.elementor-element.section--brand-soft { background-color: #E0D3EC !important; }
/* button row helper */
.btn-row { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; }

/* =========================================================================
   FZM* — Team-Raster (3 pro Reihe) mit Pronomen, Sprachen, Social
   ========================================================================= */
.team-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-8) var(--space-6); }
.member { display: flex; flex-direction: column; }
.member__photo { width: 100%; aspect-ratio: 4/5; border-radius: var(--radius-lg); margin-bottom: 18px; }
.member__head { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.member__name { font-family: var(--font-display); font-weight: 600; font-size: var(--text-2xl); line-height: 1.1;
  letter-spacing: -.01em; color: var(--text-strong); margin: 0; }
.member__pro { font-family: var(--font-text); font-size: 15px; color: var(--text-faint); }
.member__role { font-family: var(--font-sans); font-weight: 500; font-size: 13px; letter-spacing: .08em;
  text-transform: uppercase; color: var(--text-accent); margin-top: 7px; }
.member__bio { font-size: 16px; line-height: 1.6; color: var(--text-muted); margin: 13px 0 0; text-wrap: pretty; }
.member__langs { display: flex; align-items: center; gap: 9px; margin-top: 16px; font-size: 14.5px; color: var(--text-body); }
.member__langs .ph { font-size: 19px; color: var(--brass-700); flex: none; }
.member__credit { display: block; margin-top: 12px; font-family: var(--font-sans); font-size: 12px; letter-spacing: .06em; color: var(--text-faint); }
.member__social { display: flex; gap: 10px; margin-top: 16px; }
.member__social a { width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--border-strong);
  display: flex; align-items: center; justify-content: center; color: var(--text-muted); font-size: 18px;
  text-decoration: none; transition: color .14s, background .14s, border-color .14s; }
.member__social a:hover { color: var(--brand-contrast); background: var(--brand); border-color: var(--brand); }
@media (max-width: 900px){ .team-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px){ .team-grid { grid-template-columns: 1fr; } }




/* =========================================================================
   FZM* — Projekt: Byline (Autor*innen/Datum/Credits + Social) & Galerie
   ========================================================================= */
.proj-byline { display: flex; flex-wrap: wrap; gap: var(--space-6) var(--space-8); align-items: flex-start;
  max-width: var(--container-md); margin: var(--space-7) auto 0; padding: var(--space-6) 0;
  border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.funders { border-top: 1px solid var(--border); }
.funders__label { font-family: var(--font-sans); font-weight: 600; font-size: 12.5px; letter-spacing: .1em;
  text-transform: uppercase; color: var(--text-faint); text-align: center; margin: 0 0 20px; }
.funders__row { align-items: center; }
.funders .funders__logo img { max-height: 48px; width: auto; margin: 0 auto; filter: grayscale(100%); opacity: .75; }
.proj-byline__item { display: flex; flex-direction: column; gap: 4px; }
.proj-byline__label { font-family: var(--font-sans); font-weight: 600; font-size: 12px; letter-spacing: .12em;
  text-transform: uppercase; color: var(--text-faint); }
.proj-byline__value { font-size: 16px; color: var(--text-body); }
.proj-byline__social { display: flex; gap: 10px; margin-left: auto; }
.proj-byline__social a { width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--border-strong);
  display: flex; align-items: center; justify-content: center; color: var(--text-muted); font-size: 18px;
  text-decoration: none; transition: color .14s, background .14s, border-color .14s; }
.proj-byline__social a:hover { color: var(--brand-contrast); background: var(--brand); border-color: var(--brand); }
.proj-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-5); }
.proj-gallery__item { aspect-ratio: 4/5; border-radius: var(--radius-lg); background: var(--surface-well) center/cover no-repeat; }
@media (max-width: 760px){ .proj-gallery { grid-template-columns: 1fr 1fr; } .proj-byline__social { margin-left: 0; } }


/* =========================================================================
   FZM* — Button-Textfarbe sicherstellen (Content-Linkfarbe darf .btn nicht überschreiben)
   ========================================================================= */
.btn, .page-body a.btn, .article__body a.btn, .wrap a.btn { color: var(--_fg) !important; }


/* =========================================================================
   FZM* — Footer: hellere, barrierefreie Textfarben (AA/AAA auf dunklem Grund)
   ========================================================================= */
.ftr__about, .ftr__col a, .ftr__addr { color: var(--paper-0); }
.ftr__col a:hover { color: #ffffff; }
.ftr__legal, .ftr__legal strong, .ftr__bottom, .ftr__bottom a { color: var(--mauve-200); }
.ftr__bottom a:hover { color: var(--paper-0); }


/* =========================================================================
   FZM* — Autor*innen-Profil (author.php) & Byline
   ========================================================================= */
.byline { color: inherit; text-decoration: none; }
a.byline:hover { color: var(--brand); text-decoration: underline; }
.author-head { display: flex; gap: var(--space-7); align-items: center; margin-top: var(--space-5); }
.author-head__photo { width: 160px; height: 160px; flex: none; border-radius: 50%;
  background: var(--surface-well) center/cover no-repeat; box-shadow: var(--shadow-md); }
.author-head__name { font-family: var(--font-display); font-weight: 700; font-size: var(--text-4xl);
  line-height: 1.05; letter-spacing: -.015em; color: var(--text-strong); margin: 8px 0 0; }
.author-head__pro { font-family: var(--font-text); font-weight: 400; font-size: .5em; color: var(--text-faint); }
.author-head__role { font-family: var(--font-sans); font-weight: 600; font-size: 13px; letter-spacing: .08em;
  text-transform: uppercase; color: var(--text-accent); margin-top: 8px; }
.author-head__bio { font-size: 17px; line-height: 1.65; color: var(--text-muted); margin: 14px 0 0; max-width: 56ch; text-wrap: pretty; }
.author-head__social { display: flex; gap: 10px; margin-top: 18px; }
.author-head__social a { width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--border-strong);
  display: flex; align-items: center; justify-content: center; color: var(--text-muted); font-size: 18px;
  text-decoration: none; transition: color .14s, background .14s, border-color .14s; }
.author-head__social a:hover { color: var(--brand-contrast); background: var(--brand); border-color: var(--brand); }

/* Menü-Panel ohne Logo: Schließen-Button rechts ausrichten */
.panel__top { justify-content: flex-end; }

/* =========================================================================
   FZM* — Responsive (Tablet & Mobile)
   ========================================================================= */
@media (max-width: 1024px){
  .grid-4 { grid-template-columns: 1fr 1fr; }
  .section { padding: 64px 0; }
}
@media (max-width: 820px){
  .hero__grid { grid-template-columns: 1fr; gap: var(--space-6); }
  .hero__media { aspect-ratio: 16/10; }
  .two-col { grid-template-columns: 1fr; gap: var(--space-7); }
  .feature { grid-template-columns: 1fr; }
  .feature__media { aspect-ratio: 16/9; }
  .bereich { grid-template-columns: 1fr; }
  .bereich__media { aspect-ratio: 16/10; }
  .author-head { flex-direction: column; align-items: flex-start; gap: var(--space-5); }
  .author-head__photo { width: 120px; height: 120px; }
}
@media (max-width: 680px){
  .grid-4, .grid-3 { grid-template-columns: 1fr; }
  .team-grid { grid-template-columns: 1fr; }
  .proj-grid { grid-template-columns: 1fr; }
  .values { grid-template-columns: 1fr; }
  .tiers { grid-template-columns: 1fr; }
  .proj-gallery { grid-template-columns: 1fr 1fr; }
  .event { flex-direction: column; align-items: flex-start; gap: 12px; }
  .event__actions { width: 100%; }
  .event__actions .btn { width: 100%; justify-content: center; }
  .btn-row { width: 100%; }
  .btn-row .btn { flex: 1 1 auto; justify-content: center; }
  .proj-byline { flex-direction: column; gap: var(--space-5); }
  .proj-byline__social { margin-left: 0; }
  .topbar { height: 64px; }
  .topbar__logo img { height: 34px; }
}
@media (max-width: 420px){
  .proj-gallery { grid-template-columns: 1fr; }
  .event { grid-template-columns: 1fr; gap: 10px; }
  .event__date { flex-direction: row; gap: 8px; }
  .donate-bank__row, .tier { padding-left: 0; padding-right: 0; }
}
.site { overflow-x: clip; }
.hero__grid, .grid-4, .grid-3, .team-grid, .proj-grid, .tiers, .events, .founders,
.two-col, .feature, .bereich, .article-hero__inner, .doc, .facts, .btn-row { max-width: 100%; }
.wrap { width: 100%; max-width: 1080px; margin-left: auto; margin-right: auto; }


/* =========================================================================
   FZM* — Typografie-Vorgabe: H1 = 60px, Fließtext = 20px
   ========================================================================= */
.hero__title, .pagehero__title, .single h1.article__title { font-size: clamp(2.375rem, 2rem + 1.6vw, 3.75rem); line-height: 1.06; }
.lead, .hero__sub, .hero__sub p, .page-body, .page-body p, .article__body p { font-size: clamp(1.125rem, 1.02rem + 0.45vw, 1.25rem); line-height: 1.6; }
/* Defaults only — Elementor's per-widget Typography controls (Style tab) override these when set. */
.partners-label .elementor-heading-title, .partners-label p { font-family: var(--font-sans); font-weight: 500;
  font-size: 15px; letter-spacing: .01em; color: var(--text-muted); margin: 0 0 20px; text-align: center; }
.partners-label--second { margin-top: 40px; }
.logo-tile-col, .logo-tile-col.elementor-element, .logo-tile-col > .elementor-widget-wrap, .logo-tile-col .elementor-widget-image, .logo-tile-col .elementor-widget-image > .elementor-widget-container, .logo-tile-col .elementor-widget-image img {
  border: 0 !important; box-shadow: none !important; outline: none !important; background: transparent !important;
}
.logo-tile-col { display: flex !important; overflow: hidden; min-width: 0; }
.logo-tile-col > .elementor-widget-wrap, .logo-tile-col .elementor-widget-image, .logo-tile-col .elementor-widget-image > .elementor-widget-container { min-width: 0 !important; max-width: 100% !important; }
.logo-img, .logo-img .elementor-widget-container { display: flex !important; justify-content: center !important; align-items: center !important; width: 100%; min-width: 0; overflow: hidden; }
.logo-img img { max-width: 100% !important; height: auto !important; object-fit: contain; margin: 0 auto; }
.logos-inner-row { align-items: stretch !important; }
.logo-tile-col { min-height: 0 !important; }

/* Button rows converted to native Elementor Button widgets: shrink-to-fit + inline layout */
.btn-row-inner { display: flex !important; flex-wrap: wrap; gap: 14px; }
.btn-row-inner > .elementor-column { width: auto !important; flex: 0 0 auto !important; }
.btn-row-inner .elementor-widget-button .elementor-button { width: auto; }
@media (max-width: 680px){ .btn-row-inner > .elementor-column { flex: 1 1 auto !important; } .btn-row-inner .elementor-button { width: 100%; justify-content: center; } }

/* =========================================================================
   FZM* — Native-widget conversions: cards, reassure, tiers, bereiche, profiles, map
   ========================================================================= */
.was-wir-tun-row, .reassure-row, .tiers-row, .bereich-row, .author-head__social-row { display: flex !important; gap: var(--space-6); align-items: stretch; }
.was-wir-tun-row > .elementor-column { display: flex; flex-direction: column; }
.was-wir-tun-row .elementor-widget-icon .elementor-icon { width: 46px; height: 46px; border-radius: var(--radius-md);
  background: var(--surface-brand-soft); color: var(--plum-600); font-size: 24px; }
.was-wir-tun-row .elementor-widget-heading .elementor-heading-title { font-family: var(--font-display); font-weight: 600;
  font-size: 21px; line-height: 1.14; color: var(--text-strong); margin-top: 10px; }
.was-wir-tun-row .elementor-widget-text-editor p { font-size: 14.5px; line-height: 1.6; color: var(--text-muted); }
.was-wir-tun-row .elementor-widget-button { margin-top: auto; }
.was-wir-tun-row .elementor-widget-button .elementor-button { background: transparent; border: 0; box-shadow: none;
  padding: 4px 0; color: var(--text-link); font-size: 14px; font-weight: 600; justify-content: flex-start; }

.reassure-row .elementor-widget-icon .elementor-icon { width: 42px; height: 42px; border-radius: var(--radius-md);
  background: var(--surface-brand-soft); color: var(--plum-600); font-size: 20px; }
.reassure-row .elementor-widget-heading .elementor-heading-title { font-family: var(--font-display); font-weight: 600;
  font-size: 17px; color: var(--text-strong); margin: 10px 0 2px; }
.reassure-row .elementor-widget-text-editor p { font-size: 14.5px; line-height: 1.5; color: var(--text-muted); }

.tiers-row > .elementor-column { background: var(--surface-card); border: 1px solid var(--border); border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm); padding: 28px 26px; display: flex; flex-direction: column; gap: 10px; }
.tiers-row .elementor-widget-heading.tier__name .elementor-heading-title { font-family: var(--font-sans); font-weight: 600;
  font-size: 13px; letter-spacing: .1em; text-transform: uppercase; color: var(--text-accent); }
.tiers-row .elementor-widget-heading.tier__price .elementor-heading-title { font-family: var(--font-display); font-weight: 700;
  font-size: 40px; line-height: 1; color: var(--text-strong); display: flex; align-items: baseline; gap: 8px; }
.tier__price .tier__per { font-family: var(--font-text); font-weight: 400; font-size: 14px; color: var(--text-muted); }
.tiers-row .elementor-widget-text-editor.tier__note p { font-size: 14.5px; line-height: 1.55; color: var(--text-muted); flex: 1; }
.tiers-row .elementor-widget-button .elementor-button { width: 100%; justify-content: center; }

.bereich-row .elementor-widget-image img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: var(--radius-lg); }
.bereich-row .tag-label .elementor-widget-container > p { display: inline-block; font-family: var(--font-sans); font-weight: 600;
  font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--brand-contrast); background: var(--brand);
  padding: 5px 12px; border-radius: var(--radius-pill); }
.bereich-row .bereich__title .elementor-heading-title { font-family: var(--font-display); font-weight: 700; font-size: var(--text-3xl);
  color: var(--text-strong); margin-top: 12px; }
.bereich-row .bereich__text p { font-size: 17px; line-height: 1.6; color: var(--text-body); margin-top: 10px; }
.bereich-row .bereich__formats-native p { font-size: 13.5px; color: var(--text-accent); font-weight: 600; margin-top: 10px; }
@media (max-width: 820px){ .bereich-row { flex-direction: column; } }

.author-head__social-row .elementor-widget-icon .elementor-icon { width: 40px; height: 40px; border-radius: 50%;
  border: 1px solid var(--border-strong); color: var(--text-muted); font-size: 18px; }
.author-head__social-row .elementor-widget-icon .elementor-icon:hover { color: var(--brand-contrast); background: var(--brand); border-color: var(--brand); }
.map-img img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: var(--radius-lg); }




/* =========================================================================
   FZM* — Profil-Vorlagen (Autor*in / Künstler*in)
   ========================================================================= */
.author-tpl-photo img { width: 100%; aspect-ratio: 1/1; object-fit: cover; border-radius: var(--radius-xl); box-shadow: var(--shadow-md); }
.author-tpl-meta .elementor-heading-title { font-family: var(--font-sans); font-weight: 600; font-size: 13px;
  letter-spacing: .08em; text-transform: uppercase; color: var(--text-accent); }


/* =========================================================================
   FZM* — "Mach mit"-Buttons als Menü (Location: actions)
   ========================================================================= */
.panel__actions { list-style: none; margin: 0 0 16px; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.panel__actions a { display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  font-family: var(--font-sans); font-weight: 600; font-size: 15px; padding: 13px 20px;
  border-radius: var(--radius-pill); text-decoration: none; transition: background .16s, color .16s, border-color .16s; }
.panel__actions li:first-child a { background: var(--accent-brass); color: var(--plum-950); }
.panel__actions li:first-child a:hover { background: var(--accent-brass-hover); color: var(--paper-0); }
.panel__actions li + li a { background: transparent; color: var(--paper-0); border: 1.5px solid rgba(246,243,238,.4); }
.panel__actions li + li a:hover { background: rgba(246,243,238,.12); }


/* =========================================================================
   FZM* — Journal als redaktionelles Magazin
   ========================================================================= */
/* Suchfeld */
.journal-search { display: flex; align-items: center; gap: 10px; margin-top: var(--space-6); max-width: 520px;
  background: var(--surface-card); border: 1.5px solid var(--border-input); border-radius: var(--radius-pill);
  padding: 6px 6px 6px 18px; }
.journal-search .ph { font-size: 20px; color: var(--text-faint); flex: none; }
.journal-search input[type="search"] { flex: 1; border: 0; background: transparent; font-family: var(--font-text);
  font-size: 16px; color: var(--text-body); padding: 8px 0; outline: none; }
.journal-search .btn { flex: none; }

/* Cover: großer Lead + Spalte mit kleineren Empfehlungen */
.jcover { display: grid; grid-template-columns: 1.6fr 1fr; gap: var(--space-6); align-items: stretch; }
.jcover__lead { display: flex; flex-direction: column; text-decoration: none; color: inherit;
  background: var(--surface-card); border: 1px solid var(--border); border-radius: var(--radius-xl);
  overflow: hidden; box-shadow: var(--shadow-sm); transition: box-shadow .2s, transform .2s; }
.jcover__lead:hover { box-shadow: var(--shadow-lg); transform: translateY(-3px); }
.jcover__lead-media { width: 100%; aspect-ratio: 16/10; background: var(--surface-well) center/cover no-repeat; }
.jcover__lead-body { padding: var(--space-6); display: flex; flex-direction: column; gap: 12px; }
.jcover__lead-title { font-family: var(--font-display); font-weight: 700; font-size: var(--text-3xl); line-height: 1.1;
  letter-spacing: -.015em; color: var(--text-strong); margin: 4px 0 0; text-wrap: balance; }
.jcover__lead:hover .jcover__lead-title { color: var(--brand); }
.jcover__lead-excerpt { font-size: 17px; line-height: 1.6; color: var(--text-muted); margin: 0; text-wrap: pretty; }
.jcover__byline { font-family: var(--font-sans); font-size: 14px; color: var(--text-accent); }

.jcover__side { display: flex; flex-direction: column; gap: var(--space-5); }
.jside { display: grid; grid-template-columns: 96px 1fr; gap: 16px; text-decoration: none; color: inherit; align-items: center; }
.jside__media { aspect-ratio: 1/1; border-radius: var(--radius-md); background: var(--surface-well) center/cover no-repeat;
  display: flex; align-items: center; justify-content: center; color: var(--text-faint); font-size: 24px; }
.jside__body { display: flex; flex-direction: column; gap: 6px; }
.jside__meta { display: flex; gap: 8px; align-items: center; }
.jside__title { font-family: var(--font-display); font-weight: 600; font-size: 18px; line-height: 1.2; color: var(--text-strong);
  margin: 0; text-wrap: pretty; }
.jside:hover .jside__title { color: var(--brand); }
.jside__date { font-size: 13px; color: var(--text-faint); }

/* Grid aller Beiträge */
.jgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-7) var(--space-6); }
.jcard { display: flex; flex-direction: column; text-decoration: none; color: inherit; }
.jcard__media { width: 100%; aspect-ratio: 3/2; border-radius: var(--radius-lg); background: var(--surface-well) center/cover no-repeat;
  position: relative; overflow: hidden; }
.jcard:hover .jcard__media { filter: brightness(.97); }
.jcard__play { position: absolute; left: 14px; bottom: 14px; width: 40px; height: 40px; border-radius: 50%;
  background: rgba(24,22,23,.62); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 21px; }
.jcard__body { display: flex; flex-direction: column; gap: 9px; padding-top: 16px; }
.jcard__meta { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.jcard__format { display: inline-flex; align-items: center; gap: 5px; font-family: var(--font-sans); font-weight: 600;
  font-size: 12px; letter-spacing: .04em; text-transform: uppercase; color: var(--brass-700); }
.jcard__date { font-size: 13px; color: var(--text-faint); margin-left: auto; }
.jcard__title { font-family: var(--font-display); font-weight: 600; font-size: var(--text-xl); line-height: 1.18;
  letter-spacing: -.01em; color: var(--text-strong); margin: 0; text-wrap: pretty; }
.jcard:hover .jcard__title { color: var(--brand); }
.jcard__text { font-size: 15.5px; line-height: 1.55; color: var(--text-muted); margin: 0; }
.jcard__byline { font-family: var(--font-sans); font-size: 13.5px; color: var(--text-accent); }

@media (max-width: 900px){
  .jcover { grid-template-columns: 1fr; }
  .jgrid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px){
  .jgrid { grid-template-columns: 1fr; }
  .jcover__lead-title { font-size: var(--text-2xl); }
}


/* Hero-Bild als natives Elementor-Image-Widget */
.hero-img img { width: 100%; aspect-ratio: 4/5; object-fit: cover; border-radius: var(--radius-xl); box-shadow: var(--shadow-md); }
.hero-img .elementor-widget-container { height: 100%; }


/* =========================================================================
   FZM* — Über uns: native Elementor-Spalten (Team & Werte) stylen
   ========================================================================= */
.elementor-widget-image.member__photo img { width: 100%; aspect-ratio: 4/5; object-fit: cover;
  border-radius: var(--radius-lg); display: block; }
.elementor-widget-image.member__photo { margin-bottom: 16px; }
.elementor-widget-heading.member__name .elementor-heading-title { font-family: var(--font-display);
  font-weight: 600; font-size: var(--text-2xl); line-height: 1.1; letter-spacing: -.01em; color: var(--text-strong); }
.member__name .member__pro { font-family: var(--font-text); font-weight: 400; font-size: 15px; color: var(--text-faint); }
.elementor-widget-heading.member__role .elementor-heading-title { font-family: var(--font-sans); font-weight: 500;
  font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: var(--text-accent); margin-top: 6px; }
.elementor-widget-text-editor.member__bio { margin-top: 12px; }
.elementor-widget-text-editor.member__bio p { font-size: 16px; line-height: 1.6; color: var(--text-muted);
  overflow-wrap: break-word; word-break: break-word; hyphens: auto; text-wrap: pretty; }
.elementor-widget-text-editor.member__langs { margin-top: 12px; }
.elementor-widget-text-editor.member__langs p { font-size: 14.5px; color: var(--text-body); display: flex; align-items: center; gap: 9px; }
.elementor-widget-text-editor.member__langs .ph { font-size: 19px; color: var(--brass-700); }
.elementor-widget-text-editor.member__credit p { font-size: 12px; letter-spacing: .04em; color: var(--text-faint); margin-top: 10px; }
.member__social { display: flex; gap: 10px; margin-top: 14px; }
.member__social a { width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--border-strong);
  display: flex; align-items: center; justify-content: center; color: var(--text-muted); font-size: 18px;
  text-decoration: none; transition: color .14s, background .14s, border-color .14s; }
.member__social a:hover { color: var(--brand-contrast); background: var(--brand); border-color: var(--brand); }
/* Werte */
.value__icon { width: 72px; height: 72px; display: flex; align-items: center; justify-content: center;
  border-radius: var(--radius-lg); background: var(--surface-brand-soft); color: var(--plum-600); font-size: 38px; margin-bottom: 14px; }
.elementor-column > .elementor-widget-wrap { padding-right: 24px !important; }
.elementor-widget-heading.value__title .elementor-heading-title { font-family: var(--font-display); font-weight: 600;
  font-size: var(--text-2xl); line-height: 1.12; color: var(--text-strong); overflow-wrap: break-word; }
.elementor-widget-text-editor.value__text p { font-size: var(--text-lg); line-height: 1.55; color: var(--text-muted); margin-top: 8px;
  overflow-wrap: break-word; text-wrap: pretty; }
.elementor-widget-heading.member__name .elementor-heading-title,
.elementor-widget-heading.member__role .elementor-heading-title { overflow-wrap: break-word; }


/* =========================================================================
   FZM* — Redes como Icon-Widget nativo (link editable en Elementor)
   ========================================================================= */
.member__social-row { display: flex; gap: 10px; margin-top: 14px; }
.member__social-row .elementor-column { width: auto !important; flex: 0 0 auto !important; }
.elementor-widget-icon.member__social-icon { margin: 0; }
.elementor-widget-icon.member__social-icon .elementor-icon { width: 38px; height: 38px; border-radius: 50%;
  border: 1px solid var(--border-strong); display: flex; align-items: center; justify-content: center;
  color: var(--text-muted); font-size: 18px; background: transparent; transition: color .14s, background .14s, border-color .14s; }
.elementor-widget-icon.member__social-icon .elementor-icon:hover { color: var(--brand-contrast);
  background: var(--brand); border-color: var(--brand); }

.topbar__right { display: flex; align-items: center; gap: 14px; }
.topbar__lang { display: flex; align-items: center; gap: 6px; }
.topbar__lang-item { font-family: var(--font-sans); font-size: 13px; font-weight: 600; letter-spacing: .04em; color: var(--text-muted); text-decoration: none; padding: 6px 8px; border-radius: 999px; }
.topbar__lang-item:hover { color: var(--text-strong); background: var(--surface-sunken); }
.topbar__lang-item.is-active { color: var(--brand); background: var(--surface-brand-soft); }
.topbar__donate { white-space: nowrap; }
@media (max-width: 600px){ .topbar__donate .ph { margin:0 } .topbar__donate span:not(.ph){display:none} }


/* =========================================================================
   FZM* — Footer editable en Elementor (plantilla nativa /footer-fzm/)
   ========================================================================= */
.ftr-native { display: block; }
.ftr-native, .ftr-native *, .ftr-native .elementor-invisible {
  opacity: 1 !important; transform: none !important; visibility: visible !important;
  animation: none !important; animation-name: none !important; transition: none !important; will-change: auto !important; }
/* ---- Footer-Layout: vom Theme kontrolliert, auf allen Seiten identisch ---- */
.ftr { padding: 0 !important; margin-bottom: 0 !important; }
.ftr > .wrap { max-width: none !important; padding: 0 !important; }
.ftr-native .elementor, .ftr-native .elementor-section-wrap { margin: 0 !important; padding: 0 !important; }
.ftr-native .elementor-section, .ftr-native .elementor-column, .ftr-native .elementor-container, .ftr-native .elementor-widget-wrap { height: auto !important; min-height: 0 !important; }
.ftr-native .elementor-section:last-child { margin-bottom: 0 !important; }
/* Aussenrahmen: gleiche Breite wie der Seiteninhalt */
.ftr-native > .elementor > .elementor-section-wrap > .elementor-section > .elementor-container {
  max-width: 1400px !important; width: 100% !important; margin: 0 auto !important;
  padding: 0 clamp(24px, 5vw, 72px) !important; }
/* Obere Spalten: fluides Raster, stapelt sich von selbst */
.ftr-native .ftr-native__top > .elementor-container {
  display: grid !important; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important;
  gap: clamp(32px, 4vw, 52px) clamp(40px, 6vw, 96px) !important; align-items: start !important; }
.ftr-native .ftr-native__top > .elementor-container > .elementor-column { width: auto !important; flex: none !important; max-width: 100% !important; }
.elementor-section.ftr-native__top { padding: clamp(64px, 7vw, 96px) 0 clamp(32px, 4vw, 48px) !important; margin: 0 !important;
  border-bottom: 1px solid var(--border-on-invert); background-color: var(--surface-invert) !important; }
.ftr-native .ftr-native__top > .elementor-container { padding-top: 0 !important; padding-bottom: 0 !important; }
/* Innere Reihen (Social-Icons, Rechtslinks) bleiben nebeneinander */
.ftr-native .elementor-inner-section > .elementor-container {
  display: flex !important; flex-wrap: wrap !important; align-items: center !important; gap: 12px !important; }
.ftr-native .elementor-inner-section > .elementor-container > .elementor-column {
  width: auto !important; flex: 0 0 auto !important; }
/* Untere Leiste */
.ftr-native .ftr-native__bottom { padding: clamp(20px, 3vw, 28px) 0 clamp(32px, 4vw, 44px) !important; margin: 0 !important; }
.ftr-native .ftr-native__bottom > .elementor-container > .elementor-column { width: 100% !important; flex: 1 1 100% !important; }
.ftr-native .ftr-native__bottom .elementor-inner-section > .elementor-container { justify-content: space-between !important; gap: 12px 32px !important; }
.ftr__bottom-links { display: flex !important; flex-wrap: wrap !important; gap: 12px 24px !important; align-items: center !important; }
.ftr__logo-img .elementor-widget-container { width: auto; height: auto; }
.ftr__logo-img img { width: auto; height: auto; max-width: 100%; object-fit: contain; margin-bottom: 22px; display: block; }
.ftr-native .elementor-widget-text-editor.ftr__about p { color: var(--text-on-invert); font-size: 14px; margin: 0 0 14px; }
.ftr-native .elementor-widget-text-editor.ftr__legal-native p { color: var(--text-on-invert-faint); font-size: 14.5px; line-height: 1.8; margin: 20px 0 0; }
.ftr-native .elementor-widget-heading.ftr__h4 .elementor-heading-title { font-family: var(--font-sans); font-weight: 500;
  font-size: 15px; letter-spacing: .16em; text-transform: uppercase; color: var(--brass-300); height: 38px;
  display: flex; align-items: center; margin: 0 0 26px; }
.ftr-native .elementor-widget-heading.ftr__link-item { margin: 0 0 12px; }
.ftr-native .elementor-widget-heading.ftr__link-item .elementor-heading-title { color: var(--paper-0); font-size: 14.5px;
  font-weight: 400; font-family: var(--font-text); cursor: pointer; }
.ftr-native .elementor-widget-heading.ftr__link-item:hover .elementor-heading-title { color: var(--brass-300); }
.ftr__bottom-links { display: flex; gap: 18px; justify-content: flex-end; flex-wrap: wrap; }
.ftr-native .elementor-widget-heading.ftr__legal-item { margin: 0; }
.ftr-native .elementor-widget-heading.ftr__legal-item .elementor-heading-title { color: var(--text-on-invert-faint); font-size: 13px;
  font-weight: 400; font-family: var(--font-text); cursor: pointer; }
.ftr-native .elementor-widget-heading.ftr__legal-item:hover .elementor-heading-title { color: var(--brass-300); }
.ftr-native .elementor-widget-text-editor p { color: var(--text-on-invert); font-size: 16px; line-height: 1.7; margin: 0 0 10px; }
.ftr__social-row { margin-top: 16px; }
.ftr__social-row .elementor-column { width: auto !important; flex: 0 0 auto !important; }
.elementor-widget-icon.ftr__social-icon .elementor-icon { width: 38px; height: 38px; border-radius: 50%;
  border: 1px solid var(--border-on-invert); display: flex; align-items: center; justify-content: center;
  color: var(--text-on-invert); font-size: 17px; transition: color .14s, background .14s, border-color .14s; }
.elementor-widget-icon.ftr__social-icon .elementor-icon:hover { color: var(--brand-contrast); background: var(--brand); border-color: var(--brand); }
.ftr-native .elementor-section.ftr-native__bottom { padding: var(--space-6) 0 0; margin: 0; }
.ftr-native .elementor-widget-text-editor.ftr__copy p { color: var(--text-on-invert-faint); font-size: 13px; margin: 0; }
.ftr__bottom-links { display: flex; gap: 18px; justify-content: flex-end; }
.ftr__bottom-links a { color: var(--text-on-invert-faint); font-size: 13px; text-decoration: none; }
.ftr__bottom-links a:hover { color: var(--brass-300); }
@media (max-width: 600px){
  .ftr__bottom-links { justify-content: flex-start; }
}


/* =========================================================================
   FZM* — Projekt-Vorlage (Elementor-Seite als Beispiel/Duplikat je Projekt)
   ========================================================================= */
.elementor-widget-image.proj-tpl__hero-img img { width: 100%; aspect-ratio: 16/8; object-fit: cover;
  border-radius: var(--radius-xl); }
.elementor-widget-image.proj-tpl__gallery-img img { width: 100%; aspect-ratio: 4/5; object-fit: cover;
  border-radius: var(--radius-lg); }
.proj-tpl__social-row { margin-top: 14px; }
.proj-tpl__social-row .elementor-column { width: auto !important; flex: 0 0 auto !important; }
.elementor-widget-icon.proj-tpl__social-icon .elementor-icon { width: 38px; height: 38px; border-radius: 50%;
  border: 1px solid var(--border-strong); display: flex; align-items: center; justify-content: center;
  color: var(--text-muted); font-size: 18px; transition: color .14s, background .14s, border-color .14s; }
.elementor-widget-icon.proj-tpl__social-icon .elementor-icon:hover { color: var(--brand-contrast); background: var(--brand); border-color: var(--brand); }

/* Aktuelles-Liste: mehr Luft zwischen den Einträgen */
.events .event { padding-top: 30px !important; padding-bottom: 30px !important; }
.events .event + .event { margin-top: 8px; }

/* Journal-Artikel: Autor*innen-Avatar neben dem verlinkten Namen */
.post-meta__byline { display: inline-flex; align-items: center; gap: 8px; }
.post-meta__avatar { border-radius: 50%; object-fit: cover; flex: none; }

/* Journal-Übersicht: Kategorie/Empfohlen und Autorin oben, vor dem Titel */
.jcover__lead-toprow { display: flex; gap: 8px; margin-bottom: 12px; }
.jcover__byline { display: block; font-size: 13.5px; color: var(--text-muted); margin: 6px 0 12px; }
