# Three-card customer testimonials

**Last Updated:** 2026-04-01

Canonical three-quote social proof (Maxi, Andreea & Walter, Fabian) with five-star rows, body copy, avatars, and a mandatory text link to `/kunden` (“Alle Kundenerfahrungen entdecken →”).

## Files

| Role | Path |
|------|------|
| Data (copy, CTA, testimonials array) | `v2/data/three-card-testimonials.php` |
| Markup partial | `v2/sections/partials/three-card-testimonials.php` |

## Usage (from `v2/pages/*.php`)

```php
<?php
$three_card_testimonials_options = [
    'layout' => 'full', // or 'grid_only'
    'heading_variant' => 'kunden_sagen', // or 'teams_daily' (branchen gastro–style headline)
];
include __DIR__ . '/../sections/partials/three-card-testimonials.php';
?>
```

Unset or overwrite `$three_card_testimonials_options` after the include if the same variable name is reused elsewhere on the page.

## Options

| Key | Values | Notes |
|-----|--------|--------|
| `layout` | `full`, `grid_only` | `full`: section with heading + subtitle + grid + CTA. `grid_only`: grid + CTA only (e.g. below compare/industry hero). |
| `heading_variant` | `kunden_sagen`, `teams_daily` | `teams_daily`: single H2 (“Mehr als 2.000 Teams …”), no subtitle line. |
| `heading_id` | string | Default: `testimonials-heading` or `social-proof-heading` for `teams_daily`. |
| `section_class` | Tailwind classes | Default includes `max-w-7xl mx-auto … bg-white/50`. Used when `outer_section_class` is empty. |
| `outer_section_class` + `inner_wrapper_class` | Tailwind | Split wrapper (e.g. cello: outer `w-full py-12 …`, inner `max-w-7xl mx-auto px-4 …`). |
| `card_shadow_class` | e.g. `shadow-xs`, `shadow-sm` | Card elevation. |
| `grid_only_wrapper_class` | Tailwind | Wrapper around grid + CTA in `grid_only` (default `mt-12 w-full`). |

Subtitle highlight: `subtitle` + `subtitle_highlight` in the data file; the highlight substring is rendered in Ordio blue when it appears inside `subtitle`.

## Comparison pages (`section-3` vs “In bester Gesellschaft”)

On `v2/pages/compare*.php` (and legacy templates), **do not** put `three-card-testimonials.php` inside `<section id="section-3">`. That slot is **homepage parity**: include `v2/sections/partials/compare-reporting-insights-lanxess.php` (wrap section with `aria-labelledby="reporting-insights-heading"`). It loads `reporting-insights-section.php` (“und vieles mehr…”, KPIs, hero cards, feature grid, mobile carousel) plus the Lanxess quote block.

Use `three-card-testimonials.php` only in the later **“In bester Gesellschaft”** section (light background), same as before.

## Validation

```bash
php v2/scripts/dev-helpers/verify-three-card-testimonials.php
php v2/scripts/dev-helpers/verify-compare-pages-reporting-section.php
```

Hooked from `make validate`.

## Do not

- Duplicate the three quote strings or full card HTML in `v2/pages/**/*.php` (regression test enforces this).
- Omit the `/kunden` CTA: the partial always outputs it.
