/*
	Theme Name: KNOLLE-DESIGN-Theme
	Theme URI: https://knolle.biz/
	Description: Willkommen zum Knolle-Theme – die perfekte Grundlage für dein Webprojekt! Entwickelt und bereitgestellt von Jens Knolle, bietet dieses Theme eine Auswahl an durchdachten Features, die deine Arbeit mit Wordpress noch effizienter und kreativer machen.
	Author: Jens Knolle
	Author URI: https://knolle.biz/
	Template: Divi
	Version: 1.1.0
	Tag: Child Theme, Knolle Biz 
	License: GNU General Public License v2 or later
	License URI: http://www.gnu.org/licenses/gpl-2.0.html
*/


/* ==========================================================================
   BASIC / RESET
   ========================================================================== */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  font-size: 62.5%; /* 1rem = 10px */
}

/* #page-container-Overflow und Section-Preset-Neutralisierung: siehe Block „Basis“ (references/base.css) */

a[href^="#"] { cursor: pointer !important; }

.mce-panel .mce-stack-layout-item.mce-first {
  position: sticky !important;
  top: 0;
}



/* ==========================================================================
   ROOT: Farben + Transitions
   Schriftgrößen, Zeilenhöhen und Abstände → Divi-Variablen (siehe CLAUDE.md)
   ========================================================================== */
:root {
  /* GLOBAL COLORS */

  --c1:          #2A2B39; 
  --c2:          #2ea3f2;

  --c3:          red;
  --c4:          green;
  --c5:          coral;
  --c6:          purple;

  --white:       #ffffff;
  --black:       #000000;

  --kdac:        #c9dd2e;  /* KD Accent */
	
  --ha1:		 #009fe3;		/* hero-animated-bg farbe 1 */
  --ha2:		 #000000;		/* hero-animated-bg farbe 1 */

		

  /* MOBILES MENÜ (Vollbild) */
  --menu-bg:     #f7f7f5;                           /* Fläche */
  --menu-text:   var(--c1);                         /* Menüpunkte, Knopf im offenen Menü */
  --menu-muted:  rgb(from var(--c1) r g b / 0.55);  /* Nummern //01 */
  --menu-line:   rgb(from var(--c1) r g b / 0.12);  /* Trennlinien */
  --menu-accent: #1774b5;                           /* aktiv, Hover, Call-to-Action – dunkler als --c2 für Kontrast (5,0:1 auf Weiß-Schrift, 4,7:1 auf --menu-bg) */
  --menu-btn:    var(--white);                      /* Knopf "Menü" bei geschlossenem Menü */

  /* TRANSITIONS */
  --tra-3s: all .3s ease-in-out;
  --tra-5s: all .5s ease-in-out;
  --tra-7s: all .7s ease-in-out;
}

/* ==========================================================================
   TYPO
   Größen und Zeilenhöhen kommen aus den Divi-Vorlagen.
   ========================================================================== */
/* Divi setzt für Listen fest line-height: 26px → Wert der Text-Vorlage erben */
.et_pb_module.et_pb_text ol,
.et_pb_module.et_pb_text ul {
  line-height: inherit;
}

.et_pb_module.et_pb_text ol li,
.et_pb_module.et_pb_text ul li {
  padding-bottom: clamp(1.2rem, calc(1.015rem + 0.513vw), 2rem); /* = space-s */
}





/* ==========================================================================
   HEADER – Show / Hide on Scroll
   ========================================================================== */
#kd_header {
  transition: transform 0.3s ease, opacity 0.3s ease;
}

#kd_header.hide-header {
  transform: translateY(-100%);
}

#kd_header.show-header {
  transform: translateY(0);
}

body.admin-bar #kd_header {
	top: 32px !important;
}

@media (max-width: 782px) {
	body.admin-bar #kd_header {
		top: 46px !important;
	}
}


.et-db #et-boc .et-l #kd_header {
	background:transparent!important;
	transition: all 0.5s ease;
  border-bottom: 1px solid rgb(from var(--c1) r g b / 0.3);
	}
	
.et-db #et-boc .et-l #kd_header.hide-header {
	opacity: 0;
	margin-top: -150px!important;
	transition: all 0.5s ease;
	}

.et-db #et-boc .et-l #kd_header.show-header {
	opacity: 1;
	margin-top: 0px!important;
	transition: all 0.5s ease;
	background:var(--c1)!important;
	}
	
.et-db #et-boc .et-l #kd_header.show-header {
	border:none
	}
	
.et-db #et-boc .et-l #kd_header .et_pb_row {
	padding:0
	}
	
.et-db #et-boc .et-l #kd_header .et_pb_menu__logo {
	max-width:160px;
	padding:10px 0
	}
	
.et-db #et-boc .et-l #kd_header .et_pb_menu .et-menu li a {
	font-size:1.3rem;
	text-transform:uppercase;
	font-weight:400;
  padding: 20px 0;
	}
	
.et-db #et-boc .et-l #kd_header .et-menu li a {
	position: relative;
	text-decoration: none
	}
	
.et-db #et-boc .et-l #kd_header .et-menu li a:before {
	content: "";
	position: absolute;
	width: 100%;
	height: 2px;
	top: 0;
	background-color: white;
	visibility: hidden;
	-webkit-transform: scaleX(0);
	transform: scaleX(0);
	-webkit-transition: all 0.3s ease-in-out 0s;
	transition: all 0.3s ease-in-out 0s
	}

.et-db #et-boc .et-l #kd_header .et-menu li.current-menu-item a:before,
.et-db #et-boc .et-l #kd_header .et-menu li a:hover:before {
	visibility: visible;
	-webkit-transform: scaleX(1);
	transform: scaleX(1)
	}

.et-db #et-boc .et-l #kd_header .et-menu li ul li a:before {
 height:0
}
/*.et-db #et-boc .et-l #kd_header.show-header ul li a {
	color:black!important
	}*/

/*.et-db #et-boc .et-l #kd_header.show-header ul li a:before {
	background-color:var(--c3)
	}*/

/*.et-db #et-boc .et-l #kd_header.show-header ul li.current-menu-item a:before,
.et-db #et-boc .et-l #kd_header.show-header ul li a:hover:before {
	color:var(--c3)!important
	}*/

/*.et-db #et-boc .et-l #kd_header.show-header .et_pb_menu__logo {
	-webkit-filter: invert(100%); 
	filter: invert(100%);
	}*/
	
.et-db #et-boc .et-l #kd_header .menu-icon a {
	background:var(--c1);
	padding: 0 30px!important;
  border-left: 1px solid rgb(from var(--c1) r g b / 0.3);
	border-right: 1px solid rgb(from var(--c1) r g b / 0.3);
	font-size:1.8rem!important
	}

.et-db #et-boc .et-l #kd_header .menu-icon:hover a {
	background:var(--c1)
	}

.et-db #et-boc .et-l #kd_header.show-header .menu-icon a {
	background:var(--c1);
	padding: 0 30px!important;
  border-left: 1px solid rgb(from var(--c1) r g b / 0.3);
	border-right: 1px solid rgb(from var(--c1) r g b / 0.3);
	color:white!important;
	font-size:1.8rem!important
	}
	
.et-db #et-boc .et-l #kd_header .menu-icon a::before {
	display:none
	}

.et-db #et-boc .et-l #kd_header .et-menu li ul li a:before {
 height:0
}
	
@media(min-width:var(--bp2)) and (max-width:var(--bp3)) {
	.et-db #et-boc .et-l #kd_header .et_pb_menu ul li {
		padding:0 10px
		}
}

@media (max-width: 1100px) {
    #dtb-m-menu {
        padding: 60px 0 0 0;
		margin:0;
      z-index:1
    }
	#dtb-m-menu .dtb-mobile-menu>li>a:first-of-type {
    border-top:none
  }
}


















/* END */






/* ==========================================================================
   CONTENT: Hyphenation + Link-Hover
   ========================================================================== */
body {
  -ms-hyphens: auto;
  -webkit-hyphens: auto;
  hyphens: auto;
}

.nohyphens {
  -moz-hyphens: none;
  -ms-hyphens: none;
  -webkit-hyphens: none;
  hyphens: none;
}

.nohyphens.et_pb_module {
  word-wrap: normal !important;
  overflow: visible !important;
}

p a:hover { text-decoration: underline !important; }

