Design · Bausteine-Dossier

Seiten-Sektion

Kundenstimmen

Der Social-Proof-Block einer Seite: echte Bewertungen mit Sternen, Namen und Ort — nicht nur ein einzelnes Motto. Zwei Anlässe, ein Zweck: oben die ruhige Karten-Variante für Vertrauen und schnelle Scanbarkeit, unten das große rotierende Hero-Zitat für Marken- und Premium-Auftritte. Beide ganze Sektionen, copy-paste-fähig.

Kundenstimmen — Karten-Raster

Pol 2 · Klarheit Anlass: Handwerk, Dienstleistung, Shop

Drei gleichwertige Bewertungs-Karten nebeneinander: Sterne-Reihe, Zitat, Name mit Ort und Initialen-Avatar. Ruhig und scanbar, baut Vertrauen ohne Effekt-Lärm. Mobil stapeln sich die Karten automatisch. Sterne als Inline-SVG, Avatar als Verlauf mit Initialen (kein externes Bild nötig).

Kundenstimmen

Das sagen unsere Kunden.

  • „Pünktlich, sauber und zum vereinbarten Preis. So stellt man sich einen Handwerker vor. Kommen wieder."

    Anna KrügerBremen
  • „Von der ersten Beratung bis zur Übergabe alles transparent. Wurde ehrlich beraten, nicht überredet."

    Thomas BergHannover
  • „Kleine Nachbesserung war nötig, wurde am nächsten Tag kostenlos erledigt. Genau so wünscht man sich Service."

    Sabine VoßOldenburg
<section class="ks-klar" aria-label="Kundenstimmen">
  <div class="ks-klar-head">
    <p class="ks-klar-eyebrow">Kundenstimmen</p>
    <h2 class="ks-klar-title">Das sagen unsere Kunden.</h2>
  </div>
  <ul class="ks-klar-grid">
    <li class="ks-klar-card">
      <div class="ks-klar-stars" role="img" aria-label="5 von 5 Sternen">
        <!-- 5× Stern-SVG -->
        <svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2.2l2.9 6 6.6.9-4.8 4.6 1.2 6.5L12 17.9 6.1 20.2l1.2-6.5L2.5 9.1l6.6-.9z"/></svg>
      </div>
      <p class="ks-klar-quote">„Pünktlich, sauber und zum vereinbarten Preis. So stellt
        man sich einen Handwerker vor. Kommen wieder."</p>
      <div class="ks-klar-person">
        <span class="ks-klar-ava" aria-hidden="true">AK</span>
        <div><b>Anna Krüger</b><small>Bremen</small></div>
      </div>
    </li>
    <!-- zwei weitere Karten identisch aufgebaut -->
  </ul>
</section>

