/*
 Theme Name:     Divi Child-Theme
 Theme URI:      https://jb-webdesign-development.de
 Description:    Child Theme CSS-Code fuer Gesangsverein Wombach
 Author:         Jens Boller -  J|B WEBDESIGN & DEVELOPMENT
 Author URI:     https://jb-webdesign-development.de/
 Template:       Divi
 Version:        1.0
*/

/* =========================================================
   INHALT
   (Reihenfolge entspricht der Datei - aus Kaskadengruenden bewusst
    nicht umsortiert; Header- und Mobile-Regeln liegen teils weiter unten.)

   0.  Farbpalette (CSS-Variablen)

   HEADER UND DESKTOP-NAVIGATION
   1.  Hero-Titel auf dem Header-Bild
   2.  Desktop-Header (Hoehen, Logo, Scroll-/Sticky-Verhalten)
   3.  Hauptnavigation (Links, Hover, Aktivzustand, Pfeile)
   4.  Desktop-Dropdown (Untermenues)

   MOBILE UND TABLET-NAVIGATION
   5.  Mobile Navigation (alte Variante, <=980px, inkl. Burger)
   6.  Tablet-Header (768-980px, gestapelt)
   7.  Reduzierte Bewegung (prefers-reduced-motion)
   8.  Divi-Overrides fuer Menue-Hintergruende
   9.  Getrennte Header Desktop/Tablet/Mobile (gv-header-*)

   STARTSEITE / HOME
   10. Hero-Section, Feature-Bild, Info-Button
   11. Slider / Hero-Codemodule (gv-final-*) inkl. Varianten
   12. Divi Layout-Helfer
   13. Desktop-Header Spaltenraster (Grid, gehoert zum Header)
   14. gv-header-mobile (<=767px, Panel, Icons, Brand-Karte; Mobile-Nav)
   15. Wellen-Uebergang (Section-Kante)
   16. Aktuelles (Reihenfolge und Abstaende auf Tablet/Mobil)
   17. Sponsorenbereich (Logo-Flaechen und responsive Anordnung)
   18. Einheitlicher vertikaler Rhythmus (Abschnittsabstaende)
   19. Chor-Karten (kompakte Teaser fuer Tablet und Handy)
========================================================= */

/* =========================================================
   LOKALE WEBFONTS / DSGVO
   Alle verwendeten Google Fonts werden ausschliesslich vom eigenen
   Webserver geladen. Dadurch entstehen keine Font-Anfragen an Google.
========================================================= */
@font-face { font-family: "Akronim"; font-style: normal; font-weight: 400; font-display: swap; src: url("fonts/akronim-400.woff2") format("woff2"); }
@font-face { font-family: "Cinzel"; font-style: normal; font-weight: 400; font-display: swap; src: url("fonts/cinzel.woff2") format("woff2"); }
@font-face { font-family: "Cinzel"; font-style: normal; font-weight: 500; font-display: swap; src: url("fonts/cinzel.woff2") format("woff2"); }
@font-face { font-family: "Cinzel"; font-style: normal; font-weight: 600; font-display: swap; src: url("fonts/cinzel.woff2") format("woff2"); }
@font-face { font-family: "Cinzel"; font-style: normal; font-weight: 700; font-display: swap; src: url("fonts/cinzel.woff2") format("woff2"); }
@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-weight: 500; font-display: swap; src: url("fonts/cormorant-garamond.woff2") format("woff2"); }
@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-weight: 600; font-display: swap; src: url("fonts/cormorant-garamond.woff2") format("woff2"); }
@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-weight: 700; font-display: swap; src: url("fonts/cormorant-garamond.woff2") format("woff2"); }
@font-face { font-family: "Great Vibes"; font-style: normal; font-weight: 400; font-display: swap; src: url("fonts/great-vibes-400.woff2") format("woff2"); }
@font-face { font-family: "Marcellus"; font-style: normal; font-weight: 400; font-display: swap; src: url("fonts/marcellus-400.woff2") format("woff2"); }
@font-face { font-family: "Nanum Myeongjo"; font-style: normal; font-weight: 400; font-display: swap; src: url("fonts/nanum-myeongjo-400.woff2") format("woff2"); }
@font-face { font-family: "Nanum Myeongjo"; font-style: normal; font-weight: 700; font-display: swap; src: url("fonts/nanum-myeongjo-700.woff2") format("woff2"); }
@font-face { font-family: "Open Sans"; font-style: normal; font-weight: 400; font-display: swap; src: url("fonts/open-sans.woff2") format("woff2"); }
@font-face { font-family: "Open Sans"; font-style: normal; font-weight: 500; font-display: swap; src: url("fonts/open-sans.woff2") format("woff2"); }
@font-face { font-family: "Open Sans"; font-style: normal; font-weight: 600; font-display: swap; src: url("fonts/open-sans.woff2") format("woff2"); }
@font-face { font-family: "Open Sans"; font-style: normal; font-weight: 700; font-display: swap; src: url("fonts/open-sans.woff2") format("woff2"); }

/* =========================================================
   FARBPALETTE
   Zentrale Farbwerte des Vereinsauftritts. Jede Variable steht
   fuer genau EINEN exakten Wert - unterschiedliche Alpha-Stufen
   bleiben bewusst getrennte Variablen, damit die Optik pixelgenau
   erhalten bleibt. Einzelne, nur einmal vorkommende Farbwerte
   stehen weiterhin direkt an ihrer Regel.
========================================================= */
:root {
  --gv-gold-nav: #e09900;                       /* Gold: Navigation, Icons, Titel */
  --gv-gold-hover: #c1974d;                     /* Gold gedeckt: Hover/Fokus */
  --gv-gold-veil-14: rgba(193, 151, 77, 0.14);  /* Goldschleier: Hover-Flaeche */
  --gv-gold-veil-18: rgba(193, 151, 77, 0.18);  /* Goldschleier: Aktiv-Flaeche/Borders */
  --gv-gold-veil-45: rgba(193, 151, 77, 0.45);  /* Goldschleier: Aktiv-Border */
  --gv-gold-line-42: rgba(224, 153, 0, 0.42);   /* Goldlinie: Brand-Karte Mobilmenue */
  --gv-dark: #1d1d1b;                           /* Header-Grundflaeche mobil */
  --gv-dark-page-header: #1e232b;               /* dunkler Seiten-Einstieg hinter transparentem Header */
  --gv-dark-glass: rgba(29, 29, 27, 0.82);      /* Sticky-Header Glas-Look */
  --gv-dropdown-bg: rgba(29, 29, 27, 0.90);     /* Dropdown-/Menue-Hintergrund */
  --gv-panel: #20211f;                          /* Mobile-Panel (alte Navigation, <=980px) */
  --gv-panel-mobile: #30302d;                   /* Panel gv-header-mobile (<=767px) */
  --gv-page-bg: #e0dad2;                        /* Seitenhintergrund hinter dem Header */
}

/* Verhindert einen weissen Blitz ausserhalb des Seiteninhalts beim
   schnellen Ueberscrollen (Rubber-Band-Effekt), unabhaengig von der
   Seite - html liegt hinter allem und ist normalerweise weiss. */
html {
  background-color: var(--gv-dark);
}

/* =========================================================
   HEADER UND DESKTOP-NAVIGATION
   Header, Logo, Hauptmenü und Desktop-Dropdowns
========================================================= */


/* --- Desktop-Header und Hauptnavigation (ab 981px) --- */


/* Nav-Links: Border auf allen reserviert, kein Layoutsprung bei Hover/Aktiv */
.et-l--header .et_pb_menu .et-menu > li > a {
  box-sizing: border-box;
  color: var(--gv-gold-nav) !important;
  padding: 7px 10px !important;
  border: 1px solid transparent;
  border-bottom: 0 !important;
  border-radius: 999px;
  background: transparent;
  box-shadow: none;
}

/* Aktive Seite: goldene Glas-Flaeche hervorheben */
.et-l--header .et_pb_menu .et-menu > li.current-menu-item > a,
.et-l--header .et_pb_menu .et-menu > li.current_page_item > a,
.et-l--header .et_pb_menu .et-menu > li.current-menu-ancestor > a {
  color: var(--gv-gold-nav) !important;
  background: var(--gv-gold-veil-18) !important;
  border-color: var(--gv-gold-veil-45) !important;
  border-bottom: 0 !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.06);
}

/* Desktop-Header: mehr Hoehe, ruhigeres Logo, kompakter Sticky-Zustand */
@media (min-width: 981px) {
  /* Flaeche hinter dem Header verhindert Weiss-Durchblitzen beim Schrumpfen */
  body::before {
    content: "";
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    /* Sicherheitsmarge gegen Rundungsfehler zwischen Header-, Placeholder-
       und Hero-Padding-Berechnung, die sonst einen Rest-Spalt zeigen
       (135px reichte nicht aus, 160px live bestaetigt als ausreichend).
       Achtung: das Tablet-Pendant (220px) steht im 768-980px-Block weiter
       unten - Aenderungen immer an beiden Stellen pruefen. */
    height: 160px;
    background: var(--gv-page-bg);
    z-index: 0;
    pointer-events: none;
  }

  /* Kontakt, Galerie (inkl. Jahresseiten), Datenschutz und Impressum
     beginnen mit #1e232b. Die Flaeche hinter dem transparenten Header
     uebernimmt genau diesen Ton statt des schwarzen Header-Grundtons. */
  body.page-id-244070::before,
  body.page-id-244073::before,
  body.page-id-245195::before,
  body.gv-legal-page::before {
    background: var(--gv-dark-page-header);
  }

  .et-l--header .et_pb_section {
    min-height: 132px;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    backdrop-filter: blur(8px) saturate(115%);
    -webkit-backdrop-filter: blur(8px) saturate(115%);
    overflow: visible;
  }

  .et-l--header .et_pb_row {
    min-height: 132px;
    padding-top: 20px !important;
    padding-bottom: 18px !important;
    display: flex;
    align-items: center;
    position: relative;
    width: 100%;
    z-index: 2;
  }

  .et-l--header .et_pb_column {
    display: flex;
    align-items: center;
  }

  .et-l--header .et_pb_menu {
    min-height: 94px;
    display: flex;
    align-items: center;
  }

  .et-l--header .et_pb_menu .et_pb_menu__logo-wrap,
  .et-l--header .et_pb_menu .et_pb_menu__logo-slot,
  .et-l--header .et_pb_module .et_pb_image_wrap {
    display: flex;
    align-items: center;
    padding-left: 10px;
  }

  .et-l--header .et_pb_menu .et_pb_menu__logo-wrap img,
  .et-l--header .et_pb_menu .et_pb_menu__logo-slot img,
  .et-l--header .et_pb_module img,
  .et-l--header .custom-logo,
  .et-l--header #logo {
    width: auto !important;
    max-width: 100%;
    max-height: 108px;
    height: auto !important;
    object-fit: contain;
  }

  .et-l--header .et_pb_menu .et-menu {
    align-items: center;
  }

  /* Kompakter Scroll-Zustand (.gv-scrolled wird von custom.js gesetzt) */
  .et-l--header .et_pb_section.gv-scrolled {
    min-height: 78px !important;
  }

  .et-l--header .et_pb_section.gv-scrolled .et_pb_row {
    min-height: 78px;
    padding-top: 6px !important;
    padding-bottom: 6px !important;
  }

  .et-l--header .et_pb_section.gv-scrolled .et_pb_menu {
    min-height: 54px;
    align-items: center;
  }

  /* width/height/object-fit erbt das Logo aus der Basisregel oben -
     im Scroll-Zustand aendert sich nur die maximale Hoehe. */
  .et-l--header .et_pb_section.gv-scrolled .et_pb_menu .et_pb_menu__logo-wrap img,
  .et-l--header .et_pb_section.gv-scrolled .et_pb_menu .et_pb_menu__logo-slot img,
  .et-l--header .et_pb_section.gv-scrolled .et_pb_module img,
  .et-l--header .et_pb_section.gv-scrolled .custom-logo,
  .et-l--header .et_pb_section.gv-scrolled #logo {
    max-height: 58px !important;
  }
}

/* Startseite, Chorbereich und Termine auf Aktuelles: Divi setzt für diese
   Code-Modul-Texte eine allgemeinere Serifenschrift. Die vorgesehene Open
   Sans wird hier bewusst nur für die beiden Einleitungstexte durchgesetzt. */
body #page-container .et_pb_section.gv-wave-transition .et_pb_code .trenner p.trenner-text,
body.page-id-244052 #page-container .et_pb_code.trenner .trenner p.trenner-text {
  font-family: "Open Sans", Arial, sans-serif !important;
  font-size: 18px !important;
  font-weight: 500 !important;
  line-height: 1.5 !important;
}

/* Der gekürzte Begleittext darf auf dem Desktop eine ruhige Zeile bilden,
   bleibt aber deutlich kleiner als die Bereichsüberschrift. */
@media (min-width: 981px) {
  body #page-container .et_pb_section.gv-wave-transition .et_pb_code.trenner,
  body #page-container .et_pb_section.gv-wave-transition .et_pb_code .trenner,
  body.page-id-244052 #page-container .et_pb_code.trenner,
  body.page-id-244052 #page-container .et_pb_code.trenner .trenner {
    max-width: 1000px !important;
  }
}

@media (min-width: 767px) and (max-width: 980px) {
  body #page-container .et_pb_section.gv-wave-transition .et_pb_code .trenner p.trenner-text,
  body.page-id-244052 #page-container .et_pb_code.trenner .trenner p.trenner-text {
    font-size: 17px !important;
  }
}

/* Beide Trenner-Einleitungstexte folgen auf kleinen Bildschirmen derselben
   kompakten Typografie. */
@media (max-width: 766.98px) {
  body #page-container .et_pb_section.gv-wave-transition .et_pb_code .trenner p.trenner-text,
  body.page-id-244052 #page-container .et_pb_code.trenner .trenner p.trenner-text {
    font-size: 16px !important;
    line-height: 1.55 !important;
  }
}

/* Desktop-Uebergang (981-1280px): mehr Luft fuers Logo, keine Menue-Umbrueche */
@media (min-width: 981px) and (max-width: 1280px) {
  .et-l--header .et_pb_row {
    padding-top: 16px !important;
    padding-right: 28px !important;
    padding-bottom: 14px !important;
    padding-left: 34px !important;
  }

  .et-l--header .et_pb_menu {
    min-height: 82px;
  }

  .et-l--header .et_pb_menu .et_pb_menu__logo-wrap img,
  .et-l--header .et_pb_menu .et_pb_menu__logo-slot img,
  .et-l--header .et_pb_module img,
  .et-l--header .custom-logo,
  .et-l--header #logo {
    max-height: 88px;
  }

  .et-l--header .et_pb_menu .et-menu {
    flex-wrap: nowrap;
    justify-content: flex-end;
  }

  .et-l--header .et_pb_menu .et-menu > li {
    margin-right: 0.52rem;
  }

  .et-l--header .et_pb_menu .et-menu > li > a {
    font-size: 1.02rem;
    letter-spacing: 0.06em;
    white-space: nowrap;
    padding-right: 8px !important;
    padding-left: 8px !important;
  }

  .et-l--header .et_pb_menu .et-menu .menu-item-has-children > a {
    gap: 0.04em;
  }

  .et-l--header .et_pb_menu .et-menu .menu-item-has-children > a:after {
    font-size: 1.28em !important;
  }

  .et-l--header .et_pb_section.gv-scrolled .et_pb_row {
    padding-top: 6px !important;
    padding-bottom: 6px !important;
    padding-right: 26px !important;
    padding-left: 30px !important;
  }

  .et-l--header .et_pb_section.gv-scrolled .et_pb_menu {
    min-height: 54px;
  }

  .et-l--header .et_pb_section.gv-scrolled .et_pb_menu .et_pb_menu__logo-wrap img,
  .et-l--header .et_pb_section.gv-scrolled .et_pb_menu .et_pb_menu__logo-slot img,
  .et-l--header .et_pb_section.gv-scrolled .et_pb_module img,
  .et-l--header .et_pb_section.gv-scrolled .custom-logo,
  .et-l--header .et_pb_section.gv-scrolled #logo {
    max-height: 58px;
  }
}

/*
Desktop-Navigation in engeren Breiten nach links ziehen:
- verhindert, dass das Menue zu weit rechts haengt
- nutzt den Platz zwischen Logo und Navigation besser aus
*/
@media (min-width: 981px) and (max-width: 1180px) {
  .et-l--header .et_pb_row {
    gap: 8px;
  }

  .et-l--header .et_pb_column:first-child {
    flex: 0 0 320px;
    max-width: 320px;
  }

  .et-l--header .et_pb_column:last-child {
    flex: 1 1 auto;
    max-width: none;
    min-width: 0;
    justify-content: flex-end;
  }

  .et-l--header .et_pb_menu {
    width: 440px;
    max-width: calc(100% - 40px);
    min-width: 0;
    margin-left: auto;
  }

  .et-l--header .et_pb_menu .et-menu {
    justify-content: flex-end;
  }

  .et-l--header .et_pb_menu .et-menu > li {
    margin-right: 0.42rem;
  }

  .et-l--header .et_pb_menu .et-menu > li > a {
    font-size: 1.02rem;
    letter-spacing: 0.045em;
    padding-right: 7px !important;
    padding-left: 7px !important;
  }

  .et-l--header .et_pb_menu .et-menu .menu-item-has-children > a:after {
    font-size: 1.18em !important;
  }

  .et-l--header .et_pb_section.gv-scrolled .et_pb_row {
    gap: 14px;
  }
}

/*
Sticky-Placeholder-Groesse:
- muss dieselbe Hoehe wie der reale Header-Zustand haben, kein fixer Wert -
  sonst ueberlappt der grosse Header (132px) den Content, bis .gv-scrolled greift
- Hintergrundfarbe kommt aus der Section-Einstellung (Theme Builder), nicht hier
*/
.et-l--header .et_pb_sticky_placeholder,
.et-l--header .et_pb_section_0_tb_header.et_pb_sticky_placeholder {
  min-height: 132px !important;
  border: 0 !important;
  box-shadow: none !important;
  overflow: hidden !important;
}

body.gv-header-scrolled .et-l--header .et_pb_sticky_placeholder {
  min-height: 78px !important;
}

/* Header-Verhalten: weiche Uebergaenge beim Scrollen, Groesse per .gv-scrolled */
.et_pb_section {
  transition:
    background-color 0.42s ease,
    box-shadow 0.42s ease,
    border-color 0.42s ease,
    min-height 0.42s ease;
}

.et-l--header .et_pb_section,
.et-l--header .et_pb_row,
.et-l--header .et_pb_menu {
  transition:
    background-color 0.42s ease,
    box-shadow 0.42s ease,
    padding 0.42s ease,
    border-color 0.42s ease,
    min-height 0.42s ease,
    max-height 0.42s ease;
}

.et-l--header .et_pb_sticky_placeholder {
  transition: min-height 0.42s ease;
}

.et-l--header .et_pb_section,
.et-l--header .et_pb_row,
.et-l--header .et_pb_menu,
.et-l--header .et_pb_module img,
.et-l--header .custom-logo,
.et-l--header #logo {
  backface-visibility: hidden;
  transform: translateZ(0);
  will-change: min-height, padding, background-color;
}

.et-l--header .et_pb_module img,
.et-l--header .et_pb_menu__logo-wrap img,
.et-l--header .et_pb_menu__logo-slot img,
.et-l--header .custom-logo,
.et-l--header #logo {
  transition: max-height 0.42s ease, opacity 0.24s ease;
}

/* Grundflaeche des Headers (Farbe kommt aus dem Theme Builder) */
.et-l--header .et_pb_section {
  box-shadow:
    0 10px 28px rgba(0,0,0,0.34),
    inset 0 1px 0 rgba(255,255,255,0.06);
  border-bottom: 1px solid rgba(193,151,77,0.10);
  backdrop-filter: blur(8px) saturate(115%);
  -webkit-backdrop-filter: blur(8px) saturate(115%);
}

/* Ueberschreibt Divis automatisch generierte Sticky-Hintergrundfarbe */
.et-l--header .et_pb_sticky.et_pb_section_0_tb_header.et_pb_section {
  background: var(--gv-dark-glass) !important;
  background-color: var(--gv-dark-glass) !important;
}

.et-l--header .et_pb_row,
.et-l--header .et_pb_menu {
  background: transparent !important;
  background-color: transparent !important;
}

/*
Hauptmenue-Links (Schrift + Hover-Transition):
- Kaskade: Werte stehen bewusst HIER (nach den Media Queries oben) und
  duerfen NICHT in den Basis-Block am Dateianfang verschoben werden.
*/
.et-l--header .et_pb_menu .et-menu > li > a {
  font-size: 1.02rem;
  letter-spacing: 0.06em;
  transition:
    background-color 0.3s ease,
    border-color 0.3s ease,
    transform 0.2s ease;
}

.et-l--header .et_pb_menu .et-menu > li > a:hover {
  color: var(--gv-gold-hover) !important;
  background: var(--gv-gold-veil-14) !important;
  border-color: rgba(193,151,77,0.35) !important;
  border-radius: 999px;
  box-shadow: none;
  transform: translateY(-1px);
}

.et-l--header .et_pb_menu .et-menu > li.current-menu-item > a:hover,
.et-l--header .et_pb_menu .et-menu > li.current_page_item > a:hover,
.et-l--header .et_pb_menu .et-menu > li.current-menu-ancestor > a:hover {
  background: var(--gv-gold-veil-18) !important;
  border-color: var(--gv-gold-veil-45) !important;
  border-bottom: 0 !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.06);
}

.et-l--header .et_pb_menu .et-menu > li > a:focus-visible {
  outline: 2px solid var(--gv-gold-hover);
  outline-offset: 4px;
}


/* Menuepunkte: Abstand + Bezugspunkt fuers Dropdown, stabiler Hover-Weg */
.et-l--header .et_pb_menu .et-menu > li {
  position: relative;
  padding-bottom: 18px;
  margin-right: 0.72rem;
  margin-bottom: -18px;
}

