/*
 Theme Name:   Bricks Child Theme
 Theme URI:    https://bricksbuilder.io/
 Description:  Use this child theme to extend Bricks.
 Author:       Bricks
 Author URI:   https://bricksbuilder.io/
 Template:     bricks
 Version:      1.1
 Text Domain:  bricks
*/

/* ==========================================================================
   Gravity Forms - Newsletter (Footer) — scoped to form ID 4
   ========================================================================== */

#gform_wrapper_4 {
  width: 100%;
  max-width: 100%;
  overflow: hidden;
}

#gform_wrapper_4 form {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: center;
  gap: 0;
  width: 100%;
}

#gform_wrapper_4 .gform-body {
  flex: 1 1 0%;
  min-width: 0;
}

#gform_wrapper_4 .gform_fields {
  display: flex;
  gap: 0;
}

#gform_wrapper_4 .gfield {
  margin: 0 !important;
  padding: 0 !important;
  width: 100%;
}

#gform_wrapper_4 input[type="email"],
#gform_wrapper_4 input[type="text"] {
  background: rgba(255, 255, 255, 0.1) !important;
  border: 1px solid rgba(255, 255, 255, 0.3) !important;
  border-radius: var(--radius-full) !important;
  color: var(--light) !important;
  padding: var(--space-xs) var(--space-m) !important;
  font-size: var(--text-m) !important;
  width: 100% !important;
  box-sizing: border-box !important;
  line-height: 1.5 !important;
  height: auto !important;
}

#gform_wrapper_4 input[type="email"]::placeholder,
#gform_wrapper_4 input[type="text"]::placeholder {
  color: rgba(255, 255, 255, 0.5);
}

#gform_wrapper_4 input[type="email"]:focus,
#gform_wrapper_4 input[type="text"]:focus {
  outline: none;
  border-color: var(--primary) !important;
  background: rgba(255, 255, 255, 0.15) !important;
}

#gform_wrapper_4 .gform_footer,
#gform_wrapper_4 .gform_page_footer {
  margin: 0 !important;
  padding: 0 0 0 var(--space-xs) !important;
  flex: 0 0 auto;
}

#gform_wrapper_4 .gform-button,
#gform_wrapper_4 input[type="submit"],
#gform_wrapper_4 button[type="submit"] {
  background: var(--primary) !important;
  color: var(--light) !important;
  border: none !important;
  border-radius: var(--radius-full) !important;
  padding: var(--space-xs) var(--space-l) !important;
  font-size: var(--text-m) !important;
  font-weight: 600 !important;
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
  line-height: 1.5 !important;
  box-sizing: border-box !important;
  height: auto !important;
}

#gform_wrapper_4 .gform-button:hover,
#gform_wrapper_4 input[type="submit"]:hover,
#gform_wrapper_4 button[type="submit"]:hover {
  background: var(--primary-90) !important;
}

#gform_wrapper_4 .gfield_label {
  display: none !important;
}

#gform_wrapper_4 .gfield_validation_message,
#gform_wrapper_4 .gform_validation_errors {
  color: var(--light) !important;
}

@media (max-width: 768px) {
  #gform_wrapper_4 form {
    flex-wrap: wrap !important;
  }
  #gform_wrapper_4 .gform-body {
    flex: 1 1 100%;
  }
  #gform_wrapper_4 .gform_footer {
    width: 100%;
    padding: var(--space-xs) 0 0 0 !important;
  }
  #gform_wrapper_4 .gform-button,
  #gform_wrapper_4 input[type="submit"],
  #gform_wrapper_4 button[type="submit"] {
    width: 100%;
  }
}

/* ==========================================================================
   Footer Nav Menus — vertical layout, no default padding
   ========================================================================== */

.site-footer__menu .bricks-nav-menu {
  flex-direction: column !important;
  gap: var(--space-xs);
  padding: 0 !important;
  margin: 0 !important;
  list-style: none !important;
}

.site-footer__menu .bricks-nav-menu li {
  padding: 0 !important;
  margin: 0 !important;
}