.whitelinks a { color: #ffffff; }
.blacklinks a { color: #000; }

/* Dateinamen unter Gallerybild entfernen */
.mfp-title { display: none !important; }

/* 3 Bilder nebeneinander on mobile */
@media only screen and (max-width: 980px) {
  .three-columns .et_pb_column { width: 33.33% !important; }
}

/* Fix Gallery-Thumb-Größe */
@media only screen and (max-width: 980px) {
  .et_pb_gallery_grid .et_pb_gallery_item img { width: 100%; }
}








/* ==========================================================================
   Animated Gradient Hero Background
   Klasse: .hero-animated-bg
   Die drei .hero-bg-blob-Elemente erzeugt custom.js, die Animation läuft per CSS.
   Verlauf (Sinus, per ease-in-out alternate):
     Blob 1: Deckkraft 0.2–1.0, Periode 10 s
     Blob 2: Deckkraft 0.2–1.0, Periode 10 s, 1/6 Periode voraus
     Blob 3: Deckkraft 0.1–0.5, Periode 7 s
   Startwerte (opacity) = Zustand bei t = 0, gelten auch bei reduzierter Bewegung.
   ========================================================================== */

.hero-animated-bg {
  position: relative !important;
  overflow: hidden !important;
  background-color: #000;	
}

.hero-animated-bg > .et_pb_row,
.hero-animated-bg > .et_pb_row_inner {
  position: relative;
  z-index: 1;
}

.hero-bg-blob-wrap {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
}

.hero-bg-blob {
  position: absolute;
}

.hero-bg-blob:nth-child(1) {
  width: 130%;
  height: 130%;
  opacity: 0.6;
  animation: kd-hero-blob-a 5s ease-in-out -2.5s infinite alternate;
  background: radial-gradient(
    70% 70% at 10% 20%,
    var(--ha1) 0%,
    var(--ha2) 100%
  );
}

.hero-bg-blob:nth-child(2) {
  width: 110%;
  height: 110%;
  opacity: 0.95;
  animation: kd-hero-blob-a 5s ease-in-out -4.167s infinite alternate;
  background: radial-gradient(
    60% 60% at 90% 80%,
    var(--ha1) 0%,
    var(--ha2) 100%
  );
}

.hero-bg-blob:nth-child(3) {
  width: 100%;
  height: 100%;
  opacity: 0.46;
  animation: kd-hero-blob-b 3.5s ease-in-out -4.2s infinite alternate;
  background: radial-gradient(
    50% 50% at 30% 70%,
    var(--ha1) 0%,
    var(--ha2) 100%
  );
}

@keyframes kd-hero-blob-a {
  from { opacity: 0.2; }
  to   { opacity: 1; }
}

@keyframes kd-hero-blob-b {
  from { opacity: 0.1; }
  to   { opacity: 0.5; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-bg-blob { animation: none; }
}



/* ==========================================================================
   LENIS – Smooth Scrolling (Basis-CSS aus lenis@1.3.26/dist/lenis.css)
   data-lenis-prevent an Elementen, die selbst scrollen sollen (Popups, Karten …)
   ========================================================================== */
html.lenis,
html.lenis body {
  height: auto;
}

.lenis:not(.lenis-autoToggle).lenis-stopped {
  overflow: clip;
}

.lenis [data-lenis-prevent],
.lenis [data-lenis-prevent-wheel],
.lenis [data-lenis-prevent-touch],
.lenis [data-lenis-prevent-vertical],
.lenis [data-lenis-prevent-horizontal] {
  overscroll-behavior: contain;
}

.lenis.lenis-smooth iframe {
  pointer-events: none;
}

.lenis.lenis-autoToggle {
  transition-property: overflow;
  transition-duration: 1ms;
  transition-behavior: allow-discrete;
}



/* ==========================================================================
   MOBILES MENÜ – Vollbild (bis 980 px)
   Divis Ausklappmenü wird zur Fläche über den ganzen Bildschirm.
   - Nummerierung //01 … vor den Hauptpunkten
   - Menüpunkt mit CSS-Klasse "menu-cta" (Menüs → CSS-Klassen) = Call-to-Action
   - Untermenüs auf-/zuklappbar (Knopf .mobile-toggle aus custom.js)
   - Farben: --menu-* in :root
   Größen hier fest, weil Divi für das Vollbild-Menü keine eigene Einstellung hat
   (Werte = Divi-Variablen, siehe Kommentar).
   ========================================================================== */

/* Header und Menü über allen Inhalten */
.et-l--header,
.et-l--header .et_pb_menu {
  position: relative;
  z-index: 99999;
}

@media only screen and (max-width: 980px) {

  .et_pb_menu .et_mobile_menu {
    --kd-menu-fs:     clamp(3.2rem, calc(2.831rem + 1.026vw), 4.8rem); /* = fs-h2 */
    --kd-menu-fs-sub: clamp(1.7rem, calc(1.631rem + 0.192vw), 2rem);   /* = fs-lead */
    --kd-menu-fs-num: clamp(1.2rem, calc(1.154rem + 0.128vw), 1.4rem); /* = fs-small */
    --kd-menu-gap:    clamp(2rem, calc(1.723rem + 0.769vw), 3.2rem);   /* = space-m */
    --kd-menu-num-w:  3.6rem;

    position: fixed !important;
    inset: 0 !important;
    z-index: 100000;
    width: 100vw !important;
    height: 100dvh !important;
    margin: 0 !important;
    padding: 12rem 2rem 4rem !important;
    overflow-y: auto;
    background: var(--menu-bg) !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    counter-reset: kd-menu;
  }

  /* Menüpunkte */
  .et_pb_menu .et_mobile_menu li {
    position: relative;
  }

  .et_pb_menu .et_mobile_menu li a {
    display: block;
    padding: 1.4rem 0 !important;
    border-bottom: 1px solid var(--menu-line) !important;
    background: transparent !important;
    font-size: var(--kd-menu-fs) !important;
    font-weight: 400 !important;
    line-height: 1.15 !important;
    letter-spacing: -0.025em;
    color: var(--menu-text) !important;
    opacity: 1 !important;
  }

  /* aktiv/Hover – "html body … .et_pb_module", weil Divi die Aktiv-Farbe
     modulbezogen mit !important setzt (.et_pb_menu_0_tb_header …) */
  html body .et_pb_menu.et_pb_module .et_mobile_menu li.current-menu-item > a,
  html body .et_pb_menu.et_pb_module .et_mobile_menu li.current-menu-ancestor > a,
  html body .et_pb_menu.et_pb_module .et_mobile_menu li a:hover {
    color: var(--menu-accent) !important;
  }

  /* Nummerierung //01, //02 … (ohne Call-to-Action) */
  .et_pb_menu .et_mobile_menu > li:not(.menu-cta) {
    counter-increment: kd-menu;
  }

  .et_pb_menu .et_mobile_menu > li:not(.menu-cta) > a:not(.mobile-toggle) {
    display: flex !important;
    align-items: baseline;
    gap: var(--kd-menu-gap);
  }

  .et_pb_menu .et_mobile_menu > li:not(.menu-cta) > a:not(.mobile-toggle)::before {
    content: "//" counter(kd-menu, decimal-leading-zero);
    flex-shrink: 0;
    min-width: var(--kd-menu-num-w);
    font-size: var(--kd-menu-fs-num);
    letter-spacing: 0;
    color: var(--menu-muted);
  }

  /* Untermenü: kleiner, bündig mit dem Text der Hauptpunkte, standardmäßig zu.
     Auf-/Zuklappen über die Grid-Zeile (0fr → 1fr) = echte Höhe, dadurch
     in beide Richtungen gleich weich. Der Menüpunkt bekommt beim Öffnen
     die Klasse dt-open (custom.js). visibility sorgt dafür, dass zugeklappte
     Links nicht per Tastatur erreichbar sind (gegen Divis visible !important). */
  .et_pb_menu .et_mobile_menu li.menu-item-has-children,
  .et_pb_menu .et_mobile_menu li.page_item_has_children {
    display: grid;
    grid-template-rows: auto 0fr;
    transition: grid-template-rows .8s cubic-bezier(.4, 0, .2, 1);
  }

  .et_pb_menu .et_mobile_menu li.dt-open {
    grid-template-rows: auto 1fr;
  }

  .et_pb_menu .et_mobile_menu .sub-menu {
    display: block !important;
    min-height: 0;
    overflow: hidden;
    opacity: 0;
    visibility: hidden !important;
    padding-left: calc(var(--kd-menu-num-w) + var(--kd-menu-gap)) !important;
    border: none !important;
    box-shadow: none !important;
    transition: opacity .5s ease, visibility 0s linear .8s;
  }

  .et_pb_menu .et_mobile_menu li.dt-open > .sub-menu {
    opacity: 1;
    visibility: visible !important;
    transition: opacity .6s ease .15s, visibility 0s;
  }

  .et_pb_menu .et_mobile_menu .sub-menu li a {
    padding: 1rem 0 !important;
    font-size: var(--kd-menu-fs-sub) !important;
    letter-spacing: 0;
  }

  /* Auf-/Zu-Knopf fürs Untermenü (rechts in der Zeile des Hauptpunkts) */
  .et_pb_menu .et_mobile_menu li > a.mobile-toggle {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 2;
    display: block;
    width: 4.8rem;
    height: calc(2.8rem + 1.15 * var(--kd-menu-fs));
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
  }

  .et_pb_menu .et_mobile_menu li > a.mobile-toggle::after {
    content: "";
    position: absolute;
    inset: 0;
    background-color: var(--menu-text);
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M212.24,100.24l-80,80a6,6,0,0,1-8.48,0l-80-80a6,6,0,0,1,8.48-8.48L128,167.51l75.76-75.75a6,6,0,0,1,8.48,8.48Z'/%3E%3C/svg%3E") center / 2.4rem no-repeat;
            mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M212.24,100.24l-80,80a6,6,0,0,1-8.48,0l-80-80a6,6,0,0,1,8.48-8.48L128,167.51l75.76-75.75a6,6,0,0,1,8.48,8.48Z'/%3E%3C/svg%3E") center / 2.4rem no-repeat;
    transition: transform .3s ease;
  }

  .et_pb_menu .et_mobile_menu li.dt-open > a.mobile-toggle::after {
    transform: rotate(180deg);
  }

  /* Call-to-Action: gleiche Größe, Akzentfarbe, bündig mit dem Text */
  .et_pb_menu .et_mobile_menu li.menu-cta {
    margin-top: var(--kd-menu-gap);
  }

  .et_pb_menu .et_mobile_menu li.menu-cta > a {
    padding-left: calc(var(--kd-menu-num-w) + var(--kd-menu-gap)) !important;
    border: none !important;
    color: var(--menu-accent) !important;
  }

  /* Einträge blenden gestaffelt ein */
  .mobile_nav.opened .et_mobile_menu > li {
    animation: kd-menu-in .5s cubic-bezier(.2, .7, .2, 1) both;
  }

  .mobile_nav.opened .et_mobile_menu > li:nth-child(2) { animation-delay: .05s; }
  .mobile_nav.opened .et_mobile_menu > li:nth-child(3) { animation-delay: .10s; }
  .mobile_nav.opened .et_mobile_menu > li:nth-child(4) { animation-delay: .15s; }
  .mobile_nav.opened .et_mobile_menu > li:nth-child(5) { animation-delay: .20s; }
  .mobile_nav.opened .et_mobile_menu > li:nth-child(6) { animation-delay: .25s; }
  .mobile_nav.opened .et_mobile_menu > li:nth-child(n+7) { animation-delay: .30s; }

  /* Knopf bleibt über der Fläche */
  .et_pb_menu .mobile_menu_bar {
    position: relative;
    z-index: 100001;
  }

  /* Header bleibt sichtbar, solange das Menü offen ist
     (und ohne transform, sonst wäre die Fläche auf den Header begrenzt) */
  #kd_header:has(.mobile_nav.opened),
  .et-db #et-boc .et-l #kd_header:has(.mobile_nav.opened) {
    transform: none !important;
    opacity: 1 !important;
    margin-top: 0 !important;
  }

  /* Seite hinter dem Menü nicht scrollen */
  html:has(.mobile_nav.opened),
  body:has(.mobile_nav.opened) {
    overflow: hidden;
  }
}

@keyframes kd-menu-in {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  .mobile_nav.opened .et_mobile_menu > li { animation: none; }
  .et_pb_menu .et_mobile_menu li,
  .et_pb_menu .et_mobile_menu .sub-menu { transition: none !important; }
}

/* Menü-Knopf: "Menü" + drei Striche, offen: "Schließen" + X im Kreis */
.et_pb_menu .mobile_menu_bar {
  display: flex !important;
  align-items: center;
  gap: 1.2rem;
  line-height: 1 !important;
  color: var(--menu-btn);
  cursor: pointer;
}

.et_pb_menu .mobile_menu_bar::before {
  content: "Menü" !important;
  position: static !important;
  display: block !important;
  transform: none !important;
  font-family: inherit !important; /* statt Divi-Iconfont: Schrift des Menümoduls */
  font-size: 1.5rem !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  color: currentColor !important;
}

.et_pb_menu .mobile_menu_bar::after {
  content: "";
  display: block;
  width: 5.6rem;
  height: 5.6rem;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M222,128a6,6,0,0,1-6,6H40a6,6,0,0,1,0-12H216A6,6,0,0,1,222,128ZM40,70H216a6,6,0,0,0,0-12H40a6,6,0,0,0,0,12ZM216,186H40a6,6,0,0,0,0,12H216a6,6,0,0,0,0-12Z'/%3E%3C/svg%3E") center / 3.2rem no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M222,128a6,6,0,0,1-6,6H40a6,6,0,0,1,0-12H216A6,6,0,0,1,222,128ZM40,70H216a6,6,0,0,0,0-12H40a6,6,0,0,0,0,12ZM216,186H40a6,6,0,0,0,0,12H216a6,6,0,0,0,0-12Z'/%3E%3C/svg%3E") center / 3.2rem no-repeat;
  color: inherit !important; /* Divi färbt ::after sonst selbst */
  background-color: currentColor;
  transition: var(--tra-3s);
}

.et_pb_menu .mobile_nav.opened .mobile_menu_bar {
  color: var(--menu-text);
}

.et_pb_menu .mobile_nav.opened .mobile_menu_bar::before {
  content: "Schließen" !important;
}

/* offen: X im Kreis (Kreis per Maske, damit alles die Textfarbe übernimmt) */
.et_pb_menu .mobile_nav.opened .mobile_menu_bar::after {
  -webkit-mask:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M204.24,195.76a6,6,0,1,1-8.48,8.48L128,136.49,60.24,204.24a6,6,0,0,1-8.48-8.48L119.51,128,51.76,60.24a6,6,0,0,1,8.48-8.48L128,119.51l67.76-67.75a6,6,0,0,1,8.48,8.48L136.49,128Z'/%3E%3C/svg%3E") center / 2.2rem no-repeat,
    radial-gradient(circle, transparent calc(70.7% - 1.5px), #000 calc(70.7% - 1px), #000 70.7%, transparent calc(70.7% + 0.5px));
          mask:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M204.24,195.76a6,6,0,1,1-8.48,8.48L128,136.49,60.24,204.24a6,6,0,0,1-8.48-8.48L119.51,128,51.76,60.24a6,6,0,0,1,8.48-8.48L128,119.51l67.76-67.75a6,6,0,0,1,8.48,8.48L136.49,128Z'/%3E%3C/svg%3E") center / 2.2rem no-repeat,
    radial-gradient(circle, transparent calc(70.7% - 1.5px), #000 calc(70.7% - 1px), #000 70.7%, transparent calc(70.7% + 0.5px));
}

/* Call-to-Action auf dem Desktop als Button im Menü */
@media only screen and (min-width: 981px) {
  .et_pb_menu li.menu-cta {
    display: flex !important;
    align-items: center;
    align-self: center;
    margin-left: 1.2rem;
    padding: 0 !important;
  }

  .et_pb_menu li.menu-cta > a {
    display: inline-flex !important;
    align-items: center;
    padding: 1.2rem 2.8rem !important;
    line-height: 1.4 !important;
    border-radius: 999px;
    background: var(--menu-accent);
    color: var(--white) !important;
    opacity: 1 !important;
    transition: var(--tra-3s);
  }

  /* Hover: weiß mit dunkler Schrift – hebt sich vom transparenten
     wie vom dunklen Header (show-header = --c1) ab */
  .et_pb_menu li.menu-cta > a:hover {
    background: var(--white) !important;
    color: var(--c1) !important;
  }

  /* Auf der Seite selbst (z. B. Kontakt) nicht anders einfärben.
     Hohe Spezifität, weil Divi die Aktiv-Farbe modulbezogen mit !important setzt. */
  html body .et_pb_menu.et_pb_module li.menu-cta.current-menu-item > a,
  html body .et_pb_menu.et_pb_module li.menu-cta.current_page_item > a {
    background: var(--menu-accent) !important;
    color: var(--white) !important;
  }

  html body .et_pb_menu.et_pb_module li.menu-cta.current-menu-item > a:hover,
  html body .et_pb_menu.et_pb_module li.menu-cta.current_page_item > a:hover {
    background: var(--white) !important;
    color: var(--c1) !important;
  }

  /* keine Unterstrich-Linie aus dem KD-Header-Menü */
  .et-db #et-boc .et-l #kd_header li.menu-cta > a::before {
    display: none;
  }
}



/* ==========================================================================
   ACCORDION (aus neu)
   ========================================================================== */
.et_pb_accordion .et_pb_toggle_close .et_pb_toggle_title::before {
  content: "\33" !important;
  font-size: 20px;
}

.et_pb_accordion .et_pb_toggle_open .et_pb_toggle_title::before {
  display: block;
  content: "\32" !important;
  font-size: 20px;
}

/* ==========================================================================
   GALLERY 
   ========================================================================== */
.et_pb_gallery .et_pb_gallery_item { border: 3px solid #f9f5f2; }
.et_pb_gallery .et_overlay { background: #121416; }

.et_pb_gallery_image:before,
.et_pb_gallery_image:after {
  box-sizing: border-box;
  transition: var(--tra-5s);
}

.et_pb_gallery_image:before,
.et_pb_gallery_image:after {
  content: '';
  background-color: var(--white);
  position: absolute;
  top: 50%;
  left: 50%;
  opacity: 0;
  transform: translate(-50%, -50%);
  z-index: 99;
}

.et_pb_gallery_image:before {
  width: 60px;
  height: 1px;
  left: 100%;
}

.et_pb_gallery_image:after {
  height: 60px;
  width: 1px;
  top: 0%;
}

.et_pb_gallery_item:hover .et_overlay {
  opacity: 0.7;
}

.et_pb_gallery_image:hover:before,
.et_pb_gallery_image:hover:after {
  opacity: 1;
  top: 50%;
  left: 50%;
}

.et_pb_inline_icon:before,
.et_overlay.et_pb_inline_icon:before {
  content: '';
}








/* ==========================================================================
   FOOTER 
   ========================================================================== */
.kd_footer_bottom .et_pb_column {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  padding: 0 !important;
}

.kd_footer_bottom .et_pb_image {
  width: 20px;
  max-width: 20px;
  margin-top: 3px;
}

.kd_footer_bottom .et_pb_menu__menu { padding: 0; }
.kd_footer_bottom .et_pb_module { width: 100%; }

.kd_footer_menu .et_pb_menu__menu {
  font-size: clamp(0.875rem, 0.8rem + 0.375vw, 1.25rem);
}

/* FOOTER KEIN HAMBURGER MENU */
.et-l.et-l--footer .et_pb_menu__menu { display: block !important; }
.et-l.et-l--footer .et_mobile_nav_menu { display: none !important; }

/* Footer-Menü linksbündig auf tablet und Mobile */
@media only screen and (max-width: 980px) {
  .et_pb_menu--style-left_aligned .et_pb_menu__wrap {
    justify-content: flex-start !important;
  }
}

/* ==========================================================================
   KUDO SECTION (aus alt behalten)
   ========================================================================== */
.kd-heart::after {
  content: "\e089";
  font-family: 'ETmodules';
  color: var(--kdac);
}


/* === divi5-json: Basis (references/base.css) === */
/* Basis für jedes divi5-json-Projekt (Divi 5.15.1, geprüft auf bm2).
   bm = Klassen-Präfix des Projekts (project.json → css.prefix). Wird von scripts/build_css.py eingesetzt.
   Nur Regeln, die ausschließlich unsere Klassen treffen oder nachweislich nötig sind.

   Muster für Projektregeln (nicht hier, sondern in den Seitenteilen):
   - Sektionsfarbe:   .bm-x, body .et_builder_inner_content .et_pb_section.bm-x { background: … !important; }
                      (Divi-Section-Preset mit Hintergrund schreibt 0,3,0 + !important ins Inline-CSS nach style.css)
   - Textgröße:       .et_pb_text.bm-x .et_pb_text_inner { font-size: … }   (Text-Preset setzt Größe auf _inner)
   - Überschrift:     .bm-x h2 { font-size: var(--gvid-…) !important; line-height: var(--gvid-…) !important; }
                      (Heading-Modul ignoriert die fs-Variablen sonst)
   - Grid/Flex im Code-Modul auf .et_pb_code_inner setzen, nicht auf das Modul.
   - <dialog>: position: fixed; inset: 0; margin: auto !important;  ::backdrop erbt keine :root-Variablen → feste Farben.
   - Sticky-Elemente nie über body.admin-bar versetzen (Admin-Leiste ist schon über scroll-padding berücksichtigt). */

/* overflow: hidden am #page-container verhindert position: sticky; Divis Animations-Skript setzt zusätzlich
   inline overflow-y: hidden → !important. clip schneidet horizontal ab, ohne Scroll-Container zu erzeugen. */
#page-container { overflow-x: clip !important; overflow-y: visible !important; }

/* Divi-Section-Preset („Default“) mit Hintergrundfarbe überdeckt sonst unsere Sektionsfarben.
   Gleiche Spezifität wie die Projektmuster oben → die spätere Regel (Seitenteil) gewinnt. */
body .et_builder_inner_content .et_pb_section[class*=" bm-"] { background-color: transparent !important; }

/* Keine automatische Silbentrennung in unseren Überschriften */
:is([class^="bm-"], [class*=" bm-"]) :is(h1, h2, h3, h4, h5, h6) { -webkit-hyphens: manual; hyphens: manual; }

/* Lange Button-Texte mobil umbrechen statt über den Rand zu laufen */
@media (max-width: 520px) {
  body #page-container .et_pb_button.et_pb_button[class*=" bm-"] { white-space: normal !important; text-align: left; line-height: 1.2 !important; }
}

/* ---- Hilfsklassen (nur wirksam, wenn am Modul gesetzt) ------------------- */
/* Liste ohne Divi-Aufzählung/-Einzug/-padding-bottom (Text-Modul oder Code-Modul) */
.bm-plain-list :is(ul, ol) { margin: 0; padding: 0 !important; list-style: none !important; }
.bm-plain-list li { margin: 0; padding: 0 !important; list-style: none !important; }
/* Tabelle ohne Divi-Rahmen/-Einzug */
.bm-plain-table table, .bm-plain-table td, .bm-plain-table th { border: 0 !important; padding: 0; margin: 0; }
/* Spalte/Gruppe ohne Divis 30px-Abstand zwischen Modulen (Abstände kommen aus den Modulrändern) */
.bm-gap0 { row-gap: 0 !important; }
/* Text-Modul übernimmt Schriftgröße/Zeilenhöhe vom Elternelement statt vom Text-Preset */
.et_pb_text.bm-inherit .et_pb_text_inner { font-size: inherit; line-height: inherit; }
/* === Ende Basis (references/base.css) === */


/* === divi5-json: Header === */
/* Vollbild-Menü behält Papier-Hintergrund trotz Section-Preset-Neutralisierung (Basis) */
body .et_builder_inner_content .et_pb_section.bm-mnav { background-color: var(--bm-paper) !important; }

/* Farben Bauer Martin – eigene Variablen, weil Divi im Frontend nur die
   auf der Seite verwendeten globalen Farben (--gcid-…) ausgibt.
   Werte = Divi-Farben (Variablen-Panel). */
:root {
  --bm-green:     #9CC543; /* pri 500 */
  --bm-green-100: #EFF5E0; /* pri 100 */
  --bm-green-300: #B1D16B; /* pri 400 */
  --bm-green-700: #42551A; /* pri 800 */
  --bm-green-900: #252F0E; /* pri 900 */
  --bm-ink:       #1B2410; /* ink */
  --bm-paper:     #F7F3EA; /* paper */
  --bm-kraft:     #E6D8BC; /* kraft */
  --bm-chalk:     #262B22; /* chalk */
  --bm-yolk:      #F4B63A; /* yolk */
  --bm-apple:     #B4342A; /* apple */
  --bm-pad:       clamp(20px, 4vw, 56px);
  --bm-ease:      cubic-bezier(.2, .7, .2, 1);
}

/* Hilfsklasse: nur für Screenreader */
.sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* Live-Punkt (offen pulsiert) */
.bm-dot { position: relative; flex: none; width: 10px; height: 10px; border-radius: 50%; background: var(--bm-apple); }
.bm-dot.open { background: var(--bm-green); }
.bm-dot.open::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: var(--bm-green); animation: bm-pulse 2s var(--bm-ease) infinite; }
@keyframes bm-pulse { from { transform: scale(1); opacity: .7; } to { transform: scale(2.6); opacity: 0; } }

/* ==========================================================================
   HEADER – Topbar (schwebende Pille, blendet nach dem Hero ein)
   Größen fest in rem (1rem = 10px), weil Divi für diese Elemente keine
   eigene Typo-Einstellung hat. Schriftart erbt.
   ========================================================================== */
.et-l--header .bm-header { position: static; padding: 0; background: none; }

.bm-topbar {
  position: fixed; top: 14px; left: 50%; z-index: 90;
  transform: translate(-50%, -140%);
  width: min(1440px, calc(100% - 2 * var(--bm-pad)));
  white-space: nowrap;
  background: rgb(from var(--bm-paper) r g b / .9);
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  padding: 8px 8px 8px 18px; border-radius: 999px;
  box-shadow: 0 18px 40px -18px rgb(from var(--bm-ink) r g b / .45);
  color: var(--bm-ink);
  transition: transform 500ms var(--bm-ease);
}
.bm-topbar.show { transform: translate(-50%, 0); }
body.admin-bar .bm-topbar { top: 46px; }
@media (max-width: 782px) { body.admin-bar .bm-topbar { top: 60px; } }
.bm-topbar > * { flex-shrink: 0; }

/* Marke */
.bm-topbar-brand { color: inherit; text-decoration: none; }
.bm-topbar-brand .et_pb_image, .bm-topbar-brand .et_pb_image img { width: 34px; height: 34px; margin: 0; }
.bm-topbar-name { margin: 0; padding: 0; font-weight: 800; font-size: 1.8rem; letter-spacing: -.01em; line-height: 1; }
.bm-topbar-name p { padding: 0; }

/* Menü (Divi-Menümodul, ohne Divis Mobilmenü) */
.bm-topbar-nav, .bm-mnav-links { background: none !important; }
.bm-topbar-nav .et_mobile_nav_menu, .bm-mnav-links .et_mobile_nav_menu { display: none !important; }
.bm-topbar-nav .et_pb_menu__menu, .bm-mnav-links .et_pb_menu__menu { display: block !important; }
.bm-topbar-nav .et-menu { display: flex !important; flex-wrap: nowrap; gap: 24px; margin: 0; }
.bm-topbar-nav .et-menu > li { padding: 0 !important; }
.bm-topbar-nav .et-menu > li > a {
  position: relative; padding: 0 !important; text-decoration: none;
  font-weight: 600; font-size: 1.5rem; color: var(--bm-ink) !important; opacity: 1 !important;
}
.bm-topbar-nav .et-menu > li > a::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -5px; height: 3px; border-radius: 2px;
  background: var(--bm-green); transform: scaleX(0); transform-origin: left; transition: transform 350ms var(--bm-ease);
}
.bm-topbar-nav .et-menu > li > a:hover::after,
.bm-topbar-nav .et-menu > li > a.is-active::after,
.bm-topbar-nav .et-menu > li.current-menu-item:not(.bm-anchor) > a::after { transform: scaleX(1); }

/* Live-Status-Chip */
.bm-topbar-tools .et_pb_code_inner { display: flex; align-items: center; gap: 10px; }
.bm-chip-live {
  display: inline-flex; align-items: center; gap: 14px; padding: 10px 16px; border-radius: 999px;
  background: var(--bm-ink); color: var(--bm-paper) !important; text-decoration: none;
  font-weight: 700; font-size: 1.4rem; line-height: 1;
}
.bm-chip-live .seg { display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; }
.bm-chip-live .seg + .seg { padding-left: 14px; border-left: 1px solid rgb(from var(--bm-paper) r g b / .25); }
.bm-chip-live .tm { font-weight: 500; opacity: .8; }
.bm-chip-live:focus-visible { outline: 2px solid var(--bm-yolk); outline-offset: 2px; }

/* Menü-Button (nur wenn es eng wird bzw. unter 981 px) */
.bm-menu-btn {
  display: none; place-items: center; flex: none; width: 42px; height: 42px; padding: 0; cursor: pointer;
  border-radius: 50%; border: 0; background: var(--bm-ink); color: var(--bm-paper); transition: background-color 200ms;
}
.bm-menu-btn:hover { background: var(--bm-green-700); }
.bm-menu-btn svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; }

/* Wird es eng, blendet das Skript stufenweise aus (gemessen statt fester Breakpoints) */
.bm-topbar.fit-1 .bm-chip-live .tm { display: none; }
.bm-topbar.fit-2 .bm-topbar-name { display: none; }
.bm-topbar.fit-3 .bm-topbar-nav .et-menu { gap: 16px; }
.bm-topbar.fit-4 { width: max-content; }
.bm-topbar.fit-4 .bm-topbar-nav { display: none; }
.bm-topbar.fit-4 .bm-menu-btn { display: grid; }

@media (max-width: 980px) {
  .bm-topbar { gap: 14px; padding-left: 10px; width: max-content; }
  .bm-topbar .bm-topbar-nav, .bm-topbar .bm-topbar-name { display: none; }
  .bm-topbar .bm-menu-btn { display: grid; }
}
@media (max-width: 767px) {
  .bm-topbar { gap: 10px; padding: 6px 6px 6px 10px; }
  .bm-chip-live { gap: 10px; padding: 10px 12px; }
  .bm-chip-live .seg + .seg { padding-left: 10px; }
  .bm-chip-live .tm { display: none; }
}

/* ==========================================================================
   HEADER – Vollbild-Menü (#bm-mnav)
   ========================================================================== */
.bm-mnav {
  position: fixed !important; inset: 0; z-index: 100002;
  display: none; overflow-y: auto; overscroll-behavior: contain;
  padding: 18px var(--bm-pad) 34px !important; background: var(--bm-paper) !important; color: var(--bm-ink);
}
.bm-mnav.is-open { display: block; }
/* Admin-Leiste liegt sonst über dem Menü (Header-Ebene z-index 99999 = Admin-Leiste) */
body.admin-bar .bm-mnav { top: 32px; }
@media (max-width: 782px) { body.admin-bar .bm-mnav { top: 46px; } }
.bm-mnav > .et_pb_row { width: 100%; max-width: none; min-height: 100%; padding: 0; }
.bm-mnav .et_pb_column { display: flex; flex-direction: column; gap: 28px; min-height: calc(100dvh - 52px); }
.bm-mnav-logo { flex: none; width: 84px; }
.bm-mnav-logo .et_pb_image, .bm-mnav-logo img { display: block; width: 84px !important; max-width: none; height: auto; margin: 0; }
.bm-mnav-close {
  display: grid; place-items: center; width: 46px; height: 46px; padding: 0; cursor: pointer;
  border-radius: 50%; border: 2px solid var(--bm-ink); background: transparent; color: var(--bm-ink); transition: background-color 200ms;
}
.bm-mnav-close:hover { background: var(--bm-green-100); }
.bm-mnav-close svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; }

.bm-mnav .bm-mnav-links, .bm-mnav-links .et_pb_menu_inner_container, .bm-mnav-links .et_pb_menu__wrap,
.bm-mnav-links .et_pb_menu__menu, .bm-mnav-links nav { align-self: stretch; width: 100% !important; max-width: none; text-align: left !important; justify-content: flex-start !important; }
.bm-mnav-links .et-menu { display: grid !important; grid-template-columns: 1fr; justify-content: stretch !important; width: 100% !important; margin: 0; }
.bm-mnav-links .et-menu > li { display: block !important; width: 100%; }
.bm-mnav-links .et-menu > li { padding: 0 !important; }
.bm-mnav-links .et-menu > li > a {
  display: block; padding: 12px 0 !important; border-bottom: 1px solid rgb(from var(--bm-ink) r g b / .12);
  font-weight: 800; font-size: var(--gvid-xbbdqp1whl, 3.6rem); /* = fs-h2 */
  line-height: 1.1; letter-spacing: -.02em; color: var(--bm-ink) !important; text-decoration: none; opacity: 1 !important;
}
.bm-mnav-links .et-menu > li > a:hover,
.bm-mnav-links .et-menu > li.current-menu-item:not(.bm-anchor) > a { color: var(--bm-green-700) !important; }

.bm-mnav-status-link {
  display: grid; gap: 8px; padding: 16px 18px; border-radius: 18px;
  background: var(--bm-green-100); color: var(--bm-ink) !important; font-size: 1.4rem; text-decoration: none;
}
.bm-mnav-status-link > span { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.bm-mnav-actions { flex-wrap: wrap; margin-top: auto; }

/* Buttons: ruhige Pillen
   Divi 5 setzt die Modul-Klasse direkt auf <a class="et_pb_button bm-btn">.
   Hohe Spezifität, weil das Divi-Button-Preset Farben modulbezogen setzt
   (Frontend: body #page-container .et_pb_section …, Builder: body.et-db #page-container #et-boc .et-l …). */
body #page-container .et_pb_button.bm-btn, body #page-container .et_pb_button.bm-btn-ghost {
  display: inline-flex; align-items: center; gap: 10px; padding: 16px 26px !important;
  border-radius: 999px !important; font-weight: 700; line-height: 1 !important; white-space: nowrap;
  transition: background-color 200ms, border-color 200ms, color 200ms;
}
body #page-container .et_pb_button.bm-btn::after, body #page-container .et_pb_button.bm-btn-ghost::after { display: none !important; }
body #page-container .et_pb_section .et_pb_button.bm-btn,
body.et-db #page-container #et-boc .et-l .et_pb_button.bm-btn { background: var(--bm-green) !important; color: var(--bm-ink) !important; border: 2px solid var(--bm-green) !important; }
body #page-container .et_pb_section .et_pb_button.bm-btn:hover,
body.et-db #page-container #et-boc .et-l .et_pb_button.bm-btn:hover { background: var(--bm-ink) !important; border-color: var(--bm-ink) !important; color: var(--bm-paper) !important; }
body #page-container .et_pb_section .et_pb_button.bm-btn-ghost,
body.et-db #page-container #et-boc .et-l .et_pb_button.bm-btn-ghost { background: var(--bm-paper) !important; color: var(--bm-ink) !important; border: 2px solid var(--bm-ink) !important; }
body #page-container .et_pb_section .et_pb_button.bm-btn-ghost:hover,
body.et-db #page-container #et-boc .et-l .et_pb_button.bm-btn-ghost:hover { background: var(--bm-green-100) !important; }

html.bm-mnav-open { overflow: hidden; }
@media (prefers-reduced-motion: no-preference) {
  .bm-mnav.is-open { animation: bm-mnav-in 280ms var(--bm-ease); }
  @keyframes bm-mnav-in { from { opacity: 0; transform: translateY(-12px); } to { opacity: 1; transform: none; } }
}

/* ==========================================================================
   VISUAL BUILDER: Topbar und Vollbild-Menü bearbeitbar anzeigen
   (bm-site.js wird im Builder nicht geladen)
   ========================================================================== */
html.et-vb-app-ancestor .bm-topbar { position: relative !important; top: auto !important; left: auto !important; transform: none !important; margin: 20px auto; }
html.et-vb-app-ancestor .bm-mnav { position: relative !important; inset: auto !important; display: block !important; z-index: auto; margin-top: 40px; outline: 2px dashed rgb(from var(--bm-ink) r g b / .3); outline-offset: -2px; }
html.et-vb-app-ancestor .bm-mnav::before { content: "Vollbild-Menü – im Frontend nur nach Klick auf den Menü-Button sichtbar"; display: block; margin-bottom: 12px; font-size: 1.3rem; opacity: .6; }
html.et-vb-app-ancestor .bm-mnav .et_pb_column { min-height: 0; }
/* === Ende Header === */


/* === divi5-json: Startseite Hero === */
/* ==========================================================================
   STARTSEITE – 1. HERO (#top .bm-hero)
   Aufbau: Section .bm-hero > Row .bm-hero-row > Column .bm-hero-stage (sticky)
   Die Column ist der Positionierungsrahmen; alle Teile liegen absolut darin.
   bm-site.js setzt --p (Scroll-Fortschritt 0…1) und die Klassen is-p2/is-p4/is-full/is-p6,
   teilt die H1 in zwei Zeilen und erzeugt die helle Kopie .bm-hero-type.over.
   Schriftgrößen der Headline skalieren mit dem Viewport (--hfs), daher fest im CSS.
   ========================================================================== */
.bm-note { display: inline-block; font-weight: 400; font-size: 1.5em; line-height: 1.1; color: var(--bm-green-700); rotate: -3deg; }
.bm-note p { padding: 0 !important; }
/* Text-Preset setzt die Größe auf .et_pb_text_inner – hier soll die Klasse gelten */
.et_pb_text.bm-note .et_pb_text_inner { font-size: inherit; line-height: inherit; }

.bm-hero, body .et_builder_inner_content .et_pb_section.bm-hero { --p: 0; --hfs: min(9.67vw, 15.5svh); position: relative; height: 175svh; padding: 0 !important; background: var(--bm-paper) !important; }
.bm-hero > .bm-hero-row { height: 100%; width: 100% !important; max-width: none !important; padding: 0 !important; margin: 0 !important; align-items: flex-start; }
.bm-hero .bm-hero-stage { position: sticky; top: 0; display: block; width: 100% !important; height: 100svh; margin: 0 !important; overflow: hidden; }
.bm-hero .bm-hero-stage > .et_pb_module { margin: 0; }
.bm-hero .et_pb_text p, .bm-hero .et_pb_heading h1 { padding-bottom: 0; }

/* Navigation */
.bm-hero .bm-hero-nav { position: absolute; z-index: 6; top: 0; left: 0; right: 0; padding: calc(var(--bm-pad) * .6) var(--bm-pad) 0; }
.bm-hero-logo { position: relative; display: block; flex: none; width: 97px; text-decoration: none; }
.bm-hero-logo .bm-logo, .bm-hero-logo .bm-logo img { display: block; width: 97px !important; max-width: none; height: auto; margin: 0 !important; }
.bm-hero-logo .bm-logo { transition: opacity 450ms var(--bm-ease); }
.bm-hero-logo .bm-logo.neg { position: absolute; inset: 0; opacity: 0; }
.bm-hero.is-full .bm-hero-logo .pos { opacity: 0; }
.bm-hero.is-full .bm-hero-logo .neg { opacity: 1; }

.bm-hero-menu { background: none !important; }
.bm-hero-menu .et_mobile_nav_menu { display: none !important; }
.bm-hero-menu .et_pb_menu__menu { display: block !important; }
.bm-hero-menu .et-menu { display: flex !important; flex-wrap: nowrap; gap: 28px; margin: 0; }
.bm-hero-menu .et-menu > li { padding: 0 !important; }
.bm-hero-menu .et-menu > li > a {
  position: relative; padding: 0 !important; text-decoration: none; opacity: 1 !important;
  font-weight: 600; font-size: 1.5rem; color: var(--bm-ink) !important; transition: color 350ms;
}
.bm-hero-menu .et-menu > li > a::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -5px; height: 3px; border-radius: 2px;
  background: var(--bm-green); transform: scaleX(0); transform-origin: left; transition: transform 350ms var(--bm-ease);
}
.bm-hero-menu .et-menu > li > a:hover::after,
.bm-hero-menu .et-menu > li.current-menu-item:not(.bm-anchor) > a::after { transform: scaleX(1); }
.bm-hero.is-full .bm-hero-menu .et-menu > li > a { color: var(--bm-paper) !important; }
body #page-container .et_pb_button.bm-btn.sm { padding: 11px 18px !important; font-size: 1.5rem !important; }
.bm-hero.is-full .bm-menu-btn.hero { background: var(--bm-paper); color: var(--bm-ink); }
@media (max-width: 980px) {
  .bm-hero-menu { display: none !important; }
  .bm-hero .bm-hero-links { column-gap: 10px !important; }
  .bm-hero .bm-menu-btn.hero { display: grid; }
}