.et-l--header .et_pb_menu .et-menu > li:last-child {
  margin-right: 0;
}


/* Dropdown-Pfeil im Hauptmenue */
.et-l--header .et_pb_menu .et-menu .menu-item-has-children > a {
  display: inline-flex;
  align-items: center;
  gap: 0.08em;
  position: relative;
  padding-right: 0 !important;
}

.et-l--header .et_pb_menu .et-menu .menu-item-has-children > a:after {
  color: var(--gv-gold-nav) !important;
  font-size: 1.6em !important;
  font-weight: 800 !important;
  margin-left: 0 !important;
  position: relative;
  right: auto;
  top: auto;
  line-height: 0;
  transition:
    color 0.3s ease,
    transform 0.3s ease;
  transform: translateY(0);
}

.et-l--header .et_pb_menu .et-menu .menu-item-has-children > a:hover:after,
.et-l--header .et_pb_menu .et-menu .menu-item-has-children:hover > a:after,
.et-l--header .et_pb_menu .et-menu .menu-item-has-children > a:focus-visible:after {
  color: var(--gv-gold-hover) !important;
  opacity: 1;
  transform: rotate(180deg);
}

.et-l--header .et_pb_menu .et-menu .menu-item-has-children.current-menu-ancestor > a:after {
  color: var(--gv-gold-nav) !important;
  opacity: 1;
  transform: rotate(180deg);
}


/* --- Desktop-Dropdown (Untermenues, Hover-Bereich, Tastaturbedienung) --- */


/* Dropdown ueber allen Header-Inhalten anzeigen */
.et-l--header,
.et-l--header .et_pb_section,
.et-l--header .et_pb_row,
.et-l--header .et_pb_menu {
  position: relative;
  z-index: 99999;
}


/* Unsichtbarer Hover-Steg schliesst die Luecke Menuepunkt-Dropdown */
.et-l--header .et_pb_menu .et-menu > li.menu-item-has-children::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  height: 18px;
  z-index: 99998;
}


/* Dropdown-Container: Groesse, Glass-Look, Abstand (Tablet unten 8px) */
.et-l--header .et_pb_menu .et-menu-nav > ul.sub-menu,
.et-l--header .et_pb_menu .et-menu li ul.sub-menu,
.et-l--header .et_pb_menu .nav li ul,
.et-l--header .et_pb_menu .sub-menu {
  background: var(--gv-dropdown-bg) !important;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid var(--gv-gold-veil-18) !important;
  border-left: 2px solid rgba(193,151,77,0.40) !important;
  padding: 8px 0 !important;
  min-width: 230px !important;
  width: 230px !important;
  display: block !important;
  z-index: 99999 !important;
  box-shadow: 0 16px 36px rgba(0,0,0,0.40) !important;
  top: 100% !important;
  margin-top: 4px !important;
}

/* Tablet: Dropdown etwas tiefer ansetzen */
@media (min-width: 767px) and (max-width: 980px) {
  .et-l--header .et_pb_menu .et-menu-nav > ul.sub-menu,
  .et-l--header .et_pb_menu .et-menu li ul.sub-menu,
  .et-l--header .et_pb_menu .nav li ul,
  .et-l--header .et_pb_menu .sub-menu {
    margin-top: 8px !important;
  }
}


/* Dropdown-Listenelemente: volle Breite */
.et-l--header .et_pb_menu .sub-menu li,
.et-l--header .et_pb_menu .nav li ul li {
  background: transparent !important;
  width: 100% !important;
}


/* Dropdown-Links: Textstil und Abstaende */
.et-l--header .et_pb_menu .sub-menu li a,
.et-l--header .et_pb_menu .nav li ul li a {
  display: block !important;
  width: 100% !important;
  color: var(--gv-gold-nav) !important;
  background: transparent !important;
  padding: 10px 18px !important;
  font-size: 15px !important;
  line-height: 1.35 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  transition:
    color 0.25s ease,
    background-color 0.25s ease,
    padding-left 0.25s ease !important;
}


/* Dropdown-Hover: goldene Flaeche und leichte Bewegung */
.et-l--header .et_pb_menu .sub-menu li a:hover,
.et-l--header .et_pb_menu .nav li ul li a:hover {
  color: var(--gv-gold-hover) !important;
  background: var(--gv-gold-veil-14) !important;
  padding-left: 21px !important;
}

.et-l--header .et_pb_menu .sub-menu li a:focus-visible,
.et-l--header .et_pb_menu .nav li ul li a:focus-visible {
  color: var(--gv-gold-hover)!important;
  background: var(--gv-gold-veil-14) !important;
  outline: 2px solid var(--gv-gold-hover);
  outline-offset: -2px;
}


/* Dropdown-Animation: sanft einblenden, leicht nach oben gleiten */
.et-l--header .et_pb_menu .et-menu > li > ul.sub-menu {
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition:
    opacity 0.25s ease,
    transform 0.25s ease,
    visibility 0.25s ease;
  pointer-events: none;
}


/* Dropdown aktiv bei Hover oder Fokus (Maus und Tastatur) */
.et-l--header .et_pb_menu .et-menu > li:hover > ul.sub-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
}

.et-l--header .et_pb_menu .et-menu > li:focus-within > ul.sub-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
}


/* =========================================================
   MOBILE UND TABLET-NAVIGATION
   Header, Menue und Dropdown-Verhalten bis einschliesslich 980 px
========================================================= */


/* Grundlayout des mobilen Headers (Logo links, Burger rechts) */
@media (max-width: 980px) {
  .et-l--header .et_pb_section,
  .et-l--header .et_pb_row,
  .et-l--header .et_pb_menu {
    background: var(--gv-dark) !important;
  }

  .et-l--header .et_pb_section {
    min-height: 92px;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  .et-l--header .et_pb_row {
    min-height: 92px;
    padding: 14px 18px !important;
    display: flex;
    align-items: center;
    position: relative;
  }

  .et-l--header .et_pb_column {
    display: flex;
    align-items: center;
  }

  .et-l--header .et_pb_menu {
    min-height: 64px;
    display: flex;
    align-items: center;
  }

  .et-l--header .et_pb_menu .et_pb_menu__logo-wrap img,
  .et-l--header .et_pb_menu .et_pb_menu__logo-slot img,
  .et-l--header .et_pb_module img,
  .et-l--header .custom-logo,
  .et-l--header #logo {
    max-height: 64px !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain;
  }

  .et-l--header .et_mobile_nav_menu {
    display: flex;
    align-items: center;
    margin-left: auto;
  }

  /* Darstellung des Hamburger-Menues (inkl. geoeffnetem X-Zustand) */
  .et-l--header .mobile_menu_bar {
    width: 36px;
    height: 26px;
    padding-bottom: 0;
    padding-left: 0;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
  }

  .et-l--header .mobile_menu_bar:before,
  .et-l--header .mobile_menu_bar:after {
    content: "" !important;
    position: absolute;
    left: 0;
    width: 36px;
    height: 3px;
    border-radius: 999px;
    background: var(--gv-gold-nav);
    transition:
      top 0.35s ease,
      transform 0.35s ease,
      box-shadow 0.35s ease,
      background-color 0.35s ease;
  }

  .et-l--header .mobile_menu_bar:before {
    top: 6px;
    box-shadow: 0 9px 0 var(--gv-gold-nav);
  }

  .et-l--header .mobile_menu_bar:after {
    top: 24px;
  }

  .et-l--header .mobile_nav.opened .mobile_menu_bar:before {
    top: 14px;
    box-shadow: none;
    background: var(--gv-gold-nav);
    transform: rotate(45deg);
  }

  .et-l--header .mobile_nav.opened .mobile_menu_bar:after {
    top: 14px;
    background: var(--gv-gold-nav);
    transform: rotate(-45deg);
  }

  /* Geoeffnetes Mobilmenue: dunkles, scrollbares Panel unter dem Header */
  .et-l--header .et_mobile_menu {
    background: var(--gv-panel) !important;
    box-shadow: 0 14px 34px rgba(0, 0, 0, 0.32) !important;
    margin-top: 14px !important;
    padding: 10px 0 18px !important;
    max-height: calc(100vh - 110px);
    overflow-y: auto !important;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  .et-l--header .et_mobile_menu li {
    width: 100%;
    background: transparent !important;
  }

  .et-l--header .et_mobile_menu li a {
    color: var(--gv-gold-nav) !important;
    font-size: 18px !important;
    line-height: 1.35 !important;
    letter-spacing: 0.3px !important;
    text-transform: uppercase !important;
    padding: 12px 18px !important;
    border-bottom: 0 !important;
    transition:
      color 0.25s ease,
      background-color 0.25s ease,
      padding-left 0.25s ease !important;
  }

  .et-l--header .et_mobile_menu li a:hover,
  .et-l--header .et_mobile_menu li a:focus-visible {
    color: var(--gv-gold-hover) !important;
    background: rgba(193, 151, 77, 0.12) !important;
    padding-left: 22px !important;
  }

  /* Dropdown-Pfeil der mobilen Punkte mit Untermenue */
  .et-l--header .et_mobile_menu .menu-item-has-children > a {
    position: relative;
    padding-right: 42px !important;
  }

  .et-l--header .et_mobile_menu .menu-item-has-children > a:after {
    color: var(--gv-gold-nav) !important;
    font-size: 1.2em !important;
    font-weight: 800 !important;
    line-height: 1;
    position: absolute;
    right: 18px;
    top: 50%;
    transform: translateY(-50%);
  }

  .et-l--header .et_mobile_menu .menu-item-has-children > a:hover:after,
  .et-l--header .et_mobile_menu .menu-item-has-children > a:focus-visible:after {
    color: var(--gv-gold-hover) !important;
  }

  /* Mobile Untermenues: eingerueckt mit eigener linker Linie */
  .et-l--header .et_mobile_menu .sub-menu {
    background: transparent !important;
    margin: 2px 0 10px 18px !important;
    padding: 4px 0 4px 0 !important;
    width: auto !important;
  }

  .et-l--header .et_mobile_menu .sub-menu li a {
    font-size: 16px !important;
    padding: 10px 16px 10px 18px !important;
    text-transform: uppercase !important;
    opacity: 0.96;
  }

  .et-l--header .et_mobile_menu > li:last-child,
  .et-l--header .et_mobile_menu > li:last-child > a,
  .et-l--header .et_mobile_menu > li:last-child .sub-menu,
  .et-l--header .et_mobile_menu > li:last-child .sub-menu li:last-child a {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
  }

  /*
  Hinweis: wirkt vermutlich nur 768-980px (unter 767px ueberschreibt der
  eigene Handy-Block die Scrollbar auf width: 0). Ob dort ueberhaupt ein
  et_mobile_menu im DOM gerendert wird, ist ungeprueft - Regeln deshalb
  vorsichtshalber behalten.
  */
  .et-l--header .et_mobile_menu::-webkit-scrollbar {
    width: 8px;
  }

  .et-l--header .et_mobile_menu::-webkit-scrollbar-thumb {
    border-radius: 999px;
  }
}

/* Gehoert zur Aktuelles-Section (Startseite): Infospalte mittig auf Tablet */
@media (min-width: 767px) and (max-width: 980px) {
  .et_pb_section.et_section_specialty.aktuelles-mobile-umdrehen > .et_pb_row > .et_pb_column_8 {
    position: relative;
    left: 0;
  }
}

/* Tablet-Header gestapelt: Logo mittig ueber Menue, Burger versteckt */
@media (min-width: 767px) and (max-width: 980px) {
  .et-l--header .et_pb_menu .et-menu > li.tablet-submenu-open > ul.sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
  }

  .et-l--header .et_pb_menu .et-menu > li.tablet-submenu-open > a:after {
    color: var(--gv-gold-nav) !important;
    transform: translateY(-1px) rotate(180deg);
  }

  .et-l--header .et_pb_section {
    min-height: auto;
    padding-top: 14px !important;
  }

  .et-l--header .et_pb_row {
    min-height: auto;
    padding: 30px 22px 16px !important;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 6px;
  }

  .et-l--header .et_pb_column {
    width: 100%;
    display: flex;
    justify-content: center;
    margin-bottom: 0 !important;
  }

  .et-l--header .et_pb_menu {
    min-height: auto;
    width: 100%;
    display: flex;
    justify-content: center;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
  }

  .et-l--header .et_pb_menu .et_pb_menu__logo-wrap,
  .et-l--header .et_pb_menu .et_pb_menu__logo-slot,
  .et-l--header .et_pb_module,
  .et-l--header .et_pb_module .et_pb_image_wrap {
    width: 100%;
    display: flex;
    justify-content: center;
    text-align: center;
    padding-left: 0;
    margin: 0 auto;
  }

  .et-l--header .et_pb_menu .et_pb_menu__logo-wrap img,
  .et-l--header .et_pb_menu .et_pb_menu__logo-slot img,
  .et-l--header .et_pb_module img,
  .et-l--header .custom-logo,
  .et-l--header #logo {
    display: block;
    max-height: 72px !important;
    margin: 0 auto;
  }

  .et-l--header .et_pb_menu__menu {
    display: block !important;
  }

  .et-l--header .et_pb_column:first-child,
  .et-l--header .et_pb_column:first-child .et_pb_module,
  .et-l--header .et_pb_column:last-child,
  .et-l--header .et_pb_column:last-child .et_pb_module {
    margin-bottom: 0 !important;
  }

  .et-l--header .et_mobile_nav_menu {
    display: none !important;
  }

  .et-l--header .et_pb_menu .et-menu {
    justify-content: center;
    flex-wrap: wrap;
    align-items: center;
    row-gap: 8px;
    margin-bottom: 10px;
  }

  .et-l--header .et_pb_menu .et-menu > li {
    display: flex;
    align-items: center;
    margin-right: 0.7rem;
    margin-bottom: 0;
    padding-bottom: 0;
  }

  .et-l--header .et_pb_menu .et-menu > li > a {
    display: inline-flex;
    align-items: center;
    font-size: 1.07rem;
    letter-spacing: 0.04em;
    white-space: nowrap;
    padding: 8px 12px;
  }

  .et-l--header .et_pb_menu .et-menu .menu-item-has-children > a {
    gap: 0.08em;
  }

  .et-l--header .et_pb_menu .et-menu .menu-item-has-children > a:after {
    font-size: 1.45em !important;
    transform: translateY(-1px);
    line-height: 0; /* Chevron soll keine Höhe zum Link beitragen */
  }
}

/* Handy-Header (<=767px): kompakte Leiste, Logo links, Burger rechts */
@media (max-width: 766.98px) {
  .et-l--header .et_pb_section,
  .et-l--header .et_pb_row,
  .et-l--header .et_pb_menu {
    background: var(--gv-dark) !important;
    background-color: var(--gv-dark) !important;
  }

  .et-l--header .et_pb_section,
  .et-l--header .et_pb_row,
  .et-l--header .et_pb_menu,
  .et-l--header .et_pb_menu__wrap,
  .et-l--header .et_mobile_nav_menu,
  .et-l--header .mobile_nav {
    transform: none !important;
    backface-visibility: visible !important;
    will-change: auto !important;
  }

  .et-l--header .et_pb_menu__wrap {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: flex-start;
  }

  .et-l--header .et_pb_row {
    padding: 12px 12px 10px !important;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
  }

  .et-l--header .et_pb_section,
  .et-l--header .et_pb_row,
  .et-l--header .et_pb_menu,
  .et-l--header .et_mobile_nav_menu,
  .et-l--header .mobile_nav {
    position: relative;
    z-index: 100001;
  }

  .et-l--header .et_pb_menu {
    min-height: 56px;
    display: flex;
    justify-content: flex-start;
    align-items: center;
  }

  .et-l--header .et_pb_column {
    width: auto;
    flex: initial;
    display: flex;
    align-items: center;
    margin-bottom: 0 !important;
  }

  .et-l--header .et_pb_column:first-child {
    justify-content: flex-start;
  }

  .et-l--header .et_pb_column:last-child {
    margin-left: auto;
    justify-content: flex-end;
  }

  .et-l--header .et_mobile_nav_menu {
    width: auto;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    position: static;
    right: auto;
    top: auto;
    margin-top: 0;
    transform: none;
    left: auto !important;
    margin-left: auto;
    padding-right: 0;
  }

  .et-l--header .mobile_nav {
    position: static;
    right: auto;
    left: auto !important;
    top: auto;
    transform: none;
    display: flex;
    align-items: center;
  }

  .et-l--header .mobile_menu_bar {
    width: 32px;
    height: 28px;
  }

  .et-l--header .mobile_menu_bar:before,
  .et-l--header .mobile_menu_bar:after {
    width: 32px;
  }

  .et-l--header .et_pb_menu .et_pb_menu__logo-wrap,
  .et-l--header .et_pb_menu .et_pb_menu__logo-slot,
  .et-l--header .et_pb_module .et_pb_image_wrap,
  .et-l--header .et_pb_module img,
  .et-l--header .custom-logo,
  .et-l--header #logo {
    display: block !important;
  }

  .et-l--header .et_pb_menu .et_pb_menu__logo-wrap,
  .et-l--header .et_pb_menu .et_pb_menu__logo-slot,
  .et-l--header .et_pb_module .et_pb_image_wrap {
    display: flex !important;
    flex: 0 0 auto;
    align-items: center;
    justify-content: flex-start;
    width: auto;
    padding-left: 10px;
    margin: 0;
  }

  /* width/height/object-fit kommen aus der <=980px-Regel oben -
     im Handy-Bereich aendert sich nur die maximale Hoehe. */
  .et-l--header .et_pb_menu .et_pb_menu__logo-wrap img,
  .et-l--header .et_pb_menu .et_pb_menu__logo-slot img,
  .et-l--header .et_pb_module img,
  .et-l--header .custom-logo,
  .et-l--header #logo {
    max-height: 48px !important;
  }

  /* Handy-Menue als breites, linksbuendiges Panel unter dem Header */
  .et-l--header .et_mobile_menu {
    position: fixed !important;
    top: 93px !important;
    left: 12px !important;
    right: 0 !important;
    z-index: 100000 !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    box-sizing: border-box !important;
    margin: 0 !important;
    padding: 10px 0 6px !important;
    border-radius: 0 !important;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.24) !important;
    background: var(--gv-panel) !important;
    max-height: calc(100vh - 110px);
    overflow-y: auto !important;
    scrollbar-width: none;
    -ms-overflow-style: none;
    scrollbar-gutter: stable;
    text-align: left;
    opacity: 0;
    visibility: hidden;
    transform: translateY(18px);
    pointer-events: none;
    transition:
      opacity 0.42s ease,
      transform 0.48s cubic-bezier(0.22, 1, 0.36, 1),
      visibility 0.48s ease;
  }

  .et_pb_menu_0_tb_header.et_pb_menu .et_mobile_menu,
  .et_pb_menu_0_tb_header.et_pb_menu .et_mobile_menu ul,
  .et_pb_menu_0_tb_header.et_pb_menu .nav li ul {
    background: var(--gv-panel) !important;
    background-color: var(--gv-panel) !important;
  }

  .et-l--header .mobile_nav .et_mobile_menu {
    display: block !important;
  }

  .et-l--header .et_mobile_menu::-webkit-scrollbar {
    width: 0;
    height: 0;
  }

  .et-l--header .et_mobile_menu::-webkit-scrollbar-thumb {
    background: transparent;
  }

  /* Geoeffnetes Panel sichtbar schalten */
  .et-l--header .mobile_nav.opened .et_mobile_menu {
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateY(0);
    pointer-events: auto !important;
  }

  .et-l--header .et_mobile_menu li,
  .et-l--header .et_mobile_menu li a {
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
  }

  .et-l--header .et_mobile_menu li a {
    font-size: 20px !important;
    line-height: 1.3 !important;
    letter-spacing: 0.02em !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    text-align: left !important;
    text-decoration: none !important;
    padding: 11px 20px !important;
  }

  .et-l--header .et_mobile_menu li a:hover,
  .et-l--header .et_mobile_menu li a:focus-visible {
    padding-left: 24px !important;
  }

  .et-l--header .et_mobile_menu .menu-item-has-children > a {
    padding-right: 48px !important;
  }

  .et-l--header .et_mobile_menu .menu-item-has-children > a:after {
    display: none !important;
  }

  /* Mobile Untermenues: eingeklappt, per Klick aufklappbar (Animation) */
  .et-l--header .et_mobile_menu .sub-menu {
    border-left: 0 solid transparent;
    margin: 0 16px 0 20px !important;
    padding: 0 !important;
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    visibility: hidden;
    transition:
      max-height 0.9s cubic-bezier(0.22, 1, 0.36, 1),
      opacity 0.58s ease,
      margin 0.9s cubic-bezier(0.22, 1, 0.36, 1);
  }

  .et-l--header .et_mobile_menu li li {
    padding-left: 0 !important;
  }

  .et-l--header .et_mobile_menu .menu-item-has-children.mobile-submenu-open > .sub-menu {
    display: block !important;
    margin: 2px 16px 8px 20px !important;
    padding: 2px 0 !important;
    max-height: 420px;
    opacity: 1;
    visibility: visible;
    transition:
      max-height 0.82s cubic-bezier(0.22, 1, 0.36, 1),
      opacity 0.48s ease,
      margin 0.82s cubic-bezier(0.22, 1, 0.36, 1);
  }

  /* Aufgeklappter Zustand und Pfeil-Toggle der mobilen Untermenues */
  .et-l--header .et_mobile_menu .menu-item-has-children {
    position: relative;
  }

  .et-l--header .et_mobile_menu .menu-item-has-children.mobile-submenu-open > a {
    color: var(--gv-gold-nav) !important;
    background: var(--gv-gold-veil-14) !important;
  }

  .et-l--header .et_mobile_menu .mobile-submenu-toggle {
    position: absolute;
    top: 7px;
    right: 8px;
    width: 40px;
    height: 40px;
    border: 0;
    background: transparent;
    padding: 0;
    cursor: pointer;
    z-index: 2;
  }

  .et-l--header .et_mobile_menu .mobile-submenu-toggle:before {
    content: "\33";
    font-family: ETmodules !important;
    color: var(--gv-gold-nav);
    font-size: 2.6em;
    font-weight: 800;
    line-height: 40px;
    display: block;
    text-align: center;
    transition:
      color 0.25s ease,
      transform 0.25s ease;
  }

  .et-l--header .et_mobile_menu .menu-item-has-children.mobile-submenu-open > .mobile-submenu-toggle:before {
    color:var(--gv-gold-nav);
    transform: rotate(180deg);
  }

  .et-l--header .et_mobile_menu .sub-menu li a {
    font-size: 16px !important;
    line-height: 1.35 !important;
    padding: 9px 18px 9px 24px !important;
    opacity: 0.94;
  }
}