.site-footer__menu .bricks-nav-menu a {
  color: var(--light) !important;
  text-decoration: none;
  font-size: var(--text-l) !important;
  line-height: 1.6 !important;
  padding: 0 !important;
  transition: color 0.2s ease;
}

.site-footer__menu .bricks-nav-menu a:hover {
  color: #999999 !important;
}

/* Contact items match menu line-height */
.site-footer__contact-item {
  line-height: 1.6 !important;
}

.site-footer__contact-address {
  display: inline-block;
  vertical-align: top;
}

/* ==========================================================================
   Footer Layout
   ========================================================================== */

/* Newsletter: text left, form right */
.site-footer__newsletter {
  flex-wrap: nowrap !important;
}

.site-footer__newsletter-text {
  flex: 0 0 auto;
  min-width: 200px;
}

.site-footer__newsletter-form {
  flex: 1 1 auto !important;
  min-width: 250px;
  max-width: 500px;
}

/* Copyright: single line */
.site-footer__copyright {
  flex-wrap: nowrap !important;
}

.site-footer__copyright-made {
  white-space: nowrap !important;
}

@media (max-width: 768px) {
  .site-footer__newsletter {
    flex-wrap: wrap !important;
  }
  .site-footer__newsletter-form {
    min-width: 100%;
    max-width: 100%;
  }
  .site-footer__copyright {
    flex-wrap: wrap !important;
    text-align: center;
    justify-content: center !important;
  }
}

/* ==========================================================================
   Header Nav-Menu Submenus
   ========================================================================== */

/* Submenu container — bg-grey background, padded, rounded, soft shadow */
.bricks-nav-menu .sub-menu,
.bricks-nav-menu-wrapper .sub-menu {
  background: var(--bg-grey) !important;
  padding: var(--space-2xs) 0 !important;
  border-radius: var(--radius-s);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
  min-width: 220px;
  list-style: none;
  margin: 0;
  border: none;
}

.bricks-nav-menu .sub-menu li {
  margin: 0;
  padding: 0;
  list-style: none;
}

.bricks-nav-menu .sub-menu li a {
  display: block;
  padding: var(--space-2xs) var(--space-m);
  color: var(--light, #ffffff) !important;
  text-decoration: none;
  font-size: var(--text-m);
  font-weight: 400;
  line-height: 1.4;
  transition: color 0.25s ease, background-color 0.25s ease, padding-left 0.25s ease;
}

.bricks-nav-menu .sub-menu li a:hover,
.bricks-nav-menu .sub-menu li a:focus {
  color: var(--primary) !important;
  padding-left: calc(var(--space-m) + 4px);
  background: rgba(255, 255, 255, 0.04);
}

/* Smooth dropdown reveal (hover + keyboard focus) */
.bricks-nav-menu .menu-item-has-children > .sub-menu {
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px);
  transition: opacity 0.25s ease, visibility 0.25s ease, transform 0.25s ease;
}

.bricks-nav-menu .menu-item-has-children:hover > .sub-menu,
.bricks-nav-menu .menu-item-has-children:focus-within > .sub-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

/* ==========================================================================
   Mobile Header — hamburger + CTA on right, bg-grey slide-out panel
   Bricks renders mobile menu as separate .bricks-mobile-menu-wrapper element
   ========================================================================== */

/* Push hamburger toggle to the right (logo left, hamburger + CTA right).
   Applied at all widths so order is consistent; desktop still shows full menu. */
@media (max-width: 767px) {
  .site-header__nav {
    margin-left: auto !important;
  }
}

/* Override Bricks default #23282d backdrop on the mobile slide-out panel */
.brxe-nav-menu .bricks-mobile-menu-wrapper::before {
  background-color: var(--bg-grey) !important;
}

