/* ==========================================================================
   Wagner Header — Divi 5 Theme-Builder-Komponente
   Prefix: bw- · Breakpoints: Divi-Defaults (980px Tablet, 767px Phone)
   Tokens siehe :root — Werte aus dem UX-Spec (design_handoff_header_flyout)
   ========================================================================== */

:root {
  /* Farben */
  --bw-charcoal: #23221E;
  --bw-green: #5F8752;
  --bw-green-dark: #527646;
  --bw-gold: #D9B64B;
  --bw-gold-dark: #B08F2E;
  --bw-gold-light: #EFD98F;
  --bw-warm-white: #FBF9F4;
  --bw-border-light: #ECE7DA;
  --bw-border-mid: #D8D2C2;
  --bw-muted: #8A8375;
  --bw-secondary: #5A554A;
  --bw-placeholder: #9A9385;
  --bw-nav-muted: #C9C4B6;
  --bw-dim-dark: #8A8578;
  --bw-light-on-dark: #F2EEE1;

  /* Typografie */
  --bw-font: 'PT Sans', system-ui, sans-serif;
  --bw-font-accent: 'Metafors', cursive;
  --bw-nav-size: 13.5px;

  /* Maße */
  --bw-header-h: 72px;
  --bw-header-h-shrunk: 60px;
  --bw-header-h-mobile: 58px;
  /* Mindestabstand des Contents zum Rand (Preset 1390: 25px · Preset 1080: 100px) */
  --bw-header-edge-min: 25px;
  /* Innenkante der Leiste/Panels: Content zentriert, nie näher am Rand als edge-min */
  --bw-header-x: max(calc((100% - var(--bw-content-max)) / 2), var(--bw-header-edge-min));
  /* Mobil bündig mit der Content-Breite (Menü-Zeilen nutzen denselben Wert) —
     bei abweichender Divi-Content-Kante per Theme Options CSS übersteuern */
  --bw-header-x-mobile: 22px;
  /* Verbindliches Breitenraster für ALLE Module (siehe CLAUDE.md):
     Modul außen 1440px, Content-Container darin 1390px (25px Kante) */
  --bw-container-max: 1440px;
  --bw-content-max: 1390px;
  /* Luft ÜBER dem Banner (und unter ihm via Spacer). Standard: bündig am
     Seitenanfang. Für eine schwebende Leiste z.B. auf 25px setzen. */
  --bw-header-inset: 0px;

  /* Elevation */
  --bw-shadow-panel: 0 24px 50px rgba(24, 22, 17, .22);
  --bw-shadow-search: 0 24px 50px rgba(24, 22, 17, .18);
  --bw-shadow-dropdown: 0 14px 30px rgba(24, 22, 17, .16);
  --bw-shadow-card: 0 2px 8px rgba(24, 22, 17, .05);
  --bw-shadow-shrunk: 0 2px 10px rgba(24, 22, 17, .10);

  /* Ebenen — Divi-Sections liegen niedrig, Header muss darüber (Spec).
     Das mobile Menü liegt UNTER dem Header (gleitet dahinter hervor). */
  --bw-z-header: 9999;
  --bw-z-mobilemenu: 9998;
}

/* --------------------------------------------------------------------------
   Design-System-Tokens aus dem Handoff (design_handoff_cart_checkout/tokens).
   Additiv — kein bestehender Wert wird geändert. Sie liegen hier, weil dieses
   Plugin laut CLAUDE.md die Design-System-Basis stellt; jedes Modul zieht
   daraus, statt eigene Werte zu setzen (kein Token-Drift).
   -------------------------------------------------------------------------- */
:root {
  /* Farben — Ergänzungen */
  --bw-cream: #F6F1E5;            /* Flächen statt Rahmen */
  --bw-hairline: #E6DFCC;         /* kräftigere Haarlinie neben --bw-border-light */
  --bw-error: #B3543E;            /* Terracotta — NUR funktional (Fehler), nie dekorativ */
  --bw-error-bg: #FDF6F4;

  /* Typo-Skala — Kurzform `font:`-tauglich */
  --bw-type-h1: 700 46px/1.12 var(--bw-font);
  --bw-type-h1-mobile: 700 27px/1.2 var(--bw-font);
  --bw-type-h2: 700 34px/1.18 var(--bw-font);
  --bw-type-h2-mobile: 700 24px/1.22 var(--bw-font);
  --bw-letter-headline: -0.01em;
  --bw-type-eyebrow: 400 19px/1.3 var(--bw-font-accent);
  --bw-type-eyebrow-module: 400 18px/1.3 var(--bw-font-accent);
  --bw-type-script-tagline: 400 14.5px/1.3 var(--bw-font-accent);
  --bw-type-copy-accent: 400 17px/1.4 var(--bw-font-accent);
  --bw-type-body: 400 16px/1.65 var(--bw-font);
  --bw-type-body-sm: 400 15px/1.7 var(--bw-font);
  --bw-type-body-mobile: 400 13.5px/1.6 var(--bw-font);
  --bw-type-lead: 700 16px/1.6 var(--bw-font);
  --bw-type-button: 700 14px/1 var(--bw-font);
  --bw-type-button-sm: 700 13.5px/1 var(--bw-font);
  --bw-type-chip: 700 12.5px/1 var(--bw-font);
  --bw-type-label: 700 10.5px/1.2 var(--bw-font);
  --bw-letter-label: 0.14em;
  --bw-type-input: 400 14px/1.4 var(--bw-font);
  --bw-type-helper: 400 11.5px/1.5 var(--bw-font);
  --bw-type-key-value: 700 14.5px/1.4 var(--bw-font);

  /* Form & Rahmen */
  --bw-radius-pill: 99px;
  --bw-radius-card: 12px;
  --bw-radius-panel: 10px;
  --bw-radius-module-frame: 16px;
  --bw-radius-tile: 20px;
  --bw-radius-image: 28px 84px 28px 28px;         /* Markenecke, große Motive */
  --bw-radius-image-mobile: 18px 48px 18px 18px;
  --bw-radius-product: 10px 26px 10px 10px;       /* Produktbilder in Listen */
  --bw-border-w-input: 1.5px;
  --bw-border-w-hairline: 1px;

  /* Elevation — Ergänzungen */
  --bw-shadow-toast: 0 8px 24px rgba(24, 22, 17, .10);

  /* Bewegung */
  --bw-motion-hover: 150ms ease;
  --bw-motion-panel-open: 200ms ease-out;
  --bw-motion-panel-close: 150ms ease;
  --bw-motion-pop: 300ms cubic-bezier(0.34, 1.56, 0.64, 1);
}


@font-face {
  font-family: 'Metafors';
  src: url('../fonts/metafors-Regular.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

/* --------------------------------------------------------------------------
   Grundgerüst: fixierte Leiste + Platzhalter
   -------------------------------------------------------------------------- */

/* Nicht auf Divis globales border-box verlassen — Komponenten rechnen selbst.
   .bw-header/.bw-mobilemenu explizit, da im Fixiert-Modus per JS an <body>
   verschoben (dann außerhalb von .bw-header-root). */
.bw-header-root,
.bw-header-root *,
.bw-header,
.bw-header *,
.bw-mobilemenu,
.bw-mobilemenu *,
.bw-hero,
.bw-hero *,
.bw-pagehead,
.bw-pagehead *,
.bw-about,
.bw-about *,
.bw-footer,
.bw-footer * {
  box-sizing: border-box;
}

.bw-header-root {
  font-family: var(--bw-font);
}

.bw-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: var(--bw-z-header);
  max-width: var(--bw-container-max);
  margin: 0 auto;
  /* Banner (Leiste) = volle 1440px — Luft nur noch oben; Content-Kante macht die Leiste selbst */
  padding: var(--bw-header-inset) 0 0;
  background: transparent;
}

body.admin-bar .bw-header { top: 32px; }
@media (max-width: 782px) {
  body.admin-bar .bw-header { top: 46px; }
}

.bw-header.is-shrunk .bw-header__bar {
  box-shadow: var(--bw-shadow-shrunk);
}

/* Goldene Haarlinie an der Unterkante der Leiste */
.bw-header__bar::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(217, 182, 75, .75), transparent);
  pointer-events: none;
}

.bw-header__bar {
  position: relative;
  z-index: 2; /* Leiste liegt ÜBER den Panels — Flyout/Suche gleiten dahinter hervor, kein Flicker an der Headerkante */
  display: flex;
  align-items: center;
  gap: 26px;
  height: var(--bw-header-h);
  padding: 0 var(--bw-header-x);
  background: var(--bw-header-bg, var(--bw-charcoal));
  transition: height 200ms ease, box-shadow 200ms ease;
}

.bw-header.is-shrunk .bw-header__bar {
  height: var(--bw-header-h-shrunk);
}

.bw-header-spacer {
  /* Platz der fixierten Leiste inkl. Luft oben und unten */
  height: calc(var(--bw-header-h) + 2 * var(--bw-header-inset));
}

/* --------------------------------------------------------------------------
   Theme-Builder-Modus: Divi-Section steuert Position, Sticky & Abstände
   (Einstellung "Positionierung" unter Design > Wagner Header)
   -------------------------------------------------------------------------- */

.bw-header-root--builder {
  --bw-header-inset: 0px;
}

.bw-header-root--builder .bw-header {
  position: relative;
  top: auto;
  max-width: none;
  margin: 0;
  padding: 0;
}

body.admin-bar .bw-header-root--builder .bw-header {
  top: auto;
}

.bw-header-root--builder .bw-header-spacer {
  display: none;
}

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

.bw-logo {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

.bw-logo__img {
  height: 42px;
  width: auto;
  display: block;
  transition: height 200ms ease;
}

.bw-header.is-shrunk .bw-logo__img {
  height: 36px;
}

/* Platzhalter: farbiges Logo hell filtern, bis die weiße Logodatei vorliegt */
.bw-logo__img--filtered {
  filter: brightness(0) invert(1) opacity(.92);
}

/* --------------------------------------------------------------------------
   Hauptnavigation (Desktop)
   -------------------------------------------------------------------------- */

.bw-nav {
  position: relative;
  /* Nav nimmt den Raum zwischen Logo und Aktionen ein, der Inhalt wird darin
     ausgerichtet — Divi kann das nav-Element sonst strecken und linksbündig lassen */
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  align-self: stretch;
  display: flex;
  align-items: stretch;
  justify-content: var(--bw-nav-justify, center);
}

/* Manuelle Feinjustierung, z.B. via Divi > Theme Options > Custom CSS:
   :root { --bw-nav-justify: flex-start; --bw-nav-offset: -20px; } */
.bw-nav__list {
  transform: translateX(var(--bw-nav-offset, 0px));
}

.bw-nav__list {
  display: flex;
  align-items: stretch;
  gap: 26px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.bw-nav__list li {
  display: flex;
}

.bw-nav__list a {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  font-size: var(--bw-nav-size);
  letter-spacing: .03em;
  font-weight: 400;
  /* etwas kräftiger als Regular, ohne Bold (PT Sans hat nur 400/700) */
  -webkit-text-stroke: .3px currentColor;
  color: var(--bw-nav-muted);
  text-decoration: none;
  transition: color 150ms ease;
}

/* Bold-Breite vorab reservieren — verhindert Springen der Nachbarn beim Hover */
.bw-nav__list a::before {
  content: attr(data-text);
  font-weight: 700;
  height: 0;
  visibility: hidden;
  overflow: hidden;
  pointer-events: none;
}

/* Nur der aktive Zustand (Hover, Fokus, geöffnetes Flyout) ist bold + weiß;
   die Unterstreichung übernimmt der gleitende Gold-Balken (JS) */
.bw-nav__list a:hover,
.bw-nav__list a:focus-visible,
.bw-nav__list li.is-open > a {
  color: #FFFFFF;
  font-weight: 700;
}

/* Chevron an Menüpunkten mit Mega-Flyout — gleiche feine Linienführung wie
   die Icons (1.5px, runde Kappen), dreht sich bei geöffnetem Flyout */
.bw-nav__list li.bw-has-flyout::after {
  content: '';
  align-self: center;
  flex-shrink: 0;
  width: 10px;
  height: 7px;
  margin-left: 7px;
  background-color: var(--bw-nav-muted);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1.5 1.5 L6 6.5 L10.5 1.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 12 8' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1.5 1.5 L6 6.5 L10.5 1.5'/%3E%3C/svg%3E") center / contain no-repeat;
  transition: transform 250ms cubic-bezier(.4, 0, .2, 1), background-color 150ms ease;
}

.bw-nav__list li.bw-has-flyout:hover::after,
.bw-nav__list li.bw-has-flyout:focus-within::after,
.bw-nav__list li.bw-has-flyout.is-open::after {
  background-color: #FFFFFF;
}

.bw-nav__list li.bw-has-flyout.is-open::after {
  transform: rotate(180deg);
}

/* Gleitender Gold-Balken (JS-positioniert) */
.bw-nav__underline {
  position: absolute;
  left: 0; /* fester Anker — justify-content würde die statische Position sonst verschieben */
  bottom: 0;
  height: 2px;
  width: 0;
  background: var(--bw-gold);
  transition: transform 250ms cubic-bezier(.4, 0, .2, 1), width 250ms cubic-bezier(.4, 0, .2, 1), opacity 150ms ease;
  opacity: 0;
  z-index: 1;
}

.bw-nav__underline.is-visible {
  opacity: 1;
}

/* --------------------------------------------------------------------------
   Utility-Icons + Status-Punkte
   -------------------------------------------------------------------------- */

.bw-utils {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-left: 14px; /* zusätzlich zum 26px-Grundabstand: Luft zwischen Nav und Aktionen */
}

.bw-iconbtn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 28px;
  min-height: 28px;
  padding: 0;
  background: none;
  border: 0;
  cursor: pointer;
  color: var(--bw-nav-muted);
  font: inherit;
  text-decoration: none;
  transition: color 150ms ease;
}

.bw-iconbtn:hover,
.bw-iconbtn:focus-visible {
  color: #FFFFFF;
}

/* Aktives Such-Icon: gold + Unterstreichung wie aktive Nav-Punkte */
.bw-utils__search[aria-expanded="true"] {
  color: var(--bw-gold);
}

.bw-utils__search[aria-expanded="true"]::after {
  content: '';
  position: absolute;
  left: -4px;
  right: -4px;
  /* Button (28px) sitzt mittig in der Leiste — Balken auf die Leisten-Unterkante setzen */
  bottom: calc((var(--bw-header-h) - 28px) / -2);
  height: 2px;
  background: var(--bw-gold);
}

.bw-header.is-shrunk .bw-utils__search[aria-expanded="true"]::after {
  bottom: calc((var(--bw-header-h-shrunk) - 28px) / -2);
}

/* Status-Punkt: 8px gold, 1.5px Ring in Header-Hintergrundfarbe.
   Spec: -3px/-3px relativ zum ICON (~17px); das Icon sitzt mittig im 28px-Button
   (≈5.5px Rand) → 5.5px − 3px ≈ 2px vom Button-Rand */
.bw-dot {
  position: absolute;
  top: 2px;
  right: 2px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--bw-gold);
  box-shadow: 0 0 0 1.5px var(--bw-charcoal);
  opacity: 0;
  transform: scale(0);
  transition: opacity 150ms ease, transform 150ms ease;
  pointer-events: none;
}