/* Reduzierte Bewegung: Animationen aus, Bedienung bleibt erhalten */
@media (prefers-reduced-motion: reduce) {
  .et_pb_section,
  .et-l--header .et_pb_section,
  .et-l--header .et_pb_row,
  .et-l--header .et_pb_menu,
  .et_pb_menu .et-menu > li > a,
  .et-l--header .et_pb_menu .sub-menu li a,
  .et-l--header .et_pb_menu .nav li ul li a,
  .et-l--header .et_pb_menu .et-menu > li > ul.sub-menu {
    transition: none !important;
  }

  .et_pb_menu .et-menu > li > a:hover,
  .et-l--header .et_pb_menu .et-menu > li:hover > ul.sub-menu,
  .et-l--header .et_pb_menu .et-menu > li:focus-within > ul.sub-menu {
    transform: none;
  }
}

/* Divi-Override: Menue-Hintergruende im dunklen Glass-Look halten */
.et-l--header .nav li ul {
  border-top: 1px solid var(--gv-gold-veil-18) !important;
  border-top-color: var(--gv-gold-veil-18) !important;
}

.et-l--header .et_pb_menu_0_tb_header.et_pb_menu .nav li ul,
.et-l--header .et_pb_menu_0_tb_header.et_pb_menu .et-menu-nav li ul,
.et-l--header .et_pb_menu_0_tb_header.et_pb_menu ul.sub-menu,
.et-db #et-boc .et-l--header .et_pb_menu_0_tb_header.et_pb_menu .nav li ul,
.et-db #et-boc .et-l--header .et_pb_menu_0_tb_header.et_pb_menu .et-menu-nav li ul,
.et-db #et-boc .et-l--header .et_pb_menu_0_tb_header.et_pb_menu ul.sub-menu {
  border-top: 1px solid var(--gv-gold-veil-18) !important;
  border-top-color: var(--gv-gold-veil-18) !important;
}

.et-l--header .et_pb_menu_0_tb_header.et_pb_menu .nav li ul,
.et-l--header .et_pb_menu_0_tb_header.et_pb_menu .et_mobile_menu,
.et-l--header .et_pb_menu_0_tb_header.et_pb_menu .et_mobile_menu ul {
  background: var(--gv-dropdown-bg) !important;
  background-color: var(--gv-dropdown-bg) !important;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-top: 1px solid var(--gv-gold-veil-18) !important;
}

/* Header-Leiste durchgehend halten (Row/Menue nicht als dunklere Flaeche) */
.et-l--header .et_pb_row_0_tb_header,
.et-l--header .et_pb_menu_0_tb_header,
.et-db #et-boc .et-l--header .et_pb_row_0_tb_header,
.et-db #et-boc .et-l--header .et_pb_menu_0_tb_header {
  background: transparent !important;
  background-color: transparent !important;
}



/*
Getrennte Header Desktop/Tablet/Mobile (gv-header-*):
- jede Section wird per eigener CSS-Klasse im Theme Builder gesteuert
- ausserhalb ihres Breakpoints ist sie vollstaendig ausgeblendet
*/
@media (min-width: 981px) {
  .et-l--header .gv-header-tablet {
    display: none !important;
  }
}

@media (min-width: 767px) and (max-width: 980px) {
  /* Deckt den Divi-Placeholder beim Wechsel in den Sticky-Zustand ab.
     Tablet-Pendant zur Desktop-Flaeche (160px) im min-width-981px-Block oben. */
  body::before {
    content: "";
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 220px;
    background: var(--gv-page-bg);
    z-index: 0;
    pointer-events: none;
  }

  /* Siehe Desktop-Block oben: die dunklen Seiten beginnen mit #1e232b. */
  body.page-id-244070::before,
  body.page-id-244073::before,
  body.page-id-245195::before,
  body.gv-legal-page::before {
    background: var(--gv-dark-page-header);
  }

  .et-l--header .gv-header-desktop {
    display: none !important;
  }

  .et-l--header .gv-header-mobile {
    display: none !important;
  }

  .et-l--header .et_pb_section.gv-header-tablet {
    display: block !important;
    background: #393834 !important;
    background-color: #393834 !important;
    backdrop-filter: blur(8px) saturate(115%);
    -webkit-backdrop-filter: blur(8px) saturate(115%);
  }

  .et-l--header .gv-header-tablet .et_pb_row,
  .et-l--header .gv-header-tablet .et_pb_menu {
    background: transparent !important;
    background-color: transparent !important;
  }

  /* Tablet-Header im Sticky-Zustand wie Desktop behandeln. */
  .et-l--header .gv-header-tablet.et_pb_sticky,
  .et-l--header .gv-header-tablet.gv-scrolled {
    background: #393834 !important;
    background-color: #393834 !important;
  }

  /* Ueberschreibt Divis automatisch generierte Sticky-Farbe der Kopie. */
  .et-db #et-boc .et-l--header .et_pb_section.gv-header-tablet.et_pb_sticky,
  .et-db #et-boc .et-l--header .et_pb_section.gv-header-tablet.gv-scrolled {
    background: var(--gv-dark-glass) !important;
    background-color: var(--gv-dark-glass) !important;
    background-image: none !important;
  }

  .et-l--header .gv-header-tablet.gv-scrolled .et_pb_row {
    min-height: 0 !important;
    padding-top: 2px !important;
    padding-bottom: 2px !important;
    gap: 0;
  }

  .et-l--header .gv-header-tablet.gv-scrolled .et_pb_menu {
    min-height: 0 !important;
  }

  .et-l--header .gv-header-tablet.gv-scrolled .et_pb_menu .et-menu {
    margin-bottom: 10px !important;
    row-gap: 0;
  }

  .et-l--header .gv-header-tablet.gv-scrolled .et_pb_menu .et-menu > li > a {
    padding-top: 4px !important;
    padding-bottom: 4px !important;
    font-size: 1rem;
  }

  .et-l--header .gv-header-tablet.gv-scrolled .et_pb_image,
  .et-l--header .gv-header-tablet.gv-scrolled .et_pb_image_1_tb_header {
    margin: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    line-height: 0;
  }

  .et-l--header .gv-header-tablet.gv-scrolled .et_pb_image_wrap {
    display: block !important;
    line-height: 0;
  }

  .et-l--header .gv-header-tablet.gv-scrolled .et_pb_menu__logo-wrap img,
  .et-l--header .gv-header-tablet.gv-scrolled .et_pb_menu__logo-slot img,
  .et-l--header .gv-header-tablet.gv-scrolled .et_pb_module img,
  .et-l--header .gv-header-tablet.gv-scrolled .custom-logo,
  .et-l--header .gv-header-tablet.gv-scrolled #logo {
    max-height: 32px !important;
  }
}

@media (max-width: 766.98px) {
  .et-l--header .gv-header-tablet {
    display: none !important;
  }
}

/* Chor-Seiten starten auf #454a53. Die Header-Unterlage übernimmt nur dort
   dieselbe Farbe, damit beim Sticky-Uebergang kein heller Streifen erscheint.
   Home sowie Aktuelles und Verein behalten ihre bisherige helle Unterlage. */
@media (min-width: 767px) {
  body:has(.gv-final-hero--musica-viva)::before,
  body:has(.gv-final-hero--inspirations)::before,
  body:has(.gv-final-hero--young-voices)::before {
    background: #454a53;
  }
}

/* ---------------------------------------------------------
   STARTSEITE / HOME
   Seitenspezifische Gestaltung der Startseite
--------------------------------------------------------- */


/* === Allgemeine Seitenelemente =========================== */
/* Abstand unter dem Header */

/* Hero-Abstand folgt dem Header-Zustand (custom.js: gv-header-scrolled) */
.gv-hero-section {
  transition: padding-top 0.42s ease;
}

body.gv-header-scrolled .gv-hero-section {
  padding-top: 56px !important;
}

/* === Slider / Hero-Codemodule ============================ */
/* Gemeinsamer Slider-Code fuer Startseite und Unterseiten */

/* Basis: Varianten werden per Zusatzklasse an .gv-final-hero gesteuert */
.gv-final-hero-wrap {
  width: 100%;
  padding: 0 40px;
  box-sizing: border-box;
  clear: both;
}

.gv-final-hero {
  --gv-hero-bg: #f5efe4;
  --gv-hero-gradient: linear-gradient(
    90deg,
    #f5efe4 0%,
    rgba(245, 239, 228, 0.96) 15%,
    rgba(245, 239, 228, 0.70) 29%,
    rgba(245, 239, 228, 0.30) 43%,
    rgba(245, 239, 228, 0) 60%
  );
  --gv-kicker-font: "Nanum Myeongjo", Georgia, serif;
  --gv-kicker-size: 38px;
  --gv-kicker-weight: 700;
  --gv-kicker-color: #111111;
  --gv-title-font: "Nanum Myeongjo", Georgia, serif;
  --gv-title-size: 74px;
  --gv-title-line-height: 1.12;
  --gv-title-weight: 700;
  --gv-title-color: var(--gv-gold-nav);
  --gv-title-letter-spacing: -1px;
  --gv-title-transform: none;
  --gv-divider-color: var(--gv-gold-nav);
  --gv-subline-margin: 0 0 0 24px;
  --gv-subline-size: 54px;
  --gv-subline-line-height: 1.08;
  --gv-subline-color: #555555;
  --gv-text-shadow: none;
  --gv-title-shadow: var(--gv-text-shadow);
  --gv-subline-shadow: var(--gv-text-shadow);
  --gv-divider-shadow: none;

  width: 100%;
  max-width: 1600px;
  min-height: 500px;
  margin: 0 auto;
  border-radius: 14px;
  overflow: hidden;
  position: relative;
  background: var(--gv-hero-bg);
  box-shadow: 0 12px 35px rgba(0, 0, 0, 0.22);
}

.gv-final-slider {
  position: absolute;
  inset: 0;
  z-index: 1;
}

.gv-final-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  animation: gvFinalHeroFade 18s infinite;
}

.gv-final-slide:nth-child(1) {
  animation-delay: 0s;
}

.gv-final-slide:nth-child(2) {
  animation-delay: 6s;
}

.gv-final-slide:nth-child(3) {
  animation-delay: 12s;
}

.gv-final-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center right;
}

.gv-final-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  background: var(--gv-hero-gradient);
  pointer-events: none;
}

.gv-final-content {
  position: relative;
  z-index: 3;
  width: 46%;
  min-height: 500px;
  padding: 45px 0 45px 80px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.gv-final-kicker {
  display: block;
  margin-bottom: 10px;
  font-family: var(--gv-kicker-font);
  font-size: var(--gv-kicker-size);
  line-height: 1.05;
  font-weight: var(--gv-kicker-weight);
  color: var(--gv-kicker-color);
  letter-spacing: -0.5px;
  text-shadow: var(--gv-text-shadow);
}

.gv-final-title {
  margin: 0 0 24px 0;
  font-family: var(--gv-title-font);
  font-size: var(--gv-title-size);
  line-height: var(--gv-title-line-height);
  font-weight: var(--gv-title-weight);
  color: var(--gv-title-color);
  letter-spacing: var(--gv-title-letter-spacing);
  text-transform: var(--gv-title-transform);
  text-shadow: var(--gv-title-shadow);
}

.gv-final-divider {
  width: 360px;
  height: 2px;
  background: var(--gv-divider-color);
  margin: 14px 0 28px 0;
  box-shadow: var(--gv-divider-shadow);
}

.gv-final-subline {
  margin: var(--gv-subline-margin);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: var(--gv-subline-size);
  line-height: var(--gv-subline-line-height);
  font-weight: 600;
  color: var(--gv-subline-color);
  letter-spacing: 0.3px;
  text-shadow: var(--gv-subline-shadow);
}

.gv-final-subline span {
  display: block;
  margin-bottom: 8px;
}

.gv-final-subline span:last-child {
  margin-bottom: 0;
}

@keyframes gvFinalHeroFade {
  0% {
    opacity: 0;
  }

  8% {
    opacity: 1;
  }

  33% {
    opacity: 1;
  }

  41% {
    opacity: 0;
  }

  100% {
    opacity: 0;
  }
}

/* Kartenhoehe an Home angleichen (Home wird durch den zweizeiligen Titel
   "Gesangverein Wombach" hoeher als die 500px-Basis; andere Seiten mit
   kuerzerem Text sollen dieselbe Kartengroesse haben, ohne dass ihr Text
   umgebrochen wird - daher fester Mindestwert statt Inhaltsanpassung). */
@media (min-width: 1251px) {
  .gv-final-hero,
  .gv-final-content {
    min-height: 575px;
  }

  /* Die Home-Referenz behält ihre bisherige Textfläche. Die längeren
     Unterseiten-Sätze erhalten dagegen genug Breite für eine feste Zeile. */
  .gv-final-hero--subpage .gv-final-content,
  .gv-final-hero--musica-viva .gv-final-content,
  .gv-final-hero--inspirations .gv-final-content,
  .gv-final-hero--young-voices .gv-final-content {
    width: 54%;
  }
}

/* Varianten: Home nutzt Basiswerte, Unterseiten aendern Farben/Schriften */
.gv-final-hero--home {
  --gv-kicker-size: 38px;
  --gv-subline-size: 54px;
  --gv-subline-line-height: 1.08;
}

.gv-final-hero--subpage {
  --gv-kicker-size: 38px;
  --gv-subline-size: 54px;
  --gv-subline-line-height: 1.08;
}

/* Farbige Unterseiten-Slider: je Variante nur --gv-hero-rgb; Verlauf zentral unten */
.gv-final-hero--musica-viva {
  --gv-hero-rgb: 252, 220, 60;
  --gv-hero-bg: rgba(var(--gv-hero-rgb), 0.85);
}

.gv-final-hero--inspirations {
  --gv-hero-rgb: 242, 145, 48;
  --gv-hero-bg: rgba(var(--gv-hero-rgb), 0.88);
}

.gv-final-hero--musica-viva,
.gv-final-hero--inspirations {
  --gv-kicker-font: "Cinzel", Georgia, "Times New Roman", serif;
  --gv-kicker-weight: 500;
  --gv-kicker-color: #6b3f16;
  --gv-title-font: "Cinzel", Georgia, "Times New Roman", serif;
  --gv-title-color: #6b3f16;
  --gv-divider-color: #6b3f16;
  --gv-subline-color: #6b3f16;
  --gv-text-shadow: 0 1px 2px rgba(255, 255, 255, 0.22);
}

.gv-final-hero--young-voices {
  --gv-hero-rgb: 239, 78, 67;
  --gv-hero-bg: rgba(var(--gv-hero-rgb), 0.88);
  --gv-kicker-font: "Cinzel", Georgia, "Times New Roman", serif;
  --gv-kicker-weight: 500;
  --gv-kicker-color: #fff7ef;
  --gv-title-font: "Akronim", cursive;
  --gv-title-line-height: 1;
  --gv-title-weight: 400;
  --gv-title-color: #fff7ef;
  --gv-title-letter-spacing: 2px;
  --gv-title-transform: uppercase;
  --gv-divider-color: #fff7ef;
  --gv-subline-color: #fff7ef;
  --gv-text-shadow: 0 2px 4px rgba(0, 0, 0, 0.28);
  --gv-title-shadow: 0 3px 7px rgba(0, 0, 0, 0.35);
  --gv-subline-shadow: 0 2px 4px rgba(0, 0, 0, 0.32);
  --gv-divider-shadow: 0 2px 4px rgba(0, 0, 0, 0.18);
}

/* Gemeinsamer Desktop-Verlauf der drei Farb-Slider (Home-Verlauf bleibt separat) */
.gv-final-hero--musica-viva,
.gv-final-hero--inspirations,
.gv-final-hero--young-voices {
  --gv-hero-gradient: linear-gradient(
    90deg,
    rgba(var(--gv-hero-rgb), 0.94) 0%,
    rgba(var(--gv-hero-rgb), 0.86) 16%,
    rgba(var(--gv-hero-rgb), 0.58) 30%,
    rgba(var(--gv-hero-rgb), 0.24) 44%,
    rgba(var(--gv-hero-rgb), 0.06) 56%,
    rgba(var(--gv-hero-rgb), 0) 64%
  );
}

/* Slider-Anpassung fuer Desktop-Zwischenbreite (981-1250px)
   Groesse/Abstand gelten fuer alle Varianten identisch (wie Home-Referenz);
   Schrift und Farbe bleiben je Variante wie in den Variantenbloecken
   definiert. Subline-Groesse bleibt bewusst nur bei --home, da die
   Unterseiten-Varianten dafuer bereits eigene, kleinere Basiswerte haben. */
@media (max-width: 1250px) and (min-width: 981px) {
  .gv-final-hero {
    min-height: 523px;
  }

  .gv-final-hero--home .gv-final-content,
  .gv-final-hero--subpage .gv-final-content,
  .gv-final-hero--musica-viva .gv-final-content,
  .gv-final-hero--inspirations .gv-final-content,
  .gv-final-hero--young-voices .gv-final-content {
    width: 50%;
    padding-left: 55px;
    min-height: 523px;
  }

  /* Die längeren Unterseiten-Sätze erhalten in der Desktop-Zwischenbreite
     mehr Textfläche. Home bleibt unverändert; dort sind die drei Zeilen
     bewusst die visuelle Referenz. */
  .gv-final-hero--subpage .gv-final-content,
  .gv-final-hero--musica-viva .gv-final-content,
  .gv-final-hero--inspirations .gv-final-content,
  .gv-final-hero--young-voices .gv-final-content {
    width: 58%;
  }

  .gv-final-hero--home .gv-final-kicker,
  .gv-final-hero--subpage .gv-final-kicker,
  .gv-final-hero--musica-viva .gv-final-kicker,
  .gv-final-hero--inspirations .gv-final-kicker,
  .gv-final-hero--young-voices .gv-final-kicker {
    font-size: 34px;
  }

  .gv-final-hero--home .gv-final-title,
  .gv-final-hero--subpage .gv-final-title,
  .gv-final-hero--musica-viva .gv-final-title,
  .gv-final-hero--inspirations .gv-final-title,
  .gv-final-hero--young-voices .gv-final-title {
    font-size: 64px;
  }

  .gv-final-hero--home .gv-final-divider,
  .gv-final-hero--subpage .gv-final-divider,
  .gv-final-hero--musica-viva .gv-final-divider,
  .gv-final-hero--inspirations .gv-final-divider,
  .gv-final-hero--young-voices .gv-final-divider {
    width: 320px;
  }

  .gv-final-hero--home .gv-final-subline,
  .gv-final-hero--subpage .gv-final-subline,
  .gv-final-hero--musica-viva .gv-final-subline,
  .gv-final-hero--inspirations .gv-final-subline,
  .gv-final-hero--young-voices .gv-final-subline {
    margin-left: 18px;
    font-size: 46px;
  }
}

/* Slider-Anpassung fuer Tablet (767-980px)
   Groesse und Abstand sind fuer alle Varianten identisch (Home-Referenz);
   nur Schriftart (Variantenbloecke) und Hintergrundfarbe/-verlauf
   (::before je Variante ueber --gv-hero-rgb) bleiben unterschiedlich. */
@media (max-width: 980px) and (min-width: 767px) {
  /* Einheitliche Tablet-Hoehe fuer Home und alle Seiten-Slider.
     534px ist die benoetigte Hoehe der inhaltlich laengsten Variante,
     damit keine Seite durch ihren Text hoeher wird. */
  .gv-final-hero {
    min-height: 534px;
  }

  .gv-final-content {
    width: 52%;
    min-height: 534px;
    padding: 35px 0 35px 45px;
  }

  /* Wie oben: nur die längeren Unterseiten-Sätze bekommen die nötige
     Breite. So bleibt die Schriftgröße lesbar und die Sätze umbrechen nicht. */
  .gv-final-hero--subpage .gv-final-content,
  .gv-final-hero--musica-viva .gv-final-content,
  .gv-final-hero--inspirations .gv-final-content,
  .gv-final-hero--young-voices .gv-final-content {
    width: 64%;
  }

  .gv-final-kicker {
    font-size: 30px;
  }

  .gv-final-title {
    font-size: 54px;
    line-height: 1.05;
  }

  .gv-final-divider {
    width: 280px;
    margin: 12px 0 22px;
  }

  .gv-final-subline {
    margin-left: 12px;
    font-size: 38px;
    line-height: 1.05;
  }

}

/* Slider-Anpassung fuer Mobile (gilt fuer alle Varianten) */
@media (max-width: 766.98px) {
  /* Der mobile Hero besteht aus Bild plus darunterliegendem Text.
     Der Divi-Row darf hier keine feste Desktop-Hoehe behalten,
     sonst startet die nachfolgende Karten-Sektion im Textbereich. */
  body .gv-hero-section > .et_pb_row.gv-hero-row {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
  }

  /* Divi speichert den oberen Section-Abstand pro Seite einzeln; auf Home ist
     er fuer Mobil bereits auf 0 gesetzt, auf den Chor-Unterseiten fehlt das
     und der Divi-Standardwert (140px) bleibt bestehen - dadurch entsteht eine
     sichtbare Luecke zwischen Header und Hero-Bild. Zentral fuer alle Seiten
     erzwungen, damit es nicht von der einzelnen Divi-Seiteneinstellung abhaengt. */
  body .gv-hero-section {
    padding-top: 0 !important;
  }

  .gv-final-hero-wrap {
    padding: 0;
  }

  .gv-final-hero {
    width: 100%;
    min-height: 0;
    margin: 0 0 40px;
    border-radius: 0;
  }

  .gv-final-slider {
    position: relative;
    inset: auto;
    width: 100%;
    height: 310px;
  }

  .gv-final-slide {
    position: absolute;
    inset: 0;
  }

  .gv-final-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
  }

  .gv-final-hero::before {
    display: none;
  }

  .gv-final-content {
    width: 100%;
    min-height: 0;
    padding: 30px 24px 34px;
    text-align: center;
    align-items: center;
    background: var(--gv-hero-bg);
  }

  /* Papier-Textur wie bei den Chorkarten auf Home (dieselbe Datei, derselbe
     Blend-Modus) - nur hier im Mobil-Textblock ist die Akzentfarbe als
     reine Flaeche ohne Foto dahinter sichtbar; der Desktop-Verlauf zeigt
     weiterhin das Foto und bleibt bewusst unveraendert. */
  .gv-final-hero--musica-viva .gv-final-content,
  .gv-final-hero--inspirations .gv-final-content,
  .gv-final-hero--young-voices .gv-final-content {
    background-image: url("https://gv-wombach.de/wp-content/uploads/2026/04/paper-texture.jpg");
    background-size: cover;
    background-position: center;
    background-blend-mode: soft-light;
  }

  .gv-final-kicker {
    margin-bottom: 10px;
    font-size: 28px;
    line-height: 1.15;
  }

  .gv-final-title {
    margin: 0;
    font-size: 50px;
    line-height: 1.22;
    letter-spacing: -1px;
  }

  .gv-final-hero--young-voices .gv-final-title {
    line-height: 1.12;
    letter-spacing: 0.5px;
  }

  .gv-final-divider {
    width: 220px;
    height: 2px;
    margin: 22px auto 24px;
  }

  .gv-final-subline {
    margin: 0;
    font-size: 34px;
    line-height: 1.15;
    text-align: center;
  }

  .gv-final-subline span {
    display: block;
    margin-bottom: 14px;
  }

  .gv-final-subline span::after {
    content: "";
    display: block;
    width: 42px;
    height: 1px;
    margin: 12px auto 0;
    background: var(--gv-divider-color);
    opacity: 0.65;
  }

  .gv-final-subline span:last-child {
    margin-bottom: 0;
  }

  .gv-final-subline span:last-child::after {
    display: none;
  }

  /* Die drei Chor-Unterseiten wechseln hier vom farbigen Mobil-Hero in den
     dunklen "Über uns"-Bereich. Nur in diesem Bild-plus-Text-Umbruch wird
     der Übergang verdichtet; Tablet und Desktop bleiben unverändert. */
  body:has(.gv-final-hero--musica-viva) .gv-hero-section + .et_pb_section,
  body:has(.gv-final-hero--inspirations) .gv-hero-section + .et_pb_section,
  body:has(.gv-final-hero--young-voices) .gv-hero-section + .et_pb_section {
    padding-top: 40px !important;
  }

  body:has(.gv-final-hero--musica-viva) .gv-hero-section + .et_pb_section > .et_pb_row:first-child .gv-section-heading,
  body:has(.gv-final-hero--inspirations) .gv-hero-section + .et_pb_section > .et_pb_row:first-child .gv-section-heading,
  body:has(.gv-final-hero--young-voices) .gv-hero-section + .et_pb_section > .et_pb_row:first-child .gv-section-heading {
    margin-top: 0 !important;
  }
}