/* Video-Rahmen: wächst mit --p von der Karte rechts zum Vollbild */
.bm-hero .bm-frame {
  position: absolute; z-index: 2; margin: 0;
  top: calc(14svh * (1 - var(--p))); right: calc(var(--bm-pad) * (1 - var(--p)));
  bottom: calc(var(--bm-pad) * (1 - var(--p))); left: calc(44% * (1 - var(--p)));
  border-radius: calc(32px * (1 - var(--p))); overflow: hidden;
  box-shadow: 0 50px 90px -40px rgb(from var(--bm-ink) r g b / .6); background: var(--bm-green-900);
}
.bm-hero .bm-frame .et_pb_code_inner { position: static !important; } /* Builder setzt relative → Video hätte Höhe 0 */
.bm-frame video, .bm-frame .bm-poster { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.bm-frame .bm-poster { display: none; }
.bm-frame.is-fallback video { display: none; }
.bm-frame.is-fallback .bm-poster { display: block; animation: bm-kenburns 18s ease-in-out infinite alternate; }
@keyframes bm-kenburns { from { transform: scale(1); } to { transform: scale(1.08); } }
.bm-frame::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, rgb(from var(--bm-ink) r g b / 0) 40%, rgb(from var(--bm-ink) r g b / calc(.15 + var(--p) * .45))); }
.bm-hero-play {
  position: absolute; z-index: 2; right: 20px; bottom: 20px; display: none; align-items: center; gap: 10px; cursor: pointer;
  padding: 12px 18px 12px 14px; border-radius: 999px; border: 0; background: var(--bm-green); color: var(--bm-ink);
  font-weight: 700; font-size: 1.5rem; line-height: 1; transition: background-color 200ms, color 200ms;
}
.bm-hero-play:hover { background: var(--bm-ink); color: var(--bm-paper); }
.bm-hero-play svg { width: 16px; height: 16px; fill: currentColor; }
.bm-frame.is-paused .bm-hero-play { display: inline-flex; }

/* Headline: .base dunkel unter dem Rahmen, .over (JS-Kopie) hell im Rahmen per clip-path */
.bm-hero .bm-hero-type { position: absolute; inset: 0; z-index: 1; margin: 0; pointer-events: none; }
.bm-hero .bm-hero-type.over {
  z-index: 3;
  clip-path: inset(
    calc(14svh * (1 - var(--p)))
    calc(var(--bm-pad) * (1 - var(--p)))
    calc(var(--bm-pad) * (1 - var(--p)))
    calc(44% * (1 - var(--p)))
    round calc(32px * (1 - var(--p))));
}
.bm-hero .bm-hero-hl { position: absolute; left: var(--bm-pad); top: var(--hl-top, 50%); translate: 0 -50%; display: block; }
.bm-hero-hl .bm-note { display: block; width: max-content; font-size: 3rem; margin: 0 0 .35em .1em; animation: bm-rise 700ms var(--bm-ease) 100ms both; }
.bm-hero-type.over .bm-note { color: var(--bm-green); }
.bm-hero-h1, .bm-hero-h1 .et_pb_heading_container { margin: 0; padding: 0; }
.bm-hero .bm-hero-h1 h1, .bm-hero .bm-hero-h1 .bm-h1-copy {
  margin: 0; padding: 0; font-weight: 900; font-size: var(--hfs) !important; line-height: .9 !important;
  letter-spacing: -.045em; color: var(--bm-ink); white-space: nowrap;
}
.bm-hero .bm-hero-type.over .bm-hero-h1 .bm-h1-copy { color: var(--bm-paper); }
.bm-hero-h1 .l { display: block; width: max-content; animation: bm-rise 700ms var(--bm-ease) both; }
.bm-hero-h1 .l1 { animation-delay: 200ms; }
.bm-hero-h1 .l2 { position: relative; animation-delay: 320ms; }
.bm-hero-stroke { position: absolute; left: 0; bottom: -.1em; width: 100%; height: .11em; overflow: visible; }
.bm-hero-stroke path { fill: none; stroke: var(--bm-green); stroke-width: 7; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: 1; animation: bm-draw 900ms var(--bm-ease) 700ms forwards; }
@keyframes bm-rise { from { opacity: 0; transform: translateY(.4em); } to { opacity: 1; transform: none; } }
@keyframes bm-draw { to { stroke-dashoffset: 0; } }