/* Mobile menu links — white default, primary on hover, smooth transition */
.brxe-nav-menu .bricks-mobile-menu-wrapper a {
  color: var(--light, #ffffff) !important;
  transition: color 0.25s ease, background-color 0.25s ease !important;
}

.brxe-nav-menu .bricks-mobile-menu-wrapper a:hover,
.brxe-nav-menu .bricks-mobile-menu-wrapper a:focus {
  color: var(--primary) !important;
  background-color: rgba(255, 255, 255, 0.06);
}

/* Submenu chevron toggle button — match link colors + smooth rotate when open */
.brxe-nav-menu .bricks-mobile-menu-wrapper .brx-submenu-toggle button {
  color: var(--light, #ffffff);
  transition: color 0.25s ease, transform 0.25s ease;
}

.brxe-nav-menu .bricks-mobile-menu-wrapper .brx-submenu-toggle:hover button {
  color: var(--primary);
}

.brxe-nav-menu .bricks-mobile-menu-wrapper li.open > .brx-submenu-toggle button,
.brxe-nav-menu .bricks-mobile-menu-wrapper button[aria-expanded="true"] {
  transform: rotate(180deg);
}

/* ==========================================================================
   Post Nav — "Alle Beiträge" link with animated back-arrow (pure CSS, no JSON change)
   ========================================================================== */

.post-nav__all a {
  position: relative;
  display: inline-block;
  padding-right: 24px;
  text-decoration: none;
  color: var(--primary);
  transition: color 0.25s ease;
}

.post-nav__all a::after {
  content: "→";
  position: absolute;
  right: 0;
  top: 50%;
  transform: translate(0, -50%);
  font-weight: 700;
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.post-nav__all a:hover {
  color: var(--text-title);
}

.post-nav__all a:hover::after {
  transform: translate(6px, -50%);
}


/* ===== ZB custom CSS variables (Core-Framework-Ergaenzungen, 2026-06-05) ===== */
:root {
	--bg-dark-green: #1a2a1a;      /* Hero/dunkle Sektionen */
	--text-on-dark: #d4d4d4;       /* gedaempfter Text auf dunklem Grund */
	--bg-badge-overlay: rgba(255, 255, 255, 0.125); /* CTA-Badge Overlay */
	--social-facebook: #1877f2;
	--social-instagram: #dd2a7b;
	--tracking-wide: 3px;          /* Label letter-spacing */
	--divider-w: 60px;
	--divider-h: 3px;
	--content-narrow: 720px;       /* schmale Inhaltsbreite (Vision etc.) */
	--events-col-basis: 400px;     /* Termine/Neuigkeiten Spalten */
	--card-basis: 280px;           /* Mitmachen-/Testimonial-Karten */
	--community-card-basis: 180px;
	--community-card-max: 220px;
	--wappen-size: 100px;
	--card-basis-wide: 340px;   /* 3-up Grids mit vielen Karten (6 Hilfen, 3 Werte) */
	--step-basis: 260px;        /* 4-Schritte Ablauf-Reihe */
	--media-basis: 360px;       /* Bild+Text 2-Spalter */
}

/* ===== ZB Hero Overlay (2026-06-05) — dunkler Schleier ueber dem Hero-Bild; Staerke via --dark-5/-10/-20 ===== */
.hero {
	position: relative;
}
.hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, var(--dark-60) 0%, var(--dark-40) 45%, var(--dark-10) 100%);
	pointer-events: none;
	z-index: 0;
}
.hero .hero__inner {
	position: relative;
	z-index: 1;
}

/* ===== §9 Vereinsseiten — News-Card Beitragsbild (2026-06-08) ===== */
.news-card__image {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	border-radius: var(--radius-m);
	margin-block-end: var(--space-2xs);
}

/* ===== §10 Header — Hamburger ab ≤1300px (Desktop-Menü passt erst ab 1300px in eine Zeile) (2026-06-08) ===== */
@media (max-width: 1300px) {
	.site-header__nav .bricks-nav-menu-wrapper { display: none !important; }
	.site-header__nav .bricks-mobile-menu-toggle { display: block !important; }
	/* Hamburger nach links neben das Logo (statt mittig) — auch ≤767 konsistent */
	.site-header__nav { margin-left: auto !important; margin-right: 0 !important; }
}

/* ===== Content pages — Bild+Text Reihe (2026-06-29): img-Flex-Item darf schrumpfen ===== */
.media-row > * { min-width: 0; }
.media-row__img { width: 100%; height: auto; display: block; }

/* ===== Content pages — Accordion polish (2026-06-29): Karten-Optik, Padding ===== */
.brxe-accordion-nested { display:flex; flex-direction:column; gap:var(--space-xs); width:100%; }
.brxe-accordion-nested > * { background:var(--bg-body); border-radius:var(--radius-m); box-shadow:var(--shadow-s); overflow:hidden; }
.brxe-accordion-nested .accordion-title-wrapper { padding:var(--space-s) var(--space-m); cursor:pointer; gap:var(--space-s); }
.brxe-accordion-nested .accordion-content-wrapper { padding:0 var(--space-m) var(--space-s); }

/* ===== Z'sam sitzn Galerie-Slider (2026-06-29) ===== */
.zsam-slider { max-width:760px; margin-inline:auto; }
.zsam-slider img { width:100%; height:clamp(300px,46vh,500px); object-fit:cover; object-position:center top; background:var(--bg-surface); display:block; border-radius:var(--radius-m); }
.zsam-slider figcaption.bricks-image-caption { display:none; }
.zsam-slide { height:100%; }
.zsam-slide__cap { padding-inline:var(--space-xs); }
.zsam-slider .splide__slide { display:flex; }

/* ===== Post-Hero + Thumbs: Köpfe nicht abschneiden (2026-06-29) ===== */
.post-featured__image { object-position: center top !important; }
.related-card__image { object-position: center 25% !important; }
/* ===== Testimonials (Zeitbankler berichten) — Brief-Scan lesbar, zentriert ===== */
.testimonial-letter { max-width:720px; width:100%; height:auto; margin-inline:auto; display:block; border-radius:var(--radius-m); box-shadow:var(--shadow-s); }
.testimonial-intro { max-width:720px; margin-inline:auto; }

/* ZB-Slider-Dots: unter dem Bild, aktiver Dot in Akzentfarbe (2026-06-29) */
.zsam-slider .splide__pagination { position: static; transform: none; margin-top: var(--space-s); width: 100%; }
.zsam-slider .splide__pagination__page.is-active { background: var(--primary); opacity:1; }

/* Smooth-Scroll global (Anchor-Navigation, 06.07.2026) */
html{scroll-behavior:smooth}

/* Native Bricks Back to Top — global footer, keyboard and mobile safe. */
.brxe-back-to-top.zb-back-to-top {
  width: 48px;
  height: 48px;
  padding: 0;
  right: calc(24px + env(safe-area-inset-right, 0px));
  bottom: calc(24px + env(safe-area-inset-bottom, 0px));
  z-index: 100;
  justify-content: center;
  border: 1px solid var(--primary);
  border-radius: 50%;
  background: var(--bg-grey);
  color: var(--primary);
  transition: opacity .15s ease, visibility .15s ease, background-color .15s ease, color .15s ease;
}

.brxe-back-to-top.zb-back-to-top:hover,
.brxe-back-to-top.zb-back-to-top:focus-visible {
  background: var(--primary);
  color: var(--bg-grey);
}

.brxe-back-to-top.zb-back-to-top:focus-visible {
  outline: 3px solid var(--primary);
  outline-offset: 4px;
  box-shadow: 0 0 0 4px var(--bg-grey);
}

/* Keep the menu and active form controls unobstructed, also for keyboard users. */
body:has(.site-header__nav.show-mobile-menu) .zb-back-to-top,
body:has(#brx-content :is(input, textarea, select):focus) .zb-back-to-top {
  display: none;
}

/* Leave room below the last footer links/text so they can scroll clear of the button. */
#brx-footer:has(.zb-back-to-top) {
  padding-bottom: calc(96px + env(safe-area-inset-bottom, 0px));
  background: var(--bg-footer);
}

