PageSourceSearch

https://www.alphadi.org/en/news

html alphadi.org collected 2026-10-09 22:41:36 UTC 132,050 bytes, 2,350 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3<head>
4
5    <meta charset="utf-8" />
6    <meta name="color-scheme" content="dark light">
7    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
8    <title>News  |  Alphadi</title>
9    <meta name="description" content="Lean Six Sigma, Operational Excellence und Qualit&#xE4;tsmanagement: Alphadi bietet Weiterbildung, Zertifizierung, Coaching, Beratung und AlphadiTab Software f&#xFC;r Verbesserungsprojekte." />
10    <meta name="og:title" content="News  |  Alphadi" />
11    <meta name="og:description" content="Lean Six Sigma, Operational Excellence und Qualit&#xE4;tsmanagement: Alphadi bietet Weiterbildung, Zertifizierung, Coaching, Beratung und AlphadiTab Software f&#xFC;r Verbesserungsprojekte." />
12    <meta name="og:type" content="website" />
13    <meta name="og:locale" content="en" />
14
15    <link rel="icon" href="/img/favicon.ico" sizes="any">
16    <link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png">
17    
18    <link rel="preconnect" href="https://fonts.googleapis.com">
19    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
20    <link rel="stylesheet" href="/bundles/hp-styles.css?v=_0Jinmn5XM4Jg2spIz_GA6SmJGHyq_C09ckEcirX2Nk" />
21    <link rel="stylesheet" href="/lib/katex/katex.min.css?v=7NQzvryVCIQkViOS3GPdLDyHtm1nHMrm7xzxO09F158" />
22    <style>
23        /* Mobile nav sheet: ALL top-level items look identical, whether or not they have sub-levels.
24           The plain links (Home, Events, …) are adjusted to match the dropdown group-triggers
25           (Akademie, Consulting, …) — uppercase section-header style. Inline so it always wins
26           over the prebuilt hp-styles bundle (which the browser may cache). */
27        .nav__sheet-link,
28        .nav__sheet-group-trigger {
29            font-family: var(--f-ui);
30            font-size: 0.72rem;
31            font-weight: 700;
32            letter-spacing: 0.5px; /* matches desktop, reduced from the old 0.12em */
33            text-transform: uppercase;
34            color: var(--c-subtle);
35        }
36        .nav__sheet-link { border-left: none; }
37        .nav__sheet-link:hover,
38        .nav__sheet-link.is-active { color: var(--c-dark); background: none; }
39        /* "Request a date" inquiry link (training/event booking box). It's a bare <button>, so with
40           color-scheme:dark light the browser paints its text white in OS dark mode and it vanishes.
41           Force it orange in every mode/device. Inline so it wins over the cached hp-styles bundle. */
42        .btn-link-inline {
43            background: none;
44            border: none;
45            padding: 0;
46            font: inherit;
47            color: var(--c-orange) !important;
48            font-weight: 600;
49            text-decoration: underline;
50            cursor: pointer;
51        }
52        .btn-link-inline:hover { color: var(--c-orange) !important; opacity: 0.8; }
53        /* Per-date "By invoice" inquiry toggle in the training/event booking box. Clicking
54           "By invoice" expands an inline note whose "Inquire here" link opens the request
55           modal. Inline so it wins over the cached hp-styles bundle (which dotnet build
56           does not regenerate). */
57        .date-item--two-row { flex-direction: column; align-items: stretch; gap: 0; }
58        .date-item--two-row .date-item__top {
59            display: flex; align-items: center; justify-content: space-between;
60            gap: 1rem; flex-wrap: wrap; width: 100%;
61        }
62        .date-item__actions { display: flex; align-items: center; gap: 0.6rem; flex-wrap: wrap; }
63        .date-invoice-body {
64            flex-basis: 100%;
65            display: grid; grid-template-rows: 0fr;
66            transition: grid-template-rows 0.25s ease;
67        }
68        .date-item.is-open .date-invoice-body { grid-template-rows: 1fr; }
69        .date-invoice-content { overflow: hidden; }
70        .date-invoice-content p {
71            font-family: var(--f-ui); font-size: 0.8rem; color: var(--c-dark); line-height: 1.6;
72            margin: 0.75rem 0 0; padding-top: 0.75rem; border-top: 1px solid var(--c-border);
73        }
74        .link-btn {
75            background: none; border: none; padding: 0; margin: 0; font: inherit;
76            color: var(--c-orange) !important; text-decoration: underline; cursor: pointer;
77        }
78        .link-btn:hover { opacity: 0.8; }
79        /* Two-row date item: date + action buttons on top, location on its own row below, so the
80           buttons always have room even with a long location. Inline so it wins over the cached
81           hp-styles bundle (which dotnet build does not regenerate). */
82        .date-item--two-row { flex-direction: column; align-items: stretch; gap: 0; }
83        .date-item--two-row .date-item__top { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; width: 100%; }
84        .date-item--two-row .date-item__loc { margin-top: 0.25rem; }
85        :root {
86    color-scheme: dark light;
87}
88        /* Logo strip is dark so the WHITE logo stays visible in light AND force-dark mode.
89           The white logo has a declared filter (filter:none) so browser force-dark won't re-invert it. */
90        .account-menu { position: relative; display: flex; align-items: center; }
91        .account-menu__chevron { flex-shrink: 0; transition: transform var(--t-base); }
92        .account-menu.is-open .account-menu__chevron { transform: rotate(180deg); }
93        .account-menu__dropdown {
94            position: absolute; top: calc(100% + 0.75rem); right: 0;
95            background: var(--c-white); border: 1px solid var(--c-border);
96            border-radius: 6px; padding: 0.5rem; width: 300px;
97            box-shadow: 0 8px 24px rgba(0,0,0,.12);
98            opacity: 0; pointer-events: none; transform: translateY(-4px);
99            transition: opacity 0.18s ease, transform 0.18s ease; z-index: 1100;
100        }
101        .account-menu__dropdown::before {
102            content: ''; position: absolute; top: -5px; right: 13px;
103            width: 9px; height: 9px; background: #fff;
104            border-top: 1px solid var(--c-border); border-left: 1px solid var(--c-border);
105            border-radius: 2px 0 0 0; transform: rotate(45deg);
106        }
107        .account-menu.is-open .account-menu__dropdown { opacity: 1; pointer-events: all; transform: translateY(0); }
108        .account-menu__body { display: flex; flex-direction: column; gap: 1rem; padding: 0.5rem 0.5rem 0.75rem; }
109        .account-menu__lead { display: flex; align-items: center; gap: 0.75rem; font-family: var(--f-ui), sans-serif; font-size: 1rem; line-height: 1.5; color: var(--c-dark); margin: 0; }
110        .account-menu__lead-icon { color: var(--c-orange); flex: 1 1 25%; min-width: 0; display: flex; justify-content: center; }
111        .account-menu__lead-text { flex: 3 3 75%; min-width: 0; }
112        .account-menu__actions { display: flex; flex-direction: column; gap: 0.5rem; }
113        .account-menu__actions .btn { width: 100%; justify-content: center; }
114        .nav__sheet-account { display: flex; flex-direction: column; gap: 0.5rem; padding: 0.5rem 0 0.375rem; }
115        .nav__sheet-account-lead { font-family: var(--f-ui), sans-serif; font-size: 0.9rem; line-height: 1.5; color: var(--c-subtle); margin: 0 0 0.25rem; }
116        .nav__sheet-account .btn { width: 100%; justify-content: center; }
117    </style>
118    
118<script src="/bundles/hp-plugins.min.js"></script>
118
119
120    
121
122
123        <style>#training-modules {
124background-color: #efefef;
125}
126
127section[class*="hero-padded"] {
128  padding-top: 114px;
129}
130.hero {
131  position: relative; background: var(--c-bg-warm); overflow: hidden;
132  padding-bottom: 4rem;
133}
134
135section[class*="sa-hero"] {
136  padding-top: 190px;
137}
138
139
140:root {
141  color-scheme: light only;
142}
143
144@media (prefers-color-scheme: dark) {
145  :root {
146    color-scheme: light only;
147  }
148}
149
150.sa-freetext-wrap textarea {
151
152    color: #555555 !important;
153
154}
155#cartPageContent::after {
156  content: "";
157  display: block;
158  width: 100%;
159  max-width: 420px;
160  aspect-ratio: 3 / 4;
161  margin: 3rem auto 0;
162  background: url("https://www.alphadi.org/image/1705") center / contain no-repeat;
163}
164
165html[lang="en"] #cartPageContent::after { background-image: url("https://www.alphadi.org/image/1706"); }
166html[lang="es"] #cartPageContent::after { background-image: url("https://www.alphadi.org/image/1707"); }
167html[lang="fr"] #cartPageContent::after { background-image: url("https://www.alphadi.org/image/1708"); }
168html[lang="it"] #cartPageContent::after { background-image: url("https://www.alphadi.org/image/1709"); }
169html[lang="pl"] #cartPageContent::after { background-image: url("https://www.alphadi.org/image/1710"); }
170html[lang="pt"] #cartPageContent::after { background-image: url("https://www.alphadi.org/image/1711"); }</style>
171</head>
172
173<body class="">
174    <!-- Floating alerts -->
175
176    <!-- ═══════ NAVIGATION ═══════ -->
177    <nav class="nav nav--white nav--two-row" id="mainNav">
178        <!-- Row 1: topbar (desktop only) -->
179        <div class="nav__row--top-wrap">
180            <div class="nav__row--top">
181                <div class="nav__row--top-right">
182                        <div class="lang-switch" id="topbarLangSwitch">
183                            <button class="lang-switch__btn" type="button" aria-haspopup="true">
184                                EN
185                                <svg viewBox="0 0 10 6" fill="none" stroke="currentColor">
186                                    <path d="M1 1L5 5L9 1" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
187                                </svg>
188                            </button>
189                            <div class="lang-switch__dropdown">
190                                    <form method="post" style="margin:0;padding:0;" action="/Home/SetLanguage?returnUrl=~%2Fen%2Fnews">
191                                        <button type="submit" name="culture" value="de-DE"
192                                                class="lang-switch__opt ">
193                                            DE — German
194                                        </button>
195                                    <input name="__RequestVerificationToken" type="hidden" value="CfDJ8BIMwQTuEtBBtnnpT6fmYELlzN2_GftZ5r05nVeNKwg_YACkhHsBg5Kxg9_cdJVC24NOR4Z2ZKJS5YkGyxAm-5d3E8VVStZVP-4JEqePgzhFNmhTJMtAwKhIO8xbm1EF0_L-5hbsJCqyix-9JbwYczI" /></form>
196                                    <form method="post" style="margin:0;padding:0;" action="/Home/SetLanguage?returnUrl=~%2Fen%2Fnews">
197                                        <button type="submit" name="culture" value="en-US"
198                                                class="lang-switch__opt is-active">
199                                            EN — English
200                                        </button>
201                                    <input name="__RequestVerificationToken" type="hidden" value="CfDJ8BIMwQTuEtBBtnnpT6fmYELlzN2_GftZ5r05nVeNKwg_YACkhHsBg5Kxg9_cdJVC24NOR4Z2ZKJS5YkGyxAm-5d3E8VVStZVP-4JEqePgzhFNmhTJMtAwKhIO8xbm1EF0_L-5hbsJCqyix-9JbwYczI" /></form>
202                                    <form method="post" style="margin:0;padding:0;" action="/Home/SetLanguage?returnUrl=~%2Fen%2Fnews">
203                                        <button type="submit" name="culture" value="es-ES"
204                                                class="lang-switch__opt ">
205                                            ES — Spanish
206                                        </button>
207                                    <input name="__RequestVerificationToken" type="hidden" value="CfDJ8BIMwQTuEtBBtnnpT6fmYELlzN2_GftZ5r05nVeNKwg_YACkhHsBg5Kxg9_cdJVC24NOR4Z2ZKJS5YkGyxAm-5d3E8VVStZVP-4JEqePgzhFNmhTJMtAwKhIO8xbm1EF0_L-5hbsJCqyix-9JbwYczI" /></form>
208                                    <form method="post" style="margin:0;padding:0;" action="/Home/SetLanguage?returnUrl=~%2Fen%2Fnews">
209                                        <button type="submit" name="culture" value="it-IT"
210                                                class="lang-switch__opt ">
211                                            IT — Italian
212                                        </button>
213                                    <input name="__RequestVerificationToken" type="hidden" value="CfDJ8BIMwQTuEtBBtnnpT6fmYELlzN2_GftZ5r05nVeNKwg_YACkhHsBg5Kxg9_cdJVC24NOR4Z2ZKJS5YkGyxAm-5d3E8VVStZVP-4JEqePgzhFNmhTJMtAwKhIO8xbm1EF0_L-5hbsJCqyix-9JbwYczI" /></form>
214                                    <form method="post" style="margin:0;padding:0;" action="/Home/SetLanguage?returnUrl=~%2Fen%2Fnews">
215                                        <button type="submit" name="culture" value="fr-FR"
216                                                class="lang-switch__opt ">
217                                            FR — French
218                                        </button>
219                                    <input name="__RequestVerificationToken" type="hidden" value="CfDJ8BIMwQTuEtBBtnnpT6fmYELlzN2_GftZ5r05nVeNKwg_YACkhHsBg5Kxg9_cdJVC24NOR4Z2ZKJS5YkGyxAm-5d3E8VVStZVP-4JEqePgzhFNmhTJMtAwKhIO8xbm1EF0_L-5hbsJCqyix-9JbwYczI" /></form>
220                                    <form method="post" style="margin:0;padding:0;" action="/Home/SetLanguage?returnUrl=~%2Fen%2Fnews">
221                                        <button type="submit" name="culture" value="pl-PL"
222                                                class="lang-switch__opt ">
223                                            PL — Polish
224                                        </button>
225                                    <input name="__RequestVerificationToken" type="hidden" value="CfDJ8BIMwQTuEtBBtnnpT6fmYELlzN2_GftZ5r05nVeNKwg_YACkhHsBg5Kxg9_cdJVC24NOR4Z2ZKJS5YkGyxAm-5d3E8VVStZVP-4JEqePgzhFNmhTJMtAwKhIO8xbm1EF0_L-5hbsJCqyix-9JbwYczI" /></form>
226                                    <form method="post" style="margin:0;padding:0;" action="/Home/SetLanguage?returnUrl=~%2Fen%2Fnews">
227                                        <button type="submit" name="culture" value="pt-PT"
228                                                class="lang-switch__opt ">
229                                            PT — Portuguese
230                                        </button>
231                                    <input name="__RequestVerificationToken" type="hidden" value="CfDJ8BIMwQTuEtBBtnnpT6fmYELlzN2_GftZ5r05nVeNKwg_YACkhHsBg5Kxg9_cdJVC24NOR4Z2ZKJS5YkGyxAm-5d3E8VVStZVP-4JEqePgzhFNmhTJMtAwKhIO8xbm1EF0_L-5hbsJCqyix-9JbwYczI" /></form>
232                            </div>
233                        </div>
234
235                        <div class="account-menu" id="accountMenu">
236                            <button class="nav__login-btn" id="accountMenuBtn" type="button" aria-haspopup="true" aria-expanded="false" aria-label="Account">
237                                <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="8" r="4"/><path d="M4 20c0-4 3.6-7 8-7s8 3 8 7"/></svg>
238                                Account
239                                <svg class="account-menu__chevron" width="10" height="10" viewBox="0 0 10 6" fill="none"><path d="M1 1l4 4 4-4" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>
240                            </button>
241                            <div class="account-menu__dropdown">
242                                <div class="account-menu__body">
243                                    <div class="account-menu__lead">
244                                        <div class="account-menu__lead-icon">
245                                            <svg width="42" height="42" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="8" r="4"/><path d="M4 20c0-4 3.6-7 8-7s8 3 8 7"/></svg>
246                                        </div>
247                                        <div class="account-menu__lead-text">Log in into your shop account or create a new one.</div>
248                                    </div>
249                                    <div class="account-menu__actions">
250                                        <a class="btn btn--primary" href="/Internal/Account/Login?returnUrl=~%2Fen%2Fnews">
251                                            Login
252                                        </a>
253                                        <a class="btn btn--outline" href="/Internal/Account/Register?returnUrl=~%2Fen%2Fnews">
254                                            Create account
255                                        </a>
256                                    </div>
257                                </div>
258                            </div>
259                        </div>
260                    
261                    <button class="cart-btn" id="cartNavBtn" aria-label="Cart">
262                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M6 2L3 6v14a2 2 0 002 2h14a2 2 0 002-2V6l-3-4z" /><line x1="3" y1="6" x2="21" y2="6" /><path d="M16 10a4 4 0 01-8 0" /></svg>
263                        <span class="cart-badge">0</span>
264                    </button>
265                </div>
266            </div>
267        </div>
268
269        <!-- Row 2: main nav bar -->
270        <div class="nav__inner">
271            <a class="nav__logo" style="flex-shrink:0;" href="/en">
272                    <img src="/img/logo_f.svg" alt="Alphadi" />
273            </a>
274
275            <button class="nav__toggle" id="sheetToggle" aria-label="Menu">
276                <svg class="menu-icon" viewBox="0 0 32 32" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" width="22" height="22">
277                    <path class="menu-icon__morph" d="M27 10 13 10C10.8 10 9 8.2 9 6 9 3.5 10.8 2 13 2 15.2 2 17 3.8 17 6L17 26C17 28.2 18.8 30 21 30 23.2 30 25 28.2 25 26 25 23.8 23.2 22 21 22L7 22"/>
278                    <path d="M7 16 27 16"/>
279                </svg>
280            </button>
281
282            <div class="nav__menu">
283                        <div class="nav__item nav__link ">
284                            <button class="nav__dropdown-trigger">
285                                Academy
286                                <svg viewBox="0 0 10 6" fill="none"><path d="M1 1l4 4 4-4" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/></svg>
287                            </button>
288
289                            <div class="nav__dropdown">
290                                    <a href="/en/workshops" class="nav__dropdown-item ">
291                                        <div class="nav__dropdown-icon">
292                                                <img src="/image/1164" alt="" width="25" height="25" style="object-fit:contain;">
293                                        </div>
294                                        <div>
295                                            <div class="nav__dropdown-text-title">Further training &amp; seminars</div>
296                                                <div class="nav__dropdown-text-desc"><p>Internationally certified &ndash; with access to the Excellence Program.</p>
297</div>
298                                        </div>
299                                    </a>
300                                    <a href="/en/excellence-program" class="nav__dropdown-item ">
301                                        <div class="nav__dropdown-icon">
302                                                <img src="/image/1180" alt="" width="25" height="25" style="object-fit:contain;">
303                                        </div>
304                                        <div>
305                                            <div class="nav__dropdown-text-title">Excellence Program</div>
306                                                <div class="nav__dropdown-text-desc"><p>Internationally recognized certifications for professionals and executives</p>
307</div>
308                                        </div>
309                                    </a>
310                                    <a href="/en/coaching" class="nav__dropdown-item ">
311                                        <div class="nav__dropdown-icon">
312                                                <img src="/image/1167" alt="" width="25" height="25" style="object-fit:contain;">
313                                        </div>
314                                        <div>
315                                            <div class="nav__dropdown-text-title">Coaching &amp; Consulting</div>
316                                                <div class="nav__dropdown-text-desc"><p>Individual support for companies and executives &ndash; on demand</p>
317</div>
318                                        </div>
319                                    </a>
320                                    <a href="/en/shingo-model" class="nav__dropdown-item ">
321                                        <div class="nav__dropdown-icon">
322                                                <img src="/image/1178" alt="" width="25" height="25" style="object-fit:contain;">
323                                        </div>
324                                        <div>
325                                            <div class="nav__dropdown-text-title">Shingo Model&#x2122;</div>
326                                                <div class="nav__dropdown-text-desc"><p>Systemically develop operational excellence &mdash; with culture, behavior, and leadership as the foundation.</p>
327</div>
328                                        </div>
329                                    </a>
330                            </div>
331                        </div>
332                        <a href="/en/events" class="nav__link ">Events</a>
333                        <div class="nav__item nav__link ">
334                            <button class="nav__dropdown-trigger">
335                                Consulting
336                                <svg viewBox="0 0 10 6" fill="none"><path d="M1 1l4 4 4-4" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/></svg>
337                            </button>
338
339                            <div class="nav__dropdown">
340                                    <a href="/en/benchmarking" class="nav__dropdown-item ">
341                                        <div class="nav__dropdown-icon">
342                                                <img src="/image/1165" alt="" width="25" height="25" style="object-fit:contain;">
343                                        </div>
344                                        <div>
345                                            <div class="nav__dropdown-text-title">Benchmarking</div>
346                                                <div class="nav__dropdown-text-desc"><p>Identify potential improvements in processes, structures, and collaboration.</p>
347</div>
348                                        </div>
349                                    </a>
350                                    <a href="/en/culture-development-system-explained" class="nav__dropdown-item ">
351                                        <div class="nav__dropdown-icon">
352                                                <img src="/image/1713" alt="" width="25" height="25" style="object-fit:contain;">
353                                        </div>
354                                        <div>
355                                            <div class="nav__dropdown-text-title">What is the Culture Development System?</div>
356                                                <div class="nav__dropdown-text-desc"><p>Develop culture purposefully</p>
357</div>
358                                        </div>
359                                    </a>
360                                    <a href="/en/excellence-community" class="nav__dropdown-item ">
361                                        <div class="nav__dropdown-icon">
362                                                <img src="/image/1181" alt="" width="25" height="25" style="object-fit:contain;">
363                                        </div>
364                                        <div>
365                                            <div class="nav__dropdown-text-title">Excellence Community</div>
366                                                <div class="nav__dropdown-text-desc"><p>Network, refresh knowledge, and exchange best practices.</p>
367</div>
368                                        </div>
369                                    </a>
370                                    <a href="/en/talent-development" class="nav__dropdown-item ">
371                                        <div class="nav__dropdown-icon">
372                                                <img src="/image/1173" alt="" width="25" height="25" style="object-fit:contain;">
373                                        </div>
374                                        <div>
375                                            <div class="nav__dropdown-text-title">Talent development</div>
376                                                <div class="nav__dropdown-text-desc"><p>Strengthen employees in a targeted manner &ndash; for performance, change, and competitiveness.</p>
377</div>
378                                        </div>
379                                    </a>
380                                    <a href="/en/opex-roll-out" class="nav__dropdown-item ">
381                                        <div class="nav__dropdown-icon">
382                                                <img src="/image/1170" alt="" width="25" height="25" style="object-fit:contain;">
383                                        </div>
384                                        <div>
385                                            <div class="nav__dropdown-text-title">OPEX Roll-out</div>
386                                                <div class="nav__dropdown-text-desc"><p>Effectively roll out OPEX &ndash; for less waste and more sustainable impact.</p>
387</div>
388                                        </div>
389                                    </a>
390                            </div>
391                        </div>
392                        <div class="nav__item nav__link ">
393                            <button class="nav__dropdown-trigger">
394                                Products
395                                <svg viewBox="0 0 10 6" fill="none"><path d="M1 1l4 4 4-4" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/></svg>
396                            </button>
397
398                            <div class="nav__dropdown">
399                                    <a href="/en/products/books" class="nav__dropdown-item ">
400                                        <div class="nav__dropdown-icon">
401                                                <img src="/image/1166" alt="" width="25" height="25" style="object-fit:contain;">
402                                        </div>
403                                        <div>
404                                            <div class="nav__dropdown-text-title">Publications</div>
405                                                <div class="nav__dropdown-text-desc"><p>Books, case studies, and booklets for process managers and organizations.</p>
406</div>
407                                        </div>
408                                    </a>
409                                    <a href="/en/products/tools-templates" class="nav__dropdown-item ">
410                                        <div class="nav__dropdown-icon">
411                                                <img src="/image/1184" alt="" width="25" height="25" style="object-fit:contain;">
412                                        </div>
413                                        <div>
414                                            <div class="nav__dropdown-text-title">Tools</div>
415                                                <div class="nav__dropdown-text-desc"><p>Handouts, plots, and presentations for Lean &amp; LSS &mdash; ready to use.</p>
416</div>
417                                        </div>
418                                    </a>
419                                    <a href="/en/products/workshops" class="nav__dropdown-item ">
420                                        <div class="nav__dropdown-icon">
421                                                <img src="/image/1293" alt="" width="25" height="25" style="object-fit:contain;">
422                                        </div>
423                                        <div>
424                                            <div class="nav__dropdown-text-title">Workshops</div>
425                                                <div class="nav__dropdown-text-desc"><p>Interactive formats for targeted awareness and knowledge transfer &ndash; compact and practical.</p>
426</div>
427                                        </div>
428                                    </a>
429                            </div>
430                        </div>
431                        <div class="nav__item nav__link ">
432                            <button class="nav__dropdown-trigger">
433                                Software
434                                <svg viewBox="0 0 10 6" fill="none"><path d="M1 1l4 4 4-4" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/></svg>
435                            </button>
436
437                            <div class="nav__dropdown">
438                                    <a href="/en/support" class="nav__dropdown-item ">
439                                        <div class="nav__dropdown-icon">
440                                                <img src="/image/1172" alt="" width="25" height="25" style="object-fit:contain;">
441                                        </div>
442                                        <div>
443                                            <div class="nav__dropdown-text-title">Support</div>
444                                                <div class="nav__dropdown-text-desc"><p>Everything about documentation, help, and support for our software solutions</p>
445</div>
446                                        </div>
447                                    </a>
448                                    <a href="/en/alphadi-tab" class="nav__dropdown-item ">
449                                        <div class="nav__dropdown-icon">
450                                                <img src="/image/1169" alt="" width="25" height="25" style="object-fit:contain;">
451                                        </div>
452                                        <div>
453                                            <div class="nav__dropdown-text-title">AlphadiTab</div>
454                                                <div class="nav__dropdown-text-desc"><p>Project management software for problem solving</p>
455</div>
456                                        </div>
457                                    </a>
458                            </div>
459                        </div>
460                        <div class="nav__item nav__link ">
461                            <button class="nav__dropdown-trigger">
462                                About us
463                                <svg viewBox="0 0 10 6" fill="none"><path d="M1 1l4 4 4-4" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/></svg>
464                            </button>
465
466                            <div class="nav__dropdown">
467                                    <a href="/en/career" class="nav__dropdown-item ">
468                                        <div class="nav__dropdown-icon">
469                                                <img src="/image/1416" alt="" width="25" height="25" style="object-fit:contain;">
470                                        </div>
471                                        <div>
472                                            <div class="nav__dropdown-text-title">Career </div>
473                                                <div class="nav__dropdown-text-desc"><p>Open positions at Alphadi &ndash; flat hierarchies, real responsibility, and room for professional development.</p>
474</div>
475                                        </div>
476                                    </a>
477                                    <a href="/en/ueber-uns" class="nav__dropdown-item ">
478                                        <div class="nav__dropdown-icon">
479                                                <img src="/image/1182" alt="" width="25" height="25" style="object-fit:contain;">
480                                        </div>
481                                        <div>
482                                            <div class="nav__dropdown-text-title">Meet the Team</div>
483                                                <div class="nav__dropdown-text-desc"><p>Get to know the people who shape Alphadi with heart and experience.</p>
484</div>
485                                        </div>
486                                    </a>
487                                    <a href="/en/glossary" class="nav__dropdown-item ">
488                                        <div class="nav__dropdown-icon">
489                                                <img src="/image/216" alt="" width="25" height="25" style="object-fit:contain;">
490                                        </div>
491                                        <div>
492                                            <div class="nav__dropdown-text-title">Glossary</div>
493                                                <div class="nav__dropdown-text-desc"><p>Terms, definitions and important technical terms explained at a glance.</p>
494</div>
495                                        </div>
496                                    </a>
497                            </div>
498                        </div>
499
500
501            </div>
502
503                <a href="/en/contact" class="nav__cta nav__cta--desktop">Contact</a>
504        </div>
505    </nav>
506
507    <!-- Backdrop -->
508    <div class="nav__sheet-overlay" id="sheetOverlay"></div>
509
510    <!-- Right-side nav sheet -->
511    <div class="nav__sheet" id="navSheet">
512        <div class="nav__sheet-header">
513            <div class="nav__sheet-logo">
514                <a href="/en">
515                        <img src="/img/logo_f.svg" alt="Alphadi" style="height:35px;width:auto;" />
516                </a>
517            </div>
518            <button class="nav__sheet-close" id="sheetClose" aria-label="Close menu">
519                <svg viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round">
520                    <path d="M1 1l12 12M13 1L1 13"/>
521                </svg>
522            </button>
523        </div>
524
525        <div class="nav__sheet-body">
526
527            <a class="nav__sheet-link " href="/en">Home</a>
528
529                    <button class="nav__sheet-group-trigger" type="button">
530                        <span>Academy</span>
531                        <svg viewBox="0 0 10 6" fill="none"><path d="M1 1l4 4 4-4" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/></svg>
532                    </button>
533                    <div class="nav__sheet-sub">
534                            <a href="/en/workshops" class="nav__sheet-sub-item">
535                                <div class="nav__sheet-sub-icon">
536                                        <img src="/image/1164" alt="" width="20" height="20" style="object-fit:contain;">
537                                </div>
538                                Further training &amp; seminars
539                            </a>
540                            <a href="/en/excellence-program" class="nav__sheet-sub-item">
541                                <div class="nav__sheet-sub-icon">
542                                        <img src="/image/1180" alt="" width="20" height="20" style="object-fit:contain;">
543                                </div>
544                                Excellence Program
545                            </a>
546                            <a href="/en/coaching" class="nav__sheet-sub-item">
547                                <div class="nav__sheet-sub-icon">
548                                        <img src="/image/1167" alt="" width="20" height="20" style="object-fit:contain;">
549                                </div>
550                                Coaching &amp; Consulting
551                            </a>
552                            <a href="/en/shingo-model" class="nav__sheet-sub-item">
553                                <div class="nav__sheet-sub-icon">
554                                        <img src="/image/1178" alt="" width="20" height="20" style="object-fit:contain;">
555                                </div>
556                                Shingo Model&#x2122;
557                            </a>
558                    </div>
559                    <a href="/en/events" class="nav__sheet-link ">Events</a>
560                    <button class="nav__sheet-group-trigger" type="button">
561                        <span>Consulting</span>
562                        <svg viewBox="0 0 10 6" fill="none"><path d="M1 1l4 4 4-4" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/></svg>
563                    </button>
564                    <div class="nav__sheet-sub">
565                            <a href="/en/benchmarking" class="nav__sheet-sub-item">
566                                <div class="nav__sheet-sub-icon">
567                                        <img src="/image/1165" alt="" width="20" height="20" style="object-fit:contain;">
568                                </div>
569                                Benchmarking
570                            </a>
571                            <a href="/en/culture-development-system-explained" class="nav__sheet-sub-item">
572                                <div class="nav__sheet-sub-icon">
573                                        <img src="/image/1713" alt="" width="20" height="20" style="object-fit:contain;">
574                                </div>
575                                What is the Culture Development System?
576                            </a>
577                            <a href="/en/excellence-community" class="nav__sheet-sub-item">
578                                <div class="nav__sheet-sub-icon">
579                                        <img src="/image/1181" alt="" width="20" height="20" style="object-fit:contain;">
580                                </div>
581                                Excellence Community
582                            </a>
583                            <a href="/en/talent-development" class="nav__sheet-sub-item">
584                                <div class="nav__sheet-sub-icon">
585                                        <img src="/image/1173" alt="" width="20" height="20" style="object-fit:contain;">
586                                </div>
587                                Talent development
588                            </a>
589                            <a href="/en/opex-roll-out" class="nav__sheet-sub-item">
590                                <div class="nav__sheet-sub-icon">
591                                        <img src="/image/1170" alt="" width="20" height="20" style="object-fit:contain;">
592                                </div>
593                                OPEX Roll-out
594                            </a>
595                    </div>
596                    <button class="nav__sheet-group-trigger" type="button">
597                        <span>Products</span>
598                        <svg viewBox="0 0 10 6" fill="none"><path d="M1 1l4 4 4-4" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/></svg>
599                    </button>
600                    <div class="nav__sheet-sub">
601                            <a href="/en/products/books" class="nav__sheet-sub-item">
602                                <div class="nav__sheet-sub-icon">
603                                        <img src="/image/1166" alt="" width="20" height="20" style="object-fit:contain;">
604                                </div>
605                                Publications
606                            </a>
607                            <a href="/en/products/tools-templates" class="nav__sheet-sub-item">
608                                <div class="nav__sheet-sub-icon">
609                                        <img src="/image/1184" alt="" width="20" height="20" style="object-fit:contain;">
610                                </div>
611                                Tools
612                            </a>
613                            <a href="/en/products/workshops" class="nav__sheet-sub-item">
614                                <div class="nav__sheet-sub-icon">
615                                        <img src="/image/1293" alt="" width="20" height="20" style="object-fit:contain;">
616                                </div>
617                                Workshops
618                            </a>
619                    </div>
620                    <button class="nav__sheet-group-trigger" type="button">
621                        <span>Software</span>
622                        <svg viewBox="0 0 10 6" fill="none"><path d="M1 1l4 4 4-4" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/></svg>
623                    </button>
624                    <div class="nav__sheet-sub">
625                            <a href="/en/support" class="nav__sheet-sub-item">
626                                <div class="nav__sheet-sub-icon">
627                                        <img src="/image/1172" alt="" width="20" height="20" style="object-fit:contain;">
628                                </div>
629                                Support
630                            </a>
631                            <a href="/en/alphadi-tab" class="nav__sheet-sub-item">
632                                <div class="nav__sheet-sub-icon">
633                                        <img src="/image/1169" alt="" width="20" height="20" style="object-fit:contain;">
634                                </div>
635                                AlphadiTab
636                            </a>
637                    </div>
638                    <button class="nav__sheet-group-trigger" type="button">
639                        <span>About us</span>
640                        <svg viewBox="0 0 10 6" fill="none"><path d="M1 1l4 4 4-4" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/></svg>
641                    </button>
642                    <div class="nav__sheet-sub">
643                            <a href="/en/career" class="nav__sheet-sub-item">
644                                <div class="nav__sheet-sub-icon">
645                                        <img src="/image/1416" alt="" width="20" height="20" style="object-fit:contain;">
646                                </div>
647                                Career 
648                            </a>
649                            <a href="/en/ueber-uns" class="nav__sheet-sub-item">
650                                <div class="nav__sheet-sub-icon">
651                                        <img src="/image/1182" alt="" width="20" height="20" style="object-fit:contain;">
652                                </div>
653                                Meet the Team
654                            </a>
655                            <a href="/en/glossary" class="nav__sheet-sub-item">
656                                <div class="nav__sheet-sub-icon">
657                                        <img src="/image/216" alt="" width="20" height="20" style="object-fit:contain;">
658                                </div>
659                                Glossary
660                            </a>
661                    </div>
662
663
664
665                <div class="nav__sheet-divider"></div>
666                <button class="nav__sheet-group-trigger" type="button" aria-haspopup="true" aria-expanded="false">
667                    <span>
668                        <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="vertical-align:middle;margin-right:.35rem;"><circle cx="12" cy="8" r="4"/><path d="M4 20c0-4 3.6-7 8-7s8 3 8 7"/></svg>
669                        Account
670                    </span>
671                    <svg viewBox="0 0 10 6" fill="none"><path d="M1 1l4 4 4-4" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/></svg>
672                </button>
673                <div class="nav__sheet-sub">
674                    <div class="nav__sheet-account">
675                        <p class="nav__sheet-account-lead">Log in into your shop account or create a new one.</p>
676                        <a class="btn btn--primary" href="/Internal/Account/Login?returnUrl=~%2Fen%2Fnews">Login</a>
677                        <a class="btn btn--outline" href="/Internal/Account/Register?returnUrl=~%2Fen%2Fnews">Create account</a>
678                    </div>
679                </div>
680
681                <div class="nav__sheet-divider"></div>
682                <button class="nav__sheet-group-trigger" id="sheetLangTrigger" type="button">
683                    <span>
684                        <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="vertical-align:middle;margin-right:.35rem;"><circle cx="12" cy="12" r="10"/><path d="M2 12h20"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg>
685                        Language
686                    </span>
687                    <svg viewBox="0 0 10 6" fill="none"><path d="M1 1l4 4 4-4" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/></svg>
688                </button>
689                <div class="nav__sheet-sub" id="sheetLangSub">
690                        <form method="post" style="margin:0;padding:0;display:contents;" action="/Home/SetLanguage?returnUrl=~%2Fen%2Fnews">
691                            <button type="submit" name="culture" value="de-DE"
692                                    class="nav__sheet-sub-item ">
693                                DE — German
694                            </button>
695                        <input name="__RequestVerificationToken" type="hidden" value="CfDJ8BIMwQTuEtBBtnnpT6fmYELlzN2_GftZ5r05nVeNKwg_YACkhHsBg5Kxg9_cdJVC24NOR4Z2ZKJS5YkGyxAm-5d3E8VVStZVP-4JEqePgzhFNmhTJMtAwKhIO8xbm1EF0_L-5hbsJCqyix-9JbwYczI" /></form>
696                        <form method="post" style="margin:0;padding:0;display:contents;" action="/Home/SetLanguage?returnUrl=~%2Fen%2Fnews">
697                            <button type="submit" name="culture" value="en-US"
698                                    class="nav__sheet-sub-item is-active">
699                                EN — English
700                            </button>
701                        <input name="__RequestVerificationToken" type="hidden" value="CfDJ8BIMwQTuEtBBtnnpT6fmYELlzN2_GftZ5r05nVeNKwg_YACkhHsBg5Kxg9_cdJVC24NOR4Z2ZKJS5YkGyxAm-5d3E8VVStZVP-4JEqePgzhFNmhTJMtAwKhIO8xbm1EF0_L-5hbsJCqyix-9JbwYczI" /></form>
702                        <form method="post" style="margin:0;padding:0;display:contents;" action="/Home/SetLanguage?returnUrl=~%2Fen%2Fnews">
703                            <button type="submit" name="culture" value="es-ES"
704                                    class="nav__sheet-sub-item ">
705                                ES — Spanish
706                            </button>
707                        <input name="__RequestVerificationToken" type="hidden" value="CfDJ8BIMwQTuEtBBtnnpT6fmYELlzN2_GftZ5r05nVeNKwg_YACkhHsBg5Kxg9_cdJVC24NOR4Z2ZKJS5YkGyxAm-5d3E8VVStZVP-4JEqePgzhFNmhTJMtAwKhIO8xbm1EF0_L-5hbsJCqyix-9JbwYczI" /></form>
708                        <form method="post" style="margin:0;padding:0;display:contents;" action="/Home/SetLanguage?returnUrl=~%2Fen%2Fnews">
709                            <button type="submit" name="culture" value="it-IT"
710                                    class="nav__sheet-sub-item ">
711                                IT — Italian
712                            </button>
713                        <input name="__RequestVerificationToken" type="hidden" value="CfDJ8BIMwQTuEtBBtnnpT6fmYELlzN2_GftZ5r05nVeNKwg_YACkhHsBg5Kxg9_cdJVC24NOR4Z2ZKJS5YkGyxAm-5d3E8VVStZVP-4JEqePgzhFNmhTJMtAwKhIO8xbm1EF0_L-5hbsJCqyix-9JbwYczI" /></form>
714                        <form method="post" style="margin:0;padding:0;display:contents;" action="/Home/SetLanguage?returnUrl=~%2Fen%2Fnews">
715                            <button type="submit" name="culture" value="fr-FR"
716                                    class="nav__sheet-sub-item ">
717                                FR — French
718                            </button>
719                        <input name="__RequestVerificationToken" type="hidden" value="CfDJ8BIMwQTuEtBBtnnpT6fmYELlzN2_GftZ5r05nVeNKwg_YACkhHsBg5Kxg9_cdJVC24NOR4Z2ZKJS5YkGyxAm-5d3E8VVStZVP-4JEqePgzhFNmhTJMtAwKhIO8xbm1EF0_L-5hbsJCqyix-9JbwYczI" /></form>
720                        <form method="post" style="margin:0;padding:0;display:contents;" action="/Home/SetLanguage?returnUrl=~%2Fen%2Fnews">
721                            <button type="submit" name="culture" value="pl-PL"
722                                    class="nav__sheet-sub-item ">
723                                PL — Polish
724                            </button>
725                        <input name="__RequestVerificationToken" type="hidden" value="CfDJ8BIMwQTuEtBBtnnpT6fmYELlzN2_GftZ5r05nVeNKwg_YACkhHsBg5Kxg9_cdJVC24NOR4Z2ZKJS5YkGyxAm-5d3E8VVStZVP-4JEqePgzhFNmhTJMtAwKhIO8xbm1EF0_L-5hbsJCqyix-9JbwYczI" /></form>
726                        <form method="post" style="margin:0;padding:0;display:contents;" action="/Home/SetLanguage?returnUrl=~%2Fen%2Fnews">
727                            <button type="submit" name="culture" value="pt-PT"
728                                    class="nav__sheet-sub-item ">
729                                PT — Portuguese
730                            </button>
731                        <input name="__RequestVerificationToken" type="hidden" value="CfDJ8BIMwQTuEtBBtnnpT6fmYELlzN2_GftZ5r05nVeNKwg_YACkhHsBg5Kxg9_cdJVC24NOR4Z2ZKJS5YkGyxAm-5d3E8VVStZVP-4JEqePgzhFNmhTJMtAwKhIO8xbm1EF0_L-5hbsJCqyix-9JbwYczI" /></form>
732                </div>
733        </div>
734
735            <div class="nav__sheet-footer">
736                <a href="/en/contact">Contact</a>
737            </div>
738    </div>
739
740    <!-- ═══════ MAIN ═══════ -->
741    
742    <div class="page-hero">
743        <div class="container">
744            <p class="page-hero__label">Articles</p>
745            <h1 class="page-hero__title">News</h1>
746        </div>
747    </div>
748    <section class="section">
749        <div class="container">
750                <div style="display:flex;gap:1rem;flex-wrap:wrap;align-items:center;justify-content:space-between;margin-bottom:1.5rem;">
751                    <input id="postSearch" type="search" placeholder="Search" title="Search"
752                           style="flex:1 1 240px;max-width:360px;height:36px;border:1px solid var(--c-border);border-radius:4px;padding:0 .6rem;font-family:var(--f-ui);font-size:.85rem;background:var(--c-white);color:var(--c-dark);" />
753                    <div style="display:flex;gap:.75rem;
753align-items:center;flex-wrap:wrap;">
754                        <select id="postYear" title="Year" style="height:36px;border:1px solid var(--c-border);border-radius:4px;padding:0 .6rem;font-family:var(--f-ui);font-size:.85rem;background:var(--c-white);color:var(--c-dark);">
755                            <option value="">All Years</option>
756                                <option value="2025">2025</option>
757                                <option value="2024">2024</option>
758                                <option value="2023">2023</option>
759                                <option value="2020">2020</option>
760                                <option value="2019">2019</option>
761                        </select>
762                            <select id="postSort" title="Sort" style="height:36px;border:1px solid var(--c-border);border-radius:4px;padding:0 .6rem;font-family:var(--f-ui);font-size:.85rem;background:var(--c-white);color:var(--c-dark);">
763                                    <option value="NewestFirst" selected="selected">Newest first</option>
764                                    <option value="OldestFirst">Oldest first</option>
765                                    <option value="AlphabeticalAsc">Alphabetical (A&#x2013;Z)</option>
766                                    <option value="AlphabeticalDesc">Alphabetical (Z&#x2013;A)</option>
767                            </select>
768                    </div>
769                </div>
770                <div class="grid-3" id="postGrid">
771                        <article class="card fade-up"
772                                 data-title="congratulations to patrick thaler on the lean six sigma master black belt excellence!"
773                                 data-year="2025"
774                                 data-created="2025-09-30T13:49:44.6443628">
775                            <img src="/image/639" alt="Congratulations to Patrick Thaler on the Lean Six Sigma Master Black Belt Excellence!" class="card__img card__img--landscape" loading="lazy" />
776                            <div class="card__body">
777                                <span class="card__tag">30 Sep 2025</span>
778                                <h3 class="card__title">Congratulations to Patrick Thaler on the Lean Six Sigma Master Black Belt Excellence!</h3>
779                                    <div style="font-family:var(--f-ui);font-size:.875rem;color:var(--c-mid);margin:.5rem 0 1rem;line-height:1.6;">
780                                        <p>We at Alphadi are very proud of this and wish Patrick all the best and continued success on his journey in Operational Excellence.</p>
781
782                                    </div>
783                                <a href="/en/news/congratulations-to-patrick-thaler-on-the-lean-six-sigma-master-black-belt-excellence" style="font-family:var(--f-ui);font-size:.8rem;font-weight:600;color:var(--c-orange);display:flex;align-items:center;gap:.4rem;letter-spacing:.04em;text-transform:uppercase;">
784                                    Read more
785                                    <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="5" y1="12" x2="19" y2="12" /><polyline points="12 5 19 12 12 19" /></svg>
786                                </a>
787                            </div>
788                        </article>
789                        <article class="card fade-up"
790                                 data-title="zimmer switzerland manufacturing gmbh wins the shingo bronze prize"
791                                 data-year="2025"
792                                 data-created="2025-02-21T15:19:03.7669073">
793                            <img src="/image/764" alt="Zimmer Switzerland Manufacturing GmbH wins the Shingo Bronze Prize" class="card__img card__img--landscape" loading="lazy" />
794                            <div class="card__body">
795                                <span class="card__tag">21 Feb 2025</span>
796                                <h3 class="card__title">Zimmer Switzerland Manufacturing GmbH wins the Shingo Bronze Prize</h3>
797                                    <div style="font-family:var(--f-ui);font-size:.875rem;color:var(--c-mid);margin:.5rem 0 1rem;line-height:1.6;">
798                                        <p>With this, Zimmer has become the first company in Switzerland and the second company overall in the entire German-speaking region to receive this prestigious award.</p>
799
800                                    </div>
801                                <a href="/en/news/zimmer-wins-the-shingo-bronze-prize" style="font-family:var(--f-ui);font-size:.8rem;font-weight:600;color:var(--c-orange);display:flex;align-items:center;gap:.4rem;letter-spacing:.04em;text-transform:uppercase;">
802                                    Read more
803                                    <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="5" y1="12" x2="19" y2="12" /><polyline points="12 5 19 12 12 19" /></svg>
804                                </a>
805                            </div>
806                        </article>
807                        <article class="card fade-up"
808                                 data-title="certificate presentation &#x2013; gold excellence program"
809                                 data-year="2024"
810                                 data-created="2024-08-08T15:50:52.8580850">
811                            <img src="/image/774" alt="Certificate Presentation &#x2013; Gold Excellence Program" class="card__img card__img--landscape" loading="lazy" />
812                            <div class="card__body">
813                                <span class="card__tag">8 Aug 2024</span>
814                                <h3 class="card__title">Certificate Presentation &#x2013; Gold Excellence Program</h3>
815                                    <div style="font-family:var(--f-ui);font-size:.875rem;color:var(--c-mid);margin:.5rem 0 1rem;line-height:1.6;">
816                                        <p>Congratulations on passing the exam in the Gold Excellence Program!</p>
817
818                                    </div>
819                                <a href="/en/news/certificate-presentation-gold-excellence-program" style="font-family:var(--f-ui);font-size:.8rem;font-weight:600;color:var(--c-orange);display:flex;align-items:center;gap:.4rem;letter-spacing:.04em;text-transform:uppercase;">
820                                    Read more
821                                    <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="5" y1="12" x2="19" y2="12" /><polyline points="12 5 19 12 12 19" /></svg>
822                                </a>
823                            </div>
824                        </article>
825                        <article class="card fade-up"
826                                 data-title="the annual review of the alphadi academy for the year 2024"
827                                 data-year="2024"
828                                 data-created="2024-01-24T15:34:43.7962899">
829                            <img src="/image/751" alt="The annual review of the Alphadi Academy for the year 2024" class="card__img card__img--landscape" loading="lazy" />
830                            <div class="card__body">
831                                <span class="card__tag">24 Jan 2024</span>
832                                <h3 class="card__title">The annual review of the Alphadi Academy for the year 2024</h3>
833                                    <div style="font-family:var(--f-ui);font-size:.875rem;color:var(--c-mid);margin:.5rem 0 1rem;line-height:1.6;">
834                                        <p>The year 2024 was a year full of exciting experiences, important milestones, and great moments. Together with our customers and our team, we mastered many tasks and thereby created beautiful memories &ndash; both on an interpersonal and professional level. Here is a look back at some highlights of our customers and employees.</p>
835
836                                    </div>
837                                <a href="/en/news/the-annual-review-of-the-alphadi-academy-for-the-year-2024" style="font-family:var(--f-ui);font-size:.8rem;font-weight:600;color:var(--c-orange);display:flex;align-items:center;gap:.4rem;letter-spacing:.04em;text-transform:uppercase;">
838                                    Read more
839                                    <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="5" y1="12" x2="19" y2="12" /><polyline points="12 5 19 12 12 19" /></svg>
840                                </a>
841                            </div>
842                        </article>
843                        <article class="card fade-up"
844                                 data-title="certificate presentation &#x2013; master black belt"
845                                 data-year="2023"
846                                 data-created="2023-11-27T13:00:40.3936156">
847                            <img src="/image/795" alt="Certificate Presentation &#x2013; Master Black Belt" class="card__img card__img--landscape" loading="lazy" />
848                            <div class="card__body">
849                                <span class="card__tag">27 Nov 2023</span>
850                                <h3 class="card__title">Certificate Presentation &#x2013; Master Black Belt</h3>
851                                    <div style="font-family:var(--f-ui);font-size:.875rem;color:var(--c-mid);margin:.5rem 0 1rem;line-height:1.6;">
852                                        <p>Ceremonial certificate presentation in Kassel - Master Black Belt</p>
853
854                                    </div>
855                                <a href="/en/news/certificate-presentation-master-black-belt" style="font-family:var(--f-ui);font-size:.8rem;font-weight:600;color:var(--c-orange);display:flex;align-items:center;gap:.4rem;letter-spacing:.04em;text-transform:uppercase;">
856                                    Read more
857                                    <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="5" y1="12" x2="19" y2="12" /><polyline points="12 5 19 12 12 19" /></svg>
858                                </a>
859                            </div>
860                        </article>
861                        <article class="card fade-up"
862                                 data-title="obituary ritsuo shingo-san"
863                                 data-year="2023"
864                                 data-created="2023-04-26T16:08:09.5666561">
865                            <img src="/image/778" alt="Obituary Ritsuo Shingo-san" class="card__img card__img--landscape" loading="lazy" />
866                            <div class="card__body">
867                                <span class="card__tag">26 Apr 2023</span>
868                                <h3 class="card__title">Obituary Ritsuo Shingo-san</h3>
869                                    <div style="font-family:var(--f-ui);font-size:.875rem;color:var(--c-mid);margin:.5rem 0 1rem;line-height:1.6;">
870                                        <p>With great gratitude and respect</p>
871
872<p>Ritsuo Shingo-san (1947-2023)</p>
873
874                                    </div>
875                                <a href="/en/news/obituary-ritsuo-shingo-san" style="font-family:var(--f-ui);font-size:.8rem;font-weight:600;color:var(--c-orange);display:flex;align-items:center;gap:.4rem;letter-spacing:.04em;text-transform:uppercase;">
876                                    Read more
877                                    <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="5" y1="12" x2="19" y2="12" /><polyline points="12 5 19 12 12 19" /></svg>
878                                </a>
879                            </div>
880                        </article>
881                        <article class="card fade-up"
882                                 data-title="lean six sigma certificate presentation"
883                                 data-year="2020"
884                                 data-created="2020-11-10T13:07:59.1333594">
885                            <img src="/image/809" alt="Lean Six Sigma Certificate Presentation" class="card__img card__img--landscape" loading="lazy" />
886                            <div class="card__body">
887                                <span class="card__tag">10 Nov 2020</span>
888                                <h3 class="card__title">Lean Six Sigma Certificate Presentation</h3>
889                                    <div style="font-family:var(--f-ui);font-size:.875rem;color:var(--c-mid);margin:.5rem 0 1rem;line-height:1.6;">
890                                        <p>&ndash; at a distance, but still with heart</p>
891
892                                    </div>
893                                <a href="/en/news/lean-six-sigma-certificate-presentation" style="font-family:var(--f-ui);font-size:.8rem;font-weight:600;color:var(--c-orange);display:flex;align-items:center;gap:.4rem;letter-spacing:.04em;text-transform:uppercase;">
894                                    Read more
895                                    <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="5" y1="12" x2="19" y2="12" /><polyline points="12 5 19 12 12 19" /></svg>
896                                </a>
897                            </div>
898                        </article>
899                        <article class="card fade-up"
900                                 data-title="shingo workshop discover excellence at 3m"
901                                 data-year="2020"
902                                 data-created="2020-10-29T13:12:34.4156766">
903                            <img src="/image/807" alt="Shingo Workshop Discover Excellence at 3M" class="card__img card__img--landscape" loading="lazy" />
904                            <div class="card__body">
905                                <span class="card__tag">29 Oct 2020</span>
906                                <h3 class="card__title">Shingo Workshop Discover Excellence at 3M</h3>
907                                <a href="/en/news/shingo-workshop-discover-excellence-at-3m" style="font-family:var(--f-ui);font-size:.8rem;font-weight:600;color:var(--c-orange);display:flex;align-items:center;gap:.4rem;letter-spacing:.04em;text-transform:uppercase;">
908                                    Read more
909                                    <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="5" y1="12" x2="19" y2="12" /><polyline points="12 5 19 12 12 19" /></svg>
910                                </a>
911                            </div>
912                        </article>
913                        <article class="card fade-up"
914                                 data-title="gemba walk &#x2013; character magazine"
915                                 data-year="2020"
916                                 data-created="2020-02-11T13:16:43.2345813">
917                            <img src="/image/812" alt="Gemba Walk &#x2013; Character Magazine" class="card__img card__img--landscape" loading="lazy" />
918                            <div class="card__body">
919                                <span class="card__tag">11 Feb 2020</span>
920                                <h3 class="card__title">Gemba Walk &#x2013; Character Magazine</h3>
921                                    <div style="font-family:var(--f-ui);font-size:.875rem;color:var(--c-mid);margin:.5rem 0 1rem;line-height:1.6;">
922                                        <p>Ritsuo Shingo as a guest at Fleischwaren Wulff</p>
923
924                                    </div>
925                                <a href="/en/news/gemba-walk-character-magazine" style="font-family:var(--f-ui);font-size:.8rem;font-weight:600;color:var(--c-orange);display:flex;align-items:center;gap:.4rem;letter-spacing:.04em;text-transform:uppercase;">
926                                    Read more
927                                    <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="5" y1="12" x2="19" y2="12" /><polyline points="12 5 19 12 12 19" /></svg>
928                                </a>
929                            </div>
930                        </article>
931                        <article class="card fade-up"
932                                 data-title="first shingo conference in germany"
933                                 data-year="2019"
934                                 data-created="2019-11-20T13:21:48.1573863">
935                            <img src="/image/798" alt="First Shingo Conference in Germany" class="card__img card__img--landscape" loading="lazy" />
936                            <div class="card__body">
937                                <span class="card__tag">20 Nov 2019</span>
938                                <h3 class="card__title">First Shingo Conference in Germany</h3>
939                                    <div style="font-family:var(--f-ui);font-size:.875rem;color:var(--c-mid);margin:.5rem 0 1rem;line-height:1.6;">
940                                        <p>People from all over the world talk about cultural change.</p>
941
942                                    </div>
943                                <a href="/en/news/first-shingo-conference-in-germany" style="font-family:var(--f-ui);font-size:.8rem;font-weight:600;color:var(--c-orange);display:flex;align-items:center;gap:.4rem;letter-spacing:.04em;text-transform:uppercase;">
944                                    Read more
945                                    <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="5" y1="12" x2="19" y2="12" /><polyline points="12 5 19 12 12 19" /></svg>
946                                </a>
947                            </div>
948                        </article>
949                        <article class="card fade-up"
950                                 data-title="shingo workshop discover excellence at continental"
951                                 data-year="2019"
952                                 data-created="2019-11-18T13:29:20.0911670">
953                            <img src="/image/805" alt="Shingo Workshop Discover Excellence at Continental" class="card__img card__img--landscape" loading="lazy" />
954                            <div class="card__body">
955                                <span class="card__tag">18 Nov 2019</span>
956                                <h3 class="card__title">Shingo Workshop Discover Excellence at Continental</h3>
957                                    <div style="font-family:var(--f-ui);font-size:.875rem;color:var(--c-mid);margin:.5rem 0 1rem;line-height:1.6;">
958                                        <p>Continental, 3M, Osram, Ball and others...</p>
959
960                                    </div>
961                                <a href="/en/news/shingo-workshop-discover-excellence-at-continental" style="font-family:var(--f-ui);font-size:.8rem;font-weight:600;color:var(--c-orange);display:flex;align-items:center;gap:.4rem;letter-spacing:.04em;text-transform:uppercase;">
962                                    Read more
963                                    <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="5" y1="12" x2="19" y2="12" /><polyline points="12 5 19 12 12 19" /></svg>
964                                </a>
965                            </div>
966                        </article>
967                        <article class="card fade-up"
968                                 data-title="gemba walk with ritsuo shingo in g&#xF6;ttingen"
969                                 data-year="2019"
970                                 data-created="2019-11-15T13:34:39.2290504">
971                            <img src="/image/802" alt="Gemba Walk with Ritsuo Shingo in G&#xF6;ttingen" class="card__img card__img--landscape" loading="lazy" />
972                            <div class="card__body">
973                                <span class="card__tag">15 Nov 2019</span>
974                                <h3 class="card__title">Gemba Walk with Ritsuo Shingo in G&#xF6;ttingen</h3>
975                                    <div style="font-family:var(--f-ui);font-size:.875rem;color:var(--c-mid);margin:.5rem 0 1rem;line-height:1.6;">
976                                        <p>Mr. Shingo is conducting a Gemba Walk in G&ouml;ttingen.</p>
977
978                                    </div>
979                                <a href="/en/news/gemba-walk-with-ritsuo-shingo-in-gottingen" style="font-family:var(--f-ui);font-size:.8rem;font-weight:600;color:var(--c-orange);display:flex;align-items:center;gap:.4rem;letter-spacing:.04em;text-transform:uppercase;">
980                                    Read more
981                                    <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="5" y1="12" x2="19" y2="12" /><polyline points="12 5 19 12 12 19" /></svg>
982                                </a>
983                            </div>
984                        </article>
985                        <article class="card fade-up"
986                                 data-title="fireside chat with ritsuo shingo in kassel"
987                                 data-year="2019"
988                                 data-created="2019-11-14T13:42:56.5788495">
989                            <img src="/image/813" alt="Fireside Chat with Ritsuo Shingo in Kassel" class="card__img card__img--landscape" loading="lazy" />
990                            <div class="card__body">
991                                <span class="card__tag">14 Nov 2019</span>
992                                <h3 class="card__title">Fireside Chat with Ritsuo Shingo in Kassel</h3>
993                                    <div style="font-family:var(--f-ui);font-size:.875rem;color:var(--c-mid);margin:.5rem 0 1rem;line-height:1.6;">
994                                        <p>We welcome Mr. Ritsuo Shingo to our academy.</p>
995
996                                    </div>
997                                <a href="/en/news/fireside-chat-with-ritsuo-shingo-in-kassel" style="font-family:var(--f-ui);font-size:.8rem;font-weight:600;color:var(--c-orange);display:flex;align-items:center;gap:.4rem;letter-spacing:.04em;text-transform:uppercase;">
998                                    Read more
999                                    <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="5" y1="12" x2="19" y2="12" /><polyline points="12 5 19 12 12 19" /></svg>
1000                                </a>
1001                            </div>
1002                        </article>
1003                        <article class="card fade-up"
1004                                 data-title="certificate presentation at novelis"
1005                                 data-year="2019"
1006                                 data-created="2019-05-07T13:47:19.3412094">
1007                            <img src="/image/794" alt="Certificate Presentation at Novelis" class="card__img card__img--landscape" loading="lazy" />
1008                            <div class="card__body">
1009                                <span class="card__tag">7 May 2019</span>
1010                                <h3 class="card__title">Certificate Presentation at Novelis</h3>
1011                                <a href="/en/news/certificate-presentation-novelis" style="font-family:var(--f-ui);font-size:.8rem;font-weight:600;color:var(--c-orange);display:flex;align-items:center;gap:.4rem;letter-spacing:.04em;text-transform:uppercase;">
1012                                    Read more
1013                                    <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="5" y1="12" x2="19" y2="12" /><polyline points="12 5 19 12 12 19" /></svg>
1014                                </a>
1015                            </div>
1016                        </article>
1017                </div>
1018                <p id="postNoResults" style="display:none;text-align:center;color:var(--c-mid);font-family:var(--f-ui);padding:3rem 0;">No posts found.</p>
1019                
1019<script>
1020                (function () {
1021                    var grid = document.getElementById('postGrid');
1022                    if (!grid) { return; }
1023                    var searchEl = document.getElementById('postSearch');
1024                    var yearEl = document.getElementById('postYear');
1025                    var sortEl = document.getElementById('postSort');
1026                    var noResults = document.getElementById('postNoResults');
1027                    var cards = Array.prototype.slice.call(grid.querySelectorAll('.card'));
1028
1029                    function apply() {
1030                        var term = ((searchEl && searchEl.value) || '').trim().toLowerCase();
1031                        var year = (yearEl && yearEl.value) || '';
1032                        var visible = 0;
1033                        cards.forEach(function (card) {
1034                            var matchSearch = !term || (card.dataset.title || '').indexOf(term) !== -1;
1035                            var matchYear = !year || card.dataset.year === year;
1036                            var show = matchSearch && matchYear;
1037                            card.style.display = show ? '' : 'none';
1038                            if (show) { visible++; }
1039                        });
1040                        if (noResults) { noResults.style.display = visible === 0 ? 'block' : 'none'; }
1041
1042                        if (sortEl) {
1043                            var key = sortEl.value;
1044                            cards.slice().sort(function (a, b) {
1045                                var ta = (a.dataset.title || '');
1046                                var tb = (b.dataset.title || '');
1047                                var ca = new Date(a.dataset.created || 0).getTime();
1048                                var cb = new Date(b.dataset.created || 0).getTime();
1049                                switch (key) {
1050                                    case 'NewestFirst':      return cb - ca;
1051                                    case 'OldestFirst':      return ca - cb;
1052                                    case 'AlphabeticalAsc':  return ta.localeCompare(tb);
1053                                    case 'AlphabeticalDesc': return tb.localeCompare(ta);
1054                                    default: return 0;
1055                                }
1056                            }
1056).forEach(function (el) { grid.appendChild(el); });
1057                        }
1058                    }
1059
1060                    if (searchEl) { searchEl.addEventListener('input', apply); }
1061                    if (yearEl) { yearEl.addEventListener('change', apply); }
1062                    if (sortEl) { sortEl.addEventListener('change', apply); }
1063                })();
1064                </script>
1064
1065        </div>
1066    </section>
1067
1068
1069
1070
1071    <!-- ═══════ FOOTER ═══════ -->
1072<meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0">
1073<title></title>
1074<link href="https://api.fontshare.com" rel="preconnect" />
1075<link href="https://fonts.googleapis.com" rel="preconnect" />
1076<link href="https://api.fontshare.com/v2/css?f[]=satoshi@300,400,500,600,700,900&amp;display=swap" rel="stylesheet" />
1077<link href="https://fonts.googleapis.com/css2?family=Lexend:wght@300;400;500;600;700&amp;display=swap" rel="stylesheet" />
1078<style type="text/css">*, *::before, *::after {
1079  box-sizing: border-box;
1080  margin: 0;
1081  padding: 0;
1082  }
1083  html {
1084    font-size: 16px;
1085  }
1086  body {
1087    font-family: 'Satoshi', system-ui, sans-serif;
1088    -webkit-font-smoothing: antialiased;
1089  }
1090  a {
1091    color: inherit;
1092    text-decoration: none;
1093  }
1094  img {
1095    max-width: 100%;
1096    display: block;
1097  }
1098  .footer-v2 {
1099    background: #111111;
1100    position: relative;
1101    overflow: hidden;
1102  }
1103  .footer-v2::before {
1104    content: '';
1105    position: absolute;
1106    top: 0;
1107    left: 0;
1108    right: 0;
1109    height: 3px;
1110    background: linear-gradient(90deg, #111111, #EC841F, #1a0a00);
1111  }
1112  .footer-v2::after {
1113    content: '';
1114    position: absolute;
1115    top: -120px;
1116    left: -80px;
1117    width: 500px;
1118    height: 500px;
1119    border-radius: 50%;
1120    background: radial-gradient(circle, rgba(236,132,31,.07) 0%, transparent 65%);
1121    pointer-events: none;
1122  }
1123  .footer-v2__inner {
1124    max-width: 1280px;
1125    margin: 0 auto;
1126    padding: 4rem 3rem 0;
1127  }
1128  @media (max-width: 767px) {
1129    .footer-v2__inner {
1130      padding: 3rem 1.5rem 0;
1131    }
1132  }
1133  .footer-v2__top {
1134    display: grid;
1135    grid-template-columns: 1.6fr 2.4fr;
1136    gap: 4rem;
1137    padding-bottom: 3rem;
1138    border-bottom: 1px solid rgba(255,255,255,.08);
1139  }
1140  @media (max-width: 767px) {
1141    .footer-v2__top {
1142      grid-template-columns: 1fr;
1143      gap: 2.5rem;
1144    }
1145  }
1146  .footer-v2__brand img {
1147    height: 56px;
1148    width: auto;
1149    margin-bottom: 2rem;
1150    filter: none !important;
1151    /* Prevents browser dark mode from inverting the white logo to black */
1152    forced-color-adjust: none;
1153    /* Exclude logo from automatic color adjustment (Dark Mode/High Contrast) */
1154  }
1155  .footer-v2__claim {
1156    font-family: 'Satoshi', system-ui, sans-serif;
1157    font-size: clamp(1.15rem, 1.8vw, 1.45rem);
1158    font-weight: 700;
1159    color: #ffffff;
1160    line-height: 1.35;
1161    letter-spacing: -0.02em;
1162    margin-bottom: 1.5rem;
1163    max-width: 280px;
1164  }
1165  .footer-v2__claim em {
1166    font-style: normal;
1167    color: #EC841F;
1168  }
1169  .footer-v2__contact {
1170    display: flex;
1171    flex-direction: column;
1172    gap: 0.4rem;
1173  }
1174  .footer-v2__contact a {
1175    display: flex;
1176    align-items: center;
1177    gap: 0.5rem;
1178    font-family: 'Satoshi', system-ui, sans-serif;
1179    font-size: 0.78rem;
1180    color: rgba(255,255,255,.88);
1181    text-decoration: none;
1182    transition: color 0.15s;
1183    font-weight: 400;
1184    letter-spacing: 0.8px;
1185  }
1186  .footer-v2__contact a:hover {
1187    color: #EC841F;
1188  }
1189  .footer-v2__contact svg {
1190    flex-shrink: 0;
1191    opacity: .6;
1192  }
1193  .footer-v2__links {
1194    display: grid;
1195    grid-template-columns: repeat(3, 1fr);
1196    gap: 2rem;
1197    padding-top: 0.25rem;
1198  }
1199  @media (max-width: 479px) {
1200    .footer-v2__links {
1201      grid-template-columns: repeat(2, 1fr);
1202    }
1203  }
1204  .footer-v2__col h4 {
1205    font-family: 'Satoshi', system-ui, sans-serif;
1206    font-size: 0.65rem;
1207    font-weight: 700;
1208    letter-spacing: 0.14em;
1209    text-transform: uppercase;
1210    color: #ffffff;
1211    margin-bottom: 1rem;
1212  }
1213  .footer-v2__col a {
1214    display: block;
1215    font-family: 'Satoshi', system-ui, sans-serif;
1216    font-size: 0.78rem;
1217    color: rgba(255,255,255,.88);
1218    margin-bottom: 0.5rem;
1219    text-decoration: none;
1220    transition: color 0.15s, padding-left 0.15s;
1221    font-weight: 300;
1222    letter-spacing: 0.8px;
1223  }
1224  .footer-v2__col a:hover {
1225    color: #fff;
1226    padding-left: 3px;
1227  }
1228  .footer-v2__bottom {
1229    max-width: 1280px;
1230    margin: 0 auto;
1231    padding: 1.25rem 3rem;
1232    border-top: 1px solid rgba(255,255,255,.14);
1233    display: flex;
1234    flex-wrap: wrap;
1235    justify-content: space-between;
1236    align-items: center;
1237    gap: 0.75rem;
1238  }
1239  @media (max-width: 767px) {
1240    .footer-v2__bottom {
1241      padding: 1.25rem 1.5rem;
1242      flex-direction: column;
1243      align-items: flex-start;
1244    }
1245  }
1246  .footer-v2__copy {
1247    font-family: 'Satoshi', system-ui, sans-serif;
1248    font-size: 0.75rem;
1249    color: rgba(255,255,255,.88);
1250  }
1251  .footer-v2__socials {
1252    display: flex;
1253    align-items: center;
1254    gap: 0.5rem;
1255  }
1256  .footer-v2__social {
1257    width: 36px;
1258    height: 36px;
1259    display: flex;
1260    align-items: center;
1261    justify-content: center;
1262    border: 1px solid rgba(255,255,255,.5);
1263    border-radius: 8px;
1264    color: rgba(255,255,255,.9);
1265    text-decoration: none;
1266    transition: border-color 0.15s, color 0.15s, background 0.15s;
1267  }
1268  .footer-v2__social:hover {
1269    border-color: #EC841F;
1270    color: #EC841F;
1271    background: rgba(236,132,31,.08);
1272  }
1273  .footer-v2__social svg {
1274    width: 14px;
1275    height: 14px;
1276  }
1277</style>
1278<footer class="footer-v2">
1279<div class="footer-v2__inner">
1280<div class="footer-v2__top">
1281<div class="footer-v2__brand">
1282<a href="/"><img alt="Alphadi" src="/image/222" /></a>
1283
1284<p class="footer-v2__claim">We focus on<br />
1285<em>people</em>.</p>
1286
1287<div class="footer-v2__contact">
1288<a href="tel:+4956194918900"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
1289              <path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07A19.5 19.5 0 0 1 4.68 12a19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 3.59 1.23h3a2 2 0 0 1 2 1.72c.128.96.361 1.903.7 2.81a2 2 0 0 1-.45 2.11L7.91 8.87a16 16 0 0 0 6 6l.87-.87a2 2 0 0 1 2.11-.45c.907.339 1.85.572 2.81.7A2 2 0 0 1 22 16.92z"/>
1290            </svg>+49 561 949 189 0</a>
1291
1292<a href="mailto:[email protected]"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
1293              <path d="M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z"/>
1294              <polyline points="22,6 12,13 2,6"/>
1295            </svg>[email protected]</a>
1296</div>
1297</div>
1298
1299<div class="footer-v2__links">
1300<div class="footer-v2__col">
1301<h4>Programs</h4>
1302
1303<a href="/en/workshops">Workshops &amp; Seminars</a>
1304
1305<a href="/en/events">Events</a>
1306
1307<a href="/en/assessments">Assessments</a>
1308
1309<a href="/en/support">Software Support &amp; Help</a>
1310</div>
1311
1312<div class="footer-v2__col">
1313<h4>Company</h4>
1314
1315<a href="/en/ueber-uns">About us</a>
1316
1317<a href="/en/contact">Contact</a>
1318
1319<a href="/en/career">Career</a>
1320</div>
1321
1322<div class="footer-v2__col">
1323<h4>Legal</h4>
1324
1325<a href="/en/privacy-policy">Privacy Policy</a>
1326
1327<a href="/en/t&amp;c">Terms and Conditions</a>
1328
1329<a href="/en/imprint">Imprint</a>
1330
1331<a href="/en/cancellation-policy">Revoke Contract Here</a>
1332
1333<a href="/en/shipping-payment-terms">Shipping &amp; Payment</a>
1334</div>
1335</div>
1336</div>
1337
1338<div class="footer-v2__bottom"><span class="footer-v2__copy">&copy; 2026 Alphadi Deutschland GmbH. All rights reserved.</span>
1339
1340<div class="footer-v2__socials">
1341<a aria-label="YouTube" class="footer-v2__social" href="#"><svg viewBox="0 0 24 24" fill="currentColor" width="16" height="16">
1342            <path d="M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z"/>
1343          </svg></a>
1344
1345<a aria-label="LinkedIn" class="footer-v2__social" href="#"><svg viewBox="0 0 24 24" fill="currentColor" width="16" height="16">
1346            <path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 0 1-2.063-2.065 2.064 2.064 0 1 1 2.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/>
1347          </svg></a>
1348</div>
1349</div>
1350</div>
1351</footer>
1352
1353    
1353<script>
1354        // Shared price formatter — mirrors DecimalUtils.PriceDisplay (German format, e.g. "6.600,00 €").
1355        // Used by every client-side price render (cart drawer, cart page, checkout, product options).
1356        window.formatPrice = function (value, symbol) {
1357            var n = Number(value);
1358            if (!isFinite(n)) { n = 0; }
1359            var number = n.toLocaleString('de-DE', { minimumFractionDigits: 2, maximumFractionDigits: 2 });
1360            return number + ' ' + (symbol || '€');
1361        };
1362    </script>
1362
1363    
1363<script src="/bundles/hp-scripts.min.js?v=ZHApbpWBMcSvjokQcwPZYptpuVDzcPqCftH9nsYyTTE"></script>
1363
1364    
1364<script src="/js/cart-sync.js?v=9IsathfVPUw6nubjgrQKNjXkyoTVZ-DBaj0qJNKNn8w"></script>
1364
1365
1366    <!-- KaTeX: render LaTeX math anywhere in the page content (delimiters \( \), \[ \], $$ $$) -->
1367    
1367<script src="/lib/katex/katex.min.js?v=3ISyluw-iE3gkxWPdg_Z1Ftser5YtTgVV_ThOPRqWK4"></script>
1367
1368    
1368<script src="/lib/katex/contrib/auto-render.min.js?v=nLjaz8CGwpZsnsS6VPSi3EO3y-KzPOwaJ0PYhsf7R6c"></script>
1368
1369    
1369<script>
1370
1371
1372    (function () {
1373        function renderMath() {
1374            if (typeof renderMathInElement !== 'function') { return; }
1375            renderMathInElement(document.body, {
1376                delimiters: [
1377                    { left: '$$', right: '$$', display: true },
1378                    { left: '\\[', right: '\\]', display: true },
1379                    { left: '\\(', right: '\\)', display: false }
1380                ],
1381                throwOnError: false,
1382                ignoredTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code']
1383            });
1384        }
1385
1386        if (document.readyState === 'loading') {
1387            document.addEventListener('DOMContentLoaded', renderMath);
1388        } else {
1389            renderMath();
1390        }
1391    })();
1392    </script>
1392
1393
1394    <!-- Topbar user menu toggle -->
1395    
1395<script>
1396    (function () {
1397        var userMenu = document.getElementById('userMenu');
1398        var userMenuBtn = document.getElementById('userMenuBtn');
1399        if (userMenu && userMenuBtn) {
1400            userMenuBtn.addEventListener('click', function (e) {
1401                e.stopPropagation();
1402                userMenu.classList.toggle('is-open');
1403            });
1404            document.addEventListener('click', function () {
1405                userMenu.classList.remove('is-open');
1406            });
1407            userMenu.addEventListener('click', function (e) { e.stopPropagation(); });
1408        }
1409        // Note: lang-switch toggles are already handled globally by hp-scripts.js
1410    })();
1411    </script>
1411
1412
1413    <!-- Topbar account (signed out) dropdown toggle -->
1414    
1414<script>
1415    (function () {
1416        var accountMenu = document.getElementById('accountMenu');
1417        var accountMenuBtn = document.getElementById('accountMenuBtn');
1418        if (accountMenu && accountMenuBtn) {
1419            accountMenuBtn.addEventListener('click', function (e) {
1420                e.stopPropagation();
1421                var open = accountMenu.classList.toggle('is-open');
1422                accountMenuBtn.setAttribute('aria-expanded', open ? 'true' : 'false');
1423            });
1424            document.addEventListener('click', function () {
1425                if (accountMenu.classList.contains('is-open')) {
1426                    accountMenu.classList.remove('is-open');
1427                    accountMenuBtn.setAttribute('aria-expanded', 'false');
1428                }
1429            });
1430            accountMenu.addEventListener('click', function (e) { e.stopPropagation(); });
1431        }
1432    })();
1433    </script>
1433
1434
1435    
1436
1437
1438    <!-- Cart FAB (mobile) -->
1439    <button class="cart-fab cart-btn" id="cartFab" aria-label="Cart">
1440        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M6 2L3 6v14a2 2 0 002 2h14a2 2 0 002-2V6l-3-4z"/><line x1="3" y1="6" x2="21" y2="6"/><path d="M16 10a4 4 0 01-8 0"/></svg>
1441        <span class="cart-fab__badge cart-badge">0</span>
1442    </button>
1443
1444    <!-- Cart Overlay + Drawer -->
1445    <div class="cart-overlay" id="cartOverlay"></div>
1446    <div class="cart-drawer" id="cartDrawer"
1447         data-label-empty="Your cart is empty."
1448         data-label-remove="Remove"
1449         data-label-order="Order now"
1450         data-label-continue="Continue shopping"
1451         data-label-unit="unit"
1452         data-label-required="This option is required.">
1453        <div class="cart-drawer__head">
1454            <span class="cart-drawer__title">Cart</span>
1455            <button class="cart-drawer__close" id="cartClose">&#x2715;</button>
1456        </div>
1457        <div class="cart-drawer__notice" id="cartNotice" style="display:none;padding:0.9rem 1.1rem 0;"
1458             data-msg-title="Your cart was updated"
1459             data-msg-removed="{name} is no longer available and was removed."
1460             data-msg-repriced="Price of {name} changed to {price}."></div>
1461        <div class="cart-drawer__body" id="cartBody"></div>
1462        <div class="cart-drawer__foot" id="cartFoot" style="display:none;">
1463            <div class="cart-subtotal">
1464                <span class="cart-subtotal__label">Total</span>
1465                <span class="cart-subtotal__amount" id="cartTotal">0,00 &#8364;</span>
1466            </div>
1467            <a href="/en/cart" class="btn btn--primary btn--lg" style="width:100%;justify-content:center;">View cart</a>
1468            <button class="cart-continue" id="cartContinue">Continue shopping</button>
1469        </div>
1470    </div>
1471
1472    
1473<div class="modal-overlay" id="bookingRequestModal">
1474    <div class="modal" role="dialog" aria-modal="true" aria-labelledby="bookingRequestModalTitle">
1475        <button type="button" class="modal__close" data-booking-request-close aria-label="Close">&times;</button>
1476        <div class="modal__title" id="bookingRequestModalTitle">Reserve a seat</div>
1477        <p style="font-family:var(--f-ui);font-size:0.875rem;color:var(--c-mid);margin-bottom:1.5rem;">
1478            <strong id="bookingRequestProduct"></strong>
1479            <span id="bookingRequestFormat"></span>
1480        </p>
1481        <form id="bookingRequestForm" novalidate>
1482            <div class="form-group">
1483                <label class="form-label">First name *</label>
1484                <input type="text" class="form-input" name="firstName" required />
1485                <div class="field-error"></div>
1486            </div>
1487            <div class="form-group">
1488                <label class="form-label">Last name *</label>
1489                <input type="text" class="form-input" name="lastName" required />
1490                <div class="field-error"></div>
1491            </div>
1492            <div class="form-group">
1493                <label class="form-label">Company *</label>
1494                <input type="text" class="form-input" name="company" required />
1495                <div class="field-error"></div>
1496            </div>
1497            <div class="form-group">
1498                <label class="form-label">Email *</label>
1499                <input type="email" class="form-input" name="email" required />
1500                <div class="field-error"></div>
1501            </div>
1502            <div class="form-group">
1503                <label class="form-label">Phone *</label>
1504                <input type="tel" class="form-input" name="phone" required />
1505                <div class="field-error"></div>
1506            </div>
1507            <div class="form-group">
1508                <label class="form-label">Notes / special requirements</label>
1509                <textarea class="form-textarea" name="notes" rows="3"></textarea>
1510            </div>
1511                <div class="checkout-check-field">
1512                    <label class="checkout-check-label">
1513                        <input type="checkbox" id="br-terms" name="terms" />
1514                        <span>
1515                            I have read the
1516                            <a href="/en/t&amp;c" target="_blank" rel="noopener">Terms &amp; Conditions</a>
1517                            and agree to them. <span class="req">*</span>
1518                        </span>
1519                    </label>
1520                    <span class="field-error fw-bold text-danger" id="brTermsError"></span>
1521                </div>
1522            <div class="checkout-check-field">
1523                <label class="checkout-check-label">
1524                    <input type="checkbox" id="br-privacy" name="privacy" />
1525                    <span>
1526                        I have read the
1527                        <a href="/en/privacy-policy" target="_blank" rel="noopener">Privacy Policy</a>
1528                        and agree that my data will be processed. <span class="req">*</span>
1529                    </span>
1530                </label>
1531                <span class="field-error fw-bold text-danger" id="brPrivacyError"></span>
1532            </div>
1533
1534            <div class="field-error" id="bookingRequestFormError" style="margin-bottom:.75rem;"></div>
1535            <button type="submit" class="btn btn--primary" style="width:100%;justify-content:center;">
1536                Send booking request
1537            </button>
1538        </form>
1539    </div>
1540</div>
1541
1542<script>
1543(function () {
1544    'use strict';
1545
1546    var overlay = document.getElementById('bookingRequestModal');
1547    var form    = document.getElementById('bookingRequestForm');
1548    if (!overlay || !form) { return; }
1549
1550    var productEl = document.getElementById('bookingRequestProduct');
1551    var formatEl  = document.getElementById('bookingRequestFormat');
1552    var formError = document.getElementById('bookingRequestFormError');
1553    var pending   = null;
1554    var submitting = false;
1555
1556    var POST_URL     = '/en/cart/submit-booking-request';
1557    var MSG_REQUIRED = "This field is required.";
1558    var MSG_EMAIL    = "Please enter a valid e-mail address.";
1559    var MSG_ERROR    = "An error occurred. Please try again.";
1560    var MSG_TERMS    = "You must agree to the Terms & Conditions to continue.";
1561    var MSG_PRIVACY  = "You must agree to the Privacy Policy to continue.";
1562
1563    function isEmail(v) { return /^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/.test((v || '').trim()); }
1564
1565    function openModal(data) {
1566        pending = data;
1567        productEl.textContent = data.name || '';
1568        formatEl.innerHTML    = data.format ? (' · ' + data.format) : '';
1569        form.reset();
1570        formError.textContent = '';
1571        form.querySelectorAll('.is-invalid').forEach(function (el) { el.classList.remove('is-invalid'); });
1572        form.querySelectorAll('.field-error').forEach(function (el) { el.textContent = ''; });
1573        overlay.classList.add('is-open');
1574        document.body.style.overflow = 'hidden';
1575        setTimeout(function () { form.querySelector('[name=firstName]')?.focus(); }, 50);
1576    }
1577
1578    function closeModal() {
1579        overlay.classList.remove('is-open');
1580        document.body.style.overflow = '';
1581        pending = null;
1582    }
1583
1584    overlay.addEventListener('click', function (e) {
1585        if (e.target === overlay) { closeModal(); }
1586    });
1587    overlay.querySelectorAll('[data-booking-request-close]').forEach(function (b) {
1588        b.addEventListener('click', closeModal);
1589    });
1590    document.addEventListener('keydown', function (e) {
1591        if (e.key === 'Escape' && overlay.classList.contains('is-open')) { closeModal(); }
1592    });
1593
1594    // Capture-phase interception so we beat both the cart booking modal and the global add-to-cart handler.
1595    document.addEventListener('click', function (e) {
1596        var btn = e.target.closest('[data-add-to-cart][data-cart-type]');
1597        if (!btn) { return; }
1598        if (btn.dataset.onlyBooking !== 'true') { return; }   // not an OnlyBooking appointment — let the cart flow run
1599        var type = btn.dataset.cartType;
1600        if (type !== 'training' && type !== 'event') { return; }
1601        if (btn.disabled) { return; }
1602        e.preventDefault();
1603        e.stopImmediatePropagation();
1604        openModal({
1605            id:     btn.dataset.addToCart,
1606            type:   type,
1607            name:   btn.dataset.cartName   || btn.dataset.addToCart,
1608            format: btn.dataset.cartFormat || '',
1609        });
1610    }, true);
1611
1612    function showErr(field, msg) {
1613        field.classList.add('is-invalid');
1614        var s = field.parentElement.querySelector('.field-error');
1615        if (s) { s.textContent = msg; }
1616    }
1617    function clearErr(field) {
1618        field.classList.remove('is-invalid');
1619        var s = field.parentElement.querySelector('.field-error');
1620        if (s) { s.textContent = ''; }
1621    }
1622    function validate(field) {
1623        var val = (field.value || '').trim();
1624        if (field.hasAttribute('required') && !val) { showErr(field, MSG_REQUIRED); return false; }
1625        if (field.type === 'email' && val && !isEmail(val)) { showErr(field, MSG_EMAIL); return false; }
1626        clearErr(field); return true;
1627    }
1628
1629    form.querySelectorAll('input, textarea').forEach(function (f) {
1630        f.addEventListener('blur',  function () { validate(f); });
1631        f.addEventListener('input', function () { if (f.classList.contains('is-invalid')) { clearErr(f); } });
1632    });
1633
1634    form.addEventListener('submit', function (e) {
1635        e.preventDefault();
1636        if (!pending || submitting) { return; }
1637        formError.textContent = '';
1638        var ok = true;
1639        form.querySelectorAll('input[required], input[type=email]').forEach(function (f) {
1640            if (!validate(f)) { ok = false; }
1641        });
1642
1643        var termsCb  = document.getElementById('br-terms');
1644        var termsErr = document.getElementById('brTermsError');
1645        if (termsCb) {
1646            if (!termsCb.checked) {
1647                termsCb.classList.add('is-invalid');
1648                if (termsErr) { termsErr.textContent = MSG_TERMS; }
1649                ok = false;
1650            } else {
1651                termsCb.classList.remove('is-invalid');
1652                if (termsErr) { termsErr.textContent = ''; }
1653            }
1654        }
1655
1656        var privacyCb  = document.getElementById('br-privacy');
1657        var privacyErr = document.getElementById('brPrivacyError');
1658        if (!privacyCb.checked) {
1659            privacyCb.classList.add('is-invalid');
1660            if (privacyErr) { privacyErr.textContent = MSG_PRIVACY; }
1661            ok = false;
1662        } else {
1663            privacyCb.classList.remove('is-invalid');
1664            if (privacyErr) { privacyErr.textContent = ''; }
1665        }
1666
1667        if (!ok) { return; }
1668
1669        var fd = new FormData(form);
1670        var payload = {
1671            id:        pending.id,
1672            type:      pending.type,
1673            firstName: (fd.get('firstName') || '').trim(),
1674            lastName:  (fd.get('lastName')  || '').trim(),
1675            company:   (fd.get('company')   || '').trim(),
1676            email:     (fd.get('email')     || '').trim(),
1677            phone:     (fd.get('phone')     || '').trim(),
1678            notes:     (fd.get('notes')     || '').trim(),
1679        };
1680
1681        submitting = true;
1682        var submitBtn = form.querySelector('button[type=submit]');
1683        if (submitBtn) { submitBtn.disabled = true; }
1684
1685        fetch(POST_URL, {
1686            method: 'POST',
1687            headers: { 'Content-Type': 'application/json' },
1688            body: JSON.stringify(payload),
1689        }).then(function (res) {
1690            return res.ok ? res.json() : Promise.reject(res);
1691        }).then(function (data) {
1692            if (data && data.redirectUrl) {
1693                window.location = data.redirectUrl;
1694            } else {
1695                window.location.reload();
1696            }
1697        }).catch(function () {
1698            submitting = false;
1699            if (submitBtn) { submitBtn.disabled = false; }
1700            formError.textContent = MSG_ERROR;
1701        });
1702    });
1703})();
1704</script>
1704
1705
1706    
1707<div class="modal-overlay" id="bookingModal">
1708    <div class="modal" role="dialog" aria-modal="true" aria-labelledby="bookingModalTitle">
1709        <button type="button" class="modal__close" data-booking-close aria-label="Close">&times;</button>
1710        <div class="modal__title" id="bookingModalTitle">Reserve a seat</div>
1711        <p style="font-family:var(--f-ui);font-size:0.875rem;color:var(--c-mid);margin-bottom:1.5rem;">
1712            <strong id="bookingModalProduct"></strong>
1713            <span id="bookingModalFormat"></span>
1714        </p>
1715        <form id="bookingForm" novalidate>
1716            <div class="form-group">
1717                <label class="form-label">First name *</label>
1718                <input type="text" class="form-input" name="participantFirstName" required />
1719                <div class="field-error"></div>
1720            </div>
1721            <div class="form-group">
1722                <label class="form-label">Last name *</label>
1723                <input type="text" class="form-input" name="participantLastName" required />
1724                <div class="field-error"></div>
1725            </div>
1726            <div class="form-group">
1727                <label class="form-label">Company *</label>
1728                <input type="text" class="form-input" name="participantCompany" required />
1729                <div class="field-error"></div>
1730            </div>
1731            <div class="form-group">
1732                <label class="form-label">Email *</label>
1733                <input type="email" class="form-input" name="participantEmail" required />
1734                <div class="field-error"></div>
1735            </div>
1736            <div class="form-group">
1737                <label class="form-label">Phone *</label>
1738                <input type="tel" class="form-input" name="participantPhone" required />
1739                <div class="field-error"></div>
1740            </div>
1741            <div class="form-group">
1742                <label class="form-label">Notes / special requirements</label>
1743                <textarea class="form-textarea" name="participantNotes" rows="3"></textarea>
1744            </div>
1745            <button type="submit" class="btn btn--primary" style="width:100%;justify-content:center;">
1746                Add to cart
1747            </button>
1748        </form>
1749    </div>
1750</div>
1751
1752<script>
1753(function () {
1754    'use strict';
1755
1756    var overlay = document.getElementById('bookingModal');
1757    var form    = document.getElementById('bookingForm');
1758    if (!overlay || !form) { return; }
1759
1760    var productEl = document.getElementById('bookingModalProduct');
1761    var formatEl  = document.getElementById('bookingModalFormat');
1762    var pending   = null;
1763
1764    var MSG_REQUIRED = 'This field is required.';
1765    var MSG_EMAIL    = 'Please enter a valid e-mail address.';
1766
1767    function isEmail(v) { return /^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/.test((v || '').trim()); }
1768
1769    function openModal(data) {
1770        pending = data;
1771        productEl.textContent = data.name || '';
1772        formatEl.innerHTML    = data.format ? (' · ' + data.format) : '';
1773        form.reset();
1774        form.querySelectorAll('.is-invalid').forEach(function (el) { el.classList.remove('is-invalid'); });
1775        form.querySelectorAll('.field-error').forEach(function (el) { el.textContent = ''; });
1776        overlay.classList.add('is-open');
1777        document.body.style.overflow = 'hidden';
1778        setTimeout(function () { form.querySelector('[name=participantFirstName]')?.focus(); }, 50);
1779    }
1780
1781    function closeModal() {
1782        overlay.classList.remove('is-open');
1783        document.body.style.overflow = '';
1784        pending = null;
1785    }
1786
1787    overlay.addEventListener('click', function (e) {
1788        if (e.target === overlay) { closeModal(); }
1789    });
1790    overlay.querySelectorAll('[data-booking-close]').forEach(function (b) {
1791        b.addEventListener('click', closeModal);
1792    });
1793    document.addEventListener('keydown', function (e) {
1794        if (e.key === 'Escape' && overlay.classList.contains('is-open')) { closeModal(); }
1795    });
1796
1797    // Intercept add-to-cart clicks for trainings/events so we collect participant info first.
1798    document.addEventListener('click', function (e) {
1799        var btn = e.target.closest('[data-add-to-cart][data-cart-type]');
1800        if (!btn) { return; }
1801        var type = btn.dataset.cartType;
1802        if (type !== 'training' && type !== 'event') { return; }
1803        // OnlyBooking appointments are handled by the separate "Send booking request" modal.
1804        if (btn.dataset.onlyBooking === 'true') { return; }
1805        if (btn.disabled) { return; }
1806        e.preventDefault();
1807        e.stopImmediatePropagation();
1808        openModal({
1809            id:     btn.dataset.addToCart,
1810            name:   btn.dataset.cartName   || btn.dataset.addToCart,
1811            price:  btn.dataset.cartPrice  || '0',
1812            format: btn.dataset.cartFormat || '',
1813            image:  btn.dataset.cartImage  || '',
1814            type:   type,
1815        });
1816    }, true); // capture phase so we beat the global add-to-cart handler
1817
1818    function showErr(field, msg) {
1819        field.classList.add('is-invalid');
1820        var s = field.parentElement.querySelector('.field-error');
1821        if (s) { s.textContent = msg; }
1822    }
1823    function clearErr(field) {
1824        field.classList.remove('is-invalid');
1825        var s = field.parentElement.querySelector('.field-error');
1826        if (s) { s.textContent = ''; }
1827    }
1828    function validate(field) {
1829        var val = (field.value || '').trim();
1830        if (field.hasAttribute('required') && !val) { showErr(field, MSG_REQUIRED); return false; }
1831        if (field.type === 'email' && val && !isEmail(val)) { showErr(field, MSG_EMAIL); return false; }
1832        clearErr(field); return true;
1833    }
1834
1835    form.querySelectorAll('input, textarea').forEach(function (f) {
1836        f.addEventListener('blur',  function () { validate(f); });
1837        f.addEventListener('input', function () { if (f.classList.contains('is-invalid')) { clearErr(f); } });
1838    });
1839
1840    form.addEventListener('submit', function (e) {
1841        e.preventDefault();
1842        if (!pending) { return; }
1843        var ok = true;
1844        form.querySelectorAll('input[required], input[type=email]').forEach(function (f) {
1845            if (!validate(f)) { ok = false; }
1846        });
1847        if (!ok) { return; }
1848
1849        var fd = new FormData(form);
1850        var firstName = (fd.get('participantFirstName') || '').trim();
1851        var lastName  = (fd.get('participantLastName')  || '').trim();
1852        var participant = {
1853            firstName: firstName,
1854            lastName:  lastName,
1855            // Combined name kept for the mini-cart display (and legacy back-compat).
1856            name:    (firstName + ' ' + lastName).trim(),
1857            company: (fd.get('participantCompany') || '').trim(),
1858            email:   (fd.get('participantEmail')   || '').trim(),
1859            phone:   (fd.get('participantPhone')   || '').trim(),
1860            notes:   (fd.get('participantNotes')   || '').trim(),
1861        };
1862
1863        if (typeof window.alphadiAddBookingToCart === 'function') {
1864            window.alphadiAddBookingToCart(pending, participant);
1865        }
1866        closeModal();
1867    });
1868})();
1869</script>
1869
1870
1871    
1872<div class="modal-overlay" id="requestModal">
1873    <div class="modal" role="dialog" aria-modal="true" aria-labelledby="requestModalTitle">
1874        <button type="button" class="modal__close" data-request-close aria-label="Close">&times;</button>
1875        <div class="modal__title" id="requestModalTitle">Request</div>
1876        <p style="font-family:var(--f-ui);font-size:0.875rem;color:var(--c-mid);margin-bottom:1.5rem;">
1877            <strong id="requestModalProduct"></strong>
1878        </p>
1879        <form id="requestForm" novalidate>
1880            <input type="hidden" name="itemName" id="requestItemName" />
1881            <div class="form-group">
1882                <label class="form-label">First name *</label>
1883                <input type="text" class="form-input" name="firstName" required />
1884                <div class="field-error"></div>
1885            </div>
1886            <div class="form-group">
1887                <label class="form-label">Last name *</label>
1888                <input type="text" class="form-input" name="lastName" required />
1889                <div class="field-error"></div>
1890            </div>
1891            <div class="form-group">
1892                <label class="form-label">Company</label>
1893                <input type="text" class="form-input" name="company" />
1894                <div class="field-error"></div>
1895            </div>
1896            <div class="form-group">
1897                <label class="form-label">Email *</label>
1898                <input type="email" class="form-input" name="email" required />
1899                <div class="field-error"></div>
1900            </div>
1901            <div class="form-group">
1902                <label class="form-label">Phone *</label>
1903                <input type="tel" class="form-input" name="phone" required />
1904                <div class="field-error"></div>
1905            </div>
1906            <div class="form-group">
1907                <label class="form-label">Message</label>
1908                <textarea class="form-textarea" name="message" rows="3"></textarea>
1909            </div>
1910            <div id="requestFormStatus" style="display:none;margin-bottom:1rem;font-family:var(--f-ui);font-size:0.875rem;"></div>
1911
1912                <div class="checkout-check-field">
1913                    <label class="checkout-check-label">
1914                        <input type="checkbox" id="req-terms" name="terms" />
1915                        <span>
1916                            I have read the
1917                            <a href="/en/t&amp;c" target="_blank" rel="noopener">Terms &amp; Conditions</a>
1918                            and agree to them. <span class="req">*</span>
1919                        </span>
1920                    </label>
1921                    <span class="field-error fw-bold text-danger" id="reqTermsError"></span>
1922                </div>
1923            <div class="checkout-check-field">
1924                <label class="checkout-check-label">
1925                    <input type="checkbox" id="req-privacy" name="privacy" />
1926                    <span>
1927                        I have read the
1928                        <a href="/en/privacy-policy" target="_blank" rel="noopener">Privacy Policy</a>
1929                        and agree that my data will be processed. <span class="req">*</span>
1930                    </span>
1931                </label>
1932                <span class="field-error fw-bold text-danger" id="reqPrivacyError"></span>
1933            </div>
1934
1935            <button type="submit" class="btn btn--primary" style="width:100%;justify-content:center;">
1936                Send request
1937            </button>
1938        </form>
1939    </div>
1940</div>
1941
1942<script>
1943(function () {
1944    'use strict';
1945
1946    var overlay    = document.getElementById('requestModal');
1947    var form       = document.getElementById('requestForm');
1948    var productEl  = document.getElementById('requestModalProduct');
1949    var itemNameEl = document.getElementById('requestItemName');
1950    var statusEl   = document.getElementById('requestFormStatus');
1951    if (!overlay || !form) { return; }
1952
1953    var MSG_REQUIRED = "This field is required.";
1954    var MSG_EMAIL    = "Please enter a valid e-mail address.";
1955    var MSG_SUCCESS  = "Your request has been sent. We will get back to you shortly.";
1956    var MSG_ERROR    = "Something went wrong. Please try again.";
1957    var MSG_TERMS    = "You must agree to the Terms & Conditions to continue.";
1958    var MSG_PRIVACY  = "You must agree to the Privacy Policy to continue.";
1959
1960    function isEmail(v) { return /^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/.test((v || '').trim()); }
1961
1962    function openModal(name) {
1963        if (productEl) { productEl.textContent = name || ''; }
1964        if (itemNameEl) { itemNameEl.value = name || ''; }
1965        form.reset();
1966        if (itemNameEl) { itemNameEl.value = name || ''; }
1967        form.querySelectorAll('.is-invalid').forEach(function (el) { el.classList.remove('is-invalid'); });
1968        form.querySelectorAll('.field-error').forEach(function (el) { el.textContent = ''; });
1969        statusEl.style.display = 'none';
1970        statusEl.textContent = '';
1971        overlay.classList.add('is-open');
1972        document.body.style.overflow = 'hidden';
1973        setTimeout(function () { form.querySelector('[name=firstName]')?.focus(); }, 50);
1974    }
1975
1976    function closeModal() {
1977        overlay.classList.remove('is-open');
1978        document.body.style.overflow = '';
1979    }
1980
1981    overlay.addEventListener('click', function (e) {
1982        if (e.target === overlay) { closeModal(); }
1983    });
1984    overlay.querySelectorAll('[data-request-close]').forEach(function (b) {
1985        b.addEventListener('click', closeModal);
1986    });
1987    document.addEventListener('keydown', function (e) {
1988        if (e.key === 'Escape' && overlay.classList.contains('is-open')) { closeModal(); }
1989    });
1990
1991    document.addEventListener('click', function (e) {
1992        var btn = e.target.closest('[data-open-request-modal]');
1993        if (!btn) { return; }
1994        e.preventDefault();
1995        openModal(btn.dataset.openRequestModal || '');
1996    });
1997
1998    // Per-date "By invoice" toggle — expands the inline note ("Inquire here …") within the
1999    // booking box; the link inside it opens this modal.
2000    document.addEventListener('click', function (e) {
2001        var toggle = e.target.closest('[data-invoice-toggle]');
2002        if (!toggle) { return; }
2003        var item = toggle.closest('[data-date-item]');
2004        if (item) { item.classList.toggle('is-open'); }
2005    });
2006
2007    function showErr(field, msg) {
2008        field.classList.add('is-invalid');
2009        var s = field.parentElement.querySelector('.field-error');
2010        if (s) { s.textContent = msg; }
2011    }
2012    function clearErr(field) {
2013        field.classList.remove('is-invalid');
2014        var s = field.parentElement.querySelector('.field-error');
2015        if (s) { s.textContent = ''; }
2016    }
2017    function validate(field) {
2018        var val = (field.value || '').trim();
2019        if (field.hasAttribute('required') && !val) { showErr(field, MSG_REQUIRED); return false; }
2020        if (field.type === 'email' && val && !isEmail(val)) { showErr(field, MSG_EMAIL); return false; }
2021        clearErr(field); return true;
2022    }
2023
2024    form.querySelectorAll('input, textarea').forEach(function (f) {
2025        f.addEventListener('blur',  function () { validate(f); });
2026        f.addEventListener('input', function () { if (f.classList.contains('is-invalid')) { clearErr(f); } });
2027    });
2028
2029    form.addEventListener('submit', function (e) {
2030        e.preventDefault();
2031        var ok = true;
2032        form.querySelectorAll('input[required], input[type=email]').forEach(function (f) {
2033            if (!validate(f)) { ok = false; }
2034        });
2035
2036        var termsCb  = document.getElementById('req-terms');
2037        var termsErr = document.getElementById('reqTermsError');
2038        if (termsCb) {
2039            if (!termsCb.checked) {
2040                termsCb.classList.add('is-invalid');
2041                if (termsErr) { termsErr.textContent = MSG_TERMS; }
2042                ok = false;
2043            } else {
2044                termsCb.classList.remove('is-invalid');
2045                if (termsErr) { termsErr.textContent = ''; }
2046            }
2047        }
2048
2049        var privacyCb  = document.getElementById('req-privacy');
2050        var privacyErr = document.getElementById('reqPrivacyError');
2051        if (!privacyCb.checked) {
2052            privacyCb.classList.add('is-invalid');
2053            if (privacyErr) { privacyErr.textContent = MSG_PRIVACY; }
2054            ok = false;
2055        } else {
2056            privacyCb.classList.remove('is-invalid');
2057            if (privacyErr) { privacyErr.textContent = ''; }
2058        }
2059
2060        if (!ok) { return; }
2061
2062        var submitBtn = form.querySelector('[type=submit]');
2063        submitBtn.disabled = true;
2064
2065        var fd = new FormData(form);
2066        var payload = {
2067            itemName:  (fd.get('itemName')  || '').trim(),
2068            firstName: (fd.get('firstName') || '').trim(),
2069            lastName:  (fd.get('lastName')  || '').trim(),
2070            company:   (fd.get('company')   || '').trim(),
2071            email:     (fd.get('email')     || '').trim(),
2072            phone:     (fd.get('phone')     || '').trim(),
2073            message:   (fd.get('message')   || '').trim(),
2074        };
2075
2076        fetch('/Home/SendRequest', {
2077            method: 'POST',
2078            headers: { 'Content-Type': 'application/json' },
2079            body: JSON.stringify(payload),
2080        })
2081        .then(function (r) { return r.json(); })
2082        .then(function (data) {
2083            if (data.success) {
2084                if (data.redirectUrl) {
2085                    window.location.href = data.redirectUrl;
2086                } else {
2087                    statusEl.style.display = 'block';
2088                    statusEl.style.color = 'var(--c-green, green)';
2089                    statusEl.textContent = MSG_SUCCESS;
2090                    form.querySelectorAll('input, textarea, button[type=submit]').forEach(function (el) { el.disabled = true; });
2091                }
2092            } else {
2093                statusEl.style.display = 'block';
2094                statusEl.style.color = 'var(--c-error, red)';
2095                statusEl.textContent = data.message || MSG_ERROR;
2096                submitBtn.disabled = false;
2097            }
2098        })
2099        .catch(function () {
2100            statusEl.style.display = 'block';
2101            statusEl.style.color = 'var(--c-error, red)';
2102            statusEl.textContent = MSG_ERROR;
2103            submitBtn.disabled = false;
2104        });
2105    });
2106})();
2107</script>
2107
2108
2109    
2110<div class="modal-overlay" id="productFeatureModal">
2111    <div class="modal" role="dialog" aria-modal="true" aria-labelledby="productFeatureModalTitle" style="max-width:560px;">
2112        <button type="button" class="modal__close" data-pf-close aria-label="Close">&times;</button>
2113        <div class="modal__title" id="productFeatureModalTitle">Choose options</div>
2114        <p style="font-family:var(--f-ui);font-size:0.875rem;color:var(--c-mid);margin-bottom:1.25rem;">
2115            <strong id="pfModalProduct"></strong>
2116        </p>
2117
2118        <div id="pfModalBody"></div>
2119
2120        <div style="display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin:1.25rem 0 1rem;padding-top:1rem;border-top:1px solid var(--c-border);">
2121            <span style="font-family:var(--f-ui);font-size:0.8rem;font-weight:600;letter-spacing:0.08em;text-transform:uppercase;color:var(--c-subtle);">Total</span>
2122            <span id="pfModalTotal" style="font-family:var(--f-display);font-size:1.75rem;font-weight:700;color:var(--c-orange);line-height:1;">0,00 &#8364;</span>
2123        </div>
2124
2125        <button type="button" id="pfModalSubmit" class="btn btn--primary" style="width:100%;justify-content:center;">
2126            Add to cart
2127        </button>
2128    </div>
2129</div>
2130
2131<script>
2132(function () {
2133    'use strict';
2134
2135    var overlay = document.getElementById('productFeatureModal');
2136    if (!overlay) { return; }
2137
2138    var productEl = document.getElementById('pfModalProduct');
2139    var bodyEl    = document.getElementById('pfModalBody');
2140    var totalEl   = document.getElementById('pfModalTotal');
2141    var submitBtn = document.getElementById('pfModalSubmit');
2142
2143    var MSG_REQUIRED = 'Please select an option.';
2144
2145    var pending  = null;   // { id, name, basePrice, image, shippableMap }
2146    var features = [];     // [{ name, isRequired, options: [...] }]
2147    var selected = {};     // { [featureIndex]: { name, price, isShippable } }
2148
2149    function fmtPrice(v) {
2150        return window.formatPrice
2151            ? window.formatPrice(v)
2152            : '\u20AC' + (v < 0 ? '-' + Math.abs(v).toFixed(2) : v.toFixed(2));
2153    }
2154
2155    // Build shippability lookup from raw DB JSON (PascalCase, all feature types).
2156    // Returns map[listFeatureIndex][optionIndex] = bool
2157    function buildShippableMap(rawJson) {
2158        var map = {};
2159        try {
2160            var all = JSON.parse(rawJson || '[]');
2161            var listIdx = 0;
2162            all.forEach(function (f) {
2163                if ((f.Type !== undefined ? f.Type : f.type) !== 0) { return; }
2164                var fi = listIdx++;
2165                map[fi] = {};
2166                (f.Options || f.options || []).forEach(function (o, oi) {
2167                    map[fi][oi] = !!(o.IsShippable || o.isShippable);
2168                });
2169            });
2170        } catch (e) {}
2171        return map;
2172    }
2173
2174    function recalcTotal() {
2175        var delta = 0;
2176        Object.keys(selected).forEach(function (k) { delta += selected[k].price; });
2177        var total = Math.max(0, pending.basePrice + delta);
2178        totalEl.textContent = fmtPrice(total);
2179        return total;
2180    }
2181
2182    function renderBody() {
2183        selected = {};
2184        if (!features.length) { bodyEl.innerHTML = ''; return; }
2185        var sm = (pending && pending.shippableMap) || {};
2186
2187        bodyEl.innerHTML = features.map(function (f, fi) {
2188            var opts = (f.options || []).map(function (o, oi) {
2189                var deltaHtml = '';
2190                if (o.price > 0)      { deltaHtml = '<span class="product-fmt-card__delta">+' + fmtPrice(o.price) + '</span>'; }
2191                else if (o.price < 0) { deltaHtml = '<span class="product-fmt-card__delta product-fmt-card__delta--down">' + fmtPrice(o.price) + '</span>'; }
2192
2193                var badgeHtml = o.badgeText
2194                    ? '<span class="product-fmt-card__badge">' + o.badgeText + '</span>'
2195                    : '';
2196
2197                var isShippable = !!(sm[fi] && sm[fi][oi]);
2198                var isDefault = !!o.isDefault;
2199                if (isDefault) {
2200                    selected[fi] = { name: o.name, price: parseFloat(o.price) || 0, isShippable: isShippable };
2201                }
2202
2203                return '<label class="product-fmt-card' + (isDefault ? ' is-selected' : '') + '"' +
2204                       ' data-feature-index="' + fi + '"' +
2205                       ' data-option-index="' + oi + '"' +
2206                       ' data-option-name="' + (o.name || '').replace(/"/g, '&quot;') + '"' +
2207                       ' data-option-price="' + (parseFloat(o.price) || 0) + '"' +
2208                       ' data-option-shippable="' + (isShippable ? 'true' : 'false') + '">' +
2209                            '<input type="radio" name="pf-' + fi + '" ' + (isDefault ? 'checked' : '') + ' style="display:none">' +
2210                            '<div class="product-fmt-card__name">' + (o.name || '') + ' ' + badgeHtml + '</div>' +
2211                            (deltaHtml ? '<div class="product-fmt-card__meta">' + deltaHtml + '</div>' : '') +
2212                       '</label>';
2213            }).join('');
2214
2215            return '<div class="product-fmt-group" data-feature-index="' + fi + '" data-feature-required="' + (f.isRequired ? 'true' : 'false') + '">' +
2216                       '<div class="product-fmt-group__label">' +
2217                            (f.name || '') +
2218                            (f.isRequired ? '<span class="product-fmt-group__req" title="Required">*</span>' : '') +
2219                       '</div>' +
2220                       '<div class="product-fmt-grid">' + opts + '</div>' +
2221                       '<div class="product-fmt-error"></div>' +
2222                   '</div>';
2223        }).join('');
2224    }
2225
2226    function openModal(data, parsedFeatures, shippableMap) {
2227        pending  = data;
2228        pending.shippableMap = shippableMap || {};
2229        features = parsedFeatures || [];
2230        productEl.textContent = data.name || '';
2231        renderBody();
2232        recalcTotal();
2233        overlay.classList.add('is-open');
2234        document.body.style.overflow = 'hidden';
2235    }
2236
2237    function closeModal() {
2238        overlay.classList.remove('is-open');
2239        document.body.style.overflow = '';
2240        pending  = null;
2241        features = [];
2242        selected = {};
2243    }
2244
2245    overlay.addEventListener('click', function (e) {
2246        if (e.target === overlay) { closeModal(); }
2247    });
2248    overlay.querySelectorAll('[data-pf-close]').forEach(function (b) {
2249        b.addEventListener('click', closeModal);
2250    });
2251    document.addEventListener('keydown', function (e) {
2252        if (e.key === 'Escape' && overlay.classList.contains('is-open')) { closeModal(); }
2253    });
2254
2255    bodyEl.addEventListener('click', function (e) {
2256        var card = e.target.closest('.product-fmt-card');
2257        if (!card) { return; }
2258        var fi = card.dataset.featureIndex;
2259        var group = card.closest('.product-fmt-group');
2260        if (group) {
2261            group.querySelectorAll('.product-fmt-card').forEach(function (c) { c.classList.remove('is-selected', 'is-error'); });
2262            var errEl = group.querySelector('.product-fmt-error');
2263            if (errEl) { errEl.textContent = ''; }
2264        }
2265        card.classList.add('is-selected');
2266        var input = card.querySelector('input[type=radio]');
2267        if (input) { input.checked = true; }
2268        selected[fi] = {
2269            name:       card.dataset.optionName,
2270            price:      parseFloat(card.dataset.optionPrice) || 0,
2271            isShippable: card.dataset.optionShippable === 'true',
2272        };
2273        recalcTotal();
2274    });
2275
2276    submitBtn.addEventListener('click', function () {
2277        if (!pending) { return; }
2278
2279        var ok = true;
2280        bodyEl.querySelectorAll('.product-fmt-group[data-feature-required="true"]').forEach(function (group) {
2281            var fi = group.dataset.featureIndex;
2282            var errEl = group.querySelector('.product-fmt-error');
2283            if (!selected[fi]) {
2284                if (errEl) { errEl.textContent = MSG_REQUIRED; }
2285                group.querySelectorAll('.product-fmt-card').forEach(function (c) { c.classList.add('is-error'); });
2286                ok = false;
2287            }
2288        });
2289        if (!ok) { return; }
2290
2291        var finalPrice  = recalcTotal();
2292        var parts       = [];
2293        features.forEach(function (f, fi) { if (selected[fi]) { parts.push(selected[fi].name); } });
2294        var finalFormat = parts.join(', ') || (pending.format || '');
2295        var isShippable = Object.values(selected).some(function (s) { return s.isShippable; });
2296
2297        if (typeof window.alphadiAddProductToCart === 'function') {
2298            window.alphadiAddProductToCart({
2299                id:          pending.id,
2300                name:        pending.name,
2301                price:       finalPrice,
2302                format:      finalFormat,
2303                image:       pending.image,
2304                isShippable: isShippable,
2305            });
2306        }
2307        closeModal();
2308    });
2309
2310    // Intercept add-to-cart clicks for products that ship feature data.
2311    document.addEventListener('click', function (e) {
2312        var btn = e.target.closest('[data-add-to-cart][data-cart-type="product"]');
2313        if (!btn) { return; }
2314        if (btn.disabled) { return; }
2315
2316        var raw = btn.dataset.cartFeatures;
2317        if (!raw) { return; } // no features → fall through to global handler
2318
2319        var parsed = null;
2320        try { parsed = JSON.parse(raw); } catch (_) { parsed = null; }
2321        if (!parsed || !parsed.length) { return; }
2322
2323        e.preventDefault();
2324        e.stopImmediatePropagation();
2325
2326        var shippableMap = buildShippableMap(btn.dataset.featuresRaw || '');
2327
2328        openModal({
2329            id:        btn.dataset.addToCart,
2330            name:      btn.dataset.cartName  || btn.dataset.addToCart,
2331            basePrice: parseFloat(btn.dataset.cartPrice) || 0,
2332            format:    btn.dataset.cartFormat || '',
2333            image:     btn.dataset.cartImage  || '',
2334        }, parsed, shippableMap);
2335    }, true); // capture phase — beat the global add-to-cart handler
2336})();
2337</script>
2337
2338
2339
2340    <div style="display: none !important">
2341            <a href="https://www.alphadi.org/de">News German</a>
2342            <a href="https://www.alphadi.org/en">News English</a>
2343            <a href="https://www.alphadi.org/es">News Spanish</a>
2344            <a href="https://www.alphadi.org/it">News Italian</a>
2345            <a href="https://www.alphadi.org/fr">News French</a>
2346            <a href="https://www.alphadi.org/pl">News Polish</a>
2347            <a href="https://www.alphadi.org/pt">News Portuguese</a>
2348    </div>
2349</body>
2350</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.