/* Intro unten links */
.bm-hero .bm-hero-intro { position: absolute; z-index: 4; left: var(--bm-pad); bottom: var(--bm-pad); max-width: min(40%, 520px); margin: 0; transition: opacity 450ms var(--bm-ease), translate 450ms var(--bm-ease); }
.bm-hero.is-p2 .bm-hero-intro { opacity: 0; translate: 0 24px; pointer-events: none; }
.bm-hero-intro .et_pb_module { margin: 0; }
.bm-hero-news {
  display: inline-flex; align-items: center; gap: 10px; margin-bottom: 18px; padding: 6px 14px 6px 6px; border-radius: 999px;
  background: var(--bm-green-100); color: var(--bm-ink) !important; font-size: 1.4rem; font-weight: 600; line-height: 1.3; text-decoration: none; transition: background-color 200ms;
}
.bm-hero-news:hover { background: color-mix(in srgb, var(--bm-green-100), var(--bm-green) 15%); }
.bm-hero-news .tag { padding: 5px 9px; border-radius: 999px; background: var(--bm-green); font-size: 1.1rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.bm-hero-text p { font-size: 1.8rem; line-height: 1.55; }
.bm-hero .bm-hero-actions { margin-top: 24px; }
.bm-hero-facts { margin-top: 20px !important; }
.bm-hero-facts ul { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 0; margin: 0; padding: 0 !important; list-style: none; font-size: 1.4rem; font-weight: 600; line-height: 1.4; }
.bm-hero-facts li { display: inline-flex; align-items: center; margin: 0; }
.bm-hero-facts li + li::before { content: ""; width: 4px; height: 4px; margin: 0 12px; border-radius: 50%; background: currentColor; }
@media (max-width: 520px) { .bm-hero-facts li:last-child { display: none; } }
/* Niedrige Querformate (z. B. Tablet quer, 1024×768): Intro kompakter, damit es die Headline nicht überlappt.
   Die Fakten stehen auch in Stempel und Neuigkeit. */
@media (min-aspect-ratio: 5/4) and (max-height: 860px) {
  .bm-hero-text p { font-size: 1.6rem; }
  .bm-hero .bm-hero-facts { display: none; }
  .bm-hero .bm-hero-actions { margin-top: 18px; }
  .bm-hero-news { margin-bottom: 12px; }
}

/* Button-Icon „Ort“ (Divi-Buttons haben kein Inline-SVG) */
body #page-container .et_pb_button.bm-ico-pin::before {
  content: "" !important; display: block !important; position: static !important; opacity: 1 !important; margin: 0 !important;
  width: 20px; height: 20px; flex: none; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11.5a7 7 0 0 1 14 0C19 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11.5a7 7 0 0 1 14 0C19 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Stempel auf der oberen rechten Rahmenecke */
.bm-hero .bm-stamp-wrap, .bm-stamp-wrap .et_pb_code_inner { position: static; margin: 0; }
.bm-stamp {
  position: absolute; z-index: 5; display: grid; place-items: center; text-decoration: none; color: var(--bm-ink) !important;
  width: clamp(118px, 11vw, 168px); aspect-ratio: 1; border-radius: 50%;
  right: calc(var(--bm-pad) * (1 - var(--p)) - 2vw); top: calc(14svh * (1 - var(--p)) - 1.6vw);
  background: var(--bm-green); border: 3px solid var(--bm-ink); box-shadow: 5px 6px 0 var(--bm-ink); rotate: -10deg;
  animation: bm-stick 800ms cubic-bezier(.3, 1.6, .5, 1) 900ms backwards;
  transition: opacity 300ms, scale 300ms cubic-bezier(.3, 1.6, .5, 1), background 300ms;
}
.bm-stamp.closed { background: var(--bm-paper); }
.bm-stamp:hover { scale: 1.06; }
.bm-stamp:focus-visible { outline: 3px solid var(--bm-ink); outline-offset: 3px; }
.bm-hero.is-p4 .bm-stamp { opacity: 0; pointer-events: none; }
.bm-stamp-ring { position: absolute; inset: 0; width: 100%; height: 100%; animation: bm-spin 18s linear infinite; }
.bm-stamp-ring text { font-weight: 800; font-size: 6.4px; letter-spacing: .9px; fill: var(--bm-ink); }
.bm-stamp-mid { position: relative; text-align: center; font-weight: 900; font-size: clamp(14px, 1.3vw, 20px); line-height: .98; letter-spacing: -.02em; }
.bm-stamp-mid span { display: block; }
@keyframes bm-spin { to { transform: rotate(360deg); } }
@keyframes bm-stick { from { opacity: 0; scale: 2.2; rotate: 25deg; } to { opacity: 1; scale: 1; rotate: -10deg; } }

/* Zweite Zeile im Vollbild */
.bm-hero .bm-hero-line2 { position: absolute; z-index: 4; left: 50%; bottom: calc(var(--bm-pad) * 1.3); translate: -50% 0; margin: 0; rotate: none; white-space: nowrap; pointer-events: none; opacity: 0; font-size: clamp(32px, 4vw, 60px); color: var(--bm-paper); }
.bm-hero.is-p6 .bm-hero-line2 { animation: bm-rise 700ms var(--bm-ease) forwards; }

/* Hochformat (Tablet hochkant, Smartphone): gestapelt statt Scroll-Bühne */
@media (max-aspect-ratio: 5/4) {
  .bm-hero { --hfs: min(15.5vw, calc((100vw - 2 * var(--bm-pad)) / 7.05)); height: auto; }
  .bm-hero .bm-hero-stage { position: relative; top: auto !important; height: auto !important; display: flex; flex-direction: column; }
  .bm-hero .bm-hero-type.base { position: relative; inset: auto; order: 1; padding: 96px var(--bm-pad) 0; }
  .bm-hero .bm-hero-type.base .bm-hero-hl { position: relative; left: auto; top: auto; translate: none; }
  .bm-hero .bm-hero-type.over { clip-path: inset(var(--ct, 0) var(--cr, 0) var(--cb, 0) var(--cl, 100%) round 24px); }
  .bm-hero .bm-hero-type.over .bm-hero-hl { translate: none; }
  .bm-hero .bm-hero-stage > .bm-frame { position: relative; inset: auto; order: 2; aspect-ratio: 4 / 5; font-size: var(--hfs); margin: -.5em var(--bm-pad) 0; border-radius: 24px; }
  .bm-frame::after { background: linear-gradient(180deg, rgb(from var(--bm-ink) r g b / .5), rgb(from var(--bm-ink) r g b / 0) 22%, rgb(from var(--bm-ink) r g b / 0) 60%, rgb(from var(--bm-ink) r g b / .15)); }
  .bm-stamp { left: auto; right: var(--bm-pad); top: var(--stamp-top, 50%); width: 104px; }
  .bm-stamp-mid { font-size: 14px; }
  .bm-hero .bm-hero-intro { position: relative; order: 3; left: auto; bottom: auto; max-width: none; padding: 28px var(--bm-pad) 40px; }
  .bm-hero .bm-hero-line2 { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .bm-hero { height: auto; }
  .bm-hero .bm-hero-stage { position: relative; }
}

/* VISUAL BUILDER: gestapelt und bearbeitbar (bm-site.js läuft dort nicht) */
html.et-vb-app-ancestor .bm-hero { height: auto; }
html.et-vb-app-ancestor .bm-hero .bm-hero-stage { position: relative; top: auto; height: auto; overflow: visible; display: flex; flex-direction: column; gap: 24px; padding-bottom: 40px; }
html.et-vb-app-ancestor .bm-hero .bm-hero-stage > * { position: relative !important; inset: auto !important; translate: none !important; max-width: none; }
html.et-vb-app-ancestor .bm-hero .bm-hero-type.base { padding: 0 var(--bm-pad); }
html.et-vb-app-ancestor .bm-hero .bm-hero-hl { position: relative; left: auto; top: auto; translate: none; }
html.et-vb-app-ancestor .bm-hero .bm-hero-h1 h1 { white-space: normal; }
html.et-vb-app-ancestor .bm-hero .bm-frame { aspect-ratio: 16 / 9; margin: 0 var(--bm-pad); }
html.et-vb-app-ancestor .bm-hero .bm-frame video { pointer-events: none; }
html.et-vb-app-ancestor .bm-stamp { position: relative; right: auto; top: auto; margin-left: var(--bm-pad); }
html.et-vb-app-ancestor .bm-hero .bm-hero-intro { padding: 0 var(--bm-pad); }
html.et-vb-app-ancestor .bm-hero .bm-hero-line2 { display: block; order: 4; opacity: 1; color: var(--bm-green-700); padding: 0 var(--bm-pad); }
/* === Ende Startseite Hero === */


/* === divi5-json: Startseite Laufband === */
/* ==========================================================================
   STARTSEITE – 2. LAUFBAND (.bm-ticker-sec > … > Text .bm-ticker)
   Begriffe als <ul> im Text-Modul; bm-site.js ersetzt die Liste im Frontend
   durch das laufende Band (.bm-ticker-track). Ohne JS: Liste in einer Zeile.
   ========================================================================== */
.bm-ticker-sec, body .et_builder_inner_content .et_pb_section.bm-ticker-sec { position: relative; z-index: 5; padding: 0 !important; background: transparent !important; overflow: visible; }
.bm-ticker-sec > .et_pb_row { width: 100% !important; max-width: none !important; padding: 0 !important; margin: 0 !important; }
.bm-ticker-sec .et_pb_column { margin: 0; }

.bm-ticker-sec .bm-ticker {
  position: relative; overflow: hidden; width: calc(100% + 8vw) !important; max-width: none;
  margin: -10px 0 0 -4vw !important; padding: 16px 0;
  background: var(--bm-green); color: var(--bm-ink); transform: rotate(-2deg);
  box-shadow: 0 20px 40px -20px rgb(from var(--bm-ink) r g b / .5);
}
/* Text-Preset setzt die Größe auf .et_pb_text_inner */
.et_pb_text.bm-ticker .et_pb_text_inner {
  font-weight: 900; font-size: clamp(30px, 4.4vw, 64px); line-height: 1.05; letter-spacing: -.02em; color: var(--bm-ink);
}
.bm-ticker ul { display: flex; gap: .64em; width: max-content; margin: 0; padding: 0 0 0 .32em !important; list-style: none; white-space: nowrap; }
.bm-ticker ul li { margin: 0; padding: 0; }
.bm-ticker-track { display: flex; width: max-content; will-change: transform; }
.bm-ticker-item { display: inline-flex; align-items: center; gap: .32em; padding-right: .32em; white-space: nowrap; }
.bm-ticker-item .bm-sprout { display: inline-block; flex: none; width: .62em; height: auto; fill: currentColor; }
@media (max-aspect-ratio: 5/4) { .bm-ticker-sec .bm-ticker { margin-top: 0 !important; } }

/* Visual Builder: Liste umbrechen, damit alle Begriffe sichtbar und bearbeitbar sind */
html.et-vb-app-ancestor .bm-ticker-sec .bm-ticker { transform: none; width: 100% !important; margin: 0 !important; }
html.et-vb-app-ancestor .bm-ticker ul { flex-wrap: wrap; width: auto; white-space: normal; row-gap: .2em; }
/* === Ende Startseite Laufband === */


/* === divi5-json: Startseite Märkte === */
/* ==========================================================================
   STARTSEITE – 3. UNSERE MÄRKTE (#maerkte .bm-maerkte)
   Kopf: Row .bm-maerkte-head; Karten: Row .bm-maerkte-cards, jede Column = Karte .bm-markt.
   Überschriften-Größen kommen aus den Divi-Variablen (fs-h2/fs-h3).
   Text-Preset setzt Größen auf .et_pb_text_inner → Regeln mit .et_pb_text.<klasse> .et_pb_text_inner.
   ========================================================================== */
.bm-maerkte, body .et_builder_inner_content .et_pb_section.bm-maerkte { padding: clamp(110px, 12vw, 180px) 0 0 !important; background: transparent; }
.bm-maerkte .et_pb_text p { padding-bottom: 0; }

/* Allgemeine Bausteine (auch für spätere Sections) */
.et_pb_text.bm-eyebrow .et_pb_text_inner {
  display: flex; align-items: center; gap: 10px; margin-bottom: 18px;
  font-size: 1.3rem; font-weight: 700; line-height: 1.2; letter-spacing: .16em; text-transform: uppercase; color: var(--bm-green-700);
}
.et_pb_text.bm-eyebrow .et_pb_text_inner::before { content: ""; flex: none; width: 24px; height: 2px; background: currentColor; }
.bm-h2 h2 { font-weight: 800; letter-spacing: -.025em; padding-bottom: 0; }
.et_pb_text.bm-lede .et_pb_text_inner { font-size: clamp(17px, 1.3vw, 20px); line-height: 1.6; max-width: 48ch; }
.bm-dot.soon { background: var(--bm-yolk); }

/* Kopf */
.bm-maerkte-head { align-items: flex-end !important; }

/* Karten */
.bm-maerkte-cards { margin-top: clamp(40px, 5vw, 64px); }
.bm-maerkte .bm-markt {
  display: grid !important; grid-template-columns: minmax(0, .85fr) minmax(0, 1fr); gap: 0 !important;
  overflow: hidden; border-radius: 26px; border: 2px solid var(--bm-ink); background: var(--bm-paper);
}
.bm-markt > .et_pb_module { margin: 0; }
.bm-markt-ph { position: relative; min-height: 340px; border-right: 2px solid var(--bm-ink); }
.bm-markt-ph .bm-markt-img { position: absolute !important; inset: 0; margin: 0 !important; }
.bm-markt-img .et_pb_image_wrap, .bm-markt-img img { display: block; width: 100%; height: 100%; object-fit: cover; }

.bm-markt-body { padding: clamp(22px, 2.4vw, 34px); height: 100%; }
.bm-markt-body > .et_pb_module { margin: 0; }
.et_pb_text.bm-markt-kind .et_pb_text_inner { font-size: 1.2rem; font-weight: 700; line-height: 1.3; letter-spacing: .14em; text-transform: uppercase; color: var(--bm-green-700); }
.bm-markt-title h3 { font-weight: 800; line-height: .95; letter-spacing: -.035em; padding-bottom: 0; }
.et_pb_text.bm-markt-addr .et_pb_text_inner { font-size: 1.6rem; line-height: 1.5; }
.et_pb_text.bm-markt-text .et_pb_text_inner { font-size: 1.5rem; line-height: 1.55; }
.bm-markt-offer ul { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0 !important; list-style: none; }
.bm-markt-offer li { margin: 0; padding: 6px 10px; border-radius: 999px; background: var(--bm-green-100); color: var(--bm-green-700); font-size: 1.3rem; font-weight: 600; line-height: 1.2; }
.bm-markt-status { display: flex; align-items: center; gap: 10px; margin: 0; padding: 0 !important; font-size: 1.4rem; font-weight: 600; line-height: 1.4; }
.bm-markt-body .bm-markt-links { margin-top: auto !important; padding-top: 8px; column-gap: 22px !important; }
.bm-markt-link { font-weight: 700; font-size: 1.5rem; color: var(--bm-green-700) !important; text-decoration: none; }
.bm-markt-link:hover { text-decoration: underline; text-underline-offset: 4px; }

/* Owingen-Motiv, bis es ein Foto gibt */
.bm-maerkte .bm-ow-visual { overflow: hidden; background-color: var(--bm-kraft) !important; background-size: cover !important; background-position: center !important; }
.bm-ow-pin, .bm-ow-pin img { width: clamp(70px, 7vw, 96px) !important; height: auto; margin: 0 !important; }
.bm-ow-name { margin: 0 !important; rotate: -4deg; }
.et_pb_text.bm-ow-name .et_pb_text_inner { font-size: clamp(40px, 4vw, 60px); line-height: 1.1; color: var(--bm-green-700); }
.bm-markt-ph .bm-ow-sticker { position: absolute !important; top: 18px; right: 18px; margin: 0 !important; padding: 7px 11px; border-radius: 8px; background: var(--bm-green); border: 2px solid var(--bm-ink); rotate: 6deg; }
.et_pb_text.bm-ow-sticker .et_pb_text_inner { font-weight: 900; font-size: 1.3rem; line-height: 1; color: var(--bm-ink); }

@media (max-width: 1100px) {
  .bm-maerkte .bm-markt { grid-template-columns: minmax(0, 1fr); }
  .bm-markt-ph { min-height: 0; aspect-ratio: 16 / 10; border-right: 0; border-bottom: 2px solid var(--bm-ink); }
}
/* === Ende Startseite Märkte === */


/* === divi5-json: Startseite Sortiment bis Kontakt === */
/* ==========================================================================
   STARTSEITE – 4. bis 11. (Sortiment … Kontakt)
   Konventionen wie oben: Text-Preset → .et_pb_text.<klasse> .et_pb_text_inner,
   Code-Module als Mount (bm-site.js füllt sie), Überschriften über Divi-Variablen.
   ========================================================================== */

/* ---- Gemeinsames --------------------------------------------------------- */
.bm-h2 h2 { font-size: var(--gvid-xbbdqp1whl); line-height: var(--gvid-95915kbrtw); }
.bm-sortiment .et_pb_text p, .bm-saison .et_pb_text p, .bm-karte .et_pb_text p, .bm-theken .et_pb_text p,
.bm-mittag .et_pb_text p, .bm-hof .et_pb_text p, .bm-zeiten .et_pb_text p, .bm-news .et_pb_text p,
.bm-gross .et_pb_text p, .bm-kontakt .et_pb_text p { padding-bottom: 0; }
.et_pb_code .et_pb_code_inner { position: static; }
.bm-note-inline { font-family: "Nickainley", cursive; font-weight: 400; color: var(--bm-green-700); }
.bm-eyebrow-plain { display: flex; align-items: center; gap: 10px; margin: 0 0 18px; padding: 0 !important; font-size: 13px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--bm-green); }
.bm-eyebrow-plain::before { content: ""; width: 24px; height: 2px; background: currentColor; }
.bm-maerkte-cards, .bm-theken-cards { column-gap: clamp(16px, 2vw, 28px) !important; }

/* Buttons in Code-Modulen (kein Divi-Button) */
:is(.bm-btn, .bm-btn-ghost):not(.et_pb_button) {
  display: inline-flex; align-items: center; gap: 10px; cursor: pointer; text-decoration: none; white-space: nowrap;
  padding: 13px 20px; border-radius: 999px; font-weight: 700; font-size: 15px; line-height: 1;
  transition: background-color 200ms, border-color 200ms, color 200ms;
}
.bm-btn:not(.et_pb_button) { background: var(--bm-green); color: var(--bm-ink); border: 2px solid var(--bm-green); }
.bm-btn:not(.et_pb_button):hover { background: var(--bm-ink); border-color: var(--bm-ink); color: var(--bm-paper); }
.bm-btn-ghost:not(.et_pb_button) { background: var(--bm-paper); color: var(--bm-ink); border: 2px solid var(--bm-ink); }
.bm-btn-ghost:not(.et_pb_button):hover { background: var(--bm-green-100); }
.bm-btn-ghost svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

.bm-chip { cursor: pointer; border: 2px solid var(--bm-ink); background: transparent; color: var(--bm-ink); border-radius: 999px; padding: 9px 16px; font-weight: 600; font-size: 15px; line-height: 1.1; transition: background 200ms, color 200ms; }
.bm-chip:hover { background: var(--bm-green-100); }
.bm-chip[aria-selected="true"] { background: var(--bm-ink); color: var(--bm-paper); }
.bm-tip { position: absolute; left: 50%; bottom: calc(100% + 8px); translate: -50% 4px; padding: 8px 12px; border-radius: 999px; background: var(--bm-ink); color: var(--bm-paper); font-weight: 600; font-size: 13px; line-height: 1; white-space: nowrap; pointer-events: none; opacity: 0; transition: opacity 200ms, translate 250ms var(--bm-ease); }
.bm-sprout { display: inline-block; flex: none; width: 1em; height: auto; fill: currentColor; }
.bm-live-line { display: flex; align-items: center; gap: 10px; margin: 0; padding: 0 !important; font-size: 14px; font-weight: 600; line-height: 1.4; }

.bm-toast { position: fixed; z-index: 100003; left: 50%; bottom: 24px; transform: translate(-50%, 160%); display: flex; align-items: center; gap: 12px; padding: 12px 22px 12px 12px; border-radius: 999px; background: var(--bm-ink); color: var(--bm-paper); font-weight: 600; font-size: 15px; box-shadow: 0 18px 40px -18px rgb(from var(--bm-ink) r g b / .6); transition: transform 500ms cubic-bezier(.3, 1.6, .5, 1); }
.bm-toast::before { content: ""; width: 22px; height: 22px; border-radius: 50%; background: var(--bm-green); }
.bm-toast.show { transform: translate(-50%, 0); }

/* ---- 4. SORTIMENT --------------------------------------------------------- */
.bm-sortiment, body .et_builder_inner_content .et_pb_section.bm-sortiment { padding: clamp(110px, 12vw, 180px) 0 clamp(80px, 9vw, 130px) !important; background: transparent; }
.bm-sortiment-grid { align-items: flex-start !important; }
.bm-shop { position: relative; aspect-ratio: 1800 / 1727; border-radius: 28px; rotate: -1.5deg; box-shadow: 0 30px 60px -30px rgb(from var(--bm-ink) r g b / .35); }
.bm-shop .bm-shop-img { position: absolute !important; inset: 0; margin: 0 !important; }
.bm-shop-img .et_pb_image_wrap, .bm-shop-img img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 28px; }
.bm-shop .bm-shop-hots, .bm-shop-hots .et_pb_code_inner { position: static !important; margin: 0; }
.bm-hot { position: absolute; z-index: 2; left: var(--x); top: var(--y); width: 52px; height: 52px; margin: -26px 0 0 -26px; padding: 0; border: 0; border-radius: 50%; cursor: pointer; display: grid; place-items: center; background: rgb(from var(--bm-paper) r g b / .3); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); transition: transform 300ms cubic-bezier(.3, 1.6, .5, 1); }
.bm-hot::before { content: ""; position: absolute; inset: 0; border-radius: 50%; border: 2px solid var(--bm-paper); animation: bm-pulse 2.2s var(--bm-ease) infinite; }
.bm-hot i { width: 16px; height: 16px; border-radius: 50%; background: var(--bm-paper); border: 3px solid var(--bm-ink); transition: all 300ms cubic-bezier(.3, 1.6, .5, 1); }
.bm-hot[aria-pressed="true"] i { width: 22px; height: 22px; background: var(--bm-green); }
.bm-hot:hover { transform: scale(1.12); }
.bm-hot:hover .bm-tip, .bm-hot:focus-visible .bm-tip { opacity: 1; translate: -50% 0; }
.bm-shop-note { display: block !important; width: fit-content; max-width: 100%; margin: 26px 8px 0 auto !important; text-align: right; }
.et_pb_text.bm-shop-note .et_pb_text_inner { font-size: 28px; line-height: 1.1; }
.bm-sortiment-r .bm-lede { margin-top: 22px; }
.bm-sortiment .bm-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 30px 0 34px; }
.bm-panel { transition: opacity 220ms; }
.bm-panel.out { opacity: 0; }
.bm-panel h3 { padding: 0; font-weight: 800; font-size: var(--gvid-8ib2ivoy1r); line-height: .95; letter-spacing: -.035em; }
.bm-panel > p { margin-top: 16px; padding: 0; font-size: 17px; line-height: 1.6; max-width: 46ch; }
.bm-panel .bm-from-title { margin-top: 26px; font-weight: 800; font-size: 15px; }
.bm-from { display: grid; gap: 8px; margin: 10px 0 0; padding: 0 !important; list-style: none; }
.bm-from li { margin: 0; padding: 0; }
.bm-from-item { display: flex; align-items: center; gap: 14px; width: 100%; text-align: left; padding: 8px 14px 8px 8px; border: 2px solid rgb(from var(--bm-ink) r g b / .14); border-radius: 16px; background: transparent; color: var(--bm-ink); font: inherit; transition: border-color 200ms, background 200ms; }
button.bm-from-item { cursor: pointer; }
button.bm-from-item:hover { border-color: var(--bm-ink); background: var(--bm-green-100); }
.bm-from-item img { width: 76px; height: 36px; object-fit: contain; background: #fff; border-radius: 8px; flex: none; }
.bm-from-item strong { display: block; font-size: 15px; line-height: 1.25; }
.bm-from-item small { display: block; font-size: 13px; opacity: .7; }
.bm-from-item .go { margin-left: auto; font-weight: 700; }
.bm-linkbtn { margin-top: 18px; padding: 0; border: 0; background: none; cursor: pointer; font-weight: 700; font-size: 16px; color: var(--bm-green-700); }
.bm-linkbtn:hover { text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 640px) { .bm-hot { width: 44px; height: 44px; margin: -22px 0 0 -22px; } }

/* ---- 5. SAISON ------------------------------------------------------------ */
.bm-saison, body .et_builder_inner_content .et_pb_section.bm-saison { padding: clamp(90px, 10vw, 150px) 0 !important; background: var(--bm-kraft) !important; }
.bm-saison-head { align-items: flex-end !important; }
.bm-saison-head .bm-lede { margin-top: 22px; }
.bm-saison-head-r { align-items: flex-end; }
.bm-saison-note { text-align: right; max-width: 14em; }
.et_pb_text.bm-saison-note .et_pb_text_inner { font-size: 30px; line-height: 1.1; }
.bm-months { display: flex; gap: 8px; margin: 44px 0 34px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: 6px 4px 8px; }
.bm-months::-webkit-scrollbar { display: none; }
.bm-month { position: relative; flex: none; scroll-snap-align: start; cursor: pointer; border: 2px solid var(--bm-ink); background: transparent; color: var(--bm-ink); border-radius: 999px; padding: 10px 16px; font-weight: 700; font-size: 15px; line-height: 1; transition: background 200ms, color 200ms; }
.bm-month:hover { background: var(--bm-green-100); }
.bm-month[aria-selected="true"] { background: var(--bm-ink); color: var(--bm-paper); }
.bm-month.is-today::after { content: ""; position: absolute; top: -4px; right: -1px; width: 11px; height: 11px; border-radius: 50%; background: var(--bm-yolk); border: 2px solid var(--bm-ink); }
.bm-saison-sum { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px 40px; }
.bm-saison-sum p { padding: 0; }
.bm-saison-month { font-weight: 900; font-size: clamp(64px, 10vw, 160px); line-height: .85; letter-spacing: -.045em; color: var(--bm-green-700); }
.bm-saison-count { font-size: 18px; }
.bm-saison-count strong { font-weight: 900; font-size: 1.3em; font-variant-numeric: tabular-nums; }
.bm-saison-grid { position: relative; display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 14px; margin-top: 38px; }
.bm-crop-card { position: relative; display: flex; flex-direction: column; gap: 12px; padding: 16px 18px; background: var(--bm-paper); border: 2px solid var(--bm-ink); border-radius: 18px; }
.bm-crop-top { display: flex; align-items: center; gap: 12px; }
.bm-crop-card .c { flex: none; width: 28px; height: 28px; border-radius: 50%; border: 2px solid var(--bm-ink); background: var(--c); }
.bm-crop-card .n { font-weight: 700; font-size: 17px; line-height: 1.2; }
.bm-crop-card .st { align-self: flex-start; padding: 6px 10px; border-radius: 999px; font-weight: 600; font-size: 12px; line-height: 1; }
.bm-crop-card .st.fresh { background: var(--bm-green-100); color: var(--bm-green-700); }
.bm-crop-card .st.store { background: var(--bm-kraft); color: var(--bm-ink); }
.bm-neu { position: absolute; top: -11px; right: -10px; padding: 6px 9px; border-radius: 6px; background: var(--bm-green); border: 2px solid var(--bm-ink); rotate: 8deg; font-weight: 900; font-size: 11px; line-height: 1; text-transform: uppercase; letter-spacing: .08em; }
.bm-saison-foot { margin-top: 30px !important; }
.et_pb_text.bm-saison-foot .et_pb_text_inner { font-size: 13px; opacity: .7; }
@media (max-width: 980px) { .bm-saison-note { text-align: left; } }
@media (max-width: 640px) { .bm-saison-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } .bm-crop-card { padding: 14px; } .bm-neu { right: -5px; } }