/* Young Voices: Das dekorative Initial bleibt neben dem gesamten ersten
   Einleitungsabsatz. So läuft keine Zeile mehr unter das "Y". */
@media (min-width: 767px) {
  body:has(.gv-final-hero--young-voices) .gv-hero-section + .et_pb_section .et_pb_text_1 > .et_pb_text_inner > p:first-child::first-letter {
    margin-bottom: 90px !important;
  }
}

/* Slider auf sehr schmalen Handys: kompaktere Hoehe, kleinere Typo */
@media (max-width: 479px) {
  .gv-final-slider {
    height: 240px;
  }

  .gv-final-content {
    padding: 26px 18px 30px;
  }

  .gv-final-kicker {
    font-size: 23px;
  }

  .gv-final-title {
    font-size: 40px;
  }

  .gv-final-divider {
    width: 180px;
    margin: 20px auto 22px;
  }

  .gv-final-subline {
    font-size: 29px;
  }
}

/* Chorleitung: Name in der Textzeile "Name - Beschreibung" in der
   Gold-Akzentfarbe der Ueberschriften hervorheben (alle drei Chor-Seiten,
   alle Breiten). Der Bindestrich direkt danach steht ausserhalb des
   Spans und bleibt deshalb in der normalen Textfarbe. */
.gv-chorleitung-name {
  color: var(--gv-gold-nav) !important;
}

/* ---------------------------------------------------------
   CHOR-UNTERSEITEN: REIHENFOLGE UMKEHREN (Tablet/Mobil)
   Gewuenschte Reihenfolge: Ueberschrift, Trenner, Bild, Text - das Bild
   sitzt im Divi-Aufbau aber in einer eigenen (verschachtelten) Spalte
   neben der Text-Spalte, nicht dazwischen. Einfaches column-reverse
   wuerde nur "Bild-Spalte" und "Text-Spalte" als Ganzes tauschen (Bild
   dann ganz ans Ende). Stattdessen loesen wir mit display:contents die
   Spalten optisch auf, sodass alle vier Module zu direkten Kindern der
   Row werden - danach kann jedes Modul einzeln per order einsortiert
   werden. Klasse liegt auf der Section (Divi Builder), auf allen drei
   Chor-Seiten identisch.
--------------------------------------------------------- */
@media (max-width: 980px) {
  .et_pb_section.gv-umdrehen-tablet-mobil > .et_pb_row {
    display: flex;
    flex-direction: column;
  }

  .et_pb_section.gv-umdrehen-tablet-mobil > .et_pb_row > .et_pb_column_4,
  .et_pb_section.gv-umdrehen-tablet-mobil > .et_pb_row > .et_pb_column_5,
  .et_pb_section.gv-umdrehen-tablet-mobil .gv-chorleitung-v2,
  .et_pb_section.gv-umdrehen-tablet-mobil .gv-chorleitung-v2 > .et_pb_column_inner {
    display: contents;
  }

  .et_pb_section.gv-umdrehen-tablet-mobil .et_pb_column_5 > .et_pb_text:first-child {
    order: 1;
  }

  .et_pb_section.gv-umdrehen-tablet-mobil .trenner.et_pb_code {
    order: 2;
  }

  .et_pb_section.gv-umdrehen-tablet-mobil .et_pb_image {
    order: 3;
  }

  .et_pb_section.gv-umdrehen-tablet-mobil .gv-chorleitung-bottom {
    order: 4;
    text-align: center;
    margin-top: 30px;
    margin-left: auto;
    margin-right: auto;
  }
}

/* Chorleitung-Ueberschrift ist mit 11 Zeichen laenger als "Aktuelles"
   (9 Zeichen) und laeuft bei Homes unveraendert grosser Schrift (55px,
   8px Buchstabenabstand) auf schmalen Handys seitlich aus dem Rahmen.
   Nur hier, nur auf dem schmalsten Breakpoint, verkleinert. */
@media (max-width: 766.98px) {
  .et_pb_section.gv-umdrehen-tablet-mobil .et_pb_column_5 > .et_pb_text:first-child h2 {
    font-size: 32px !important;
  }
}

/* === Divi-Layout-Helfer ================================== */
/* Stabilisiert Hero- und Karten-Sectionen gegen Float-/Breitenprobleme */
.gv-hero-section {
  clear: both !important;
  display: block !important;
  width: 100% !important;
}

.gv-hero-section .et_pb_row,
.gv-hero-section .et_pb_column {
  width: 100% !important;
  max-width: 100% !important;
  float: none !important;
}

.gv-card-section {
  clear: both !important;
  display: block !important;
  width: 100% !important;
}

.gv-card-section::before {
  content: "";
  display: block;
  clear: both;
}

/* === Desktop-Header: Spaltenraster (gehoert zum Header) === */
/* Steht aus Kaskadengruenden hier; symmetrische Menuespalten, Logo mittig */

/* Gleiche Innenabstaende in jeder Desktop-Breite, Logo geometrisch mittig */
@media (min-width: 981px) {
  .et-l--header .gv-header-desktop .et_pb_row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) clamp(250px, 20vw, 330px) minmax(0, 1fr);
    grid-template-areas: "left logo right";
    column-gap: clamp(16px, 2vw, 32px);
    align-items: center;
    width: min(100%, 1920px) !important;
    max-width: 1920px !important;
    margin-right: auto !important;
    margin-left: auto !important;
    padding-right: clamp(32px, 4vw, 64px) !important;
    padding-left: clamp(32px, 4vw, 64px) !important;
    box-sizing: border-box;
  }

  .et-l--header .gv-header-desktop .et_pb_column,
  .et-l--header .gv-header-desktop .et_pb_column:first-child,
  .et-l--header .gv-header-desktop .et_pb_column:last-child {
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
  }

  .et-l--header .gv-header-desktop .et_pb_column:first-child {
    justify-content: flex-start;
  }

  .et-l--header .gv-header-desktop .et_pb_column:nth-child(2) {
    justify-content: center;
  }

  .et-l--header .gv-header-desktop .et_pb_column:last-child {
    justify-content: flex-end;
  }

  .et-l--header .gv-header-desktop .et_pb_column_0_tb_header {
    grid-area: left;
    justify-self: start;
    justify-content: flex-start;
  }

  .et-l--header .gv-header-desktop .et_pb_column_1_tb_header {
    grid-area: logo;
    justify-self: center;
    justify-content: center;
  }

  .et-l--header .gv-header-desktop .et_pb_column_2_tb_header {
    grid-area: right;
    justify-self: end;
    justify-content: flex-end;
  }

  .et-l--header .gv-header-desktop .et_pb_menu {
    width: 100% !important;
    min-width: 0 !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
  }

  .et-l--header .gv-header-desktop .et_pb_column:first-child .et-menu {
    justify-content: flex-start !important;
  }

  .et-l--header .gv-header-desktop .et_pb_column:last-child .et-menu {
    justify-content: flex-end !important;
  }

  .et-l--header .gv-header-desktop .et_pb_column_0_tb_header .et-menu {
    justify-content: flex-start !important;
  }

  .et-l--header .gv-header-desktop .et_pb_column_2_tb_header .et-menu {
    justify-content: flex-end !important;
  }


  .et-l--header .gv-header-desktop .et-menu > li > a {
    white-space: nowrap;
  }

  .et-l--header .gv-header-desktop .et_pb_image {
    margin-right: auto !important;
    margin-left: auto !important;
  }
}

@media (min-width: 981px) and (max-width: 1200px) {
  .et-l--header .gv-header-desktop .et-menu > li {
    margin-right: 0.32rem;
  }

  .et-l--header .gv-header-desktop .et-menu > li > a {
    font-size: 0.94rem !important;
    letter-spacing: 0.035em !important;
    padding-right: 6px !important;
    padding-left: 6px !important;
  }
}

/* === Mobile-Nav: gv-header-mobile (gehoert zur Mobile-Nav) === */
/* Steht aus Kaskadengruenden hier; Panel, Icons, Markenkarte bis 767px */

/* Mobiles Menuepanel: dunkle Flaeche, Divi-Struktur und JS-Logik bleiben */
@media (max-width: 766.98px) {
  .et-l--header .gv-header-mobile {
    background: #20201e !important;
    background-color: #20201e !important;
    border-bottom: 0 !important;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.28) !important;
  }

  /* Hamburger unabhaengig von Divis Spaltenbreiten am rechten Rand halten. */
  .et-l--header .gv-header-mobile .et_pb_row {
    position: relative !important;
  }

  .et-l--header .gv-header-mobile .et_pb_column:first-child .et_pb_image {
    margin-right: 0 !important;
    margin-left: 0 !important;
  }

  .et-l--header .gv-header-mobile .et_pb_column:last-child {
    position: absolute !important;
    top: 0;
    bottom: 0;
    right: 12px;
    width: auto !important;
    margin: 0 !important;
    display: flex;
    align-items: center;
    transform: none !important;
  }

  .et-l--header .gv-header-mobile .et_pb_column:last-child .et_pb_menu {
    width: auto !important;
  }

  .et-l--header .gv-header-mobile .mobile_menu_bar {
    right: 12px;
  }

  .et-l--header .gv-header-mobile .et_pb_row,
  .et-l--header .gv-header-mobile .et_pb_menu {
    background: transparent !important;
    background-color: transparent !important;
  }

  .et-l--header .gv-header-mobile .et_pb_image {
    margin-bottom: 0 !important;
  }

  .et-l--header .gv-header-mobile .et_pb_image_wrap img {
    max-height: 48px !important;
  }

  .et-l--header .gv-header-mobile .et_mobile_menu {
    position: fixed !important;
    top: 93px !important;
    right: 8px !important;
    bottom: 0 !important;
    left: 8px !important;
    width: auto !important;
    max-width: none !important;
    max-height: calc(100dvh - 93px) !important;
    margin: 0 !important;
    padding: 18px 22px 26px !important;
    box-sizing: border-box !important;
    overflow-y: auto !important;
    background: var(--gv-panel-mobile) !important;
    background-color: var(--gv-panel-mobile) !important;
    border: 0 !important;
    border-radius: 26px 26px 18px 18px !important;
    box-shadow: 0 14px 30px rgba(0, 0, 0, 0.30) !important;
    scrollbar-width: thin;
    scrollbar-color: rgba(224, 153, 0, 0.55) transparent;
  }

  .et-l--header .gv-header-mobile .et_mobile_menu > li {
    border-bottom: 1px solid rgba(255, 255, 255, 0.10);
  }

  /*
  Hauptpunkte im Panel. Hinweis: "Marcellus" wird derzeit nicht importiert -
  es rendert der Georgia-Fallback. Bewusst so belassen (Optik-Referenz ist
  der Ist-Zustand); ein Import wuerde das Schriftbild aendern.
  */
  .et-l--header .gv-header-mobile .et_mobile_menu > li > a {
    min-height: 58px;
    display: flex !important;
    align-items: center;
    color: #f5f1e9 !important;
    font-family: "Marcellus", Georgia, "Times New Roman", serif !important;
    font-size: 19px !important;
    font-weight: 400;
    letter-spacing: 0 !important;
    text-transform: none !important;
    padding: 14px 54px 14px 18px !important;
  }

  .et-l--header .gv-header-mobile .et_mobile_menu > li > a:hover,
  .et-l--header .gv-header-mobile .et_mobile_menu > li > a:focus-visible,
  .et-l--header .gv-header-mobile .et_mobile_menu > li.current-menu-item > a,
  .et-l--header .gv-header-mobile .et_mobile_menu > li.current_page_item > a {
    color: var(--gv-gold-nav) !important;
    background: rgba(224, 153, 0, 0.10) !important;
    padding-left: 18px !important;
  }

  .et-l--header .gv-header-mobile .et_mobile_menu .menu-item-has-children.mobile-submenu-open {
    margin: 8px 0;
    border: 1px solid rgba(224, 153, 0, 0.36);
    border-radius: 12px;
    background: #25221d;
    box-shadow: inset 3px 0 0 var(--gv-gold-nav);
  }

  .et-l--header .gv-header-mobile .et_mobile_menu .menu-item-has-children.mobile-submenu-open > a {
    color: var(--gv-gold-nav) !important;
    background: transparent !important;
  }

  .et-l--header .gv-header-mobile .et_mobile_menu .mobile-submenu-toggle {
    top: 9px;
    right: 10px;
    width: 42px;
    height: 42px;
  }

  .et-l--header .gv-header-mobile .et_mobile_menu .mobile-submenu-toggle:before {
    color: var(--gv-gold-nav);
    font-size: 2.2em;
    line-height: 42px;
  }

  .et-l--header .gv-header-mobile .et_mobile_menu .menu-item-has-children.mobile-submenu-open > .sub-menu {
    margin: 0 12px 12px 18px !important;
    padding: 0 0 4px 14px !important;
    border: 0 !important;
    border-left: 1px solid rgba(224, 153, 0, 0.78);
    background: transparent !important;
  }

  .et-l--header .gv-header-mobile .et_mobile_menu .sub-menu li {
    border-bottom: 1px solid rgba(255, 255, 255, 0.07);
  }

  .et-l--header .gv-header-mobile .et_mobile_menu .sub-menu li:last-child {
    border-bottom: 0;
  }

  .et-l--header .gv-header-mobile .et_mobile_menu .sub-menu li a {
    display: flex !important;
    align-items: center;
    min-height: 48px;
    color: #e9e4db !important;
    font-family: "Marcellus", Georgia, "Times New Roman", serif;
    font-size: 18px !important;
    font-weight: 400;
    text-transform: none !important;
    padding: 10px 12px !important;
  }

  /* Noten-Icon (Lucide, jsdelivr-CDN) vor jedem Unterpunkt. */
  .et-l--header .gv-header-mobile .et_mobile_menu .sub-menu li a::before {
    content: "";
    width: 30px;
    height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 30px;
    margin-right: 12px;
    border: 1px solid var(--gv-gold-line-42);
    border-radius: 50%;
    background: var(--gv-gold-nav);
    font-size: 0;
    -webkit-mask: url("https://cdn.jsdelivr.net/npm/lucide-static@0.468.0/icons/music.svg") center / 17px 17px no-repeat;
    mask: url("https://cdn.jsdelivr.net/npm/lucide-static@0.468.0/icons/music.svg") center / 17px 17px no-repeat;
  }

  .et-l--header .gv-header-mobile .et_mobile_menu::after {
    content: none;
    display: none;
  }

  .et-l--header .gv-header-mobile .et_mobile_menu::before {
    content: none;
    display: none;
  }

  /*
  Brand-Karte am Panelende (Notenschluessel + Vereinsname):
  - li wird von custom.js erzeugt; Klassen gv-mobile-menu-brand/-icon/-copy
    duerfen NICHT umbenannt werden.
  */
  .et-l--header .gv-header-mobile .et_mobile_menu > li.gv-mobile-menu-brand {
    display: grid !important;
    grid-template-columns: clamp(48px, 17vw, 74px) minmax(0, 1fr);
    align-items: center;
    gap: clamp(8px, 3.3vw, 16px);
    min-height: clamp(84px, 25vw, 98px);
    margin-top: 24px;
    margin-right: -10px;
    margin-left: -10px;
    padding: clamp(8px, 3vw, 12px) clamp(10px, 4vw, 16px);
    width: calc(100% + 20px) !important;
    min-width: 0 !important;
    max-width: none !important;
    border: 1px solid rgba(224, 153, 0, 0.38) !important;
    border-radius: 12px;
    background: #2a251e !important;
    box-shadow:
      inset 18px 0 38px var(--gv-gold-line-42),
      inset 0 1px 0 rgba(255, 255, 255, 0.04);
  }

  .et-l--header .gv-header-mobile .gv-mobile-menu-brand-icon {
    width: 100%;
    height: auto;
    aspect-ratio: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(224, 153, 0, 0.44);
    border-radius: 50%;
    background: #211d17;
  }

  .et-l--header .gv-header-mobile .gv-mobile-menu-brand-icon::before {
    content: "\1D11E";
    color: var(--gv-gold-nav);
    font-family: "Segoe UI Symbol", "Noto Music", "Cambria Math", serif;
    font-size: clamp(36px, 12.4vw, 54px);
    font-weight: 400;
    line-height: 1;
    transform: translateY(-7px);
  }

  .et-l--header .gv-header-mobile .gv-mobile-menu-brand-copy {
    display: block;
    min-width: 0;
    font-family: "Marcellus", Georgia, "Times New Roman", serif;
    line-height: 1.55;
  }

  .et-l--header .gv-header-mobile .gv-mobile-menu-brand-copy strong,
  .et-l--header .gv-header-mobile .gv-mobile-menu-brand-copy span {
    display: block;
    min-width: 0;
    white-space: nowrap;
  }

  .et-l--header .gv-header-mobile .gv-mobile-menu-brand-copy strong {
    color: var(--gv-gold-nav);
    font-size: clamp(10px, 3.7vw, 16px);
    font-weight: 700;
  }

  .et-l--header .gv-header-mobile .gv-mobile-menu-brand-copy span {
    color: rgba(245, 241, 233, 0.68);
    font-size: clamp(8.4px, 3vw, 13px);
  }

  /* Bis 320px bleibt die Karte einzeilig und nutzt die Panel-Innenabstaende mit. */
  @media (max-width: 379px) {
    .et-l--header .gv-header-mobile .et_mobile_menu > li.gv-mobile-menu-brand {
      grid-template-columns: clamp(46px, 16vw, 60px) minmax(0, 1fr);
      gap: 8px;
      min-height: 78px;
      padding: 8px 10px;
    }

    .et-l--header .gv-header-mobile .gv-mobile-menu-brand-icon::before {
      font-size: clamp(34px, 12vw, 44px);
      transform: translateY(-5px);
    }

    .et-l--header .gv-header-mobile .gv-mobile-menu-brand-copy strong {
      font-size: clamp(9.6px, 3.7vw, 13px);
    }

    .et-l--header .gv-header-mobile .gv-mobile-menu-brand-copy span {
      font-size: clamp(7.8px, 2.95vw, 10.5px);
    }
  }

  /* Divis Modulregel setzt fuer das neue Menue sonst Weiss als Hintergrund. */
  body.et-db #page-container #et-boc .et-l--header .gv-header-mobile ul.et_mobile_menu {
    display: block !important;
    top: 93px !important;
    bottom: auto !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: calc(100dvh - 93px) !important;
    background: var(--gv-panel-mobile) !important;
    background-color: var(--gv-panel-mobile) !important;
  }

  body.et-db #page-container #et-boc .et-l--header .et_pb_section.gv-header-mobile {
    background: #20201e !important;
    background-color: #20201e !important;
    border-bottom: 0 !important;
  }

  body.et-db #page-container #et-boc .et-l--header .gv-header-mobile .et_mobile_menu ul {
    background: transparent !important;
    background-color: transparent !important;
  }

  body.et-db #page-container #et-boc .et-l--header .gv-header-mobile .et_mobile_menu > li,
  body.et-db #page-container #et-boc .et-l--header .gv-header-mobile .et_mobile_menu > li > a {
    background: transparent !important;
    background-color: transparent !important;
  }

  /*
  Linien-Icons (Lucide) vor den Hauptmenuepunkten:
  - SVG-Masken vom jsdelivr-CDN (extern); bei CDN-Ausfall bleibt die Flaeche leer
  - Icon je Position ueber --gv-mobile-menu-icon (s. unten)
  */
  .et-l--header .gv-header-mobile .et_mobile_menu > li > a::before {
    content: "" !important;
    width: 24px;
    height: 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 24px;
    margin-right: 14px;
    background: var(--gv-gold-nav);
    font-size: 0;
    -webkit-mask: var(--gv-mobile-menu-icon) center / contain no-repeat;
    mask: var(--gv-mobile-menu-icon) center / contain no-repeat;
  }

  .et-l--header .gv-header-mobile .et_mobile_menu > li:nth-child(1) > a {
    --gv-mobile-menu-icon: url("https://cdn.jsdelivr.net/npm/lucide-static@0.468.0/icons/house.svg");
  }

  .et-l--header .gv-header-mobile .et_mobile_menu > li:nth-child(2) > a {
    --gv-mobile-menu-icon: url("https://cdn.jsdelivr.net/npm/lucide-static@0.468.0/icons/users-round.svg");
  }

  .et-l--header .gv-header-mobile .et_mobile_menu > li:nth-child(3) > a {
    --gv-mobile-menu-icon: url("https://cdn.jsdelivr.net/npm/lucide-static@0.468.0/icons/calendar-days.svg");
  }

  .et-l--header .gv-header-mobile .et_mobile_menu > li:nth-child(4) > a {
    --gv-mobile-menu-icon: url("https://cdn.jsdelivr.net/npm/lucide-static@0.468.0/icons/badge.svg");
    position: relative;
  }

  .et-l--header .gv-header-mobile .et_mobile_menu > li:nth-child(4) > a::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 25px;
    width: 10px;
    height: 10px;
    background: var(--gv-gold-nav);
    pointer-events: none;
    transform: translateY(-50%);
    -webkit-mask: url("https://cdn.jsdelivr.net/npm/lucide-static@0.468.0/icons/heart.svg") center / contain no-repeat;
    mask: url("https://cdn.jsdelivr.net/npm/lucide-static@0.468.0/icons/heart.svg") center / contain no-repeat;
  }

  .et-l--header .gv-header-mobile .et_mobile_menu > li:nth-child(5) > a {
    --gv-mobile-menu-icon: url("https://cdn.jsdelivr.net/npm/lucide-static@0.468.0/icons/image.svg");
  }

  .et-l--header .gv-header-mobile .et_mobile_menu > li:nth-child(6) > a {
    --gv-mobile-menu-icon: url("https://cdn.jsdelivr.net/npm/lucide-static@0.468.0/icons/mail.svg");
  }
}

