/* Eigene Bausteine (ersetzen WordPress-Plugins): Einwilligungs-Banner, Medien-Platzhalter,
   Google-Bewertungen, Formular-Meldungen. Farben aus dem Avada-Theme. */
:root {
  --ebr-akzent: var(--awb-color5, #fb611f);
  --ebr-text: var(--awb-color7, #222);
  --ebr-grau: #f5f5f5;
  --ebr-linie: #e5e5e5;
}

/* ---------- Banner ---------- */
.ebr-cc {
  position: fixed; z-index: 100000; left: 16px; right: 16px; bottom: 16px;
  max-width: 620px; margin-left: auto; margin-right: auto;
  background: #fff; color: var(--ebr-text); border-radius: 10px;
  box-shadow: 0 10px 40px rgba(0,0,0,.22); font-size: 15px; line-height: 1.5;
  max-height: calc(100vh - 32px); overflow-y: auto;
}
.ebr-cc[hidden] { display: none; }
.ebr-cc__inner { padding: 22px 24px 20px; }
.ebr-cc__titel { margin: 0 0 8px; font-size: 19px; line-height: 1.3; color: var(--ebr-text); }
.ebr-cc__text { margin: 0 0 14px; }
.ebr-cc a { color: var(--ebr-akzent); text-decoration: underline; }
.ebr-cc__knoepfe { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.ebr-cc__btn {
  font: inherit; font-weight: 600; cursor: pointer; border-radius: 6px; padding: 11px 18px;
  border: 2px solid var(--ebr-akzent); line-height: 1.2;
}
.ebr-cc__btn[hidden] { display: none; }
.ebr-cc__btn--haupt { background: var(--ebr-akzent); color: #fff; flex: 1 1 180px; }
.ebr-cc__btn--neben { background: #fff; color: var(--ebr-akzent); flex: 1 1 180px; }
.ebr-cc__btn--link { background: none; border-color: transparent; color: var(--ebr-text); text-decoration: underline; padding: 11px 8px; }
.ebr-cc__btn:focus-visible { outline: 3px solid var(--ebr-text); outline-offset: 2px; }
.ebr-cc__details { border-top: 1px solid var(--ebr-linie); margin: 4px 0 14px; }
.ebr-cc__details[hidden] { display: none; }
.ebr-cc__zeile { display: flex; gap: 12px; align-items: flex-start; padding: 12px 0; border-bottom: 1px solid var(--ebr-linie); cursor: pointer; }
.ebr-cc__zeile input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.ebr-cc__schalter { flex: 0 0 40px; height: 22px; margin-top: 2px; border-radius: 11px; background: #c9c9c9; position: relative; transition: background .15s; }
.ebr-cc__schalter::after { content: ""; position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: #fff; transition: transform .15s; }
.ebr-cc__zeile input:checked + .ebr-cc__schalter { background: var(--ebr-akzent); }
.ebr-cc__zeile input:checked + .ebr-cc__schalter::after { transform: translateX(18px); }
.ebr-cc__zeile input:disabled + .ebr-cc__schalter { opacity: .55; }
.ebr-cc__zeile input:focus-visible + .ebr-cc__schalter { outline: 3px solid var(--ebr-text); outline-offset: 2px; }
.ebr-cc__klein { font-size: 13.5px; color: #555; }

.ebr-cc-oeffnen {
  position: fixed; z-index: 99990; left: 14px; bottom: 14px; width: 42px; height: 42px;
  border-radius: 50%; border: 0; background: #fff; color: var(--ebr-akzent); cursor: pointer;
  box-shadow: 0 2px 10px rgba(0,0,0,.2); display: flex; align-items: center; justify-content: center; padding: 0;
}
.ebr-cc-oeffnen:focus-visible { outline: 3px solid var(--ebr-text); outline-offset: 2px; }

/* ---------- Medien-Platzhalter ---------- */
.ebr-embed { position: relative; width: 100%; aspect-ratio: 16 / 9; border-radius: 6px; overflow: hidden; background: #333 center / cover no-repeat; }
.ebr-embed--geladen { aspect-ratio: auto; background: none; overflow: visible; }
.ebr-embed__hinweis {
  position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 10px; padding: 16px; text-align: center; color: #fff; background: rgba(0,0,0,.45); font-size: 14px; line-height: 1.4;
}
.ebr-embed__play {
  font: inherit; font-weight: 600; font-size: 16px; display: inline-flex; align-items: center; gap: 10px;
  background: var(--ebr-akzent); color: #fff; border: 0; border-radius: 40px; padding: 12px 22px 12px 16px; cursor: pointer;
}
.ebr-embed__play svg { width: 22px; height: 22px; }
.ebr-embed__play:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.ebr-embed__text { max-width: 440px; margin: 0; }
.ebr-embed__text a { color: #fff; text-decoration: underline; }
.ebr-embed__immer { display: inline-flex; gap: 6px; align-items: center; font-size: 13px; cursor: pointer; }
@media (max-width: 480px) {
  .ebr-embed__text { font-size: 12.5px; }
  .ebr-embed__immer { font-size: 12px; }
}

/* ---------- Terminbuchung: Calendly im Dialog ---------- */
.ebr-termin {
  width: min(1000px, calc(100vw - 32px)); height: min(780px, calc(100dvh - 32px)); max-width: none; max-height: none;
  padding: 0; border: 0; border-radius: 8px; background: #fff; color: var(--ebr-text); box-shadow: 0 12px 40px rgba(0,0,0,.25);
}
.ebr-termin[open] { display: flex; flex-direction: column; }
.ebr-termin::backdrop { background: rgba(0,0,0,.55); }
.ebr-termin__kopf { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 12px 12px 20px; border-bottom: 1px solid #e5e5e5; }
.ebr-termin__titel { margin: 0; font-size: 18px; line-height: 1.3; }
.ebr-termin__zu { flex: none; width: 44px; height: 44px; border: 0; border-radius: 50%; background: #f5f5f5; color: var(--ebr-text); font-size: 26px; line-height: 1; cursor: pointer; }
.ebr-termin__zu:hover { background: #e9e9e9; }
.ebr-termin__zu:focus-visible { outline: 3px solid var(--ebr-akzent); outline-offset: 2px; }
.ebr-embed--calendly { flex: 1; aspect-ratio: auto; border-radius: 0; background: #f5f5f5; }
.ebr-embed--calendly .ebr-embed__hinweis { color: var(--ebr-text); background: none; }
.ebr-embed--calendly .ebr-embed__text a { color: inherit; }
.ebr-embed--calendly .ebr-embed__play:focus-visible { outline-color: var(--ebr-text); }
.ebr-embed--calendly.ebr-embed--geladen { background: #fff; overflow: hidden; }
.ebr-embed--calendly.ebr-embed--geladen::before {
  content: "Kalender wird geladen …"; position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: #666; font-size: 15px;
}
.ebr-termin__frame { position: relative; display: block; width: 100%; height: 100%; border: 0; }
@media (max-width: 480px) {
  .ebr-termin { width: 100vw; height: 100dvh; border-radius: 0; }
  .ebr-termin__kopf { padding: 8px 8px 8px 16px; }
  .ebr-termin__titel { font-size: 16px; }
}

/* ---------- Google-Bewertungen ---------- */
.ebr-reviews { margin: 0 0 10px; }
.ebr-reviews__liste {
  display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 4px 2px 14px;
  list-style: none; margin: 0; overscroll-behavior-x: contain;
}
.ebr-review {
  flex: 0 0 min(300px, 85%); scroll-snap-align: start; background: #fff; border: 1px solid var(--ebr-linie);
  border-radius: 8px; padding: 16px 18px; text-align: left; display: flex; flex-direction: column; gap: 8px;
}
.ebr-review__kopf { display: flex; align-items: center; gap: 10px; }
.ebr-review__initial {
  flex: 0 0 38px; height: 38px; border-radius: 50%; background: var(--ebr-akzent); color: #fff;
  display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 16px;
}
.ebr-review__name { font-weight: 700; line-height: 1.25; }
.ebr-review__datum { font-size: 13px; color: #666; }
.ebr-review__sterne { color: #f6bb06; letter-spacing: 2px; font-size: 17px; line-height: 1; }
.ebr-review__text { margin: 0; font-size: 15px; line-height: 1.55; }
.ebr-review__text--kurz { display: -webkit-box; -webkit-line-clamp: 6; -webkit-box-orient: vertical; overflow: hidden; }
.ebr-review__mehr { font: inherit; font-size: 14px; background: none; border: 0; padding: 0; color: var(--ebr-akzent); cursor: pointer; text-align: left; text-decoration: underline; }
.ebr-reviews__fuss { font-size: 14px; color: #555; text-align: center; margin: 4px 0 0; }
.ebr-reviews__fuss a { color: inherit; text-decoration: underline; }

/* ---------- Formular ---------- */
.ebr-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.ebr-form-meldung { margin: 12px 0 0; padding: 12px 14px; border-radius: 6px; font-size: 15px; line-height: 1.45; }
.ebr-form-meldung[hidden] { display: none; }
.ebr-form-meldung--fehler { background: #fdecea; color: #8a1c12; border: 1px solid #f3b8b1; }
.ebr-form-meldung a { color: inherit; text-decoration: underline; }

/* ---------- Selbst gehostetes Video ---------- */
.ebr-video { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; border-radius: 6px; background: #000; }

/* ---------- Footer (tools/footer.py) ---------- */
.ebr-footer { padding: 0 16px; }
.ebr-footer .widget-title { margin: 0 0 18px; }
.ebr-footer__oben { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1.3fr; gap: 32px 40px; align-items: start; }
.ebr-footer__liste, .ebr-footer__orte { list-style: none; margin: 0; padding: 0; }
.ebr-footer__liste li { margin: 0 0 10px; font-size: 16px; }
.ebr-footer__extra { margin: 18px 0 0; font-size: 15px; }
.ebr-footer a { color: inherit; text-decoration: none; }
.ebr-footer a:hover, .ebr-footer a:focus-visible { color: var(--awb-color5, #fb611f); }
.ebr-footer__siegel img { display: block; width: 100%; max-width: 340px; height: auto; margin-left: auto; }
.ebr-footer__gebiet { margin-top: 48px; padding-top: 32px; border-top: 1px solid rgba(0,0,0,.1); }
.ebr-footer__regionen { display: grid; grid-template-columns: 1fr 1fr; gap: 24px 48px; }
.ebr-footer__regionen h5 { margin: 0 0 12px; font-size: 14px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; opacity: .7; }
.ebr-footer__orte { columns: 3; column-gap: 24px; font-size: 14px; }
.ebr-footer__orte li { margin: 0 0 7px; break-inside: avoid; }
@media (max-width: 1000px) {
  .ebr-footer__oben { grid-template-columns: 1fr 1fr; }
  .ebr-footer__siegel img { margin-left: 0; }
  .ebr-footer__regionen { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .ebr-footer__oben { grid-template-columns: 1fr; }
  .ebr-footer__orte { columns: 2; }
}
.fusion-copyright-notice a[data-ebr-consent-open] { margin-left: 20px; }
.fusion-copyright-notice > div > div:first-child { padding-left: 44px; }
.ebr-footer__cta { margin: 22px 0 0; }
.ebr-footer .ebr-footer__cta a:not(:hover):not(:focus) { color: #fff; }

/* ---------- Kopfzeile: Telefon, E-Mail, „Jetzt anfragen“ (Desktop-Menü) ---------- */
#wrapper .fusion-header .fusion-main-menu li a .fusion-megamenu-icon {
  display: flex; align-items: center; justify-content: center; width: 42px; height: 42px; margin: 0;
  border-radius: 50%; background: #fff1ea; transition: background-color .2s, transform .2s;
}
#wrapper .fusion-header .fusion-main-menu li a .fusion-megamenu-icon i.fa-phone-alt::before,
#wrapper .fusion-header .fusion-main-menu li a .fusion-megamenu-icon i.fa-envelope::before {
  content: "" !important; display: block; width: 20px !important; height: 20px !important;
  background: var(--awb-color5, #fb611f) !important; background-image: none !important;
  -webkit-mask: var(--ebr-icon) center / contain no-repeat; mask: var(--ebr-icon) center / contain no-repeat;
  transition: background-color .2s;
}
#wrapper .fusion-header .fusion-main-menu li a .fusion-megamenu-icon i.fa-phone-alt::before {
  --ebr-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z'/%3E%3C/svg%3E");
}
#wrapper .fusion-header .fusion-main-menu li a .fusion-megamenu-icon i.fa-envelope::before {
  --ebr-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4-8 5-8-5V6l8 5 8-5v2z'/%3E%3C/svg%3E");
}
#wrapper .fusion-header .fusion-main-menu li a:hover .fusion-megamenu-icon,
#wrapper .fusion-header .fusion-main-menu li a:focus-visible .fusion-megamenu-icon { background: var(--awb-color5, #fb611f); transform: translateY(-1px); }
#wrapper .fusion-header .fusion-main-menu li a:hover .fusion-megamenu-icon i::before,
#wrapper .fusion-header .fusion-main-menu li a:focus-visible .fusion-megamenu-icon i::before { background: #fff !important; }
#wrapper .fusion-header .fusion-main-menu li.flyout-contact > a {
  align-self: center; height: 44px !important; padding: 0 24px !important; border-radius: 999px;
  background: var(--awb-color5, #fb611f); color: #fff !important; font-weight: 600;
  box-shadow: 0 4px 14px rgba(251, 97, 31, .28); transition: background-color .2s, transform .2s, box-shadow .2s;
}
#wrapper .fusion-header .fusion-main-menu li.flyout-contact > a .menu-text { color: #fff !important; }
#wrapper .fusion-header .fusion-main-menu li.flyout-contact > a:hover,
#wrapper .fusion-header .fusion-main-menu li.flyout-contact > a:focus-visible {
  background: #e4520f; transform: translateY(-1px); box-shadow: 0 6px 18px rgba(251, 97, 31, .35);
}
#wrapper .fusion-header .fusion-main-menu li.flyout-contact { align-self: center; margin-left: 8px; }
#wrapper .fusion-header .fusion-main-menu li.flyout-contact > a { line-height: 44px; }

/* ---------- Plattform-Übersicht Bewertungen (tools/bewertungen.py) ---------- */
.ebr-chips { list-style: none; margin: 0 0 16px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.ebr-chips li { margin: 0; }
.ebr-chip { display: flex; flex-direction: column; gap: 2px; padding: 8px 14px; border: 1px solid rgba(0,0,0,.1); border-radius: 10px; background: #fff; color: #222 !important; text-decoration: none !important; font-size: 13px; line-height: 1.35; transition: border-color .2s, box-shadow .2s; }
.ebr-chip:hover, .ebr-chip:focus-visible { border-color: var(--awb-color5, #fb611f); box-shadow: 0 2px 10px rgba(0,0,0,.06); }
.ebr-chip__quelle { font-weight: 600; font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: #666; }
.ebr-chip__wert b { font-size: 15px; color: #111; }
.ebr-chip__sterne { color: #f5a623; letter-spacing: 1px; }
.ebr-chips--klein { margin: 0; }
.ebr-chips--klein .ebr-chip { padding: 6px 10px; font-size: 12px; }
.ebr-badges { display: block; }
.ebr-chips--klein { flex-wrap: nowrap; gap: 6px; }
.ebr-chips--klein .ebr-chip { flex-direction: row; align-items: baseline; gap: 6px; padding: 5px 10px; white-space: nowrap; }
.ebr-chips--klein .ebr-chip__quelle { font-size: 11px; }
.ebr-chips--klein .ebr-chip__wert b { font-size: 14px; }
@media (max-width: 400px) { .ebr-chips--klein { flex-wrap: wrap; } }
.fusion-imageframe:has(.ebr-badges), .fusion-image-element:has(.ebr-badges) { max-width: none !important; width: auto !important; overflow: visible !important; }
.ebr-reviews__fuss { font-size: 12px; line-height: 1.5; }

/* ---------- Plattform-Karten mit Logo (ersetzt .ebr-chips) ---------- */
.ebr-badges__liste { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.ebr-badges__liste li { margin: 0; }
.ebr-badge { display: grid; grid-template-columns: auto auto; grid-template-areas: "logo logo" "wert sterne" "anzahl anzahl"; align-items: center; column-gap: 8px; row-gap: 2px; min-width: 118px; padding: 9px 12px 8px; border-radius: 10px; background: #fff; box-shadow: 0 1px 2px rgba(0,0,0,.06), 0 4px 14px rgba(0,0,0,.07); color: #222 !important; text-decoration: none !important; line-height: 1.2; transition: box-shadow .2s, transform .2s; }
a.ebr-badge:hover, a.ebr-badge:focus-visible { transform: translateY(-1px); box-shadow: 0 2px 4px rgba(0,0,0,.08), 0 8px 20px rgba(0,0,0,.1); }
.ebr-badge__logo { grid-area: logo; display: flex; align-items: center; gap: 6px; height: 18px; margin-bottom: 3px; }
.ebr-badge__name { font-size: 13px; font-weight: 600; color: #444; }
.ebr-badge__wert { grid-area: wert; }
.ebr-badge__wert b { font-size: 22px; font-weight: 700; color: #111; letter-spacing: -.01em; }
.ebr-badge__wert small { font-size: 12px; color: #666; margin-left: 1px; }
.ebr-badge__sterne { grid-area: sterne; color: #f5a623; font-size: 13px; letter-spacing: 1px; justify-self: start; }
.ebr-badge__anzahl { grid-area: anzahl; font-size: 12px; color: #666; }
.ebr-logo-g, .ebr-logo-tp { width: 18px; height: 18px; flex: none; }
.ebr-logo-tl { height: 15px; width: auto; display: block; }
.ebr-review { position: relative; }
.ebr-review__quelle { position: absolute; top: 14px; right: 14px; display: flex; }
.ebr-review__quelle .ebr-logo-g, .ebr-review__quelle .ebr-logo-tp { width: 16px; height: 16px; }
.ebr-review__quelle .ebr-logo-tl { height: 11px; }
@media (max-width: 400px) { .ebr-badge { min-width: 0; padding: 8px 10px; } .ebr-badge__wert b { font-size: 19px; } }

/* ---------- Ortsseiten-Block, FAQ, Preis, Referenzkarte (tools/ortsseiten.py) ---------- */
.ebr-lokal { padding: 56px 16px; background: #f5f5f5; }
.ebr-lokal__innen { max-width: 1200px; margin: 0 auto; }
.ebr-lokal__titel { margin: 0 0 24px; font-size: clamp(24px, 3vw, 34px); line-height: 1.25; text-wrap: balance; }
.ebr-lokal__raster { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 32px; align-items: start; }
.ebr-lokal__seite { display: grid; gap: 16px; }
.ebr-lokal__link { font-weight: 600; color: var(--awb-color5, #fb611f) !important; }
.ebr-faq__titel { margin: 0 0 12px; font-size: 20px; }
.ebr-faq__item { background: #fff; border: 1px solid #e8e2dd; border-radius: 10px; margin: 0 0 8px; }
.ebr-faq__item summary { cursor: pointer; padding: 14px 44px 14px 16px; font-weight: 600; list-style: none; position: relative; }
.ebr-faq__item summary::-webkit-details-marker { display: none; }
.ebr-faq__item summary::after { content: "+"; position: absolute; right: 16px; top: 50%; transform: translateY(-50%); font-size: 22px; color: var(--awb-color5, #fb611f); }
.ebr-faq__item[open] summary::after { content: "–"; }
.ebr-faq__item summary:focus-visible { outline: 2px solid var(--awb-color5, #fb611f); outline-offset: 2px; border-radius: 10px; }
.ebr-faq__a { padding: 0 16px 14px; }
.ebr-faq__a p { margin: 0; }
.ebr-preis { display: grid; gap: 4px; padding: 18px 20px; border-radius: 12px; background: #fff; border: 2px solid var(--awb-color5, #fb611f); }
.ebr-preis__label { font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #8a4a2c; }
.ebr-preis__wert { font-size: 32px; font-weight: 700; line-height: 1.1; color: #111; }
.ebr-preis__text { font-size: 14px; color: #555; }
.ebr-ref-karte { display: grid; grid-template-columns: 120px 1fr; gap: 14px; align-items: center; padding: 10px; border-radius: 12px; background: #fff; border: 1px solid #e8e2dd; color: #222 !important; text-decoration: none !important; }
.ebr-ref-karte:hover, .ebr-ref-karte:focus-visible { border-color: var(--awb-color5, #fb611f); }
.ebr-ref-karte img { width: 120px; height: 90px; object-fit: cover; border-radius: 8px; }
.ebr-ref-karte__text { display: grid; gap: 2px; font-size: 14px; min-width: 0; }
.ebr-ref-karte__ort { font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: #777; }
.fusion-text .ebr-preis, .post-content > .ebr-preis { margin: 16px 0 24px; max-width: 520px; }
@media (max-width: 900px) { .ebr-lokal__raster { grid-template-columns: 1fr; } }

/* ---------- Seite /erfahrungen/ (tools/erfahrungen.py) ---------- */
.ebr-erf { max-width: 1200px; margin: 0 auto; padding: 48px 16px 72px; display: grid; gap: 56px; }
.ebr-erf h1 { font-size: clamp(30px, 4.5vw, 48px); line-height: 1.15; margin: 4px 0 14px; text-wrap: balance; }
.ebr-erf h2 { font-size: clamp(24px, 3vw, 32px); margin: 0 0 18px; text-wrap: balance; }
.ebr-erf__eyebrow { margin: 0; font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #b4501f; }
.ebr-erf__lead { max-width: 68ch; font-size: 18px; margin: 0 0 22px; }
.ebr-erf__kopf .ebr-badges { margin-bottom: 22px; }
.ebr-erf__cta { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin: 0; }
.ebr-erf__cta .fusion-button { color: #fff !important; }
.ebr-erf__tel { font-weight: 600; }
.ebr-erf__filter { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 18px; }
.ebr-erf__filter button { padding: 8px 14px; border-radius: 999px; border: 1px solid #d9d2cc; background: #fff; color: #333; font: inherit; font-size: 14px; cursor: pointer; }
.ebr-erf__filter button.ist-aktiv { background: #222; border-color: #222; color: #fff; }
.ebr-erf__filter button:focus-visible { outline: 2px solid var(--awb-color5, #fb611f); outline-offset: 2px; }
.ebr-erf__liste { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; align-items: start; }
.ebr-erf__liste .ebr-review { width: auto; min-width: 0; max-width: none; margin: 0; }
.ebr-erf__herkunft p { max-width: 75ch; }
.ebr-erf__hinweis { color: #666; font-size: 14px; }
.ebr-erf-refs { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 18px; }
.ebr-erf-ref { display: grid; gap: 10px; }
.ebr-erf-ref img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 10px; }
.ebr-erf-ref h3 { margin: 2px 0 4px; font-size: 19px; }
.ebr-erf-ref p { margin: 0; }
.ebr-yt-liste { list-style: none; margin: 0 0 16px; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }
.ebr-yt { display: grid; gap: 6px; }
.ebr-yt__knopf { position: relative; display: grid; align-content: end; gap: 6px; aspect-ratio: 16 / 9; width: 100%; padding: 16px; border: 0; border-radius: 10px; text-align: left; cursor: pointer; color: #fff; font: inherit; background: linear-gradient(160deg, #2b2724, #121110); }
.ebr-yt__knopf:hover, .ebr-yt__knopf:focus-visible { outline: 2px solid var(--awb-color5, #fb611f); outline-offset: 2px; }
.ebr-yt__play { position: absolute; top: 16px; left: 16px; width: 48px; height: 34px; border-radius: 9px; background: var(--awb-color5, #fb611f); }
.ebr-yt__play::after { content: ""; position: absolute; left: 19px; top: 10px; border-style: solid; border-width: 7px 0 7px 12px; border-color: transparent transparent transparent #fff; }
.ebr-yt__titel { font-weight: 600; font-size: 16px; line-height: 1.3; }
.ebr-yt__hinweis { font-size: 12px; opacity: .75; }
.ebr-yt__frame { width: 100%; aspect-ratio: 16 / 9; border: 0; border-radius: 10px; }
.ebr-yt__link { font-size: 13px; }
.ebr-erf__schluss { padding: 32px; border-radius: 14px; background: #f5f5f5; }
.ebr-erf__schluss p { max-width: 65ch; }
.ebr-yt__knopf { align-content: space-between !important; height: auto !important; min-height: 180px; line-height: 1.35 !important; white-space: normal !important; }
.ebr-yt__play { position: relative !important; top: auto !important; left: auto !important; display: block; }
.ebr-erf-ref h3 { margin: 4px 0 6px !important; }
.ebr-yt { min-width: 0; }
.ebr-yt__knopf { box-sizing: border-box !important; max-width: 100% !important; min-width: 0 !important; margin: 0 !important; }
@media (max-width: 480px) { .ebr-ref-karte { grid-template-columns: 1fr; } .ebr-ref-karte img { width: 100%; height: auto; aspect-ratio: 4 / 3; } }

/* ---------- Vorteile-Karten (tools/vorteile.py): gleiche Höhe, Buttons auf einer Linie ---------- */
.skew-column-3:has(.fusion-button) > .fusion-column-wrapper { display: flex !important; flex-direction: column !important; height: 100%; }
.skew-column-3:has(.fusion-button) .fusion-image-element { height: 64px; display: flex; align-items: flex-end; margin-bottom: 18px !important; }
.skew-column-3:has(.fusion-button) .fusion-image-element img { height: 56px !important; width: auto !important; max-width: none; }
.skew-column-3:has(.fusion-button) .fusion-title { margin: 0 0 12px !important; }
.skew-column-3:has(.fusion-button) .fusion-text { flex: 1 1 auto; margin-bottom: 0 !important; }
.skew-column-3:has(.fusion-button) .fusion-text p { margin: 0; }
.skew-column-3:has(.fusion-button) .fusion-separator { display: none !important; }
.skew-column-3:has(.fusion-button) .fusion-text + .fusion-separator + div { margin-top: 24px; text-align: left !important; }
@media (max-width: 800px) {
  .skew-column-3:has(.fusion-button) .fusion-image-element { height: 52px; margin-bottom: 12px !important; }
  .skew-column-3:has(.fusion-button) .fusion-image-element img { height: 46px !important; }
}

/* Prüfhinweis unter den Bewertungskarten: dezent */
.ebr-reviews .ebr-reviews__fuss, .fusion-text .ebr-reviews__fuss { font-size: 12px !important; line-height: 1.45 !important; color: #8a8580 !important; text-align: left !important; margin: 10px 0 0 !important; max-width: 60ch; }
.ebr-reviews .ebr-reviews__fuss a { color: inherit !important; text-decoration: underline; }
@media (max-width: 600px) { .ebr-reviews .ebr-reviews__fuss, .fusion-text .ebr-reviews__fuss { font-size: 11px !important; } }

/* ---------- Referenzen: Übersicht und Einzelseiten (tools/referenzen.py) ---------- */
.ebr-ref { max-width: 1200px; margin: 0 auto; padding: 40px 16px 72px; display: grid; gap: 48px; }
.ebr-ref h1 { font-size: clamp(30px, 4.5vw, 48px); line-height: 1.15; margin: 4px 0 12px; text-wrap: balance; }
.ebr-ref h2 { font-size: clamp(22px, 2.6vw, 28px); margin: 0 0 14px; text-wrap: balance; }
.ebr-ref__kopf { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 32px; align-items: center; }
.ebr-ref__titelbild { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 14px; }
.ebr-erf__eyebrow a { color: inherit !important; }
.ebr-ref__fakten { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 1px; margin: 0; background: #e8e2dd; border: 1px solid #e8e2dd; border-radius: 12px; overflow: hidden; }
.ebr-ref__fakten .fakt { background: #fff; padding: 14px 16px; min-width: 0; }
.ebr-ref__fakten dt { font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: #777; }
.ebr-ref__fakten dd { margin: 2px 0 0; font-weight: 600; overflow-wrap: break-word; }
.ebr-ref__spalten { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; }
.ebr-ref__spalten p { max-width: 65ch; }
.ebr-ref__liste { margin: 0; padding-left: 20px; display: grid; gap: 6px; }
.ebr-ref__zeitleiste { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; border-left: 2px solid var(--awb-color5, #fb611f); }
.ebr-ref__zeitleiste li { display: grid; gap: 2px; padding: 0 0 18px 20px; position: relative; }
.ebr-ref__zeitleiste li::before { content: ""; position: absolute; left: -7px; top: 6px; width: 12px; height: 12px; border-radius: 50%; background: #fff; border: 2px solid var(--awb-color5, #fb611f); }
.ebr-ref-zeit { font-size: 13px; font-weight: 700; color: #b4501f; }
.ebr-ref__ergebnis { padding: 28px; border-radius: 14px; background: #f5f5f5; display: grid; gap: 16px; }
.ebr-ref-balken { display: grid; grid-template-columns: minmax(150px, 220px) minmax(0, 1fr); gap: 6px 16px; align-items: center; }
.ebr-ref-balken__name { font-weight: 600; }
.ebr-ref-balken__spur { display: grid; gap: 5px; }
.ebr-ref-balken__zeile { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; font-size: 14px; font-variant-numeric: tabular-nums; }
.ebr-ref-balken__zeile i { display: block; height: 12px; border-radius: 6px; background: #d9d2cc; width: calc(min(45vw, 300px) * var(--r)); flex: none; }
.ebr-ref-balken__zeile.ist-neu i { background: var(--awb-color5, #fb611f); }
.ebr-ref-balken__zeile b { color: #2f8f4e; }
/* Galerie: 1 / 2 / 4 Spalten; bei 6 Bildern 3 Spalten (Klasse aus tools/referenzen.py), damit jede Reihe voll ist */
.ebr-ref__galerie { display: grid; grid-template-columns: 1fr; gap: 14px; }
@media (min-width: 560px) { .ebr-ref__galerie { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .ebr-ref__galerie { grid-template-columns: repeat(4, minmax(0, 1fr)); } .ebr-ref__galerie--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.ebr-ref__galerie figure { margin: 0; min-width: 0; }
.ebr-ref__galerie img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 10px; }
.ebr-ref__galerie figcaption { font-size: 13px; color: #666; margin-top: 5px; }
.ebr-ref-cta { padding: 32px; border-radius: 14px; background: #f5f5f5; }
.ebr-ref-cta p { max-width: 65ch; }
.ebr-ref-cta .fusion-button { color: #fff !important; }
.ebr-ref__zurueck { margin: 0; font-weight: 600; }
/* Referenz-Kacheln: 1 / 2 / 4 Spalten, passend zu vier Referenzen. Bei anderer Anzahl Spalten anpassen, damit keine Reihe halb leer bleibt. */
.ebr-ref-kacheln { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr; gap: 20px; }
@media (min-width: 640px) { .ebr-ref-kacheln { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .ebr-ref-kacheln { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.ebr-ref-kachel { display: grid; gap: 6px; color: #222 !important; text-decoration: none !important; }
.ebr-ref-kachel img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 12px; transition: transform .2s; }
.ebr-ref-kachel:hover img, .ebr-ref-kachel:focus-visible img { transform: translateY(-2px); }
.ebr-ref-kachel b { font-size: 19px; line-height: 1.3; }
.ebr-erf-ref h3 a { color: inherit !important; }
@media (max-width: 800px) {
  .ebr-ref__kopf, .ebr-ref__spalten { grid-template-columns: 1fr; }
  .ebr-ref__titelbild { order: -1; }
  .ebr-ref-balken { grid-template-columns: 1fr; }
  .ebr-ref__ergebnis, .ebr-ref-cta { padding: 20px; }
}
@media (max-width: 600px) {
  .ebr-ref__fakten { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .ebr-ref__fakten .fakt { padding: 10px 12px; }
  .ebr-ref__fakten dd { font-size: 14px; }
}

/* ---------- Block „Das Wichtigste“ auf Unterseiten (tools/unterseiten.py) ---------- */
.ebr-kompakt { padding: 56px 16px; background: #f5f5f5; }
.ebr-kompakt__innen { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px; }
.ebr-kompakt__titel { margin: 0; font-size: clamp(24px, 3vw, 34px); line-height: 1.25; text-wrap: balance; }
.ebr-kompakt__raster { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 32px; align-items: start; }
.ebr-kompakt__text p { margin: 0 0 14px; max-width: 70ch; }
.ebr-kompakt__seite { display: grid; gap: 16px; }
.ebr-kompakt__videos h3 { margin: 0 0 14px; font-size: 20px; }
.ebr-kompakt__videos .ebr-yt-liste { margin: 0; }
.ebr-kompakt__links { margin: 0; font-size: 15px; }
.ebr-kompakt__links a { font-weight: 600; }
.ebr-tabelle { overflow-x: auto; margin: 8px 0 0; }
.ebr-tabelle table { width: 100%; border-collapse: collapse; font-size: 14px; background: #fff; border-radius: 10px; overflow: hidden; }
.ebr-tabelle caption { text-align: left; font-size: 13px; color: #777; padding: 0 0 6px; }
.ebr-tabelle th, .ebr-tabelle td { padding: 10px 12px; border-bottom: 1px solid #ece6e1; text-align: left; vertical-align: top; }
.ebr-tabelle th { font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: #666; background: #faf8f6; }
@media (max-width: 900px) { .ebr-kompakt__raster { grid-template-columns: 1fr; } }
@media (max-width: 600px) { .ebr-tabelle table { min-width: 520px; } }
@media (max-width: 900px) { .ebr-kompakt__raster, .ebr-lokal__raster { grid-template-columns: minmax(0, 1fr) !important; } }
.ebr-kompakt__text, .ebr-kompakt__seite { min-width: 0; }
@media (max-width: 800px) {
  .fusion-title h1.fusion-title-heading { font-size: clamp(30px, 8.5vw, 44px) !important; line-height: 1.18 !important; overflow-wrap: break-word; hyphens: auto; }
}
@media (max-width: 600px) {
  .ebr-tabelle table { min-width: 0 !important; background: transparent; }
  .ebr-tabelle thead { display: none; }
  .ebr-tabelle tr { display: block; background: #fff; border-radius: 10px; margin: 0 0 10px; padding: 10px 12px; }
  .ebr-tabelle td { display: block; border: 0; padding: 3px 0; }
  .ebr-tabelle td::before { content: attr(data-label); display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .04em; color: #888; }
}
@media (max-width: 600px) { .ebr-tabelle table, .ebr-tabelle tbody, .ebr-tabelle tr { display: block; width: 100%; box-sizing: border-box; } }
.ebr-review[hidden], .ebr-erf__liste [hidden] { display: none !important; }
/* Referenz-Kacheln: einheitliche Abstände, Avada-Überschriftenstile neutralisieren */
.ebr-ref-kacheln { align-items: start; }
.ebr-ref-kacheln li { margin: 0; }
.ebr-ref-kachel { gap: 0 !important; }
.ebr-ref-kachel img { margin: 0 0 12px; }
.ebr-ref-kachel .ebr-ref-karte__ort { margin: 0 0 4px; line-height: 1.3; }
.ebr-ref-kachel b { display: block; margin: 0 0 6px; font-size: 18px !important; line-height: 1.3 !important; font-weight: 600; }
.ebr-ref-kachel span:last-child { font-size: 15px; line-height: 1.5; color: #555; }

/* Mobil: „Schritt für Schritt“ kompakt (tools/mobil.py) */
@media (max-width: 800px) {
  .ebr-schritte .fusion-text, .ebr-schritte .fusion-button, .ebr-schritte .fusion-separator { display: none !important; }
  .ebr-schritte .fusion-title:not(:first-of-type) { margin-bottom: 0 !important; }
  .ebr-schritte .fusion-layout-column { margin-bottom: 14px !important; }
}
.ebr-logo-yt { width: 22px; height: 16px; flex: none; }
.ebr-badge--yt .ebr-badge__wert b { font-size: 20px; }
@media (max-width: 800px) {
  .ebr-schritte .fusion-column-wrapper { padding-top: 18px !important; padding-bottom: 18px !important; min-height: 0 !important; }
  .ebr-schritte .fusion-layout-column { min-height: 0 !important; }
}
/* Terminbuchung neben „Jetzt anfragen“ */
.ebr-btn-termin { display: inline-flex; align-items: center; min-height: 44px; padding: 0 22px; border-radius: 999px; border: 2px solid var(--awb-color5, #fb611f); color: var(--awb-color5, #fb611f) !important; font-weight: 600; text-decoration: none !important; background: #fff; }
.ebr-btn-termin:hover, .ebr-btn-termin:focus-visible { background: #fff3ec; }
/* Handlungsknöpfe direkt unter der H1 von Ads-Zielseiten (tools/unterseiten.py, HERO_CTA) */
.ebr-hero-cta { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin: 24px 0 0; }
.ebr-hero-cta__anfrage { display: inline-flex; align-items: center; min-height: 44px; padding: 0 22px; border-radius: 999px; border: 2px solid #fff; color: #fff !important; font-weight: 600; text-decoration: none !important; }
.ebr-hero-cta__anfrage:hover, .ebr-hero-cta__anfrage:focus-visible { background: rgba(255,255,255,.15); }
.ebr-hero-cta a { text-align: center; line-height: 1.3; padding-top: 8px; padding-bottom: 8px; }
@media (max-width: 600px) { .ebr-hero-cta a { width: 100%; justify-content: center; } }
.ebr-ref-stimmen { display: grid; gap: 16px; min-width: 0; }
.ebr-ref-stimmen h2 { margin: 0; }
.ebr-reviews--ref { min-width: 0; }
@media (max-width: 600px) { .ebr-erf__cta .ebr-btn-termin, .ebr-erf__cta .fusion-button { width: 100%; justify-content: center; text-align: center; } }
/* Avada setzt auf Mobil sehr große Zeilenhöhen für h1–h3: in eigenen Bausteinen normalisieren */
.ebr-ref h1, .ebr-ref h2, .ebr-ref h3, .ebr-erf h1, .ebr-erf h2, .ebr-erf h3, .ebr-ref-cta h2, .ebr-ref-stimmen h2,
.ebr-kompakt h2, .ebr-kompakt h3, .ebr-lokal h2, .ebr-lokal h3, .ebr-faq__titel { line-height: 1.25 !important; }
/* Plattform-Kacheln: Trustlocal-Logo als SVG, auf Mobil gleichmäßiges 2×2-Raster */
.ebr-logo-tl { height: 15px !important; width: auto !important; }
.ebr-review__quelle .ebr-logo-tl { height: 10px !important; }
@media (max-width: 600px) {
  .ebr-badges__liste { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .ebr-badges__liste li, .ebr-badge { width: 100%; min-width: 0; box-sizing: border-box; }
  .ebr-badge__logo { height: 18px; }
  .ebr-logo-tl { height: 13px !important; }
}
.ebr-badges { width: 100%; } .fusion-imageframe:has(.ebr-badges) { display: block !important; }
/* „Schritt für Schritt“: am Desktop voller Text, am Handy ein kurzer Satz je Schritt */
.ebr-schritt-kurz { display: none; }
@media (max-width: 800px) {
  .ebr-schritte .ebr-schritt-kurz { display: block; margin: 6px 0 0; font-size: 15px; line-height: 1.5; color: #444; }
}

/* ---------- Kontaktseite (tools/kontakt.py) ---------- */
.ebr-person { margin: 4px 0 8px; font-weight: 600; color: #b4501f; font-size: 15px; }
.ebr-kontakt-info { padding: 56px 16px; background: #f5f5f5; }
.ebr-kontakt-info__innen { max-width: 1200px; margin: 0 auto; display: grid; gap: 28px; }
.ebr-kontakt-info h2 { margin: 0; font-size: clamp(24px, 3vw, 34px); line-height: 1.25 !important; }
.ebr-kontakt-info h3 { margin: 0 0 14px; font-size: 20px; line-height: 1.3 !important; }
.ebr-wege { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.ebr-wege li { margin: 0; }
.ebr-weg { display: grid; gap: 4px; height: 100%; box-sizing: border-box; padding: 16px 18px; border-radius: 12px; background: #fff; border: 1px solid #ebe5e0; color: #222 !important; text-decoration: none !important; transition: border-color .2s, transform .2s; }
.ebr-weg:hover, .ebr-weg:focus-visible { border-color: var(--awb-color5, #fb611f); transform: translateY(-1px); }
.ebr-weg__label { font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: #b4501f; }
.ebr-weg__wert { font-weight: 600; overflow-wrap: anywhere; }
.ebr-kontakt-info__raster { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px; align-items: start; }
.ebr-ablauf { margin: 0; padding: 0; list-style: none; counter-reset: s; display: grid; gap: 14px; }
.ebr-ablauf li { counter-increment: s; display: grid; grid-template-columns: 36px 1fr; column-gap: 12px; }
.ebr-ablauf li::before { content: counter(s); grid-row: span 2; width: 32px; height: 32px; border-radius: 50%; border: 2px solid var(--awb-color5, #fb611f); color: var(--awb-color5, #fb611f); display: grid; place-items: center; font-weight: 700; }
.ebr-ablauf b { font-weight: 700; }
.ebr-ablauf span { color: #555; font-size: 15px; }
.ebr-kontakt-info__stimmen { margin: 0; }
@media (max-width: 900px) { .ebr-wege { grid-template-columns: repeat(2, minmax(0, 1fr)); } .ebr-kontakt-info__raster { grid-template-columns: 1fr; } }
@media (max-width: 480px) { .ebr-wege { grid-template-columns: 1fr; } }

/* ---------- Ratgeber-Blog (tools/blog.py): Video direkt unter der Einleitung ---------- */
.ebr-blog { max-width: 820px; margin: 0 auto; padding: 40px 16px 72px; display: grid; gap: 32px; }
.ebr-blog h1 { font-size: clamp(30px, 4.5vw, 44px); line-height: 1.15 !important; margin: 4px 0 12px; text-wrap: balance; }
.ebr-blog h2 { font-size: clamp(22px, 2.6vw, 28px); line-height: 1.25 !important; margin: 0 0 12px; text-wrap: balance; }
.ebr-blog__kopf .ebr-erf__lead { margin: 0; }
.ebr-blog__video { margin: 0; display: grid; gap: 8px; }
.ebr-blog__video figcaption { font-size: 13px; color: #6b6460; }
.ebr-yt__knopf--gross { min-height: 0 !important; aspect-ratio: 16 / 9; padding: 24px !important; }
.ebr-yt__knopf--gross .ebr-yt__play { width: 68px; height: 48px; border-radius: 12px; }
.ebr-yt__knopf--gross .ebr-yt__play::after { left: 27px; top: 14px; border-width: 10px 0 10px 16px; }
.ebr-yt__knopf--gross .ebr-yt__titel { font-size: clamp(18px, 2.4vw, 24px); }
.ebr-blog__kurz { background: #f5f5f5; border-left: 4px solid var(--awb-color5, #fb611f); border-radius: 10px; padding: 20px 22px; }
.ebr-blog__kurz h2 { font-size: 20px; margin-bottom: 8px; }
.ebr-blog__kurz ul, .ebr-blog__text ul { margin: 0; padding-left: 20px; display: grid; gap: 6px; }
.ebr-blog__inhalt p { margin: 0 0 6px; font-weight: 700; }
.ebr-blog__inhalt ol { margin: 0; padding-left: 20px; display: grid; gap: 4px; }
.ebr-blog__text { display: grid; gap: 28px; }
.ebr-blog__text section { scroll-margin-top: 120px; }
.ebr-blog__text p { margin: 0 0 12px; }
.ebr-blog__autor { border-top: 1px solid #e8e2dd; border-bottom: 1px solid #e8e2dd; padding: 16px 0; font-size: 15px; }
.ebr-blog__autor p { margin: 0; }
.ebr-blog__quellen summary { cursor: pointer; font-weight: 600; }
.ebr-blog__quellen ul { font-size: 14px; padding-left: 20px; }
.ebr-blog-karten { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 20px; }
.ebr-blog-karten li { display: flex; }
.ebr-blog-karte { display: flex; flex-direction: column; gap: 8px; width: 100%; padding: 18px; border: 1px solid #e8e2dd; border-radius: 12px; background: #fff; color: inherit !important; text-decoration: none !important; }
.ebr-blog-karte:hover, .ebr-blog-karte:focus-visible { border-color: var(--awb-color5, #fb611f); }
.ebr-blog-karte b { font-size: 19px; line-height: 1.3; }
.ebr-blog-karte__video { position: relative; display: block; aspect-ratio: 16 / 9; border-radius: 8px; background: linear-gradient(160deg, #2b2724, #121110); }
.ebr-blog-karte__video .ebr-yt__play { position: absolute !important; left: 50% !important; top: 50% !important; transform: translate(-50%, -50%); }

/* Video-Band direkt unter dem Kopfbereich der Ratgeber-Seiten (tools/unterseiten.py) */
.ebr-video-oben { padding: 40px 16px; background: #f5f5f5; }
.ebr-video-oben__innen { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 32px; align-items: center; }
.ebr-video-oben h2 { font-size: clamp(22px, 2.6vw, 30px); line-height: 1.25 !important; margin: 6px 0 10px; text-wrap: balance; }
.ebr-video-oben__text p { margin: 0 0 10px; }
.ebr-video-oben .ebr-yt-liste { grid-template-columns: 1fr; margin: 0; }
.ebr-video-oben .ebr-yt__knopf { aspect-ratio: 16 / 9; min-height: 0 !important; }
@media (max-width: 800px) { .ebr-video-oben__innen { grid-template-columns: minmax(0, 1fr); gap: 16px; } .ebr-video-oben { padding: 28px 16px; } }
@media (max-width: 600px) { .ebr-yt__knopf--gross, .ebr-video-oben .ebr-yt__knopf { aspect-ratio: auto; min-height: 210px !important; padding: 18px !important; } }
/* Am Handy hat der Seiteninhalt Innenabstand: eigene Bänder wie die Avada-Container auf volle Breite ziehen */
.post-content > .ebr-video-oben, .post-content > .ebr-kompakt, .post-content > .ebr-lokal, .post-content > .ebr-kontakt-info { margin-left: -30px; margin-right: -30px; }

/* ---------- Förderkacheln auf /referenzen/ (tools/referenzen.py, daten/foerderprojekte.json) ---------- */
.ebr-foerder h2 { font-size: clamp(24px, 3vw, 34px); line-height: 1.2 !important; margin: 4px 0 10px; text-wrap: balance; }
.ebr-foerder-kacheln { list-style: none; margin: 8px 0 12px; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 16px; }
.ebr-foerder-karte { display: flex; flex-direction: column; gap: 4px; padding: 18px; border: 1px solid #e8e2dd; border-top: 4px solid var(--awb-color5, #fb611f); border-radius: 12px; background: #fff; min-width: 0; }
.ebr-foerder-karte[data-kategorie="Gebäudehülle"] { border-top-color: #4f8a3c; }
.ebr-foerder-karte[data-kategorie="Effizienzhaus"] { border-top-color: #2f6f9f; }
.ebr-foerder-karte[data-kategorie="Gewerbe"] { border-top-color: #5b5552; }
.ebr-foerder-karte__kat { font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #6b6460; }
.ebr-foerder-karte__betrag { font-size: 28px; line-height: 1.15; font-variant-numeric: tabular-nums; }
.ebr-foerder-karte__status { font-size: 13px; color: #6b6460; margin-bottom: 6px; }
.ebr-foerder-karte__was { font-weight: 600; line-height: 1.35; }
.ebr-foerder-karte__wo { font-size: 14px; color: #6b6460; margin-top: auto; padding-top: 6px; }
@media (max-width: 600px) { .ebr-foerder-kacheln { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; } .ebr-foerder-karte { padding: 14px; } .ebr-foerder-karte__betrag { font-size: 21px; } .ebr-foerder-karte__was { font-size: 14px; } }
.ebr-foerder-karte, .ebr-foerder-karte * { line-height: 1.35 !important; }
.ebr-foerder-karte__betrag { white-space: nowrap; line-height: 1.15 !important; }
.ebr-foerder-karte__was { hyphens: auto; }
.ebr-foerder-karte__art { font-size: 13px; color: #6b6460; hyphens: auto; }
@media (max-width: 600px) { .ebr-foerder-karte { padding: 12px; gap: 2px; } .ebr-foerder-karte__betrag { font-size: 19px; } .ebr-foerder-karte__was { font-size: 14px; } .ebr-foerder-karte__wo, .ebr-foerder-karte__status { font-size: 12px; } .ebr-foerder-karte__kat { font-size: 11px; } }
.ebr-foerder-karte { overflow: hidden; }
.ebr-foerder-karte__bild { display: block; width: calc(100% + 36px); max-width: none; margin: -18px -18px 12px; aspect-ratio: 4 / 3; height: auto; object-fit: cover; }
@media (max-width: 600px) { .ebr-foerder-karte__bild { width: calc(100% + 24px); margin: -12px -12px 8px; } }
.ebr-foerder-karte__bild--leer { display: flex; align-items: center; justify-content: center; color: #fb611f; background: linear-gradient(160deg, #2b2724, #121110); }

/* Sprungziel „Zum Inhalt springen“ auf eigenen Seiten: aus dem Fluss nehmen (Avada: main ist Flex, #content hat width:100%) */
.ebr-sprungziel { position: absolute !important; width: 0 !important; height: 0 !important; min-height: 0 !important; overflow: hidden; }

/* Großer Play-Knopf auf selbst gehosteten Videos (ebr.js, videoKnoepfe) */
.ebr-video-huelle { position: relative; }
.ebr-video-play { position: absolute; inset: 0; width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; padding: 0; border: 0; border-radius: 6px; background: rgba(0, 0, 0, .18); cursor: pointer; transition: background .2s; }
.ebr-video-play:hover, .ebr-video-play:focus-visible { background: rgba(0, 0, 0, .3); outline: none; }
.ebr-video-play span { position: relative; font-size: clamp(72px, 12vw, 104px); width: 1em; height: 1em; border-radius: 50%; background: var(--awb-color5, #fb611f); box-shadow: 0 6px 24px rgba(0, 0, 0, .35); transition: transform .2s; }
.ebr-video-play:hover span, .ebr-video-play:focus-visible span { transform: scale(1.08); }
.ebr-video-play span::after { content: ""; position: absolute; left: .38em; top: 50%; transform: translateY(-50%); border-style: solid; border-width: .16em 0 .16em .27em; border-color: transparent transparent transparent #fff; }
.ebr-video-huelle.laeuft .ebr-video-play { display: none; }

/* ---------- Nichtwohngebäude: Hub und Unterseiten (tools/nwg.py) ---------- */
.ebr-nwg { max-width: 1100px; }
.ebr-nwg .ebr-blog__text, .ebr-nwg .ebr-faq, .ebr-nwg .ebr-kompakt__links { max-width: 820px; width: 100%; margin-left: auto; margin-right: auto; }
.ebr-nwg-hero { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 40px; align-items: start; }
.ebr-nwg-hero__links { display: grid; gap: 14px; justify-items: start; }
.ebr-nwg-hero__links .ebr-badges { width: 100%; margin-bottom: 4px; }
.ebr-nwg-hero h1 { margin: 0; }
.ebr-nwg-hero .ebr-erf__lead { margin: 0; max-width: 760px; }
.ebr-nwg-check { list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 10px; }
.ebr-nwg-check li { position: relative; padding-left: 38px; font-size: 18px; font-weight: 700; line-height: 1.4; }
.ebr-nwg-check li::before { content: ""; position: absolute; left: 0; top: 1px; width: 27px; height: 27px; border-radius: 50%; background: var(--ebr-akzent)
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 16px no-repeat; }
.ebr-nwg-cta { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 8px; }
.ebr-nwg-cta a { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 8px 24px; border-radius: 999px;
  font-weight: 700; text-decoration: none !important; text-align: center; line-height: 1.3; }
.ebr-nwg-cta--start { width: 100%; flex-direction: column; align-items: center; gap: 18px; margin-top: 14px; }
.ebr-nwg-cta--start a { font-size: 18px; font-weight: 500; letter-spacing: .27px; border-radius: 30px; color: #fff !important; }
.ebr-nwg-cta__gruen { background: rgb(106, 190, 67); padding: 17px 40px !important; text-transform: uppercase; }
.ebr-nwg-cta__gruen:hover, .ebr-nwg-cta__gruen:focus-visible { background: #5aa836; }
.ebr-nwg-cta__orange { background: var(--ebr-akzent); padding: 12px 29px !important; text-transform: uppercase; }
.ebr-nwg-cta__orange:hover, .ebr-nwg-cta__orange:focus-visible { background: #e2520f; }
.ebr-nwg-cta__haupt { background: var(--ebr-akzent); color: #fff !important; border: 2px solid var(--ebr-akzent); }
.ebr-nwg-cta__haupt:hover, .ebr-nwg-cta__haupt:focus-visible { background: #e2520f; border-color: #e2520f; }
.ebr-nwg-cta__neben { background: #fff; color: var(--ebr-akzent) !important; border: 2px solid var(--ebr-akzent); }
.ebr-nwg-cta__neben:hover, .ebr-nwg-cta__neben:focus-visible { background: #fff3ec; }
.ebr-nwg-cta a.ebr-nwg-cta__tel { min-height: 44px; padding: 0 4px; font-weight: 600; color: #333 !important; text-decoration: underline !important; }
.ebr-nwg-hero__rechts { display: grid; gap: 16px; }
.ebr-nwg-beweis { display: grid; gap: 12px; padding: 24px; border-radius: 16px; background: #f5f5f5; border-top: 4px solid var(--ebr-akzent); }
.ebr-nwg-beweis__summe { margin: 0; font-size: 17px; }
.ebr-nwg-beweis__summe b { display: block; color: var(--ebr-akzent); font-size: 34px; line-height: 1.15; }
.ebr-nwg-beweis__refs { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.ebr-nwg-beweis__refs li { padding: 12px 14px; border-radius: 10px; background: #fff; border: 1px solid #e8e2dd; display: grid; gap: 2px; align-content: start; }
.ebr-nwg-beweis__refs b { font-size: 20px; }
.ebr-nwg-beweis__refs span { font-size: 14px; color: #555; }
.ebr-nwg-hero__stimmen { margin: 0; padding: 0; list-style: none; display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; align-items: stretch !important; }
.ebr-nwg-hero__stimmen > li { min-width: 0; }
.ebr-nwg-hero .ebr-badges__liste { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.ebr-nwg-hero .ebr-badges__liste li { display: flex; min-width: 0; }
.ebr-nwg-hero__links h1 { font-size: clamp(30px, 3.4vw, 42px); }
.ebr-nwg-hero .ebr-badge { flex: 1; box-sizing: border-box; }
.ebr-nwg-hero--klein { display: grid; grid-template-columns: 1fr; gap: 12px; padding: 32px; border-radius: 16px; background: #f5f5f5; border-top: 4px solid var(--ebr-akzent); }
.ebr-nwg-hero--klein .ebr-badges { margin-bottom: 4px; }
.ebr-nwg-block h2 { margin-bottom: 16px; }
.ebr-nwg section[id] { scroll-margin-top: 120px; }
.ebr-nwg-kacheln { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.ebr-nwg-kachel { height: 100%; box-sizing: border-box; display: flex; flex-direction: column; gap: 8px; padding: 20px; border: 1px solid #e8e2dd;
  border-radius: 12px; background: #fff; color: inherit !important; text-decoration: none !important; }
.ebr-nwg-kachel:hover, .ebr-nwg-kachel:focus-visible { border-color: var(--ebr-akzent); box-shadow: 0 4px 16px rgba(0,0,0,.06); }
.ebr-nwg-kachel b { font-size: 18px; line-height: 1.3; }
.ebr-nwg-kachel span { font-size: 15px; color: #555; }
.ebr-nwg-kachel .ebr-nwg-kachel__mehr { margin-top: auto; color: var(--ebr-akzent); font-weight: 600; }
.ebr-nwg-ref { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; max-width: 820px; }
.ebr-nwg-ref .ebr-foerder-karte__bild--leer { display: none; }
.ebr-nwg .ebr-ablauf { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
@media (max-width: 1000px) { .ebr-nwg-kacheln, .ebr-nwg .ebr-ablauf { grid-template-columns: repeat(2, minmax(0, 1fr)); } .ebr-nwg-hero { grid-template-columns: 1fr; gap: 28px; } }
@media (max-width: 600px) {
  .ebr-nwg-hero--klein { padding: 22px 16px; margin: 0 -8px; }
  .ebr-nwg-hero h1 { font-size: 27px; text-wrap: pretty; }
  .ebr-nwg-check li { font-size: 16px; }
  .ebr-nwg-hero__stimmen { grid-template-columns: 1fr; }
  .ebr-nwg { padding-top: 16px; }
  .ebr-nwg-hero__links { gap: 10px; }
  .ebr-nwg-cta--start { gap: 12px; margin-top: 8px; }
  .ebr-nwg-hero .ebr-badges__liste { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ebr-nwg-cta__gruen { padding: 15px 20px !important; font-size: 16px !important; }
  .ebr-nwg-cta a.ebr-nwg-cta__tel { white-space: nowrap; }
  .ebr-nwg-cta a { width: 100%; }
  .ebr-nwg-cta a.ebr-nwg-cta__tel { width: auto; }
  .ebr-nwg-beweis__refs, .ebr-nwg-kacheln, .ebr-nwg .ebr-ablauf, .ebr-nwg-ref { grid-template-columns: 1fr !important; }
}