@media (max-width: 767px) {
  .brxe-back-to-top.zb-back-to-top {
    right: calc(16px + env(safe-area-inset-right, 0px));
    bottom: calc(16px + env(safe-area-inset-bottom, 0px));
  }

  #brx-footer:has(.zb-back-to-top) {
    padding-bottom: calc(80px + env(safe-area-inset-bottom, 0px));
  }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .brxe-back-to-top.zb-back-to-top { transition: none; }
}

/* Chronik: schmale Einleitung (wie Vision) */
.brxe-container.chronik-intro__inner{max-width:var(--content-narrow);width:100%;margin-left:auto;margin-right:auto}

/* Startseite: Termine-Kartentext auf eine Zeile (15.07.2026) */
.event-card__text{display:-webkit-box;-webkit-line-clamp:1;line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}

/* Leeres Datum (Nicht-Termine) ausblenden (15.07.2026) */
.post-hero__date:empty{display:none}

/* Stimmen-Slider (Startseite, 3 pro Ansicht) 2026-07-15 */
.testimonials__slider .splide__slide{display:flex;height:auto}
.testimonials__slider .testimonial-card{height:100%;width:100%}
.testimonials__slider .splide__pagination{position:absolute;top:100%;left:0;transform:none;width:100%;margin-top:var(--space-s)}
.testimonials__slider .splide__pagination__page.is-active{background:var(--primary);opacity:1}

