PageSourceSearch

https://meetingmetrics.ai/about

html meetingmetrics.ai collected 2026-10-05 12:14:54 UTC 100,998 bytes, 2,028 lines download raw bytes

1<!DOCTYPE html>
2<html lang="de">
3
4<head>
5    <meta charset="utf-8">
6    <meta name="viewport" content="width=device-width, initial-scale=1">
7    <meta name="csrf-token" content="fEMpKXy6pgLqC3UGoJnEyJK2DDPPU7mghu0RX67n">
8
9    <title>Über uns – Wir machen Meetings einfach | Meeting Metrics</title>
10<meta name="title" content="Über uns – Wir machen Meetings einfach | Meeting Metrics">
11<meta name="description" content="Meeting Metrics entstand 2025 in St. Gallen: ein Schweizer Produkt, das Meetings dokumentiert, damit Menschen zuhören, diskutieren und entscheiden können.">
12<meta name="robots" content="index, follow, max-image-preview:large">
13<meta name="author" content="Meeting Metrics">
14
15
16<link rel="canonical" href="https://meetingmetrics.ai/about">
17
18
19<meta property="og:type" content="website">
20<meta property="og:url" content="https://meetingmetrics.ai/about">
21<meta property="og:title" content="Über uns – Wir machen Meetings einfach">
22<meta property="og:description" content="Meeting Metrics entstand 2025 in St. Gallen: ein Schweizer Produkt, das Meetings dokumentiert, damit Menschen zuhören, diskutieren und entscheiden können.">
23<meta property="og:image" content="https://meetingmetrics.ai/img/social/about.jpg?v=1791189424">
24<meta property="og:image:alt" content="Über uns – Wir machen Meetings einfach">
25<meta property="og:image:width" content="2400">
26<meta property="og:image:height" content="1260">
27<meta property="og:site_name" content="Meeting Metrics">
28<meta property="og:locale" content="de_CH">
29
30
31
32<meta name="twitter:card" content="summary_large_image">
33<meta name="twitter:url" content="https://meetingmetrics.ai/about">
34<meta name="twitter:title" content="Über uns – Wir machen Meetings einfach">
35<meta name="twitter:description" content="Meeting Metrics entstand 2025 in St. Gallen: ein Schweizer Produkt, das Meetings dokumentiert, damit Menschen zuhören, diskutieren und entscheiden können.">
36<meta name="twitter:image" content="https://meetingmetrics.ai/img/social/about.jpg?v=1791189424">
37<meta name="twitter:image:alt" content="Über uns – Wir machen Meetings einfach">
38
39
40
41
42    
42<script type="application/ld+json">
43    {
44    "@context": "https://schema.org",
45    "@type": "WebSite",
46    "name": "Meeting Metrics",
47    "url": "https://meetingmetrics.ai",
48    "description": "AI-powered meeting transcription and analysis platform",
49    "potentialAction": {
50        "@type": "SearchAction",
51        "target": {
52            "@type": "EntryPoint",
53            "urlTemplate": "https://meetingmetrics.ai/search?q={search_term_string}"
54        },
55        "query-input": "required name=search_term_string"
56    }
57}
58    </script>
58
59
60    <link rel="icon" type="image/png" href="/favicon-96x96.png" sizes="96x96" />
61    <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
62    <link rel="shortcut icon" type="image/png" href="/favicon-96x96.png" />
63    <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
64    <meta name="apple-mobile-web-app-title" content="Meeting Metrics" />
65    <link rel="manifest" href="/site.webmanifest" />
66
67    <link rel="preload" href="/fonts/Geist-Variable.woff2" as="font" type="font/woff2" crossorigin>
68    <style>
69        @font-face {
70            font-family: 'Geist';
71            src: url('/fonts/Geist-Variable.woff2') format('woff2-variations'),
72                url('/fonts/Geist-Variable.woff2') format('woff2');
73            font-weight: 100 900;
74            font-style: normal;
75            font-display: swap;
76        }
77    </style>
78
79    <!-- Livewire Styles --><style >[wire\:loading][wire\:loading], [wire\:loading\.delay][wire\:loading\.delay], [wire\:loading\.list-item][wire\:loading\.list-item], [wire\:loading\.inline-block][wire\:loading\.inline-block], [wire\:loading\.inline][wire\:loading\.inline], [wire\:loading\.block][wire\:loading\.block], [wire\:loading\.flex][wire\:loading\.flex], [wire\:loading\.table][wire\:loading\.table], [wire\:loading\.grid][wire\:loading\.grid], [wire\:loading\.inline-flex][wire\:loading\.inline-flex] {display: none;}[wire\:loading\.delay\.none][wire\:loading\.delay\.none], [wire\:loading\.delay\.shortest][wire\:loading\.delay\.shortest], [wire\:loading\.delay\.shorter][wire\:loading\.delay\.shorter], [wire\:loading\.delay\.short][wire\:loading\.delay\.short], [wire\:loading\.delay\.default][wire\:loading\.delay\.default], [wire\:loading\.delay\.long][wire\:loading\.delay\.long], [wire\:loading\.delay\.longer][wire\:loading\.delay\.longer], [wire\:loading\.delay\.longest][wire\:loading\.delay\.longest] {display: none;}[wire\:offline][wire\:offline] {display: none;}[wire\:dirty]:not(textarea):not(input):not(select) {display: none;}:root {--livewire-progress-bar-color: #2299dd;}[x-cloak="x-cloak"],[x-cloak=""] {display: none !important;}[wire\:cloak="wire:cloak"],[wire\:cloak=""] {display: none !important;}dialog#livewire-error::backdrop {background-color: rgba(0, 0, 0, .6);}</style>
80    <link rel="preload" as="style" href="https://meetingmetrics.ai/build/assets/marketing-BcbtsHvm.css" /><link rel="preload" as="style" href="https://meetingmetrics.ai/build/assets/support-bubble-marketing-Bb_2VJ4w.css" /><link rel="preload" as="style" href="https://meetingmetrics.ai/build/assets/video-By-GZc4_.css" /><link rel="modulepreload" as="script" href="https://meetingmetrics.ai/build/assets/front-DxUwPoot.js" /><link rel="modulepreload" as="script" href="https://meetingmetrics.ai/build/assets/defineProperty-CeMuKtrr.js" /><link rel="modulepreload" as="script" href="https://meetingmetrics.ai/build/assets/video-BTzswQHM.js" /><link rel="modulepreload" as="script" href="https://meetingmetrics.ai/build/assets/marketing-DR9zUroA.js" /><link rel="modulepreload" as="script" href="https://meetingmetrics.ai/build/assets/preload-helper-Ckvhz6iY.js" /><link rel="stylesheet" href="https://meetingmetrics.ai/build/assets/marketing-BcbtsHvm.css" data-navigate-track="reload" /><link rel="stylesheet" href="https://meetingmetrics.ai/build/assets/support-bubble-marketing-Bb_2VJ4w.css" data-navigate-track="reload" /><link rel="stylesheet" href="https://meetingmetrics.ai/build/assets/video-By-GZc4_.css" data-navigate-track="reload" />
80<script type="module" src="https://meetingmetrics.ai/build/assets/front-DxUwPoot.js" data-navigate-track="reload"></script>
80<script type="module" src="https://meetingmetrics.ai/build/assets/marketing-DR9zUroA.js" data-navigate-track="reload"></script>
80    </head>
81
82<body class="marketing-site">
83    
84    <header
85    class="site-nav"
86    x-data="marketingNav({ isHome: false })"
87    @keydown.escape.window="mobileOpen = false; closeDesktop()">
88    <div class="nav-desktop" @mouseleave="closeDesktopImmediate()">
89        <div class="nav-inner container" x-ref="navInner">
90            <div class="nav-primary">
91                <a class="brand" href="https://meetingmetrics.ai" aria-label="Meeting Metrics – Startseite" @mouseenter="scheduleClose()">
92                    <img src="https://meetingmetrics.ai/img/logo.png" alt="Meeting Metrics" width="743" height="97">
93                </a>
94
95                <div class="nav-dropdown-anchor" x-ref="dropdownAnchor" @mouseleave="scheduleClose()">
96                <nav class="nav-links nav-links--dropdown" aria-label="Hauptnavigation">
97                    <button
98                        type="button"
99                        class="nav-trigger"
100                        :class="{ 'is-open': desktopPanel === 'produkt', 'is-section-active': isProduktSectionActive() }"
101                        :aria-expanded="desktopPanel === 'produkt'"
102                        aria-haspopup="true"
103                        @mouseenter="openPanel('produkt', $el)"
104                        @focus="openPanel('produkt', $el)"
105                        @click="desktopPanel === 'produkt' ? closeDesktop() : openPanel('produkt', $el)">
106                        Produkt
107                        <svg class="nav-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true"><path d="M6 9l6 6 6-6"/></svg>
108                    </button>
109
110                    <button
111                        type="button"
112                        class="nav-trigger"
113                        :class="{ 'is-open': desktopPanel === 'use-cases' }"
114                        :aria-expanded="desktopPanel === 'use-cases'"
115                        aria-haspopup="true"
116                        @mouseenter="openPanel('use-cases', $el)"
117                        @focus="openPanel('use-cases', $el)"
118                        @click="desktopPanel === 'use-cases' ? closeDesktop() : openPanel('use-cases', $el)">
119                        Use Cases
120                        <svg class="nav-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true"><path d="M6 9l6 6 6-6"/></svg>
121                    </button>
122
123                    <button
124                        type="button"
125                        class="nav-trigger"
126                        :class="{ 'is-open': desktopPanel === 'resources' }"
127                        :aria-expanded="desktopPanel === 'resources'"
128                        aria-haspopup="true"
129                        @mouseenter="openPanel('resources', $el)"
130                        @focus="openPanel('resources', $el)"
131                        @click="desktopPanel === 'resources' ? closeDesktop() : openPanel('resources', $el)">
132                        Ressourcen
133                        <svg class="nav-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true"><path d="M6 9l6 6 6-6"/></svg>
134                    </button>
135
136                    <a
137                        class="nav-toplink"
138                        href="https://meetingmetrics.ai#preise"
139                        :class="{ 'is-current': isHome && activeHomeSection === 'preise' }"
140                        @mouseenter="scheduleClose()">Preise</a>
141
142                    <a class="nav-toplink" href="https://meetingmetrics.ai/apps" @mouseenter="scheduleClose()">Apps</a>
143
144                    <a class="nav-toplink" href="https://meetingmetrics.ai/contact" @mouseenter="scheduleClose()">Kontakt</a>
145                </nav>
146
147                <div
148                    class="nav-dropdown"
149                    x-show="desktopPanel"
150                    x-cloak
151                    :class="{ 'is-ready': dropdownReady }"
152                    :style="`left: ${dropdownLeft}px; width: ${dropdownWidth}px; --dropdown-target-width: ${dropdownWidth}px;`"
153                    @mouseenter="cancelClose()">
154                    <div class="nav-dropdown-body">
155                        <div
156                            class="nav-dropdown-panel"
157                            x-ref="panel_produkt"
158                            :class="{ 'is-active': desktopPanel === 'produkt' }"
159                            :aria-hidden="desktopPanel !== 'produkt'">
160                            <a class="nav-dropdown-link" href="https://meetingmetrics.ai#roi" :class="{ 'is-current': isHome && activeHomeSection === 'roi' }">
161                                <span class="nav-dropdown-link-title">Die Rechnung</span>
162                                <span class="nav-dropdown-link-desc">Was kostet dich Protokoll schreiben?</span>
163                            </a>
164                            <a class="nav-dropdown-link" href="https://meetingmetrics.ai#produkt" :class="{ 'is-current': isHome && activeHomeSection === 'produkt' }">
165                                <span class="nav-dropdown-link-title">Das Produkt</span>
166                                <span class="nav-dropdown-link-desc">Tour durch Transkript, Protokoll &amp; Aufgaben</span>
167                            </a>
168                            <a class="nav-dropdown-link" href="https://meetingmetrics.ai#funktionen" :class="{ 'is-current': isHome && activeHomeSection === 'funktionen' }">
169                                <span class="nav-dropdown-link-title">Funktionen</span>
170                                <span class="nav-dropdown-link-desc">Templates, Sprechererkennung &amp; Export</span>
171                            </a>
172                            <a class="nav-dropdown-link" href="https://meetingmetrics.ai#fuer-wen" :class="{ 'is-current': isHome && activeHomeSection === 'fuer-wen' }">
173                                <span class="nav-dropdown-link-title">Für wen ist es?</span>
174                                <span class="nav-dropdown-link-desc">Geschäftsführung, Treuhand &amp; Teams</span>
175                            </a>
176                            <a class="nav-dropdown-link" href="https://meetingmetrics.ai#datenhoheit" :class="{ 'is-current': isHome && activeHomeSection === 'datenhoheit' }">
177                                <span class="nav-dropdown-link-title">Schweizer Datenhoheit</span>
178                                <span class="nav-dropdown-link-desc">Hosting &amp; Verarbeitung in der Schweiz</span>
179                            </a>
180                            <a class="nav-dropdown-link" href="https://meetingmetrics.ai#preise" :class="{ 'is-current': isHome && activeHomeSection === 'preise' }">
181                                <span class="nav-dropdown-link-title">Preise</span>
182                                <span class="nav-dropdown-link-desc">Flexible Preispläne ab CHF 29 bei jährlicher Zahlung</span>
183                            </a>
184                            <a class="nav-dropdown-link" href="https://meetingmetrics.ai#faq" :class="{ 'is-current': isHome && activeHomeSection === 'faq' }">
185                                <span class="nav-dropdown-link-title">FAQ</span>
186                                <span class="nav-dropdown-link-desc">Häufige Fragen auf einen Blick</span>
187                            </a>
188                            <a class="nav-dropdown-link" href="https://meetingmetrics.ai#demo" :class="{ 'is-current': isHome && activeHomeSection === 'demo' }">
189                                <span class="nav-dropdown-link-title">Nächster Schritt</span>
190                                <span class="nav-dropdown-link-desc">Selbst testen oder Demo buchen</span>
191                            </a>
192                        </div>
193
194                        <div
195                            class="nav-dropdown-panel nav-dropdown-panel--grid"
196                            x-ref="panel_use-cases"
197                            :class="{ 'is-active': desktopPanel === 'use-cases' }"
198                            :aria-hidden="desktopPanel !== 'use-cases'">
199                            <div class="nav-dropdown-grid">
200                                <div class="nav-dropdown-group">
201                                    <a class="nav-dropdown-link" href="https://meetingmetrics.ai/use-cases/consulting">
202                                        <span class="nav-dropdown-link-title">Beratung &amp; Treuhand</span>
203                                        <span class="nav-dropdown-link-desc">Kundengespräche &amp; Mandate</span>
204                                    </a>
205                                    <a class="nav-dropdown-link" href="https://meetingmetrics.ai/use-cases/rechtsberatung">
206                                        <span class="nav-dropdown-link-title">Rechtsberatung</span>
207                                        <span class="nav-dropdown-link-desc">Mandantengespräche &amp; Aktennotizen</span>
208                                    </a>
209                                    <a class="nav-dropdown-link" href="https://meetingmetrics.ai/use-cases/banken">
210                                        <span class="nav-dropdown-link-title">Banken &amp; Finanzberater</span>
211                                        <span class="nav-dropdown-link-desc">Beratungs- und Compliance-Gespräche</span>
212                                    </a>
213                                    <a class="nav-dropdown-link" href="https://meetingmetrics.ai/use-cases/sales">
214                                        <span class="nav-dropdown-link-title">Vertrieb</span>
215                                        <span class="nav-dropdown-link-desc">Sales-Calls &amp; Kundentermine</span>
216                                    </a>
217                                    <a class="nav-dropdown-link" href="https://meetingmetrics.ai/use-cases/vorstandssitzungen">
218                                        <span class="nav-dropdown-link-title">Vorstände &amp; VR</span>
219                                        <span class="nav-dropdown-link-desc">GL-, VR- und Board-Meetings</span>
220                                    </a>
221                                </div>
222
223                                <div class="nav-dropdown-group">
224                                    <a class="nav-dropdown-link" href="https://meetingmetrics.ai/use-cases/kmu-industrie-handel">
225                                        <span class="nav-dropdown-link-title">KMU, Industrie &amp; Handel</span>
226                                        <span class="nav-dropdown-link-desc">GL-Sitzungen, Produktion &amp; Lieferanten</span>
227                                    </a>
228                                    <a class="nav-dropdown-link" href="https://meetingmetrics.ai/use-cases/gemeinden-verwaltung">
229                                        <span class="nav-dropdown-link-title">Gemeinden &amp; Verwaltung</span>
230                                        <span class="nav-dropdown-link-desc">Rats- und Kommissionssitzungen</span>
231                                    </a>
232                                    <a class="nav-dropdown-link" href="https://meetingmetrics.ai/use-cases/bildung">
233                                        <span class="nav-dropdown-link-title">Schulen &amp; Hochschulen</span>
234                                        <span class="nav-dropdown-link-desc">Elterngespräche &amp; Konvente</span>
235                                    </a>
236                                    <a class="nav-dropdown-link" href="https://meetingmetrics.ai/use-cases/medizin">
237                                        <span class="nav-dropdown-link-title">Medizin</span>
238                                        <span class="nav-dropdown-link-desc">Konsultationen &amp; Dokumentation</span>
239                                    </a>
240                                    <a class="nav-dropdown-link" href="https://meetingmetrics.ai/use-cases/events">
241                                        <span class="nav-dropdown-link-title">Events &amp; Konferenzen</span>
242                                        <span class="nav-dropdown-link-desc">Workshops, Podiumsdiskussionen &amp; Keynotes</span>
243                                    </a>
244                                </div>
245                            </div>
246                        </div>
247
248                        <div
249                            class="nav-dropdown-panel"
250                            x-ref="panel_resources"
251                            :class="{ 'is-active': desktopPanel === 'resources' }"
252                            :aria-hidden="desktopPanel !== 'resources'">
253                            <a class="nav-dropdown-link" href="https://meetingmetrics.ai/about">
254                                <span class="nav-dropdown-link-title">Über uns</span>
255                                <span class="nav-dropdown-link-desc">Das Team hinter Meeting Metrics</span>
256                            </a>
257                            <a class="nav-dropdown-link" href="https://meetingmetrics.ai/blog">
258                                <span class="nav-dropdown-link-title">Blog</span>
259                                <span class="nav-dropdown-link-desc">Neuigkeiten &amp; Praxiswissen</span>
260                            </a>
261                                                            <a class="nav-dropdown-link" href="https://meetingmetrics.ai/docs">
262                                    <span class="nav-dropdown-link-title">Knowledge Base</span>
263                                    <span class="nav-dropdown-link-desc">Anleitungen, Setup &amp; häufige Fragen</span>
264                                </a>
265                                                        <a class="nav-dropdown-link" href="https://meetingmetrics.ai/videos">
266                                <span class="nav-dropdown-link-title">Videos</span>
267                                <span class="nav-dropdown-link-desc">Demos &amp; Tutorials</span>
268                            </a>
269                            <a class="nav-dropdown-link" href="https://meetingmetrics.ai/partnerprogramm">
270                                <span class="nav-dropdown-link-title">Partnerprogramm</span>
271                                <span class="nav-dropdown-link-desc">Meeting Metrics empfehlen und 20% wiederkehrend verdienen</span>
272                            </a>
273                        </div>
274                    </div>
275                </div>
276                </div>
277            </div>
278
279            <div class="nav-actions" @mouseenter="scheduleClose()">
280                                    <a href="https://meetingmetrics.ai/login" class="btn btn-ghost btn-sm">
281        <span class="btn-text">Anmelden</span>
282        </a>
283                    <a href="/registrieren" class="btn btn-twin btn-primary btn-sm">
284        <span class="btn-text">Kostenlos testen</span>
285            <span class="btn-zone btn-zone--round" aria-hidden="true">
286            <span class="twin-track">
287                <span class="twin-cell">
288                    <svg width="11" height="11" viewBox="0 0 14 14" fill="none" aria-hidden="true"><path d="M2.5 7h9M8 3.5 11.5 7 8 10.5" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"/></svg>
289                </span>
290                <span class="twin-cell">
291                    <svg width="11" height="11" viewBox="0 0 14 14" fill="none" aria-hidden="true"><path d="M2.5 7h9M8 3.5 11.5 7 8 10.5" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"/></svg>
292                </span>
293            </span>
294        </span>
295        </a>
296                                <button
297                    class="nav-burger"
298                    type="button"
299                    @click="mobileOpen = !mobileOpen"
300                    :aria-expanded="mobileOpen"
301                    data-label-open="Menü öffnen"
302                    data-label-close="Menü schliessen"
303                    :aria-label="mobileOpen ? $el.dataset.labelClose : $el.dataset.labelOpen">
304                    <svg x-show="!mobileOpen" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" width="22" height="22" aria-hidden="true"><line x1="4" y1="7" x2="20" y2="7"/><line x1="4" y1="12" x2="20" y2="12"/><line x1="4" y1="17" x2="20" y2="17"/></svg>
305                    <svg x-show="mobileOpen" x-cloak viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" width="22" height="22" aria-hidden="true"><line x1="6" y1="6" x2="18" y2="18"/><line x1="18" y1="6" x2="6" y2="18"/></svg>
306                </button>
307            </div>
308        </div>
309    </div>
310
311    <div class="mobile-menu" x-show="mobileOpen" x-cloak @click.outside="mobileOpen = false; mobileSection = null">
312        <nav class="container" aria-label="Mobile Navigation">
313            <button type="button" class="mobile-section-trigger" @click="toggleMobileSection('produkt')" :aria-expanded="mobileSection === 'produkt'">
314                Produkt
315                <svg class="nav-chevron" :class="{ 'is-open': mobileSection === 'produkt' }
315" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true"><path d="M6 9l6 6 6-6"/></svg>
316            </button>
317            <div class="mobile-submenu" x-show="mobileSection === 'produkt'" x-cloak>
318                <a href="https://meetingmetrics.ai#roi" @click="mobileOpen = false" :class="{ 'is-current': isHome && activeHomeSection === 'roi' }">Die Rechnung</a>
319                <a href="https://meetingmetrics.ai#produkt" @click="mobileOpen = false" :class="{ 'is-current': isHome && activeHomeSection === 'produkt' }">Das Produkt</a>
320                <a href="https://meetingmetrics.ai#funktionen" @click="mobileOpen = false" :class="{ 'is-current': isHome && activeHomeSection === 'funktionen' }">Funktionen</a>
321                <a href="https://meetingmetrics.ai#fuer-wen" @click="mobileOpen = false" :class="{ 'is-current': isHome && activeHomeSection === 'fuer-wen' }">Für wen ist es?</a>
322                <a href="https://meetingmetrics.ai#datenhoheit" @click="mobileOpen = false" :class="{ 'is-current': isHome && activeHomeSection === 'datenhoheit' }">Schweizer Datenhoheit</a>
323                <a href="https://meetingmetrics.ai#preise" @click="mobileOpen = false" :class="{ 'is-current': isHome && activeHomeSection === 'preise' }">Preise</a>
324                <a href="https://meetingmetrics.ai#faq" @click="mobileOpen = false" :class="{ 'is-current': isHome && activeHomeSection === 'faq' }">FAQ</a>
325                <a href="https://meetingmetrics.ai#demo" @click="mobileOpen = false" :class="{ 'is-current': isHome && activeHomeSection === 'demo' }">Nächster Schritt</a>
326            </div>
327
328            <button type="button" class="mobile-section-trigger" @click="toggleMobileSection('use-cases')" :aria-expanded="mobileSection === 'use-cases'">
329                Use Cases
330                <svg class="nav-chevron" :class="{ 'is-open': mobileSection === 'use-cases' }" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true"><path d="M6 9l6 6 6-6"/></svg>
331            </button>
332            <div class="mobile-submenu" x-show="mobileSection === 'use-cases'" x-cloak>
333                <a href="https://meetingmetrics.ai/use-cases/consulting" @click="mobileOpen = false">Beratung &amp; Treuhand</a>
334                <a href="https://meetingmetrics.ai/use-cases/rechtsberatung" @click="mobileOpen = false">Rechtsberatung</a>
335                <a href="https://meetingmetrics.ai/use-cases/banken" @click="mobileOpen = false">Banken &amp; Finanzberater</a>
336                <a href="https://meetingmetrics.ai/use-cases/sales" @click="mobileOpen = false">Vertrieb</a>
337                <a href="https://meetingmetrics.ai/use-cases/vorstandssitzungen" @click="mobileOpen = false">Vorstände &amp; VR</a>
338                <a href="https://meetingmetrics.ai/use-cases/kmu-industrie-handel" @click="mobileOpen = false">KMU, Industrie &amp; Handel</a>
339                <a href="https://meetingmetrics.ai/use-cases/gemeinden-verwaltung" @click="mobileOpen = false">Gemeinden &amp; Verwaltung</a>
340                <a href="https://meetingmetrics.ai/use-cases/bildung" @click="mobileOpen = false">Schulen &amp; Hochschulen</a>
341                <a href="https://meetingmetrics.ai/use-cases/medizin" @click="mobileOpen = false">Medizin</a>
342                <a href="https://meetingmetrics.ai/use-cases/events" @click="mobileOpen = false">Events &amp; Konferenzen</a>
343            </div>
344
345            <button type="button" class="mobile-section-trigger" @click="toggleMobileSection('resources')" :aria-expanded="mobileSection === 'resources'">
346                Ressourcen
347                <svg class="nav-chevron" :class="{ 'is-open': mobileSection === 'resources' }" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true"><path d="M6 9l6 6 6-6"/></svg>
348            </button>
349            <div class="mobile-submenu" x-show="mobileSection === 'resources'" x-cloak>
350                <a href="https://meetingmetrics.ai/about" @click="mobileOpen = false">Über uns</a>
351                <a href="https://meetingmetrics.ai/blog" @click="mobileOpen = false">Blog</a>
352                                    <a href="https://meetingmetrics.ai/docs" @click="mobileOpen = false">Knowledge Base</a>
353                                <a href="https://meetingmetrics.ai/videos" @click="mobileOpen = false">Videos</a>
354                <a href="https://meetingmetrics.ai/partnerprogramm" @click="mobileOpen = false">Partnerprogramm</a>
355            </div>
356
357            <a href="https://meetingmetrics.ai#preise" @click="mobileOpen = false" :class="{ 'is-current': isHome && activeHomeSection === 'preise' }">Preise</a>
358            <a href="https://meetingmetrics.ai/apps" @click="mobileOpen = false">Apps</a>
359
360            <a href="https://meetingmetrics.ai/about" @click="mobileOpen = false">Über uns</a>
361            <a href="https://meetingmetrics.ai/contact" @click="mobileOpen = false">Kontakt</a>
362                            <a href="https://meetingmetrics.ai/login" @click="mobileOpen = false">Anmelden</a>
363            
364            <div class="menu-cta">
365                                    <a href="/registrieren" class="btn btn-twin btn-primary" @click="mobileOpen = false">
366        <span class="btn-text">Kostenlos testen</span>
367            <span class="btn-zone btn-zone--round" aria-hidden="true">
368            <span class="twin-track">
369                <span class="twin-cell">
370                    <svg width="12" height="12" viewBox="0 0 14 14" fill="none" aria-hidden="true"><path d="M2.5 7h9M8 3.5 11.5 7 8 10.5" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"/></svg>
371                </span>
372                <span class="twin-cell">
373                    <svg width="12" height="12" viewBox="0 0 14 14" fill="none" aria-hidden="true"><path d="M2.5 7h9M8 3.5 11.5 7 8 10.5" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"/></svg>
374                </span>
375            </span>
376        </span>
377        </a>
378                            </div>
379        </nav>
380    </div>
381</header>
382    <main class="home-main resource-page about-page">
383        <!-- ======================= HERO ======================= -->
384        <section class="container about-hero" aria-labelledby="hero-title">
385            <p class="eyebrow">Über Meeting Metrics</p>
386
387            <h1 id="hero-title">Wir machen Meetings einfach.</h1>
388
389            <p class="lead">Ineffiziente Meetings kosten Unternehmen wertvolle Zeit und führen zu Informationsverlust. Meeting Metrics optimiert mit transparenter KI die Kommunikation, sichert den Wissenstransfer und steigert die Produktivität deiner Teams – für messbare Ergebnisse statt langer Protokolle.</p>
390
391            <p class="about-story">Meetings sind zentral für den Geschäftserfolg, doch oft fehlt die Struktur. Wichtige Informationen gehen unter, die Nachbereitung ist zeitaufwendig und das volle Potenzial für Entscheidungen und Innovation bleibt ungenutzt.</p>
392
393            <p class="about-story">Meeting Metrics wurde entwickelt, um genau das zu ändern. Unsere intelligente KI-Assistenz unterstützt deine Teams dabei, Gespräche effizient zu führen, das Wesentliche festzuhalten und klare nächste Schritte zu definieren – diskret und ohne den Gesprächsfluss zu stören.</p>
394
395            <p class="about-story">Deine Daten werden ausschliesslich auf unserer eigenen, unabhängigen Infrastruktur in der Schweiz gespeichert und verarbeitet. Wir garantieren höchste Vertraulichkeit und Compliance – das 
395ist unser Fundament, keine Option.</p>
396
397            <p class="about-founded">Gegründet 2025 <span class="dot-sep" aria-hidden="true"></span> St. Gallen, Schweiz</p>
398        </section>
399
400        <!-- ======================= TEAM ======================= -->
401        <section class="section" id="team" aria-labelledby="team-title">
402            <div class="container">
403                <div class="section-head reveal" data-reveal>
404                    <p class="kicker">Wer steckt dahinter</p>
405                    <h2 id="team-title">Das Team hinter Meeting Metrics</h2>
406                </div>
407
408                <div class="about-team-grid">
409                                            <figure class="about-team-member reveal" data-reveal>
410                            <img class="about-team-photo" src="https://meetingmetrics.ai/img/team/bajram.jpg" alt="Bajram, Mitgründer &amp; Entwickler bei Meeting Metrics" loading="lazy">
411                            <figcaption>
412                                <div class="about-team-copy">
413                                    <h3>Bajram</h3>
414                                    <p class="team-role">Mitgründer &amp; Entwickler</p>
415                                </div>
416                                <div class="about-team-links">
417                                    <a href="https://www.linkedin.com/in/bajram-emini-93025693/" target="_blank" rel="noopener noreferrer" aria-label="LinkedIn-Profil von Bajram">
418                                        <svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M20.45 20.45h-3.55v-5.57c0-1.33-.03-3.04-1.85-3.04-1.85 0-2.14 1.45-2.14 2.94v5.67H9.36V9h3.41v1.56h.05c.47-.9 1.63-1.85 3.36-1.85 3.6 0 4.27 2.37 4.27 5.46v6.28ZM5.34 7.43a2.06 2.06 0 1 1 0-4.12 2.06 2.06 0 0 1 0 4.12ZM7.12 20.45H3.56V9h3.56v11.45Z"/></svg>
419                                    </a>
420                                    <a href="mailto:[email protected]" aria-label="E-Mail an Bajram">
421                                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="2" y="4" width="20" height="16" rx="2"/><path d="m22 7-10 6L2 7"/></svg>
422                                    </a>
423                                </div>
424                            </figcaption>
425                        </figure>
426                                            <figure class="about-team-member reveal" data-reveal>
427                            <img class="about-team-photo" src="https://meetingmetrics.ai/img/team/baris.jpg" alt="Baris, Mitgründer &amp; Kundenbetreuung bei Meeting Metrics" loading="lazy">
428                            <figcaption>
429                                <div class="about-team-copy">
430                                    <h3>Baris</h3>
431                                    <p class="team-role">Mitgründer &amp; Kundenbetreuung</p>
432                                </div>
433                                <div class="about-team-links">
434                                    <a href="https://www.linkedin.com/in/barisgoekduman/" target="_blank" rel="noopener noreferrer" aria-label="LinkedIn-Profil von Baris">
435                                        <svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M20.45 20.45h-3.55v-5.57c0-1.33-.03-3.04-1.85-3.04-1.85 0-2.14 1.45-2.14 2.94v5.67H9.36V9h3.41v1.56h.05c.47-.9 1.63-1.85 3.36-1.85 3.6 0 4.27 2.37 4.27 5.46v6.28ZM5.34 7.43a2.06 2.06 0 1 1 0-4.12 2.06 2.06 0 0 1 0 4.12ZM7.12 20.45H3.56V9h3.56v11.45Z"/></svg>
436                                    </a>
437                                    <a href="mailto:[email protected]" aria-label="E-Mail an Baris">
438                                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="2" y="4" width="20" height="16" rx="2"/><path d="m22 7-10 6L2 7"/></svg>
439                                    </a>
440                                </div>
441                            </figcaption>
442                        </figure>
443                                            <figure class="about-team-member reveal" data-reveal>
444                            <img class="about-team-photo" src="https://meetingmetrics.ai/img/team/enes.jpg" alt="Enes, Mitgründer &amp; Entwickler bei Meeting Metrics" loading="lazy">
445                            <figcaption>
446                                <div class="about-team-copy">
447                                    <h3>Enes</h3>
448                                    <p class="team-role">Mitgründer &amp; Entwickler</p>
449                                </div>
450                                <div class="about-team-links">
451                                    <a href="https://www.linkedin.com/in/enes-emini/" target="_blank" rel="noopener noreferrer" aria-label="LinkedIn-Profil von Enes">
452                                        <svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M20.45 20.45h-3.55v-5.57c0-1.33-.03-3.04-1.85-3.04-1.85 0-2.14 1.45-2.14 2.94v5.67H9.36V9h3.41v1.56h.05c.47-.9 1.63-1.85 3.36-1.85 3.6 0 4.27 2.37 4.27 5.46v6.28ZM5.34 7.43a2.06 2.06 0 1 1 0-4.12 2.06 2.06 0 0 1 0 4.12ZM7.12 20.45H3.56V9h3.56v11.45Z"/></svg>
453                                    </a>
454                                    <a href="mailto:[email protected]" aria-label="E-Mail an Enes">
455                                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="2" y="4" width="20" height="16" rx="2"/><path d="m22 7-10 6L2 7"/></svg>
456                                    </a>
457                                </div>
458                            </figcaption>
459                        </figure>
460                                    </div>
461            </div>
462        </section>
463
464        <!-- ======================= CTA ======================= -->
465        <section class="ai-research-cta" id="ki-recherche" aria-labelledby="ai-research-title">
466    <div class="container">
467        <div class="ai-research-card">
468            <div class="ai-research-copy reveal" data-reveal>
469                <h2 id="ai-research-title">Nicht sicher, ob Meeting Metrics zu dir passt?</h2>
470                <p>Hol dir eine unabhängige Einschätzung von der KI deiner Wahl.</p>
471            </div>
472
473            <div class="ai-research-actions reveal" data-reveal aria-label="Meeting Metrics mit einem KI-Assistenten recherchieren">
474                                    <a class="ai-research-link" href="https://chatgpt.com/?q=Was%20kann%20Meeting%20Metrics%20%28meetingmetrics.ai%29%20und%20f%C3%BCr%20wen%20eignet%20es%20sich%3F" target="_blank" rel="noopener noreferrer">
475                        <svg viewBox="0 0 24 24" aria-hidden="true">
476                            <path d="M22.28 9.82a5.98 5.98 0 0 0-.52-4.91 6.05 6.05 0 0 0-6.51-2.9A6.07 6.07 0 0 0 4.98 4.18a5.98 5.98 0 0 0-4 2.9 6.05 6.05 0 0 0 .74 7.1 5.98 5.98 0 0 0 .51 4.91 6.05 6.05 0 0 0 6.52 2.9A5.98 5.98 0 0 0 13.26 24a6.06 6.06 0 0 0 5.77-4.21 5.99 5.99 0 0 0 4-2.9 6.06 6.06 0 0 0-.75-7.07Zm-9.02 12.61a4.48 4.48 0 0 1-2.88-1.04l.14-.08 4.78-2.76a.79.79 0 0 0 .39-.68v-6.74l2.02 1.17a.07.07 0 0 1 .04.05v5.58a4.5 4.5 0 0 1-4.49 4.5Zm-9.66-4.13a4.47 4.47 0 0 1-.54-3.01l.14.09 4.78 2.75a.77.77 0 0 0 .78 0l5.84-3.37v2.34a.08.08 0 0 1-.03.06l-4.83 2.79A4.5 4.5 0 0 1 3.6 18.3ZM2.34 7.9a4.49 4.49 0 0 1 2.37-1.98v5.68a.77.77 0 0 0 .39.68l5.81 3.35-2.02 1.17a.08.08 0 0 1-.07 0l-4.83-2.79A4.5 4.5 0 0 1 2.34 7.9Zm16.6 3.85-5.84-3.39 2.02-1.16a.08.08 0 0 1 .07 0l4.83 2.79a4.49 4.49 0 0 1-.68 8.1v-5.67a.79.79 0 0 0-.4-.67Zm2.01-3.02-.14-.09-4.78-2.78a.78.78 0 0 0-.78 0L9.41 9.23V6.9a.07.07 0 0 1 .03-.06l4.83-2.79a4.5 4.5 0 0 1 6.68 4.68ZM8.31 12.86 6.29 11.7a.08.08 0 0 1-.04-.06V6.07a4.5 4.5 0 0 1 7.38-3.45l-.14.08-4.78 2.76a.79.79 0 0 0-.4.68v6.72Zm1.1-2.36L12 9l2.61 1.5v3L12.02 15l-2.61-1.5v-3Z"/>
477                        </svg>
478                        <span>ChatGPT fragen</span>
479                    </a>
480                                    <a class="ai-research-link" href="https://claude.ai/new?q=Was%20kann%20Meeting%20Metrics%20%28meetingmetrics.ai%29%20und%20f%C3%BCr%20wen%20eignet%20es%20sich%3F" target="_blank" rel="noopener noreferrer">
481                        <svg viewBox="0 0 24 24" aria-hidden="true">
482                            <path d="m4.7144 15.9555 4.7174-2.6471.079-.2307-.079-.1275h-.2307l-.7893-.0486-2.6956-.0729-2.3375-.0971-2.2646-.1214-.5707-.1215-.5343-.7042.0546-.3522.4797-.3218.686.0608 1.5179.1032 2.2767.1578 
4821.6514.0972 2.4468.255h.3886l.0546-.1579-.1336-.0971-.1032-.0972L6.973 9.8356l-2.55-1.6879-1.3356-.9714-.7225-.4918-.3643-.4614-.1578-1.0078.6557-.7225.8803.0607.2246.0607.8925.686 1.9064 1.4754 2.4893 1.8336.3643.3035.1457-.1032.0182-.0728-.164-.2733-1.3539-2.4467-1.445-2.4893-.6435-1.032-.17-.6194c-.0607-.255-.1032-.4674-.1032-.7285L6.287.1335 6.6997 0l.9957.1336.419.3642.6192 1.4147 1.0018 2.2282 1.5543 3.0296.4553.8985.2429.8318.091.255h.1579v-.1457l.1275-1.706.2368-2.0947.2307-2.6957.0789-.7589.3764-.9107.7468-.4918.5828.2793.4797.686-.0668.4433-.2853 1.8517-.5586 2.9021-.3643 1.9429h.2125l.2429-.2429.9835-1.3053 1.6514-2.0643.7286-.8196.85-.9046.5464-.4311h1.0321l.759 1.1293-.34 1.1657-1.0625 1.3478-.8804 1.1414-1.2628 1.7-.7893 1.36.0729.1093.1882-.0183 2.8535-.607 1.5421-.2794 1.8396-.3157.8318.3886.091.3946-.3278.8075-1.967.4857-2.3072.4614-3.4364.8136-.0425.0304.0486.0607 1.5482.1457.6618.0364h1.621l3.0175.2247.7892.522.4736.6376-.079.4857-1.2142.6193-1.6393-.3886-3.825-.9107-1.3113-.3279h-.1822v.1093l1.0929 1.0686 2.0035 1.8092 2.5075 2.3314.1275.5768-.3218.4554-.34-.0486-2.2039-1.6575-.85-.7468-1.9246-1.621h-.1275v.17l.4432.6496 2.3436 3.5214.1214 1.0807-.17.3521-.6071.2125-.6679-.1214-1.3721-1.9246L14.38 17.959l-1.1414-1.9428-.1397.079-.674 7.2552-.3156.3703-.7286.2793-.6071-.4614-.3218-.7468.3218-1.4753.3886-1.9246.3157-1.53.2853-1.9004.17-.6314-.0121-.0425-.1397.
4820182-1.4328 1.9672-2.1796 2.9446-1.7243 1.8456-.4128.164-.7164-.3704.0667-.6618.4008-.5889 2.386-3.0357 1.4389-1.882.929-1.0868-.0062-.1579h-.0546l-6.3385 4.1164-1.1293.1457-.4857-.4554.0608-.7467.2307-.2429 1.9064-1.3114Z"/>
483                        </svg>
484                        <span>Claude fragen</span>
485                    </a>
486                                    <a class="ai-research-link" href="https://www.perplexity.ai/search?q=Was%20kann%20Meeting%20Metrics%20%28meetingmetrics.ai%29%20und%20f%C3%BCr%20wen%20eignet%20es%20sich%3F" target="_blank" rel="noopener noreferrer">
487                        <svg viewBox="0 0 24 24" aria-hidden="true">
488                            <path d="M22.4 7.09h-2.31V.07l-7.51 6.35V.16h-1.16v6.2L4.49 0v7.09H1.6v10.4h2.89V24l6.93-6.36v6.2h1.16V17.8l6.93 6.18v-6.49h2.89V7.09Zm-3.47-4.53v4.53h-5.35l5.35-4.53ZM5.65 2.63l4.87 4.46H5.65V2.63ZM2.76 16.33V8.25h7.85l-6.12 6.11v1.97H2.76Zm2.89 5.04v-6.53l5.77-5.78v7.01l-5.77 5.3Zm12.7.03-5.77-5.15V9.06l5.77 5.78v6.56Zm2.89-5.07h-1.73v-1.97L13.39 8.25h7.85v8.08Z"/>
489                        </svg>
490                        <span>Perplexity fragen</span>
491                    </a>
492                            </div>
493        </div>
494    </div>
495</section>
496    </main>
497    <footer class="ftr" id="kontakt"
498    x-data="{
499        newsletterOpen: false,
500        newsletterLoaded: false,
501        openNewsletter() {
502            this.newsletterOpen = true;
503            if (! this.newsletterLoaded) {
504                this.loadNewsletterForm();
505            }
506        },
507        loadNewsletterForm() {
508            this.newsletterLoaded = true;
509            const create = () => window.hbspt.forms.create({
510                portalId: '49479766',
511                formId: '8058d67d-9396-439f-988b-5001c6ca5802',
512                region: 'na1',
513                target: '#newsletter-modal-form',
514            });
515            if (window.hbspt) {
516                create();
517                return;
518            }
519            const script = document.createElement('script');
520            script.src = 'https://js.hsforms.net/forms/embed/v2.js';
521            script.charset = 'utf-8';
522            script.addEventListener('load', create);
523            document.head.appendChild(script);
524        },
525    }"
526    @newsletter-open.window="openNewsletter()"
527    @keydown.escape.window="newsletterOpen = false">
528    <div class="container">
529        <div class="ftr-top">
530            <div class="ftr-brand">
531                <a class="ftr-logo" href="https://meetingmetrics.ai" aria-label="Meeting Metrics">
532                    <img src="https://meetingmetrics.ai/img/logo-dark.png" alt="Meeting Metrics" width="743" height="97">
533                </a>
534            </div>
535
536            <div class="ftr-connect">
537                <span class="ftr-badge">
538                    <svg viewBox="0 0 24 24" aria-hidden="true"><rect width="24" height="24" rx="5" fill="#d52b1e"></rect><path d="M13.9 5.5h-3.8v4.6H5.5v3.8h4.6v4.6h3.8v-4.6h4.6v-3.8h-4.6V5.5Z" fill="#fff"></path></svg>
539                    Hergestellt in der Schweiz
540                </span>
541
542                <div class="ftr-connect-links">
543                    <a class="ftr-store-chip" href="https://meetingmetrics.ai/apps">
544                        <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12.152 6.896c-.948 0-2.415-1.078-3.96-1.04-2.04.027-3.91 1.183-4.961 3.014-2.117 3.675-.546 9.103 1.519 12.09 1.013 1.454 2.208 3.09 3.792 3.039 1.52-.065 2.09-.987 3.935-.987 1.831 0 2.35.987 3.96.948 1.637-.026 2.676-1.48 3.676-2.948 1.156-1.688 1.636-3.325 1.662-3.415-.039-.013-3.182-1.221-3.22-4.857-.026-3.04 2.48-4.494 2.597-4.559-1.429-2.09-3.623-2.324-4.39-2.376-2-.156-3.675 1.09-4.61 1.09zM15.53 3.83c.843-1.012 1.4-2.427 1.246-3.83-1.206.052-2.662.805-3.532 1.818-.78.896-1.454 2.338-1.273 3.714 1.338.104 2.715-.688 3.559-1.701"/></svg>
545                        App Store
546                    </a>
547                    <a class="ftr-store-chip" href="https://meetingmetrics.ai/apps">
548                        <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M22.018 13.298l-3.919 2.218-3.515-3.493 3.543-3.521 3.891 2.202a1.49 1.49 0 0 1 0 2.594zM1.337.924a1.486 1.486 0 0 0-.112.568v21.017c0 .217.045.419.124.6l11.155-11.087L1.337.924zm12.207 10.065l3.258-3.238L3.45.195a1.466 1.466 0 0 0-.946-.179l11.04 10.973zm0 2.067l-11 10.933c.298.036.612-.016.906-.183l13.324-7.54-3.23-3.21z"/></svg>
549                        Google Play
550                    </a>
551                </div>
552            </div>
553        </div>
554
555        <div class="ftr-cols">
556            <nav class="ftr-col" aria-label="Produkt">
557                <h4>Produkt</h4>
558                <ul>
559                    <li><a href="https://meetingmetrics.ai">Überblick</a></li>
560                    <li><a href="https://meetingmetrics.ai#funktionen">Funktionen</a></li>
561                    <li><a href="https://meetingmetrics.ai#roi">ROI-Rechner</a></li>
562                    <li><a href="https://meetingmetrics.ai#preise">Preise</a></li>
563                    <li><a href="https://meetingmetrics.ai/apps">Apps</a></li>
564                </ul>
565            </nav>
566
567            <nav class="ftr-col ftr-col-wide" aria-label="Use Cases">
568                <h4>Use Cases</h4>
569                <ul>
570                    <li>
570<a href="https://meetingmetrics.ai/use-cases/consulting">Beratung &amp; Treuhand</a></li>
571                    <li><a href="https://meetingmetrics.ai/use-cases/rechtsberatung">Rechtsberatung</a></li>
572                    <li><a href="https://meetingmetrics.ai/use-cases/banken">Banken &amp; Finanzberater</a></li>
573                    <li><a href="https://meetingmetrics.ai/use-cases/sales">Vertrieb</a></li>
574                    <li><a href="https://meetingmetrics.ai/use-cases/vorstandssitzungen">Vorstände &amp; VR</a></li>
575                    <li><a href="https://meetingmetrics.ai/use-cases/kmu-industrie-handel">KMU, Industrie &amp; Handel</a></li>
576                    <li><a href="https://meetingmetrics.ai/use-cases/gemeinden-verwaltung">Gemeinden &amp; Verwaltung</a></li>
577                    <li><a href="https://meetingmetrics.ai/use-cases/bildung">Schulen &amp; Hochschulen</a></li>
578                    <li><a href="https://meetingmetrics.ai/use-cases/medizin">Medizin</a></li>
579                    <li><a href="https://meetingmetrics.ai/use-cases/events">Events &amp; Konferenzen</a></li>
580                </ul>
581            </nav>
582
583            <nav class="ftr-col" aria-label="Ressourcen">
584                <h4>Ressourcen</h4>
585                <ul>
586                    <li><a href="https://meetingmetrics.ai/blog">Blog</a></li>
587                                            <li><a href="https://meetingmetrics.ai/docs">Knowledge Base</a></li>
588                                        <li><a href="https://meetingmetrics.ai/videos">Videos</a></li>
589                    <li><button type="button" class="ftr-newsletter-trigger" @click="openNewsletter()">Newsletter</button></li>
590                    <li><a href="https://meetingmetrics.ai/partnerprogramm">Partnerprogramm</a></li>
591                    <li><a href="https://meetingmetrics.ai/api-docs">API-Dokumentation</a></li>
592                </ul>
593            </nav>
594
595            <div class="ftr-col ftr-col-contact">
596                <nav aria-label="Unternehmen">
597                    <h4>Unternehmen</h4>
598                    <ul>
599                        <li><a href="https://meetingmetrics.ai/about">Über uns</a></li>
600                        <li><a href="https://meetingmetrics.ai/contact">Kontakt</a></li>
601                        <li>
602                            <a class="ftr-link-social" href="https://www.linkedin.com/company/meetingmetricsai/" target="_blank" rel="noopener noreferrer">
603                                <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M20.45 20.45h-3.56v-5.57c0-1.33-.02-3.04-1.85-3.04-1.85 0-2.14 1.45-2.14 2.94v5.67H9.35V9h3.41v1.56h.05c.48-.9 1.63-1.85 3.36-1.85 3.6 0 4.27 2.37 4.27 5.45v6.29ZM5.34 7.43a2.06 2.06 0 1 1 0-4.13 2.06 2.06 0 0 1 0 4.13Zm1.78 13.02H3.55V9h3.57v11.45ZM22.22 0H1.77C.8 0 0 .78 0 1.75v20.5C0 23.22.79 24 1.77 24h20.45c.98 0 1.78-.78 1.78-1.75V1.75C24 .78 23.2 0 22.22 0Z"/></svg>
604                                LinkedIn
605                            </a>
606                        </li>
607                    </ul>
608                </nav>
609
610                <address class="ftr-address">
611                    <strong>Meeting Metrics GmbH</strong>
612                    <span>Lerchenfeldstrasse 3<br>9014 St.Gallen, Schweiz</span>
613                    <a href="mailto:[email protected]">[email protected]</a>
614                </address>
615            </div>
616        </div>
617
618        <div class="ftr-bottom">
619            <span>&copy; 2026 Meeting Metrics GmbH. Alle Rechte vorbehalten.</span>
620            <nav class="ftr-legal" aria-label="Rechtliches">
621                <a href="https://meetingmetrics.ai/agb">AGB</a>
622                <a href="https://meetingmetrics.ai/privacy">Datenschutz</a>
623                <a href="https://meetingmetrics.ai/imprint">Impressum</a>
624            </nav>
625            <div class="nav-lang" x-data="{ open: false }" @click.away="open = false" @keydown.escape="open = false">
626        <button
627            type="button"
628            class="nav-trigger nav-lang-trigger"
629            :aria-expanded="open"
630            aria-haspopup="true"
631            aria-label="Sprache wählen"
632            @click="open = !open">
633            DE
634            <svg class="nav-chevron" :class="{ 'is-open': open }
634" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true"><path d="M6 9l6 6 6-6"/></svg>
635        </button>
636
637        <div class="nav-lang-menu" x-show="open" x-transition.opacity.duration.120ms x-cloak>
638                            <a
639                    href="/about?lang=de"
640                    class="is-active"
641                     aria-current="true"                     @click="open = false">Deutsch</a>
642                            <a
643                    href="/en/about"
644                    class=""
645                                        @click="open = false">English</a>
646                    </div>
647    </div>
648        </div>
649    </div>
650
651    <div
652        class="newsletter-modal"
653        x-cloak
654        x-show="newsletterOpen"
655        x-transition.opacity
656        role="dialog"
657        aria-modal="true"
658        aria-labelledby="newsletter-modal-title"
659        @click.self="newsletterOpen = false">
660        <div class="newsletter-modal-panel" x-trap.noscroll="newsletterOpen">
661            <button class="newsletter-modal-close" type="button" @click="newsletterOpen = false" aria-label="Formular schliessen">
662                <svg viewBox="0 0 24 24" fill="none" aria-hidden="true"><path d="m6 6 12 12M18 6 6 18" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/></svg>
663            </button>
664
665            <div class="newsletter-modal-head">
666                <p class="kicker">Newsletter</p>
667                <h2 id="newsletter-modal-title">Bleib auf dem Laufenden.</h2>
668                <p>Einmal im Monat: Produkt-Updates, neue Guides und kurze Praxis-Tipps rund um Meeting-Protokolle, Datenschutz und effiziente Nachbereitung.</p>
669            </div>
670
671            <div id="newsletter-modal-form" class="newsletter-modal-form" wire:ignore></div>
672        </div>
673    </div>
674</footer>
675
676        
676<script src="https://meetingmetrics.ai/vendor/livewire/livewire.min.js?id=b7ac2fb1"   data-csrf="fEMpKXy6pgLqC3UGoJnEyJK2DDPPU7mghu0RX67n" data-module-url="https://meetingmetrics.ai/livewire-6a0881c5" data-update-uri="https://meetingmetrics.ai/livewire-6a0881c5/update" data-navigate-once="true"></script>
676
677    <div
678    class="spatie-support-bubble pointer-events-none fixed bottom-0 right-0 text-base items-end z-30 flex-col m-4 gap-3"
679    style="display: none;"
680>
681    <div
682        class="spatie-support-bubble__container pointer-events-none overflow-hidden rounded-2xl border border-gray-200/80 bg-white shadow-[0_24px_48px_-16px_rgba(17,12,46,0.22)] transition duration-300 ease-out translate-x-full opacity-0"
683        data-lenis-prevent
684        role="dialog"
685        aria-labelledby="support-bubble-heading"
686        aria-hidden="true"
687    >
688        <div class="spatie-support-bubble__form pointer-events-auto">
689            <form
690    method="post"
691    enctype="multipart/form-data"
692    action="https://meetingmetrics.ai/support-bubble"
693    class="spatie-support-bubble__form-inner text-base"
694    data-placeholders="{&quot;technical_issue&quot;:&quot;Was ist passiert – und auf welcher Seite? Je konkreter, desto schneller können wir helfen.&quot;,&quot;feedback&quot;:&quot;Was hat dir gefallen, was können wir besser machen?&quot;,&quot;demo_request&quot;:&quot;Für welches Team und wann würde eine kurze Demo passen?&quot;,&quot;billing&quot;:&quot;Worum geht es bei Tarif, Rechnung oder Sitzplätzen?&quot;,&quot;feature_request&quot;:&quot;Welches Feature fehlt dir – und warum wäre es hilfreich?&quot;,&quot;other&quot;:&quot;Erzähl uns kurz, worum es geht.&quot;}"
695>
696    <header class="spatie-support-bubble__header">
697        <span class="spatie-support-bubble__header-icon" aria-hidden="true">
698            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
699                <path d="M12 20.25c4.97 0 9-3.694 9-8.25s-4.03-8.25-9-8.25S3 7.444 3 12c0 2.104.859 4.023 2.273 5.48.432.447.74 1.04.586 1.641a4.483 4.483 0 0 1-.923 1.785A5.969 5.969 0 0 0 6 21c1.282 0 2.47-.402 3.445-1.087.81.22 1.668.337 2.555.337Z"/>
700            </svg>
701        </span>
702        <div class="spatie-support-bubble__header-copy">
703            <h2 id="support-bubble-heading" class="spatie-support-bubble__title">
704                Hilfe &amp; Feedback
705            </h2>
706            <p class="spatie-support-bubble__badge">Antwort in einem Werktag</p>
707        </div>
708        <button
709            type="button"
710            class="spatie-support-bubble__header-close"
711            data-support-bubble-close
712            aria-label="Schliessen"
713        >
714            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
715                <path d="M6 18 18 6M6 6l12 12"/>
716            </svg>
717        </button>
718    </header>
719
720    <div class="spatie-support-bubble__body">
721        <p class="spatie-support-bubble__intro">Sag uns kurz, worum es geht. Wir antworten werktags in der Regel innerhalb eines Arbeitstages.</p>
722
723        <p class="spatie-support-bubble__error" role="alert" hidden></p>
724
725        <div id="my_name_Fu4kBjzo6A8Sxn1i_wrap"  style="display: none" aria-hidden="true">
726        <input id="my_name_Fu4kBjzo6A8Sxn1i"
727               name="my_name_Fu4kBjzo6A8Sxn1i"
728               type="text"
729               value=""
730                              autocomplete="nope"
731               tabindex="-1">
732        <input name="valid_from"
733               type="text"
734               value="eyJpdiI6InpXNWF6c2gvdCs0S0U1TWJwVWpCRFE9PSIsInZhbHVlIjoicWttMXdsZVhVK1hQcmRuNmR2YWhrQT09IiwibWFjIjoiZDI2MTk0ZjJmNTJmN2NkNDE0N2I0N2IxNjRkNTE1ZDAxNGFiNTU5NmQyMmFkYWUyZmVmZjJmZWI0OTA4ZDk5YiIsInRhZyI6IiJ9"
735                              autocomplete="off"
736               tabindex="-1">
737    </div>
738
739        <input type="hidden" name="url" value="https://meetingmetrics.ai/about">
740
741        <div class="spatie-support-bubble__identity">
742                            <label
743    for="support-bubble-name"
744    class="spatie-support-bubble__field "
745>
746    <span class="spatie-support-bubble__label">Name</span>
747
748            <input
749            type="text"
750            name="name"
751            id="support-bubble-name"
752            required
753            value=""
754             autocomplete="name"              placeholder="Max Muster"             class="spatie-support-bubble__control w-full max-w-full"
755        >
756    </label>
757            
758                            <label
759    for="support-bubble-email"
760    class="spatie-support-bubble__field "
761>
762    <span class="spatie-support-bubble__label">E-Mail</span>
763
764            <input
765            type="email"
766            name="email"
767            id="support-bubble-email"
768            required
769            value=""
770             autocomplete="email"              placeholder="[email protected]"             class="spatie-support-bubble__control w-full max-w-full"
771        >
772    </label>
773                    </div>
774
775                    <label for="support-bubble-subject" class="spatie-support-bubble__field">
776                <span class="spatie-support-bubble__label">Anliegen</span>
777                <span class="spatie-support-bubble__select-wrap">
778                    <select
779                        name="subject"
780                        id="support-bubble-subject"
781                        class="spatie-support-bubble__control w-full max-w-full spatie-support-bubble__select"
782                        required
783                    >
784                        <option value="" disabled selected>Bitte Anliegen wählen</option>
785                                                    <option value="technical_issue">Technisches Problem</option>
786                                                    <option value="feedback">Feedback</option>
787                                                    <option value="demo_request">Demo anfragen</option>
788                                                    <option value="billing">Abrechnung &amp; Tarif</option>
789                                                    <option value="feature_request">Feature-Wunsch</option>
790                                                    <option value="other">Sonstiges</option>
791                                            </select>
792                    <svg class="spatie-support-bubble__select-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
793                        <polyline points="6 9 12 15 18 9"/>
794                    </svg>
795                </span>
796            </label>
797        
798                    <label for="support-bubble-message" class="spatie-support-bubble__field">
799                <span class="spatie-support-bubble__label">Wie können wir helfen?</span>
800                <textarea
801                    name="message"
802                    id="support-bubble-message"
803                    rows="4"
804                    required
805                    minlength="10"
806                    maxlength="3000"
807                    placeholder="Erzähl uns kurz, worum es geht."
808                    class="spatie-support-bubble__control w-full max-w-full spatie-support-bubble__textarea"
809                ></textarea>
810            </label>
811        
812        <div class="spatie-support-bubble__field">
813            <label for="support-bubble-screenshot" class="spatie-support-bubble__label">Screenshot (optional)</label>
814            <input
815                type="file"
816                name="screenshot"
817                id="support-bubble-screenshot"
818                accept="image/png,image/jpeg,image/webp"
819                aria-describedby="support-bubble-screenshot-hint"
820                class="spatie-support-bubble__control w-full max-w-full"
821            >
822            <div data-support-bubble-screenshot-preview hidden class="spatie-support-bubble__attachment">
823                <img data-support-bubble-screenshot-image hidden alt="" width="44" height="44" class="spatie-support-bubble__attachment-image">
824                <span data-support-bubble-screenshot-name class="spatie-support-bubble__attachment-name"></span>
825                <button
826                    type="button"
827                    data-support-bubble-remove-screenshot
828                    class="spatie-support-bubble__screenshot-remove"
829                    aria-label="Screenshot entfernen"
830                    title="Screenshot entfernen"
831                >
832                    <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" aria-hidden="true">
833                        <path d="M6 6l12 12M6 18 18 6"/>
834                    </svg>
835                </button>
836            </div>
837            <small id="support-bubble-screenshot-hint">PNG, JPEG oder WebP. Maximal 2 MB.</small>
838        </div>
839
840        <button type="submit" class="spatie-support-bubble__submit">
841            <span class="spatie-support-bubble__submit-label">Nachricht senden</span>
842        </button>
843    </div>
844</form>
845        </div>
846
847        <div class="spatie-support-bubble__response pointer-events-auto" hidden></div>
848    </div>
849
850    <div class="spatie-support-bubble__button pointer-events-auto">
851        <button
852    type="button"
853    aria-label="Support öffnen"
854    aria-expanded="false"
855    aria-controls="support-bubble-heading"
856    class="hidden sm:flex items-center justify-center bg-primary-500 hover:bg-primary-600 rounded-full shadow-lg shadow-primary-500/25 w-14 h-14 text-white p-0 transition"
857>
858    <svg
859    xmlns="http://www.w3.org/2000/svg"
860    fill="none"
861    viewBox="0 0 24 24"
862    stroke-width="1.7"
863    stroke="currentColor"
864    id="support-bubble-chat-icon"
865    class="absolute inset-0 m-auto size-7 opacity-100 transition-opacity duration-200 ease-out"
866    aria-hidden="true"
867>
868    <path
869        stroke-linecap="round"
870        stroke-linejoin="round"
871        d="M12 20.25c4.97 0 9-3.694 9-8.25s-4.03-8.25-9-8.25S3 7.444 3 12c0 2.104.859 4.023 2.273 5.48.432.447.74 1.04.586 1.641a4.483 4.483 0 0 1-.923 1.785A5.969 5.969 0 0 0 6 21c1.282 0 2.47-.402 3.445-1.087.81.22 1.668.337 2.555.337Z"
872    />
873</svg>
874    <svg
875    xmlns="http://www.w3.org/2000/svg"
876    fill="none"
877    viewBox="0 0 24 24"
878    stroke-width="1.7"
879    stroke="currentColor"
880    id="support-bubble-close-icon"
881    class="absolute inset-0 m-auto size-7 opacity-0 transition-opacity duration-200 ease-out"
882    aria-hidden="true"
883>
884    <path
885        stroke-linecap="round"
886        stroke-linejoin="round"
887        d="M6 18 18 6M6 6l12 12"
888    />
889</svg>
890</button>
891    </div>
892</div>
893
894    
894<script>
895    function bootstrapSupportBubble(element) {
896        element.style.display = 'flex';
897
898        const container = element.querySelector('.spatie-support-bubble__container');
899        const formContainer = element.querySelector('.spatie-support-bubble__form');
900        const responseContainer = element.querySelector('.spatie-support-bubble__response');
901        const errorMessage = element.querySelector('.spatie-support-bubble__error');
902        const toggleButton = element.querySelector('.spatie-support-bubble__button button');
903        const form = element.querySelector('.spatie-support-bubble__form form');
904        const chatIcon = element.querySelector('#support-bubble-chat-icon');
905        const closeIcon = element.querySelector('#support-bubble-close-icon');
906        const topicSelect = element.querySelector('#support-bubble-subject');
907        const messageField = element.querySelector('#support-bubble-message');
908        const submitButton = form?.querySelector('button[type="submit"]');
909
910        const screenshotInput = form?.querySelector('[name="screenshot"]');
911        const removeScreenshotButton = form?.querySelector('[data-support-bubble-remove-screenshot]');
912        const screenshotPreview = form?.querySelector('[data-support-bubble-screenshot-preview]');
913        const screenshotImage = form?.querySelector('[data-support-bubble-screenshot-image]');
914        const screenshotName = form?.querySelector('[data-support-bubble-screenshot-name]');
915        let screenshotUrl = null;
916        let submitting = false;
917
918        let placeholders = {};
919        try {
920            placeholders = JSON.parse(form?.dataset.placeholders || '{}');
921        } catch (error) {
922            placeholders = {};
923        }
924
925        const defaultPlaceholder = messageField?.getAttribute('placeholder') || '';
926
927        let fullTranslateClass = 'translate-x-full';
928        let zeroTranslateClass = 'translate-x-0';
929
930        
931        const isOpen = () => container.classList.contains('opacity-100');
932
933        const setOpen = (open) => {
934            container.style.pointerEvents = open ? 'auto' : 'none';
935            if (open) {
936                responseContainer.hidden = true;
937                responseContainer.style.display = 'none';
938                formContainer.style.display = 'block';
939                container.classList.remove(fullTranslateClass, 'opacity-0');
940                container.classList.add(zeroTranslateClass, 'opacity-100');
941                container.setAttribute('aria-hidden', 'false');
942                toggleButton?.setAttribute('aria-expanded', 'true');
943                toggleButton?.setAttribute('aria-label', "Schliessen");
944                chatIcon?.classList.remove('opacity-100');
945                chatIcon?.classList.add('opacity-0');
946                closeIcon?.classList.remove('opacity-0');
947                closeIcon?.classList.add('opacity-100');
948
949                window.requestAnimationFrame(() => {
950                    const firstField = form?.querySelector('select, textarea, input:not([type="hidden"]):not([hidden])');
951                    firstField?.focus();
952                });
953            } else {
954                container.classList.remove(zeroTranslateClass, 'opacity-100');
955                container.classList.add(fullTranslateClass, 'opacity-0');
956                container.setAttribute('aria-hidden', 'true');
957                toggleButton?.setAttribute('aria-expanded', 'false');
958                toggleButton?.setAttribute('aria-label', "Support \u00f6ffnen");
959                closeIcon?.classList.remove('opacity-100');
960                closeIcon?.classList.add('opacity-0');
961                chatIcon?.classList.remove('opacity-0');
962                chatIcon?.classList.add('opacity-100');
963            }
964        };
965
966        const updatePlaceholder = () => {
967            if (! messageField) {
968                return;
969            }
970
971            const selected = topicSelect?.value;
972            messageField.placeholder = (selected && placeholders[selected])
973                ? placeholders[selected]
974                : defaultPlaceholder;
975        };
976
977        toggleButton?.addEventListener('click', () => {
978            setOpen(! isOpen());
979        });
980
981        element.querySelectorAll('[data-support-bubble-close]').forEach((closeControl) 
981=> {
982            closeControl.addEventListener('click', () => setOpen(false));
983        });
984
985        topicSelect?.addEventListener('change', updatePlaceholder);
986
987        document.addEventListener('keydown', (event) => {
988            if (event.key === 'Escape' && isOpen()) {
989                setOpen(false);
990            }
991        });
992
993        const showError = (message) => {
994            errorMessage.textContent = message;
995            errorMessage.hidden = !message;
996            errorMessage.style.display = message ? 'block' : 'none';
997        };
998
999        const validateScreenshot = () => {
1000            const file = screenshotInput?.files[0];
1001            if (!file) {
1002                return true;
1003            }
1004
1005            let message = '';
1006            if (!['image/png', 'image/jpeg', 'image/webp'].includes(file.type)) {
1007                message = "Bitte w\u00e4hle ein Bild im Format PNG, JPEG oder WebP.";
1008            } else if (file.size > 2 * 1024 * 1024) {
1009                message = "Der Screenshot darf h\u00f6chstens 2 MB gross sein.";
1010            }
1011
1012            screenshotInput.setAttribute('aria-invalid', message ? 'true' : 'false');
1013            if (message) {
1014                showError(message);
1015            }
1016            return !message;
1017        };
1018
1019        const updateScreenshotPreview = (valid = false) => {
1020            if (screenshotUrl) {
1021                URL.revokeObjectURL(screenshotUrl);
1022                screenshotUrl = null;
1023            }
1024
1025            const file = screenshotInput.files[0];
1026            screenshotPreview.hidden = !file;
1027            screenshotInput.hidden = !!file;
1028            screenshotName.textContent = file?.name || '';
1029            screenshotName.title = file?.name || '';
1030            screenshotImage.hidden = true;
1031            screenshotImage.removeAttribute('src');
1032
1033            if (file && valid) {
1034                screenshotUrl = URL.createObjectURL(file);
1035                screenshotImage.src = screenshotUrl;
1036                screenshotImage.hidden = false;
1037            }
1038        };
1039
1040        screenshotImage?.addEventListener('error', () => {
1041            screenshotImage.hidden = true;
1042        });
1043
1044        screenshotInput?.addEventListener('change', () => {
1045            showError('');
1046            updateScreenshotPreview(validateScreenshot());
1047            if (screenshotInput.files.length) {
1048                removeScreenshotButton.focus();
1049            }
1050        });
1051
1052        removeScreenshotButton?.addEventListener('click', () => {
1053            screenshotInput.value = '';
1054            screenshotInput.removeAttribute('aria-invalid');
1055            updateScreenshotPreview();
1056            showError('');
1057            screenshotInput.focus();
1058        });
1059
1060        form?.addEventListener('submit', (event) => {
1061            event.preventDefault();
1062
1063            if (submitting || !validateScreenshot()) {
1064                return;
1065            }
1066
1067            const formData = new FormData(event.target);
1068            if (!screenshotInput?.files.length) {
1069                formData.delete('screenshot');
1070            }
1071            submitting = true;
1072            form.setAttribute('aria-busy', 'true');
1073            const originalLabel = submitButton?.textContent;
1074
1075            if (submitButton) {
1076                submitButton.disabled = true;
1077                submitButton.textContent = "Wird gesendet\u2026";
1078            }
1079
1080            errorMessage.hidden = true;
1081            errorMessage.style.display = 'none';
1082
1083            fetch(event.target.action, {
1084                headers: {Accept: 'application/json'},
1085                body: formData,
1086                method: 'post',
1087            })
1088                .then((response) => {
1089                    if (response.status !== 200) {
1090                        throw response;
1091                    }
1092
1093                    event.target.reset();
1094                    updateScreenshotPreview();
1095                    screenshotInput.removeAttribute('aria-invalid');
1096                    updatePlaceholder();
1097
1098                    return response.text();
1099                })
1100                .then((html) => {
1101                    responseContainer.innerHTML = html;
1102                    responseContainer.hidden = false;
1103                    responseContainer.style.display = 'flex';
1104                    formContainer.style.display = 'none';
1105                    errorMessage.hidden = true;
1106                    errorMessage.style.display = 'none';
1107                })
1108                .catch(async (errorResponse) => {
1109                    let message = errorResponse.status === 413
1110                        ? "Der Screenshot darf h\u00f6chstens 2 MB gross sein."                        : "Deine Nachricht konnte nicht gesendet werden. Bitte versuche es erneut.";
1111
1112                    try {
1113                        const response = await errorResponse.json();
1114                        if (errorResponse.status === 422) {
1115                            message = Object.values(response.errors || {}).flat().join(' ') || response.message || message;
1116                        }
1117                    } catch (error) {
1118                        // Keep the fallback message.
1119                    }
1120
1121                    showError(message);
1122                })
1123                .finally(() => {
1124                    submitting = false;
1125                    form.removeAttribute('aria-busy');
1126                    if (submitButton) {
1127                        submitButton.disabled = false;
1128                        if (originalLabel) {
1129                            submitButton.textContent = originalLabel;
1130                        }
1131                    }
1132                });
1133        });
1134    }
1135
1136    window.addEventListener('load', () => {
1137        document
1138            .querySelectorAll('.spatie-support-bubble')
1139            .forEach((form) => bootstrapSupportBubble(form));
1140    });
1141</script>
1141
1142    <style>
1143    [data-mm-consent][hidden],
1144    [data-mm-consent-settings][hidden],
1145    [data-mm-consent-preferences][hidden] {
1146        display: none !important;
1147    }
1148
1149    .mm-consent {
1150        position: fixed;
1151        inset: auto 16px 16px;
1152        z-index: 10000;
1153        max-width: 720px;
1154        max-height: calc(100vh - 32px);
1155        overflow-y: auto;
1156        overscroll-behavior: contain;
1157        margin: 0 auto;
1158        padding: 20px;
1159        color: #07111f;
1160        background: #fff;
1161        border: 1px solid #dce3ee;
1162        border-radius: 12px;
1163        box-shadow: 0 22px 58px rgba(7, 17, 31, .18);
1164        font-family: "Helvetica Neue", Helvetica, Arial, ui-sans-serif, system-ui, sans-serif;
1165    }
1166
1167    @supports (max-height: 100dvh) {
1168        .mm-consent {
1169            max-height: calc(100dvh - 32px);
1170        }
1171    }
1172
1173    .mm-consent__short {
1174        display: none;
1175    }
1176
1177    .mm-consent__title {
1178        margin: 0;
1179        font-size: 18px;
1180        font-weight: 700;
1181        line-height: 1.3;
1182    }
1183
1184    .mm-consent__copy {
1185        margin: 8px 0 0;
1186        color: #5f6b7d;
1187        font-size: 14px;
1188        line-height: 1.55;
1189    }
1190
1191    .mm-consent__copy a {
1192        color: #2563eb;
1193        text-decoration: underline;
1194        text-underline-offset: 2px;
1195    }
1196
1197    .mm-consent__actions {
1198        display: flex;
1199        flex-wrap: wrap;
1200        gap: 8px;
1201        margin-top: 16px;
1202    }
1203
1204    .mm-consent__button {
1205        min-height: 42px;
1206        padding: 0 16px;
1207        color: #07111f;
1208        background: #fff;
1209        border: 1px solid #c6d1e0;
1210        border-radius: 8px;
1211        font: inherit;
1212        font-size: 14px;
1213        font-weight: 600;
1214        cursor: pointer;
1215    }
1216
1217    .mm-consent__button:hover {
1218        background: #f7f9fc;
1219    }
1220
1221    .mm-consent__button:focus-visible,
1222    .mm-consent-settings:focus-visible {
1223        outline: 2px solid #2563eb;
1224        outline-offset: 2px;
1225    }
1226
1227    .mm-consent__button--primary {
1228        color: #fff;
1229        background: #17191f;
1230        border-color: #17191f;
1231        box-shadow:
1232            inset 0 1px 0 rgba(255, 255, 255, .12),
1233            0 1px 2px rgba(7, 17, 31, .16);
1234    }
1235
1236    .mm-consent__button--primary:hover {
1237        background: #23262e;
1238        border-color: #23262e;
1239    }
1240
1241    /* While the preference panel is open, "Auswahl speichern" is the single
1242       primary action — keep "Alle akzeptieren" neutral so there is no
1243       double-primary stack. */
1244    .mm-consent__preferences:not([hidden]) ~ .mm-consent__actions [data-mm-consent-accept] {
1245        color: #07111f;
1246        background: #fff;
1247        border-color: #c6d1e0;
1248        box-shadow: none;
1249    }
1250
1251    .mm-consent__preferences:not([hidden]) ~ .mm-consent__actions [data-mm-consent-accept]:hover {
1252        background: #f7f9fc;
1253        border-color: #c6d1e0;
1254    }
1255
1256    .mm-consent__preferences {
1257        display: grid;
1258        gap: 10px;
1259        margin-top: 16px;
1260        padding-top: 16px;
1261        border-top: 1px solid #dce3ee;
1262    }
1263
1264    .mm-consent__option {
1265        display: flex;
1266        gap: 12px;
1267        align-items: flex-start;
1268        padding: 12px;
1269        background: #f7f9fc;
1270        border-radius: 8px;
1271    }
1272
1273    .mm-consent__option input {
1274        width: 18px;
1275        height: 18px;
1276        margin: 2px 0 0;
1277        accent-color: #2563eb;
1278    }
1279
1280    .mm-consent__option strong,
1281    .mm-consent__option span {
1282        display: block;
1283    }
1284
1285    .mm-consent__option span {
1286        margin-top: 3px;
1287        color: #5f6b7d;
1288        font-size: 13px;
1289        line-height: 1.45;
1290    }
1291
1292    .mm-consent-settings {
1293        position: fixed;
1294        bottom: 12px;
1295        left: 12px;
1296        z-index: 9999;
1297        padding: 7px 10px;
1298        color: #334155;
1299        background: rgba(255, 255, 255, .96);
1300        border: 1px solid #dce3ee;
1301        border-radius: 999px;
1302        box-shadow: 0 4px 14px rgba(7, 17, 31, .08);
1303        font: 500 12px/1.2 "Helvetica Neue", Helvetica, Arial, ui-sans-serif, system-ui, sans-serif;
1304        cursor: pointer;
1305    }
1306
1307    .dark .mm-consent {
1308        color: #e6edf7;
1309        background: #10141c;
1310        border-color: #262d3a;
1311        box-shadow: 0 22px 58px rgba(0, 0, 0, .55);
1312    }
1313
1314    .dark .mm-consent__copy,
1315    .dark .mm-consent__option span {
1316        color: #9aa6b8;
1317    }
1318
1319    .dark .mm-consent__copy a {
1320        color: #7aa5ff;
1321    }
1322
1323    .dark .mm-consent__preferences {
1324        border-top-color: #262d3a;
1325    }
1326
1327    .dark .mm-consent__option {
1328        background: #171d27;
1329    }
1330
1331    .dark .mm-consent__button,
1332    .dark .mm-consent-settings {
1333        color: #e6edf7;
1334        background: #171d27;
1335        border-color: #303848;
1336    }
1337
1338    .dark .mm-consent__button:hover {
1339        background: #1f2733;
1340    }
1341
1342    .dark .mm-consent__button--primary {
1343        color: #0b0f16;
1344        background: #e6edf7;
1345        border-color: #e6edf7;
1346    }
1347
1348    .dark .mm-consent__button--primary:hover {
1349        background: #ffffff;
1350        border-color: #ffffff;
1351    }
1352
1353    .dark .mm-consent__preferences:not([hidden]) ~ .mm-consent__actions [data-mm-consent-accept] {
1354        color: #e6edf7;
1355        background: #171d27;
1356        border-color: #303848;
1357    }
1358
1359    /* Tablet: keep the full copy, but tighten the box and let the actions
1360       sit on one row without wrapping into a ragged block. */
1361    @media (max-width: 900px) {
1362        .mm-consent {
1363            padding: 18px;
1364        }
1365
1366        .mm-consent__actions {
1367            gap: 8px;
1368        }
1369
1370        .mm-consent__button {
1371            flex: 1 1 auto;
1372            padding: 0 12px;
1373        }
1374    }
1375
1376    /* Phone: short headline + short copy, two-up action grid. */
1377    @media (max-width: 639px) {
1378        .mm-consent {
1379            inset: auto 10px 10px;
1380            max-height: calc(100vh - 20px);
1381            padding: 16px;
1382            border-radius: 14px;
1383        }
1384
1385        .mm-consent__full {
1386            display: none;
1387        }
1388
1389        .mm-consent__short {
1390            display: inline;
1391        }
1392
1393        .mm-consent__title {
1394            font-size: 16px;
1395        }
1396
1397        .mm-consent__copy {
1398            margin-top: 6px;
1399            font-size: 13px;
1400            line-height: 1.5;
1401        }
1402
1403        .mm-consent__preferences {
1404            gap: 8px;
1405            margin-top: 14px;
1406            padding-top: 14px;
1407        }
1408
1409        .mm-consent__option {
1410            padding: 10px;
1411            font-size: 14px;
1412        }
1413
1414        .mm-consent__option span {
1415            font-size: 12px;
1416        }
1417
1418        .mm-consent__actions {
1419            display: grid;
1420            grid-template-columns: 1fr 1fr;
1421            margin-top: 14px;
1422        }
1423
1424        .mm-consent__button {
1425            width: 100%;
1426            min-height: 44px;
1427            padding: 0 10px;
1428        }
1429
1430        .mm-consent__button--wide {
1431            grid-column: 1 / -1;
1432        }
1433
1434        .mm-consent-settings {
1435            bottom: 10px;
1436            left: 10px;
1437        }
1438    }
1439
1440    @supports (max-height: 100dvh) {
1441        @media (max-width: 639px) {
1442            .mm-consent {
1443                max-height: calc(100dvh - 20px);
1444            }
1445        }
1446    }
1447
1448    @media (min-width: 760px) {
1449        .mm-consent {
1450            right: 24px;
1451            bottom: 24px;
1452            left: auto;
1453            width: min(720px, calc(100vw - 48px));
1454        }
1455    }
1456</style>
1457
1458<div
1459    class="mm-consent"
1460    data-mm-consent
1461    role="dialog"
1462    aria-modal="true"
1463    aria-labelledby="mm-consent-title"
1464    hidden
1465>
1466    <h2 class="mm-consent__title" id="mm-consent-title">
1467        <span class="mm-consent__full">Deine Privatsphäre-Einstellungen</span>
1468        <span class="mm-consent__short">Privatsphäre</span>
1469    </h2>
1470    <p class="mm-consent__copy">
1471        <span class="mm-consent__full">Analyse- und Marketing-Technologien sind standardmässig aktiv, damit wir die Nutzung der Website verstehen und unsere Kampagnen messen können. Du kannst beides jederzeit deaktivieren.</span>
1472        <span class="mm-consent__short">Analyse und Marketing sind standardmässig aktiv und können jederzeit deaktiviert werden.</span>
1473        <a href="https://meetingmetrics.ai/privacy">Mehr erfahren</a>
1474    </p>
1475
1476    <div class="mm-consent__preferences" data-mm-consent-preferences hidden>
1477        <label class="mm-consent__option">
1478            <input type="checkbox" checked disabled>
1479            <span>
1480                <strong>Notwendig</strong>
1481                <span>Speichert deine Auswahl und stellt die Website bereit.</span>
1482            </span>
1483        </label>
1484        <label class="mm-consent__option">
1485            <input type="checkbox" data-mm-consent-analytics>
1486            <span>
1487                <strong>Analyse</strong>
1488                <span>Hilft uns mit Google Analytics und Microsoft Clarity, die Website zu verbessern.</span>
1489            </span>
1490        </label>
1491        <label class="mm-consent__option">
1492            <input type="checkbox" data-mm-consent-marketing>
1493            <span>
1494                <strong>Marketing</strong>
1495                <span>Misst Google-Ads- und LinkedIn-Kampagnen und ermöglicht Website-Retargeting auf öffentlichen Seiten.</span>
1496            </span>
1497        </label>
1498    </div>
1499
1500    <div class="mm-consent__actions">
1501        <button class="mm-consent__button mm-consent__button--primary" type="button" data-mm-consent-accept>
1502            Alle akzeptieren
1503        </button>
1504        <button class="mm-consent__button" type="button" data-mm-consent-reject>
1505            Nur notwendige
1506        </button>
1507        <button class="mm-consent__button mm-consent__button--wide" type="button" data-mm-consent-customize>
1508            Einstellungen
1509        </button>
1510        <button class="mm-consent__button mm-consent__button--primary mm-consent__button--wide" type="button" data-mm-consent-save hidden>
1511            Auswahl speichern
1512        </button>
1513    </div>
1514</div>
1515
1516    <button class="mm-consent-settings" type="button" data-mm-consent-settings hidden>
1517        Cookie-Einstellungen
1518    </button>
1519
1520<script>
1521    (() => {
1522        // wire:navigate swaps the <body> and re-runs this script. The consent
1523        // state (listeners, applied choice, gtag stub) must survive, but the
1524        // banner and settings button have to be bound to the fresh nodes.
1525        const queryUi = () => {
1526            const consentDialog = document.querySelector('[data-mm-consent]');
1527
1528            return {
1529                consentDialog,
1530                settingsButton: document.querySelector('[data-mm-consent-settings]'),
1531                preferences: consentDialog.querySelector('[data-mm-consent-preferences]'),
1532                analyticsCheckbox: consentDialog.querySelector('[data-mm-consent-analytics]'),
1533                marketingCheckbox: consentDialog.querySelector('[data-mm-consent-marketing]'),
1534                customizeButton: consentDialog.querySelector('[data-mm-consent-customize]'),
1535                saveButton: consentDialog.querySelector('[data-mm-consent-save]'),
1536                acceptButton: consentDialog.querySelector('[data-mm-consent-accept]'),
1537                rejectButton: consentDialog.querySelector('[data-mm-consent-reject]'),
1538            };
1539        };
1540
1541        if (window.mmConsent) {
1542            window.mmConsent.bind(queryUi());
1543
1544            return;
1545        }
1546
1547        const storageKey = 'meeting-metrics-cookie-consent-v1';
1548        let ui = queryUi();
1549        const listeners = [];
1550        const defaultConsent = Object.freeze({ analytics: true, marketing: true });
1551        let appliedConsent = defaultConsent;
1552
1553        const readConsent = () => {
1554            try {
1555                const value = JSON.parse(localStorage.getItem(storageKey));
1556
1557                if (typeof value?.analytics === 'boolean' && typeof value?.marketing === 'boolean') {
1558                    return {
1559                        analytics: value.analytics,
1560                        marketing: value.marketing,
1561                    };
1562                }
1563            } catch (error) {
1564                return null;
1565            }
1566
1567            return null;
1568        };
1569
1570        const ensureGtag = (consent) => {
1571            if (window.gtag) {
1572                return;
1573            }
1574
1575            window.dataLayer = window.dataLayer || [];
1576            window.gtag = function() {
1577                window.dataLayer.push(arguments);
1578            };
1579            window.gtag('consent', 'default', {
1580                ad_storage: consent.marketing ? 'granted' : 'denied',
1581                ad_user_data: consent.marketing ? 'granted' : 'denied',
1582                ad_personalization: consent.marketing ? 'granted' : 'denied',
1583                analytics_storage: consent.analytics ? 'granted' : 'denied',
1584            });
1585            window.gtag('js', new Date());
1586        };
1587
1588        const updateConsentMode = (consent) => {
1589            ensureGtag(appliedConsent);
1590            window.gtag('consent', 'update', {
1591                ad_storage: consent.marketing ? 'granted' : 'denied',
1592                ad_user_data: consent.marketing ? 'granted' : 'denied',
1593                ad_personalization: consent.marketing ? 'granted' : 'denied',
1594                analytics_storage: consent.analytics ? 'granted' : 'denied',
1595            });
1596        };
1597
1598        const applyConsent = (consent) => {
1599            updateConsentMode(consent);
1600
1601            const results = listeners.map((listener) => {
1602                try {
1603                    return listener(consent);
1604                } catch (error) {
1605                    return null;
1606                }
1607            });
1608
1609            appliedConsent = consent;
1610
1611            window.dispatchEvent(new CustomEvent('mm:consent-changed', { detail: consent }));
1612
1613            return Promise.allSettled(results);
1614        };
1615
1616        const showDialog = (showPreferences = false) => {
1617            const consent = readConsent();
1618
1619            ui.analyticsCheckbox.checked = consent?.analytics ?? defaultConsent.analytics;
1620            ui.marketingCheckbox.checked = consent?.marketing ?? defaultConsent.marketing;
1621            ui.preferences.hidden = !showPreferences;
1622            ui.customizeButton.hidden = showPreferences;
1623            ui.saveButton.hidden = !showPreferences;
1624            if (ui.settingsButton) {
1625                ui.settingsButton.hidden = true;
1626            }
1627            ui.consentDialog.hidden = false;
1628        };
1629
1630        const hideDialog = () => {
1631            ui.consentDialog.hidden = true;
1632            if (ui.settingsButton) {
1633                ui.settingsButton.hidden = false;
1634            }
1635        };
1636
1637        const saveConsent = (consent) => {
1638            const choice = {
1639                analytics: consent.analytics === true,
1640                marketing: consent.marketing === true,
1641            };
1642
1643            try {
1644                localStorage.setItem(storageKey, JSON.stringify({
1645                    ...choice,
1646                    updatedAt: new Date().toISOString(),
1647                }));
1648            } catch (error) {}
1649
1650            // Already-loaded vendor scripts cannot be unloaded: withdrawing a
1651            // previously granted category needs a full reload.
1652            const requiresReload = (appliedConsent.analytics && !choice.analytics)
1653                || (appliedConsent.marketing && !choice.marketing);
1654
1655            if (requiresReload) {
1656                applyConsent(choice);
1657                window.location.reload();
1658
1659                return;
1660            }
1661
1662            applyConsent(choice);
1663            hideDialog();
1664        };
1665
1666        const bindUi = (nodes) => {
1667            ui = nodes;
1668
1669            ui.acceptButton.addEventListener('click', () => {
1670                saveConsent({ analytics: true, marketing: true });
1671            });
1672
1673            ui.rejectButton.addEventListener('click', () => {
1674                saveConsent({ analytics: false, marketing: false });
1675            });
1676
1677            ui.customizeButton.addEventListener('click', () => {
1678                showDialog(true);
1679            });
1680
1681            ui.saveButton.addEventListener('click', () => {
1682                saveConsent({
1683                    analytics: ui.analyticsCheckbox.checked,
1684                    marketing: ui.marketingCheckbox.checked,
1685                });
1686            });
1687
1688            ui.settingsButton?.addEventListener('click', () => {
1689                showDialog(true);
1690            });
1691
1692            if (readConsent()) {
1693                hideDialog();
1694            } else {
1695                showDialog();
1696            }
1697        };
1698
1699        window.mmConsent = {
1700            read: readConsent,
1701            current: () => readConsent() ?? defaultConsent,
1702            save: saveConsent,
1703            openSettings: () => showDialog(true),
1704            onChange: (listener) => {
1705                listeners.push(listener);
1706                listener(window.mmConsent.current());
1707            },
1708            bind: bindUi,
1709        };
1710
1711        const initialConsent = readConsent() ?? defaultConsent;
1712
1713        ensureGtag(initialConsent);
1714        appliedConsent = initialConsent;
1715        bindUi(ui);
1716    })();
1717</script>
vendor: 1 bytes, line 1717
1717
1718<script>
1719    (() => {
1720        window.mmAnalyticsRouteUri = "about";
1721        window.mmAnalyticsRoutePathname = window.location.pathname;
1722
1723        if (window.mmAnalyticsRoutePattern) {
1724            return;
1725        }
1726
1727        window.mmAnalyticsRoutePattern = (url) => {
1728            let path = '/';
1729
1730            try {
1731                path = new URL(url || '/', window.location.origin).pathname || '/';
1732            } catch (error) {}
1733
1734            if (
1735                path === window.location.pathname
1736                && path === window.mmAnalyticsRoutePathname
1737                && typeof window.mmAnalyticsRouteUri === 'string'
1738                && window.mmAnalyticsRouteUri !== ''
1739            ) {
1740                return `/${window.mmAnalyticsRouteUri.replace(/^\/+/, '')}`;
1741            }
1742
1743            return path
1744                .split('/')
1745                .map((segment, index, segments) => {
1746                    if (/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(segment)) {
1747                        return ':uuid';
1748                    }
1749
1750                    if (/^\d+$/.test(segment)) {
1751                        return ':id';
1752                    }
1753
1754                    return segment.length > 32 || segments[index - 1] === 'share' ? ':token' : segment;
1755                })
1756                .join('/');
1757        };
1758
1759        window.mmAnalyticsPageParams = () => {
1760            const path = window.mmAnalyticsRoutePattern(window.location.pathname);
1761            let referrer = '';
1762
1763            if (document.referrer) {
1764                try {
1765                    const referrerUrl = new URL(document.referrer);
1766
1767                    referrer = referrerUrl.origin === window.location.origin
1768                        ? `${referrerUrl.origin}${window.mmAnalyticsRoutePattern(referrerUrl.pathname)}`
1769                        : referrerUrl.origin;
1770                } catch (error) {}
1771            }
1772
1773            return {
1774                page_location: `${window.location.origin}${path}`,
1775                page_path: path,
1776                page_referrer: referrer,
1777                page_title: 'Meeting Metrics',
1778            };
1779        };
1780    })();
1781</script>
1781
1782
1783<script>
1784    (() => {
1785        const config = {"enabled":true,"googleMeasurementId":"G-W1NRB9GVX2","clarityProjectId":null,"linkedInPartnerId":"9406498","linkedInConversionId":null,"googleAdsId":"AW-18412340798","googleAdsDemoConversion":null,"googleAdsDemoEmailHash":null,"attributionEndpoint":"https:\/\/meetingmetrics.ai\/marketing-attribution","csrfToken":"fEMpKXy6pgLqC3UGoJnEyJK2DDPPU7mghu0RX67n"};
1786        const attributionSyncKey = 'meeting-metrics-ad-attribution-consent-v1';
1787        const attributionParameters = [
1788            'gclid',
1789            'gbraid',
1790            'wbraid',
1791            'utm_source',
1792            'utm_medium',
1793            'utm_campaign',
1794            'utm_term',
1795            'utm_content',
1796        ];
1797        let analyticsAllowed = false;
1798        let googleAdsDemoConversionTracked = false;
1799        let linkedInConversionTracked = false;
1800
1801        const loadScript = (id, source, onLoad = null) => {
1802            if (!source || document.getElementById(id)) {
1803                return;
1804            }
1805
1806            const script = document.createElement('script');
1807            script.id = id;
1808            script.async = true;
1809            script.src = source;
1810
1811            if (onLoad) {
1812                script.addEventListener('load', onLoad, { once: true });
1813            }
1814
1815            document.head.appendChild(script);
1816        };
1817
1818        const loadAnalytics = () => {
1819            if (!config.enabled) {
1820                return;
1821            }
1822
1823            analyticsAllowed = true;
1824
1825            if (config.googleMeasurementId && !document.getElementById('mm-google-analytics')) {
1826                window.gtag('config', config.googleMeasurementId, {
1827                    send_page_view: false,
1828                    ...window.mmAnalyticsPageParams(),
1829                });
1830
1831                window.gtag('event', 'page_view', window.mmAnalyticsPageParams());
1832
1833                loadScript(
1834                    'mm-google-analytics',
1835                    `https://www.googletagmanager.com/gtag/js?id=${encodeURIComponent(config.googleMeasurementId)}`
1836                );
1837            }
1838
1839                    };
1840
1841        const loadGoogleAds = () => {
1842            if (!config.enabled || !config.googleAdsId || document.getElementById('mm-google-ads')) {
1843                return;
1844            }
1845
1846            window.gtag('config', config.googleAdsId, {
1847                allow_enhanced_conversions: true,
1848                send_page_view: false,
1849                ...window.mmAnalyticsPageParams(),
1850            });
1851
1852            loadScript(
1853                'mm-google-ads',
1854                `https://www.googletagmanager.com/gtag/js?id=${encodeURIComponent(config.googleAdsId)}`
1855            );
1856        };
1857
1858        const currentAdAttribution = () => {
1859            const query = new URLSearchParams(window.location.search);
1860            const attribution = {};
1861
1862            attributionParameters.forEach((parameter) => {
1863                const value = query.get(parameter);
1864
1865                if (value) {
1866                    attribution[parameter] = value;
1867                }
1868            });
1869
1870            if (Object.keys(attribution).length) {
1871                attribution.referrer = document.referrer || null;
1872                attribution.landing_path = window.location.pathname;
1873            }
1874
1875            return attribution;
1876        };
1877
1878        const syncAdAttribution = (consent) => {
1879            if (!config.enabled || !config.attributionEndpoint) {
1880                return;
1881            }
1882
1883            const attribution = currentAdAttribution();
1884            let lastSyncedConsent = null;
1885
1886            try {
1887                lastSyncedConsent = localStorage.getItem(attributionSyncKey);
1888            } catch {}
1889
1890            if (consent.marketing && !Object.keys(attribution).length) {
1891                return;
1892            }
1893
1894            if (!consent.marketing && lastSyncedConsent === 'denied') {
1895                return;
1896            }
1897
1898            try {
1899                fetch(config.attributionEndpoint, {
1900                    method: 'POST',
1901                    credentials: 'same-origin',
1902                    keepalive: true,
1903                    headers: {
1904                        'Accept': 'application/json',
1905                        'Content-Type': 'application/json',
1906                        'X-CSRF-TOKEN': config.csrfToken,
1907                    },
1908                    body: JSON.stringify(Object.assign(
1909                        { marketing_consent: consent.marketing },
1910                        consent.marketing ? attribution : {},
1911                    )),
1912                }).then((response) => {
1913                    if (response.ok) {
1914                        localStorage.setItem(attributionSyncKey, consent.marketing ? 'granted' : 'denied');
1915                    }
1916                }).catch(() => {});
1917            } catch {}
1918        };
1919
1920        const trackGoogleAdsDemoConversion = () => {
1921            if (!config.enabled || !config.googleAdsDemoConversion || googleAdsDemoConversionTracked) {
1922                return;
1923            }
1924
1925            loadGoogleAds();
1926
1927            
1928            window.gtag('event', 'conversion', {
1929                ...config.googleAdsDemoConversion,
1930                ...window.mmAnalyticsPageParams(),
1931            });
1932            googleAdsDemoConversionTracked = true;
1933        };
1934
1935        const loadLinkedIn = () => {
1936            if (!config.enabled || !config.linkedInPartnerId || document.getElementById('mm-linkedin-insight')) {
1937                return;
1938            }
1939
1940            window._linkedin_partner_id = String(config.linkedInPartnerId);
1941            window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || [];
1942
1943            if (!window._linkedin_data_partner_ids.includes(window._linkedin_partner_id)) {
1944                window._linkedin_data_partner_ids.push(window._linkedin_partner_id);
1945            }
1946
1947            window.lintrk = window.lintrk || function() {
1948                (window.lintrk.q = window.lintrk.q || []).push(arguments);
1949            };
1950
1951            loadScript('mm-linkedin-insight', 'https://snap.licdn.com/li.lms-analytics/insight.min.js');
1952        };
1953
1954        const trackLinkedInConversion = () => {
1955            if (!config.enabled || !config.linkedInConversionId || linkedInConversionTracked) {
1956                return;
1957            }
1958
1959            loadLinkedIn();
1960
1961            if (typeof window.lintrk !== 'function') {
1962                return;
1963            }
1964
1965            window.lintrk('track', {
1966                conversion_id: Number(config.linkedInConversionId),
1967            });
1968            linkedInConversionTracked = true;
1969        };
1970
1971        const applyConsent = (consent) => {
1972            syncAdAttribution(consent);
1973
1974            if (consent.analytics) {
1975                loadAnalytics();
1976            }
1977
1978            if (consent.marketing) {
1979                loadGoogleAds();
1980                loadLinkedIn();
1981                trackGoogleAdsDemoConversion();
1982                trackLinkedInConversion();
1983            }
1984        };
1985
1986        window.mmTrackLandingEvent = (eventName, parameters = {}) => {
1987            if (!analyticsAllowed) {
1988                return;
1989            }
1990
1991            if (typeof window.gtag === 'function') {
1992                window.gtag('event', eventName, {
1993                    ...parameters,
1994                    ...window.mmAnalyticsPageParams(),
1995                });
1996            }
1997
1998            if (typeof window.clarity === 'function' && parameters.cta_id) {
1999                window.clarity('set', 'cta_id', parameters.cta_id);
2000            }
2001        };
2002
2003        if (!window.mmLandingAnalyticsBound) {
2004            window.mmLandingAnalyticsBound = true;
2005
2006            document.addEventListener('click', (event) => {
2007                const target = event.target.closest('[data-analytics-event]');
2008
2009                if (!target) {
2010                    return;
2011                }
2012
2013                window.mmTrackLandingEvent(target.dataset.analyticsEvent, {
2014                    cta_id: target.dataset.analyticsId || '',
2015                    cta_location: target.dataset.analyticsLocation || '',
2016                    cta_destination: window.mmAnalyticsRoutePattern(target.dataset.analyticsDestination || target.getAttribute('href') || ''),
2017                    cta_label: target.textContent.trim().replace(/\s+/g, ' '),
2018                    page_path: window.location.pathname,
2019                });
2020            });
2021        }
2022
2023        window.mmConsent.onChange(applyConsent);
2024    })();
2025</script>
2025
2026</body>
2027
2028</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.