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ätsmanagement: Alphadi bietet Weiterbildung, Zertifizierung, Coaching, Beratung und AlphadiTab Software für Verbesserungsprojekte." /> 10 <meta name="og:title" content="News | Alphadi" /> 11 <meta name="og:description" content="Lean Six Sigma, Operational Excellence und Qualitätsmanagement: Alphadi bietet Weiterbildung, Zertifizierung, Coaching, Beratung und AlphadiTab Software fü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 & seminars</div> 296 <div class="nav__dropdown-text-desc"><p>Internationally certified – 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 & Consulting</div> 316 <div class="nav__dropdown-text-desc"><p>Individual support for companies and executives – 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™</div> 326 <div class="nav__dropdown-text-desc"><p>Systemically develop operational excellence — 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 – 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 – 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 & LSS — 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 – 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 – 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 & 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 & 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™ 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–Z)</option> 766 <option value="AlphabeticalDesc">Alphabetical (Z–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 – gold excellence program" 809 data-year="2024" 810 data-created="2024-08-08T15:50:52.8580850"> 811 <img src="/image/774" alt="Certificate Presentation – 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 – 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 – 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 – master black belt" 845 data-year="2023" 846 data-created="2023-11-27T13:00:40.3936156"> 847 <img src="/image/795" alt="Certificate Presentation – 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 – 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>– 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 – character magazine" 915 data-year="2020" 916 data-created="2020-02-11T13:16:43.2345813"> 917 <img src="/image/812" alt="Gemba Walk – 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 – 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ö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ö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ö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ö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&display=swap" rel="stylesheet" /> 1077<link href="https://fonts.googleapis.com/css2?family=Lexend:wght@300;400;500;600;700&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 & 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 & 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&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 & Payment</a> 1334</div> 1335</div> 1336</div> 1337 1338<div class="footer-v2__bottom"><span class="footer-v2__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">✕</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 €</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">×</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&c" target="_blank" rel="noopener">Terms & 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">×</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">×</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&c" target="_blank" rel="noopener">Terms & 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">×</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 €</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, '"') + '"' + 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.