@media (max-width:478px){.testimonials__slider .splide__pagination{display:none}}

/* ===== Kontakt: Gravity Form an Design angleichen (2026-07-15) ===== */
.contact__inner{max-width:var(--content-narrow);width:100%;margin-inline:auto}
.contact__form .gform_wrapper .gform_fields{display:flex;flex-direction:column;gap:var(--space-s)}
.contact__form .gfield_label{font-size:var(--text-s);font-weight:600;color:var(--text-title);margin-bottom:var(--space-3xs)}
.contact__form input[type=text],
.contact__form input[type=email],
.contact__form input[type=tel],
.contact__form input[type=url],
.contact__form textarea,
.contact__form select{width:100%;font-size:var(--text-m);color:var(--text-body);background:var(--bg-surface);border:1px solid color-mix(in srgb,var(--text-body) 20%,transparent);border-radius:var(--radius-m);padding:var(--space-2xs) var(--space-s);line-height:1.5}
.contact__form input:focus,.contact__form textarea:focus,.contact__form select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 25%,transparent)}
.contact__form textarea{min-height:160px;resize:vertical}
.contact__form .gform_footer{margin-top:var(--space-m)}
.contact__form .gform_footer input[type=submit],
.contact__form .gform_footer button,
.contact__form .gform-button,
.contact__form button[type=submit]{background:var(--primary);color:var(--light);border:none;border-radius:var(--radius-full);padding:var(--space-xs) var(--space-l);font-size:var(--text-m);font-weight:600;cursor:pointer;transition:all .2s ease;line-height:1.5}
.contact__form .gform_footer input[type=submit]:hover,
.contact__form .gform-button:hover,
.contact__form button[type=submit]:hover{background:var(--primary-90)}
.contact__form .gfield_required{color:var(--primary)}
.contact__form .gform_validation_errors,.contact__form .validation_message{border-radius:var(--radius-m)}
/* Stimmen-Slider Pfeile: subtil, zentriert, weicher Hover (2026-07-15) */
.testimonials__slider .splide__arrow{background:transparent;width:2.75rem;height:2.75rem;top:50%;transform:translateY(-50%);opacity:1;transition:transform .2s ease}
.testimonials__slider .splide__arrow svg{fill:color-mix(in srgb,var(--text-body) 45%,transparent);width:1.5rem;height:1.5rem;transition:fill .2s ease}
.testimonials__slider .splide__arrow:hover{transform:translateY(-50%) scale(1.12)}
.testimonials__slider .splide__arrow:hover svg{fill:var(--primary)}
.testimonials__slider .splide__arrow:disabled{opacity:.25}

/* Linker Pfeil spiegeln (Fix 2026-07-15) */
.testimonials__slider .splide__arrow--prev{transform:translateY(-50%) scaleX(-1)}
.testimonials__slider .splide__arrow--prev:hover{transform:translateY(-50%) scaleX(-1) scale(1.12)}

/* Alter/Ort leer -> Zeile ausblenden (2026-07-15) */
.testimonial-card__location{display:none}

/* Kategorie-Archive (Termine/Neuigkeiten) 2026-07-15 */
.archive-list__inner{max-width:var(--content-narrow);width:100%;margin-inline:auto}
.event-row>*{min-width:0}
.event-row__date{white-space:nowrap}
.event-row__link a,.news-row__link a{color:inherit;text-decoration:none}