/* ---- 6. ERZEUGER-KARTE ---------------------------------------------------- */
.bm-karte, body .et_builder_inner_content .et_pb_section.bm-karte { padding: clamp(100px, 11vw, 160px) 0 !important; background: var(--bm-green-900) !important; color: var(--bm-paper); }
.bm-karte .et_pb_text_inner, .bm-karte h2 { color: var(--bm-paper); }
.bm-karte .et_pb_text.bm-eyebrow .et_pb_text_inner { color: var(--bm-green); }
.bm-karte-head { align-items: flex-end !important; }
.bm-filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 44px 0 22px; }
.bm-filter { cursor: pointer; border: 2px solid rgb(from var(--bm-paper) r g b / .7); background: transparent; color: var(--bm-paper); border-radius: 999px; padding: 8px 14px; font-weight: 600; font-size: 14px; line-height: 1.1; transition: background 200ms, color 200ms, border-color 200ms; }
.bm-filter:hover { border-color: var(--bm-paper); }
.bm-filter[aria-pressed="true"] { background: var(--bm-green); border-color: var(--bm-green); color: var(--bm-ink); }
.bm-karte-grid { display: grid; grid-template-columns: 1.6fr 1fr; gap: clamp(24px, 3vw, 44px); align-items: start; }
.bm-map { position: relative; aspect-ratio: 915 / 700; border-radius: 28px; overflow: hidden; background: #2E3A13; }
.bm-map > svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.bm-map .lake { fill: var(--bm-green-300); fill-opacity: .28; stroke: var(--bm-green); stroke-width: 1.5; }
.bm-map .shore { fill: none; stroke: var(--bm-green); stroke-width: 13; stroke-dasharray: 2 8; opacity: .5; }
.bm-map .lake-name { font: 400 46px "Nickainley", cursive; fill: var(--bm-green); opacity: .7; }
.bm-town { position: absolute; left: var(--x); top: var(--y); display: flex; align-items: center; gap: 5px; translate: -2px -50%; pointer-events: none; font-weight: 600; font-size: 12px; line-height: 1; color: rgb(from var(--bm-paper) r g b / .55); white-space: nowrap; }
.bm-town::before { content: ""; width: 4px; height: 4px; border-radius: 50%; background: currentColor; }
.bm-map .helper { stroke: rgb(from var(--bm-paper) r g b / .35); stroke-width: 1; }
.bm-map .helper-dot { fill: rgb(from var(--bm-paper) r g b / .6); }
.bm-map .route { fill: none; stroke: var(--bm-yolk); stroke-width: 2; stroke-dasharray: 4 9.5; transition: opacity 300ms, stroke-width 200ms; opacity: .8; }
.bm-map.flow .route { animation: bm-flow 3s linear infinite; }
@keyframes bm-flow { to { stroke-dashoffset: -13.5; } }
.bm-map .route.is-active { stroke-dasharray: none; stroke-width: 3.4; opacity: 1; stroke: #FFD27A; }
.bm-map .route.is-dim, .bm-map .helper.is-dim { opacity: .12; }
.bm-map .rmask path { fill: none; stroke: #fff; stroke-width: 8; stroke-dasharray: 1; stroke-dashoffset: 1; }
.bm-map.drawn .rmask path { animation: bm-draw 1200ms var(--bm-ease) forwards; animation-delay: calc(var(--i) * 60ms); }
.bm-pin { position: absolute; left: var(--x); top: var(--y); width: 30px; height: 30px; margin: -15px 0 0 -15px; display: grid; place-items: center; cursor: pointer; border-radius: 50%; background: var(--bm-paper); border: 2.5px solid var(--bm-ink); color: var(--bm-ink); font-weight: 800; font-size: 12px; line-height: 1; transition: transform 300ms cubic-bezier(.3, 1.6, .5, 1), opacity 300ms, background 200ms; }
.bm-pin.own { background: var(--bm-yolk); }
.bm-pin:hover { transform: scale(1.25); z-index: 3; }
.bm-pin:hover .bm-tip { opacity: 1; translate: -50% 0; }
.bm-pin.is-active { background: var(--bm-green); transform: scale(1.35); z-index: 2; }
.bm-pin.is-dim { opacity: .3; }
.bm-pin .bm-tip { font-size: 12px; }
.bm-pin-home { position: absolute; left: var(--x); top: var(--y); z-index: 2; width: 56px; height: 56px; margin: -28px 0 0 -28px; cursor: pointer; border-radius: 50%; background: var(--bm-green); border: 3px solid var(--bm-paper); display: grid; place-items: center; transition: transform 300ms cubic-bezier(.3, 1.6, .5, 1); }
.bm-pin-home:hover { transform: scale(1.08); }
.bm-pin-home img { width: 70%; height: 70%; position: relative; filter: brightness(0); opacity: .85; }
.bm-pin-home .ring { position: absolute; inset: -3px; border-radius: 50%; border: 2px solid var(--bm-green); animation: bm-pulse 2.4s var(--bm-ease) infinite; }
.bm-pin-home .ring + .ring { animation-delay: 1.2s; }
.bm-pin-home:not(.is-hub) .ring { display: none; }
.bm-pin-home .lbl { position: absolute; left: calc(100% + 6px); top: 62%; white-space: nowrap; font-family: "Nickainley", cursive; font-size: 26px; color: var(--bm-yolk); rotate: -6deg; pointer-events: none; }
.bm-pin-home.is-active { box-shadow: 0 0 0 4px var(--bm-yolk); }
.bm-pin-market { width: 44px; height: 44px; margin: -22px 0 0 -22px; }
.bm-pin-market .lbl { left: auto; right: calc(100% + 6px); top: 55%; font-size: 24px; rotate: -4deg; }
.bm-plist .market .num { background: var(--bm-green); }
.bm-plist .market .num svg { width: 15px; height: 15px; fill: none; stroke: var(--bm-ink); stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.bm-detail { position: relative; padding: 26px; border-radius: 22px; background: var(--bm-paper); color: var(--bm-ink); box-shadow: 0 6px 0 var(--bm-ink); }
.bm-detail p, .bm-detail h3 { padding: 0; color: var(--bm-ink); }
.bm-detail.anim { animation: bm-slidein 300ms var(--bm-ease); }
@keyframes bm-slidein { from { opacity: 0; transform: translateX(18px); } to { opacity: 1; transform: none; } }
.bm-detail-logo { display: flex; align-items: center; justify-content: center; height: 72px; padding: 8px 12px; border-radius: 12px; background: #fff; width: max-content; max-width: 100%; border: 1px solid rgb(from var(--bm-ink) r g b / .1); }
.bm-detail-logo img { height: 100%; width: auto; max-width: 220px; object-fit: contain; }
.bm-detail-kind { margin-top: 18px; font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--bm-green-700) !important; }
.bm-detail h3 { margin-top: 4px; font-weight: 800; font-size: 22px; line-height: 1.15; letter-spacing: -.015em; }
.bm-detail-ort { font-size: 15px; opacity: .75; }
.bm-detail-known { margin-top: 14px; font-size: 16px; line-height: 1.5; }
.bm-detail-cats { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 14px; }
.bm-detail-cats span { padding: 6px 10px; border-radius: 999px; background: var(--bm-green-100); color: var(--bm-green-700); font-size: 13px; font-weight: 600; }
.bm-detail-km { margin-top: 16px; padding-top: 14px !important; border-top: 1px dashed rgb(from var(--bm-ink) r g b / .25); font-size: 15px; }
.bm-detail-km strong { font-weight: 900; font-size: 20px; }
.bm-detail .bm-btn-ghost { margin-top: 16px; }
.bm-plist-toggle { display: none; }
.bm-plist { display: grid; gap: 6px; margin: 20px 0 0; padding: 0 !important; list-style: none; }
.bm-plist li { margin: 0; padding: 0; }
.bm-plist button { display: flex; align-items: center; gap: 12px; width: 100%; text-align: left; cursor: pointer; padding: 8px 12px; border-radius: 14px; border: 1px solid rgb(from var(--bm-paper) r g b / .18); background: transparent; color: var(--bm-paper); font: inherit; transition: background 200ms, color 200ms, opacity 200ms; }
.bm-plist button:hover { background: rgb(from var(--bm-paper) r g b / .08); }
.bm-plist .num { flex: none; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--bm-paper); color: var(--bm-ink); font-weight: 800; font-size: 12px; }
.bm-plist .own .num { background: var(--bm-yolk); }
.bm-plist strong { display: block; font-size: 14px; line-height: 1.25; }
.bm-plist small { display: block; font-size: 12px; opacity: .7; }
.bm-plist button[aria-pressed="true"] { background: var(--bm-green); color: var(--bm-ink); border-color: var(--bm-green); }
.bm-plist button.is-dim { opacity: .4; }
.bm-regal { margin-top: clamp(56px, 6vw, 84px); }
.bm-regal-track { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.bm-regal-row { display: flex; gap: 14px; width: max-content; animation: bm-marquee 40s linear infinite; }
.bm-regal-track:hover .bm-regal-row { animation-play-state: paused; }
@keyframes bm-marquee { to { transform: translateX(-50%); } }
.bm-regal-tile { flex: none; height: 64px; padding: 8px 14px; border-radius: 14px; background: #fff; display: flex; align-items: center; }
.bm-regal-tile img { height: 100%; width: auto; max-width: 150px; object-fit: contain; filter: grayscale(1); transition: filter 300ms; }
.bm-regal-tile:hover img { filter: none; }
@media (max-width: 980px) {
  .bm-karte-grid { grid-template-columns: minmax(0, 1fr); }
  .bm-plist-toggle { display: inline-flex; margin-top: 18px; cursor: pointer; border: 2px solid var(--bm-paper); background: transparent; color: var(--bm-paper); border-radius: 999px; padding: 10px 16px; font-weight: 700; font-size: 14px; line-height: 1; }
  .bm-plist:not(.open) { display: none; }
}
@media (max-width: 640px) {
  .bm-pin { width: 26px; height: 26px; margin: -13px 0 0 -13px; font-size: 11px; }
  .bm-pin-home { width: 44px; height: 44px; margin: -22px 0 0 -22px; }
  .bm-pin-home .lbl { font-size: 20px; }
  .bm-pin-market { width: 36px; height: 36px; margin: -18px 0 0 -18px; }
  .bm-map .lake-name { font-size: 40px; }
}

/* ---- 7. DREI THEKEN ------------------------------------------------------- */
.bm-theken, body .et_builder_inner_content .et_pb_section.bm-theken { padding: clamp(100px, 11vw, 160px) 0 !important; background: transparent; }
.bm-theken-head .bm-lede { margin-top: 22px; }
.bm-theken-cards { margin-top: clamp(40px, 5vw, 64px); align-items: stretch !important; }
.bm-theken .bm-theke { display: flex !important; flex-direction: column; gap: 0 !important; overflow: hidden; border-radius: 26px; background: var(--bm-paper); border: 2px solid var(--bm-ink); transition: scale 600ms cubic-bezier(.3, 1.6, .5, 1); }
.bm-theke > .et_pb_module { margin: 0; }
.bm-theke.is-hl { animation: bm-hl 600ms var(--bm-ease); }
@keyframes bm-hl { 50% { scale: 1.03; } }
.bm-theke-ph { position: relative; aspect-ratio: 4 / 3; overflow: hidden; border-bottom: 2px solid var(--bm-ink); }
.bm-theke-ph > .et_pb_image { position: absolute !important; inset: 0; margin: 0 !important; }
.bm-theke-ph .et_pb_image_wrap, .bm-theke-ph .et_pb_image img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 900ms var(--bm-ease); }
.bm-theke:hover .bm-theke-ph img { transform: scale(1.05); }
.bm-theke-ph .bm-crop img { object-position: 55% 64%; scale: 1.9; transform-origin: 53% 57%; }
.bm-theke-ph .bm-tag { position: absolute !important; top: 16px; left: 16px; z-index: 1; margin: 0 !important; padding: 9px 22px 9px 14px; background: var(--bm-ink); clip-path: polygon(0 0, 88% 0, 100% 50%, 88% 100%, 0 100%); }
.et_pb_text.bm-tag .et_pb_text_inner { display: inline-flex; align-items: center; gap: 8px; font-weight: 800; font-size: 13px; line-height: 1; color: var(--bm-paper); }
.et_pb_text.bm-tag .et_pb_text_inner::before { content: ""; flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--bm-apple); }
.bm-tag.open .et_pb_text_inner::before { background: var(--bm-green); }
.bm-theke-body { flex: 1; padding: 24px 24px 26px; }
.bm-theke-body > .et_pb_module { margin: 0; }
.bm-theke-logo, .bm-theke-logo img { height: 40px !important; width: auto !important; margin: 0 !important; }
.bm-theke-title h3 { padding: 0; font-weight: 800; font-size: 26px; line-height: 1; letter-spacing: -.03em; }
.et_pb_text.bm-theke-text .et_pb_text_inner { font-size: 16px; line-height: 1.55; }
.bm-theke-body .bm-live-wrap { margin-top: auto !important; padding-top: 4px; }
.bm-theke-kitchen { margin: 4px 0 0; padding: 0 !important; font-size: 14px; opacity: .8; }
.bm-theke-link { font-weight: 700; font-size: 15px; line-height: 1.8; color: var(--bm-green-700) !important; text-decoration: none; }
.bm-theke-link:hover { text-decoration: underline; text-underline-offset: 4px; }
body #page-container .bm-theke .et_pb_button.bm-btn { white-space: normal; text-align: left; line-height: 1.2 !important; }
.bm-theke-small p { padding: 0; }
.bm-theke-call { font-size: 14px; }
.bm-theke-call a { font-weight: 700; text-decoration: none; color: inherit; }
.bm-theke-hint { margin-top: 6px !important; font-size: 13px; opacity: .7; }

/* ---- 7a. MITTAGSTISCH ----------------------------------------------------- */
.bm-mittag, body .et_builder_inner_content .et_pb_section.bm-mittag { padding: 0 0 clamp(100px, 11vw, 160px) !important; background: transparent; }
.bm-mittag-grid { align-items: flex-start !important; }
.bm-mittag-time { margin-top: 22px !important; }
.bm-mittag-time p { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 18px; }
.bm-mittag-time .t { font-weight: 900; font-size: clamp(40px, 4.4vw, 64px); line-height: 1; letter-spacing: -.03em; color: var(--bm-green-700); }
.bm-mittag-time .bm-note-inline { font-size: 30px; line-height: 1.1; rotate: -3deg; display: inline-block; }
.bm-mittag-text { margin-top: 20px !important; max-width: 44ch; }
.bm-mittag-actions { margin-top: 28px !important; }
.bm-mittag-hint { margin-top: 14px !important; }
.et_pb_text.bm-mittag-hint .et_pb_text_inner { font-size: 13px; opacity: .7; }
.bm-mittag-link { margin-top: 18px !important; }
.bm-mittag-link a { font-weight: 700; color: var(--bm-green-700); text-decoration: none; }
.bm-mittag-link a:hover { text-decoration: underline; text-underline-offset: 4px; }
body #page-container .et_pb_button.bm-ico-phone::before {
  content: "" !important; display: block !important; position: static !important; opacity: 1 !important; margin: 0 !important;
  width: 20px; height: 20px; flex: none; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 3h4l2 5-2.5 1.5a11 11 0 0 0 6 6L16 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 5a2 2 0 0 1 2-2'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 3h4l2 5-2.5 1.5a11 11 0 0 0 6 6L16 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 5a2 2 0 0 1 2-2'/%3E%3C/svg%3E") center / contain no-repeat;
}
.bm-mittag .bm-menu { padding: clamp(22px, 3vw, 40px); border-radius: 26px; background: var(--bm-kraft); }
.bm-menu-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 6px 20px; padding-bottom: 18px; border-bottom: 2px solid var(--bm-ink); }
.bm-menu-title { padding: 0; font-family: "Nickainley", cursive; font-weight: 400; font-size: clamp(38px, 3.6vw, 52px); line-height: 1.1; color: var(--bm-green-700); }
.bm-menu-week { padding: 0; font-weight: 700; font-size: 15px; }
.bm-menu-days { margin: 0; padding: 0 !important; list-style: none; }
.bm-menu-day { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; gap: 18px; align-items: center; margin: 0; padding: 18px 0; border-bottom: 1px dashed rgb(from var(--bm-ink) r g b / .3); }
.bm-menu-day:last-child { border-bottom: 0; }
.bm-menu-date { display: grid; place-items: center; align-content: center; width: 64px; height: 64px; border-radius: 50%; background: var(--bm-green-700); color: var(--bm-paper); line-height: 1.1; }
.bm-menu-date b { font-weight: 900; font-size: 18px; }
.bm-menu-date span { font-size: 12px; font-weight: 600; }
.bm-menu-dish small { display: block; font-size: 14px; opacity: .75; }
.bm-menu-dish strong { display: block; font-weight: 700; font-size: 18px; line-height: 1.3; }
.bm-menu-dish em { display: inline-block; margin-bottom: 6px; padding: 4px 9px; border-radius: 999px; background: var(--bm-green); font-style: normal; font-weight: 700; font-size: 11px; line-height: 1; letter-spacing: .12em; text-transform: uppercase; }
.bm-menu-price { font-weight: 800; font-size: 20px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.bm-menu-day.is-today { margin: 0 -14px; padding: 18px 14px; border-radius: 18px; background: var(--bm-paper); border-bottom-color: transparent; }
.bm-menu-day.is-past { opacity: .45; }
.bm-menu-empty { padding: 26px 0; font-weight: 600; list-style: none; }
.bm-menu-extra { margin-top: 6px; padding: 18px 0 0 !important; border-top: 2px solid var(--bm-ink); font-size: 16px; }
.bm-menu-extra:empty { display: none; }
.bm-menu-extra b { font-weight: 800; white-space: nowrap; }
@media (max-width: 520px) {
  .bm-menu-day { grid-template-columns: 52px minmax(0, 1fr); gap: 6px 14px; }
  .bm-menu-date { width: 52px; height: 52px; }
  .bm-menu-price { grid-column: 2; font-size: 18px; }
}

/* ---- 8. DAS SIND WIR ------------------------------------------------------ */
.bm-hof, body .et_builder_inner_content .et_pb_section.bm-hof { padding: clamp(100px, 11vw, 160px) 0 !important; background: var(--bm-kraft) !important; }
.bm-hof-grid { align-items: flex-start !important; }
.bm-hof-media .bm-hof-img, .bm-hof-img img { width: 100%; margin: 0 !important; }
.bm-hof-img img { aspect-ratio: 1000 / 900; object-fit: cover; object-position: 52% 50%; border-radius: 28px; rotate: 2deg; box-shadow: 0 30px 60px -30px rgb(from var(--bm-ink) r g b / .35); }
.bm-hof-copy > .et_pb_module { margin: 0; }
.et_pb_text.bm-hof-hi .et_pb_text_inner { font-size: 34px; line-height: 1.1; }
.bm-hof-copy .bm-h2 { margin-top: 8px !important; }
.bm-hof-text { margin-top: 24px !important; max-width: 52ch; }
.bm-facts { margin-top: 24px !important; }
.bm-facts ul { display: grid; gap: 10px; margin: 0; padding: 0 !important; list-style: none; }
.bm-facts li { display: flex; align-items: center; gap: 12px; margin: 0; padding: 0; font-weight: 700; }
.bm-facts li::before { content: ""; flex: none; width: 1.2em; height: 1em; background: var(--bm-green-700);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 32'%3E%3Cpath d='M20 2c5 4 5 11 0 15c-5-4-5-11 0-15z'/%3E%3Cpath d='M4 12c6-1 11 3 13 9c-6 1-11-3-13-9z'/%3E%3Cpath d='M36 12c-6-1-11 3-13 9c6 1 11-3 13-9z'/%3E%3Crect x='18.8' y='16' width='2.4' height='14' rx='1.2'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 32'%3E%3Cpath d='M20 2c5 4 5 11 0 15c-5-4-5-11 0-15z'/%3E%3Cpath d='M4 12c6-1 11 3 13 9c-6 1-11-3-13-9z'/%3E%3Cpath d='M36 12c-6-1-11 3-13 9c6 1 11-3 13-9z'/%3E%3Crect x='18.8' y='16' width='2.4' height='14' rx='1.2'/%3E%3C/svg%3E") center / contain no-repeat; }
.bm-steps { margin-top: 36px !important; }
.bm-steps ol { display: grid; gap: 22px; margin: 0; padding: 0 !important; list-style: none; counter-reset: bm-step; }
.bm-steps li { position: relative; margin: 0; padding: 9px 0 0 60px; min-height: 44px; font-size: 16px; line-height: 1.6; counter-increment: bm-step; }
.bm-steps li::before { content: counter(bm-step); position: absolute; left: 0; top: 0; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--bm-green); color: var(--bm-ink); font-weight: 800; }
.bm-hof-btn { margin-top: 34px !important; }
.bm-hof-more { margin-top: clamp(80px, 9vw, 130px) !important; }
.bm-mission { position: relative; max-width: 1080px; margin: 0 auto; aspect-ratio: 16 / 9; border-radius: 28px; overflow: hidden; background: var(--bm-ink); box-shadow: 0 30px 60px -30px rgb(from var(--bm-ink) r g b / .35); }
.bm-mission img, .bm-mission iframe { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border: 0; }
.bm-mission-play { position: absolute; left: 50%; top: 73%; width: 96px; height: 96px; margin: -48px 0 0 -48px; display: grid; place-items: center; cursor: pointer; border-radius: 50%; border: 0; background: var(--bm-green); transition: background-color 200ms; }
.bm-mission-play:hover { background: var(--bm-paper); }
.bm-mission-play svg { width: 30px; height: 30px; fill: var(--bm-ink); margin-left: 5px; }
.bm-mission-hint { max-width: 1080px; margin: 14px auto 0 !important; text-align: center; }
.et_pb_text.bm-mission-hint .et_pb_text_inner { font-size: 13px; opacity: .75; }
.bm-quote { margin: clamp(70px, 8vw, 110px) auto 0 !important; text-align: center; }
.bm-quote blockquote { margin: 0; padding: 0; border: 0; }
.bm-quote blockquote p { max-width: 26ch; margin: 0 auto; font-weight: 800; font-size: clamp(26px, 3vw, 44px); line-height: 1.12; letter-spacing: -.02em; }
.bm-quote-name { display: block !important; margin: 16px auto 0 !important; width: fit-content; }
.et_pb_text.bm-quote-name .et_pb_text_inner { font-size: 36px; line-height: 1.1; }
@media (max-width: 640px) { .bm-mission-play { width: 72px; height: 72px; margin: -36px 0 0 -36px; } }

/* ---- 9. ÖFFNUNGSZEITEN ---------------------------------------------------- */
.bm-zeiten, body .et_builder_inner_content .et_pb_section.bm-zeiten { padding: clamp(90px, 10vw, 150px) 0 clamp(100px, 11vw, 160px) !important; background: transparent; }
.bm-chalk { position: relative; isolation: isolate; overflow: hidden; padding: clamp(26px, 4vw, 56px); border-radius: 30px; background: var(--bm-chalk); color: var(--bm-paper); border: 14px solid #8A6A43; box-shadow: inset 0 0 0 2px rgba(0,0,0,.25), 0 40px 70px -35px rgb(from var(--bm-ink) r g b / .6); }
.bm-chalk::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: .08; mix-blend-mode: screen; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.6' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.bm-chalk p, .bm-chalk h2, .bm-chalk h3 { padding: 0; color: var(--bm-paper); }
.bm-chalk-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 10px 30px; }
.bm-chalk-title { font-family: "Nickainley", cursive; font-weight: 400; font-size: clamp(44px, 5vw, 76px) !important; line-height: 1.05 !important; text-shadow: 0 0 1px rgb(from var(--bm-paper) r g b / .6); rotate: -2deg; }
.bm-chalk-date { font-weight: 600; font-size: 15px; }
.bm-holiday { margin-top: 26px; padding: 14px 18px !important; border-radius: 16px; border: 2px solid var(--bm-apple); font-size: 16px; }
.bm-zeiten-tabs { display: none; }
.bm-zeiten-cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 clamp(20px, 2.6vw, 40px); margin-top: 36px; }
.bm-zcol { display: grid; grid-row: span 4; grid-template-rows: subgrid; align-content: start; }
.bm-zcol .bm-pill { align-self: start; justify-self: start; }
.bm-zloc { min-height: 1em; margin-bottom: 8px; font-size: 12px; font-weight: 700; letter-spacing: .1em; white-space: nowrap; text-transform: uppercase; color: var(--bm-green) !important; }
.bm-zcol-ow { padding-left: clamp(20px, 2.6vw, 40px); border-left: 2px dashed rgb(from var(--bm-paper) r g b / .3); }
.bm-zcol h3 { font-weight: 800; font-size: 18px; }
.bm-pill { display: inline-flex; align-items: center; gap: 9px; margin-top: 12px; padding: 7px 14px !important; border-radius: 999px; font-weight: 700; font-size: 14px; line-height: 1.3; border: 2px solid var(--bm-apple); }
.bm-pill.open { background: var(--bm-green); border-color: var(--bm-green); color: var(--bm-ink) !important; }
.bm-pill.open .bm-dot, .bm-pill.open .bm-dot::after { background: var(--bm-ink); }
.bm-ztable { width: 100%; margin: 18px 0 0; border: 0; border-collapse: collapse; font-size: 15px; }
.bm-ztable tr { height: 58px; }
.bm-ztable td { padding: 9px 0; vertical-align: top; line-height: 1.5; border: 0; border-bottom: 1px dashed rgb(from var(--bm-paper) r g b / .18); color: var(--bm-paper); }
.bm-ztable td:first-child { font-weight: 600; padding-right: 10px; }
.bm-ztable td:last-child { text-align: right; }
.bm-ztable .off td:last-child { opacity: .55; }
.bm-ztable small { display: block; font-size: 12px; line-height: 1.25; opacity: .65; white-space: nowrap; }
.bm-ztable .today td { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='8'%3E%3Cpath d='M0 4 Q6 0 12 4 T24 4' fill='none' stroke='%239CC543' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") left bottom / 24px 8px repeat-x; border-bottom-color: transparent; }
.bm-ztable .today em { margin-left: 8px; font-style: normal; font-size: 12px; font-weight: 700; color: var(--bm-green); text-transform: uppercase; letter-spacing: .1em; }
.bm-zeiten-note { margin-top: 20px !important; }
.et_pb_text.bm-zeiten-note .et_pb_text_inner { font-size: 13px; opacity: .75; }
@media (max-width: 980px) {
  .bm-zeiten-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 26px; }
  .bm-zeiten-tabs .bm-chip { border-color: var(--bm-paper); color: var(--bm-paper); }
  .bm-zeiten-tabs .bm-chip:hover { background: rgb(from var(--bm-paper) r g b / .08); }
  .bm-zeiten-tabs .bm-chip[aria-selected="true"] { background: var(--bm-paper); color: var(--bm-ink); }
  .bm-zeiten-cols { grid-template-columns: minmax(0, 1fr); margin-top: 24px; }
  .bm-zcol:not(.is-shown) { display: none; }
  .bm-zcol-ow { padding-left: 0; border-left: 0; }
  .bm-zloc:empty { display: none; }
  .bm-chalk { border-width: 10px; }
}

/* ---- 9a. AKTUELLES -------------------------------------------------------- */
.bm-news, body .et_builder_inner_content .et_pb_section.bm-news { padding: clamp(100px, 11vw, 160px) 0 !important; background: var(--bm-green-100) !important; }
.bm-news-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: clamp(16px, 2vw, 28px); margin-top: clamp(40px, 5vw, 64px); }
.bm-news-card { display: flex; flex-direction: column; overflow: hidden; border-radius: 26px; background: var(--bm-paper); border: 2px solid var(--bm-ink); }
.bm-news-visual { height: clamp(220px, 22vw, 320px); border-bottom: 2px solid var(--bm-ink); display: grid; place-items: center; background: var(--bm-paper); }
.bm-news-visual img.photo { width: 100%; height: 100%; object-fit: cover; }
.bm-news-visual img.logo { width: 170px; height: auto; }
.bm-news-body { display: flex; flex-direction: column; gap: 12px; flex: 1; padding: clamp(22px, 2.4vw, 34px); }
.bm-news-body p, .bm-news-body h3 { padding: 0; }
.bm-news-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; font-size: 14px; font-weight: 600; }
.bm-news-meta .tag { padding: 5px 10px; border-radius: 999px; background: var(--bm-ink); color: var(--bm-paper); font-size: 12px; font-weight: 700; }
.bm-news-card h3 { font-weight: 800; font-size: clamp(22px, 1.9vw, 28px); line-height: 1.1; letter-spacing: -.02em; }
.bm-news-card p { font-size: 16px; line-height: 1.55; }
.bm-news-more { margin-top: auto; padding-top: 6px; font-weight: 700; color: var(--bm-green-700) !important; text-decoration: none; }
.bm-news-more:hover { text-decoration: underline; text-underline-offset: 4px; }
.bm-news-empty { padding: 24px; border-radius: 20px; background: var(--bm-paper); font-weight: 600; }
@media (max-width: 980px) { .bm-news-grid { grid-template-columns: minmax(0, 1fr); } }