/* === Wellen-Uebergang ==================================== */
/* Entfernt ungewollte Linien an der oberen Section-Kante */
.gv-wave-transition {
  border-top: 0 !important;
  box-shadow: none !important;
  outline: none !important;
}

.gv-wave-transition.et_pb_top_divider {
  border-top: 0 !important;
}

.gv-wave-transition > .et_pb_top_inside_divider,
.gv-wave-transition > .et_pb_top_outside_divider {
  border-top: 0 !important;
  box-shadow: none !important;
  outline: none !important;
  top: -1px !important;
}


/* === Aktuelles =========================================== */
/* Reihenfolge, Abstaende und Ausrichtung auf Tablet und Mobil */

@media (max-width: 980px) {
  .et_pb_section.et_section_specialty.aktuelles-mobile-umdrehen > .et_pb_row {
    display: flex;
    flex-direction: column-reverse;
  }

  /* Die Ueberschrift "Aktuelles" soll auf Tablet und Handy keinen
     Divi-Standardabstand zum folgenden Inhalt erzeugen. */
  .et_pb_section.et_section_specialty.aktuelles-mobile-umdrehen .et_pb_column .et_pb_module.gv-section-heading {
    margin-bottom: 0 !important;
  }

  /* Nur die drei Informations-Blurbs dieser Aktuelles-Section zentrieren. */
  .et_pb_section.et_section_specialty.aktuelles-mobile-umdrehen > .et_pb_row > .et_pb_column_8 > .et_pb_blurb_0,
  .et_pb_section.et_section_specialty.aktuelles-mobile-umdrehen > .et_pb_row > .et_pb_column_8 > .et_pb_blurb_1,
  .et_pb_section.et_section_specialty.aktuelles-mobile-umdrehen > .et_pb_row > .et_pb_column_8 > .et_pb_blurb_2 {
    width: 350px;
    max-width: calc(100% - 40px);
    margin-left: auto;
    margin-right: auto;
  }

  .et_pb_section.et_section_specialty.aktuelles-mobile-umdrehen > .et_pb_row > .et_pb_column_8 > .et_pb_blurb_0 > .et_pb_blurb_content,
  .et_pb_section.et_section_specialty.aktuelles-mobile-umdrehen > .et_pb_row > .et_pb_column_8 > .et_pb_blurb_1 > .et_pb_blurb_content,
  .et_pb_section.et_section_specialty.aktuelles-mobile-umdrehen > .et_pb_row > .et_pb_column_8 > .et_pb_blurb_2 > .et_pb_blurb_content {
    display: table;
    width: 100%;
    margin: 0;
    text-align: left;
  }
}



/* === Sponsorenbereich ==================================== */
/* Klassen: Zeile gv-sponsors-row, Spalten gv-sponsor-col,
   Bildmodule gv-sponsor-logo (+ jeweilige Logoklasse) */

/* Grundlayout der Sponsoren-Karte */
.et_pb_row.gv-sponsors-row {
  display: flex !important;
  align-items: stretch !important;
  /* Das vergrößerte Raiffeisen-Logo darf nicht am Kartenrand abgeschnitten werden. */
  overflow: visible !important;

  width: 78% !important;
  max-width: 980px !important;
  min-height: 160px !important;

  margin-left: auto !important;
  margin-right: auto !important;
  padding: 6px 14px !important;

  background: #fff4dc !important;
  background-image: none !important;

  border: 2px solid #e0a11b !important;
  border-radius: 22px !important;

  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.24) !important;
}


/* Drei gleich grosse Bereiche */
.et_pb_row.gv-sponsors-row > .et_pb_column {
  position: relative !important;
  float: none !important;

  display: flex !important;
  flex: 1 1 0 !important;
  align-items: center !important;
  justify-content: center !important;

  width: 33.3333% !important;
  max-width: 33.3333% !important;
  min-height: 140px !important;

  margin: 0 !important;
  padding: 0 8px !important;

  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
}


/* Senkrechte Trennlinien zwischen den Logos */
.et_pb_row.gv-sponsors-row
> .et_pb_column:not(:last-child)::after {
  content: "" !important;
  display: block !important;
  position: absolute;

  top: 15%;
  right: 0;

  width: 2px;
  height: 70%;

  background: rgba(224, 161, 27, 0.82);
}


/* Alte Spaltenstyles zuruecksetzen */
.gv-sponsor-col,
.gv-sponsor-col-left,
.gv-sponsor-col-center,
.gv-sponsor-col-right {
  background: transparent !important;
  background-image: none !important;

  border: 0 !important;
  border-radius: 0 !important;
}


/* Alte Pseudoelemente früherer Varianten entfernen */
.gv-sponsor-col-left::before,
.gv-sponsor-col-left::after,
.gv-sponsor-col-center::before,
.gv-sponsor-col-center::after,
.gv-sponsor-col-right::before,
.gv-sponsor-col-right::after {
  content: none !important;
  display: none !important;
}


/* Bildmodule zentrieren */
.gv-sponsor-logo,
.et_pb_row.gv-sponsors-row > .et_pb_column > .et_pb_image,
.gv-sponsor-siegler,
.gv-sponsor-raiba,
.gv-sponsor-beck {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;

  width: 100% !important;
  height: 100% !important;

  margin: 0 !important;
  padding: 0 !important;

  text-align: center !important;
}


/* Divi-Bildwrapper */
.gv-sponsor-logo .et_pb_image_wrap,
.et_pb_row.gv-sponsors-row > .et_pb_column > .et_pb_image .et_pb_image_wrap {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;

  margin: 0 auto !important;

  line-height: 0 !important;
  transform-origin: center center !important;
}


/* Bilder proportional darstellen */
.gv-sponsor-logo img,
.et_pb_row.gv-sponsors-row > .et_pb_column > .et_pb_image img {
  display: block !important;

  width: 100% !important;
  height: auto !important;

  margin: 0 auto !important;

  object-fit: contain !important;
  transform-origin: center center !important;
}


/* Sponsoren auf Desktop (ab 981px) */
@media (min-width: 981px) {

  /* Desktop-Proportionen entsprechend der Referenz: kompakte Breite,
     luftige Hoehe und eine breitere Mittelzone fuer das Querformat-Logo. */
  .et_pb_row.gv-sponsors-row {
    width: 90% !important;
    max-width: 900px !important;
    min-height: 260px !important;
    padding: 12px 20px !important;
  }

  .et_pb_row.gv-sponsors-row > .et_pb_column {
    width: auto !important;
    max-width: none !important;
    min-height: 230px !important;
    padding: 0 18px !important;
  }

  .et_pb_row.gv-sponsors-row > .gv-sponsor-col-left,
  .et_pb_row.gv-sponsors-row > .gv-sponsor-col-right {
    flex: 1 1 0 !important;
  }

  .et_pb_row.gv-sponsors-row > .gv-sponsor-col-center {
    flex: 1.35 1 0 !important;
  }

  .et_pb_row.gv-sponsors-row
  > .et_pb_column:not(:last-child)::after {
    top: 17%;
    height: 66%;
  }

  .gv-sponsor-siegler .et_pb_image_wrap {
    width: 200px !important;
    max-width: 90% !important;
    transform: none !important;
  }

  .gv-sponsor-siegler img {
    transform: none !important;
  }


  /* Raiffeisenbank deutlich größer */
  .gv-sponsor-raiba .et_pb_image_wrap {
    width: 330px !important;
    max-width: 98% !important;
    overflow: visible !important;
    transform: none !important;
  }

  .gv-sponsor-raiba img {
    transform: none !important;
  }


  .gv-sponsor-beck .et_pb_image_wrap {
    width: 220px !important;
    max-width: 90% !important;
    transform: none !important;
  }

  .gv-sponsor-beck img {
    transform: none !important;
  }
}


/* Sponsoren auf Tablet (600-980px): drei Logos nebeneinander */
@media (min-width: 700px) and (max-width: 980px) {

  .et_pb_row.gv-sponsors-row {
    width: 92% !important;
    max-width: 800px !important;
    min-height: 190px !important;
    padding: 10px 14px !important;
  }

  .et_pb_row.gv-sponsors-row > .et_pb_column {
    width: auto !important;
    max-width: none !important;
    min-height: 170px !important;
    padding: 0 12px !important;
  }

  .et_pb_row.gv-sponsors-row > .gv-sponsor-col-left,
  .et_pb_row.gv-sponsors-row > .gv-sponsor-col-right {
    flex: 1 1 0 !important;
  }

  .et_pb_row.gv-sponsors-row > .gv-sponsor-col-center {
    flex: 1.25 1 0 !important;
  }


  .gv-sponsor-siegler .et_pb_image_wrap {
    width: 130px !important;
    max-width: 90% !important;
    transform: none !important;
  }


  .gv-sponsor-raiba .et_pb_image_wrap {
    width: 210px !important;
    max-width: 98% !important;
    overflow: visible !important;
    transform: none !important;
  }

  .gv-sponsor-raiba img {
    transform: none !important;
  }


  .gv-sponsor-beck .et_pb_image_wrap {
    width: 140px !important;
    max-width: 90% !important;
    transform: none !important;
  }
}


/* Sponsoren auf Smartphone (bis 599px): Logos untereinander */
@media (max-width: 599px) {

  .et_pb_row.gv-sponsors-row {
    display: flex !important;
    flex-direction: column !important;

    width: calc(100% - 30px) !important;
    max-width: 420px !important;
    min-height: 0 !important;

    padding: 20px 18px !important;
    border-radius: 18px !important;
  }

  .et_pb_row.gv-sponsors-row > .et_pb_column {
    width: 100% !important;
    max-width: none !important;
    min-height: 150px !important;
    padding: 12px 8px !important;
  }


  /* Trennlinien auf dem Handy waagerecht */
  .et_pb_row.gv-sponsors-row
  > .et_pb_column:not(:last-child)::after {
    top: auto;
    right: 10%;
    bottom: 0;

    width: 80%;
    height: 2px;
  }


  .gv-sponsor-siegler .et_pb_image_wrap {
    width: 140px !important;
    max-width: 85% !important;
    transform: none !important;
  }


  .gv-sponsor-raiba .et_pb_image_wrap {
    width: 220px !important;
    max-width: 85% !important;
    overflow: visible !important;
    transform: none !important;
  }

  .gv-sponsor-raiba img {
    transform: none !important;
  }


  .gv-sponsor-beck .et_pb_image_wrap {
    width: 165px !important;
    max-width: 85% !important;
    transform: none !important;
  }
}

/* === Einheitlicher vertikaler Rhythmus =================== */
/* Abschnittsabstaende: Desktop 80/120, Tablet 56/80, Handy 40/56 px */

/* Aktuelles und Verein besitzen zwischen Slider und Wellenbereich keine
   Karten-Section wie Home. Ab Tablet erhalten beide deshalb einen
   gleichwertigen, ruhigen Ausklang vor dem nächsten Abschnitt. */
@media (min-width: 767px) {
  body.page-id-244052 .gv-hero-section,
  body.page-id-244058 .gv-hero-section {
    padding-bottom: 240px !important;
  }
}

/* Aktuelles – Termine: Die Standard-Section-, Row- und Überschriftenabstände
   addierten sich nach dem vorherigen Text zu einer deutlich zu großen Lücke.
   Der Übergang erhält hier einen eigenen, zum übrigen Seitenrhythmus passenden
   Abstand; die Monatsübersicht bleibt dabei klar vom Einleitungstext getrennt. */
body.page-id-244052 #page-container .et_pb_section.et_pb_section_2 {
  padding-top: 0 !important;
}

/* Die erste Zeile in dieser Section (Ueberschrift "Termine") behaelt sonst
   Divis eigenes Standard-Row-Padding oben (ca. 27-30px), das zusammen mit
   dem Ueberschriften-Abstand die Luecke unnoetig vergroessert. */
body.page-id-244052 #page-container .et_pb_section_2 .et_pb_row_3 {
  padding-top: 0 !important;
}

body.page-id-244052 .et_pb_section_2 .gv-section-heading {
  margin-top: 28px !important;
}

body.page-id-244052 .et_pb_section_2 .et_pb_row.kalender {
  padding-top: 18px !important;
}

@media (max-width: 766.98px) {
  body.page-id-244052 .et_pb_section_2 .gv-section-heading {
    margin-top: 24px !important;
  }

  body.page-id-244052 .et_pb_section_2 .et_pb_row.kalender {
    padding-top: 16px !important;
  }
}

/* Verein – Bildzeilen "I"/"N"/"D": Die mittlere Zeile ("N") hatte ab Werk
   eine 2/5-Bild- zu 3/5-Text-Aufteilung statt der 1/2-zu-1/2-Aufteilung der
   beiden Nachbarzeilen. Dadurch wirkte ihr Bild bei jeder Breite kleiner als
   die anderen beiden – besonders auffaellig, sobald die Zeile schmaler wird.
   Angeglichen auf dieselbe 1/2-zu-1/2-Aufteilung wie "I" und "D". */
@media (min-width: 981px) {
  body.page-id-244058 #page-container .et_pb_section_1 .et_pb_row_3 > .et_pb_column_4,
  body.page-id-244058 #page-container .et_pb_section_1 .et_pb_row_3 > .et_pb_column_5 {
    width: 47.25% !important;
  }
}

/* Beim Umbruch in die einspaltige Ansicht (<=980px) behaelt die "N"-Zeile
   sonst ihre DOM-Reihenfolge Bild-vor-Text bei, waehrend "I" und "D" (Text
   zuerst im DOM) korrekt Text-dann-Bild zeigen. Per Flex-Order angeglichen. */
@media (max-width: 980px) {
  body.page-id-244058 #page-container .et_pb_section_1 .et_pb_row_3 {
    display: flex !important;
    flex-direction: column !important;
  }

  body.page-id-244058 #page-container .et_pb_section_1 .et_pb_row_3 > .et_pb_column_5 {
    order: 1;
  }

  body.page-id-244058 #page-container .et_pb_section_1 .et_pb_row_3 > .et_pb_column_4 {
    order: 2;
  }
}

/* Verein – Vorstandschaft: Die vier Karten (Bild, Name, Amt, E-Mail) behalten
   auf jeder Fensterbreite exakt dieselbe feste Groesse (300px) – sie wachsen
   auf grossen Monitoren nicht und schrumpfen beim Verschmaelern nicht. Statt
   Divis prozentualer Spaltenbreite laeuft die Zeile als CSS-Grid mit fester
   Kartenbreite und einer je Breite fest vorgegebenen Spaltenzahl (4 -> 2 -> 1),
   damit beim Umbruch immer ein sauberes Raster entsteht statt einer
   ungleichmaessigen 3+1-Aufteilung, wie es freies Zeilenumbrechen (flex-wrap)
   ergeben wuerde. */
body.page-id-244058 #page-container .et_pb_row_6.et_pb_row_4col {
  display: grid !important;
  grid-template-columns: repeat(1, 300px) !important;
  justify-content: center !important;
  gap: 32px !important;
}

@media (min-width: 767px) {
  body.page-id-244058 #page-container .et_pb_row_6.et_pb_row_4col {
    grid-template-columns: repeat(2, 300px) !important;
  }
}

@media (min-width: 1470px) {
  body.page-id-244058 #page-container .et_pb_row_6.et_pb_row_4col {
    grid-template-columns: repeat(4, 300px) !important;
  }
}

body.page-id-244058 #page-container .et_pb_row_6.et_pb_row_4col > .gv-vorstand-card {
  width: 300px !important;
  margin: 0 !important;
}

/* Divis eigener Clearfix (::after mit content:"" und display:block) wird im
   Grid-Kontext selbst zu einem unsichtbaren fuenften Grid-Element. Da Divi
   den echten Spalten per order:1 einen hoeheren Order-Wert gibt, rutscht
   dieses unsichtbare Element vor die erste Karte und verschiebt dadurch alle
   vier Karten um einen Rasterplatz – die vierte faellt in eine neue Zeile.
   Im Grid wird kein Clearfix benoetigt, daher wird das Pseudo-Element hier
   komplett deaktiviert. */
body.page-id-244058 #page-container .et_pb_row_6.et_pb_row_4col::after {
  display: none !important;
}

/* Galerie – Jahres-Karten (2025, 2024, ...): Gleiches Prinzip wie bei der
   Vorstandschaft auf der Verein-Seite: feste 300px-Kartengroesse, die weder
   auf grossen Monitoren waechst noch beim Verschmaelern schrumpft, mit
   sauberem Spaltenumbruch 4 -> 2 -> 1. Der Selektor haengt hier bewusst NICHT
   an einer festen Zeilennummer (".et_pb_row_1"), sondern nur an der Klasse
   ".et_pb_row_4col" – dadurch greift die Regel automatisch auch auf weitere
   Jahres-Zeilen, die der Kunde spaeter per Duplizieren der ersten Zeile
   hinzufuegt (z.B. 2021-2018 als zweite Zeile), ohne dass hierfuer neues CSS
   noetig ist. Jede Zeile bricht unabhaengig von den anderen um, wodurch die
   Lesereihenfolge (neuestes Jahr oben, absteigend nach unten) in jeder
   Bildschirmgroesse automatisch erhalten bleibt. */
body.page-id-244073 #page-container .et_pb_row_4col {
  display: grid !important;
  grid-template-columns: repeat(1, 300px) !important;
  justify-content: center !important;
  gap: 32px !important;
}

@media (min-width: 767px) {
  body.page-id-244073 #page-container .et_pb_row_4col {
    grid-template-columns: repeat(2, 300px) !important;
  }
}

@media (min-width: 1470px) {
  body.page-id-244073 #page-container .et_pb_row_4col {
    grid-template-columns: repeat(4, 300px) !important;
  }
}

body.page-id-244073 #page-container .et_pb_row_4col > .gv-vorstand-card {
  width: 300px !important;
  margin: 0 !important;
}

body.page-id-244073 #page-container .et_pb_row_4col::after {
  display: none !important;
}

/* Kontakt – Formular-Spalte: Die linke Spalte (.gv-contact-left) hat ein
   festes 55px Padding-Right, das auf Desktop den Abstand zur rechten Spalte
   erzeugt. Sobald die Zeile im mobilen Bereich einspaltig stapelt, frisst
   dieses feste Padding rechts von Name/E-Mail/Nachricht-Feldern sichtbar
   Platz weg (Formular reicht nicht bis zum rechten Rand wie links). Nur im
   mobilen Bereich entfernt, damit das Formular wieder volle Breite nutzt. */
@media (max-width: 766.98px) {
  body.page-id-244070 #page-container .gv-contact-card .gv-contact-left {
    padding-right: 0 !important;
  }
}