<style>
.ks-klar{width:100%;color:#e9e9ee}
.ks-klar-head{margin:0 0 1.6rem;text-align:center}
.ks-klar-eyebrow{margin:0 0 .55rem;font-size:.74rem;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;color:var(--akzent,#7c87ff)}
.ks-klar-title{margin:0;font-size:clamp(1.4rem,3.2vw,1.95rem);line-height:1.15;
  letter-spacing:-.01em;color:#f4f4f5}
.ks-klar-grid{list-style:none;display:grid;gap:1rem;margin:0;padding:0;grid-template-columns:1fr}
@media(min-width:720px){.ks-klar-grid{grid-template-columns:repeat(3,1fr)}}
.ks-klar-card{display:flex;flex-direction:column;gap:.85rem;height:100%;
  background:#17171b;border:1px solid #26262c;border-radius:16px;padding:1.4rem;
  transition:border-color .25s ease,transform .25s ease}
.ks-klar-card:hover,.ks-klar-card:focus-within{border-color:var(--akzent,#7c87ff);transform:translateY(-3px)}
.ks-klar-stars{display:flex;gap:.2rem;color:var(--akzent,#7c87ff)}
.ks-klar-stars svg{width:17px;height:17px}
.ks-klar-quote{margin:0;font-size:.95rem;line-height:1.55;color:#e9e9ee;overflow-wrap:break-word}
.ks-klar-person{display:flex;align-items:center;gap:.75rem;margin-top:auto;padding-top:.4rem}
.ks-klar-ava{flex:none;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;
  font-size:.82rem;font-weight:800;color:#fff;letter-spacing:.02em;
  background:linear-gradient(135deg,var(--akzent,#7c87ff),#42466e)}
.ks-klar-person b{display:block;font-size:.88rem;color:#f4f4f5;line-height:1.2}
.ks-klar-person small{display:block;font-size:.76rem;color:#a1a1aa}
@media (prefers-reduced-motion:reduce){.ks-klar-card{transition:none}}
</style>

Kundenstimmen — Hero-Zitat, rotierend

Pol 1 · Craft Anlass: Marke, Premium, Landing-Hero

Ein großes zentrales Zitat mit dekorativem Anführungszeichen-Ornament und Akzent-Glow, darunter die Personen-Auswahl als Punkte. Die Stimmen wechseln sanft per Fade automatisch; Pfeile und Punkte steuern manuell. Bei prefers-reduced-motion ruht der Glow und der Auto-Wechsel ist aus — nur manuelle Steuerung. Der Auto-Wechsel pausiert bei Hover und Fokus.

Kundenstimmen

Man merkt in jedem Detail, dass hier mit Anspruch gearbeitet wird.
Lena MarquardtGeschäftsführerin, Hamburg
Von der ersten Skizze bis zur Übergabe alles aus einer Hand — und pünktlich.
Jonas ReimannProjektleiter, Köln
Wir wurden ehrlich beraten, nicht verkauft. Das ist heute selten.
Miriam FaberInhaberin, München
<section class="ks-craft" aria-label="Kundenstimmen" data-ks-rotator>
  <div class="ks-craft-glow" aria-hidden="true"></div>
  <span class="ks-craft-mark" aria-hidden="true">&ldquo;</span>
  <p class="ks-craft-eyebrow">Kundenstimmen</p>
  <div class="ks-craft-stage" aria-live="polite">
    <figure class="ks-craft-slide is-on">
      <blockquote>Man merkt in jedem Detail, dass hier mit <span>Anspruch</span>
        gearbeitet wird.</blockquote>
      <figcaption class="ks-craft-person">
        <span class="ks-craft-ava" aria-hidden="true">LM</span>
        <div><b>Lena Marquardt</b><small>Geschäftsführerin, Hamburg</small></div>
      </figcaption>
    </figure>
    <!-- weitere <figure class="ks-craft-slide"> ohne is-on -->
  </div>
  <div class="ks-craft-nav">
    <button type="button" class="ks-craft-arrow" data-ks-prev aria-label="Vorherige Stimme">
      <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
           stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M15 6l-6 6 6 6"/></svg>
    </button>
    <div class="ks-craft-dots" role="tablist" aria-label="Stimme wählen"></div>
    <button type="button" class="ks-craft-arrow" data-ks-next aria-label="Nächste Stimme">
      <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
           stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9 6l6 6-6 6"/></svg>
    </button>
  </div>
</section>

<style>
.ks-craft{position:relative;width:100%;overflow:hidden;text-align:center;color:#e9e9ee;
  background:radial-gradient(130% 120% at 50% -10%,#1c1c28 0%,#141319 55%,#101014 100%);
  border:1px solid #26262c;border-radius:20px;padding:2.6rem 1.6rem 1.8rem}
@media(min-width:720px){.ks-craft{padding:3.4rem 3rem 2.2rem}}
.ks-craft-glow{position:absolute;width:300px;height:300px;top:-90px;left:50%;
  transform:translateX(-50%);border-radius:50%;filter:blur(70px);opacity:.5;z-index:0;
  background:radial-gradient(circle,var(--akzent,#7c87ff) 0%,transparent 70%);
  animation:ks-pulse 9s ease-in-out infinite alternate;will-change:transform,opacity}
@keyframes ks-pulse{0%{opacity:.35;transform:translateX(-50%) scale(1)}
  100%{opacity:.6;transform:translateX(-50%) scale(1.15)}}
.ks-craft-mark{position:relative;z-index:1;font-family:Georgia,"Times New Roman",serif;
  font-size:5rem;line-height:.6;color:var(--akzent,#7c87ff);opacity:.28;height:2.2rem}
.ks-craft-eyebrow{position:relative;z-index:1;margin:0 0 1.4rem;display:inline-flex;
  align-items:center;gap:.6em;font-size:.74rem;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;color:var(--akzent,#7c87ff)}
.ks-craft-eyebrow::before,.ks-craft-eyebrow::after{content:"";width:22px;height:1px;
  background:var(--akzent,#7c87ff);opacity:.6}
.ks-craft-stage{position:relative;z-index:1;min-height:150px;display:grid}
.ks-craft-slide{grid-area:1/1;margin:0;display:flex;flex-direction:column;align-items:center;
  gap:1.3rem;opacity:0;visibility:hidden;transform:translateY(10px);
  transition:opacity .55s ease,transform .55s ease,visibility .55s;pointer-events:none}
.ks-craft-slide.is-on{opacity:1;visibility:visible;transform:none;pointer-events:auto}
.ks-craft-slide blockquote{margin:0;font-size:clamp(1.2rem,2.9vw,1.7rem);line-height:1.4;
  font-weight:500;letter-spacing:-.01em;color:#f4f4f5;max-width:34ch;overflow-wrap:break-word}
.ks-craft-slide blockquote span{color:var(--akzent,#7c87ff)}
.ks-craft-person{display:flex;align-items:center;gap:.75rem}
.ks-craft-ava{flex:none;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;
  font-size:.85rem;font-weight:800;color:#fff;
  background:linear-gradient(135deg,var(--akzent,#7c87ff),#42466e)}
.ks-craft-person b{display:block;font-size:.9rem;color:#f4f4f5;line-height:1.2;text-align:left}
.ks-craft-person small{display:block;font-size:.78rem;color:#a1a1aa;text-align:left}
.ks-craft-nav{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;
  gap:1rem;margin-top:1.8rem}
.ks-craft-arrow{width:38px;height:38px;flex:none;display:grid;place-items:center;border-radius:50%;
  color:#e9e9ee;background:rgba(255,255,255,.05);border:1px solid #26262c;cursor:pointer;
  transition:border-color .2s ease,background .2s ease,color .2s ease}
.ks-craft-arrow svg{width:16px;height:16px}
.ks-craft-arrow:hover,.ks-craft-arrow:focus-visible{color:#f4f4f5;border-color:var(--akzent,#7c87ff);
  background:rgba(124,135,255,.12);outline:none}
.ks-craft-dots{display:flex;gap:.5rem}
.ks-craft-dot{width:9px;height:9px;padding:0;border-radius:50%;cursor:pointer;
  background:#3a3a45;border:none;transition:background .25s ease,transform .25s ease}
.ks-craft-dot.is-on{background:var(--akzent,#7c87ff);transform:scale(1.25)}
.ks-craft-dot:focus-visible{outline:2px solid var(--akzent,#7c87ff);outline-offset:3px}
@media (prefers-reduced-motion:reduce){
  .ks-craft-glow{animation:none}
  .ks-craft-slide{transition:opacity .001s}
}
</style>

<script>
document.querySelectorAll('[data-ks-rotator]').forEach((root) => {
  const slides = [...root.querySelectorAll('.ks-craft-slide')];
  const dots   = root.querySelector('.ks-craft-dots');
  if (slides.length < 2) return;
  let i = 0, timer = null;
  const reduce = matchMedia('(prefers-reduced-motion: reduce)').matches;

  // Punkte erzeugen
  slides.forEach((_, n) => {
    const d = document.createElement('button');
    d.type = 'button'; d.className = 'ks-craft-dot' + (n === 0 ? ' is-on' : '');
    d.setAttribute('role', 'tab');
    d.setAttribute('aria-label', 'Stimme ' + (n + 1));
    d.addEventListener('click', () => go(n, true));
    dots.appendChild(d);
  });
  const dotEls = [...dots.children];

  function go(n, stop) {
    slides[i].classList.remove('is-on'); dotEls[i].classList.remove('is-on');
    i = (n + slides.length) % slides.length;
    slides[i].classList.add('is-on'); dotEls[i].classList.add('is-on');
    if (stop) pause();
  }
  function start() { if (!reduce && !timer) timer = setInterval(() => go(i + 1), 5000); }
  function pause() { clearInterval(timer); timer = null; }

  root.querySelector('[data-ks-next]').addEventListener('click', () => go(i + 1, true));
  root.querySelector('[data-ks-prev]').addEventListener('click', () => go(i - 1, true));
  // Auto-Wechsel bei Hover/Fokus anhalten, danach fortsetzen
  root.addEventListener('mouseenter', pause);
  root.addEventListener('mouseleave', start);
  root.addEventListener('focusin', pause);
  root.addEventListener('focusout', start);
  start();
});
</script>

Bewertungs-Sektion — Portal-Badges (statisch, DSGVO-clean)

Pol 2 · Klarheit Anlass: Google-/Trustpilot-Bewertungen zeigen

Zeigt die Sterne-Bewertungen mehrerer Portale als statische Badges — Score, Sterne-Reihe (CSS, auch anteilig wie 4,9), Anzahl und Link zum Profil — plus Gesamt-Zeile. Bewusst ohne eingebettetes Google-/Trustpilot-Widget: deren Widgets laden externe Skripte und tracken (DSGVO-Problem). Diese Version ist rein statisch, ohne externe Ressourcen; Portal-Namen und Links sind Platzhalter. Sterne per Unicode, anteilig gefüllt über die Breite der Akzent-Ebene.

Bewertungen

Ausgezeichnet bewertet.

Google 4,9 127 Bewertungen Alle ansehen →
Trustpilot 4,8 89 Bewertungen Alle ansehen →
ProvenExpert 4,9 203 Bewertungen Alle ansehen →

Gesamt 4,9 ★ aus 419 Bewertungen auf 3 Portalen.

<section class="ks-rate" aria-label="Bewertungen">
  <div class="ks-rate-head">
    <p class="ks-rate-eyebrow">Bewertungen</p>
    <h2 class="ks-rate-title">Ausgezeichnet bewertet.</h2>
  </div>
  <div class="ks-rate-grid">
    <div class="ks-rate-card">
      <span class="ks-rate-plat">Google</span>
      <span class="ks-rate-score">4,9</span>
      <span class="ks-rate-stars" role="img" aria-label="4,9 von 5 Sternen">
        <span class="base" aria-hidden="true">★★★★★</span>
        <span class="fill" aria-hidden="true" style="width:98%">★★★★★</span>
      </span>
      <span class="ks-rate-count">127 Bewertungen</span>
      <a class="ks-rate-link" href="#">Alle ansehen →</a>
    </div>
    <!-- weitere Karten identisch: Trustpilot 4,8 (width:96%), ProvenExpert 4,9 (width:98%) … -->
  </div>
  <p class="ks-rate-sum">Gesamt <strong>4,9 ★</strong> aus <strong>419 Bewertungen</strong> auf 3 Portalen.</p>
</section>

<style>
.ks-rate{width:100%;color:#e9e9ee}
.ks-rate-head{margin:0 0 1.6rem;text-align:center}
.ks-rate-eyebrow{margin:0 0 .55rem;font-size:.74rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--akzent,#7c87ff)}
.ks-rate-title{margin:0;font-size:clamp(1.4rem,3.2vw,1.95rem);line-height:1.15;color:#f4f4f5}
.ks-rate-grid{display:grid;gap:1rem;grid-template-columns:1fr}
@media(min-width:680px){.ks-rate-grid{grid-template-columns:repeat(3,1fr)}}
.ks-rate-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.35rem;background:#17171b;border:1px solid #26262c;border-radius:16px;padding:1.5rem 1.2rem;transition:border-color .25s,transform .25s}
.ks-rate-card:hover,.ks-rate-card:focus-within{border-color:var(--akzent,#7c87ff);transform:translateY(-3px)}
.ks-rate-plat{font-size:.9rem;font-weight:700;color:#f4f4f5}
.ks-rate-score{font-size:2.4rem;font-weight:800;line-height:1;color:#f4f4f5}
.ks-rate-stars{position:relative;display:inline-block;font-size:1.05rem;letter-spacing:2px;line-height:1}
.ks-rate-stars .base{color:#3a3a45}
.ks-rate-stars .fill{position:absolute;top:0;left:0;overflow:hidden;white-space:nowrap;color:var(--akzent,#7c87ff)}
.ks-rate-count{font-size:.8rem;color:#a1a1aa}
.ks-rate-link{margin-top:.5rem;font-size:.8rem;font-weight:600;color:var(--akzent,#7c87ff);text-decoration:none}
.ks-rate-link:hover{text-decoration:underline}
.ks-rate-sum{margin:1.5rem 0 0;text-align:center;font-size:.9rem;color:#a1a1aa}
.ks-rate-sum strong{color:#f4f4f5;font-weight:700}
@media (prefers-reduced-motion:reduce){.ks-rate-card{transition:none}}
</style>

<!-- Kein Skript nötig — reine CSS-Sterne. Widgets von Google/Trustpilot NICHT einbetten (externe Skripte = DSGVO). -->

Kundenstimmen — Masonry-Zitatwand

Pol 1 · Craft Anlass: viele Stimmen, Wall-of-Love, Landing

Eine versetzte Wand aus unterschiedlich langen Zitat-Zetteln — reines columns-Masonry, kein JS, keine feste Höhe. Kurze und lange Stimmen fügen sich lückenlos ineinander, eine Karte ist als Leit-Stimme mit Akzent-Verlauf hervorgehoben. Spalten fallen mobil auf eine, dann zwei, dann drei zurück. Sterne bewusst weggelassen für ein textlastiges, „echtes" Wand-Gefühl.

Kundenstimmen

Über 400 Mal weiterempfohlen.

Selten so eine reibungslose Zusammenarbeit erlebt. Termine gehalten, Kosten gehalten, am Ende sogar unter Budget geblieben. Die machen jeden Auftrag wieder.
Claudia DornBauherrin, Lübeck
Pünktlich, freundlich, sauber. Mehr muss man nicht sagen.
Peter HansenKiel
Wir hatten drei Angebote eingeholt. Am Ende hat nicht der Preis entschieden, sondern die ehrliche Beratung. Rückblickend die beste Wahl.
Nadine KleinRostock
Kurzfristig eingesprungen, als es woanders klemmte. Danke dafür.
Markus ÖztürkWismar
Alles genau so umgesetzt wie besprochen. Die Nachfrage nach ein paar Wochen, ob alles passt, fand ich besonders stark.
Rebecca SuhrSchwerin
Faire Preise, ehrliche Ansage, was geht und was nicht. Klare Empfehlung.
Tobias WellerStralsund
<section class="ks-wall" aria-label="Kundenstimmen">
  <div class="ks-wall-head">
    <p class="ks-wall-eyebrow">Kundenstimmen</p>
    <h2 class="ks-wall-title">Über 400 Mal weiterempfohlen.</h2>
  </div>
  <div class="ks-wall-cols">
    <!-- Leit-Stimme: Zusatzklasse is-lead -->
    <figure class="ks-wall-item is-lead">
      <span class="ks-wall-mark" aria-hidden="true">&ldquo;</span>
      <blockquote class="ks-wall-q">Selten so eine reibungslose Zusammenarbeit
        erlebt. Termine gehalten, Kosten gehalten …</blockquote>
      <figcaption class="ks-wall-person">
        <span class="ks-wall-ava" aria-hidden="true">CD</span>
        <div><b>Claudia Dorn</b><small>Bauherrin, Lübeck</small></div>
      </figcaption>
    </figure>
    <figure class="ks-wall-item">
      <span class="ks-wall-mark" aria-hidden="true">&ldquo;</span>
      <blockquote class="ks-wall-q">Pünktlich, freundlich, sauber.</blockquote>
      <figcaption class="ks-wall-person">
        <span class="ks-wall-ava" aria-hidden="true">PH</span>
        <div><b>Peter Hansen</b><small>Kiel</small></div>
      </figcaption>
    </figure>
    <!-- weitere <figure class="ks-wall-item"> beliebig lang/kurz mischen -->
  </div>
</section>

<style>
.ks-wall{width:100%;color:#e9e9ee}
.ks-wall-head{margin:0 0 1.6rem;text-align:center}
.ks-wall-eyebrow{margin:0 0 .55rem;font-size:.74rem;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;color:var(--akzent,#7c87ff)}
.ks-wall-title{margin:0;font-size:clamp(1.4rem,3.2vw,1.95rem);line-height:1.15;
  letter-spacing:-.01em;color:#f4f4f5}
.ks-wall-cols{columns:1;column-gap:1rem}
@media(min-width:560px){.ks-wall-cols{columns:2}}
@media(min-width:900px){.ks-wall-cols{columns:3}}
.ks-wall-item{break-inside:avoid;-webkit-column-break-inside:avoid;margin:0 0 1rem;
  display:flex;flex-direction:column;gap:.7rem;
  background:#17171b;border:1px solid #26262c;border-radius:16px;padding:1.3rem;
  transition:border-color .25s ease,transform .25s ease}
.ks-wall-item:hover,.ks-wall-item:focus-within{border-color:var(--akzent,#7c87ff);transform:translateY(-3px)}
.ks-wall-item.is-lead{background:linear-gradient(160deg,rgba(124,135,255,.16),#17171b 62%);
  border-color:rgba(124,135,255,.4)}
.ks-wall-mark{font-family:Georgia,"Times New Roman",serif;font-size:2.4rem;line-height:.3;
  height:1.1rem;color:var(--akzent,#7c87ff);opacity:.5}
.ks-wall-q{margin:0;font-size:.95rem;line-height:1.55;color:#e9e9ee;overflow-wrap:break-word}
.ks-wall-item.is-lead .ks-wall-q{font-size:1.08rem;color:#f4f4f5}
.ks-wall-person{display:flex;align-items:center;gap:.7rem;margin-top:auto}
.ks-wall-ava{flex:none;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;
  font-size:.78rem;font-weight:800;color:#fff;letter-spacing:.02em;
  background:linear-gradient(135deg,var(--akzent,#7c87ff),#42466e)}
.ks-wall-person b{display:block;font-size:.85rem;color:#f4f4f5;line-height:1.2}
.ks-wall-person small{display:block;font-size:.74rem;color:#a1a1aa}
@media (prefers-reduced-motion:reduce){.ks-wall-item{transition:none}
  .ks-wall-item:hover,.ks-wall-item:focus-within{transform:none}}
</style>

Logo-Wand mit Leit-Zitat

Pol 2 · Klarheit Anlass: B2B-Referenzen, „vertraut von …"

Eine Reihe Kunden-Logos als Vertrauens-Anker, direkt darunter eine einzelne, starke Referenz-Stimme. Der B2B-Klassiker: erst „diese Firmen setzen auf uns", dann ein Gesicht dazu. Alle Logos sind generische Inline-SVG-Wortmarken (kein externes Bild, keine echten Marken), gedämpft grau und beim Hover/Fokus hell. Mobil brechen die Logos automatisch um.

Vertraut von

Unternehmen, die auf uns setzen.

„Von der Ausschreibung bis zur Abnahme ein Partner, auf den Verlass ist. Genau deshalb arbeiten wir seit Jahren zusammen."
Daniel HoffmannEinkaufsleiter, Nordwerk GmbH
<section class="ks-logos" aria-label="Referenzen und Kundenstimme">
  <div class="ks-logos-head">
    <p class="ks-logos-eyebrow">Vertraut von</p>
    <h2 class="ks-logos-title">Unternehmen, die auf uns setzen.</h2>
  </div>
  <div class="ks-logos-row">
    <a class="ks-logos-mark" href="#" aria-label="Referenzkunde Nordwerk">
      <svg viewBox="0 0 132 28" fill="currentColor" role="img" aria-hidden="true">
        <circle cx="14" cy="14" r="9" fill="none" stroke="currentColor" stroke-width="2.5"/>
        <path d="M14 5v18M9 9l10 10" stroke="currentColor" stroke-width="2.5" fill="none"/>
        <text x="34" y="19" font-family="Arial,Helvetica,sans-serif" font-size="15"
              font-weight="700">Nordwerk</text>
      </svg>
    </a>
    <!-- weitere <a class="ks-logos-mark"> mit eigenem Inline-SVG-Wortzeichen -->
  </div>
  <figure class="ks-logos-quote">
    <blockquote>„Von der Ausschreibung bis zur Abnahme ein Partner, auf den
      <span>Verlass</span> ist. Genau deshalb arbeiten wir seit Jahren
      zusammen."</blockquote>
    <figcaption class="ks-logos-person">
      <span class="ks-logos-ava" aria-hidden="true">DH</span>
      <div><b>Daniel Hoffmann</b><small>Einkaufsleiter, Nordwerk GmbH</small></div>
    </figcaption>
  </figure>
</section>

<style>
.ks-logos{width:100%;color:#e9e9ee}
.ks-logos-head{margin:0 0 1.4rem;text-align:center}
.ks-logos-eyebrow{margin:0 0 .55rem;font-size:.74rem;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;color:var(--akzent,#7c87ff)}
.ks-logos-title{margin:0;font-size:clamp(1.3rem,3vw,1.8rem);line-height:1.15;
  letter-spacing:-.01em;color:#f4f4f5}
.ks-logos-row{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;
  gap:1.2rem 2.2rem;margin:0 0 1.8rem;padding:1.2rem;border-radius:16px;
  border:1px solid #26262c;background:#16161a}
.ks-logos-row svg{height:26px;width:auto;color:#a1a1aa;
  transition:color .25s ease,transform .25s ease}
.ks-logos-mark{display:inline-flex}
.ks-logos-mark:hover svg,.ks-logos-mark:focus-visible svg{color:#f4f4f5;transform:translateY(-2px)}
.ks-logos-mark:focus-visible{outline:2px solid var(--akzent,#7c87ff);outline-offset:4px;border-radius:6px}
.ks-logos-quote{max-width:44ch;margin:0 auto;text-align:center;
  display:flex;flex-direction:column;align-items:center;gap:1rem}
.ks-logos-quote blockquote{margin:0;font-size:clamp(1.1rem,2.6vw,1.5rem);line-height:1.42;
  font-weight:500;letter-spacing:-.01em;color:#f4f4f5;overflow-wrap:break-word}
.ks-logos-quote blockquote span{color:var(--akzent,#7c87ff)}
.ks-logos-person{display:flex;align-items:center;gap:.75rem}
.ks-logos-ava{flex:none;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;
  font-size:.82rem;font-weight:800;color:#fff;
  background:linear-gradient(135deg,var(--akzent,#7c87ff),#42466e)}
.ks-logos-person b{display:block;font-size:.88rem;color:#f4f4f5;line-height:1.2;text-align:left}
.ks-logos-person small{display:block;font-size:.76rem;color:#a1a1aa;text-align:left}
@media (prefers-reduced-motion:reduce){.ks-logos-row svg{transition:none}
  .ks-logos-mark:hover svg,.ks-logos-mark:focus-visible svg{transform:none}}
</style>