/* Kontakt-Formular Button = exakt wie Footer-Button (2026-07-15) */
#gform_wrapper_3 .gform-button,#gform_wrapper_3 input[type="submit"],#gform_wrapper_3 button[type="submit"]{background:var(--primary)!important;color:var(--light)!important;border:none!important;border-radius:var(--radius-full)!important;padding:var(--space-xs) var(--space-l)!important;font-size:var(--text-m)!important;font-weight:600!important;cursor:pointer;transition:all .2s ease;line-height:1.5!important;height:auto!important}
#gform_wrapper_3 .gform-button:hover,#gform_wrapper_3 input[type="submit"]:hover,#gform_wrapper_3 button[type="submit"]:hover{background:var(--primary-90)!important}
#gform_wrapper_3 ::placeholder{color:color-mix(in srgb,var(--text-body) 55%,transparent);opacity:1}
#gform_wrapper_3 .gfield_label{display:none}

/* Kontakt-Submit bulletproof = Footer-Button (2026-07-15) */
#gform_submit_button_3{background:var(--primary)!important;color:var(--light)!important;border:none!important;border-radius:var(--radius-full)!important;padding:var(--space-xs) var(--space-l)!important;font-size:var(--text-m)!important;font-weight:600!important;cursor:pointer;transition:all .2s ease!important;line-height:1.5!important;width:auto!important}
#gform_submit_button_3:hover{background:var(--primary-90)!important}

/* Neuigkeiten-Archiv: Bild wenn vorhanden (2026-07-15) */
.news-row__image{flex:0 0 auto;width:200px;max-width:35%;height:130px;border-radius:var(--radius-m);overflow:hidden;display:block;object-fit:cover}
.news-row__image img{width:100%;height:100%;object-fit:cover;display:block}
.news-row__image figcaption,.news-row__image .bricks-image-caption{display:none}
@media(max-width:478px){.news-row__image{width:100%;max-width:100%;height:180px}}

/* Ihre Gemeinde: schmale Einleitung (2026-07-15) */
.gemeinde-intro__inner{max-width:var(--content-narrow);width:100%;margin-inline:auto}

/* ---------------------------------------------------------------------------
   14. Vereine: Galerie-Sektion (2026-07-30)
   Manfred wollte zwischen Beschreibung und "Aktuelles" eine Bildergalerie
   einsetzen koennen. Die Sektion steht auf allen 10 Vereinsseiten bereit,
   ist aber solange komplett ausgeblendet, wie noch kein Bild drin ist --
   so entsteht keine leere Ueberschrift auf den Live-Seiten.
   Sobald Manfred in Bricks Bilder waehlt, erscheint sie automatisch.
--------------------------------------------------------------------------- */
.zb-gallery-scroll-target {
	scroll-margin-top: clamp(6rem, 10vw, 9rem);
}

.gemeinde-gallery:not(:has(img)) { display: none; }

/* Grid muss den Flex-Spalten-Container fuellen (siehe lessons "flex-column") */
.gemeinde-gallery__grid { width: 100%; }

.gemeinde-gallery__grid img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: var(--radius-m);
}

/* Erst ein von Bricks befuelltes Load-more-Template schaltet den Toggle frei. */
.gemeinde-gallery__toggle:not(.is-available) { display: none !important; }

/* Gemeinde-Hero: variable Logos innerhalb einer gemeinsamen Maximalflaeche */
.gemeinde-hero__top {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(240px, 420px);
	column-gap: var(--space-xl);
	row-gap: var(--space-m);
	align-items: center;
	width: 100%;
}

.gemeinde-hero__logo,
.gemeinde-hero__logo img {
	display: block;
	width: auto;
	height: auto;
	max-width: 100%;
	max-height: 180px;
	object-fit: contain;
	object-position: left center;
}

.gemeinde-hero__logo {
	align-self: flex-start;
	max-width: min(100%, 420px);
}

.gemeinde-hero__top > .gemeinde-hero__logo {
	grid-column: 2;
	grid-row: 1 / span 3;
	justify-self: end;
	align-self: center;
}