/* Verein – "Gemeinsam für unseren Verein": Divi setzt fuer den Notenschluessel
   `.et_pb_image_7{max-width:25%}` relativ zur Spaltenbreite. Auf Desktop ist
   die Icon-Spalte nur ~203px breit, das Icon rendert also dezent bei ~51px.
   Sobald die Spalte unter 980px auf 100% Zeilenbreite springt (Divi stapelt
   diese Zeile ab hier einspaltig), greifen die 25% nicht mehr, da das Bild
   nur 120px Originalbreite hat – es rendert in nativer Groesse 120x300px und
   wirkt gegenueber dem Text ueberdimensioniert. Zusaetzlich bleibt die
   goldene Trennlinie der Icon-Spalte (`.et_pb_column_16{border-right}`, fuer
   die Desktop-Nebeneinander-Anordnung gedacht) nach dem Umbruch als frei
   schwebende Linie neben dem Bild stehen. Ausserdem ist der Text (Ueberschrift
   + drei Absaetze) linksbuendig, waehrend das Icon per Divi-eigener Regel
   (`.et_pb_image_7.et_pb_module{margin:auto}`) zentriert ist – im gestapelten
   Zustand wirkt das unausgewogen. Die drei Absaetze haben zudem je 17px
   Padding-Bottom (Divis Standard-Absatzabstand), was zusammen mit dem
   1.8em-Zeilenabstand wie zerrissener Text mit grossen Luecken aussieht.
   Alles hier fuer die gestapelte Ansicht (<=980px) angeglichen: kleineres,
   zentriertes Icon, zentrierter Text, engerer Absatzabstand. */
@media (max-width: 980px) {
  body.page-id-244058 #page-container .et_pb_row_9 .et_pb_image_7 {
    max-width: 56px !important;
  }

  body.page-id-244058 #page-container .et_pb_column_16 {
    border-right: none !important;
  }

  body.page-id-244058 #page-container .et_pb_row_9 .et_pb_text_20 {
    text-align: center !important;
  }

  body.page-id-244058 #page-container .et_pb_row_9 .et_pb_text_20 .et_pb_text_inner p {
    padding-bottom: 6px !important;
  }
}

/* Aktuelles – Monatskalender: Die vier Desktop-Spalten bleiben auf großen
   Bildschirmen erhalten. Ab 1100 px werden die Monate als gut lesbares
   Zweispalten-Raster und unter 600 px als klare Einspalten-Liste geführt. */
@media (min-width: 600px) and (max-width: 1100px) {
  body.page-id-244052 #page-container .et_pb_row.kalender {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start !important;
    gap: 48px 56px;
    width: 86% !important;
    max-width: 1040px !important;
    padding: 18px 0 0 !important;
  }

  body.page-id-244052 #page-container .et_pb_row.kalender > .et_pb_column.gv-termin-card {
    float: none !important;
    width: auto !important;
    margin: 0 !important;
  }

  /* Divi verkleinert Blurb-Titel ab seinem Tablet-Breakpoint pauschal.
     Die Monatsnamen bleiben im zweispaltigen Kalender bewusst in ihrer
     Desktop-Größe und wirken dadurch weiterhin als klare Abschnittstitel. */
  body.page-id-244052 #page-container .et_pb_row.kalender .gv-termin-card .et_pb_module_header {
    font-size: 31px !important;
    line-height: 1.4 !important;
  }

  body.page-id-244052 #page-container .et_pb_row.kalender .gv-termin-card > .et_pb_text {
    border-top-width: 2px !important;
    margin-top: 20px !important;
    padding-top: 18px !important;
  }
}

@media (min-width: 600px) and (max-width: 699.98px) {
  body.page-id-244052 #page-container .et_pb_row.et_pb_row_1-4_1-2_1-4 {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr);
    justify-items: center;
    gap: 20px;
    width: 86% !important;
    max-width: 520px !important;
    padding: 32px 28px !important;
  }

  body.page-id-244052 #page-container .et_pb_row.et_pb_row_1-4_1-2_1-4 > .et_pb_column {
    width: auto !important;
    margin: 0 !important;
  }

  body.page-id-244052 #page-container .et_pb_row.et_pb_row_1-4_1-2_1-4 > .et_pb_column_5 {
    width: 220px !important;
  }

  body.page-id-244052 #page-container .et_pb_row.et_pb_row_1-4_1-2_1-4 > .et_pb_column_6 {
    width: 100% !important;
    max-width: 100%;
    justify-self: stretch;
    text-align: center;
  }

  body.page-id-244052 #page-container .et_pb_row.et_pb_row_1-4_1-2_1-4 > .et_pb_column_6 .et_pb_blurb,
  body.page-id-244052 #page-container .et_pb_row.et_pb_row_1-4_1-2_1-4 > .et_pb_column_6 .et_pb_blurb_content,
  body.page-id-244052 #page-container .et_pb_row.et_pb_row_1-4_1-2_1-4 > .et_pb_column_6 .et_pb_blurb_container {
    display: block !important;
    width: 100% !important;
    padding: 0 !important;
    text-align: center;
  }

  body.page-id-244052 #page-container .et_pb_row.et_pb_row_1-4_1-2_1-4 > .et_pb_column_6 .et_pb_module_header {
    font-size: 22px !important;
    line-height: 1.3 !important;
  }

  body.page-id-244052 #page-container .et_pb_row.et_pb_row_1-4_1-2_1-4 > .et_pb_column_7 {
    justify-self: center;
  }
}

@media (max-width: 599.98px) {
  body.page-id-244052 #page-container .et_pb_row.kalender {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr);
    align-items: start !important;
    gap: 42px;
    width: 86% !important;
    max-width: 520px !important;
    padding: 16px 0 0 !important;
  }

  body.page-id-244052 #page-container .et_pb_row.kalender > .et_pb_column.gv-termin-card {
    float: none !important;
    width: auto !important;
    margin: 0 !important;
  }

  body.page-id-244052 #page-container .et_pb_row.kalender .gv-termin-card .et_pb_module_header {
    font-size: 31px !important;
    line-height: 1.4 !important;
  }

  body.page-id-244052 #page-container .et_pb_row.kalender .gv-termin-card > .et_pb_text {
    border-top-width: 2px !important;
    margin-top: 18px !important;
    padding-top: 16px !important;
  }
}

/* Aktuelles – PDF-Download: Die Karte bleibt kompakt, die drei Inhalte
   bekommen jedoch feste, für Titel, Motiv und Button passende Bereiche. */
@media (min-width: 1200px) {
  body.page-id-244052 #page-container .et_pb_row.et_pb_row_1-4_1-2_1-4 {
    display: grid !important;
    grid-template-columns: 280px minmax(0, 1fr) 230px;
    align-items: center !important;
    gap: 42px;
    width: 90% !important;
    max-width: 1280px !important;
  }

  body.page-id-244052 #page-container .et_pb_row.et_pb_row_1-4_1-2_1-4 > .et_pb_column {
    width: auto !important;
    margin: 0 !important;
  }

  body.page-id-244052 #page-container .et_pb_row.et_pb_row_1-4_1-2_1-4 > .et_pb_column_5 {
    grid-column: 1;
  }

  body.page-id-244052 #page-container .et_pb_row.et_pb_row_1-4_1-2_1-4 > .et_pb_column_6 {
    grid-column: 2;
  }

  body.page-id-244052 #page-container .et_pb_row.et_pb_row_1-4_1-2_1-4 > .et_pb_column_7 {
    grid-column: 3;
  }
}

@media (min-width: 1200px) and (max-width: 1399.98px) {
  body.page-id-244052 #page-container .et_pb_row.et_pb_row_1-4_1-2_1-4 {
    grid-template-columns: 250px minmax(0, 1fr) 210px;
    gap: 28px;
  }

  body.page-id-244052 #page-container .et_pb_row.et_pb_row_1-4_1-2_1-4 > .et_pb_column {
    transform: translateY(-14px);
  }
}

@media (min-width: 1400px) {
  body.page-id-244052 #page-container .et_pb_row.et_pb_row_1-4_1-2_1-4 > .et_pb_column {
    transform: translateY(-21px);
  }
}

/* Tablet und Handy: Ein klarer, vertikaler Download-Block statt eng
   zusammengedrückter Spalten – Motiv, Text und Aktion folgen nacheinander. */
@media (min-width: 700px) and (max-width: 980px) {
  body.page-id-244052 #page-container .et_pb_row.et_pb_row_1-4_1-2_1-4 {
    position: relative;
    display: grid !important;
    grid-template-columns: 200px minmax(0, 1fr);
    align-items: center !important;
    gap: 18px 34px;
    width: 86% !important;
    max-width: 720px !important;
    padding: 96px 40px 30px !important;
  }

  body.page-id-244052 #page-container .et_pb_row.et_pb_row_1-4_1-2_1-4 > .et_pb_column {
    width: auto !important;
    margin: 0 !important;
  }

  body.page-id-244052 #page-container .et_pb_row.et_pb_row_1-4_1-2_1-4 > .et_pb_column_5 {
    grid-column: 1;
    grid-row: 1 / span 2;
    width: 200px !important;
  }

  body.page-id-244052 #page-container .et_pb_row.et_pb_row_1-4_1-2_1-4 > .et_pb_column_6 {
    position: static !important;
    grid-column: 2;
    grid-row: 1;
    max-width: 100%;
    text-align: left;
  }

  body.page-id-244052 #page-container .et_pb_row.et_pb_row_1-4_1-2_1-4 > .et_pb_column_6 .et_pb_blurb_container {
    text-align: left;
  }

  body.page-id-244052 #page-container .et_pb_row.et_pb_row_1-4_1-2_1-4 > .et_pb_column_6 .et_pb_blurb,
  body.page-id-244052 #page-container .et_pb_row.et_pb_row_1-4_1-2_1-4 > .et_pb_column_6 .et_pb_blurb_content {
    position: static !important;
  }

  body.page-id-244052 #page-container .et_pb_row.et_pb_row_1-4_1-2_1-4 > .et_pb_column_6 .et_pb_module_header {
    position: absolute;
    top: 30px;
    right: 40px;
    left: 40px;
    margin: 0 !important;
    color: #e09900 !important;
    font-size: clamp(20px, 2.65vw, 26px) !important;
    line-height: 1.25 !important;
    text-align: center;
    white-space: nowrap;
  }

  body.page-id-244052 #page-container .et_pb_row.et_pb_row_1-4_1-2_1-4 > .et_pb_column_7 {
    grid-column: 2;
    grid-row: 2;
    justify-self: start;
  }
}

/* Von 700 bis 980 px bekommt das PDF-Motiv eine starke eigene Bühne rechts.
   Titel, Beschreibung und Download-Aktion bilden links einen ruhigen Block. */
@media (min-width: 700px) and (max-width: 980px) {
  body.page-id-244052 #page-container .et_pb_row.et_pb_row_1-4_1-2_1-4 {
    grid-template-columns: minmax(0, 1fr) 280px;
    gap: 18px 34px;
    max-width: 820px !important;
  }

  body.page-id-244052 #page-container .et_pb_row.et_pb_row_1-4_1-2_1-4 > .et_pb_column_5 {
    grid-column: 2;
    grid-row: 1 / span 2;
    width: 280px !important;
  }

  body.page-id-244052 #page-container .et_pb_row.et_pb_row_1-4_1-2_1-4 > .et_pb_column_6 {
    grid-column: 1;
    grid-row: 1;
  }

  body.page-id-244052 #page-container .et_pb_row.et_pb_row_1-4_1-2_1-4 > .et_pb_column_6 .et_pb_module_header {
    font-size: clamp(20px, 2.65vw, 26px) !important;
  }

  body.page-id-244052 #page-container .et_pb_row.et_pb_row_1-4_1-2_1-4 > .et_pb_column_7 {
    grid-column: 1;
    grid-row: 2;
    justify-self: start;
  }
}

@media (max-width: 599.98px) {
  body.page-id-244052 #page-container .et_pb_row.et_pb_row_1-4_1-2_1-4 {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr);
    justify-items: center;
    gap: 30px;
    width: 86% !important;
    max-width: 460px !important;
    padding: 26px 20px 22px !important;
  }

  body.page-id-244052 #page-container .et_pb_row.et_pb_row_1-4_1-2_1-4 > .et_pb_column {
    width: auto !important;
    margin: 0 !important;
  }

  body.page-id-244052 #page-container .et_pb_row.et_pb_row_1-4_1-2_1-4 > .et_pb_column_5 {
    width: 180px !important;
  }

  body.page-id-244052 #page-container .et_pb_row.et_pb_row_1-4_1-2_1-4 > .et_pb_column_6 {
    width: 100% !important;
    max-width: 100%;
    justify-self: stretch;
    text-align: center;
  }

  body.page-id-244052 #page-container .et_pb_row.et_pb_row_1-4_1-2_1-4 > .et_pb_column_6 .et_pb_blurb,
  body.page-id-244052 #page-container .et_pb_row.et_pb_row_1-4_1-2_1-4 > .et_pb_column_6 .et_pb_blurb_content,
  body.page-id-244052 #page-container .et_pb_row.et_pb_row_1-4_1-2_1-4 > .et_pb_column_6 .et_pb_blurb_container {
    display: block !important;
    width: 100% !important;
    padding: 0 !important;
    text-align: center;
  }

  body.page-id-244052 #page-container .et_pb_row.et_pb_row_1-4_1-2_1-4 > .et_pb_column_6 .et_pb_module_header {
    font-size: clamp(18px, 5vw, 20px) !important;
    line-height: 1.2 !important;
    width: 100% !important;
    text-align: center;
  }

  body.page-id-244052 #page-container .et_pb_row.et_pb_row_1-4_1-2_1-4 > .et_pb_column_7 {
    justify-self: center;
    padding-top: 0 !important;
  }
}

/* Im schmalen Desktop-Bereich bleibt das PDF-Motiv groß. Der Button rückt
   unter den Text, damit Überschrift und Beschreibung nicht gequetscht sind. */
@media (min-width: 981px) and (max-width: 1199.98px) {
  body.page-id-244052 #page-container .et_pb_row.et_pb_row_1-4_1-2_1-4 {
    display: grid !important;
    grid-template-columns: 240px minmax(0, 1fr);
    align-items: center !important;
    gap: 22px 34px;
    width: 90% !important;
  }

  body.page-id-244052 #page-container .et_pb_row.et_pb_row_1-4_1-2_1-4 > .et_pb_column {
    width: auto !important;
    margin: 0 !important;
  }

  body.page-id-244052 #page-container .et_pb_row.et_pb_row_1-4_1-2_1-4 > .et_pb_column_5 {
    grid-column: 1;
    grid-row: 1 / span 2;
  }

  body.page-id-244052 #page-container .et_pb_row.et_pb_row_1-4_1-2_1-4 > .et_pb_column_6 {
    grid-column: 2;
    grid-row: 1;
  }

  body.page-id-244052 #page-container .et_pb_row.et_pb_row_1-4_1-2_1-4 > .et_pb_column_7 {
    grid-column: 2;
    grid-row: 2;
    justify-self: start;
  }
}

@media (min-width: 981px) {
  .gv-hero-section {
    padding-bottom: 80px !important;
  }

  .gv-card-section {
    padding-top: 80px !important;
    padding-bottom: 40px !important;
  }

  body .et_pb_section.gv-card-section > .et_pb_row {
    margin-top: 84px !important;
    margin-bottom: 40px !important;
  }

  .gv-wave-transition {
    padding-bottom: 80px !important;
  }

  body .gv-choirs-section,
  body .gv-wave-transition + .et_pb_section {
    padding-top: 40px !important;
    padding-bottom: 80px !important;
  }

  .aktuelles-mobile-umdrehen {
    padding-top: 40px !important;
    padding-bottom: 80px !important;
  }

  .et_pb_section:has(.gv-sponsors-row) {
    padding-bottom: 120px !important;
  }
}

@media (min-width: 600px) and (max-width: 980px) {
  .gv-hero-section {
    padding-bottom: 56px !important;
  }

  .gv-card-section {
    padding-top: 56px !important;
    padding-bottom: 24px !important;
  }

  body .et_pb_section.gv-card-section > .et_pb_row {
    margin-top: 56px !important;
    margin-bottom: 32px !important;
  }

  .gv-wave-transition {
    padding-bottom: 40px !important;
  }

  body .gv-choirs-section,
  body .gv-wave-transition + .et_pb_section {
    padding-top: 40px !important;
    padding-bottom: 56px !important;
  }

  .aktuelles-mobile-umdrehen {
    /* Match the top spacing used by the About section. */
    padding-top: 40px !important;
    padding-bottom: 56px !important;
  }

  .et_pb_section:has(.gv-sponsors-row) {
    padding-bottom: 80px !important;
  }
}

@media (max-width: 599px) {
  .gv-hero-section {
    padding-bottom: 40px !important;
  }

  .gv-card-section {
    padding-top: 40px !important;
    padding-bottom: 16px !important;
  }

  body .et_pb_section.gv-card-section > .et_pb_row {
    margin-top: 120px !important;
    margin-bottom: 24px !important;
  }

  .gv-wave-transition {
    padding-bottom: 24px !important;
  }

  body .gv-choirs-section,
  body .gv-wave-transition + .et_pb_section {
    padding-top: 32px !important;
    padding-bottom: 40px !important;
  }

  .aktuelles-mobile-umdrehen {
    padding-top: 16px !important;
    padding-bottom: 40px !important;
  }

  .et_pb_section:has(.gv-sponsors-row) {
    padding-bottom: 56px !important;
  }
}

/* === Chor-Karten ========================================= */
/* Kompakte Teaser fuer Tablet und Handy; Farben/Schriften bleiben */
@media (max-width: 980px) {
  .gv-card-section {
    background: #2d3541 !important;
  }

  body .gv-card-section > .et_pb_row.et_pb_row_1 {
    display: flex !important;
    flex-direction: column !important;
    gap: 20px;
    width: min(92%, 800px) !important;
    max-width: 800px !important;
    margin-right: auto !important;
    margin-left: auto !important;
  }

  body .gv-card-section > .et_pb_row.et_pb_row_1 > .et_pb_column {
    display: grid !important;
    grid-template-columns: 172px minmax(0, 1fr) auto;
    grid-template-rows: auto auto;
    grid-template-areas:
      "symbol title button"
      "symbol text button";
    align-items: center;
    width: 100% !important;
    min-height: 178px !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden;
    background: #454a53 !important;
    border-radius: 18px !important;
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.2);
  }

  body .gv-card-section > .et_pb_row.et_pb_row_1 > .et_pb_column > .et_pb_image {
    grid-area: symbol;
    display: flex !important;
    align-self: stretch;
    align-items: center;
    justify-content: center;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 18px !important;
    background-image: url("https://gv-wombach.de/wp-content/uploads/2026/04/paper-texture.jpg") !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
    background-size: cover !important;
    box-sizing: border-box;
  }

  body #page-container .gv-card-section > .et_pb_row.et_pb_row_1 > .et_pb_column > .et_pb_image {
    width: 100% !important;
    max-width: none !important;
    justify-self: stretch;
  }

  body .gv-card-section > .et_pb_row.et_pb_row_1 > .et_pb_column_1 > .et_pb_image { background-color: #fcdc3c !important; background-blend-mode: soft-light; }
  body .gv-card-section > .et_pb_row.et_pb_row_1 > .et_pb_column_2 > .et_pb_image { background-color: #f29130 !important; background-blend-mode: soft-light; }
  body .gv-card-section > .et_pb_row.et_pb_row_1 > .et_pb_column_3 > .et_pb_image { background-color: #ef4e43 !important; background-blend-mode: soft-light; }

  body .gv-card-section > .et_pb_row.et_pb_row_1 > .et_pb_column > .et_pb_image .et_pb_image_wrap,
  body .gv-card-section > .et_pb_row.et_pb_row_1 > .et_pb_column > .et_pb_image img {
    display: block;
    width: min(130px, 82%) !important;
    max-width: 130px !important;
    height: auto !important;
    margin: 0 auto !important;
  }

  body #page-container .gv-card-section > .et_pb_row.et_pb_row_1 > .et_pb_column > .et_pb_image img {
    transform: scale(1.3);
    transform-origin: center;
  }

  body .gv-card-section > .et_pb_row.et_pb_row_1 > .et_pb_column > .et_pb_text:nth-child(2) {
    grid-area: title;
    align-self: end;
    margin: 0 !important;
    padding: 18px 18px 3px 24px !important;
    text-align: left !important;
  }

  body .gv-card-section > .et_pb_row.et_pb_row_1 > .et_pb_column > .et_pb_text:nth-child(2) :is(h1, h2, h3, h4, h5, h6, p) {
    margin: 0 !important;
    color: #e09900 !important;
    font-size: clamp(24px, 3.7vw, 32px) !important;
    line-height: 1.05 !important;
  }

  body .gv-card-section > .et_pb_row.et_pb_row_1 > .et_pb_column > .et_pb_text:nth-child(3) {
    grid-area: text;
    align-self: start;
    margin: 0 !important;
    padding: 3px 18px 18px 24px !important;
    text-align: left !important;
  }

  body .gv-card-section > .et_pb_row.et_pb_row_1 > .et_pb_column > .et_pb_text:nth-child(3) :is(p, h1, h2, h3, h4, h5, h6) {
    margin: 0 !important;
    color: #f7efe3 !important;
    font-size: 16px !important;
    line-height: 1.45 !important;
  }

  body .gv-card-section > .et_pb_row.et_pb_row_1 > .et_pb_column > .et_pb_button_module_wrapper {
    grid-area: button;
    justify-self: end;
    align-self: center;
    margin: 0 !important;
    padding: 0 22px 0 16px !important;
    width: auto !important;
    max-width: none !important;
  }

  body .gv-card-section > .et_pb_row.et_pb_row_1 > .et_pb_column .et_pb_button {
    display: inline-block !important;
    padding: 10px 15px !important;
    border: 1px solid currentColor !important;
    border-radius: 999px !important;
    background: transparent !important;
    box-shadow: none !important;
    font-size: 12px !important;
    line-height: 1.1 !important;
    white-space: nowrap;
  }

  body #page-container .gv-card-section > .et_pb_row.et_pb_row_1 > .et_pb_column .et_pb_button { color: #e09900 !important; }
}

@media (max-width: 599px) {
  body .gv-card-section > .et_pb_row.et_pb_row_1 {
    gap: 16px;
    width: calc(100% - 32px) !important;
    margin-top: 120px !important;
  }

  body .gv-card-section > .et_pb_row.et_pb_row_1 > .et_pb_column {
    grid-template-columns: 104px minmax(0, 1fr);
    grid-template-rows: auto minmax(0, 1fr) auto;
    grid-template-areas:
      "symbol title"
      "symbol text"
      "symbol button";
    min-height: 164px !important;
    border-radius: 15px !important;
  }

  body .gv-card-section > .et_pb_row.et_pb_row_1 > .et_pb_column > .et_pb_image {
    padding: 12px !important;
  }

  body .gv-card-section > .et_pb_row.et_pb_row_1 > .et_pb_column > .et_pb_image .et_pb_image_wrap,
  body .gv-card-section > .et_pb_row.et_pb_row_1 > .et_pb_column > .et_pb_image img {
    width: min(90px, 90%) !important;
    max-width: 90px !important;
  }

  body #page-container .gv-card-section > .et_pb_row.et_pb_row_1 > .et_pb_column > .et_pb_image img {
    transform: scale(1.18);
  }

  body .gv-card-section > .et_pb_row.et_pb_row_1 > .et_pb_column > .et_pb_text:nth-child(2) {
    align-self: end;
    padding: 15px 16px 2px 17px !important;
  }

  body .gv-card-section > .et_pb_row.et_pb_row_1 > .et_pb_column > .et_pb_text:nth-child(2) :is(h1, h2, h3, h4, h5, h6, p) {
    font-size: clamp(21px, 6.2vw, 27px) !important;
  }

  body .gv-card-section > .et_pb_row.et_pb_row_1 > .et_pb_column > .et_pb_text:nth-child(3) {
    padding: 2px 16px 18px 17px !important;
  }

  body .gv-card-section > .et_pb_row.et_pb_row_1 > .et_pb_column > .et_pb_text:nth-child(3) :is(p, h1, h2, h3, h4, h5, h6) {
    font-size: 14px !important;
    line-height: 1.38 !important;
  }

  body .gv-card-section > .et_pb_row.et_pb_row_1 > .et_pb_column > .et_pb_button_module_wrapper {
    justify-self: start;
    align-self: start;
    padding: 0 16px 15px 17px !important;
  }

  body .gv-card-section > .et_pb_row.et_pb_row_1 > .et_pb_column .et_pb_button {
    padding: 8px 12px !important;
    font-size: 11px !important;
  }
}

