/* Bewertungsseite: Trusted Shops (Online-Shop) und Google (Filialen).
   Quellen und Kennzahlen bleiben bewusst getrennt: Sie bewerten unterschiedliche
   Kundenerlebnisse und werden daher nicht zu einer gemeinsamen Note verrechnet. */
.bw-seite { --bw-gold: #e8a33d; --bw-google: #4285f4; --bw-ruhe: var(--tb-surface); color: var(--tb-text); }
.bw-seite .box { box-sizing: border-box; }
.bw-einleitung { text-align: center; padding: clamp(1.4rem, 3vw, 2.5rem); }
.bw-augenbraue { margin: 0 0 .55rem; color: var(--tb-primary); font-size: var(--text-xs); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.bw-einleitung h1 { margin: 0; color: var(--tb-primary); font-size: clamp(1.7rem, 4vw, 2.5rem); }
.bw-lead { max-width: 43rem; margin: .8rem auto 0; font-size: var(--text-lg); line-height: 1.55; }
.bw-quellen { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 1.4rem; text-align: left; }
.bw-quelle-karte { position: relative; display: flex; flex-direction: column; min-height: 15rem; padding: 1.3rem; border: 1px solid var(--tb-border-light); border-radius: var(--radius-lg); background: var(--bw-ruhe); overflow: hidden; }
.bw-quelle-karte::before { content: ''; position: absolute; inset: 0 auto 0 0; width: .3rem; background: var(--bw-gold); }
.bw-quelle-google::before { background: var(--bw-google); }
.bw-quelle-label { margin: 0 0 .5rem; color: var(--tb-text-dark); font-size: var(--text-xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.bw-quelle-karte h2 { margin: 0; color: var(--tb-primary); font-size: var(--text-xl); }
.bw-note { display: flex; align-items: center; gap: .8rem; margin: .9rem 0; }
.bw-note-zahl { color: var(--tb-primary); font-size: clamp(2.2rem, 5vw, 3.25rem); font-weight: 700; line-height: 1; letter-spacing: -.04em; }
.bw-note-zahl span { color: var(--tb-text-dark); font-size: var(--text-sm); font-weight: 400; letter-spacing: 0; }
.bw-sterne { display: inline-flex; gap: .08em; color: var(--bw-gold); font-size: 1.2rem; letter-spacing: 0; white-space: nowrap; }
.bw-quelle-google .bw-sterne { color: var(--bw-google); }
.bw-quelle-text { margin: 0; color: var(--tb-text-dark); font-size: var(--text-sm); line-height: 1.5; }
.bw-quellen-fakten { display: flex; flex-wrap: wrap; gap: .45rem 1rem; margin: auto 0 0; padding-top: 1rem; color: var(--tb-text-dark); font-size: var(--text-xs); line-height: 1.45; }
.bw-quellen-fakten strong { display: block; color: var(--tb-text); font-size: var(--text-base); }
.bw-link { display: inline-flex; align-items: center; gap: .35rem; width: fit-content; margin-top: 1rem; color: var(--tb-text-link); font-size: var(--text-sm); font-weight: 600; text-decoration: underline; text-underline-offset: .16em; }
.bw-link:hover { color: var(--tb-primary); text-decoration: none; }
.bw-abschnitt { padding: clamp(1.1rem, 2.5vw, 1.8rem); margin-top: 1rem; }
.bw-abschnitt-kopf { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: .5rem 1rem; }
.bw-abschnitt-kopf h2 { color: var(--tb-primary); font-size: var(--text-2xl); }
.bw-abschnitt-kopf p { max-width: 45rem; color: var(--tb-text-dark); font-size: var(--text-sm); line-height: 1.5; }
.bw-filial-abschnitt { padding: clamp(1.4rem, 3vw, 2.25rem); background: linear-gradient(135deg, var(--tb-surface-elevated), var(--tb-surface)); }
.bw-filial-abschnitt .bw-abschnitt-kopf { display: block; max-width: 48rem; margin: 0 auto; text-align: center; }
.bw-filial-abschnitt .bw-abschnitt-kopf h2 { font-size: clamp(1.35rem, 2.5vw, 1.8rem); }
.bw-filial-abschnitt .bw-abschnitt-kopf p { margin: .55rem auto 0; }
.bw-filialen { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; max-width: 70rem; margin: 1.5rem auto 0; }
.bw-filiale { display: flex; flex-direction: column; min-height: 11.4rem; padding: 1.15rem; border: 1px solid var(--tb-border-light); border-radius: var(--radius-lg); background: var(--tb-surface-elevated); box-shadow: var(--shadow-sm); transition: transform var(--transition-fast), box-shadow var(--transition-fast), border-color var(--transition-fast); }
.bw-filiale:hover { border-color: var(--bw-google); box-shadow: var(--shadow-md); transform: translateY(-2px); }
.bw-filiale h3 { margin: 0; color: var(--tb-primary); font-size: var(--text-lg); line-height: 1.35; }
.bw-adresse { min-height: 2.8em; margin: .45rem 0 1rem; color: var(--tb-text-dark); font-size: var(--text-xs); line-height: 1.45; }
.bw-filiale-note { display: flex; align-items: center; flex-wrap: wrap; gap: .35rem .55rem; margin-top: auto; }
.bw-filiale-note strong { color: var(--tb-primary); font-size: var(--text-lg); }
.bw-filiale-note .bw-sterne { color: var(--bw-google); font-size: .9rem; }
.bw-filiale-note small { color: var(--tb-text-dark); font-size: var(--text-xs); }
.bw-keine-bewertung { margin: auto 0 0; padding: .65rem .75rem; border-radius: var(--radius-sm); background: var(--tb-surface-sunken); color: var(--tb-text-dark); font-size: var(--text-xs); line-height: 1.45; }
.bw-filter { display: flex; flex-wrap: wrap; gap: .45rem; margin: 1rem 0; }
.bw-filter button { padding: .45rem .8rem; border: 1px solid var(--tb-border); border-radius: var(--radius-full); color: var(--tb-text-dark); font-size: var(--text-sm); }
.bw-filter button[aria-pressed="true"] { border-color: var(--tb-primary); background: var(--tb-primary); color: #fff; font-weight: 600; }
.bw-rezensionen { display: grid; grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); gap: .8rem; }
.bw-rezension { display: flex; flex-direction: column; padding: 1rem; border: 1px solid var(--tb-border-light); border-radius: var(--radius-md); background: var(--tb-surface-elevated); line-height: 1.5; }
.bw-rezension[hidden] { display: none; }
.bw-rezension-kopf { display: flex; align-items: flex-start; justify-content: space-between; gap: .6rem; }
.bw-badge { display: inline-flex; align-items: center; padding: .16rem .5rem; border-radius: var(--radius-full); background: #fff1d6; color: #6a4700; font-size: .68rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.bw-badge-google { background: #e7f0ff; color: #174ea6; }
.bw-rezension time { flex: 0 0 auto; color: var(--tb-text-dark); font-size: var(--text-xs); }
.bw-rezension .bw-sterne { margin-top: .5rem; font-size: 1rem; }
.bw-rezension-google .bw-sterne { color: var(--bw-google); }
.bw-rezension-text { margin: .65rem 0 0; white-space: pre-line; }
.bw-rezension-fuss { margin: auto 0 0; padding-top: .8rem; color: var(--tb-text-dark); font-size: var(--text-xs); }
.bw-hinweis { margin: 1rem 0 0; color: var(--tb-text-dark); font-size: var(--text-xs); line-height: 1.45; }
[data-theme="dark"] .bw-badge { background: #4e3b14; color: #ffe2a5; }
[data-theme="dark"] .bw-badge-google { background: #173b75; color: #d7e5ff; }
@media (max-width: 900px) { .bw-filialen { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 700px) { .bw-quellen { grid-template-columns: 1fr; } .bw-quelle-karte { min-height: 0; } .bw-filialen { grid-template-columns: 1fr; } .bw-filial-abschnitt .bw-abschnitt-kopf { text-align: left; } .bw-abschnitt-kopf { display: block; } .bw-abschnitt-kopf p { margin-top: .5rem; } }

/* Trustpilot als dritte Quelle (07.10.2026): eigene Karte, Badge und Sternfarbe.
   Drei Karten teilen sich die Zeile, unter 1000px zwei, unter 700px greift die 1fr-Regel oben. */
.bw-seite { --bw-trustpilot: #00b67a; }
.bw-quellen:has(.bw-quelle-trustpilot) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 1000px) { .bw-quellen:has(.bw-quelle-trustpilot) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 700px) { .bw-quellen:has(.bw-quelle-trustpilot) { grid-template-columns: 1fr; } }
.bw-quelle-trustpilot::before { background: var(--bw-trustpilot); }
.bw-quelle-trustpilot .bw-sterne { color: var(--bw-trustpilot); }
.bw-rezension-trustpilot .bw-sterne { color: var(--bw-trustpilot); }
.bw-badge-trustpilot { background: #dff7ee; color: #006e4a; }
[data-theme="dark"] .bw-badge-trustpilot { background: #0c4a36; color: #c8f5e4; }

/* Anteilig gefuellte Sterne (exakte Durchschnittsnote, 15.10.2026):
   untere Lage graue Sterne, obere Lage per width-Clip auf den Notenanteil */
.bw-sterne-exakt { position: relative; display: inline-block; line-height: 1; }
.bw-sterne-exakt .bw-sterne-basis { color: var(--tb-border, #d9d9d9); }
.bw-sterne-exakt .bw-sterne-anteil { position: absolute; left: 0; top: 0; overflow: hidden; white-space: nowrap; color: inherit; }