/* ---- 10. GROSSKUNDEN ------------------------------------------------------ */
.bm-gross, body .et_builder_inner_content .et_pb_section.bm-gross { position: relative; isolation: isolate; overflow: hidden; display: flex !important; align-items: center; min-height: clamp(560px, 82vh, 860px); padding: clamp(90px, 10vw, 150px) 0 !important; background-color: var(--bm-green-900) !important; background-size: cover !important; background-position: 62% 60% !important; color: var(--bm-paper); }
.bm-gross::before { content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; background: linear-gradient(90deg, rgb(from var(--bm-ink) r g b / .9) 0%, rgb(from var(--bm-ink) r g b / .78) 32%, rgb(from var(--bm-ink) r g b / .25) 62%, rgb(from var(--bm-ink) r g b / 0) 80%), linear-gradient(0deg, rgb(from var(--bm-ink) r g b / .45), rgb(from var(--bm-ink) r g b / 0) 40%); }
.bm-gross > .et_pb_row { position: relative; z-index: 1; }
.bm-gross-copy { max-width: 600px; }
.bm-gross-copy > .et_pb_module { margin: 0; }
.bm-gross .et_pb_text_inner, .bm-gross h2 { color: var(--bm-paper); }
.bm-gross .et_pb_text.bm-eyebrow .et_pb_text_inner { color: var(--bm-green); }
.bm-gross-text { margin-top: 22px !important; }
.et_pb_text.bm-gross-text .et_pb_text_inner { font-size: 18px; line-height: 1.6; max-width: 48ch; }
.bm-gross-cta { margin-top: 34px !important; }
.et_pb_text.bm-gross-mail .et_pb_text_inner { font-size: 14px; }
.bm-gross-mail a { color: var(--bm-paper) !important; font-weight: 700; }
@media (max-width: 980px) {
  .bm-gross, body .et_builder_inner_content .et_pb_section.bm-gross { align-items: flex-end; background-position: 58% 40% !important; }
  .bm-gross::before { background: linear-gradient(0deg, rgb(from var(--bm-ink) r g b / .92) 0%, rgb(from var(--bm-ink) r g b / .8) 45%, rgb(from var(--bm-ink) r g b / .2) 80%, rgb(from var(--bm-ink) r g b / 0)); }
}