/* Schmales Tablet: Der Button erhaelt wie auf dem Handy eine eigene
   Zeile unter dem Text. Dadurch bleiben Titel und Beschreibung luftig. */
@media (min-width: 600px) and (max-width: 848px) {
  body .gv-card-section > .et_pb_row.et_pb_row_1 > .et_pb_column {
    grid-template-columns: 150px minmax(0, 1fr);
    grid-template-rows: auto minmax(0, 1fr) auto;
    grid-template-areas:
      "symbol title"
      "symbol text"
      "symbol button";
    min-height: 196px !important;
  }

  body .gv-card-section > .et_pb_row.et_pb_row_1 > .et_pb_column > .et_pb_text:nth-child(2) {
    padding: 18px 22px 3px 22px !important;
  }

  body .gv-card-section > .et_pb_row.et_pb_row_1 > .et_pb_column > .et_pb_text:nth-child(3) {
    padding: 3px 22px 8px 22px !important;
  }

  body .gv-card-section > .et_pb_row.et_pb_row_1 > .et_pb_column > .et_pb_button_module_wrapper {
    justify-self: start;
    align-self: start;
    padding: 0 22px 18px !important;
  }
}

/* Tablet: "Aktuelles" folgt derselben Überschriftenhierarchie wie die
   übrigen Bereichsüberschriften. Die Desktop-Größe bleibt unverändert. */
@media (min-width: 600px) and (max-width: 980px) {
  body .et_pb_section.aktuelles-mobile-umdrehen .gv-section-heading h2 {
    font-size: 50px !important;
    line-height: 1.05 !important;
  }
}

/* Tablet rhythm: keep the visual space between the three following
   sections consistent, without carrying the large Divi title margins. */
@media (min-width: 600px) and (max-width: 980px) {
  body .et_pb_section.aktuelles-mobile-umdrehen {
    padding-top: 56px !important;
  }

  body .gv-wave-transition + .et_pb_section .gv-section-heading {
    margin-top: 56px !important;
  }

  body .et_pb_section:has(.gv-sponsors-row) .gv-section-heading {
    margin-top: 26px !important;
  }

  /* The specialty/gallery column otherwise adds an invisible 30px tail
     after the final visible Aktuelles image. */
  body .et_pb_section.aktuelles-mobile-umdrehen > .et_pb_row > .et_pb_column_7 {
    margin-bottom: 0 !important;
  }
}

/* 766px still belongs to the mobile layout, so Aktuelles uses the same
   heading step as the other mobile sections. */
@media (min-width: 600px) and (max-width: 766.98px) {
  body .et_pb_section.aktuelles-mobile-umdrehen .gv-section-heading h2 {
    font-size: 35px !important;
    line-height: 1.1 !important;
  }
}

/* Phone rhythm: do not fall back to Divi's larger default gaps at 599px.
   Every section heading shares the same compact mobile scale. */
@media (max-width: 599.98px) {
  body .et_pb_section.aktuelles-mobile-umdrehen {
    padding-top: 56px !important;
    padding-bottom: 0 !important;
  }

  body .gv-wave-transition + .et_pb_section {
    padding-bottom: 40px !important;
  }

  body .et_pb_section.aktuelles-mobile-umdrehen > .et_pb_row > .et_pb_column_7 {
    margin-bottom: 0 !important;
  }

  body .et_pb_section:has(.gv-sponsors-row) .gv-section-heading {
    margin-top: 66px !important;
  }

  body .et_pb_section.aktuelles-mobile-umdrehen .gv-section-heading h2 {
    font-size: 35px !important;
    line-height: 1.1 !important;
  }
}

/* Narrow phones need a touch more breathing room before Aktuelles. */
@media (max-width: 379.98px) {
  body .et_pb_section.aktuelles-mobile-umdrehen {
    padding-top: 72px !important;
  }
}

/* The mobile and tablet header ranges meet at 767 px.  Divi otherwise
   renders all header templates at that exact width, which pushes the hero
   down and makes the following cards appear to overlap it. */
@media (max-width: 766.98px) {
  body .et-l--header .et_pb_section.gv-header-desktop,
  body .et-l--header .et_pb_section.gv-header-tablet {
    display: none !important;
  }

  body .et-l--header .et_pb_section.gv-header-mobile {
    display: block !important;
  }
}

/* 600–766 px nutzt bereits den hohen mobilen Hero (Bild plus Text).
   Deshalb braucht die Karten-Sektion hier keinen zweiten grossen Startabstand. */
@media (max-width: 766.98px) {
  body #page-container .gv-hero-section {
    padding-bottom: 56px !important;
  }

  /* Das Video oberhalb von "Über Uns" darf im mobilen Umbruch keinen
     zusätzlichen Leerraum unterhalb des Bildes erzeugen. */
  body #page-container .gv-wave-transition {
    padding-bottom: 0 !important;
  }

  /* Einleitung unter "Unsere Chöre live erleben": Auf kleinen Breiten
     bleibt sie klar als Begleittext unter der Überschrift erkennbar. */
  body .gv-wave-transition .trenner-text {
    font-size: 19px !important;
    line-height: 1.55 !important;
  }

  .gv-card-section {
    padding-top: 24px !important;
  }

  body .et_pb_section.gv-card-section > .et_pb_row {
    margin-top: 0 !important;
  }
}

/* Sehr schmale Handys: Statt einer zu engen linken Farbspalte erhaelt
   jede Karte einen kompakten Farbkopf. Der Inhaltsbereich bleibt breit
   genug fuer ruhige Titel- und Textzeilen. */
@media (max-width: 400px) {
  body .gv-card-section > .et_pb_row.et_pb_row_1 {
    gap: 20px;
  }

  body .gv-card-section > .et_pb_row.et_pb_row_1 > .et_pb_column {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: 104px auto minmax(0, 1fr) auto;
    grid-template-areas:
      "symbol"
      "title"
      "text"
      "button";
    height: 340px !important;
    min-height: 340px !important;
  }

  body .gv-card-section > .et_pb_row.et_pb_row_1 > .et_pb_column > .et_pb_image {
    min-height: 104px;
    padding: 7px !important;
  }

  body #page-container .gv-card-section > .et_pb_row.et_pb_row_1 > .et_pb_column > .et_pb_image img {
    transform: scale(1.12);
  }

  body .gv-card-section > .et_pb_row.et_pb_row_1 > .et_pb_column > .et_pb_text:nth-child(2) {
    padding: 18px 20px 5px !important;
    text-align: center !important;
  }

  body .gv-card-section > .et_pb_row.et_pb_row_1 > .et_pb_column > .et_pb_text:nth-child(2) :is(h1, h2, h3, h4, h5, h6, p) {
    font-size: 28px !important;
    line-height: 1.1 !important;
  }

  body .gv-card-section > .et_pb_row.et_pb_row_1 > .et_pb_column > .et_pb_text:nth-child(3) {
    padding: 4px 20px 18px !important;
    text-align: center !important;
  }

  body .gv-card-section > .et_pb_row.et_pb_row_1 > .et_pb_column > .et_pb_text:nth-child(3) :is(p, h1, h2, h3, h4, h5, h6) {
    font-size: 16px !important;
    line-height: 1.52 !important;
  }

  body .gv-card-section > .et_pb_row.et_pb_row_1 > .et_pb_column > .et_pb_button_module_wrapper {
    justify-self: center;
    padding: 0 20px 22px !important;
  }
}

/* Bis 340 px bekommen lange Inhalte bewusst mehr Raum. So bleiben auch
   die drei Zeilen des Young-Voices-Textes sauber vom Button getrennt. */
@media (max-width: 340px) {
  body .gv-card-section > .et_pb_row.et_pb_row_1 > .et_pb_column {
    height: auto !important;
    min-height: 0 !important;
  }

  body .gv-card-section > .et_pb_row.et_pb_row_1 > .et_pb_column_1 {
    height: 350px !important;
    min-height: 350px !important;
  }

  body .gv-card-section > .et_pb_row.et_pb_row_1 > .et_pb_column_2 {
    height: 372px !important;
    min-height: 372px !important;
  }

  body .gv-card-section > .et_pb_row.et_pb_row_1 > .et_pb_column_3 {
    height: 382px !important;
    min-height: 382px !important;
  }

  body .gv-card-section > .et_pb_row.et_pb_row_1 > .et_pb_column_1 > .et_pb_text:nth-child(2) :is(h1, h2, h3, h4, h5, h6, p) {
    font-size: clamp(21px, 7vw, 24px) !important;
  }

  /* Die breite Cinzel-Ueberschrift passt so ohne einzelnes "S" in
     eine zweite Zeile zu zwingen. */
  body .gv-card-section > .et_pb_row.et_pb_row_1 > .et_pb_column_2 > .et_pb_text:nth-child(2) :is(h1, h2, h3, h4, h5, h6, p) {
    font-size: clamp(21px, 7vw, 24px) !important;
  }
}

/* Desktop: unterschiedlich lange Beschreibungstexte duerfen die
   gemeinsame Button-Linie der drei Chorkarten nicht verschieben. */
@media (min-width: 981px) {
  body .gv-card-section > .et_pb_row.et_pb_row_1 > .et_pb_column {
    display: flex !important;
    flex-direction: column;
  }

  /* Die lokale Cinzel-Datei zeichnet den Inspirations-Titel sonst zu fein.
     Das kraeftigere Gewicht und der dezente helle Schatten sichern den
     Kontrast auf der orangefarbenen Karte. */
  body .gv-card-section > .et_pb_row.et_pb_row_1 > .et_pb_column_2 > .et_pb_text:nth-child(2) :is(h1, h2, h3, h4, h5, h6, p) {
    font-family: "Cinzel", Georgia, "Times New Roman", serif !important;
    font-weight: 700 !important;
    color: #6b3f16 !important;
    text-shadow: 0 1px 1px rgba(255, 245, 218, 0.32);
  }

  body .gv-card-section > .et_pb_row.et_pb_row_1 > .et_pb_column > .et_pb_button_module_wrapper {
    margin-top: auto !important;
  }
}

/* ---------------------------------------------------------
   TERMINKALENDER
   Responsive Monatskarten aus dem Divi-Akkordeon
--------------------------------------------------------- */

/* Kalenderbreite */
.gv-termine-row {
  width: 90%;
  max-width: 1400px;
}

/* Akkordeon wird zum Kartenraster */
.gv-termine-accordion {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  align-items: stretch;
}

/* Einzelne Monatskarte */
.gv-termine-accordion .et_pb_toggle {
  height: 100%;
  margin: 0;
  padding: 22px 24px 24px;
  border: 1px solid rgba(224, 161, 27, 0.42);
  border-radius: 6px;
  background: rgba(25, 29, 34, 0.22);
  box-sizing: border-box;
  box-shadow: none;
}

/* Alle Monate dauerhaft geöffnet */
.gv-termine-accordion .et_pb_toggle_content {
  display: block !important;
  height: auto !important;
  padding: 18px 0 0;
  opacity: 1 !important;
  font-family: "Open Sans", Arial, sans-serif;
  color: #ffffff;
}

/* Monatsüberschrift */
.gv-termine-accordion .et_pb_toggle_title {
  position: relative;
  min-height: 42px;
  margin: 0;
  padding: 4px 0 17px 56px;
  border-bottom: 1px solid rgba(224, 161, 27, 0.65);
  font-family: "Cinzel", serif;
  font-size: 27px;
  font-weight: 500;
  line-height: 1.2;
  text-transform: uppercase;
  color: #e0a11b;
  pointer-events: none;
}

/* Goldener Kreis */
.gv-termine-accordion .et_pb_toggle_title::before {
  content: "";
  display: block !important;
  position: absolute;
  top: 0 !important;
  right: auto !important;
  left: 0 !important;
  width: 40px;
  height: 40px;
  margin: 0 !important;
  border: none;
  border-radius: 50%;
  background: #e0a11b;
  transform: none;
}

/* Gezeichnetes Kalender-Symbol */
.gv-termine-accordion .et_pb_toggle_title::after {
  content: "";
  position: absolute;
  top: 10px;
  left: 11px;
  width: 18px;
  height: 17px;
  border: 2px solid #1d1d1b;
  border-radius: 2px;
  box-sizing: border-box;
  background:
    linear-gradient(#1d1d1b, #1d1d1b) 0 4px / 100% 2px no-repeat,
    linear-gradient(#1d1d1b, #1d1d1b) 3px 0 / 2px 4px no-repeat,
    linear-gradient(#1d1d1b, #1d1d1b) 11px 0 / 2px 4px no-repeat;
}

/* Datum oder Status */
.gv-termine-accordion .et_pb_toggle_content h4 {
  margin: 0;
  padding: 0 0 10px;
  font-family: "Open Sans", Arial, sans-serif;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.45;
  color: #e0a11b;
}

/* Trennlinie vor jedem weiteren Termin */
.gv-termine-accordion .et_pb_toggle_content h4:not(:first-child) {
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid rgba(224, 161, 27, 0.5);
}

/* Terminbeschreibung */
.gv-termine-accordion .et_pb_toggle_content p {
  margin: 0;
  padding: 0;
  font-family: "Open Sans", Arial, sans-serif;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.55;
  color: #ffffff;
}

/* Monatsnamen gegen Divi-Modulwerte absichern */
.gv-termine-accordion.et_pb_accordion
.et_pb_toggle
.et_pb_toggle_title {
  padding: 4px 0 17px 64px !important;
  font-family: "Cinzel", serif !important;
  font-size: 27px !important;
  font-weight: 500 !important;
  line-height: 1.2 !important;
  color: #e0a11b !important;
  text-transform: uppercase;
  white-space: nowrap;
}

/* Tablet */
@media (min-width: 768px) and (max-width: 980px) {
  .gv-termine-accordion.et_pb_accordion
  .et_pb_toggle
  .et_pb_toggle_title {
    padding-left: 60px !important;
    font-size: 25px !important;
  }
}

/* Handy */
@media (max-width: 767px) {
  .gv-termine-accordion.et_pb_accordion
  .et_pb_toggle
  .et_pb_toggle_title {
    padding: 4px 0 14px 54px !important;
    font-size: 23px !important;
  }
}





/* Leere Monate */
.gv-termine-accordion .et_pb_toggle_content em {
  font-style: normal;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.58);
}

/* Tablet: zwei Spalten */
@media (min-width: 768px) and (max-width: 980px) {
  .gv-termine-row {
    width: 90%;
  }

  .gv-termine-accordion {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
  }

  .gv-termine-accordion .et_pb_toggle_title {
    font-size: 25px;
  }
}

/* Handy: eine Spalte */
@media (max-width: 767px) {
  .gv-termine-row {
    width: 88%;
  }

  .gv-termine-accordion {
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
  }

  .gv-termine-accordion .et_pb_toggle {
    padding: 18px 18px 20px;
  }

  .gv-termine-accordion .et_pb_toggle_title {
    min-height: 38px;
    padding: 4px 0 14px 50px;
    font-size: 23px;
  }

  .gv-termine-accordion .et_pb_toggle_title::before {
    width: 36px;
    height: 36px;
  }

  .gv-termine-accordion .et_pb_toggle_title::after {
    top: 9px;
    left: 10px;
    width: 16px;
    height: 15px;
  }

  .gv-termine-accordion .et_pb_toggle_content {
    padding-top: 15px;
  }

  .gv-termine-accordion .et_pb_toggle_content h4 {
    font-size: 15px;
  }

  .gv-termine-accordion .et_pb_toggle_content p {
    font-size: 14px;
    line-height: 1.5;
  }
}

/* =========================================================
   DATENSCHUTZ UND IMPRESSUM
   Die H2 bleiben auf Tablet und Handy lesbar und brechen nur
   zwischen Woertern um. Die Desktop-Typografie bleibt unveraendert.
========================================================= */
@media (min-width: 768px) and (max-width: 980px) {
  body.gv-legal-page #page-container .et_pb_text h2 {
    font-size: clamp(26px, 3.8vw, 32px) !important;
    line-height: 1.25 !important;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
  }
}

@media (max-width: 767px) {
  body.gv-legal-page #page-container .et_pb_text h2 {
    font-size: clamp(22px, 6.5vw, 27px) !important;
    line-height: 1.3 !important;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
  }
}

































/* =========================================================
   FOOTER
   Globaler Footer Gesangsverein Wombach
========================================================= */

.gv-footer {
  position: relative;
  overflow: hidden;
  padding: 48px 0 0;
  background-color: #151c24;
  color: #ffffff;
}

.gv-footer::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background:
    linear-gradient(
      180deg,
      rgba(15, 21, 28, 0.9) 0%,
      rgba(18, 25, 33, 0.96) 100%
    );
  pointer-events: none;
}

.gv-footer > .et_pb_row {
  position: relative;
  z-index: 1;
}


/* ---------------------------------------------------------
   Allgemeine Divi-Resets
--------------------------------------------------------- */

.gv-footer .et_pb_module,
.gv-footer .et_pb_blurb,
.gv-footer .et_pb_blurb_content,
.gv-footer .et_pb_main_blurb_image,
.gv-footer .et_pb_image_wrap,
.gv-footer .et_pb_blurb_container {
  box-sizing: border-box;
}

.gv-footer .et_pb_blurb,
.gv-footer .et_pb_blurb_content,
.gv-footer .et_pb_main_blurb_image,
.gv-footer .et_pb_image_wrap,
.gv-footer .et_pb_blurb_container {
  overflow: visible !important;
}

.gv-footer .et_pb_blurb_content {
  max-width: none !important;
}


/* ---------------------------------------------------------
   Logo
--------------------------------------------------------- */

.gv-footer-logo-row {
  width: 90%;
  max-width: 1320px !important;
  margin: 0 auto;
  padding: 0 !important;
}

.gv-footer-logo-row .et_pb_column {
  display: flex;
  justify-content: center;
  width: 100% !important;
  margin: 0 !important;
}

.gv-footer-logo {
  width: 100%;
  max-width: 360px;
  margin: 0 auto 42px !important;
  text-align: center;
}

.gv-footer-logo .et_pb_image_wrap {
  display: block;
}

.gv-footer-logo img {
  display: block;
  width: 100%;
  height: auto;
  margin: 0 auto;
}


/* ---------------------------------------------------------
   Hauptzeile mit drei Bereichen
--------------------------------------------------------- */

.gv-footer-main-row {
  display: grid !important;
  grid-template-columns: minmax(0, 300px) minmax(0, 1fr) minmax(0, 300px);
  align-items: stretch;
  width: 90%;
  max-width: 1320px;
  margin: 0 auto;
  padding: 0 !important;
}

/* Divi setzt auf dieser Zeile per Row-Einstellung 45px Bottom-Margin;
   hier bewusst etwas verkuerzt (Abstand zur Trennlinie). Braucht
   gleiche Spezifitaet wie Divis eigene Regel, um sie zu schlagen. */
.gv-footer .gv-footer-main-row.et_pb_row {
  margin-bottom: 28px !important;
}

.gv-footer-main-row::before,
.gv-footer-main-row::after,
.gv-footer-bottom-row::before,
.gv-footer-bottom-row::after {
  display: none !important;
  content: none !important;
}