.bw-dot.is-active {
  opacity: 1;
  transform: scale(1);
}

.bw-dot--login.is-active {
  /* Login-Punkt blendet bei Session-Erkennung nur ein */
  transition: opacity 200ms ease;
}

@keyframes bw-dot-pop {
  0%   { transform: scale(0); }
  60%  { transform: scale(1.2); }
  100% { transform: scale(1); }
}

.bw-dot.is-pop {
  animation: bw-dot-pop 300ms cubic-bezier(.34, 1.56, .64, 1);
}

/* --------------------------------------------------------------------------
   Buttons (Pill)
   -------------------------------------------------------------------------- */

.bw-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--bw-font);
  font-size: 13.5px;
  font-weight: 700;
  line-height: 1.2;
  border-radius: 99px;
  padding: 9px 20px;
  text-decoration: none;
  border: 0;
  cursor: pointer;
  transition: background-color 150ms ease, color 150ms ease, border-color 150ms ease;
}

.bw-btn--primary {
  background: var(--bw-green);
  color: #FFFFFF;
}

.bw-btn--primary:hover,
.bw-btn--primary:focus-visible {
  background: var(--bw-green-dark);
  color: #FFFFFF;
}

.bw-btn--outline {
  background: transparent;
  border: 1.5px solid var(--bw-charcoal);
  color: var(--bw-charcoal);
  font-size: 12px;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: 7px 16px;
}

.bw-btn--outline:hover,
.bw-btn--outline:focus-visible {
  background: var(--bw-charcoal);
  color: #FFFFFF;
}

.bw-header__cta {
  flex-shrink: 0;
  margin-left: 10px; /* Luft zwischen Aktionen und Online-Shop */
}

/* Sprachwahl „DE | EN“ — beide Sprachen sichtbar, aktive markiert (goldene
   Mini-Unterstreichung, gleiche Formensprache wie die Nav) */
.bw-langswitch {
  display: inline-flex;
  align-items: center;
  gap: 2px;
}

.bw-langswitch__btn {
  background: none;
  border: 0;
  cursor: pointer;
  font-family: var(--bw-font);
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .08em;
  color: var(--bw-nav-muted);
  padding: 4px 5px;
  min-width: 28px;
  min-height: 28px;
  transition: color 150ms ease;
}

.bw-langswitch__btn:hover,
.bw-langswitch__btn:focus-visible {
  color: #FFFFFF;
}

.bw-langswitch__btn[aria-pressed="true"] {
  color: #FFFFFF;
  cursor: default;
}

.bw-langswitch__btn[aria-pressed="true"]::after {
  content: '';
  display: block;
  height: 2px;
  margin-top: 1px;
  background: var(--bw-gold);
}

.bw-langswitch__sep {
  color: var(--bw-dim-dark);
  font-size: 11px;
}

/* Mobil: größere Variante mit Beschriftung im Menü-Fußbereich */
.bw-mobilemenu__langswitch {
  justify-content: center;
  gap: 10px;
  min-height: 44px;
}

.bw-mobilemenu__langswitch .bw-langswitch__label {
  font-size: 12px;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--bw-dim-dark);
  margin-right: 6px;
}

.bw-mobilemenu__langswitch .bw-langswitch__btn {
  font-size: 14px;
  min-width: 44px;
  min-height: 44px;
}

/* --------------------------------------------------------------------------
   Panels unter der Leiste (Flyout & Suchzeile)
   -------------------------------------------------------------------------- */