@media (max-width: 991px) {
	.gemeinde-hero__top { grid-template-columns: minmax(0, 1fr); }
	.gemeinde-hero__logo { max-width: min(100%, 360px); }
	.gemeinde-hero__logo,
	.gemeinde-hero__logo img { max-height: 170px; }
	.gemeinde-hero__top > .gemeinde-hero__logo {
		grid-column: 1;
		grid-row: auto;
		justify-self: start;
		align-self: start;
	}
}

@media (max-width: 767px) {
	.gemeinde-hero__logo { max-width: min(100%, 320px); }
	.gemeinde-hero__logo,
	.gemeinde-hero__logo img { max-height: 160px; }
}
/* ---------------------------------------------------------------------------
   15. Galerien: Startseite Impressionen + Seite Zeitbankerl (2026-07-30)
   Gleiche Logik wie die Vereins-Galerie: Grid muss den Flex-Spalten-Container
   fuellen, Bilder einheitlich beschnitten. Presse-Ausschnitte NICHT beschneiden
   (contain), sonst waere der Zeitungstext angeschnitten.
--------------------------------------------------------------------------- */
.impressionen__grid,
.zbkerl-galerie__grid,
.zbkerl-presse-bilder__grid { width: 100%; }

.impressionen__grid img,
.zbkerl-galerie__grid img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: var(--radius-m);
}

.zbkerl-presse-bilder__grid img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	background: var(--bg-surface);
	border-radius: var(--radius-m);
}

/* Absaetze in den Textbloecken der Zeitbankerl-Seite sauber abstaenden */
.zbkerl-idee__text p,
.zbkerl-herkunft__text p,
.zbkerl-einladung__text p,
.zbkerl-danke__text p,
.zbkerl-presse__text p { margin: 0 0 var(--space-2xs); }

.zbkerl-idee__text p:last-child,
.zbkerl-herkunft__text p:last-child,
.zbkerl-einladung__text p:last-child,
.zbkerl-danke__text p:last-child,
.zbkerl-presse__text p:last-child { margin-bottom: 0; }

/* PDF-Link im Presse-Block sichtbar als Link auszeichnen */
.zbkerl-presse__text a {
	color: var(--primary);
	font-weight: 600;
	text-decoration: underline;
}
.zbkerl-presse__text a:hover { color: var(--primary-90); }
/* ---------------------------------------------------------------------------
   16. Erfahrungsberichte als WordPress-Inhalt (2026-07-30)
   Die 20 Berichte wurden von Bricks- auf Gutenberg-Inhalt umgestellt, damit
   Manfred sie normal in WordPress bearbeiten kann. In Gutenberg landet die
   Klasse auf dem <figure>, nicht mehr auf dem <img> -- daher hier neu gefasst.
--------------------------------------------------------------------------- */
figure.testimonial-letter {
	max-width: 720px;
	width: 100%;
	margin-inline: auto;
	box-shadow: none;
	border-radius: 0;
}
figure.testimonial-letter img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: var(--radius-m);
	box-shadow: var(--shadow-s);
}
/* Zeitbankerl: Z-Logo mobil mittig, wenn die Media-Row umbricht (2026-07-30) */
@media (max-width: 767px){
	.zbkerl-herkunft .media-row__img{ margin-inline: auto; }
}

@media (min-width: 992px) {
  .mitmachen__card-link {
    margin-top: auto !important;
  }
}

/* ZB 2026-08-12: hide hero subtitle when no manual excerpt (kills duplicated intro) */
.post-hero__excerpt:empty{display:none;}

/* ZB self-hosted Inter (variable, latin) 2026-08-12 — GDPR: replaces the Google Fonts load */
@font-face{font-family:"Inter";font-style:normal;font-weight:100 900;font-display:swap;src:url("fonts/InterVariable.woff2") format("woff2");}
@font-face{font-family:"Inter";font-style:italic;font-weight:100 900;font-display:swap;src:url("fonts/InterVariable-Italic.woff2") format("woff2");}