.gv-footer-main-row > .et_pb_column {
  position: relative;
  float: none !important;
  width: 100% !important;
  min-width: 0;
  margin: 0 !important;
}

.gv-footer-main-row > .et_pb_column:nth-child(1) {
  order: 1;
  grid-column: 1;
  padding: 0 24px 0 0 !important;
}

.gv-footer-main-row > .et_pb_column:nth-child(2) {
  order: 2;
  grid-column: 2;
  padding: 0 42px !important;
}

.gv-footer-main-row > .et_pb_column:nth-child(3) {
  order: 3;
  grid-column: 3;
  padding: 0 0 0 42px !important;
}

.gv-footer-main-row > .et_pb_column:nth-child(1)::after,
.gv-footer-main-row > .et_pb_column:nth-child(2)::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 1px;
  height: 100%;
  background: rgba(224, 153, 0, 0.3);
}


/* ---------------------------------------------------------
   Bereichsüberschriften
--------------------------------------------------------- */

.gv-footer-info-heading {
  width: 100%;
  min-height: 58px;
  margin: 0 0 24px !important;
}

.gv-footer-info-heading .et_pb_blurb_content {
  display: grid !important;
  grid-template-columns: 68px minmax(0, 1fr) !important;
  align-items: center;
  column-gap: 12px !important;
  width: 100%;
  margin: 0;
}

.gv-footer-info-heading .et_pb_main_blurb_image {
  display: block !important;
  width: 68px !important;
  min-width: 68px !important;
  margin: 0 !important;
  overflow: visible !important;
}

.gv-footer-info-heading .et_pb_image_wrap {
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 68px !important;
  min-width: 68px !important;
  height: 60px !important;
  padding: 0 4px !important;
  overflow: visible !important;
}

.gv-footer-info-heading .et-pb-icon {
  display: block !important;
  width: auto !important;
  max-width: none !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: 39px !important;
  line-height: 1 !important;
  color: #e09900 !important;
  overflow: visible !important;
  transform: translateX(-2px) !important;
}

.gv-footer-info-heading .et_pb_blurb_container {
  display: flex;
  align-items: center;
  min-width: 0;
  padding: 0 !important;
}

.gv-footer-info-heading .et_pb_module_header {
  margin: 0 !important;
  padding: 0 !important;
  font-family: "Open Sans", Arial, sans-serif;
  font-size: 19px !important;
  font-weight: 700;
  line-height: 1.2 !important;
  letter-spacing: 0.025em;
  color: #ffffff !important;
  white-space: nowrap;
}


/* ---------------------------------------------------------
   Proben
--------------------------------------------------------- */

.gv-footer-rehearsal-info {
  position: relative;
  min-height: 76px;
  margin: 0 0 17px !important;
  padding: 0 0 17px !important;
  border-bottom: 1px solid rgba(224, 153, 0, 0.18);
}

.gv-footer-rehearsal-info:last-child {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
  border-bottom: 0;
}

.gv-footer-rehearsal-info .et_pb_blurb_content {
  width: 100%;
  margin: 0;
}

.gv-footer-rehearsal-info .et_pb_main_blurb_image {
  display: none !important;
}

.gv-footer-rehearsal-info .et_pb_blurb_container {
  padding: 0 !important;
}

.gv-footer-rehearsal-info .et_pb_module_header {
  margin: 0 0 6px !important;
  padding: 0 !important;
  font-family: "Open Sans", Arial, sans-serif;
  font-size: 15px !important;
  font-weight: 700;
  line-height: 1.3 !important;
  color: #ffffff !important;
}

.gv-footer-rehearsal-info .et_pb_blurb_description,
.gv-footer-rehearsal-info .et_pb_blurb_description p {
  margin: 0 !important;
  padding: 0 !important;
  font-family: "Open Sans", Arial, sans-serif;
  font-size: 14px !important;
  line-height: 1.5 !important;
  color: rgba(255, 255, 255, 0.78);
}


/* ---------------------------------------------------------
   Social Media
--------------------------------------------------------- */

.gv-footer-social,
.gv-footer-social.et_pb_social_media_follow {
  width: 100% !important;
  margin: 4px 0 25px !important;
  padding: 0 !important;
  text-align: center;
}

.gv-footer-social ul,
.gv-footer-social.et_pb_social_media_follow {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 12px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.gv-footer-social li,
.gv-footer-social .et_pb_social_icon {
  display: block !important;
  flex: 0 0 46px !important;
  width: 46px !important;
  min-width: 46px !important;
  max-width: 46px !important;
  height: 46px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.gv-footer-social li::before,
.gv-footer-social li::after,
.gv-footer-social li::marker {
  display: none !important;
  content: none !important;
}

.gv-footer-social li a.icon,
.gv-footer-social .et_pb_social_icon a.icon {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
  width: 46px !important;
  min-width: 46px !important;
  max-width: 46px !important;
  height: 46px !important;
  min-height: 46px !important;
  max-height: 46px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid #e09900 !important;
  border-radius: 50% !important;
  background: #e09900 !important;
  transition:
    background-color 0.25s ease,
    transform 0.25s ease,
    box-shadow 0.25s ease;
}

.gv-footer-social li a.icon::before,
.gv-footer-social .et_pb_social_icon a.icon::before {
  display: block !important;
  position: static !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  font-size: 19px !important;
  line-height: 1 !important;
  color: #151c24 !important;
}

.gv-footer-social a.icon:hover {
  background: transparent !important;
  transform: translateY(-2px);
  box-shadow: 0 7px 18px rgba(224, 153, 0, 0.2);
}

.gv-footer-social a.icon:hover::before {
  color: #e09900 !important;
}


/* ---------------------------------------------------------
   Schnelllinks
--------------------------------------------------------- */

.gv-footer-links-module {
  width: 100%;
  max-width: 270px;
  margin: 0 auto !important;
}

.gv-footer-links-module .et_pb_text_inner,
.gv-footer-links-module ul,
.gv-footer-links {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.gv-footer-links-module ul li,
.gv-footer-links-module li,
.gv-footer-links li {
  display: block;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  border-bottom: 1px solid rgba(224, 153, 0, 0.17);
}

.gv-footer-links-module ul li:last-child,
.gv-footer-links li:last-child {
  border-bottom: 0;
}

.gv-footer-links-module ul li::before,
.gv-footer-links-module ul li::after,
.gv-footer-links-module ul li::marker,
.gv-footer-links-module li::before,
.gv-footer-links-module li::after,
.gv-footer-links-module li::marker,
.gv-footer-links li::before,
.gv-footer-links li::after,
.gv-footer-links li::marker {
  display: none !important;
  content: none !important;
}

.gv-footer-links-module ul li a,
.gv-footer-links a {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 10px 0 !important;
  font-family: "Open Sans", Arial, sans-serif;
  font-size: 14px;
  line-height: 1.4;
  color: rgba(255, 255, 255, 0.8);
  text-decoration: none;
  transition:
    color 0.25s ease,
    padding-left 0.25s ease;
}

.gv-footer-links-module ul li a::before,
.gv-footer-links a::before {
  display: none !important;
  content: none !important;
}

.gv-footer-links-module ul li a::after,
.gv-footer-links a::after {
  content: "›";
  flex: 0 0 auto;
  margin-left: 14px;
  font-size: 21px;
  line-height: 1;
  color: #e09900;
}

.gv-footer-links-module ul li a:hover,
.gv-footer-links a:hover {
  padding-left: 4px !important;
  color: #e09900;
}


/* ---------------------------------------------------------
   Kontakt
--------------------------------------------------------- */

.gv-footer-contact-info {
  width: 100%;
  min-height: 58px;
  margin: 0 0 12px !important;
}

.gv-footer-contact-info:last-child {
  margin-bottom: 0 !important;
}

.gv-footer-contact-info .et_pb_blurb_content {
  display: grid !important;
  grid-template-columns: 58px minmax(0, 1fr);
  align-items: center;
  column-gap: 14px;
  width: 100%;
  margin: 0;
}

.gv-footer-contact-info .et_pb_main_blurb_image {
  display: block !important;
  width: 58px !important;
  min-width: 58px !important;
  margin: 0 !important;
}

.gv-footer-contact-info .et_pb_image_wrap {
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 58px !important;
  min-width: 58px !important;
  height: 54px !important;
}

.gv-footer-contact-info .et-pb-icon {
  display: block !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: 31px !important;
  line-height: 1 !important;
  color: #e09900 !important;
  transform: none !important;
}

.gv-footer-contact-info .et_pb_blurb_container {
  min-width: 0;
  padding: 0 !important;
}

.gv-footer-contact-info .et_pb_module_header {
  display: none !important;
}

.gv-footer-contact-info .et_pb_blurb_description,
.gv-footer-contact-info .et_pb_blurb_description p {
  margin: 0 !important;
  padding: 0 !important;
  font-family: "Open Sans", Arial, sans-serif;
  font-size: 14px !important;
  line-height: 1.5 !important;
  color: rgba(255, 255, 255, 0.8);
  overflow-wrap: anywhere;
}

.gv-footer-contact-info strong {
  display: block;
  margin-bottom: 2px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.7);
}

.gv-footer-contact-info a {
  color: rgba(255, 255, 255, 0.82);
  transition: color 0.25s ease;
}

.gv-footer-contact-info a:hover {
  color: #e09900;
}


/* ---------------------------------------------------------
   Trennlinie
--------------------------------------------------------- */

.gv-footer-divider-row {
  display: none !important;
}

/* Gleiche Divi-Row-Margin wie oben (45px) -> auch hier verkuerzt */
.gv-footer .gv-footer-divider-row.et_pb_row {
  margin-bottom: 28px !important;
}

.gv-footer-divider-module {
  margin: 0 !important;
}

.gv-footer-divider {
  display: flex;
  align-items: center;
  width: 70%;
  margin: 0 auto;
}

.gv-footer-divider span {
  height: 1px;
  flex: 1;
  background: rgba(224, 153, 0, 0.58);
}

.gv-footer-divider b {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 13px;
  font-family: Arial, sans-serif;
  font-size: 22px;
  font-weight: 400;
  line-height: 1;
  color: #e09900;
}


/* ---------------------------------------------------------
   Abschlusszeile
--------------------------------------------------------- */

.gv-footer-bottom-row .et_pb_text {
  width: 100%;
  margin: 0 !important;
}

.gv-footer-bottom-row .et_pb_text_inner {
  margin: 0;
  padding: 0;
}

.gv-footer-bottom-row p {
  margin: 0 !important;
  padding: 0 !important;
  font-family: "Open Sans", Arial, sans-serif;
  font-size: 15px;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.82);
}

.gv-footer-bottom-row a {
  transition: color 0.25s ease;
}

.gv-footer-bottom-row a:hover {
  color: #e09900;
}

.gv-footer-legal p {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  white-space: nowrap;
}

.gv-footer-legal a {
  font-size: 22px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.88);
}

.gv-footer-legal span {
  font-size: 22px;
  color: rgba(255, 255, 255, 0.55);
}

.gv-footer-copyright p {
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: #ffffff;
  white-space: nowrap;
}

.gv-footer-credit p {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  font-size: 14px;
  white-space: nowrap;
}

.gv-footer-credit a {
  margin: 0;
  font-size: 14px;
  font-weight: 700;
  color: #e09900;
  white-space: nowrap;
}

/* Ab Tablet aufwärts: alle drei Bereiche gestapelt und zentriert
   (bewusst kein Nebeneinander mehr - lief im Zwischenbereich
   ~1101-1400px ineinander) */
@media (min-width: 768px) {

  .gv-footer-bottom-row {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 10px !important;
    width: 90%;
    max-width: 1320px;
    margin: 0 auto;
    padding: 25px 0 28px !important;
  }

  .gv-footer-bottom-row > .et_pb_column {
    float: none !important;
    display: flex;
    justify-content: center !important;
    width: 100% !important;
    margin: 0 !important;
  }

  .gv-footer-legal,
  .gv-footer-copyright,
  .gv-footer-credit {
    text-align: center;
  }

  .gv-footer-legal p,
  .gv-footer-credit p {
    justify-content: center;
  }

  .gv-footer-credit a {
    display: inline;
  }
}

/* Mobil: Bereiche gestapelt, kompakter */
@media (max-width: 950px) {

  .gv-footer-bottom-row {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 9px !important;
    width: calc(100% - 30px) !important;
    padding: 20px 0 24px !important;
  }

  .gv-footer-bottom-row > .et_pb_column {
    display: flex !important;
    justify-content: center !important;
    width: 100% !important;
    margin: 0 !important;
  }

  .gv-footer-bottom-row p {
    font-size: 12px;
    text-align: center;
  }

  .gv-footer-legal,
  .gv-footer-copyright,
  .gv-footer-credit {
    text-align: center;
  }

  .gv-footer-legal p {
    justify-content: center;
    gap: 14px;
    white-space: nowrap;
  }

  .gv-footer-legal a {
    font-size: 17px;
  }

  .gv-footer-legal span {
    font-size: 17px;
  }

  .gv-footer-copyright p {
    font-size: 13px;
    white-space: normal;
  }

  .gv-footer-credit p {
    display: block;
    font-size: 12px;
    white-space: normal;
    text-align: center;
  }

  .gv-footer-credit a {
    display: block;
    margin-top: 3px;
    font-size: 12px;
    white-space: normal;
  }
}

@media (max-width: 380px) {

  .gv-footer-bottom-row {
    width: calc(100% - 22px) !important;
  }
}


/* =========================================================
   FOOTER TABLET (951–980px)
========================================================= */

@media (min-width: 951px) and (max-width: 980px) {

  .gv-footer {
    padding-top: 38px;
  }

  .gv-footer-logo {
    max-width: 300px;
    margin-bottom: 32px !important;
  }

  .gv-footer-main-row {
    width: 94%;
  }

  .gv-footer-main-row > .et_pb_column:nth-child(1) {
    padding: 0 20px 0 0 !important;
  }

  .gv-footer-main-row > .et_pb_column:nth-child(2) {
    padding: 0 20px !important;
  }

  .gv-footer-main-row > .et_pb_column:nth-child(3) {
    padding: 0 0 0 20px !important;
  }

  .gv-footer-info-heading {
    min-height: 48px;
    margin-bottom: 19px !important;
  }

  .gv-footer-info-heading .et_pb_blurb_content {
    grid-template-columns: 54px minmax(0, 1fr) !important;
    column-gap: 9px !important;
  }

  .gv-footer-info-heading .et_pb_main_blurb_image,
  .gv-footer-info-heading .et_pb_image_wrap {
    width: 54px !important;
    min-width: 54px !important;
  }

  .gv-footer-info-heading .et_pb_image_wrap {
    height: 46px !important;
  }

  .gv-footer-info-heading .et-pb-icon {
    font-size: 31px !important;
  }

  .gv-footer-info-heading .et_pb_module_header {
    font-size: 15px !important;
    white-space: normal;
  }

  .gv-footer-rehearsal-info {
    min-height: 69px;
  }

  .gv-footer-rehearsal-info .et_pb_module_header {
    font-size: 13px !important;
  }

  .gv-footer-rehearsal-info .et_pb_blurb_description,
  .gv-footer-rehearsal-info .et_pb_blurb_description p {
    font-size: 12px !important;
  }

  .gv-footer-links-module {
    max-width: none;
  }

  .gv-footer-links-module ul li a,
  .gv-footer-links a {
    font-size: 12px;
  }

  .gv-footer-contact-info {
    min-height: 50px;
    margin-bottom: 9px !important;
  }

  .gv-footer-contact-info .et_pb_blurb_content {
    grid-template-columns: 43px minmax(0, 1fr);
    column-gap: 8px;
  }

  .gv-footer-contact-info .et_pb_main_blurb_image,
  .gv-footer-contact-info .et_pb_image_wrap {
    width: 43px !important;
    min-width: 43px !important;
  }

  .gv-footer-contact-info .et_pb_image_wrap {
    height: 45px !important;
  }

  .gv-footer-contact-info .et-pb-icon {
    font-size: 25px !important;
  }

  .gv-footer-contact-info .et_pb_blurb_description,
  .gv-footer-contact-info .et_pb_blurb_description p {
    font-size: 12px !important;
  }

  .gv-footer-divider-row {
    width: 94%;
  }
}


/* =========================================================
   FOOTER MOBILE (≤950px)
   Bereiche untereinander, Karten-Optik
========================================================= */

@media (max-width: 950px) {

  .gv-footer {
    padding-top: 28px;
  }

  .gv-footer-logo-row,
  .gv-footer-main-row,
  .gv-footer-divider-row {
    width: calc(100% - 30px);
  }

  .gv-footer-logo {
    max-width: 235px;
    margin-bottom: 24px !important;
  }

  .gv-footer-main-row {
    display: flex !important;
    flex-direction: column;
  }

  .gv-footer-main-row > .et_pb_column {
    width: 100% !important;
    margin: 0 0 28px !important;
    padding: 0 20px !important;
    text-align: center;
  }

  .gv-footer-main-row > .et_pb_column:nth-child(1),
  .gv-footer-main-row > .et_pb_column:nth-child(2),
  .gv-footer-main-row > .et_pb_column:nth-child(3) {
    padding: 0 20px !important;
  }

  .gv-footer-main-row > .et_pb_column:nth-child(3) {
    margin-bottom: 0 !important;
  }

  .gv-footer-main-row > .et_pb_column::after {
    display: none;
  }

  .gv-footer-info-heading {
    min-height: 46px;
    margin-bottom: 17px !important;
  }

  .gv-footer-info-heading .et_pb_blurb_content {
    display: flex !important;
    width: fit-content;
    margin: 0 auto !important;
    align-items: center;
    column-gap: 11px !important;
  }

  .gv-footer-info-heading .et_pb_main_blurb_image,
  .gv-footer-info-heading .et_pb_image_wrap {
    width: 52px !important;
    min-width: 52px !important;
  }

  .gv-footer-info-heading .et_pb_image_wrap {
    height: 46px !important;
  }

  .gv-footer-info-heading .et-pb-icon {
    font-size: 32px !important;
  }

  .gv-footer-info-heading .et_pb_module_header {
    font-size: 17px !important;
    white-space: normal;
  }

  .gv-footer-rehearsal-info {
    min-height: 0;
    margin-bottom: 14px !important;
    padding: 0 0 14px !important;
  }

  .gv-footer-rehearsal-info .et_pb_module_header {
    font-size: 14px !important;
  }

  .gv-footer-rehearsal-info .et_pb_blurb_description,
  .gv-footer-rehearsal-info .et_pb_blurb_description p {
    font-size: 13px !important;
  }

  .gv-footer-social {
    margin-bottom: 20px !important;
    justify-content: flex-start !important;
    text-align: left;
  }

  #page-container .gv-footer .gv-footer-social.et_pb_social_media_follow {
    justify-content: flex-start !important;
  }

  .gv-footer-social ul {
    justify-content: flex-start !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .gv-footer-social li,
  .gv-footer-social .et_pb_social_icon {
    flex-basis: 43px !important;
    width: 43px !important;
    min-width: 43px !important;
    max-width: 43px !important;
    height: 43px !important;
  }

  .gv-footer-social li a.icon,
  .gv-footer-social .et_pb_social_icon a.icon {
    width: 43px !important;
    min-width: 43px !important;
    max-width: 43px !important;
    height: 43px !important;
    min-height: 43px !important;
    max-height: 43px !important;
  }

  .gv-footer-links-module {
    max-width: none;
  }

  .gv-footer-links-module ul li a,
  .gv-footer-links a {
    justify-content: center;
    font-size: 14px;
  }

  .gv-footer-contact-info {
    min-height: 0;
    margin-bottom: 14px !important;
  }

  .gv-footer-contact-info .et_pb_main_blurb_image {
    display: none !important;
  }

  .gv-footer-contact-info .et_pb_blurb_content {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
  }

  .gv-footer-contact-info .et_pb_blurb_container {
    text-align: left !important;
  }

  .gv-footer-contact-info .et_pb_main_blurb_image,
  .gv-footer-contact-info .et_pb_image_wrap {
    width: 46px !important;
    min-width: 46px !important;
  }

  .gv-footer-contact-info .et_pb_image_wrap {
    height: 44px !important;
  }

  .gv-footer-contact-info .et-pb-icon {
    font-size: 27px !important;
  }

  .gv-footer-contact-info .et_pb_blurb_description,
  .gv-footer-contact-info .et_pb_blurb_description p {
    font-size: 13px !important;
  }

  .gv-footer-divider b {
    margin: 0 9px;
    font-size: 20px;
  }
}


/* =========================================================
   FOOTER KLEINE HANDYS (≤380px)
========================================================= */

@media (max-width: 380px) {

  .gv-footer-logo-row,
  .gv-footer-main-row,
  .gv-footer-divider-row {
    width: calc(100% - 22px);
  }

  .gv-footer-main-row > .et_pb_column {
    padding: 18px 15px !important;
  }

  .gv-footer-info-heading .et_pb_blurb_content,
  .gv-footer-contact-info .et_pb_blurb_content {
    grid-template-columns: 41px minmax(0, 1fr);
    column-gap: 9px;
  }

  .gv-footer-info-heading .et_pb_main_blurb_image,
  .gv-footer-info-heading .et_pb_image_wrap,
  .gv-footer-contact-info .et_pb_main_blurb_image,
  .gv-footer-contact-info .et_pb_image_wrap {
    width: 41px !important;
    min-width: 41px !important;
  }

  .gv-footer-info-heading .et_pb_image_wrap,
  .gv-footer-contact-info .et_pb_image_wrap {
    height: 41px !important;
  }

  .gv-footer-info-heading .et-pb-icon {
    font-size: 29px !important;
  }

  .gv-footer-contact-info .et-pb-icon {
    font-size: 24px !important;
  }

  .gv-footer-contact-info .et_pb_blurb_description,
  .gv-footer-contact-info .et_pb_blurb_description p {
    font-size: 12px !important;
    overflow-wrap: anywhere;
  }
}