.bw-panel {
  position: absolute;
  z-index: 1; /* unter der Leiste (z-index 2) — Öffnen/Schließen nur unterhalb sichtbar */
  top: 100%;
  left: 0;
  right: 0; /* Panels laufen wie die Leiste über die vollen 1440px */
  background: var(--bw-flyout-bg, #FFFFFF);
  box-shadow: var(--bw-shadow-panel);
  opacity: 0;
  transform: translateY(-10px);
  transition: opacity 200ms ease-out, transform 200ms ease-out;
  pointer-events: none;
}

.bw-panel.is-open {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.bw-panel.is-closing {
  transition-duration: 150ms;
}

/* Gemeinsames Spalten-Label */
.bw-collabel {
  margin: 0 0 12px;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--bw-muted);
}

/* --------------------------------------------------------------------------
   Mega-Flyout „Standorte“
   -------------------------------------------------------------------------- */

/* Flyout aus einem Divi-Library-Layout: das Layout gestaltet sich selbst,
   das Panel liefert nur Rahmen, Schatten und Verhalten */
.bw-flyout--layout .bw-flyout__layout {
  padding: 12px 0;
}

.bw-flyout__error {
  margin: 0;
  padding: 18px 30px;
  font-size: 13px;
  color: #b32d2e;
}

.bw-flyout__grid {
  display: grid;
  grid-template-columns: 1.1fr 1fr 1.35fr;
  padding: 28px var(--bw-header-x) 26px;
}

/* Abschaltbare Spalten: verbleibende füllen die volle Breite (Klasse aus render.php) */
.bw-flyout__grid--cols-2 { grid-template-columns: 1.1fr 1fr; }
.bw-flyout__grid--cols-1 { grid-template-columns: 1fr; }

.bw-flyout__col {
  padding: 0 30px;
  display: flex;
  flex-direction: column;
}

/* Äußere sichtbare Spalten bündig zur Content-Kante — per :first/:last, damit es
   auch bei abgeschalteten Spalten stimmt (nicht an --locations/--highlights binden) */
.bw-flyout__col:first-child { padding-left: 0; }
.bw-flyout__col:last-child { padding-right: 0; }

.bw-flyout__col + .bw-flyout__col {
  border-left: 1px solid var(--bw-border-light);
}

/* Spalte 1 — Standortliste */
.bw-loclist {
  list-style: none;
  margin: 0 0 18px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 13px;
}

.bw-loclist__link {
  display: block;
  text-decoration: none;
}

.bw-loclist__name {
  display: block;
  font-size: 15px;
  font-weight: 700;
  color: var(--bw-charcoal);
  transition: color 150ms ease;
}

.bw-loclist__link:hover .bw-loclist__name,
.bw-loclist__link:focus-visible .bw-loclist__name {
  color: var(--bw-green);
}

.bw-loclist__sub {
  display: block;
  font-size: 12px;
  color: var(--bw-muted);
}

.bw-loclist__pipe {
  color: var(--bw-nav-muted);
  margin: 0 4px;
}

.bw-flyout__col--locations .bw-btn--outline {
  align-self: flex-start;
  margin-top: auto;
}

/* Spalte 2 — Filiale finden */
.bw-finder__tagline {
  margin: 0 0 14px;
  font-family: var(--bw-font-accent);
  font-size: 14.5px;
  color: var(--bw-gold-dark);
  white-space: nowrap;
}

.bw-finder__form {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.bw-finder__field {
  position: relative;
  display: flex;
  align-items: center;
}

.bw-finder__field input {
  width: 100%;
  border: 1.5px solid var(--bw-border-mid);
  border-radius: 99px;
  background: #FFFFFF; /* Eingabemasken einheitlich weiß */
  padding: 9px 42px 9px 40px;
  font-family: var(--bw-font);
  font-size: 13.5px;
  color: var(--bw-charcoal);
}

.bw-finder__field input::placeholder {
  color: var(--bw-placeholder);
}

.bw-finder__field input:focus {
  outline: none;
  border-color: var(--bw-green);
}

.bw-finder__search-icon {
  position: absolute;
  left: 16px;
  width: 13px;
  height: 13px;
  color: var(--bw-placeholder);
  pointer-events: none;
}

/* Grünes Geolocation-Fadenkreuz rechts im Feld */
.bw-finder__geolocate {
  position: absolute;
  right: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border: 0;
  background: none;
  cursor: pointer;
  color: var(--bw-green);
  border-radius: 50%;
}

.bw-finder__geolocate:hover,
.bw-finder__geolocate:focus-visible {
  color: var(--bw-green-dark);
}

.bw-finder__submit {
  width: 100%;
}

.bw-finder__footnote {
  margin: auto 0 0;
  padding-top: 14px;
  font-size: 11.5px;
  line-height: 1.5;
  color: var(--bw-placeholder);
}

/* Spalte 3 — Highlight-Karten */
.bw-cards {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.bw-card {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  text-decoration: none;
}

.bw-card__media {
  position: relative;
  flex-shrink: 0;
  width: 104px;
  height: 72px;
  border-radius: 10px;
  overflow: hidden;
}

.bw-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 250ms ease;
}

.bw-card:hover .bw-card__media img,
.bw-card:focus-visible .bw-card__media img {
  transform: scale(1.03);
}

.bw-badge {
  position: absolute;
  top: 6px;
  left: 6px;
  border-radius: 99px;
  padding: 2px 8px;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.bw-badge--gold { background: var(--bw-gold); color: var(--bw-charcoal); }
.bw-badge--green { background: var(--bw-green); color: #FFFFFF; }

.bw-card__title {
  display: block;
  font-size: 14.5px;
  font-weight: 700;
  color: var(--bw-charcoal);
  transition: color 150ms ease;
}

.bw-card:hover .bw-card__title,
.bw-card:focus-visible .bw-card__title {
  color: var(--bw-green);
}

.bw-card__text {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  margin-top: 2px;
  font-size: 12.5px;
  line-height: 1.45;
  color: var(--bw-muted);
}

/* --------------------------------------------------------------------------
   Suchzeile (Desktop)
   -------------------------------------------------------------------------- */

.bw-searchrow {
  box-shadow: var(--bw-shadow-search);
  transform: translateY(-8px);
  transition: opacity 250ms cubic-bezier(.4, 0, .2, 1), transform 250ms cubic-bezier(.4, 0, .2, 1);
}

.bw-searchrow.is-open {
  transform: translateY(0);
}

.bw-searchrow__form {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 22px var(--bw-header-x);
}

.bw-searchrow__field {
  position: relative;
  flex: 1;
  display: flex;
  align-items: center;
}

.bw-searchrow__field input {
  width: 100%;
  border: 1.5px solid var(--bw-green);
  border-radius: 99px;
  background: #FFFFFF; /* Eingabemasken einheitlich weiß */
  padding: 12px 168px 12px 46px; /* Platz für Hinweis + Pfeil-Button */
  font-family: var(--bw-font);
  font-size: 15px;
  color: var(--bw-charcoal);
}

.bw-searchrow__field input::placeholder {
  color: var(--bw-placeholder);
}

.bw-searchrow__field input:focus {
  outline: none;
}

.bw-searchrow__icon {
  position: absolute;
  left: 18px;
  color: var(--bw-green);
  pointer-events: none;
}

.bw-searchrow__hint {
  position: absolute;
  right: 60px; /* links vom Pfeil-Button */
  font-size: 11.5px;
  color: var(--bw-placeholder);
  pointer-events: none;
}

/* Runder Pfeil-Submit IN der Suchzeile (Desktop wie mobil) */
.bw-search-submit {
  position: absolute;
  right: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 50%;
  background: var(--bw-green);
  color: #FFFFFF;
  cursor: pointer;
  transition: background-color 150ms ease;
}

.bw-search-submit:hover,
.bw-search-submit:focus-visible {
  background: var(--bw-green-dark);
}

.bw-mobilesearch__submit {
  width: 30px;
  height: 30px;
  right: 5px;
}

form.is-loading .bw-search-submit {
  pointer-events: none;
}

form.is-loading .bw-search-submit svg {
  opacity: 0;
}

form.is-loading .bw-search-submit::after {
  content: '';
  position: absolute;
  inset: 0;
  margin: auto;
  width: 14px;
  height: 14px;
  border: 2px solid rgba(255, 255, 255, .35);
  border-top-color: #FFFFFF;
  border-radius: 50%;
  animation: bw-spin 700ms linear infinite;
}

.bw-searchrow__close {
  border: 0;
  background: none;
  cursor: pointer;
  font-size: 22px;
  line-height: 1;
  color: var(--bw-muted);
  padding: 4px 8px;
}

.bw-searchrow__close:hover,
.bw-searchrow__close:focus-visible {
  color: var(--bw-charcoal);
}

.bw-searchrow__popular {
  display: flex;
  align-items: center;
  gap: 16px;
  background: var(--bw-warm-white);
  border-top: 1px solid var(--bw-border-light);
  padding: 14px var(--bw-header-x) 18px;
}

.bw-searchrow__popular-label {
  margin: 0;
  font-size: 11px;
  letter-spacing: .1em;
}

/* Die Divi-Override-Schicht zwingt .bw-collabel eine 12px-Untermarge auf, die
   das Label im Flex-Container (align-items:center) nach oben zieht — hier mit
   höherer Spezifität zurücksetzen, damit BELIEBT vertikal mittig sitzt. */
body .bw-collabel.bw-searchrow__popular-label {
  margin: 0 !important;
}

.bw-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.bw-chip {
  display: inline-block;
  background: #FFFFFF;
  border: 1px solid var(--bw-border-mid);
  border-radius: 99px;
  padding: 5px 14px;
  font-size: 12.5px;
  color: var(--bw-secondary);
  text-decoration: none;
  transition: border-color 150ms ease, color 150ms ease;
}

.bw-chip:hover,
.bw-chip:focus-visible {
  border-color: var(--bw-green);
  color: var(--bw-green);
}

/* --------------------------------------------------------------------------
   Account-Dropdown
   -------------------------------------------------------------------------- */

.bw-accountmenu {
  position: absolute;
  z-index: 1;
  top: 100%;
  right: calc(var(--bw-header-x) + 60px);
  min-width: 230px;
  background: #FFFFFF;
  border-radius: 0 0 10px 10px;
  box-shadow: var(--bw-shadow-dropdown);
  padding: 16px 20px;
  opacity: 0;
  transform: translateY(-6px);
  transition: opacity 180ms ease-out, transform 180ms ease-out;
  pointer-events: none;
}

.bw-accountmenu.is-open {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.bw-accountmenu__label {
  margin: 0;
  font-size: 11px;
  color: var(--bw-muted);
}

.bw-accountmenu__email {
  margin: 2px 0 0;
  font-size: 14px;
  font-weight: 700;
  color: var(--bw-charcoal);
  overflow-wrap: anywhere;
}

.bw-accountmenu__rule {
  border: 0;
  border-top: 1px solid var(--bw-border-light);
  margin: 12px 0;
}

.bw-accountmenu__links {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.bw-accountmenu__links a {
  font-size: 13.5px;
  color: var(--bw-charcoal);
  text-decoration: none;
  transition: color 150ms ease;
}

.bw-accountmenu__links a.bw-accountmenu__logout {
  color: var(--bw-muted);
}

.bw-accountmenu__links a:hover,
.bw-accountmenu__links a:focus-visible {
  color: var(--bw-green);
}

/* --------------------------------------------------------------------------
   Mobile Suche (Leisten-Morph) — Markup ist immer da, sichtbar nur ≤980px
   -------------------------------------------------------------------------- */

.bw-mobilesearch {
  position: absolute;
  inset: 0;
  display: none;
  align-items: center;
  gap: 12px;
  background: var(--bw-header-bg, var(--bw-charcoal));
  padding: 0 var(--bw-header-x-mobile);
}

.bw-mobilesearch__close {
  font-size: 24px;
  line-height: 1;
  color: var(--bw-nav-muted);
}

.bw-mobilesearch__form {
  position: relative;
  flex: 1;
  display: flex;
  align-items: center;
}

.bw-mobilesearch__form input {
  width: 100%;
  border: 1.5px solid var(--bw-green);
  border-radius: 99px;
  background: #FFFFFF; /* einheitlich weiß wie alle Eingabemasken */
  padding: 9px 44px 9px 40px;
  font-family: var(--bw-font);
  font-size: 15px;
  color: var(--bw-charcoal);
  caret-color: var(--bw-green);
}

.bw-mobilesearch__form input::placeholder {
  color: var(--bw-placeholder);
}

.bw-mobilesearch__form input:focus {
  outline: none;
}

.bw-mobilesearch__icon {
  position: absolute;
  left: 15px;
  color: var(--bw-green);
  pointer-events: none;
}

/* --------------------------------------------------------------------------
   Burger & mobiles Vollbild-Menü
   -------------------------------------------------------------------------- */

.bw-burger {
  display: none;
}

/* Burger ⇄ X — Linien morphen, gleiche Dauer/Kurve wie das Menü (300ms ease) */
.bw-burger svg line {
  transition: transform 300ms ease, opacity 300ms ease;
  transform-box: fill-box;
  transform-origin: center;
}

.bw-burger[aria-expanded="true"] svg line:nth-of-type(1) {
  transform: translateY(6px) rotate(45deg);
}

.bw-burger[aria-expanded="true"] svg line:nth-of-type(2) {
  opacity: 0;
}

.bw-burger[aria-expanded="true"] svg line:nth-of-type(3) {
  transform: translateY(-6px) rotate(-45deg);
}

.bw-mobilemenu[hidden] {
  display: none; /* display:flex würde das hidden-Attribut sonst aushebeln */
}

/* Menü liegt UNTERHALB des Headers (top setzt das JS auf die Header-Unterkante),
   der Header bleibt sichtbar; gleiche Animatik wie die Desktop-Panels */
.bw-mobilemenu {
  position: fixed;
  top: var(--bw-header-h-mobile);
  left: 0;
  right: 0;
  bottom: 0;
  z-index: var(--bw-z-mobilemenu);
  background: var(--bw-header-bg, var(--bw-charcoal));
  color: var(--bw-light-on-dark);
  font-family: var(--bw-font);
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  opacity: 0;
  transform: translateY(-10px);
  transition: opacity 300ms ease-out, transform 300ms ease-out;
  pointer-events: none;
}

.bw-mobilemenu.is-open {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.bw-mobilemenu.is-closing {
  transition-duration: 220ms;
}

.bw-mobilemenu__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.bw-mobilemenu__list > li {
  border-bottom: 1px solid rgba(201, 196, 182, .12);
}

/* Einheitliche Zeilenhöhe für ALLE Einträge — Links wie aufklappbare Punkte */
.bw-mobilemenu__list > li > a,
.bw-mobilemenu__list > li > button.bw-mobilemenu__rowbtn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-height: 56px;
  padding: 0 22px;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.3;
  font-family: var(--bw-font);
  color: var(--bw-light-on-dark);
  text-decoration: none;
  background: none;
  border: 0;
  margin: 0;
  cursor: pointer;
  text-align: left;
  transition: color 200ms ease;
}

/* Pfeil-Glyphe für Link-Zeilen — als feine Linien-Grafik statt Textzeichen */
.bw-mobilemenu__list > li > a::after {
  content: '';
  flex-shrink: 0;
  width: 16px;
  height: 14px;
  background-color: var(--bw-dim-dark);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 15 14' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 7 H13'/%3E%3Cpath d='M8 2 L13 7 L8 12'/%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 15 14' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 7 H13'/%3E%3Cpath d='M8 2 L13 7 L8 12'/%3E%3C/svg%3E") center / contain no-repeat;
  transition: background-color 200ms ease;
}

/* Chevron für aufklappbare Punkte — größer und in derselben Linienführung */
.bw-mobilemenu__rowbtn::after {
  content: '';
  flex-shrink: 0;
  width: 15px;
  height: 10px;
  background-color: var(--bw-gold);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1.5 1.5 L6 6.5 L10.5 1.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 12 8' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1.5 1.5 L6 6.5 L10.5 1.5'/%3E%3C/svg%3E") center / contain no-repeat;
  transition: transform 280ms ease-in-out;
}

.bw-mobilemenu__list > li.is-expanded > .bw-mobilemenu__rowbtn::after {
  transform: rotate(180deg);
}

/* Übrige Zeilen dimmen, solange das Akkordeon offen ist */
.bw-mobilemenu.is-accordion-open .bw-mobilemenu__list > li:not(.is-expanded) > a,
.bw-mobilemenu.is-accordion-open .bw-mobilemenu__list > li:not(.is-expanded) > .bw-mobilemenu__rowbtn {
  color: var(--bw-dim-dark);
}

/* Standorte-Akkordeon (helles Inline-Panel) */
.bw-accordion {
  overflow: hidden;
  max-height: 0;
  transition: max-height 280ms ease-in-out;
  background: var(--bw-warm-white);
  color: var(--bw-charcoal);
}

.bw-accordion.is-open {
  max-height: var(--bw-accordion-h, 900px);
}

/* Nach der Aufklapp-Animation gibt das JS die Höhe frei — nachladende Bilder
   (Feature-Kachel) werden so nicht mehr unten abgeschnitten */
.bw-accordion.is-open.is-settled {
  max-height: none;
}

.bw-accordion__inner {
  padding: 18px 22px 22px; /* harmonisch gleicher Abstand oben/unten zur Kachel */
}

.bw-accordion .bw-finder__field input {
  background: #FFFFFF;
}

.bw-accordion__rule {
  border: 0;
  border-top: 1px solid var(--bw-border-light);
  margin: 16px 0;
}

.bw-accordion__locations {
  list-style: none;
  margin: 0 0 14px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 11px;
}

.bw-accordion__locations a {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  text-decoration: none;
  min-height: 24px;
}

.bw-accordion__locname {
  font-size: 14.5px;
  font-weight: 700;
  color: var(--bw-charcoal);
}

.bw-accordion__lochours {
  font-size: 11px;
  color: var(--bw-muted);
  white-space: nowrap;
}

.bw-accordion__all {
  display: inline-block;
  margin-bottom: 16px;
  font-size: 13px;
  font-weight: 700;
  color: var(--bw-green);
  text-decoration: none;
}

.bw-accordion__card {
  display: flex;
  gap: 12px;
  align-items: center;
  background: #FFFFFF;
  border: 1px solid var(--bw-border-light);
  border-radius: 12px;
  box-shadow: var(--bw-shadow-card);
  padding: 10px;
  text-decoration: none;
}

.bw-accordion__card img {
  flex-shrink: 0;
  width: 86px;
  height: 64px;
  object-fit: cover;
  border-radius: 8px;
}

.bw-accordion__cardtitle {
  display: block;
  font-size: 13px;
  font-weight: 700;
  color: var(--bw-charcoal);
}

.bw-accordion__cardtext {
  display: block;
  margin-top: 2px;
  font-size: 11.5px;
  line-height: 1.4;
  color: var(--bw-muted);
}

/* Fußbereich: Shop-Button + Claim */
.bw-mobilemenu__footer {
  margin-top: auto;
  padding: 22px;
  display: flex;
  flex-direction: column;
  gap: 18px;
  text-align: center;
}

.bw-mobilemenu__shop {
  width: 100%;
  padding: 12px 20px;
  font-size: 15px;
}

.bw-mobilemenu__claim {
  margin: 0;
  font-family: var(--bw-font-accent);
  font-size: 16px;
  color: var(--bw-gold);
}

/* Scroll-Sperre, solange das mobile Menü offen ist */
body.bw-scroll-lock {
  overflow: hidden;
}

/* --------------------------------------------------------------------------
   Responsive: ≤980px (Divi-Tablet-Breakpoint = mobiler Header)
   -------------------------------------------------------------------------- */

@media (max-width: 980px) {
  :root {
    /* Mobil bleibt der Header randlos (Screen 6a) */
    --bw-header-inset: 0px;
  }

  .bw-header__bar,
  .bw-header.is-shrunk .bw-header__bar {
    height: var(--bw-header-h-mobile); /* mobil keine Shrink-Animation */
    padding: 0 var(--bw-header-x-mobile);
    gap: 0; /* Abstände mobil über margins (Design 27a: 22px Suche→Burger) */
  }

  /* Logo mobil IMMER gleich groß — auch gegen Divi-Inline-Styles durchgesetzt */
  body .bw-logo__img,
  body .bw-header.is-shrunk .bw-logo__img {
    height: 32px !important;
  }

  /* Goldene Haarlinie mobil einen Tick kräftiger (Mitte am stärksten, Ränder laufen aus) */
  .bw-header__bar::after {
    height: 1.5px;
  }

  .bw-header-spacer {
    height: var(--bw-header-h-mobile);
  }

  .bw-burger {
    display: inline-flex;
  }

  .bw-nav,
  .bw-header__cta,
  .bw-utils__account,
  .bw-header__bar .bw-langswitch,
  .bw-flyout,
  .bw-accountmenu {
    display: none;
  }

  .bw-logo {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
  }

  .bw-logo__img,
  .bw-header.is-shrunk .bw-logo__img {
    height: 32px;
  }

  /* Design 27a: Shop-Pille links, Logo mittig, Suche + Burger rechts (22px Abstand) */
  .bw-shoppill {
    display: inline-flex;
    order: 1;
  }

  .bw-utils {
    order: 2;
    margin-left: auto; /* Suche + Burger an den rechten Rand */
    gap: 12px;
  }

  /* Warenkorb + Konto wandern mobil in die Shop-Pille bzw. ins Menü */
  .bw-utils__cart {
    display: none;
  }

  .bw-burger {
    order: 3;
    margin-left: 22px; /* klarer Abstand Suche → Burger (Design) */
  }


  /* Suchmodus: Leisteninhalt wird durch das Suchfeld ersetzt */
  .is-mobilesearch .bw-mobilesearch {
    display: flex;
  }

  /* Suchzeile zeigt mobil nur den BELIEBT-Streifen unterhalb der Leiste */
  .bw-searchrow__form {
    display: none;
  }

  .bw-searchrow__popular {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    padding: 14px 16px 18px;
  }
}

/* --------------------------------------------------------------------------
   Barrierefreiheit
   -------------------------------------------------------------------------- */

/* Scope umfasst auch die per JS an <body> verschobene Leiste (.bw-header) und
   das mobile Menü (.bw-mobilemenu) — sie liegen im Fixiert-Modus außerhalb von
   .bw-header-root — sowie den Footer. Sonst würde z.B. der SR-Text
   „Meinen Standort verwenden" sichtbar und Fokus-Ringe fehlten. */
.bw-header-root .screen-reader-text,
.bw-header .screen-reader-text,
.bw-mobilemenu .screen-reader-text,
.bw-footer .screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

/* Divi entfernt Standard-Fokusringe — sichtbaren Fokus wiederherstellen */
.bw-header-root a:focus-visible,
.bw-header-root button:focus-visible,
.bw-header a:focus-visible,
.bw-header button:focus-visible,
.bw-mobilemenu a:focus-visible,
.bw-mobilemenu button:focus-visible,
.bw-footer a:focus-visible,
.bw-footer button:focus-visible {
  outline: 2px solid var(--bw-gold);
  outline-offset: 2px;
}

/* Eingabefelder: aktiver Zustand nur über den grünen Rahmen, kein zweiter Ring */
.bw-header-root input:focus-visible,
.bw-header input:focus-visible,
.bw-mobilemenu input:focus-visible,
.bw-footer input:focus-visible {
  outline: none;
  border-color: var(--bw-green);
}

/* --------------------------------------------------------------------------
   Store-Hero (Design-Runde 11) — Divi-natives Scaffold
   Section/Row/Module werden im Visual Builder gebaut und bekommen bw-Klassen
   über Advanced > Attributes (Class Map im README). Struktur- und Typo-Regeln
   sind body-präfixiert + !important, damit Divis Inhaltsstyles nicht greifen.
   Modifier: .bw-hero--dark · .bw-hero--no-usp · .bw-hero--frame
   -------------------------------------------------------------------------- */

.bw-hero {
  position: relative;
  max-width: var(--bw-container-max);
  margin-left: auto;
  margin-right: auto;
  /* Modul 1440, Content 1390 → feste 25px-Kante aus den Tokens */
  padding-left: calc((var(--bw-container-max) - var(--bw-content-max)) / 2);
  padding-right: calc((var(--bw-container-max) - var(--bw-content-max)) / 2);
  background: var(--bw-warm-white);
  overflow: hidden; /* Weizen-Ornamente brechen aus der Fläche aus */
  font-family: var(--bw-font);
}

.bw-hero--dark {
  background: var(--bw-charcoal);
  border-top: 1px solid rgba(217, 182, 75, .35);
}

body .bw-hero .bw-hero__row {
  display: grid !important;
  grid-template-columns: 1fr 490px !important;
  gap: 54px !important;
  align-items: center !important;
  padding: 54px 0 58px !important;
  position: relative;
  z-index: 1;
}

/* Variante ohne USP-Zeile (11b): Inhalt unten bündig mit der Bildkante */
body .bw-hero--no-usp .bw-hero__content {
  display: flex !important;
  flex-direction: column !important;
  align-self: stretch !important;
  min-height: 430px;
}

body .bw-hero--no-usp .bw-hero__divider {
  margin-top: auto !important;
}

/* --- Typografie (Styleguide §8) --- */

body .bw-hero__eyebrow,
body .bw-hero__eyebrow p {
  font-family: var(--bw-font-accent) !important;
  font-size: 19px !important;
  line-height: 1.3 !important;
  color: var(--bw-green) !important;
  margin: 0 !important;
  padding: 0 !important;
}

body .bw-hero--dark .bw-hero__eyebrow,
body .bw-hero--dark .bw-hero__eyebrow p {
  color: var(--bw-gold) !important;
}

body .bw-hero__title,
body .bw-hero__title h1 {
  font-family: var(--bw-font) !important;
  font-size: 46px !important;
  font-weight: 700 !important;
  line-height: 1.12 !important;
  letter-spacing: -0.01em !important;
  color: var(--bw-charcoal) !important;
  margin: 6px 0 0 !important;
  padding: 0 !important;
}

body .bw-hero--dark .bw-hero__title,
body .bw-hero--dark .bw-hero__title h1 {
  color: var(--bw-light-on-dark) !important;
}

body .bw-hero__title .bw-hero__accent {
  font-family: var(--bw-font-accent) !important;
  font-weight: 400 !important;
  color: var(--bw-green) !important;
}

body .bw-hero--dark .bw-hero__title .bw-hero__accent {
  color: var(--bw-gold) !important;
}

/* Gold-Ornament-Trenner: Code-Modul mit <div class="bw-hero__divider"><span></span></div> */
.bw-hero__divider {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 210px;
  max-width: 60%;
  margin: 20px 0 18px;
}

.bw-hero__divider::before {
  content: '';
  width: 34px;
  height: 1px;
  background: var(--bw-gold);
}

.bw-hero__divider span {
  width: 6px;
  height: 6px;
  background: var(--bw-gold);
  transform: rotate(45deg);
}

.bw-hero__divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, var(--bw-gold), rgba(217, 182, 75, 0));
}

body .bw-hero__copy,
body .bw-hero__copy p {
  font-family: var(--bw-font) !important;
  font-size: 16px !important;
  line-height: 1.65 !important;
  color: var(--bw-secondary) !important;
  max-width: 440px;
  margin: 0 !important;
  padding: 0 !important;
}

body .bw-hero--dark .bw-hero__copy,
body .bw-hero--dark .bw-hero__copy p {
  color: var(--bw-nav-muted) !important;
}

/* --- CTAs (Klassen aufs Divi-Button-Modul) --- */

.bw-hero__ctas {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 26px;
}

body .bw-cta--primary,
body .et_pb_button.bw-cta--primary {
  display: inline-flex !important;
  align-items: center !important;
  background: var(--bw-green) !important;
  color: #FFFFFF !important;
  font-family: var(--bw-font) !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  padding: 11px 24px !important;
  border: 0 !important;
  border-radius: 99px !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  text-decoration: none !important;
  transition: background-color 150ms ease !important;
}

body .bw-cta--primary:hover,
body .bw-cta--primary:focus-visible {
  background: var(--bw-green-dark) !important;
  color: #FFFFFF !important;
}

body .bw-cta--secondary,
body .et_pb_button.bw-cta--secondary {
  display: inline-flex !important;
  align-items: center !important;
  background: transparent !important;
  color: var(--bw-charcoal) !important;
  font-family: var(--bw-font) !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  padding: 10px 22px !important;
  border: 1.5px solid var(--bw-charcoal) !important;
  border-radius: 99px !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  text-decoration: none !important;
  transition: background-color 150ms ease, color 150ms ease, border-color 150ms ease !important;
}

body .bw-cta--secondary:hover,
body .bw-cta--secondary:focus-visible {
  background: var(--bw-charcoal) !important;
  color: #FFFFFF !important;
}

body .bw-hero--dark .bw-cta--secondary {
  border-color: rgba(242, 238, 225, .65) !important;
  color: var(--bw-light-on-dark) !important;
}

body .bw-hero--dark .bw-cta--secondary:hover,
body .bw-hero--dark .bw-cta--secondary:focus-visible {
  background: transparent !important;
  border-color: #FFFFFF !important;
  color: #FFFFFF !important;
}

/* --- USP-Zeile (drei Blurbs, Klassen bw-usp bw-usp--leaf|bread|heart) --- */

body .bw-hero__usps {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 0 !important;
  margin-top: 38px !important;
}

body .bw-usp {
  padding: 0 26px !important;
  margin: 0 !important;
  border-left: 1px solid #E6E0D1;
  background: none !important;
}

body .bw-usp:first-child {
  padding-left: 0 !important;
  border-left: 0;
}

.bw-usp::before {
  content: '';
  display: block;
  width: 24px;
  height: 24px;
  margin-bottom: 10px;
  background-color: var(--bw-green);
  -webkit-mask: var(--bw-usp-icon) center / contain no-repeat;
  mask: var(--bw-usp-icon) center / contain no-repeat;
}

.bw-usp--leaf { --bw-usp-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21 C7 16.5 4.5 11.5 6.5 5.5 C13 4 18 7.5 19 13 C19.5 17 16.5 20.5 12 21 Z'/%3E%3Cpath d='M12 21 C12 15 13.5 10 17 6.5'/%3E%3C/svg%3E"); }
.bw-usp--bread { --bw-usp-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 14 a9 8 0 0 1 18 0 v3.2 a1.3 1.3 0 0 1 -1.3 1.3 H4.3 A1.3 1.3 0 0 1 3 17.2 Z'/%3E%3Cpath d='M8 10.5 L7 13.5'/%3E%3Cpath d='M12.5 10 L11.5 13'/%3E%3Cpath d='M17 10.5 L16 13.5'/%3E%3C/svg%3E"); }
.bw-usp--heart { --bw-usp-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20 C6.5 15.5 3.5 11.5 4.5 8 C5.5 4.8 9.5 4.3 12 7.2 C14.5 4.3 18.5 4.8 19.5 8 C20.5 11.5 17.5 15.5 12 20 Z'/%3E%3C/svg%3E"); }

body .bw-usp h4,
body .bw-usp .et_pb_module_header {
  font-family: var(--bw-font) !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  color: var(--bw-charcoal) !important;
  margin: 0 0 4px !important;
  padding: 0 !important;
}

body .bw-usp p,
body .bw-usp .et_pb_blurb_description {
  font-family: var(--bw-font) !important;
  font-size: 12.5px !important;
  line-height: 1.45 !important;
  color: var(--bw-muted) !important;
  margin: 0 !important;
  padding: 0 !important;
}

body .bw-hero--dark .bw-usp { border-left-color: rgba(201, 196, 182, .2); }
.bw-hero--dark .bw-usp::before { background-color: var(--bw-gold); }
body .bw-hero--dark .bw-usp h4,
body .bw-hero--dark .bw-usp .et_pb_module_header { color: var(--bw-light-on-dark) !important; }
body .bw-hero--dark .bw-usp p,
body .bw-hero--dark .bw-usp .et_pb_blurb_description { color: var(--bw-nav-muted) !important; }

/* --- Bild-Spalte (Klasse bw-hero__media auf der Spalte, bw-hero__img aufs Bild-/Slider-Modul) --- */

body .bw-hero__media {
  position: relative !important;
}

.bw-hero__img {
  position: relative;
}

body .bw-hero__img img {
  display: block;
  width: 100% !important;
  height: 430px !important;
  object-fit: cover;
  border-radius: 28px 84px 28px 28px;
  box-shadow: 0 24px 50px rgba(24, 22, 17, .18);
}

/* Dezenter Verlauf oben (Kontrast für Badge/Ornament) */
.bw-hero__img::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 28px 84px 28px 28px;
  background: linear-gradient(200deg, rgba(24, 22, 17, .14), transparent 45%);
  pointer-events: none;
}

body .bw-hero--dark .bw-hero__img img {
  height: 400px !important;
  box-shadow: 0 24px 50px rgba(0, 0, 0, .4);
}

/* Versetzter Gold-Rahmen (11c, optional — Modifier auf der Section) */
body .bw-hero--frame .bw-hero__media {
  padding: 0 18px 18px 0 !important;
}

.bw-hero--frame .bw-hero__media::after {
  content: '';
  position: absolute;
  left: 18px;
  top: 18px;
  right: 0;
  bottom: 0;
  border: 1.5px solid var(--bw-gold);
  border-radius: 28px 84px 28px 28px;
  pointer-events: none;
}

/* --- Öffnungsstatus-Chip (11d) --- */

.bw-chip-status {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(251, 249, 244, .94);
  border-radius: 99px;
  padding: 8px 16px;
  font-family: var(--bw-font);
  font-size: 12.5px;
  font-weight: 700;
  color: var(--bw-charcoal);
  box-shadow: 0 4px 14px rgba(24, 22, 17, .12);
}

/* Auf dem Foto: unten links, 22px Einzug */
.bw-hero__media .bw-chip-status {
  position: absolute;
  left: 22px;
  bottom: 22px;
  z-index: 3;
}

/* Beim Slider rutscht der Chip über die Dots */
.bw-hero__media:has(.et_pb_slider) .bw-chip-status {
  bottom: 34px;
}

.bw-chip-status__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
  background: var(--bw-green);
  --bw-pulse: rgba(95, 135, 82, .5);
  animation: bw-pulse 2s ease-out infinite;
}

.bw-chip-status.is-soon .bw-chip-status__dot {
  background: var(--bw-gold);
  --bw-pulse: rgba(217, 182, 75, .5);
}

.bw-chip-status.is-closed .bw-chip-status__dot {
  background: var(--bw-muted);
  --bw-pulse: rgba(138, 131, 117, .4);
  animation-duration: 2.6s;
}

.bw-chip-status.is-closed {
  color: var(--bw-secondary);
}

.bw-hero--dark .bw-chip-status {
  background: rgba(35, 34, 30, .88);
  border: 1px solid rgba(217, 182, 75, .5);
  color: var(--bw-light-on-dark);
}

@keyframes bw-pulse {
  0%   { box-shadow: 0 0 0 0 var(--bw-pulse); }
  70%  { box-shadow: 0 0 0 7px rgba(0, 0, 0, 0); }
  100% { box-shadow: 0 0 0 0 rgba(0, 0, 0, 0); }
}

/* --- Promo-Badge (11e) --- */

.bw-badge-promo {
  position: absolute;
  top: -30px;
  left: -30px;
  z-index: 4;
  width: 148px;
  height: 148px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  transform: rotate(-7deg);
  pointer-events: none;
}

.bw-badge-promo::before {
  content: '';
  position: absolute;
  inset: 6px;
  border-radius: 50%;
  background: var(--bw-green);
  box-shadow: 0 10px 26px rgba(24, 22, 17, .28);
}

.bw-badge-promo__rings {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.bw-badge-promo__text {
  position: relative;
  z-index: 1;
  font-family: var(--bw-font-accent);
  font-size: 19px;
  line-height: 1.25;
  letter-spacing: .06em;
  color: #F2EEE1;
  padding: 0 20px;
}

/* --- Weizen-Ornamente (Styleguide §8) --- */

.bw-wheat {
  display: block;
  width: 190px;
  height: 260px;
  pointer-events: none;
}

.bw-wheat svg { width: 100%; height: 100%; }
.bw-wheat--light { color: var(--bw-gold); opacity: .5; }
.bw-wheat--accent { color: var(--bw-gold-dark); opacity: .85; }
.bw-wheat--dark { color: var(--bw-gold); opacity: .28; }
.bw-wheat--flip svg { transform: scaleX(-1); }

/* Position: Ecke des Fotos (überlappend) bzw. Ausbruch aus der Section-Ecke */
.bw-hero__media .bw-wheat {
  position: absolute;
  top: -48px;
  right: -40px;
  z-index: 2;
  transform: rotate(38deg);
}

.bw-hero > .bw-wheat,
.bw-hero__breakout .bw-wheat {
  position: absolute;
  left: -64px;
  bottom: -80px;
  width: 280px;
  height: 380px;
  transform: rotate(14deg);
  z-index: 0;
}

/* --- Mobil (≤980px) --- */

@media (max-width: 980px) {
  .bw-hero {
    padding-left: var(--bw-header-x-mobile);
    padding-right: var(--bw-header-x-mobile);
  }

  body .bw-hero .bw-hero__row {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
    padding: 26px 0 30px !important;
  }

  body .bw-hero__eyebrow,
  body .bw-hero__eyebrow p { font-size: 15px !important; }

  body .bw-hero__title,
  body .bw-hero__title h1 { font-size: 27px !important; }

  body .bw-hero__copy,
  body .bw-hero__copy p { font-size: 13.5px !important; line-height: 1.6 !important; }

  body .bw-hero--no-usp .bw-hero__content { min-height: 0; }

  body .bw-hero__img img,
  body .bw-hero--dark .bw-hero__img img {
    height: 170px !important;
    border-radius: 18px 48px 18px 18px;
  }

  .bw-hero__img::after,
  .bw-hero--frame .bw-hero__media::after {
    border-radius: 18px 48px 18px 18px;
  }

  body .bw-cta--primary { width: 100% !important; justify-content: center !important; }

  body .bw-usp { padding: 0 12px !important; }
  body .bw-usp p,
  body .bw-usp .et_pb_blurb_description { display: none; } /* mobil: Icon + Titel */

  .bw-badge-promo { width: 110px; height: 110px; top: -20px; left: -16px; }
  .bw-badge-promo__text { font-size: 14px; padding: 0 14px; }

  .bw-hero__media .bw-wheat { width: 120px; height: 165px; top: -30px; right: -24px; opacity: .45; }
}

/* --------------------------------------------------------------------------
   About-Modul „Über die Bäckerei“ (Design 12b/13a/13b) — Divi-natives Scaffold
   Klassen via Advanced > Attributes (Class Map im README §3d).
   Layout-Maße aus der 0,75×-Referenz ×1,33; Typo als 1:1-Äquivalente der
   bestehenden Skala (H2 34px unter Hero-H1 46px).
   Modifier: .bw-about--white (13a, reines Weiß statt Warmweiß)
   -------------------------------------------------------------------------- */

.bw-about {
  --bw-about-hairline: #E6E0D1;
  position: relative;
  max-width: var(--bw-container-max);
  margin-left: auto;
  margin-right: auto;
  padding: 54px calc((var(--bw-container-max) - var(--bw-content-max)) / 2) 0;
  background: var(--bw-warm-white);
  overflow: hidden; /* Weizen-Ornament bricht aus der Ecke aus */
  font-family: var(--bw-font);
}

.bw-about--white {
  --bw-about-hairline: #ECE7DA;
  background: #FFFFFF;
}

/* Obere Zone: Überschriftenblock links, zweispaltiger Fließtext rechts */
body .bw-about .bw-about__top {
  display: grid !important;
  grid-template-columns: 500px 1fr !important;
  gap: 84px !important;
  align-items: start !important;
  padding: 0 0 40px !important;
}

body .bw-about__eyebrow,
body .bw-about__eyebrow p {
  font-family: var(--bw-font-accent) !important;
  font-size: 18px !important;
  line-height: 1.3 !important;
  color: var(--bw-green) !important;
  margin: 0 !important;
  padding: 0 !important;
}

body .bw-about__title,
body .bw-about__title h2 {
  font-family: var(--bw-font) !important;
  font-size: 34px !important;
  font-weight: 700 !important;
  line-height: 1.18 !important;
  letter-spacing: -0.01em !important;
  color: var(--bw-charcoal) !important;
  margin: 6px 0 0 !important;
  padding: 0 !important;
}

body .bw-about__title .bw-about__accent {
  font-family: var(--bw-font-accent) !important;
  font-weight: 400 !important;
  color: var(--bw-green) !important;
}

/* Gold-Ornament-Trenner — gemeinsame Komponente mit dem Hero */
.bw-divider-gold {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 210px;
  max-width: 60%;
  margin: 18px 0 0;
}

.bw-divider-gold::before {
  content: '';
  width: 34px;
  height: 1px;
  background: var(--bw-gold);
}

.bw-divider-gold span {
  width: 6px;
  height: 6px;
  background: var(--bw-gold);
  transform: rotate(45deg);
}

.bw-divider-gold::after {
  content: '';
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, var(--bw-gold), rgba(217, 182, 75, 0));
}

/* Copy: CSS-Zweispalter */
body .bw-about__copy {
  columns: 2;
  column-gap: 58px;
}

body .bw-about__copy p {
  font-family: var(--bw-font) !important;
  font-size: 15px !important;
  line-height: 1.7 !important;
  color: var(--bw-secondary) !important;
  margin: 0 0 14px !important;
  padding: 0 !important;
}

body .bw-about__copy p.bw-about__lead {
  font-size: 16px !important;
  font-weight: 700 !important;
  line-height: 1.6 !important;
  color: var(--bw-charcoal) !important;
}

/* Metafors-Schlussakzent — maximal einer pro Modul */
body .bw-about__copy .bw-about__closing {
  font-family: var(--bw-font-accent) !important;
  font-size: 17px !important;
  color: var(--bw-gold-dark) !important;
}

/* Info-Band: drei Gruppen mit vertikalen Hairlines (1.2 / 0.8 / 1.1) */
body .bw-about .bw-about__band {
  display: flex !important;
  border-top: 1px solid var(--bw-about-hairline);
  padding: 40px 0 54px !important;
  margin: 0 !important;
}

body .bw-about__group {
  padding: 0 48px !important;
  margin: 0 !important;
  border-left: 1px solid var(--bw-about-hairline);
  background: none !important;
}

body .bw-about__group:first-child {
  padding-left: 0 !important;
  border-left: 0;
}

body .bw-about__group:last-child {
  padding-right: 0 !important;
}

body .bw-about__group--hours { flex: 1.2 !important; }
body .bw-about__group--contact { flex: 0.8 !important; }
body .bw-about__group--directions { flex: 1.1 !important; }

/* Label-Zeile: h3 als Kleinkapitälchen-Label + Live-Punkt */
.bw-about__label {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 12px;
}

body .bw-about__label .bw-collabel {
  margin: 0 !important; /* Abstand macht die Label-Zeile */
}

/* Key-Value-Zeilen (Öffnungszeiten) */
body .bw-kvlist {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex;
  flex-direction: column;
  gap: 7px;
}

body .bw-kvlist > li {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
}

body .bw-kvlist > li::before,
body .bw-kvlist > li::marker {
  content: none !important;
  display: none !important;
}

body .bw-kvlist__key {
  font-size: 14.5px !important;
  font-weight: 700 !important;
  color: var(--bw-charcoal) !important;
}

body .bw-kvlist__val {
  font-size: 14.5px !important;
  color: var(--bw-secondary) !important;
  white-space: nowrap;
}

/* Kontakt */
body .bw-about__phone {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  font-size: 15px !important;
  font-weight: 700 !important;
  color: var(--bw-charcoal) !important;
  text-decoration: none !important;
  transition: color 150ms ease;
}

body .bw-about__mail {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  font-size: 14px !important;
  color: var(--bw-secondary) !important;
  text-decoration: none !important;
  transition: color 150ms ease;
}

body .bw-about__phone:hover,
body .bw-about__phone:focus-visible,
body .bw-about__mail:hover,
body .bw-about__mail:focus-visible {
  color: var(--bw-green) !important;
}

/* Anfahrt */
body .bw-about__address,
body .bw-about__address p {
  font-size: 14.5px !important;
  line-height: 1.6 !important;
  color: var(--bw-secondary) !important;
  margin: 0 0 10px !important;
  padding: 0 !important;
}

/* Externer Gold-Textlink mit Pfeil (Styleguide-Pattern) */
body .bw-link-gold {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 28px;
  font-size: 14px !important;
  font-weight: 700 !important;
  color: var(--bw-gold-dark) !important;
  text-decoration: none !important;
  transition: color 150ms ease;
}

.bw-link-gold::after {
  content: '';
  flex-shrink: 0;
  width: 13px;
  height: 12px;
  background-color: var(--bw-gold-dark);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 15 14' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 7 H13'/%3E%3Cpath d='M8 2 L13 7 L8 12'/%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 15 14' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 7 H13'/%3E%3Cpath d='M8 2 L13 7 L8 12'/%3E%3C/svg%3E") center / contain no-repeat;
  transition: transform 150ms ease;
}

body .bw-link-gold:hover,
body .bw-link-gold:focus-visible {
  text-decoration: underline !important;
}

.bw-link-gold:hover::after {
  transform: translateX(2px);
}

/* Standalone-Status-Punkt (7px) — gleiche Zustände/Puls wie der Hero-Chip */
.bw-status-dot {
  display: inline-flex;
  align-items: center;
}

.bw-status-dot .bw-chip-status__dot {
  width: 7px;
  height: 7px;
}

.bw-status-dot.is-soon .bw-chip-status__dot {
  background: var(--bw-gold);
  --bw-pulse: rgba(217, 182, 75, .5);
}

.bw-status-dot.is-closed .bw-chip-status__dot {
  background: var(--bw-muted);
  --bw-pulse: rgba(138, 131, 117, .4);
  animation-duration: 2.6s;
}

/* Weizen-Ornament: bricht aus der oberen rechten Modulecke aus */
.bw-about > .bw-wheat {
  position: absolute;
  top: -60px;
  right: -44px;
  transform: rotate(32deg);
  opacity: .4;
  z-index: 0;
}

.bw-about__top,
.bw-about__band {
  position: relative;
  z-index: 1;
}

/* --- About mobil (≤980px, 13b) --- */

@media (max-width: 980px) {
  .bw-about {
    padding: 26px var(--bw-header-x-mobile) 0;
  }

  body .bw-about .bw-about__top {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
    padding: 0 0 8px !important;
  }

  body .bw-about__eyebrow,
  body .bw-about__eyebrow p { font-size: 15px !important; }

  body .bw-about__title,
  body .bw-about__title h2 {
    font-size: 24px !important;
    line-height: 1.22 !important;
  }

  .bw-divider-gold { width: 150px; }

  body .bw-about__copy { columns: 1; }

  body .bw-about__copy p { font-size: 14px !important; line-height: 1.65 !important; }
  body .bw-about__copy p.bw-about__lead { font-size: 14.5px !important; }

  /* Gruppen gestapelt, jede beginnt mit einer Hairline */
  body .bw-about .bw-about__band {
    flex-direction: column !important;
    border-top: 0;
    padding: 0 0 30px !important;
  }

  body .bw-about__group,
  body .bw-about__group:first-child,
  body .bw-about__group:last-child {
    padding: 18px 0 !important;
    border-left: 0;
    border-top: 1px solid var(--bw-about-hairline);
  }

  body .bw-kvlist__key,
  body .bw-kvlist__val { font-size: 13.5px !important; }

  /* Tap-Targets ≥ 44px */
  body .bw-about__phone,
  body .bw-about__mail,
  body .bw-link-gold { min-height: 44px; }

  .bw-about > .bw-wheat {
    width: 110px;
    height: 150px;
    top: -34px;
    right: -26px;
    opacity: .35;
  }
}

/* --------------------------------------------------------------------------
   Footer (Design 25a/25b/25c) — Gegenstück zum Header, als Paar gebaut:
   2px-Gold-Linie oben spiegelt die 1px-Haarlinie unter der Header-Leiste.
   Breitenraster & Content-Kante kommen aus denselben Tokens wie der Header
   (inkl. 1080px-Preset mit 100px-Mindestrand). Einbindung: [wagner_footer]
   -------------------------------------------------------------------------- */

/* Full-bleed-Breakout: Der Shortcode liegt in einer Divi-Row (~1080px) —
   der Footer bricht daraus aus und richtet sich am Viewport aus, damit die
   Breiten-Settings (1440 / volle Breite) unabhängig vom Builder-Container
   greifen. Voraussetzung: die umgebende Row ist zentriert (Divi-Standard). */
body .bw-footer {
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  max-width: var(--bw-container-max);
  margin: 0 !important;
  background: var(--bw-footer-bg, var(--bw-charcoal));
  color: var(--bw-nav-muted);
  font-family: var(--bw-font);
}

/* Gold-Rahmen: 2px-Verlaufslinie an der Oberkante */
.bw-footer::before {
  content: '';
  display: block;
  height: 2px;
  background: linear-gradient(90deg, rgba(217, 182, 75, 0), var(--bw-gold), rgba(217, 182, 75, 0));
}

/* --- Newsletter-Band (25b) --- */

.bw-footer__newsletter {
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 24px var(--bw-header-x);
  border-bottom: 1px solid rgba(201, 196, 182, .15);
}

body .bw-footer__nl-tagline {
  font-family: var(--bw-font-accent) !important;
  font-size: 16px !important;
  color: var(--bw-gold) !important;
  margin: 0 0 2px !important;
  padding: 0 !important;
}

body .bw-footer__nl-title {
  font-family: var(--bw-font) !important;
  font-size: 19px !important;
  font-weight: 700 !important;
  color: var(--bw-light-on-dark) !important;
  margin: 0 !important;
  padding: 0 !important;
}

.bw-footer__nl-form {
  display: flex;
  align-items: stretch;
  margin-left: auto;
}

body .bw-footer__nl-form input {
  width: 250px;
  border: 1px solid rgba(201, 196, 182, .4) !important;
  border-right: 0 !important;
  border-radius: 99px 0 0 99px !important;
  background: transparent !important;
  padding: 10px 18px !important;
  margin: 0 !important;
  min-height: 0 !important;
  font-family: var(--bw-font) !important;
  font-size: 13.5px !important;
  color: var(--bw-light-on-dark) !important;
}

body .bw-footer__nl-form input::placeholder {
  color: rgba(201, 196, 182, .6);
}

body .bw-footer__nl-form input:focus,
body .bw-footer__nl-form input:focus-visible {
  outline: none;
  border-color: var(--bw-green) !important;
}

body .bw-footer__nl-form button {
  border: 0 !important;
  border-radius: 0 99px 99px 0 !important;
  background: var(--bw-green) !important;
  color: #FFFFFF !important;
  font-family: var(--bw-font) !important;
  font-size: 13.5px !important;
  font-weight: 700 !important;
  padding: 10px 22px !important;
  cursor: pointer;
  transition: background-color 150ms ease;
}

body .bw-footer__nl-form button:hover,
body .bw-footer__nl-form button:focus-visible {
  background: var(--bw-green-dark) !important;
}

/* Inline-Feedback unter dem Feld (Mailer-Anbindung) */
.bw-footer__nl-feedback {
  font-size: 12.5px;
  margin: 6px 0 0;
}

.bw-footer__nl-feedback.is-success { color: var(--bw-green); }
.bw-footer__nl-feedback.is-error { color: #B3543E; }

/* --- Hauptbereich: Markenspalte + Link-Raster --- */

.bw-footer__main {
  display: flex;
  gap: 52px;
  padding: 40px var(--bw-header-x) 34px;
}

.bw-footer__brand {
  flex: 0 0 250px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 13px;
}

.bw-footer__logo {
  display: block;
  height: 56px;
  width: auto;
}

body .bw-footer__claim {
  font-family: var(--bw-font-accent) !important;
  font-size: 19px !important;
  color: var(--bw-gold) !important;
  margin: 0 !important;
  padding: 0 !important;
}

.bw-footer__social {
  display: flex;
  gap: 10px;
}

body .bw-footer__socialbtn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border: 1px solid rgba(201, 196, 182, .45);
  border-radius: 50%;
  color: var(--bw-nav-muted) !important;
  text-decoration: none !important;
  transition: color 150ms ease, border-color 150ms ease;
}

body .bw-footer__socialbtn--fb {
  font-family: var(--bw-font) !important;
  font-size: 14px !important;
  font-weight: 700 !important;
}

body .bw-footer__socialbtn:hover,
body .bw-footer__socialbtn:focus-visible {
  color: #FFFFFF !important;
  border-color: #FFFFFF;
}

body .bw-footer__note {
  font-size: 13px !important;
  line-height: 1.55 !important;
  color: var(--bw-dim-dark) !important;
  margin: 0 !important;
  padding: 0 !important;
}

.bw-footer__grid {
  flex: 1;
  display: grid;
  grid-template-columns: 1fr 1.3fr 1.2fr;
  gap: 30px;
}

/* Spalten-Label: Muster des Flyout-Labels, auf dunkel gedimmt */
body .bw-footer__label {
  color: var(--bw-dim-dark) !important;
  margin: 0 0 12px !important;
}

body .bw-footer__links {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex;
  flex-direction: column;
  gap: 11px;
}

body .bw-footer__links > li {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

body .bw-footer__links > li::before,
body .bw-footer__links > li::marker {
  content: none !important;
  display: none !important;
}

body .bw-footer__link {
  font-size: 14px !important;
  color: var(--bw-nav-muted) !important;
  text-decoration: none !important;
  transition: color 150ms ease;
}

body .bw-footer__link:hover,
body .bw-footer__link:focus-visible {
  color: #FFFFFF !important;
}

/* „Vertrag widerrufen“-Pill */
body .bw-footer__pill {
  display: inline-flex;
  align-items: center;
  margin-top: 14px;
  border: 1px solid rgba(201, 196, 182, .45) !important;
  border-radius: 99px !important;
  padding: 7px 16px !important;
  font-family: var(--bw-font) !important;
  font-size: 12.5px !important;
  font-weight: 700 !important;
  color: var(--bw-nav-muted) !important;
  text-decoration: none !important;
  background: none !important;
  transition: color 150ms ease, border-color 150ms ease;
}

body .bw-footer__pill:hover,
body .bw-footer__pill:focus-visible {
  color: #FFFFFF !important;
  border-color: #FFFFFF !important;
}

/* Kontakt */
body .bw-footer__contact {
  font-style: normal !important;
  font-size: 14px !important;
  line-height: 1.7 !important;
  color: var(--bw-nav-muted) !important;
  margin: 0 !important;
  padding: 0 !important;
}

body .bw-footer__contact strong {
  color: var(--bw-light-on-dark) !important;
}

body .bw-footer__mail {
  color: var(--bw-gold) !important;
  text-decoration: none !important;
  transition: color 150ms ease;
}

body .bw-footer__mail:hover,
body .bw-footer__mail:focus-visible {
  color: var(--bw-gold-light) !important;
}

/* --- Untere Leiste --- */

.bw-footer__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  border-top: 1px solid rgba(201, 196, 182, .15);
  padding: 14px var(--bw-header-x);
}

body .bw-footer__copy,
body .bw-footer__bio {
  font-size: 12px !important;
  color: var(--bw-dim-dark) !important;
  margin: 0 !important;
  padding: 0 !important;
}

body .bw-footer__payments {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

body .bw-footer__payments > li {
  list-style: none !important;
  margin: 0 !important;
  border: 1px solid rgba(201, 196, 182, .3);
  border-radius: 4px;
  padding: 3px 7px !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: .04em !important;
  color: var(--bw-dim-dark) !important;
}

body .bw-footer__payments > li::before,
body .bw-footer__payments > li::marker {
  content: none !important;
  display: none !important;
}

/* --- Footer mobil (≤980px, 25c) --- */

@media (max-width: 980px) {
  .bw-footer__newsletter {
    flex-direction: column;
    align-items: stretch;
    gap: 14px;
    padding: 20px var(--bw-header-x-mobile);
  }

  .bw-footer__nl-form {
    flex-direction: column;
    margin-left: 0;
    gap: 10px;
  }

  body .bw-footer__nl-form input {
    width: 100% !important;
    border-right: 1px solid rgba(201, 196, 182, .4) !important;
    border-radius: 99px !important;
    padding: 12px 18px !important;
  }

  body .bw-footer__nl-form button {
    border-radius: 99px !important;
    padding: 13px 22px !important;
    width: 100%;
  }

  .bw-footer__main {
    flex-direction: column;
    gap: 0;
    padding: 24px var(--bw-header-x-mobile) 0;
  }

  .bw-footer__brand {
    flex-basis: auto;
    padding-bottom: 20px;
  }

  .bw-footer__logo { height: 44px; }

  body .bw-footer__claim { font-size: 17px !important; }

  body .bw-footer__socialbtn {
    width: 40px;
    height: 40px; /* mit Umfeld ≥44px Tap-Ziel */
  }

  .bw-footer__grid {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .bw-footer__group {
    border-top: 1px solid rgba(201, 196, 182, .12);
    padding: 14px 0;
  }

  body .bw-footer__label {
    margin: 0 0 4px !important;
    font-size: 10px !important;
  }

  body .bw-footer__links { gap: 0; }

  body .bw-footer__links > li {
    border-bottom: 1px solid rgba(201, 196, 182, .08);
  }

  body .bw-footer__links > li:last-child {
    border-bottom: 0;
  }

  body .bw-footer__link {
    display: flex;
    align-items: center;
    min-height: 44px;
    padding: 11px 0 !important;
  }

  body .bw-footer__pill {
    padding: 11px 20px !important;
    font-size: 13px !important;
    min-height: 44px;
    margin-top: 10px;
  }

  body .bw-footer__contact a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
  }

  .bw-footer__bottom {
    flex-direction: column;
    text-align: center;
    gap: 8px;
    padding: 14px var(--bw-header-x-mobile) 18px;
  }

  body .bw-footer__payments { justify-content: center; }
}

/* --------------------------------------------------------------------------
   Mobile Shop-Pille (Design 27) + „Mein Konto" im Menü
   Pille ersetzt mobil Warenkorb-/Konto-Icon (nur ≤980px sichtbar); der Account
   nutzt dasselbe helle Akkordeon-Panel wie Standorte.
   -------------------------------------------------------------------------- */

.bw-shoppill {
  display: inline-flex;
  position: relative;
  align-items: center;
  gap: 7px;
  background: var(--bw-green);
  color: #FFFFFF;
  border-radius: 99px;
  padding: 8px 15px 8px 12px;
  font-family: var(--bw-font);
  font-size: 13.5px;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  transition: background-color 150ms ease;
}

/* Desktop: Pille aus — Warenkorb-Icon + grüner CTA übernehmen (nur mobil sichtbar).
   Muss NACH dem @media(max-width:980px)-Block stehen, sonst gewinnt die
   Basisregel und die Pille bliebe mobil unsichtbar. */
@media (min-width: 981px) {
  .bw-shoppill {
    display: none;
  }
}

.bw-shoppill:hover,
.bw-shoppill:focus-visible {
  background: var(--bw-green-dark);
}

.bw-shoppill__icon {
  flex: none;
}

.bw-shoppill__count {
  position: absolute;
  top: -3px;
  right: -4px;
  display: none; /* aus, wenn Warenkorb leer */
  align-items: center;
  justify-content: center;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  border-radius: 99px;
  background: var(--bw-gold);
  border: 1.5px solid var(--bw-charcoal);
  color: var(--bw-charcoal);
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
}

.bw-shoppill__count.is-active {
  display: flex;
}

/* „Mein Konto" — abgemeldet: Login-Block oben im Menü */
.bw-acct--signin {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 22px;
  border-bottom: 1px solid rgba(201, 196, 182, .18);
  text-decoration: none;
}

.bw-acct__avatar {
  flex: none;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  border: 1.5px solid rgba(217, 182, 75, .5);
  color: var(--bw-gold); /* Icon gold auf dunkel (CI) */
}

.bw-acct__text {
  flex: 1;
  display: flex;
  flex-direction: column;
}

.bw-acct__title {
  font-size: 16px;
  font-weight: 700;
  color: var(--bw-light-on-dark);
}

.bw-acct__sub {
  margin-top: 1px;
  font-size: 12.5px;
  color: var(--bw-nav-muted);
}

.bw-acct__arrow {
  flex: none;
  display: flex;
  color: var(--bw-gold);
}

/* „Mein Konto" — angemeldet: aufklappbare Zeile wie Standorte */
.bw-acct--in {
  border-bottom: 1px solid rgba(201, 196, 182, .18);
}

.bw-acct__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-height: 56px;
  padding: 0 22px;
  font-family: var(--bw-font);
  font-size: 17px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--bw-light-on-dark);
  background: none;
  border: 0;
  margin: 0;
  cursor: pointer;
  text-align: left;
}

/* Gold-Chevron rechtsbündig, dreht beim Öffnen (gleiche Linienführung wie Nav) */
.bw-acct__row::after {
  content: '';
  flex-shrink: 0;
  width: 15px;
  height: 10px;
  background-color: var(--bw-gold);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1.5 1.5 L6 6.5 L10.5 1.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 12 8' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1.5 1.5 L6 6.5 L10.5 1.5'/%3E%3C/svg%3E") center / contain no-repeat;
  transition: transform 280ms ease-in-out;
}

.bw-acct__row[aria-expanded="true"]::after {
  transform: rotate(180deg);
}

/* Panel reicht das gemeinsame .bw-accordion (helles Panel + max-height-Animatik) */
.bw-acct__panelinner {
  padding: 2px 22px 10px;
}

.bw-acct__link {
  display: block;
  padding: 13px 0;
  font-family: var(--bw-font);
  font-size: 16px;
  font-weight: 700;
  color: var(--bw-charcoal);
  text-decoration: none;
}

.bw-acct__link + .bw-acct__link {
  border-top: 1px solid var(--bw-border-light);
}

.bw-acct__link--logout {
  color: var(--bw-green);
}

/* --------------------------------------------------------------------------
   Ladeindikatoren — WordPress-Suche/Navigation braucht spürbar Zeit;
   nach dem Absenden bzw. Chip-Klick zeigt das jeweilige Element einen Spinner
   -------------------------------------------------------------------------- */

@keyframes bw-spin {
  to { transform: rotate(360deg); }
}

/* Submit-Buttons (Suchen / Filiale finden): Text weicht dem Spinner */
form.is-loading .bw-btn[type="submit"] {
  position: relative;
  color: transparent !important;
  pointer-events: none;
}

form.is-loading .bw-btn[type="submit"]::after {
  content: '';
  position: absolute;
  inset: 0;
  margin: auto;
  width: 16px;
  height: 16px;
  border: 2px solid rgba(255, 255, 255, .35);
  border-top-color: #FFFFFF;
  border-radius: 50%;
  animation: bw-spin 700ms linear infinite;
}

/* Felder ohne eigenen Button (Akkordeon-Finder): Lupe wird zum Spinner */
.bw-finder__form.is-loading .bw-finder__search-icon {
  opacity: 0;
}

.bw-finder__form.is-loading .bw-finder__field::before {
  content: '';
  position: absolute;
  left: 16px;
  top: 50%;
  margin-top: -7px;
  width: 13px;
  height: 13px;
  border: 2px solid rgba(95, 135, 82, .3);
  border-top-color: var(--bw-green);
  border-radius: 50%;
  animation: bw-spin 700ms linear infinite;
  z-index: 1;
}

/* Produkt-Chips: Klick → Spinner im Chip */
.bw-chip.is-loading {
  position: relative;
  color: transparent !important;
  pointer-events: none;
}

.bw-chip.is-loading::after {
  content: '';
  position: absolute;
  inset: 0;
  margin: auto;
  width: 12px;
  height: 12px;
  border: 2px solid var(--bw-border-mid);
  border-top-color: var(--bw-green);
  border-radius: 50%;
  animation: bw-spin 700ms linear infinite;
}

/* --------------------------------------------------------------------------
   Seitenkopf (Design 3a): Breadcrumb · Metafors-Akzent · Headline · Gold-Ornament
   Einbindung: [wagner_page_header] im Body-Template des Theme Builders
   -------------------------------------------------------------------------- */

.bw-pagehead {
  max-width: var(--bw-container-max);
  margin-left: auto;
  margin-right: auto;
  background: var(--bw-warm-white);
  padding: 26px calc((var(--bw-container-max) - var(--bw-content-max)) / 2) 30px;
  font-family: var(--bw-font);
}

.bw-pagehead__breadcrumb {
  margin: 0 0 18px;
  font-size: 12px;
  color: var(--bw-placeholder);
}

.bw-pagehead__breadcrumb ol {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
}

.bw-pagehead__breadcrumb a {
  color: var(--bw-placeholder);
  text-decoration: none;
  transition: color 150ms ease;
}

.bw-pagehead__breadcrumb a:hover,
.bw-pagehead__breadcrumb a:focus-visible {
  color: var(--bw-green);
}

.bw-pagehead__breadcrumb li[aria-current="page"] {
  color: var(--bw-secondary);
}

.bw-pagehead__breadcrumb li + li::before {
  content: '/';
  color: var(--bw-nav-muted);
  margin: 0 6px;
}

.bw-pagehead__tagline {
  margin: 0 0 6px;
  font-family: var(--bw-font-accent);
  font-size: 17px;
  color: var(--bw-gold-dark);
}

.bw-pagehead__title {
  margin: 0;
  font-size: clamp(26px, 4.5vw, 36px);
  font-weight: 700;
  line-height: 1.1;
  color: var(--bw-charcoal);
}

.bw-pagehead__title .bw-pagehead__accent {
  font-family: var(--bw-font-accent);
  font-weight: 400;
  color: var(--bw-green);
}

/* Gold-Ornament: kurze Linie · Raute · auslaufende Linie */
.bw-pagehead__ornament {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 250px;
  max-width: 60%;
  margin-top: 16px;
}

.bw-pagehead__ornament::before {
  content: '';
  width: 34px;
  height: 1px;
  background: var(--bw-gold);
}

.bw-pagehead__ornament .bw-pagehead__diamond {
  width: 6px;
  height: 6px;
  background: var(--bw-gold);
  transform: rotate(45deg);
}

.bw-pagehead__ornament::after {
  content: '';
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, var(--bw-gold), rgba(217, 182, 75, 0));
}

@media (max-width: 980px) {
  .bw-pagehead {
    padding: 20px var(--bw-header-x-mobile) 24px;
  }
}

/* --------------------------------------------------------------------------
   Divi-Override-Schicht
   Divi lädt seine cached-inline-styles NACH dem Plugin-CSS und setzt dabei
   u.a. globale Linkfarben durch (Toolkit-Praxis: body-Präfix + !important).
   Hier werden nur Farben/Typografie erneut durchgesetzt — Layout bleibt oben.
   -------------------------------------------------------------------------- */

body .bw-header-root a,
body .bw-header a,
body .bw-mobilemenu a {
  text-decoration: none !important;
}

/* Nur Desktop — mobil ist das Nav ausgeblendet (display:none in der Media-Query) */
@media (min-width: 981px) {
  body .bw-header__bar .bw-nav {
    display: flex !important;
    justify-content: var(--bw-nav-justify, center) !important;
  }

  body .bw-header__bar .bw-nav__list {
    display: flex !important;
    width: auto !important;
  }
}

body .bw-nav__list a {
  color: var(--bw-nav-muted) !important;
  font-family: var(--bw-font) !important;
  font-size: var(--bw-nav-size) !important;
  font-weight: 400 !important;
}

body .bw-nav__list a:hover,
body .bw-nav__list a:focus-visible,
body .bw-nav__list li.is-open > a {
  color: #FFFFFF !important;
  font-weight: 700 !important;
}

body .bw-iconbtn {
  color: var(--bw-nav-muted) !important;
}

body .bw-iconbtn:hover,
body .bw-iconbtn:focus-visible {
  color: #FFFFFF !important;
}

body .bw-utils__search[aria-expanded="true"] {
  color: var(--bw-gold) !important;
}

body .bw-btn--primary {
  background: var(--bw-green) !important;
  color: #FFFFFF !important;
}

body .bw-btn--primary:hover,
body .bw-btn--primary:focus-visible {
  background: var(--bw-green-dark) !important;
}

body .bw-btn--outline {
  color: var(--bw-charcoal) !important;
  background: transparent !important;
}

body .bw-btn--outline:hover,
body .bw-btn--outline:focus-visible {
  background: var(--bw-charcoal) !important;
  color: #FFFFFF !important;
}

body .bw-loclist__name,
body .bw-card__title,
body .bw-accordion__locname,
body .bw-accordion__cardtitle,
body .bw-accountmenu__links a {
  color: var(--bw-charcoal) !important;
}

body .bw-loclist__link:hover .bw-loclist__name,
body .bw-loclist__link:focus-visible .bw-loclist__name,
body .bw-card:hover .bw-card__title,
body .bw-card:focus-visible .bw-card__title,
body .bw-accountmenu__links a:hover,
body .bw-accountmenu__links a:focus-visible {
  color: var(--bw-green) !important;
}

body .bw-accountmenu__links a.bw-accountmenu__logout {
  color: var(--bw-muted) !important;
}

body .bw-chip {
  color: var(--bw-secondary) !important;
}

body .bw-chip:hover,
body .bw-chip:focus-visible {
  color: var(--bw-green) !important;
}

body .bw-accordion__all {
  color: var(--bw-green) !important;
}

body .bw-mobilemenu__list > li > a,
body .bw-mobilemenu__rowbtn {
  color: var(--bw-light-on-dark) !important;
  font-size: 17px !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  min-height: 56px !important;
  padding: 0 22px !important;
  margin: 0 !important;
}

body .bw-mobilemenu.is-accordion-open .bw-mobilemenu__list > li:not(.is-expanded) > a,
body .bw-mobilemenu.is-accordion-open .bw-mobilemenu__list > li:not(.is-expanded) > .bw-mobilemenu__rowbtn {
  color: var(--bw-dim-dark) !important;
}

/* Mobile Shop-Pille + „Mein Konto" — Divi-Linkfarben/Größen erneut durchsetzen */
body .bw-shoppill {
  color: #FFFFFF !important;
  font-size: 13.5px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  text-decoration: none !important;
}

body .bw-shoppill:hover,
body .bw-shoppill:focus-visible {
  color: #FFFFFF !important;
  background: var(--bw-green-dark) !important;
}

body .bw-shoppill__count {
  color: var(--bw-charcoal) !important;
  font-size: 10px !important;
  line-height: 1 !important;
}

body .bw-acct__title {
  color: var(--bw-light-on-dark) !important;
  font-size: 16px !important;
  font-weight: 700 !important;
}

body .bw-acct__sub {
  color: var(--bw-nav-muted) !important;
  font-size: 12.5px !important;
  font-weight: 400 !important;
}

body .bw-acct__row {
  color: var(--bw-light-on-dark) !important;
  font-size: 17px !important;
  font-weight: 700 !important;
  min-height: 56px !important;
  padding: 0 22px !important;
  margin: 0 !important;
}

body .bw-acct__link {
  color: var(--bw-charcoal) !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  text-decoration: none !important;
}

body .bw-acct__link--logout {
  color: var(--bw-green) !important;
}

/* ---- Struktur & Typografie: Divi-Inhaltsstyles im Panel neutralisieren ----
   Divi behandelt den Code-Modul-Inhalt wie Fließtext (Bullets, Absatz-Abstände,
   Formular-/Button-Größen). Nur eigene bw-Klassen — Library-Layout-Flyouts
   (.bw-flyout--layout) behalten bewusst ihre Divi-Styles. */

body .bw-nav__list,
body .bw-loclist,
body .bw-chips,
body .bw-accordion__locations,
body .bw-accountmenu__links,
body .bw-mobilemenu__list {
  list-style: none !important;
  padding: 0 !important;
}

body .bw-nav__list,
body .bw-chips,
body .bw-accountmenu__links,
body .bw-mobilemenu__list {
  margin: 0 !important;
}

body .bw-loclist { margin: 0 0 18px !important; }
body .bw-accordion__locations { margin: 0 0 14px !important; }

body .bw-nav__list > li,
body .bw-loclist > li,
body .bw-chips > li,
body .bw-accordion__locations > li,
body .bw-accountmenu__links > li,
body .bw-mobilemenu__list > li {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background: none !important;
}

/* Bullets/Anführungszeichen, die Themes per Pseudo-Element in Listen injizieren */
body .bw-nav__list > li::before,
body .bw-loclist > li::before,
body .bw-chips > li::before,
body .bw-accordion__locations > li::before,
body .bw-accountmenu__links > li::before,
body .bw-mobilemenu__list > li::before,
body .bw-loclist > li::marker,
body .bw-accordion__locations > li::marker {
  content: none !important;
  display: none !important;
}

body .bw-collabel {
  font-size: 10.5px !important;
  letter-spacing: .14em !important;
  line-height: 1.4 !important;
  margin: 0 0 12px !important;
  padding: 0 !important;
}

body .bw-loclist__name { font-size: 15px !important; line-height: 1.35 !important; }
body .bw-loclist__sub { font-size: 12px !important; line-height: 1.4 !important; }
body .bw-card__title { font-size: 14.5px !important; line-height: 1.35 !important; }
body .bw-card__text { font-size: 12.5px !important; line-height: 1.45 !important; }

body .bw-badge {
  font-size: 9px !important;
  line-height: 1.4 !important;
  padding: 2px 8px !important;
  letter-spacing: .06em !important;
  border-radius: 99px !important;
}

body .bw-finder__tagline {
  font-family: var(--bw-font-accent) !important;
  font-size: 14.5px !important;
  margin: 0 0 14px !important;
  padding: 0 !important;
}

body .bw-finder__footnote {
  font-size: 11.5px !important;
  line-height: 1.5 !important;
  margin: auto 0 0 !important;
  padding: 14px 0 0 !important;
}

body .bw-btn {
  font-family: var(--bw-font) !important;
  font-size: 13.5px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  padding: 9px 20px !important;
  border: 0 !important;
  border-radius: 99px !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

body .bw-btn--outline {
  font-size: 12px !important;
  padding: 7px 16px !important;
  letter-spacing: .06em !important;
  text-transform: uppercase !important;
  border: 1.5px solid var(--bw-charcoal) !important;
}

body .bw-mobilemenu__shop {
  padding: 12px 20px !important;
  font-size: 15px !important;
}

body .bw-finder__field input {
  font-family: var(--bw-font) !important;
  font-size: 13.5px !important;
  line-height: 1.4 !important;
  padding: 9px 42px 9px 40px !important;
  margin: 0 !important;
  min-height: 0 !important;
  border: 1.5px solid var(--bw-border-mid) !important;
  border-radius: 99px !important;
  background-color: #FFFFFF !important;
  color: var(--bw-charcoal) !important;
}

body .bw-finder__field input:focus,
body .bw-finder__field input:focus-visible {
  border-color: var(--bw-green) !important;
}

body .bw-searchrow__field input {
  font-family: var(--bw-font) !important;
  font-size: 15px !important;
  padding: 12px 168px 12px 46px !important;
  margin: 0 !important;
  min-height: 0 !important;
  border: 1.5px solid var(--bw-green) !important;
  border-radius: 99px !important;
  background-color: #FFFFFF !important;
  color: var(--bw-charcoal) !important;
}

body .bw-mobilesearch__form input {
  font-family: var(--bw-font) !important;
  font-size: 15px !important;
  padding: 9px 44px 9px 40px !important;
  margin: 0 !important;
  min-height: 0 !important;
  border: 1.5px solid var(--bw-green) !important;
  border-radius: 99px !important;
  background-color: #FFFFFF !important;
  color: var(--bw-charcoal) !important;
}

body .bw-search-submit {
  background: var(--bw-green) !important;
  color: #FFFFFF !important;
  border-radius: 50% !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
}

body .bw-search-submit:hover,
body .bw-search-submit:focus-visible {
  background: var(--bw-green-dark) !important;
}

body .bw-chip {
  font-size: 12.5px !important;
  padding: 5px 14px !important;
  border: 1px solid var(--bw-border-mid) !important;
  border-radius: 99px !important;
  background: #FFFFFF !important;
}

body .bw-chip:hover,
body .bw-chip:focus-visible {
  border-color: var(--bw-green) !important;
}

body .bw-accountmenu__label { margin: 0 !important; padding: 0 !important; font-size: 11px !important; }
body .bw-accountmenu__email { margin: 2px 0 0 !important; padding: 0 !important; font-size: 14px !important; }

body .bw-mobilemenu__claim {
  font-family: var(--bw-font-accent) !important;
  font-size: 16px !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Seitenkopf gegen Divi-Content-Styles absichern */
body .bw-pagehead__title {
  font-family: var(--bw-font) !important;
  font-size: clamp(26px, 4.5vw, 36px) !important;
  font-weight: 700 !important;
  line-height: 1.1 !important;
  color: var(--bw-charcoal) !important;
  margin: 0 !important;
  padding: 0 !important;
}

body .bw-pagehead__title .bw-pagehead__accent {
  font-family: var(--bw-font-accent) !important;
  font-weight: 400 !important;
  color: var(--bw-green) !important;
}

body .bw-pagehead__tagline {
  font-family: var(--bw-font-accent) !important;
  font-size: 17px !important;
  color: var(--bw-gold-dark) !important;
  margin: 0 0 6px !important;
  padding: 0 !important;
}

body .bw-pagehead__breadcrumb ol {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

body .bw-pagehead__breadcrumb li {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: 12px !important;
}

body .bw-pagehead__breadcrumb li::marker {
  content: none !important;
}

@media (prefers-reduced-motion: reduce) {
  .bw-panel,
  .bw-searchrow,
  .bw-accountmenu,
  .bw-mobilemenu,
  .bw-accordion,
  .bw-nav__underline,
  .bw-card__media img,
  .bw-logo__img,
  .bw-header__bar {
    transition-duration: 0.01ms !important;
  }

  .bw-panel,
  .bw-searchrow,
  .bw-accountmenu,
  .bw-mobilemenu {
    transform: none !important;
  }

  .bw-dot.is-pop {
    animation: none;
  }

  /* Status-Chip: statischer Punkt statt Puls */
  .bw-chip-status__dot {
    animation: none !important;
  }
}

/* --------------------------------------------------------------------------
   Kompakt-Preset (Einstellung "Content-Breite: 1080px" — Bestandsseite)
   1280 → 1000px: Inhalte schrumpfen fluid, damit bei fixen 100px-Mindest-
   rändern nichts kollidiert. Unter 1000px: mobile Ansicht (statt 980px).
   -------------------------------------------------------------------------- */

@media (min-width: 1001px) and (max-width: 1280px) {
  .bw-compact .bw-header__bar {
    gap: clamp(10px, 5vw - 40px, 26px);
  }

  /* Logo, Utils, CTA und Sprachwahl behalten ihre Größe — nur die Nav gibt
     nach: Sie bricht INNERHALB ihrer Box um (zentriert im 72px-Balken), statt
     seitlich in Logo/Utils zu spillen. Verhindert Überlappungen. */
  .bw-compact .bw-logo,
  .bw-compact .bw-utils,
  .bw-compact .bw-header__cta,
  .bw-compact .bw-header__bar .bw-langswitch {
    flex-shrink: 0;
  }

  .bw-compact .bw-nav__list {
    flex-wrap: wrap;
    align-content: center;
    justify-content: center;
    column-gap: clamp(8px, 4vw - 33px, 26px);
    row-gap: 2px;
  }

  /* Schrift kleiner, Laufweite eng — damit die Nav möglichst lange einzeilig bleibt */
  .bw-compact body .bw-nav__list a {
    font-size: clamp(10px, 1.1vw - 0.5px, 13.5px) !important;
    letter-spacing: 0 !important;
  }

  .bw-compact body .bw-logo__img,
  .bw-compact body .bw-header.is-shrunk .bw-logo__img {
    height: clamp(28px, 4.29vw - 12.9px, 42px) !important;
  }

  .bw-compact .bw-utils {
    gap: clamp(9px, 2.86vw - 19.6px, 18px);
    margin-left: clamp(4px, 2.86vw - 24px, 14px);
  }

  .bw-compact body .bw-header__cta {
    font-size: clamp(11px, 0.9vw + 2px, 13.5px) !important;
    padding: 8px clamp(12px, 2.86vw - 16.6px, 20px) !important;
    margin-left: clamp(6px, 1.43vw - 8.3px, 10px);
  }

  .bw-compact .bw-langswitch__btn {
    font-size: 10.5px;
    min-width: 24px;
    padding: 4px 3px;
  }

  /* Gleitende Unterstreichung passt nicht auf mehrzeilige Nav — bei Umbruch aus */
  .bw-compact .bw-nav__underline {
    display: none;
  }
}

/* Mobile Ansicht des Kompakt-Presets greift schon unter 1000px (Header-Regeln
   des 980er-Blocks, gescoped — das JS erhält den Breakpoint aus den Settings) */
@media (max-width: 1000px) {
  .bw-compact {
    --bw-header-inset: 0px;
  }

  .bw-compact .bw-header {
    max-width: none;
    padding: 0;
  }

  .bw-compact .bw-header__bar,
  .bw-compact .bw-header.is-shrunk .bw-header__bar {
    height: var(--bw-header-h-mobile);
    padding: 0 var(--bw-header-x-mobile);
    gap: 0; /* Abstände mobil über margins (Design 27a: 22px Suche→Burger) */
  }

  .bw-compact .bw-header__bar::after {
    height: 1.5px;
  }

  .bw-compact body .bw-nav,
  .bw-compact .bw-header__cta,
  .bw-compact .bw-utils__account,
  .bw-compact .bw-utils__cart,
  .bw-compact .bw-header__bar .bw-langswitch,
  .bw-compact .bw-flyout,
  .bw-compact .bw-accountmenu {
    display: none !important;
  }

  /* Design 27a im Kompakt-Preset: Shop-Pille links, Suche + Burger rechts (22px) */
  .bw-compact .bw-shoppill {
    display: inline-flex;
    order: 1;
  }

  .bw-compact .bw-burger {
    display: inline-flex;
    order: 3;
    margin-left: 22px; /* klarer Abstand Suche → Burger (Design) */
  }

  .bw-compact .bw-logo {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
  }

  .bw-compact body .bw-logo__img,
  .bw-compact body .bw-header.is-shrunk .bw-logo__img {
    height: 32px !important;
  }

  .bw-compact .bw-utils {
    order: 2;
    margin-left: auto; /* Suche + Burger an den rechten Rand */
    gap: 12px;
  }

  .bw-compact .bw-header-spacer {
    height: var(--bw-header-h-mobile);
  }

  .bw-compact.is-mobilesearch .bw-mobilesearch {
    display: flex;
  }

  .bw-compact .bw-searchrow__form {
    display: none;
  }

  .bw-compact .bw-searchrow__popular {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    padding: 14px 16px 18px;
  }
}

/* --------------------------------------------------------------------------
   Typografie-/Farb-Token-Schicht (v2.4) — jede Gruppe per Token übersteuerbar
   (Design > Wagner Header → „Eigene Design-Tokens", Format: name | wert).
   Ungesetzte Tokens fallen auf die Spec-Werte zurück; Schicht steht bewusst
   NACH der Divi-Override-Schicht und gewinnt daher bei gesetztem Token.
   -------------------------------------------------------------------------- */

/* Hauptnavigation */
body .bw-nav__list a {
  font-family: var(--bw-nav-font, var(--bw-font)) !important;
  font-size: var(--bw-nav-size) !important;
  font-weight: var(--bw-nav-weight, 400) !important;
  letter-spacing: var(--bw-nav-tracking, .03em) !important;
  text-transform: var(--bw-nav-transform, none) !important;
  color: var(--bw-nav-color, var(--bw-nav-muted)) !important;
}

body .bw-nav__list a:hover,
body .bw-nav__list a:focus-visible,
body .bw-nav__list li.is-open > a {
  font-weight: var(--bw-nav-weight-active, 700) !important;
  color: var(--bw-nav-color-active, #FFFFFF) !important;
}

/* Utility-Icons (Suche, Konto, Warenkorb, Burger) */
body .bw-iconbtn {
  color: var(--bw-icon-color, var(--bw-nav-muted)) !important;
}

body .bw-iconbtn:hover,
body .bw-iconbtn:focus-visible {
  color: var(--bw-icon-color-active, #FFFFFF) !important;
}

/* Spalten-/Info-Labels (Flyout, About, Footer) */
body .bw-collabel {
  font-family: var(--bw-label-font, var(--bw-font)) !important;
  font-size: var(--bw-label-size, 10.5px) !important;
  font-weight: var(--bw-label-weight, 700) !important;
  letter-spacing: var(--bw-label-tracking, .14em) !important;
  color: var(--bw-label-color, var(--bw-muted)) !important;
}

body .bw-footer__label {
  color: var(--bw-footer-label-color, var(--bw-dim-dark)) !important;
}

/* Flyout: Standort-Links & Sublines */
body .bw-loclist__name {
  font-size: var(--bw-flyout-link-size, 15px) !important;
  font-weight: var(--bw-flyout-link-weight, 700) !important;
  color: var(--bw-flyout-link-color, var(--bw-charcoal)) !important;
}

body .bw-loclist__link:hover .bw-loclist__name,
body .bw-loclist__link:focus-visible .bw-loclist__name {
  color: var(--bw-flyout-link-hover, var(--bw-green)) !important;
}

body .bw-loclist__sub {
  font-size: var(--bw-flyout-sub-size, 12px) !important;
  color: var(--bw-flyout-sub-color, var(--bw-muted)) !important;
}

/* Flyout: Highlight-Karten */
body .bw-card__title {
  font-size: var(--bw-card-title-size, 14.5px) !important;
  color: var(--bw-card-title-color, var(--bw-charcoal)) !important;
}

body .bw-card:hover .bw-card__title,
body .bw-card:focus-visible .bw-card__title {
  color: var(--bw-card-title-hover, var(--bw-green)) !important;
}

body .bw-card__text {
  font-size: var(--bw-card-text-size, 12.5px) !important;
  color: var(--bw-card-text-color, var(--bw-muted)) !important;
}

/* Buttons (Pills) */
body .bw-btn {
  font-family: var(--bw-btn-font, var(--bw-font)) !important;
  font-size: var(--bw-btn-size, 13.5px) !important;
  font-weight: var(--bw-btn-weight, 700) !important;
}

/* Such-Chips */
body .bw-chip {
  font-size: var(--bw-chip-size, 12.5px) !important;
  color: var(--bw-chip-color, var(--bw-secondary)) !important;
}

/* Footer-Links */
body .bw-footer__link {
  font-size: var(--bw-footer-link-size, 14px) !important;
  color: var(--bw-footer-link-color, var(--bw-nav-muted)) !important;
}

body .bw-footer__link:hover,
body .bw-footer__link:focus-visible {
  color: var(--bw-footer-link-hover, #FFFFFF) !important;
}

/* Mobile Menü-Zeilen */
body .bw-mobilemenu__list > li > a,
body .bw-mobilemenu__rowbtn {
  font-size: var(--bw-mobilenav-size, 17px) !important;
  color: var(--bw-mobilenav-color, var(--bw-light-on-dark)) !important;
}