/* ===== R10 Gewerbe/Intern pages (2026-08-17) ===== */
.prose-narrow{max-width:760px;width:100%;margin-inline:auto}
.zb-prose__title,.zb-contacts__title,.zb-downloads__title{align-self:flex-start}
.zb-figure__inner{align-items:center}
.zb-figure__img{max-width:760px;width:100%;height:auto;margin-inline:auto;border-radius:var(--radius-l);display:block}
.zb-contacts__inner{gap:var(--space-l)}
.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--space-m);width:100%}
.contact-card{display:flex;flex-direction:column;gap:var(--space-3xs);background:var(--bg-surface);padding:var(--space-m);border-radius:var(--radius-l);box-shadow:0 1px 4px rgba(0,0,0,.08)}
.contact-card__person a{color:var(--text-body);text-decoration:none;font-weight:600}
.contact-card__person a:hover{color:var(--primary)}
.zb-downloads__list{width:100%}
.zb-dl-btn{align-self:flex-start}
.prose__p a,.zb-prose__inner a{color:var(--primary);font-weight:600}

/* ===== R10 header nowrap + Intern app-icon sharpness (2026-08-17) ===== */
.site-header__nav .bricks-nav-menu > li > a{white-space:nowrap}
.media-row__img--small{flex:0 0 auto !important;max-width:230px;width:100%;margin-inline:auto}

/* ===== R10 header text size + spacing (2026-08-17) ===== */
:root{--text-nav:clamp(15px,1vw,17px)}
.site-header__nav .bricks-nav-menu > li{margin:0 !important}
.site-header__nav .bricks-nav-menu{gap:clamp(12px,1.3vw,22px) !important}

/* ===== R10 Intern figures tighter spacing (2026-08-17) ===== */
.zb-figure{padding-top:var(--space-m) !important;padding-bottom:var(--space-m) !important}
.zb-figure + .zb-figure{padding-top:0 !important}

/* ===== R10 testimonial slider: align name + link across cards (2026-08-17) ===== */
.testimonial-card{display:flex !important;flex-direction:column !important;height:100%}
.testimonial-card__quote{flex:1 1 auto}

.testimonials__slider .splide__list{align-items:stretch}

/* ===== R10 404 page vertical breathing room (2026-08-17) ===== */
.zb-404-hero{min-height:clamp(340px, 50vh, 540px);display:flex;align-items:center;justify-content:center;padding-top:var(--space-2xl) !important;padding-bottom:var(--space-2xl) !important}

/* ===== R10b header submenu hover authoritative (2026-08-17) =====
   Bricks JS toggles aria-expanded/.brx-submenu-toggle and fought the pure-CSS
   hover reveal -> submenu only opened on click sometimes. On desktop we force
   our hover to win and keep it open while the cursor is over the submenu. */
@media (min-width:1301px){
  .site-header__nav .menu-item-has-children > .sub-menu{
    display:block !important; opacity:0; visibility:hidden; pointer-events:none;
    transform:translateY(-8px);
    transition:opacity .2s ease, visibility .2s ease, transform .2s ease;
  }
  .site-header__nav .menu-item-has-children:hover > .sub-menu,
  .site-header__nav .menu-item-has-children:focus-within > .sub-menu,
  .site-header__nav .menu-item-has-children > .sub-menu:hover{
    opacity:1 !important; visibility:visible !important; pointer-events:auto !important;
    transform:translateY(0) !important;
  }
}

/* Was wir bewegen: unlinked labels share the existing menu layout. */
.site-header__nav .menu-item-977 > .sub-menu > li > :is(a, .zb-menu-label) {
  white-space: normal;
  overflow-wrap: break-word;
}

.site-header__nav .zb-menu-label {
  display: block;
  color: var(--light, #ffffff);
  cursor: default;
}

.bricks-nav-menu .zb-menu-label {
  padding: var(--space-2xs) var(--space-m);
  font-size: var(--text-m);
  font-weight: 400;
  line-height: 1.4;
}

/* Preserve mobile row spacing, including compact two-line labels. */
.bricks-mobile-menu .menu-item-977 > .sub-menu > li > :is(a, .zb-menu-label) {
  display: flex;
  align-items: center;
  min-height: 60px;
  padding: 12px 45px;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.4;
}