/* ---- 11. KONTAKT ---------------------------------------------------------- */
.bm-kontakt, body .et_builder_inner_content .et_pb_section.bm-kontakt { padding: clamp(90px, 10vw, 150px) 0 clamp(100px, 11vw, 160px) !important; background: transparent; }
.bm-kontakt-grid { align-items: flex-start !important; }
.bm-kblocks { margin-top: 34px !important; }
.bm-kblocks ul { display: grid; gap: 20px; margin: 0; padding: 0 !important; list-style: none; }
.bm-kblocks li { position: relative; margin: 0; padding: 0 0 0 36px; line-height: 1.5; }
.bm-kblocks li::before { content: ""; position: absolute; left: 0; top: 3px; width: 22px; height: 22px; background: var(--bm-green-700); -webkit-mask: var(--ico) center / contain no-repeat; mask: var(--ico) center / contain no-repeat; }
.bm-kblocks .k-pin { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11.5a7 7 0 0 1 14 0C19 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E"); }
.bm-kblocks .k-phone { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 3h4l2 5-2.5 1.5a11 11 0 0 0 6 6L16 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 5a2 2 0 0 1 2-2'/%3E%3C/svg%3E"); }
.bm-kblocks .k-wa { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20l1.4-4A8.5 8.5 0 1 1 8.6 19z'/%3E%3Cpath d='M9 9.5c.5 2.5 2.5 4.5 5 5'/%3E%3C/svg%3E"); }
.bm-kblocks .k-mail { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='M3 7l9 6 9-6'/%3E%3C/svg%3E"); }
.bm-kblocks .k-shop { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 9l1.5-5h15L21 9'/%3E%3Cpath d='M3 9h18a3 3 0 0 1-6 0 3 3 0 0 1-6 0 3 3 0 0 1-6 0'/%3E%3Cpath d='M5 12v8h14v-8'/%3E%3Cpath d='M10 20v-5h4v5'/%3E%3C/svg%3E"); }
.bm-kblocks strong { display: block; font-weight: 700; }
.bm-kblocks a { color: var(--bm-green-700); font-weight: 600; text-decoration: none; }
.bm-kblocks a:hover { text-decoration: underline; text-underline-offset: 3px; }
.bm-copy { display: inline-block; margin-top: 8px; cursor: pointer; padding: 7px 14px; border-radius: 999px; border: 2px solid var(--bm-ink); background: transparent; color: var(--bm-ink); font-weight: 600; font-size: 13px; line-height: 1; transition: background 200ms; }
.bm-copy:hover { background: var(--bm-green-100); }
.bm-kontakt-btn { margin-top: 34px !important; }
.bm-maps { display: grid; gap: 20px; }
.bm-mapbox { position: relative; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 28px; background: var(--bm-green-100) url("/wp-content/uploads/map-lines.svg") center / cover; box-shadow: 0 30px 60px -30px rgb(from var(--bm-ink) r g b / .35); }
.bm-mapbox iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.bm-mapbox-label { position: absolute; top: 18px; left: 20px; padding: 0 !important; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--bm-green-700); }
.bm-mapbox-pin { position: absolute; left: 50%; top: 40%; translate: -50% -80%; display: flex; flex-direction: column; align-items: center; }
.bm-mapbox-pin img { width: 110px; height: auto; }
.bm-mapbox-pin .bm-note-inline { position: absolute; left: 100%; top: 18%; white-space: nowrap; font-size: 32px; rotate: -6deg; }
.bm-mapbox-consent { position: absolute; left: 18px; right: 18px; bottom: 18px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 20px; padding: 18px 20px; border-radius: 20px; background: rgb(from var(--bm-paper) r g b / .94); font-size: 14px; line-height: 1.5; }
.bm-mapbox-consent p { flex: 1 1 260px; padding: 0 !important; }
@media (max-width: 640px) { .bm-mapbox { aspect-ratio: 3 / 4; } .bm-mapbox-pin { top: 34%; } .bm-mapbox-pin img { width: 84px; } .bm-mapbox-pin .bm-note-inline { font-size: 26px; } }

/* ---- Reduzierte Bewegung -------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .bm-regal-row { flex-wrap: wrap; width: auto; animation: none; }
  .bm-regal-row [aria-hidden="true"] { display: none; }
  .bm-regal-track { -webkit-mask-image: none; mask-image: none; }
  .bm-map .rmask path { stroke-dashoffset: 0; }
  .bm-hot::before, .bm-pin-home .ring { animation: none; }
}

/* ---- Visual Builder: Mounts sichtbar machen ------------------------------- */
html.et-vb-app-ancestor :is(.bm-sortiment-app, .bm-saison-app, .bm-karte-app, .bm-menu, .bm-chalk-wrap, .bm-news-app) { min-height: 120px; outline: 2px dashed rgb(from var(--bm-ink) r g b / .3); outline-offset: 4px; }
html.et-vb-app-ancestor :is(.bm-sortiment-app, .bm-saison-app, .bm-karte-app, .bm-news-app)::before { content: "Wird im Frontend aus den ACF-Daten gefüllt"; display: block; padding: 12px; font-size: 13px; opacity: .6; }

/* ---- Korrekturen nach Test auf bm2 --------------------------------------- */
/* Divi-Tabellenstil (Rahmen, Einzug 24px) in der Öffnungszeiten-Tafel aufheben */
.bm-chalk .bm-ztable { border: 0 !important; }
.bm-chalk .bm-ztable td { padding: 9px 0 !important; border: 0 !important; border-bottom: 1px dashed rgb(from var(--bm-paper) r g b / .18) !important; }
.bm-chalk .bm-ztable td:first-child { padding-right: 10px !important; }
.bm-chalk .bm-ztable td:last-child { white-space: nowrap; }
.bm-chalk .bm-ztable .today td { border-bottom-color: transparent !important; }
/* Keine automatische Silbentrennung in Überschriften und Tafel */
.bm-h2 h2, .bm-chalk, .bm-theke-title h3, .bm-panel h3, .bm-karte-app, .bm-news-app, .bm-menu, .bm-markt-title h3 { -webkit-hyphens: manual; hyphens: manual; }
/* Text-Spalten: Abstände kommen aus den Modul-Rändern, nicht zusätzlich aus Divis 30px-Spaltenabstand */
.bm-maerkte-head > .et_pb_column, .bm-sortiment-r, .bm-saison-head > .et_pb_column, .bm-karte-head > .et_pb_column,
.bm-theken-head > .et_pb_column, .bm-mittag-grid > .et_pb_column, .bm-hof-copy, .bm-hof-more > .et_pb_column,
.bm-zeiten .et_pb_column, .bm-news .et_pb_column, .bm-gross-copy, .bm-kontakt-grid > .et_pb_column { row-gap: 0 !important; }
.bm-karte-head .bm-lede, .bm-maerkte-head .bm-lede { margin-top: 0; }
@media (max-width: 980px) { .bm-karte-head .bm-lede, .bm-maerkte-head .bm-lede { margin-top: 22px; } }
.bm-news-app { margin-top: 0 !important; }
.bm-hof-more .bm-mission-hint { margin-top: 14px !important; }

/* Schiefertafel-Hintergrund (Mediathek) */
.bm-chalk { background: var(--bm-chalk) url("/wp-content/uploads/schiefertafel.svg") center / cover no-repeat; }
/* Schreibschrift in Code-Modulen erzwingen (Builder überschreibt h2/h3-Schrift) */
.bm-chalk-title, .bm-menu-title, .bm-pin-home .lbl, .bm-note-inline { font-family: "Nickainley", cursive !important; font-weight: 400 !important; }

/* ---- Überschriften an Divi-Variablen fs-h*/lh-h* (Werte = Vorlage) -------- */
/* !important: Divis Heading-Modul setzt eigene Größen (Standard 26/22px) */
.bm-h2 h2 { font-size: var(--gvid-xbbdqp1whl) !important; line-height: var(--gvid-95915kbrtw) !important; }            /* fs-h2 / lh-h2 */
.bm-markt-title h3, .bm-panel h3 { font-size: var(--gvid-8ib2ivoy1r) !important; line-height: var(--gvid-lji8idubgd) !important; } /* fs-h3 / lh-h3 */
.bm-news-card h3, .bm-theke-title h3 { font-size: var(--gvid-t09rcbg1sl) !important; line-height: var(--gvid-b2njnl1hd2) !important; } /* fs-h4 / lh-h4 */
.bm-detail h3 { font-size: var(--gvid-w062ss2tig) !important; line-height: var(--gvid-am2q16sm43) !important; }        /* fs-h5 / lh-h5 */

/* Listen-Punkte in Code-Modulen (Divi setzt li { list-style: disc } mit höherer Spezifität) */
.bm-from li, .bm-plist li { list-style: none !important; }

/* Sortiment-Panel: eigener h3-Wert der Vorlage (größer als fs-h3 der Markt-Karten) */
.bm-panel h3 { font-size: clamp(3.2rem, 3.4vw, 5rem) !important; line-height: .95 !important; }

/* ---- News-Overlay (<dialog>, von bm-site.js erzeugt) ---------------------- */
html:has(.bm-dialog[open]) { overflow: hidden; }
.bm-dialog { width: min(720px, calc(100% - 32px)); max-height: calc(100dvh - 48px); padding: 0; border: 0; border-radius: 26px; overflow: auto; background: var(--bm-paper); color: var(--bm-ink); box-shadow: 0 40px 80px -30px rgb(from var(--bm-ink) r g b / .6); }
.bm-dialog::backdrop { background: rgba(27, 36, 16, .6); } /* ::backdrop erbt keine :root-Variablen */
.bm-dialog { position: fixed; inset: 0; margin: auto !important; } /* Divi-Reset setzt margin: 0 → Dialog sonst oben links */
.bm-dialog[open] { animation: bm-dlg-in 260ms var(--bm-ease); }
@keyframes bm-dlg-in { from { opacity: 0; transform: translateY(16px) scale(.98); } to { opacity: 1; transform: none; } }
.bm-dialog-close { position: absolute; z-index: 2; top: 14px; right: 14px; width: 44px; height: 44px; display: grid; place-items: center; cursor: pointer; border-radius: 50%; border: 2px solid var(--bm-ink); background: var(--bm-paper); color: var(--bm-ink); transition: background-color 200ms; }
.bm-dialog-close:hover { background: var(--bm-green-100); }
.bm-dialog-close svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2.5; stroke-linecap: round; }
.bm-dialog .bm-news-visual { height: 240px; border-bottom: 2px solid var(--bm-ink); }
.bm-dialog-body { padding: clamp(24px, 4vw, 44px); -webkit-hyphens: manual; hyphens: manual; }
.bm-dialog-body h2 { margin-top: 12px; padding: 0; font-weight: 800; font-size: clamp(28px, 3vw, 40px); line-height: 1.05; letter-spacing: -.025em; color: var(--bm-ink); }
.bm-dialog-content p { margin-top: 16px; padding: 0; font-size: 17px; line-height: 1.65; }
.bm-dialog-content a { color: var(--bm-green-700); font-weight: 700; }
.bm-dialog-perma { margin-top: 26px; padding: 0; font-size: 13px; opacity: .7; }
.bm-dialog-perma a { color: inherit; }
@media (prefers-reduced-motion: reduce) { .bm-dialog[open] { animation: none; } }

/* ---- Kontakt: zwei Karten untereinander (Werte der Vorlage) --------------- */
/* Grid aufs innere Element: Das Code-Modul hat nur .et_pb_code_inner als Kind */
.bm-maps .et_pb_code_inner { display: grid; gap: 18px; }
.bm-maps .bm-mapbox { aspect-ratio: 16 / 10; }
.bm-maps .bm-mapbox-pin { top: 34%; }
.bm-maps .bm-mapbox-pin img { width: 84px; }
.bm-maps .bm-mapbox-pin .bm-note-inline { font-size: 26px; }
@media (max-width: 640px) { .bm-maps .bm-mapbox { aspect-ratio: 4 / 5; } }
/* === Ende Startseite Sortiment bis Kontakt === */


/* === divi5-json: Footer === */
/* ==========================================================================
   FOOTER (Theme Builder, .bm-footer)
   ========================================================================== */
.et-l--footer .bm-footer, .bm-footer, body .et_builder_inner_content .et_pb_section.bm-footer, body .et_builder_inner_content .et_pb_section.bm-footer { padding: clamp(80px, 9vw, 130px) 0 28px !important; background: var(--bm-green-900) !important; color: var(--bm-paper); overflow: hidden; }
.bm-footer .et_pb_row { padding: 0 !important; }
.bm-footer .et_pb_column { row-gap: 0 !important; }
.bm-footer .et_pb_text p { padding-bottom: 0; }
.bm-footer .et_pb_text_inner, .bm-footer h3 { color: var(--bm-paper); }
.bm-footer a { color: var(--bm-paper); text-decoration: none; }

.bm-foot-note { display: inline-block !important; align-self: flex-start !important; width: fit-content !important; margin: 0 0 0 .2em !important; rotate: -4deg; }
.et_pb_text.bm-foot-note .et_pb_text_inner { font-size: 48px; line-height: 1.1; color: var(--bm-paper); }
.bm-foot-word { margin: 6px 0 clamp(54px, 6vw, 90px) !important; user-select: none; container-type: inline-size; }
.et_pb_text.bm-foot-word .et_pb_text_inner {
  font-weight: 900; color: var(--bm-green); line-height: .8; letter-spacing: -.04em; text-transform: uppercase;
  font-size: min(240px, calc(100cqi / 8.55));
}
.bm-foot-word p { display: flex; justify-content: space-between; }
.bm-foot-word span { display: inline-block; transition: transform 350ms cubic-bezier(.3, 1.6, .5, 1), color 200ms; }
.bm-foot-word span:hover { transform: translateY(-.08em) rotate(-4deg); color: var(--bm-yolk); }
@media (prefers-reduced-motion: no-preference) {
  .bm-foot-word.js:not(.in) span { opacity: 0; }
  .bm-foot-word.in span { animation: bm-rise 650ms var(--bm-ease) backwards; animation-delay: calc(var(--i) * 55ms); }
}

.bm-foot-cols { column-gap: 40px !important; }
.bm-foot-h h3 { margin-bottom: 16px; padding: 0; font-size: 12px !important; line-height: 1.2 !important; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--bm-green) !important; }
.bm-foot-logo, .bm-foot-logo-img, .bm-foot-logo-img img { width: 120px !important; margin: 0 !important; }
.bm-foot-claim { margin-top: 16px !important; }
.et_pb_text.bm-foot-claim .et_pb_text_inner { font-weight: 700; font-size: 18px; }
.bm-foot-menu p { display: grid; gap: 8px; }
.bm-foot-menu br { display: none; }
.bm-foot-menu a { width: max-content; font-weight: 600; }
.bm-footer .bm-ul { position: relative; }
.bm-footer .bm-ul::after { content: ""; position: absolute; left: 0; right: 0; bottom: -5px; height: 3px; border-radius: 2px; background: var(--bm-green); transform: scaleX(0); transform-origin: left; transition: transform 350ms var(--bm-ease); }
.bm-footer .bm-ul:hover::after { transform: scaleX(1); }
.bm-foot-contact p { line-height: 1.7; }
.bm-foot-contact p + p { margin-top: 14px; }
.bm-foot-contact small { margin-left: 6px; font-size: 12px; font-weight: 700; color: var(--bm-green); text-transform: uppercase; letter-spacing: .1em; }
.bm-foot-contact a:hover, .bm-foot-bottom a:hover { text-decoration: underline; text-underline-offset: 3px; }
.bm-social-wrap { margin-top: 20px !important; }
.bm-social { display: flex; gap: 10px; }
.bm-social a { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; border: 2px solid var(--bm-paper); transition: background 200ms, color 200ms; }
.bm-social a:hover { background: var(--bm-paper); color: var(--bm-green-900); }
.bm-social svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.bm-foot-bottom { margin-top: 64px !important; padding-top: 22px !important; border-top: 1px solid rgb(from var(--bm-paper) r g b / .2); }
.bm-foot-bottom .et_pb_text_inner { font-size: 14px; }
.bm-foot-legal a + a { margin-left: 18px; }
@media (max-width: 980px) { .et_pb_text.bm-foot-note .et_pb_text_inner { font-size: 36px; } .bm-foot-bottom { margin-top: 0 !important; } }
/* === Ende Footer === */


/* === divi5-json: Hofcafé === */
/* ==========================================================================
   UNTERSEITE HOFCAFÉ (Seite 405) – gemeinsame Unterseiten-Bausteine:
   .bm-phero, .bm-split, .bm-sec-head, .bm-cards, .bm-gallery, .bm-cafe-board
   ========================================================================== */
/* Seitenkopf */
.bm-phero, body .et_builder_inner_content .et_pb_section.bm-phero { padding: clamp(130px, 13vw, 190px) 0 clamp(70px, 8vw, 120px) !important; background: transparent; }
.bm-phero-grid { align-items: center !important; column-gap: clamp(36px, 5vw, 80px) !important; }
.bm-phero-grid > .et_pb_column, .bm-split > .et_pb_column, .bm-sec-head > .et_pb_column { row-gap: 0 !important; }
.bm-phero-copy { flex-basis: 0 !important; flex-grow: 1 !important; }
.bm-phero-grid > .et_pb_column:last-child { flex-grow: 1.15 !important; flex-basis: 0 !important; }
.bm-crumbs { margin-bottom: 26px !important; }
.et_pb_text.bm-crumbs .et_pb_text_inner { font-size: 13px; font-weight: 600; }
.bm-crumbs p { display: flex; flex-wrap: wrap; gap: 8px; }
.bm-crumbs a { color: var(--bm-green-700); text-decoration: none; }
.bm-crumbs a:hover { text-decoration: underline; text-underline-offset: 3px; }
.bm-crumbs span[aria-hidden] { opacity: .45; }
.bm-phero-note { display: block !important; width: max-content !important; margin: 0 0 10px .1em !important; }
.et_pb_text.bm-phero-note .et_pb_text_inner { font-size: 30px; }
.bm-display h1 { padding: 0; font-weight: 900 !important; font-size: clamp(48px, 7.6vw, 124px) !important; line-height: .92 !important; letter-spacing: -.035em; color: var(--bm-ink); -webkit-hyphens: manual; hyphens: manual; }
.bm-phero .bm-lede { margin-top: 24px !important; }
.bm-phero-actions { margin-top: 30px !important; }
.bm-phero-meta { margin-top: 22px !important; }
.bm-phero-meta .et_pb_code_inner { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; }
.bm-phero-meta small { font-size: 13px; font-weight: 500; opacity: .75; }
.bm-pmedia-wrap, .bm-pmedia-wrap .et_pb_code_inner { width: 100%; }
.bm-pmedia { position: relative; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 28px; background: var(--bm-green-900); box-shadow: 0 50px 90px -40px rgb(27 36 16 / .55); }
.bm-pmedia > video, .bm-pmedia > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.bm-pmedia > img.bm-pmedia-poster { display: none; }
.bm-pmedia.is-fallback > video { display: none; }
.bm-pmedia.is-fallback > img.bm-pmedia-poster { display: block; }
.bm-pmedia .bm-hero-play { display: none; }
.bm-pmedia.is-paused .bm-hero-play { display: inline-flex; }

/* Genuss: Bild + Text */
.bm-split-sec, body .et_builder_inner_content .et_pb_section.bm-split-sec { padding: clamp(90px, 10vw, 150px) 0 !important; background: var(--bm-kraft) !important; }
.bm-split { align-items: center !important; column-gap: clamp(40px, 6vw, 96px) !important; }
.bm-split-img { position: relative; width: 100%; margin-bottom: 10%; }
.bm-split-img .et_pb_image_wrap, .bm-split-img img { display: block; width: 100%; }
.bm-split-a { width: 100%; margin: 0 !important; }
.bm-split-a img { border-radius: 28px; rotate: -1.5deg; box-shadow: 0 30px 60px -30px rgb(from var(--bm-ink) r g b / .35); }
.bm-split-b { position: absolute !important; width: 46% !important; right: -4%; bottom: -10%; margin: 0 !important; }
.bm-split-b img { border: 6px solid var(--bm-paper); border-radius: 22px; rotate: 3deg; }
.bm-split-copy .bm-h2 { margin-top: 2px !important; }
.bm-split-text { margin-top: 18px !important; max-width: 54ch; }
.bm-split-text p + p { margin-top: 18px; }
.bm-split-h3 { margin-top: 30px !important; }
.bm-split-h3 h3 { padding: 0; font-weight: 800 !important; font-size: 20px !important; line-height: 1.3 !important; }
.bm-sign { margin-top: 26px !important; }
.bm-sign .bm-note-inline { display: inline-block; font-size: 34px; line-height: 1.1; rotate: -2deg; }
.bm-sign small { display: block; margin-top: 4px; font-size: 14px; font-weight: 600; }
@media (max-width: 980px) { .bm-split-b { right: 4%; bottom: -8%; } .bm-split-img { margin-bottom: 14%; } }

/* Abschnittskopf (Eyebrow + H2 links, Lede rechts unten) */
.bm-sec-head { align-items: flex-end !important; column-gap: 60px !important; margin-bottom: clamp(40px, 5vw, 64px) !important; }
@media (max-width: 980px) { .bm-sec-head .bm-lede { margin-top: 22px; } }

/* Angebot: Karten */
.bm-angebot, body .et_builder_inner_content .et_pb_section.bm-angebot { padding: clamp(90px, 10vw, 150px) 0 !important; background: transparent; }
.bm-cards { align-items: stretch !important; column-gap: clamp(16px, 2vw, 28px) !important; }
.bm-cards + .bm-cards { margin-top: clamp(16px, 2vw, 28px) !important; }
.bm-card { display: flex !important; flex-direction: column; gap: 0 !important; overflow: hidden; border-radius: 26px; background: var(--bm-paper); border: 2px solid var(--bm-ink); }
.bm-card-ph { width: 100%; margin: 0 !important; aspect-ratio: 4 / 3; overflow: hidden; border-bottom: 2px solid var(--bm-ink); }
.bm-card.wide .bm-card-ph { aspect-ratio: 16 / 9; }
.bm-card-ph .et_pb_image_wrap, .bm-card-ph img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 900ms var(--bm-ease); }
.bm-card:hover .bm-card-ph img { transform: scale(1.04); }
.bm-card-body { flex: 1; width: 100%; padding: 24px 24px 26px; }
.bm-card-title h3 { padding: 0; font-weight: 800 !important; font-size: 24px !important; line-height: 1 !important; letter-spacing: -.03em; }
.et_pb_text.bm-card-text .et_pb_text_inner { font-size: 16px; line-height: 1.55; }
.bm-card-text p + p, .bm-card-text p + ul { margin-top: 12px; }
.bm-card-list { display: grid; gap: 6px; margin: 0; padding: 0 !important; list-style: none !important; font-size: 15px; }
.bm-card-list li { display: flex; align-items: baseline; gap: 10px; margin: 0; padding: 0 !important; list-style: none !important; }
.bm-card-list li::before { content: ""; flex: none; width: 14px; height: 11px; translate: 0 1px; background: var(--bm-green-700);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 32'%3E%3Cpath d='M20 2c5 4 5 11 0 15c-5-4-5-11 0-15z'/%3E%3Cpath d='M4 12c6-1 11 3 13 9c-6 1-11-3-13-9z'/%3E%3Cpath d='M36 12c-6-1-11 3-13 9c6 1 11-3 13-9z'/%3E%3Crect x='18.8' y='16' width='2.4' height='14' rx='1.2'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 32'%3E%3Cpath d='M20 2c5 4 5 11 0 15c-5-4-5-11 0-15z'/%3E%3Cpath d='M4 12c6-1 11 3 13 9c-6 1-11-3-13-9z'/%3E%3Cpath d='M36 12c-6-1-11 3-13 9c6 1 11-3 13-9z'/%3E%3Crect x='18.8' y='16' width='2.4' height='14' rx='1.2'/%3E%3C/svg%3E") center / contain no-repeat; }
.bm-card-link { margin-top: auto !important; padding-top: 6px; }
.bm-card-link a { font-weight: 700; font-size: 15px; color: var(--bm-green-700); text-decoration: none; }
.bm-card-link a:hover { text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 1100px) and (min-width: 768px) { .bm-cards { flex-wrap: wrap !important; row-gap: clamp(16px, 2vw, 28px) !important; } }

/* Mittagstisch auf der Unterseite: oben Abstand */
.bm-mittag.bm-mittag-page { padding-top: clamp(90px, 10vw, 150px) !important; }

/* Galerie */
.bm-galerie, body .et_builder_inner_content .et_pb_section.bm-galerie { padding: clamp(90px, 10vw, 150px) 0 !important; background: var(--bm-green-100) !important; }
.bm-gallery { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(10px, 1.4vw, 18px) !important; width: 100%; }
.bm-gal-img { margin: 0 !important; aspect-ratio: 1; overflow: hidden; border-radius: 18px; }
.bm-gal-img.big { grid-column: span 2; grid-row: span 2; }
.bm-gal-img .et_pb_image_wrap, .bm-gal-img img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 900ms var(--bm-ease); }
.bm-gal-img:hover img { transform: scale(1.04); }
@media (max-width: 640px) { .bm-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Öffnungszeiten & Reservierung (Schiefertafel) */
.bm-zeiten-cafe, body .et_builder_inner_content .et_pb_section.bm-zeiten-cafe { padding: clamp(90px, 10vw, 150px) 0 clamp(100px, 11vw, 160px) !important; background: transparent; }
.bm-zeiten-cafe .et_pb_column { row-gap: 0 !important; }
.bm-zeiten-cafe .bm-chalk-head { row-gap: 18px; }
.bm-cafe-board { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 4vw, 64px); margin-top: 34px; }
.bm-cafe-board h3 { padding: 0; font-weight: 800 !important; font-size: 18px !important; line-height: 1.3 !important; font-family: inherit !important; }
.bm-cafe-board .bm-ztable td:first-child { width: auto; }
.bm-cafe-contact { display: grid; gap: 22px; align-content: start; }
.bm-cafe-contact h3 { margin-bottom: 8px; }
.bm-cafe-contact p { font-size: 15px; line-height: 1.7; }
.bm-cafe-contact a:not(.bm-btn) { color: var(--bm-paper); font-weight: 600; text-decoration: none; border-bottom: 1px solid rgb(from var(--bm-paper) r g b / .35); }
.bm-cafe-contact a:not(.bm-btn):hover { border-bottom-color: var(--bm-paper); }
.bm-cafe-contact .bm-btn { margin-top: 6px; }
@media (max-width: 980px) { .bm-cafe-board { grid-template-columns: minmax(0, 1fr); } }
/* === Ende Hofcafé === */


/* === divi5-json: Hof + Großkunden === */
/* ==========================================================================
   UNTERSEITEN UNSER HOF + GROSSKUNDEN
   ========================================================================== */
/* Seitenkopf: Bild statt Video, kleinere H1 */
.bm-pmedia-img { width: 100%; margin: 0 !important; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 28px; background: var(--bm-green-900); box-shadow: 0 50px 90px -40px rgb(27 36 16 / .55); }
.bm-pmedia-img .et_pb_image_wrap, .bm-pmedia-img img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 30% 50%; }
.bm-display.sm h1 { font-size: clamp(42px, 5.4vw, 92px) !important; }

/* Unser Hof: Vision */
.bm-hofpage .bm-hof-img-solo img { object-position: 82% 50%; }
.bm-hofpage .bm-hof-copy .bm-steps li strong { font-weight: 800; }
.bm-hof-mhead { margin-top: clamp(90px, 10vw, 150px) !important; }
.bm-hofpage .bm-hof-more { margin-top: 0 !important; }

/* Unser Hof: Tiere */
.bm-tiere, body .et_builder_inner_content .et_pb_section.bm-tiere { padding: clamp(90px, 10vw, 150px) 0 !important; background: transparent; }
.bm-animal + .bm-animal { margin-top: clamp(70px, 9vw, 130px) !important; }
.bm-animal-img { width: 100%; margin: 0 !important; aspect-ratio: 4 / 3.4; overflow: hidden; border-radius: 28px; box-shadow: 0 30px 60px -30px rgb(from var(--bm-ink) r g b / .35); }
.bm-animal-img .et_pb_image_wrap, .bm-animal-img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.bm-animal.flip .bm-animal-img img { object-position: 50% 40%; }
.bm-animal-h h3 { padding: 0; font-weight: 800 !important; font-size: clamp(26px, 2.6vw, 38px) !important; line-height: 1.1 !important; letter-spacing: -.025em; -webkit-hyphens: manual; hyphens: manual; }
.bm-animal-text { margin-top: 18px !important; max-width: 54ch; }
.et_pb_text.bm-animal-text .et_pb_text_inner { font-size: 16px; }
.bm-animal-text p + p { margin-top: 18px; }
.bm-animal .bm-card-link { margin-top: 18px !important; }
@media (max-width: 980px) { .bm-animal.flip > .et_pb_column:last-child { order: -1; } .bm-animal .bm-split-copy { margin-top: 30px; } }

/* Unser Hof: Werte */
.bm-werte, body .et_builder_inner_content .et_pb_section.bm-werte { padding: clamp(90px, 10vw, 150px) 0 !important; background: var(--bm-kraft) !important; }
.bm-values { align-items: stretch !important; column-gap: clamp(16px, 2vw, 28px) !important; }
.bm-value { padding: clamp(24px, 2.6vw, 36px) !important; border-radius: 26px; background: var(--bm-paper); border: 2px solid var(--bm-ink); row-gap: 0 !important; }
.bm-value::before { content: ""; display: block; width: 38px; height: 30px; background: var(--bm-green-700);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 32'%3E%3Cpath d='M20 2c5 4 5 11 0 15c-5-4-5-11 0-15z'/%3E%3Cpath d='M4 12c6-1 11 3 13 9c-6 1-11-3-13-9z'/%3E%3Cpath d='M36 12c-6-1-11 3-13 9c6 1 11-3 13-9z'/%3E%3Crect x='18.8' y='16' width='2.4' height='14' rx='1.2'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 32'%3E%3Cpath d='M20 2c5 4 5 11 0 15c-5-4-5-11 0-15z'/%3E%3Cpath d='M4 12c6-1 11 3 13 9c-6 1-11-3-13-9z'/%3E%3Cpath d='M36 12c-6-1-11 3-13 9c6 1 11-3 13-9z'/%3E%3Crect x='18.8' y='16' width='2.4' height='14' rx='1.2'/%3E%3C/svg%3E") center / contain no-repeat; }
.bm-value-title { margin-top: 18px !important; }
.bm-value-title h3 { padding: 0; font-weight: 800 !important; font-size: 22px !important; line-height: 1.15 !important; letter-spacing: -.02em; }
.bm-value-text { margin-top: 12px !important; }
.et_pb_text.bm-value-text .et_pb_text_inner { font-size: 16px; line-height: 1.6; }
@media (max-width: 980px) { .bm-value + .bm-value { margin-top: clamp(16px, 2vw, 28px); } }

/* Dunkler Abschluss (Hof + Großkunden-Kontakt) */
.bm-cta, body .et_builder_inner_content .et_pb_section.bm-cta { padding: clamp(80px, 9vw, 130px) 0 !important; background: var(--bm-green-900) !important; color: var(--bm-paper); border-bottom: 1px solid rgb(from var(--bm-paper) r g b / .14); }
.bm-cta .et_pb_column { row-gap: 0 !important; }
.bm-cta .et_pb_text.bm-eyebrow .et_pb_text_inner { color: var(--bm-green); }
.bm-cta .bm-h2 h2 { color: var(--bm-paper) !important; }
.bm-cta-grid { align-items: flex-end !important; }
.bm-cta-right { display: flex !important; justify-content: flex-end; }
.bm-cta-text { margin-top: 16px !important; max-width: 48ch; }
.et_pb_text.bm-cta-text .et_pb_text_inner { font-size: 18px; color: var(--bm-paper); }
body #page-container .et_pb_section .et_pb_button.bm-btn-ghost.light { background: transparent !important; color: var(--bm-paper) !important; border-color: var(--bm-paper) !important; }
body #page-container .et_pb_section .et_pb_button.bm-btn-ghost.light:hover { background: rgb(from var(--bm-paper) r g b / .1) !important; }
@media (max-width: 980px) { .bm-cta-right { justify-content: flex-start; margin-top: 30px; } }

/* Großkunden: Produkte */
.bm-produkte, body .et_builder_inner_content .et_pb_section.bm-produkte { padding: clamp(90px, 10vw, 150px) 0 !important; background: var(--bm-kraft) !important; }
.bm-products { align-items: stretch !important; column-gap: clamp(16px, 2vw, 24px) !important; }
.bm-product { display: flex !important; flex-direction: column; gap: 0 !important; overflow: hidden; border-radius: 26px; background: var(--bm-paper); border: 2px solid var(--bm-ink); }
.bm-product-ph { width: 100%; margin: 0 !important; aspect-ratio: 4 / 3; overflow: hidden; border-bottom: 2px solid var(--bm-ink); background: #fff; }
.bm-product-ph .et_pb_image_wrap, .bm-product-ph img { display: block; width: 100%; height: 100%; object-fit: cover; }
.bm-product-body { width: 100%; padding: 22px 22px 24px; }
.bm-product-title h3 { padding: 0; font-weight: 800 !important; font-size: 21px !important; line-height: 1.05 !important; letter-spacing: -.02em; }
.et_pb_text.bm-product-text .et_pb_text_inner { font-size: 15px; line-height: 1.55; }
.bm-product-text dl { display: grid; gap: 10px; margin: 16px 0 0; padding: 14px 0 0; border-top: 1px dashed rgb(from var(--bm-ink) r g b / .3); font-size: 14px; }
.bm-product-text p + dl { margin-top: 12px; }
.bm-product-text dt { font-weight: 800; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--bm-green-700); }
.bm-product-text dd { margin: 2px 0 0; padding: 0; line-height: 1.5; }
@media (max-width: 1100px) and (min-width: 768px) { .bm-products { flex-wrap: wrap !important; row-gap: clamp(16px, 2vw, 24px) !important; } }
@media (max-width: 767px) { .bm-product + .bm-product { margin-top: 16px; } }

/* Großkunden: Versprechen */
.bm-versprechen, body .et_builder_inner_content .et_pb_section.bm-versprechen { padding: clamp(90px, 10vw, 150px) 0 !important; background: var(--bm-green-100) !important; }
.bm-versprechen .et_pb_column { row-gap: 0 !important; }
.bm-promise-grid { align-items: flex-end !important; }
.bm-promise-right { display: flex !important; justify-content: flex-end; }
.bm-promise-text { margin-top: 18px !important; max-width: 56ch; }
.et_pb_text.bm-promise-text .et_pb_text_inner { font-size: 18px; }
@media (max-width: 980px) { .bm-promise-right { justify-content: flex-start; margin-top: 24px; } }

/* Großkunden: Präsentation (Bausteine wie Hofcafé „Genuss“), heller Hintergrund */
.bm-split-sec.paper, body .et_builder_inner_content .et_pb_section.bm-split-sec.paper { background: transparent !important; }

/* Großkunden: Ansprechpartner */
.bm-contact-grid { align-items: center !important; column-gap: clamp(36px, 5vw, 80px) !important; }
.bm-contact-grid .bm-cta-text { margin-top: 18px !important; }
.bm-person { display: grid !important; grid-template-columns: auto minmax(0, 1fr); gap: 26px !important; align-items: center; width: 100%; padding: clamp(24px, 3vw, 40px); border-radius: 26px; background: var(--bm-paper); color: var(--bm-ink); }
.bm-person-img { width: 132px !important; margin: 0 !important; }
.bm-person-img img { display: block; width: 132px; height: 132px; border-radius: 50%; object-fit: cover; border: 4px solid var(--bm-green); }
.et_pb_text.bm-person-kind .et_pb_text_inner { font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--bm-green-700); }
.bm-person-name { margin-top: 4px !important; }
.bm-person-name h3 { padding: 0; font-weight: 800 !important; font-size: 26px !important; line-height: 1.15 !important; letter-spacing: -.02em; color: var(--bm-ink) !important; }
.bm-person-list { margin-top: 14px !important; }
.bm-person-list ul { display: grid; gap: 6px; margin: 0; padding: 0 !important; list-style: none !important; font-size: 15px; }
.bm-person-list li { margin: 0; padding: 0 !important; list-style: none !important; color: var(--bm-ink); }
.bm-person-list a { color: var(--bm-green-700); font-weight: 700; text-decoration: none; word-break: break-word; }
.bm-person-list a:hover { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 980px) { .bm-contact-grid .bm-person { margin-top: 30px; } }
@media (max-width: 520px) { .bm-person { grid-template-columns: minmax(0, 1fr); } }
/* === Ende Hof + Großkunden === */
