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>Lean Six Sigma Akademie & Operational Excellence </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="Lean Six Sigma Akademie & Operational Excellence " /> 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 <style> 122.news-card { 123 background: var(--c-white); 124 border: 1px solid var(--c-border); 125 border-radius: 10px; 126 overflow: hidden; 127 display: flex; 128 flex-direction: column; 129 text-decoration: none; 130 color: inherit; 131 transition: box-shadow .25s, transform .25s; 132} 133.news-card:hover { box-shadow: 0 8px 32px rgba(0,0,0,.1); transform: translateY(-3px); } 134.news-card__img { 135 height: 160px; 136 position: relative; 137 display: flex; 138 align-items: flex-start; 139 140} 141.news-card__tag { 142 font-family: var(--f-ui); 143 font-size: 0.68rem; 144 font-weight: 700; 145 letter-spacing: 0.1em; 146 text-transform: uppercase; 147 color: var(--c-orange); 148 background: rgba(232,100,10,.12); 149 border: 1px solid rgba(232,100,10,.25); 150 padding: 0.25rem 0.65rem; 151 border-radius: 100px; 152} 153.news-card__body { padding: 1.5rem 1.5rem 0.75rem; flex: 1; } 154.news-card__date { 155 font-family: var(--f-ui); 156 font-size: 0.75rem; 157 font-weight: 500; 158 color: var(--c-subtle); 159 margin-bottom: 0.5rem; 160} 161.news-card__title { 162 font-family: var(--f-display); 163 font-size: 1.05rem; 164 font-weight: 800; 165 color: var(--c-dark); 166 line-height: 1.3; 167 margin: 0 0 0.75rem; 168 letter-spacing: -0.01em; 169} 170.news-card__desc { 171 font-family: var(--f-ui); 172 font-size: 0.85rem; 173 color: var(--c-mid); 174 line-height: 1.65; 175 margin: 0; 176} 177.news-card__link { 178 font-family: var(--f-ui); 179 font-size: 0.82rem; 180 font-weight: 700; 181 color: var(--c-orange); 182 display: flex; 183 align-items: center; 184 gap: 0.4rem; 185 padding: 1rem 1.5rem 1.25rem; 186 transition: gap .2s; 187} 188.news-card:hover .news-card__link { gap: 0.7rem; } 189 190.trust-band { 191 background: #fff; 192 border-top: 1px solid var(--c-border); 193 border-bottom: 1px solid var(--c-border); 194 padding: 5rem 0 4.5rem; 195 overflow: hidden; 196} 197.trust-band__label { 198 text-align: center; 199 margin: 0 auto 2rem; 200 padding: 0 2rem; 201} 202.trust-band__text { 203 font-family: var(--f-display); 204 font-size: clamp(1.9rem, 3.5vw, 3.2rem); 205 font-weight: 900; 206 letter-spacing: -0.02em; 207 color: var(--c-dark); 208 margin: 0; 209 text-align: center; 210} 211.logo-track-wrap { 212 overflow: hidden; 213 mask-image: linear-gradient(to right, transparent 0%, #fff 12%, #fff 88%, transparent 100%); 214 -webkit-mask-image: linear-gradient(to right, transparent 0%, #fff 12%, #fff 88%, transparent 100%); 215} 216.logo-track { 217 display: flex; 218 align-items: center; 219 gap: 4rem; 220 width: max-content; 221 animation: logoScroll 42s linear infinite; 222} 223.logo-track:hover { animation-play-state: paused; } 224.logo-item { 225 height: 52px; 226 width: auto; 227 object-fit: contain; 228 opacity: 0.4; 229 filter: grayscale(100%); 230 flex-shrink: 0; 231 user-select: none; 232 transition: opacity .3s, filter .3s; 233 cursor: default; 234} 235.logo-item:hover { opacity: 0.85; filter: grayscale(0%); } 236@keyframes logoScroll { 237 from { transform: translateX(0); } 238 to { transform: translateX(-50%); } 239} 240 241.impr-track { 242 display: flex; 243 gap: 1rem; 244 width: max-content; 245 animation: impr-scroll 50s linear infinite; 246} 247.impr-track:hover { animation-play-state: paused; } 248@keyframes impr-scroll { 249 from { transform: translateX(0); } 250 to { transform: translateX(-50%); } 251} 252.impr-item { 253 position: relative; 254 flex-shrink: 0; 255 width: 280px; 256 overflow: hidden; 257 border-radius: 4px; 258 cursor: default; 259} 260.impr-item img { 261 width: 280px; height: 200px; object-fit: cover; display: block; 262 transition: transform .4s ease; 263} 264.impr-item:hover img { transform: scale(1.06); } 265.impr-item__caption { 266 position: absolute; inset: 0; 267 background: rgba(0,0,0,0); 268 transition: background .3s; 269 display: flex; align-items: flex-end; 270} 271.impr-item:hover .impr-item__caption { background: rgba(0,0,0,.50); } 272.impr-item__caption span { 273 padding: 0.85rem 1rem 0.8rem; 274 font-family: var(--f-ui); font-size: 0.8rem; font-weight: 600; 275 color: #fff; line-height: 1.35; 276 opacity: 0; transform: translateY(6px); 277 transition: opacity .25s, transform .25s; 278} 279.impr-item:hover .impr-item__caption span { opacity: 1; transform: translateY(0); } 280 281@media (max-width: 767px) { 282.news-card__img { 283 height: 250px; 284 padding: 5px; 285} 286}</style> 287 288 289 <style>#training-modules { 290background-color: #efefef; 291} 292 293section[class*="hero-padded"] { 294 padding-top: 114px; 295} 296.hero { 297 position: relative; background: var(--c-bg-warm); overflow: hidden; 298 padding-bottom: 4rem; 299} 300 301section[class*="sa-hero"] { 302 padding-top: 190px; 303} 304 305 306:root { 307 color-scheme: light only; 308} 309 310@media (prefers-color-scheme: dark) { 311 :root { 312 color-scheme: light only; 313 } 314} 315 316.sa-freetext-wrap textarea { 317 318 color: #555555 !important; 319 320} 321#cartPageContent::after { 322 content: ""; 323 display: block; 324 width: 100%; 325 max-width: 420px; 326 aspect-ratio: 3 / 4; 327 margin: 3rem auto 0; 328 background: url("https://www.alphadi.org/image/1705") center / contain no-repeat; 329} 330 331html[lang="en"] #cartPageContent::after { background-image: url("https://www.alphadi.org/image/1706"); } 332html[lang="es"] #cartPageContent::after { background-image: url("https://www.alphadi.org/image/1707"); } 333html[lang="fr"] #cartPageContent::after { background-image: url("https://www.alphadi.org/image/1708"); } 334html[lang="it"] #cartPageContent::after { background-image: url("https://www.alphadi.org/image/1709"); } 335html[lang="pl"] #cartPageContent::after { background-image: url("https://www.alphadi.org/image/1710"); } 336html[lang="pt"] #cartPageContent::after { background-image: url("https://www.alphadi.org/image/1711"); }</style> 337</head> 338 339<body class="is-homepage"> 340 <!-- Floating alerts --> 341 342 <!-- âââââââ NAVIGATION âââââââ --> 343 <nav class="nav nav--white nav--two-row" id="mainNav"> 344 <!-- Row 1: topbar (desktop only) --> 345 <div class="nav__row--top-wrap"> 346 <div class="nav__row--top"> 347 <div class="nav__row--top-right"> 348 <div class="lang-switch" id="topbarLangSwitch"> 349 <button class="lang-switch__btn" type="button" aria-haspopup="true"> 350 EN 351 <svg viewBox="0 0 10 6" fill="none" stroke="currentColor"> 352 <path d="M1 1L5 5L9 1" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 353 </svg> 354 </button> 355 <div class="lang-switch__dropdown"> 356 <form method="post" style="margin:0;padding:0;" action="/Home/SetLanguage?returnUrl=~%2F"> 357 <button type="submit" name="culture" value="de-DE" 358 class="lang-switch__opt "> 359 DE â German 360 </button> 361 <input name="__RequestVerificationToken" type="hidden" value="CfDJ8BIMwQTuEtBBtnnpT6fmYEIJ3FT-Hh3xZotLLRaycrYnGUk6pIB8LCiL9t7M5I9jr0KQqP85l_9qhQgH0XBibFln3EAJn98OOw0ztX0QnQzDztXBs3v9GmMArqH9F4t9lqu-NEYEvD0vOecauWsFctI" /></form> 362 <form method="post" style="margin:0;padding:0;" action="/Home/SetLanguage?returnUrl=~%2F"> 363 <button type="submit" name="culture" value="en-US" 364 class="lang-switch__opt is-active"> 365 EN â English 366 </button> 367 <input name="__RequestVerificationToken" type="hidden" value="CfDJ8BIMwQTuEtBBtnnpT6fmYEIJ3FT-Hh3xZotLLRaycrYnGUk6pIB8LCiL9t7M5I9jr0KQqP85l_9qhQgH0XBibFln3EAJn98OOw0ztX0QnQzDztXBs3v9GmMArqH9F4t9lqu-NEYEvD0vOecauWsFctI" /></form> 368 <form method="post" style="margin:0;padding:0;" action="/Home/SetLanguage?returnUrl=~%2F"> 369 <button type="submit" name="culture" value="es-ES" 370 class="lang-switch__opt "> 371 ES â Spanish 372 </button> 373 <input name="__RequestVerificationToken" type="hidden" value="CfDJ8BIMwQTuEtBBtnnpT6fmYEIJ3FT-Hh3xZotLLRaycrYnGUk6pIB8LCiL9t7M5I9jr0KQqP85l_9qhQgH0XBibFln3EAJn98OOw0ztX0QnQzDztXBs3v9GmMArqH9F4t9lqu-NEYEvD0vOecauWsFctI" /></form> 374 <form method="post" style="margin:0;padding:0;" action="/Home/SetLanguage?returnUrl=~%2F"> 375 <button type="submit" name="culture" value="it-IT" 376 class="lang-switch__opt "> 377 IT â Italian 378 </button> 379 <input name="__RequestVerificationToken" type="hidden" value="CfDJ8BIMwQTuEtBBtnnpT6fmYEIJ3FT-Hh3xZotLLRaycrYnGUk6pIB8LCiL9t7M5I9jr0KQqP85l_9qhQgH0XBibFln3EAJn98OOw0ztX0QnQzDztXBs3v9GmMArqH9F4t9lqu-NEYEvD0vOecauWsFctI" /></form> 380 <form method="post" style="margin:0;padding:0;" action="/Home/SetLanguage?returnUrl=~%2F"> 381 <button type="submit" name="culture" value="fr-FR" 382 class="lang-switch__opt "> 383 FR â French 384 </button> 385 <input name="__RequestVerificationToken" type="hidden" value="CfDJ8BIMwQTuEtBBtnnpT6fmYEIJ3FT-Hh3xZotLLRaycrYnGUk6pIB8LCiL9t7M5I9jr0KQqP85l_9qhQgH0XBibFln3EAJn98OOw0ztX0QnQzDztXBs3v9GmMArqH9F4t9lqu-NEYEvD0vOecauWsFctI" /></form> 386 <form method="post" style="margin:0;padding:0;" action="/Home/SetLanguage?returnUrl=~%2F"> 387 <button type="submit" name="culture" value="pl-PL" 388 class="lang-switch__opt "> 389 PL â Polish 390 </button> 391 <input name="__RequestVerificationToken" type="hidden" value="CfDJ8BIMwQTuEtBBtnnpT6fmYEIJ3FT-Hh3xZotLLRaycrYnGUk6pIB8LCiL9t7M5I9jr0KQqP85l_9qhQgH0XBibFln3EAJn98OOw0ztX0QnQzDztXBs3v9GmMArqH9F4t9lqu-NEYEvD0vOecauWsFctI" /></form> 392 <form method="post" style="margin:0;padding:0;" action="/Home/SetLanguage?returnUrl=~%2F"> 393 <button type="submit" name="culture" value="pt-PT"
394 class="lang-switch__opt "> 395 PT â Portuguese 396 </button> 397 <input name="__RequestVerificationToken" type="hidden" value="CfDJ8BIMwQTuEtBBtnnpT6fmYEIJ3FT-Hh3xZotLLRaycrYnGUk6pIB8LCiL9t7M5I9jr0KQqP85l_9qhQgH0XBibFln3EAJn98OOw0ztX0QnQzDztXBs3v9GmMArqH9F4t9lqu-NEYEvD0vOecauWsFctI" /></form> 398 </div> 399 </div> 400 401 <div class="account-menu" id="accountMenu"> 402 <button class="nav__login-btn" id="accountMenuBtn" type="button" aria-haspopup="true" aria-expanded="false" aria-label="Account"> 403 <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> 404 Account 405 <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> 406 </button> 407 <div class="account-menu__dropdown"> 408 <div class="account-menu__body"> 409 <div class="account-menu__lead"> 410 <div class="account-menu__lead-icon"> 411 <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> 412 </div> 413 <div class="account-menu__lead-text">Log in into your shop account or create a new one.</div> 414 </div> 415 <div class="account-menu__actions"> 416 <a class="btn btn--primary" href="/Internal/Account/Login?returnUrl=~%2F"> 417 Login 418 </a> 419 <a class="btn btn--outline" href="/Internal/Account/Register?returnUrl=~%2F"> 420 Create account 421 </a> 422 </div> 423 </div> 424 </div> 425 </div> 426 427 <button class="cart-btn" id="cartNavBtn" aria-label="Cart"> 428 <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> 429 <span class="cart-badge">0</span> 430 </button> 431 </div> 432 </div> 433 </div> 434 435 <!-- Row 2: main nav bar --> 436 <div class="nav__inner"> 437 <a class="nav__logo" style="flex-shrink:0;" href="/en"> 438 <img src="/img/logo_f.svg" alt="Alphadi" /> 439 </a> 440 441 <button class="nav__toggle" id="sheetToggle" aria-label="Menu"> 442 <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"> 443 <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"/> 444 <path d="M7 16 27 16"/> 445 </svg> 446 </button> 447 448 <div class="nav__menu"> 449 <div class="nav__item nav__link "> 450 <button class="nav__dropdown-trigger"> 451 Academy 452 <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> 453 </button> 454 455 <div class="nav__dropdown"> 456 <a href="/en/workshops" class="nav__dropdown-item "> 457 <div class="nav__dropdown-icon"> 458 <img src="/image/1164" alt="" width="25" height="25" style="object-fit:contain;"> 459 </div> 460 <div> 461 <div class="nav__dropdown-text-title">Further training & seminars</div> 462 <div class="nav__dropdown-text-desc"><p>Internationally certified – with access to the Excellence Program.</p> 463</div> 464 </div> 465 </a> 466 <a href="/en/excellence-program" class="nav__dropdown-item "> 467 <div class="nav__dropdown-icon"> 468 <img src="/image/1180" alt="" width="25" height="25" style="object-fit:contain;"> 469 </div> 470 <div> 471 <div class="nav__dropdown-text-title">Excellence Program</div> 472 <div class="nav__dropdown-text-desc"><p>Internationally recognized certifications for professionals and executives</p> 473</div> 474 </div> 475 </a> 476 <a href="/en/coaching" class="nav__dropdown-item "> 477 <div class="nav__dropdown-icon"> 478 <img src="/image/1167" alt="" width="25" height="25" style="object-fit:contain;"> 479 </div> 480 <div> 481 <div class="nav__dropdown-text-title">Coaching & Consulting</div> 482 <div class="nav__dropdown-text-desc"><p>Individual support for companies and executives – on demand</p> 483</div> 484 </div> 485 </a> 486 <a href="/en/shingo-model" class="nav__dropdown-item "> 487 <div class="nav__dropdown-icon"> 488 <img src="/image/1178" alt="" width="25" height="25" style="object-fit:contain;"> 489 </div> 490 <div> 491 <div class="nav__dropdown-text-title">Shingo Model™</div> 492 <div class="nav__dropdown-text-desc"><p>Systemically develop operational excellence — with culture, behavior, and leadership as the foundation.</p> 493</div> 494 </div> 495 </a> 496 </div> 497 </div> 498 <a href="/en/events" class="nav__link ">Events</a> 499 <div class="nav__item nav__link "> 500 <button class="nav__dropdown-trigger"> 501 Consulting 502 <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> 503 </button> 504 505 <div class="nav__dropdown"> 506 <a href="/en/benchmarking" class="nav__dropdown-item "> 507 <div class="nav__dropdown-icon"> 508 <img src="/image/1165" alt="" width="25" height="25" style="object-fit:contain;"> 509 </div> 510 <div> 511 <div class="nav__dropdown-text-title">Benchmarking</div> 512 <div class="nav__dropdown-text-desc"><p>Identify potential improvements in processes, structures, and collaboration.</p> 513</div> 514 </div> 515 </a> 516 <a href="/en/culture-development-system-explained" class="nav__dropdown-item "> 517 <div class="nav__dropdown-icon"> 518 <img src="/image/1713" alt="" width="25" height="25" style="object-fit:contain;"> 519 </div> 520 <div> 521 <div class="nav__dropdown-text-title">What is the Culture Development System?</div> 522 <div class="nav__dropdown-text-desc"><p>Develop culture purposefully</p> 523</div> 524 </div> 525 </a> 526 <a href="/en/excellence-community" class="nav__dropdown-item "> 527 <div class="nav__dropdown-icon"> 528 <img src="/image/1181" alt="" width="25" height="25" style="object-fit:contain;"> 529 </div> 530 <div> 531 <div class="nav__dropdown-text-title">Excellence Community</div> 532 <div class="nav__dropdown-text-desc"><p>Network, refresh knowledge, and exchange best practices.</p> 533</div> 534 </div> 535 </a> 536 <a href="/en/talent-development" class="nav__dropdown-item "> 537 <div class="nav__dropdown-icon"> 538 <img src="/image/1173" alt="" width="25" height="25" style="object-fit:contain;"> 539 </div> 540 <div> 541 <div class="nav__dropdown-text-title">Talent development</div> 542 <div class="nav__dropdown-text-desc"><p>Strengthen employees in a targeted manner – for performance, change, and competitiveness.</p> 543</div> 544 </div> 545 </a> 546 <a href="/en/opex-roll-out" class="nav__dropdown-item "> 547 <div class="nav__dropdown-icon"> 548 <img src="/image/1170" alt="" width="25" height="25" style="object-fit:contain;"> 549 </div> 550 <div> 551 <div class="nav__dropdown-text-title">OPEX Roll-out</div> 552 <div class="nav__dropdown-text-desc"><p>Effectively roll out OPEX – for less waste and more sustainable impact.</p> 553</div> 554 </div> 555 </a> 556 </div> 557 </div> 558 <div class="nav__item nav__link "> 559 <button class="nav__dropdown-trigger"> 560 Products 561 <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> 562 </button> 563 564 <div class="nav__dropdown"> 565 <a href="/en/products/books" class="nav__dropdown-item "> 566 <div class="nav__dropdown-icon"> 567 <img src="/image/1166" alt="" width="25" height="25" style="object-fit:contain;"> 568 </div> 569 <div> 570 <div class="nav__dropdown-text-title">Publications</div> 571 <div class="nav__dropdown-text-desc"><p>Books, case studies, and booklets for process managers and organizations.</p> 572</div> 573 </div> 574 </a> 575 <a href="/en/products/tools-templates" class="nav__dropdown-item "> 576 <div class="nav__dropdown-icon"> 577 <img src="/image/1184" alt="" width="25" height="25" style="object-fit:contain;"> 578 </div> 579 <div> 580 <div class="nav__dropdown-text-title">Tools</div> 581 <div class="nav__dropdown-text-desc"><p>Handouts, plots, and presentations for Lean & LSS — ready to use.</p> 582</div> 583 </div> 584 </a> 585 <a href="/en/products/workshops" class="nav__dropdown-item "> 586 <div class="nav__dropdown-icon"> 587 <img src="/image/1293" alt="" width="25" height="25" style="object-fit:contain;"> 588 </div> 589 <div> 590 <div class="nav__dropdown-text-title">Workshops</div> 591 <div class="nav__dropdown-text-desc"><p>Interactive formats for targeted awareness and knowledge transfer – compact and practical.</p> 592</div> 593 </div> 594 </a> 595 </div> 596 </div> 597 <div class="nav__item nav__link "> 598 <button class="nav__dropdown-trigger">
599 Software 600 <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> 601 </button> 602 603 <div class="nav__dropdown"> 604 <a href="/en/support" class="nav__dropdown-item "> 605 <div class="nav__dropdown-icon"> 606 <img src="/image/1172" alt="" width="25" height="25" style="object-fit:contain;"> 607 </div> 608 <div> 609 <div class="nav__dropdown-text-title">Support</div> 610 <div class="nav__dropdown-text-desc"><p>Everything about documentation, help, and support for our software solutions</p> 611</div> 612 </div> 613 </a> 614 <a href="/en/alphadi-tab" class="nav__dropdown-item "> 615 <div class="nav__dropdown-icon"> 616 <img src="/image/1169" alt="" width="25" height="25" style="object-fit:contain;"> 617 </div> 618 <div> 619 <div class="nav__dropdown-text-title">AlphadiTab</div> 620 <div class="nav__dropdown-text-desc"><p>Project management software for problem solving</p> 621</div> 622 </div> 623 </a> 624 </div> 625 </div> 626 <div class="nav__item nav__link "> 627 <button class="nav__dropdown-trigger"> 628 About us 629 <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> 630 </button> 631 632 <div class="nav__dropdown"> 633 <a href="/en/career" class="nav__dropdown-item "> 634 <div class="nav__dropdown-icon"> 635 <img src="/image/1416" alt="" width="25" height="25" style="object-fit:contain;"> 636 </div> 637 <div> 638 <div class="nav__dropdown-text-title">Career </div> 639 <div class="nav__dropdown-text-desc"><p>Open positions at Alphadi – flat hierarchies, real responsibility, and room for professional development.</p> 640</div> 641 </div> 642 </a> 643 <a href="/en/ueber-uns" class="nav__dropdown-item "> 644 <div class="nav__dropdown-icon"> 645 <img src="/image/1182" alt="" width="25" height="25" style="object-fit:contain;"> 646 </div> 647 <div> 648 <div class="nav__dropdown-text-title">Meet the Team</div> 649 <div class="nav__dropdown-text-desc"><p>Get to know the people who shape Alphadi with heart and experience.</p> 650</div> 651 </div> 652 </a> 653 <a href="/en/glossary" class="nav__dropdown-item "> 654 <div class="nav__dropdown-icon"> 655 <img src="/image/216" alt="" width="25" height="25" style="object-fit:contain;"> 656 </div> 657 <div> 658 <div class="nav__dropdown-text-title">Glossary</div> 659 <div class="nav__dropdown-text-desc"><p>Terms, definitions and important technical terms explained at a glance.</p> 660</div> 661 </div> 662 </a> 663 </div> 664 </div> 665 666 667 </div> 668 669 <a href="/en/contact" class="nav__cta nav__cta--desktop">Contact</a> 670 </div> 671 </nav> 672 673 <!-- Backdrop --> 674 <div class="nav__sheet-overlay" id="sheetOverlay"></div> 675 676 <!-- Right-side nav sheet --> 677 <div class="nav__sheet" id="navSheet"> 678 <div class="nav__sheet-header"> 679 <div class="nav__sheet-logo"> 680 <a href="/en"> 681 <img src="/img/logo_f.svg" alt="Alphadi" style="height:35px;width:auto;" /> 682 </a> 683 </div> 684 <button class="nav__sheet-close" id="sheetClose" aria-label="Close menu"> 685 <svg viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"> 686 <path d="M1 1l12 12M13 1L1 13"/> 687 </svg> 688 </button> 689 </div> 690 691 <div class="nav__sheet-body"> 692 693 <a class="nav__sheet-link is-active" href="/en">Home</a> 694 695 <button class="nav__sheet-group-trigger" type="button">
696 <span>Academy</span> 697 <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> 698 </button> 699 <div class="nav__sheet-sub"> 700 <a href="/en/workshops" class="nav__sheet-sub-item"> 701 <div class="nav__sheet-sub-icon"> 702 <img src="/image/1164" alt="" width="20" height="20" style="object-fit:contain;"> 703 </div> 704 Further training & seminars 705 </a> 706 <a href="/en/excellence-program" class="nav__sheet-sub-item"> 707 <div class="nav__sheet-sub-icon"> 708 <img src="/image/1180" alt="" width="20" height="20" style="object-fit:contain;"> 709 </div> 710 Excellence Program 711 </a> 712 <a href="/en/coaching" class="nav__sheet-sub-item"> 713 <div class="nav__sheet-sub-icon"> 714 <img src="/image/1167" alt="" width="20" height="20" style="object-fit:contain;"> 715 </div> 716 Coaching & Consulting 717 </a> 718 <a href="/en/shingo-model" class="nav__sheet-sub-item"> 719 <div class="nav__sheet-sub-icon"> 720 <img src="/image/1178" alt="" width="20" height="20" style="object-fit:contain;"> 721 </div> 722 Shingo Model™ 723 </a> 724 </div> 725 <a href="/en/events" class="nav__sheet-link ">Events</a> 726 <button class="nav__sheet-group-trigger" type="button"> 727 <span>Consulting</span> 728 <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> 729 </button> 730 <div class="nav__sheet-sub"> 731 <a href="/en/benchmarking" class="nav__sheet-sub-item"> 732 <div class="nav__sheet-sub-icon"> 733 <img src="/image/1165" alt="" width="20" height="20" style="object-fit:contain;"> 734 </div> 735 Benchmarking 736 </a> 737 <a href="/en/culture-development-system-explained" class="nav__sheet-sub-item"> 738 <div class="nav__sheet-sub-icon"> 739 <img src="/image/1713" alt="" width="20" height="20" style="object-fit:contain;"> 740 </div> 741 What is the Culture Development System? 742 </a> 743 <a href="/en/excellence-community" class="nav__sheet-sub-item"> 744 <div class="nav__sheet-sub-icon"> 745 <img src="/image/1181" alt="" width="20" height="20" style="object-fit:contain;"> 746 </div> 747 Excellence Community 748 </a> 749 <a href="/en/talent-development" class="nav__sheet-sub-item"> 750 <div class="nav__sheet-sub-icon"> 751 <img src="/image/1173" alt="" width="20" height="20" style="object-fit:contain;"> 752 </div> 753 Talent development 754 </a> 755 <a href="/en/opex-roll-out" class="nav__sheet-sub-item"> 756 <div class="nav__sheet-sub-icon"> 757 <img src="/image/1170" alt="" width="20" height="20" style="object-fit:contain;"> 758 </div> 759 OPEX Roll-out 760 </a> 761 </div> 762 <button class="nav__sheet-group-trigger" type="button">
763 <span>Products</span> 764 <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> 765 </button> 766 <div class="nav__sheet-sub"> 767 <a href="/en/products/books" class="nav__sheet-sub-item"> 768 <div class="nav__sheet-sub-icon"> 769 <img src="/image/1166" alt="" width="20" height="20" style="object-fit:contain;"> 770 </div> 771 Publications 772 </a> 773 <a href="/en/products/tools-templates" class="nav__sheet-sub-item"> 774 <div class="nav__sheet-sub-icon"> 775 <img src="/image/1184" alt="" width="20" height="20" style="object-fit:contain;"> 776 </div> 777 Tools 778 </a> 779 <a href="/en/products/workshops" class="nav__sheet-sub-item"> 780 <div class="nav__sheet-sub-icon"> 781 <img src="/image/1293" alt="" width="20" height="20" style="object-fit:contain;"> 782 </div> 783 Workshops 784 </a> 785 </div> 786 <button class="nav__sheet-group-trigger" type="button"> 787 <span>Software</span> 788 <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> 789 </button> 790 <div class="nav__sheet-sub"> 791 <a href="/en/support" class="nav__sheet-sub-item"> 792 <div class="nav__sheet-sub-icon"> 793 <img src="/image/1172" alt="" width="20" height="20" style="object-fit:contain;"> 794 </div> 795 Support 796 </a> 797 <a href="/en/alphadi-tab" class="nav__sheet-sub-item"> 798 <div class="nav__sheet-sub-icon"> 799 <img src="/image/1169" alt="" width="20" height="20" style="object-fit:contain;"> 800 </div> 801 AlphadiTab 802 </a> 803 </div> 804 <button class="nav__sheet-group-trigger" type="button"> 805 <span>About us</span> 806 <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> 807 </button> 808 <div class="nav__sheet-sub"> 809 <a href="/en/career" class="nav__sheet-sub-item"> 810 <div class="nav__sheet-sub-icon"> 811 <img src="/image/1416" alt="" width="20" height="20" style="object-fit:contain;"> 812 </div> 813 Career 814 </a> 815 <a href="/en/ueber-uns" class="nav__sheet-sub-item"> 816 <div class="nav__sheet-sub-icon"> 817 <img src="/image/1182" alt="" width="20" height="20" style="object-fit:contain;"> 818 </div> 819 Meet the Team 820 </a> 821 <a href="/en/glossary" class="nav__sheet-sub-item"> 822 <div class="nav__sheet-sub-icon"> 823 <img src="/image/216" alt="" width="20" height="20" style="object-fit:contain;"> 824 </div> 825 Glossary 826 </a> 827 </div> 828 829 830 831 <div class="nav__sheet-divider"></div> 832 <button class="nav__sheet-group-trigger" type="button" aria-haspopup="true" aria-expanded="false">
833 <span> 834 <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> 835 Account 836 </span> 837 <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> 838 </button> 839 <div class="nav__sheet-sub"> 840 <div class="nav__sheet-account"> 841 <p class="nav__sheet-account-lead">Log in into your shop account or create a new one.</p> 842 <a class="btn btn--primary" href="/Internal/Account/Login?returnUrl=~%2F">Login</a> 843 <a class="btn btn--outline" href="/Internal/Account/Register?returnUrl=~%2F">Create account</a> 844 </div> 845 </div> 846 847 <div class="nav__sheet-divider"></div> 848 <button class="nav__sheet-group-trigger" id="sheetLangTrigger" type="button"> 849 <span> 850 <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> 851 Language 852 </span> 853 <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> 854 </button> 855 <div class="nav__sheet-sub" id="sheetLangSub"> 856 <form method="post" style="margin:0;padding:0;display:contents;" action="/Home/SetLanguage?returnUrl=~%2F"> 857 <button type="submit" name="culture" value="de-DE" 858 class="nav__sheet-sub-item "> 859 DE â German 860 </button> 861 <input name="__RequestVerificationToken" type="hidden" value="CfDJ8BIMwQTuEtBBtnnpT6fmYEIJ3FT-Hh3xZotLLRaycrYnGUk6pIB8LCiL9t7M5I9jr0KQqP85l_9qhQgH0XBibFln3EAJn98OOw0ztX0QnQzDztXBs3v9GmMArqH9F4t9lqu-NEYEvD0vOecauWsFctI" /></form> 862 <form method="post" style="margin:0;padding:0;display:contents;" action="/Home/SetLanguage?returnUrl=~%2F"> 863 <button type="submit" name="culture" value="en-US" 864 class="nav__sheet-sub-item is-active"> 865 EN â English 866 </button> 867 <input name="__RequestVerificationToken" type="hidden" value="CfDJ8BIMwQTuEtBBtnnpT6fmYEIJ3FT-Hh3xZotLLRaycrYnGUk6pIB8LCiL9t7M5I9jr0KQqP85l_9qhQgH0XBibFln3EAJn98OOw0ztX0QnQzDztXBs3v9GmMArqH9F4t9lqu-NEYEvD0vOecauWsFctI" /></form> 868 <form method="post" style="margin:0;padding:0;display:contents;" action="/Home/SetLanguage?returnUrl=~%2F"> 869 <button type="submit" name="culture" value="es-ES" 870 class="nav__sheet-sub-item "> 871 ES â Spanish 872 </button> 873 <input name="__RequestVerificationToken" type="hidden" value="CfDJ8BIMwQTuEtBBtnnpT6fmYEIJ3FT-Hh3xZotLLRaycrYnGUk6pIB8LCiL9t7M5I9jr0KQqP85l_9qhQgH0XBibFln3EAJn98OOw0ztX0QnQzDztXBs3v9GmMArqH9F4t9lqu-NEYEvD0vOecauWsFctI" /></form> 874 <form method="post" style="margin:0;padding:0;display:contents;" action="/Home/SetLanguage?returnUrl=~%2F"> 875 <button type="submit" name="culture" value="it-IT" 876 class="nav__sheet-sub-item "> 877 IT â Italian 878 </button> 879 <input name="__RequestVerificationToken" type="hidden" value="CfDJ8BIMwQTuEtBBtnnpT6fmYEIJ3FT-Hh3xZotLLRaycrYnGUk6pIB8LCiL9t7M5I9jr0KQqP85l_9qhQgH0XBibFln3EAJn98OOw0ztX0QnQzDztXBs3v9GmMArqH9F4t9lqu-NEYEvD0vOecauWsFctI" /></form> 880 <form method="post" style="margin:0;padding:0;display:contents;" action="/Home/SetLanguage?returnUrl=~%2F"> 881 <button type="submit" name="culture" value="fr-FR" 882 class="nav__sheet-sub-item "> 883 FR â French 884 </button> 885 <input name="__RequestVerificationToken" type="hidden" value="CfDJ8BIMwQTuEtBBtnnpT6fmYEIJ3FT-Hh3xZotLLRaycrYnGUk6pIB8LCiL9t7M5I9jr0KQqP85l_9qhQgH0XBibFln3EAJn98OOw0ztX0QnQzDztXBs3v9GmMArqH9F4t9lqu-NEYEvD0vOecauWsFctI" /></form> 886 <form method="post" style="margin:0;padding:0;display:contents;" action="/Home/SetLanguage?returnUrl=~%2F"> 887 <button type="submit" name="culture" value="pl-PL" 888 class="nav__sheet-sub-item "> 889 PL â Polish 890 </button> 891 <input name="__RequestVerificationToken" type="hidden" value="CfDJ8BIMwQTuEtBBtnnpT6fmYEIJ3FT-Hh3xZotLLRaycrYnGUk6pIB8LCiL9t7M5I9jr0KQqP85l_9qhQgH0XBibFln3EAJn98OOw0ztX0QnQzDztXBs3v9GmMArqH9F4t9lqu-NEYEvD0vOecauWsFctI" /></form> 892 <form method="post" style="margin:0;padding:0;display:contents;" action="/Home/SetLanguage?returnUrl=~%2F"> 893 <button type="submit" name="culture" value="pt-PT"
894 class="nav__sheet-sub-item "> 895 PT â Portuguese 896 </button> 897 <input name="__RequestVerificationToken" type="hidden" value="CfDJ8BIMwQTuEtBBtnnpT6fmYEIJ3FT-Hh3xZotLLRaycrYnGUk6pIB8LCiL9t7M5I9jr0KQqP85l_9qhQgH0XBibFln3EAJn98OOw0ztX0QnQzDztXBs3v9GmMArqH9F4t9lqu-NEYEvD0vOecauWsFctI" /></form> 898 </div> 899 </div> 900 901 <div class="nav__sheet-footer"> 902 <a href="/en/contact">Contact</a> 903 </div> 904 </div> 905 906 <!-- âââââââ MAIN âââââââ --> 907 908<meta name="description" content="Alphadi helps organizations achieve Operational Excellence, Lean Six Sigma, coaching and sustainable culture change â through workshops, consulting and the AlphadiTab software."><meta name="robots" content="index, follow"><meta name="author" content="Alphadi"> 909<link href="https://alphadi.org/index-en.html" rel="canonical" /><meta property="og:type" content="website"><meta property="og:title" content="Alphadi â Culture Change with System"><meta property="og:description" content="Operational Excellence, Lean Six Sigma, coaching and sustainable culture change â workshops, consulting and software from Alphadi."><meta property="og:url" content="https://alphadi.org/index-en.html"><meta property="og:site_name" content="Alphadi"><meta property="og:locale" content="en_US"><meta property="og:image" content="https://alphadi.org/image/224"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:image" content="https://alphadi.org/image/224"><meta name="twitter:title" content="Alphadi â Culture Change with System"><meta name="twitter:description" content="Operational Excellence, Lean Six Sigma, coaching and culture change â with system.">
909<script type="application/ld+json"> 910{ 911 "@context": "https://schema.org", 912 "@graph": [ 913 { 914 "@type": "WebSite", 915 "@id": "https://alphadi.org/#website", 916 "name": "Alphadi", 917 "url": "https://alphadi.org", 918 "publisher": { "@id": "https://alphadi.org/#org" } 919 }, 920 { 921 "@type": "Organization", 922 "@id": "https://alphadi.org/#org", 923 "name": "Alphadi", 924 "description": "Alphadi begleitet Organisationen durch Exzellenz in Prozessoptimierung, Lean Six Sigma, Führung und Change Management.", 925 "url": "https://alphadi.org", 926 "logo": "https://alphadi.org/IMG/logo.png", 927 "contactPoint": { 928 "@type": "ContactPoint", 929 "contactType": "customer support", 930 "availableLanguage": ["German", "English"] 931 } 932 }, 933 { 934 "@type": "WebPage", 935 "@id": "https://alphadi.org/index-en.html", 936 "url": "https://alphadi.org/index-en.html", 937 "name": "Alphadi â Culture Change with System", 938 "description": "Alphadi helps organizations achieve Operational Excellence, Lean Six Sigma, coaching and sustainable culture change â through workshops, consulting and the AlphadiTab software.", 939 "inLanguage": "en", 940 "isPartOf": { "@id": "https://alphadi.org/#website" }, 941 "provider": { "@id": "https://alphadi.org/#org" } 942 } 943 ] 944} 945</script>
945 946<link href="https://api.fontshare.com/v2/css?f[]=satoshi@400,600,700,900&display=swap" rel="stylesheet" /> 947<style type="text/css">*, *::before, *::after { 948 box-sizing: border-box; 949 margin: 0; 950 padding: 0; 951 } 952 body { 953 font-family: 'Satoshi', system-ui, sans-serif; 954 } 955 :root { 956 --c-orange: #EC841F; 957 --f-ui: 'Satoshi', system-ui, sans-serif; 958 } 959 .btn { 960 display: inline-flex; 961 align-items: center; 962 gap: .5rem; 963 font-family: var(--f-ui); 964 font-size: .875rem; 965 font-weight: 600; 966 padding: .875rem 1.75rem; 967 border-radius: 999px; 968 transition: all .2s; 969 cursor: pointer; 970 text-decoration: none; 971 } 972 .btn--primary { 973 background: var(--c-orange); 974 color: #fff; 975 border: none; 976 } 977 .btn--primary:hover { 978 background: #D4711A; 979 } 980 .btn--outline-white { 981 border: 2px solid rgba(255,255,255,.7); 982 color: #fff; 983 background: rgba(255,255,255,.08); 984 backdrop-filter: blur(6px); 985 -webkit-backdrop-filter: blur(6px); 986 } 987 .btn--outline-white:hover { 988 background: rgba(255,255,255,.18); 989 border-color: #fff; 990 } 991 .btn--lg { 992 padding: 1.1rem 2.5rem; 993 font-size: 1rem; 994 } 995 .hero-v2 { 996 position: relative; 997 height: 100vh; 998 min-height: 620px; 999 overflow: hidden; 1000 background: #8aa8c8; 1001 display: flex;
1002 align-items: flex-start; 1003 justify-content: center; 1004 } 1005 .hero-v2__bg { 1006 position: absolute; 1007 inset: -6%; 1008 will-change: transform; 1009 } 1010 .hero-v2__bg-inner { 1011 position: absolute; 1012 inset: 0; 1013 background-image: url('/image/223'); 1014 background-size: cover; 1015 background-position: center center; 1016 transform-origin: center center; 1017 animation: heroBgZoom 25s ease-in-out infinite alternate; 1018 } 1019 @keyframes heroBgZoom { 1020 from { 1021 transform: scale(1); 1022 } 1023 to { 1024 transform: scale(1.22); 1025 } 1026 } 1027 .hero-v2__overlay { 1028 position: absolute; 1029 inset: 0; 1030 background: linear-gradient(to bottom, rgba(0,0,0,.10) 0%, rgba(0,0,0,0) 30%, rgba(0,0,0,0) 55%, rgba(0,0,0,.32) 100%); 1031 z-index: 1; 1032 } 1033 @keyframes heroFadeUp { 1034 from { 1035 opacity: 0; 1036 transform: translateY(22px); 1037 } 1038 to { 1039 opacity: 1; 1040 transform: translateY(0); 1041 } 1042 } 1043 @keyframes h1Zoom { 1044 from { 1045 transform: scale(1); 1046 } 1047 to { 1048 transform: scale(1.18); 1049 } 1050 } 1051 .hero-v2__content { 1052 position: relative; 1053 z-index: 2; 1054 text-align: center; 1055 color: #fff; 1056 padding: 28vh 1.5rem 0; 1057 max-width: 900px; 1058 } 1059 .hero-v2__eyebrow { 1060 display: inline-block; 1061 font-size: .72rem; 1062 font-weight: 700; 1063 letter-spacing: .22em; 1064 text-transform: uppercase; 1065 color: #fff; 1066 margin-bottom: 1rem; 1067 animation: heroFadeUp .5s cubic-bezier(0,0,.2,1) .1s both; 1068 } 1069 .hero-v2__h1 { 1070 font-family: var(--f-display); 1071 font-weight: 900; 1072 font-size: clamp(2.5rem, 6vw, 6rem); 1073 line-height: 1; 1074 letter-spacing: .06em; 1075 text-transform: uppercase; 1076 color: #fff; 1077 text-shadow: 0 2px 32px rgba(0,0,0,.22); 1078 animation: heroFadeUp .55s cubic-bezier(0,0,.2,1) .4s both, h1Zoom 22s ease-in-out 1.2s infinite alternate; 1079 } 1080 .hero-v2__cta { 1081 position: absolute; 1082 bottom: 4.5rem; 1083 left: 0; 1084 width: 100%; 1085 display: flex; 1086 gap: 1rem; 1087 justify-content: center; 1088 flex-wrap: wrap; 1089 z-index: 4; 1090 animation: heroFadeUp .5s cubic-bezier(0,0,.2,1) .75s both; 1091 } 1092 @media (max-height: 1100px) { 1093 .hero-v2__h1 { 1094 font-size: clamp(2rem, 4vw, 4rem); 1095 } 1096 } 1097 @keyframes fgSlideUp { 1098 from { 1099 transform: translateY(12%); 1100 opacity: 0; 1101 } 1102 to { 1103 transform: translateY(0); 1104 opacity: 1; 1105 } 1106 } 1107 .hero-v2__fg { 1108 position: absolute; 1109 top: -22vh; 1110 left: 0; 1111 right: 0; 1112 bottom: 0; 1113 z-index: 3; 1114 pointer-events: none; 1115 animation: fgSlideUp .9s cubic-bezier(0,0,.2,1) .2s both; 1116 } 1117 .hero-v2__fg img { 1118 width: 100%; 1119 height: 100%; 1120 object-fit: cover; 1121 object-position: top center; 1122 display: block; 1123 } 1124 .manifest-section { 1125 padding: 4rem 0 0; 1126 background: #fff; 1127 } 1128 .manifest-heading-wrap { 1129 text-align: center; 1130 padding: 0 2rem 2rem; 1131 } 1132 .manifest-heading { 1133 font-size: clamp(2rem, 3vw, 2.5rem); 1134 font-weight: 900; 1135 letter-spacing: 0.02em; 1136 color: #111; 1137 line-height: 1.1; 1138 } 1139 .manifest-tiles { 1140 display: grid; 1141 grid-template-columns: repeat(3, 1fr); 1142 width: 100%; 1143 border-top: 1px solid #ebebeb; 1144 } 1145 .manifest-tile { 1146 padding: 4rem 3rem 5rem; 1147 display: flex; 1148 flex-direction: column; 1149 align-items: center; 1150 gap: 1.75rem; 1151 text-align: center; 1152 border-right: 1px solid #ebebeb; 1153 transition: background .2s; 1154 cursor: default; 1155 } 1156 .manifest-tile:last-child { 1157 border-right: none; 1158 } 1159 .manifest-tile:hover { 1160 background: #faf9f7; 1161 } 1162 .manifest-tile__icon { 1163 width: 80px; 1164 height: 80px; 1165 object-fit: contain; 1166 } 1167 .manifest-tile__name { 1168 font-size: clamp(1.3rem, 2vw, 1.8rem); 1169 font-weight: 900; 1170 letter-spacing: -0.03em; 1171 color: #111; 1172 line-height: 1.1; 1173 } 1174 .manifest-tile__desc { 1175 font-size: 0.85rem; 1176 color: #888; 1177 line-height: 1.65; 1178 max-width: 22ch; 1179 } 1180 .manifest-tile--orange .manifest-tile__name { 1181 color: #EC841F; 1182 } 1183 .manifest-tile--purple .manifest-tile__name { 1184 color: #d92828; 1185 } 1186 .manifest-tile--green .manifest-tile__name { 1187 color: #77b82a; 1188 } 1189 @media (max-width: 680px) { 1190 .manifest-section { 1191 padding: 2.5rem 0 0; 1192 } 1193 .manifest-heading-wrap { 1194 padding: 0 1.5rem 1.5rem; 1195 } 1196 .manifest-heading { 1197 font-size: clamp(1.4rem, 6vw, 1.8rem); 1198 } 1199 .manifest-tiles { 1200 grid-template-columns: 1fr; 1201 } 1202 .manifest-tile { 1203 flex-direction: row; 1204 align-items: center; 1205 text-align: left; 1206 padding: 1.75rem 1.5rem; 1207 gap: 1.25rem;
1208 border-right: none; 1209 border-bottom: 1px solid #ebebeb; 1210 } 1211 .manifest-tile:last-child { 1212 border-bottom: none; 1213 } 1214 .manifest-tile__icon { 1215 width: 52px; 1216 height: 52px; 1217 flex-shrink: 0; 1218 } 1219 .manifest-tile__name { 1220 font-size: clamp(1.1rem, 5vw, 1.4rem); 1221 } 1222 } 1223 /* Dienstleistungs-Kacheln */ 1224 .dlst-section { 1225 background: #fff; 1226 } 1227 /* Produkt-Bento */ 1228 .prod-section { 1229 background: #fff; 1230 padding: 2rem 25px 25px; 1231 } 1232 .prod-bento { 1233 display: grid; 1234 grid-template-columns: 1fr 1fr 1fr; 1235 grid-template-rows: 260px 220px 200px; 1236 gap: 1rem; 1237 } 1238 .prod-card { 1239 border-radius: 16px; 1240 padding: 2rem; 1241 display: flex; 1242 flex-direction: column; 1243 justify-content: space-between; 1244 text-decoration: none; 1245 overflow: hidden; 1246 position: relative; 1247 transition: filter .2s; 1248 } 1249 .prod-card:hover { 1250 filter: brightness(.95); 1251 } 1252 .prod-card__label { 1253 font-size: 0.62rem; 1254 font-weight: 700; 1255 letter-spacing: 0.16em; 1256 text-transform: uppercase; 1257 opacity: .5; 1258 } 1259 .prod-card__name { 1260 font-size: clamp(1.4rem, 2.5vw, 2.2rem); 1261 font-weight: 900; 1262 letter-spacing: -0.03em; 1263 line-height: 1.05; 1264 } 1265 .prod-card__desc { 1266 font-size: 0.8rem; 1267 line-height: 1.6; 1268 opacity: .7; 1269 max-width: 28ch; 1270 } 1271 .prod-card__arrow { 1272 align-self: flex-end; 1273 opacity: .5; 1274 } 1275 /* AlphadiTab â L, col 1 rows 1-3 */ 1276 .prod-alphaditab { 1277 grid-column: 1; 1278 grid-row: 1 / 3; 1279 background: #111; 1280 color: #fff; 1281 } 1282 .prod-alphaditab .prod-card__name { 1283 color: #fff; 1284 } 1285 .prod-alphaditab > * { 1286 position: relative; 1287 z-index: 2; 1288 } 1289 /* Tools â M, col 2-3 rows 1-2 */ 1290 .prod-tools { 1291 grid-column: 2 / 4; 1292 grid-row: 1 / 3; 1293 background: #EC841F; 1294 color: #fff; 1295 } 1296 .prod-tools .prod-card__name { 1297 color: #fff; 1298 } 1299 .prod-tools > * { 1300 position: relative; 1301 z-index: 2; 1302 } 1303 /* Weiterbildung â S, col 2 row 3 */ 1304 .prod-weiterbildung { 1305 grid-column: 1 / 3; 1306 grid-row: 3; 1307 background: #fff; 1308 color: #111; 1309 } 1310 .prod-weiterbildung > * { 1311 position: relative; 1312 z-index: 2; 1313 } 1314 /* Bücher â S, col 3 row 3 */ 1315 .prod-buecher { 1316 grid-column: 3; 1317 grid-row: 3; 1318 background: #e8e4de; 1319 color: #111; 1320 } 1321 .prod-buecher > * { 1322 position: relative; 1323 z-index: 2; 1324 } 1325 .prod-card__bg-img { 1326 position: absolute; 1327 inset: 0; 1328 width: 100%; 1329 height: 100%; 1330 object-fit: cover; 1331 object-position: center; 1332 z-index: 0; 1333 } 1334 /* Outline-Shine auf Card-Namen */ 1335 .prod-alphaditab .prod-card__name { 1336 text-shadow: none; 1337 } 1338 .prod-tools .prod-card__name { 1339 text-shadow: none; 1340 } 1341 .prod-weiterbildung .prod-card__name { 1342 text-shadow: 1343 0 0 4px rgba(255,255,255,1), 1344 0 0 12px rgba(255,255,255,1), 1345 0 0 28px rgba(255,255,255,.95), 1346 0 0 55px rgba(255,255,255,.75), 1347 0 0 90px rgba(255,255,255,.5); 1348 } 1349 .prod-buecher .prod-card__name { 1350 text-shadow: 1351 0 0 4px rgba(232,228,222,1), 1352 0 0 12px rgba(232,228,222,1), 1353 0 0 28px rgba(232,228,222,.95), 1354 0 0 55px rgba(232,228,222,.75), 1355 0 0 90px rgba(232,228,222,.5); 1356 } 1357 @media (max-width: 900px) { 1358 .prod-bento { 1359 grid-template-columns: 1fr 1fr; 1360 grid-template-rows: auto; 1361 } 1362 .prod-alphaditab { 1363 grid-column: 1 / 3; 1364 grid-row: auto; 1365 min-height: 280px; 1366 } 1367 .prod-tools { 1368 grid-column: 1 / 3; 1369 grid-row: auto; 1370 min-height: 200px; 1371 } 1372 .prod-weiterbildung, .prod-buecher { 1373 grid-column: auto; 1374 grid-row: auto; 1375 min-height: 160px; 1376 } 1377 .prod-alphaditab .prod-card__desc, 1378 .prod-tools .prod-card__desc { 1379 display: none; 1380 } 1381 } 1382 @media (max-width: 540px) { 1383 .prod-section { 1384 padding: 0 12px 12px; 1385 } 1386 .prod-bento { 1387 grid-template-columns: 1fr; 1388 } 1389 .prod-alphaditab, .prod-tools, .prod-weiterbildung, .prod-buecher { 1390 grid-column: 1; 1391 grid-row: auto; 1392 } 1393 } 1394 .dlst-tiles { 1395 display: grid; 1396 grid-template-columns: repeat(3, 1fr); 1397 width: 100%; 1398 border-top: 1px solid #e0deda; 1399 } 1400 .dlst-tile { 1401 padding: 4rem 3rem 5rem; 1402 display: flex; 1403 flex-direction: column;
1404 align-items: center; 1405 gap: 1.75rem; 1406 text-align: center; 1407 border-right: 1px solid #e0deda; 1408 transition: background .2s; 1409 } 1410 .dlst-tile:last-child { 1411 border-right: none; 1412 } 1413 .dlst-tile:hover { 1414 background: #efecea; 1415 } 1416 .dlst-placeholder { 1417 width: 80px; 1418 height: 80px; 1419 border-radius: 16px; 1420 background: #e0deda; 1421 display: flex; 1422 align-items: center; 1423 justify-content: center; 1424 font-size: 0.6rem; 1425 font-weight: 700; 1426 letter-spacing: 0.08em; 1427 text-transform: uppercase; 1428 color: #aaa; 1429 } 1430 .dlst-tile__name { 1431 font-size: clamp(1.3rem, 2vw, 1.8rem); 1432 font-weight: 900; 1433 letter-spacing: -0.03em; 1434 color: #111; 1435 line-height: 1.1; 1436 } 1437 .dlst-tile__desc { 1438 font-size: 0.85rem; 1439 color: #888; 1440 line-height: 1.65; 1441 max-width: 24ch; 1442 } 1443 .dlst-tile__cta { 1444 display: inline-flex; 1445 align-items: center; 1446 gap: 0.4rem; 1447 font-size: 0.8rem; 1448 font-weight: 700; 1449 color: #EC841F; 1450 text-decoration: none; 1451 margin-top: 0.75rem; 1452 transition: gap .2s; 1453 } 1454 .dlst-tile__cta:hover { 1455 gap: 0.7rem; 1456 } 1457 @media (max-width: 768px) { 1458 .dlst-tiles { 1459 grid-template-columns: 1fr; 1460 } 1461 .dlst-tile { 1462 border-right: none; 1463 border-bottom: 1px solid #e0deda; 1464 padding: 3rem 2rem; 1465 } 1466 .dlst-tile:last-child { 1467 border-bottom: none; 1468 } 1469 } 1470 .exccom-section { 1471 padding: 0; 1472 background: #f7f6f3; 1473 overflow: hidden; 1474 } 1475 /* Excellence Community Banner */ 1476 .exccom-banner { 1477 margin: 0 25px; 1478 border-radius: 20px; 1479 position: relative; 1480 overflow: hidden; 1481 background: url('/image/665') center/cover no-repeat; 1482 min-height: 480px; 1483 display: flex;
1484 align-items: flex-end; 1485 } 1486 .exccom-banner::after { 1487 content: ''; 1488 position: absolute; 1489 inset: 0; 1490 background: linear-gradient(160deg, rgba(0,0,0,.45) 0%, rgba(0,0,0,.65) 100%); 1491 } 1492 .exccom-banner__content { 1493 position: relative; 1494 z-index: 1; 1495 width: 100%; 1496 display: flex; 1497 justify-content: flex-start; 1498 align-items: flex-end; 1499 padding: 3.5rem; 1500 gap: 3rem; 1501 flex-wrap: wrap; 1502 } 1503 .exccom-banner__left { 1504 max-width: 520px; 1505 } 1506 .exccom-main__eyebrow { 1507 display: block; 1508 font-size: 0.68rem; 1509 font-weight: 700; 1510 letter-spacing: 0.18em; 1511 text-transform: uppercase; 1512 color: #EC841F; 1513 margin-bottom: 0.75rem; 1514 } 1515 .exccom-main__heading { 1516 font-size: clamp(1.6rem, 3vw, 2.6rem); 1517 font-weight: 900; 1518 letter-spacing: -0.03em; 1519 color: #fff; 1520 line-height: 1.05; 1521 margin-bottom: 1rem; 1522 } 1523 .exccom-main__desc { 1524 font-size: 0.88rem; 1525 color: rgba(255,255,255,.7); 1526 line-height: 1.7; 1527 margin-bottom: 1.5rem; 1528 } 1529 .exccom-main__cta { 1530 display: inline-flex;
1531 align-items: center; 1532 gap: 0.5rem; 1533 font-size: 0.82rem; 1534 font-weight: 700; 1535 color: #EC841F; 1536 text-decoration: none; 1537 transition: gap .2s; 1538 } 1539 .exccom-main__cta:hover { 1540 gap: 0.8rem; 1541 } 1542 .exccom-banner__right { 1543 text-align: right; 1544 margin-left: auto; 1545 width: max-content; 1546 } 1547 .exccom-benefit__heading { 1548 font-size: 1.05rem; 1549 font-weight: 900; 1550 color: #fff; 1551 letter-spacing: -0.02em; 1552 line-height: 1.2; 1553 margin-bottom: 0.35rem; 1554 } 1555 .exccom-benefit__desc { 1556 font-size: 0.78rem; 1557 color: rgba(255,255,255,.65); 1558 line-height: 1.55; 1559 } 1560 @media (max-width: 1024px) { 1561 .exccom-banner__content { 1562 justify-content: center; 1563 } 1564 } 1565 @media (max-width: 700px) { 1566 .exccom-banner { 1567 margin: 0 12px; 1568 min-height: 400px; 1569 } 1570 .exccom-banner__content { 1571 padding: 2rem; 1572 flex-direction: column; 1573 gap: 2rem; 1574 } 1575 .exccom-banner__right { 1576 display: none; 1577 } 1578 } 1579 /* Full-width tier strip */ 1580 .exccom-tiers { 1581 display: grid; 1582 grid-template-columns: repeat(3, 1fr); 1583 margin-top: 1rem; 1584 } 1585 .exccom-tier {
1586 padding: 2.75rem 3rem; 1587 display: flex; 1588 flex-direction: column; 1589 gap: 0.4rem; 1590 } 1591 .exccom-tier__num { 1592 font-size: 0.65rem; 1593 font-weight: 700; 1594 letter-spacing: 0.18em; 1595 text-transform: uppercase; 1596 opacity: .45; 1597 } 1598 .exccom-tier__name { 1599 font-size: clamp(1.75rem, 3vw, 2.5rem); 1600 font-weight: 900; 1601 letter-spacing: -0.03em; 1602 line-height: 1; 1603 } 1604 .exccom-tier__desc { 1605 font-size: 0.78rem; 1606 line-height: 1.6; 1607 margin-top: 0.4rem; 1608 opacity: .55; 1609 } 1610 .exccom-bronze { 1611 background: #2a1a08; 1612 } 1613 .exccom-bronze .exccom-tier__num, .exccom-bronze .exccom-tier__name, .exccom-bronze .exccom-tier__desc { 1614 color: #cd7f32; 1615 } 1616 .exccom-silver { 1617 background: #16191c; 1618 } 1619 .exccom-silver .exccom-tier__num, .exccom-silver .exccom-tier__name, .exccom-silver .exccom-tier__desc { 1620 color: #c0c0c0; 1621 } 1622 .exccom-gold { 1623 background: #1a1500; 1624 } 1625 .exccom-gold .exccom-tier__num, .exccom-gold .exccom-tier__name, .exccom-gold .exccom-tier__desc { 1626 color: #d4af37; 1627 } 1628 @media (max-width: 900px) { 1629 .exccom-tiers { 1630 grid-template-columns: 1fr; 1631 } 1632 } 1633 /* Impressionen neu */ 1634 .impr2-section { 1635 display: flex;
1636 align-items: stretch; 1637 background: #f7f6f3; 1638 overflow: hidden; 1639 min-height: 580px; 1640 padding: 4rem 0; 1641 } 1642 .impr2-left { 1643 width: 33%; 1644 flex-shrink: 0; 1645 padding: 0 4rem; 1646 display: flex; 1647 flex-direction: column; 1648 justify-content: center; 1649 } 1650 .impr2-fade { 1651 position: absolute; 1652 top: 0; 1653 bottom: 0; 1654 left: 0; 1655 width: 80px; 1656 background: linear-gradient(to right, #f7f6f3, transparent); 1657 z-index: 2; 1658 pointer-events: none; 1659 } 1660 .impr2-left__eyebrow { 1661 font-size: 0.68rem; 1662 font-weight: 700; 1663 letter-spacing: 0.18em; 1664 text-transform: uppercase; 1665 color: #EC841F; 1666 margin-bottom: 1rem; 1667 display: block; 1668 } 1669 .impr2-left__heading { 1670 font-size: clamp(2rem, 3vw, 3rem); 1671 font-weight: 900; 1672 letter-spacing: -0.04em; 1673 color: #111; 1674 line-height: 1.05; 1675 margin-bottom: 1.25rem; 1676 } 1677 .impr2-left__text { 1678 font-size: 0.9rem; 1679 color: #888; 1680 line-height: 1.75; 1681 } 1682 .impr2-right { 1683 flex: 1; 1684 overflow: hidden; 1685 display: flex; 1686 flex-direction: column; 1687 gap: 0.75rem; 1688 padding: 0; 1689 } 1690 .impr2-row { 1691 display: flex; 1692 gap: 0.75rem; 1693 width: max-content; 1694 } 1695 .impr2-row--1 { 1696 animation: impr2-scroll 110s linear infinite; 1697 } 1698 .impr2-row--2 { 1699 animation: impr2-scroll-reverse 158s linear infinite; 1700 } 1701 @keyframes impr2-scroll { 1702 0% { 1703 transform: translateX(0); 1704 } 1705 100% { 1706 transform: translateX(-50%); 1707 } 1708 } 1709 @keyframes impr2-scroll-reverse { 1710 0% { 1711 transform: translateX(-50%); 1712 } 1713 100% { 1714 transform: translateX(0); 1715 } 1716 } 1717 .impr2-item { 1718 position: relative; 1719 flex-shrink: 0; 1720 border-radius: 12px; 1721 overflow: hidden; 1722 } 1723 .impr2-item img { 1724 height: 220px; 1725 width: auto; 1726 aspect-ratio: 3/2; 1727 object-fit: cover; 1728 display: block; 1729 border-radius: 12px; 1730 transition: transform .4s ease; 1731 } 1732 .impr2-item:hover img { 1733 transform: scale(1.05); 1734 } 1735 .impr2-caption { 1736 position: absolute; 1737 bottom: 0; 1738 left: 0; 1739 right: 0; 1740 padding: 1.25rem 0.9rem 0.8rem; 1741 background: linear-gradient(to top, rgba(0,0,0,.7), transparent); 1742 border-radius: 0 0 12px 12px; 1743 opacity: 0; 1744 transition: opacity .25s; 1745 } 1746 .impr2-item:hover .impr2-caption { 1747 opacity: 1; 1748 } 1749 .impr2-caption span { 1750 font-size: 0.72rem; 1751 font-weight: 600; 1752 color: #fff; 1753 } 1754 @media (max-width: 768px) { 1755 .impr2-section { 1756 flex-direction: column; 1757 min-height: auto; 1758 } 1759 .impr2-left { 1760 width: 100%; 1761 padding: 3rem 2rem; 1762 } 1763 .impr2-left__heading { 1764 font-size: clamp(1.6rem, 6vw, 2.2rem); 1765 } 1766 .impr2-right { 1767 padding: 1.5rem 0; 1768 gap: 0.5rem; 1769 } 1770 .impr2-item img { 1771 height: 160px; 1772 } 1773 } 1774</style> 1775<div class="hero-v2"> 1776<div class="hero-v2__bg"> 1777<div class="hero-v2__bg-inner"> </div> 1778</div> 1779 1780<div class="hero-v2__overlay"> </div> 1781 1782<div class="hero-v2__content"><span class="hero-v2__eyebrow">Culture Change with System</span> 1783 1784<h1 class="hero-v2__h1">WE DEVELOP<br /> 1785PEOPLE</h1> 1786</div> 1787 1788<div class="hero-v2__cta"> 1789<a class="btn btn--primary btn--lg" href="/en/workshops">Explore Programs</a> 1790 1791<a class="btn btn--outline-white btn--lg" href="/en/contact">Get in Touch</a> 1792</div> 1793 1794<div class="hero-v2__fg"><img alt="" src="/image/224" /></div> 1795</div>
1796<script> 1797 var heroBg = document.querySelector('.hero-v2__bg'); 1798 window.addEventListener('scroll', function() { 1799 if (heroBg) heroBg.style.transform = 'translateY(' + (window.scrollY * 0.3) + 'px)'; 1800 }, { passive: true }); 1801</script>
1801 1802 1803<section class="manifest-section" id="erfahrung"> 1804<div class="manifest-heading-wrap"> 1805<h2 class="manifest-heading">Your Partner for</h2> 1806</div> 1807 1808<div class="manifest-tiles"> 1809<div class="manifest-tile manifest-tile--orange"><img alt="Lean Six Sigma" class="manifest-tile__icon" src="/image/671" /> 1810<div class="manifest-tile__name">Lean Six Sigma</div> 1811</div> 1812 1813<div class="manifest-tile manifest-tile--purple"><img alt="Project Management" class="manifest-tile__icon" src="/image/674" /> 1814<div class="manifest-tile__name">Project Management</div> 1815</div> 1816 1817<div class="manifest-tile manifest-tile--green"><img alt="Kulturveränderung" class="manifest-tile__icon" src="/image/673" /> 1818<div class="manifest-tile__name">Culture Change</div> 1819</div> 1820</div> 1821</section> 1822 1823<p> 1824 <section class="section bg-warm"> 1825 <div class="container"> 1826 <div style="display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:3rem;"> 1827 <div> 1828 <span class="eyebrow fade-up is-visible">Recent news</span> 1829 <h2 class="fade-up is-visible" style="margin:0;">News & Insights.</h2> 1830 </div> 1831 <a href="/en/news" class="btn btn--outline fade-up is-visible" style="flex-shrink:0;">All news â</a> 1832 </div> 1833 1834 <div style="display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;"> 1835 <a href="/en/news/congratulations-to-patrick-thaler-on-the-lean-six-sigma-master-black-belt-excellence" class="news-card fade-up is-visible"> 1836 <div class="news-card__img"> 1837 <img src="https://www.alphadi.org/image/639" alt="Congratulations to Patrick Thaler on the Lean Six Sigma Master Black Belt Excellence!" loading="lazy" /> 1838 </div> 1839 <div class="news-card__body"> 1840 <div class="news-card__date">9/30/2025</div> 1841 <h3 class="news-card__title">Congratulations to Patrick Thaler on the Lean Six Sigma Master Black Belt Excellence!</h3> 1842 <div class="news-card__desc"><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> 1843</div> 1844 </div> 1845 <div class="news-card__link">Read more <svg width="14" height="14" viewBox="0 0 14 14" fill="none"><path d="M3 7h8M8 4l3 3-3 3" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></div> 1846 </a> 1847 <a href="/en/news/zimmer-wins-the-shingo-bronze-prize" class="news-card fade-up is-visible"> 1848 <div class="news-card__img"> 1849 <img src="https://www.alphadi.org/image/764" alt="Zimmer Switzerland Manufacturing GmbH wins the Shingo Bronze Prize" loading="lazy" /> 1850 </div> 1851 <div class="news-card__body"> 1852 <div class="news-card__date">2/21/2025</div> 1853 <h3 class="news-card__title">Zimmer Switzerland Manufacturing GmbH wins the Shingo Bronze Prize</h3> 1854 <div class="news-card__desc"><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> 1855</div> 1856 </div> 1857 <div class="news-card__link">Read more <svg width="14" height="14" viewBox="0 0 14 14" fill="none"><path d="M3 7h8M8 4l3 3-3 3" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></div> 1858 </a> 1859 <a href="/en/news/certificate-presentation-gold-excellence-program" class="news-card fade-up is-visible"> 1860 <div class="news-card__img"> 1861 <img src="https://www.alphadi.org/image/774" alt="Certificate Presentation – Gold Excellence Program" loading="lazy" /> 1862 </div> 1863 <div class="news-card__body"> 1864 <div class="news-card__date">8/8/2024</div> 1865 <h3 class="news-card__title">Certificate Presentation – Gold Excellence Program</h3> 1866 <div class="news-card__desc"><p>Congratulations on passing the exam in the Gold Excellence Program!</p> 1867</div> 1868 </div> 1869 <div class="news-card__link">Read more <svg width="14" height="14" viewBox="0 0 14 14" fill="none"><path d="M3 7h8M8 4l3 3-3 3" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></div> 1870 </a> 1871 </div> 1872 </div> 1873 </section> 1874</p> 1875<!-- ⨠IMPRESSIONEN --> 1876 1877<section class="impr2-section"> 1878<div class="impr2-left"><span class="impr2-left__eyebrow">Insights</span> 1879 1880<h2 class="impr2-left__heading">Highlights from Our Work.</h2> 1881 1882<p class="impr2-left__text">Trainings, graduations, conferences and Gemba walks — real moments from over 15 years of hands-on experience worldwide.</p> 1883</div> 1884 1885<div class="impr2-right" style="position:relative;"> 1886<div class="impr2-fade"> </div> 1887<!-- Row 1: /image/637â661, duplicated for loop --> 1888 1889<div class="impr2-row impr2-row--1"> 1890<div class="impr2-item"><img alt="Grouppicture Discover Excellence" src="/image/637" /> 1891<div class="impr2-caption"><span>Grouppicture Discover Excellence</span></div> 1892</div> 1893 1894<div class="impr2-item"><img alt="Graduation - Master Black Belt" src="/image/638" /> 1895<div class="impr2-caption"><span>Graduation - Master Black Belt</span></div> 1896</div> 1897 1898<div class="impr2-item"><img alt="Graduation - Master Black Belt" src="/image/639" /> 1899<div class="impr2-caption"><span>Graduation - Master Black Belt</span></div> 1900</div> 1901 1902<div class="impr2-item"><img alt="Alphadi Learning Factory - Filling Machine" src="/image/640" /> 1903<div class="impr2-caption"><span>Alphadi Learning Factory - Filling Machine</span></div> 1904</div> 1905 1906<div class="impr2-item"><img alt="Training â Zürich" src="/image/641" /> 1907<div class="impr2-caption"><span>Training — Zürich</span></div> 1908</div> 1909 1910<div class="impr2-item"><img alt="Graduation - Black Belt" src="/image/642" /> 1911<div class="impr2-caption"><span>Graduation - Black Belt</span></div> 1912</div> 1913 1914<div class="impr2-item"><img alt="Conference - USA" src="/image/643" /> 1915<div class="impr2-caption"><span>Conference - USA</span></div> 1916</div> 1917 1918<div class="impr2-item"><img alt="Alphadi Learning Factory PCBs" src="/image/644" /> 1919<div class="impr2-caption"><span>Alphadi Learning Factory PCBs</span></div> 1920</div> 1921 1922<div class="impr2-item"><img alt="Training â Selzach Schweiz" src="/image/645" /> 1923<div class="impr2-caption"><span>Training — Selzach Schweiz</span></div> 1924</div> 1925 1926<div class="impr2-item"><img alt="Alphadi Learning Factory - Computer" src="/image/646" /> 1927<div class="impr2-caption"><span>Alphadi Learning Factory - Computer</span></div> 1928</div> 1929 1930<div class="impr2-item"><img alt="Discover Excellence at Continental" src="/image/647" /> 1931<div class="impr2-caption"><span>Discover Excellence at Continental</span></div> 1932</div> 1933 1934<div class="impr2-item"><img alt="Conference - USA" src="/image/648" /> 1935<div class="impr2-caption"><span>Conference - USA</span></div> 1936</div> 1937 1938<div class="impr2-item"><img alt="Alphadi Learning Factory" src="/image/649" /> 1939<div class="impr2-caption"><span>Alphadi Learning Factory</span></div> 1940</div> 1941 1942<div class="impr2-item"><img alt="Systems Design at Felix Schoeller" src="/image/650" /> 1943<div class="impr2-caption"><span>Systems Design at Felix Schoeller</span></div> 1944</div> 1945 1946<div class="impr2-item"><img alt="Shingo Class" src="/image/651" /> 1947<div class="impr2-caption"><span>Shingo Class</span></div> 1948</div> 1949 1950<div class="impr2-item"><img alt="Management Training - Kata Coaching" src="/image/652" /> 1951<div class="impr2-caption"><span>Management Training - Kata Coaching</span></div> 1952</div> 1953 1954<div class="impr2-item"><img alt="Ritsuo Shingo-san - Training" src="/image/653" /> 1955<div class="impr2-caption"><span>Ritsuo Shingo-san - Training</span></div> 1956</div> 1957 1958<div class="impr2-item"><img alt="Inhouse Black Belt Winterthur" src="/image/654" /> 1959<div class="impr2-caption"><span>Inhouse Black Belt Winterthur</span></div> 1960</div> 1961 1962<div class="impr2-item"><img alt="Shingo-san and Annette-san" src="/image/655" /> 1963<div class="impr2-caption"><span>Shingo-san and Annette-san</span></div> 1964</div> 1965 1966<div class="impr2-item"><img alt="Graduation Black Belt" src="/image/656" /> 1967<div class="impr2-caption"><span>Graduation Black Belt</span></div> 1968</div> 1969 1970<div class="impr2-item"><img alt="Conference Regensburg" src="/image/657" /> 1971<div class="impr2-caption"><span>Conference Regensburg</span></div> 1972</div> 1973 1974<div class="impr2-item"><img alt="Training Regensburg" src="/image/658" /> 1975<div class="impr2-caption"><span>Training Regensburg</span></div> 1976</div> 1977 1978<div class="impr2-item"><img alt="Fireside Chat - Kassel" src="/image/659" /> 1979<div class="impr2-caption"><span>Fireside Chat - Kassel</span></div> 1980</div> 1981 1982<div class="impr2-item"><img alt="Gemba Walk - Göttingen" src="/image/660" /> 1983<div class="impr2-caption"><span>Gemba Walk - Göttingen</span></div> 1984</div> 1985 1986<div class="impr2-item"><img alt="Conference Dublin Irland" src="/image/661" /> 1987<div class="impr2-caption"><span>Conference Dublin Irland</span></div> 1988</div> 1989<!-- duplicate --> 1990 1991<div class="impr2-item"><img alt="Grouppicture Discover Excellence" src="/image/637" /> 1992<div class="impr2-caption"><span>Grouppicture Discover Excellence</span></div> 1993</div> 1994 1995<div class="impr2-item"><img alt="Graduation - Master Black Belt" src="/image/638" /> 1996<div class="impr2-caption"><span>Graduation - Master Black Belt</span></div> 1997</div> 1998 1999<div class="impr2-item"><img alt="Graduation - Master Black Belt" src="/image/639" /> 2000<div class="impr2-caption"><span>Graduation - Master Black Belt</span></div> 2001</div> 2002 2003<div class="impr2-item"><img alt="Alphadi Learning Factory - Filling Machine" src="/image/640" /> 2004<div class="impr2-caption"><span>Alphadi Learning Factory - Filling Machine</span></div> 2005</div> 2006 2007<div class="impr2-item"><img alt="Training â Zürich" src="/image/641" /> 2008<div class="impr2-caption"><span>Training — Zürich</span></div> 2009</div> 2010 2011<div class="impr2-item"><img alt="Graduation - Black Belt" src="/image/642" /> 2012<div class="impr2-caption"><span>Graduation - Black Belt</span></div> 2013</div> 2014 2015<div class="impr2-item"><img alt="Conference - USA" src="/image/643" /> 2016<div class="impr2-caption"><span>Conference - USA</span></div> 2017</div> 2018 2019<div class="impr2-item"><img alt="Alphadi Learning Factory PCBs" src="/image/644" /> 2020<div class="impr2-caption"><span>Alphadi Learning Factory PCBs</span></div> 2021</div> 2022 2023<div class="impr2-item"><img alt="Training â Selzach Schweiz" src="/image/645" /> 2024<div class="impr2-caption"><span>Training — Selzach Schweiz</span></div> 2025</div> 2026 2027<div class="impr2-item"><img alt="Alphadi Learning Factory - Computer" src="/image/646" /> 2028<div class="impr2-caption"><span>Alphadi Learning Factory - Computer</span></div> 2029</div> 2030 2031<div class="impr2-item"><img alt="Discover Excellence at Continental" src="/image/647" /> 2032<div class="impr2-caption"><span>Discover Excellence at Continental</span></div> 2033</div> 2034 2035<div class="impr2-item"><img alt="Conference - USA" src="/image/648" /> 2036<div class="impr2-caption"><span>Conference - USA</span></div> 2037</div> 2038 2039<div class="impr2-item"><img alt="Alphadi Learning Factory" src="/image/649" /> 2040<div class="impr2-caption"><span>Alphadi Learning Factory</span></div> 2041</div> 2042 2043<div class="impr2-item"><img alt="Systems Design at Felix Schoeller" src="/image/650" /> 2044<div class="impr2-caption"><span>Systems Design at Felix Schoeller</span></div> 2045</div> 2046 2047<div class="impr2-item"><img alt="Shingo Class" src="/image/651" /> 2048<div class="impr2-caption"><span>Shingo Class</span></div> 2049</div> 2050 2051<div class="impr2-item"><img alt="Management Training - Kata Coaching" src="/image/652" /> 2052<div class="impr2-caption"><span>Management Training - Kata Coaching</span></div> 2053</div> 2054 2055<div class="impr2-item"><img alt="Ritsuo Shingo-san - Training" src="/image/653" /> 2056<div class="impr2-caption"><span>Ritsuo Shingo-san - Training</span></div> 2057</div> 2058 2059<div class="impr2-item"><img alt="Inhouse Black Belt Winterthur" src="/image/654" /> 2060<div class="impr2-caption"><span>Inhouse Black Belt Winterthur</span></div> 2061</div> 2062 2063<div class="impr2-item"><img alt="Shingo-san and Annette-san" src="/image/655" /> 2064<div class="impr2-caption"><span>Shingo-san and Annette-san</span></div> 2065</div> 2066 2067<div class="impr2-item"><img alt="Graduation Black Belt" src="/image/656" /> 2068<div class="impr2-caption"><span>Graduation Black Belt</span></div> 2069</div> 2070 2071<div class="impr2-item"><img alt="Conference Regensburg" src="/image/657" /> 2072<div class="impr2-caption"><span>Conference Regensburg</span></div> 2073</div> 2074 2075<div class="impr2-item"><img alt="Training Regensburg" src="/image/658" /> 2076<div class="impr2-caption"><span>Training Regensburg</span></div> 2077</div> 2078 2079<div class="impr2-item"><img alt="Fireside Chat - Kassel" src="/image/659" /> 2080<div class="impr2-caption"><span>Fireside Chat - Kassel</span></div> 2081</div> 2082 2083<div class="impr2-item"><img alt="Gemba Walk - Göttingen" src="/image/660" /> 2084<div class="impr2-caption"><span>Gemba Walk - Göttingen</span></div> 2085</div> 2086 2087<div class="impr2-item"><img alt="Conference Dublin Irland" src="/image/661" /> 2088<div class="impr2-caption"><span>Conference Dublin Irland</span></div> 2089</div> 2090</div> 2091<!-- Row 2: /image/1222â1257, duplicated for loop --> 2092 2093<div class="impr2-row impr2-row--2"> 2094<div class="impr2-item"><img alt="" src="/image/1222" /></div> 2095 2096<div class="impr2-item"><img alt="" src="/image/1223" /></div> 2097 2098<div class="impr2-item"><img alt="" src="/image/1224" /></div> 2099 2100<div class="impr2-item"><img alt="" src="/image/1225" /></div> 2101 2102<div class="impr2-item"><img alt="" src="/image/1226" /></div> 2103 2104<div class="impr2-item"><img alt="" src="/image/1227" /></div> 2105 2106<div class="impr2-item"><img alt="" src="/image/1228" /></div> 2107 2108<div class="impr2-item"><img alt="" src="/image/1229" /></div> 2109 2110<div class="impr2-item"><img alt="" src="/image/1230" /></div> 2111 2112<div class="impr2-item"><img alt="" src="/image/1231" /></div> 2113 2114<div class="impr2-item"><img alt="" src="/image/1232" /></div> 2115 2116<div class="impr2-item"><img alt="" src="/image/1233" /></div> 2117 2118<div class="impr2-item"><img alt="" src="/image/1234" /></div> 2119 2120<div class="impr2-item"><img alt="" src="/image/1235" /></div> 2121 2122<div class="impr2-item"><img alt="" src="/image/1236" /></div> 2123 2124<div class="impr2-item"><img alt="" src="/image/1237" /></div> 2125 2126<div class="impr2-item"><img alt="" src="/image/1238" /></div> 2127 2128<div class="impr2-item"><img alt="" src="/image/1239" /></div> 2129 2130<div class="impr2-item"><img alt="" src="/image/1240" /></div> 2131 2132<div class="impr2-item"><img alt="" src="/image/1241" /></div> 2133 2134<div class="impr2-item"><img alt="" src="/image/1242" /></div> 2135 2136<div class="impr2-item"><img alt="" src="/image/1243" /></div> 2137 2138<div class="impr2-item"><img alt="" src="/image/1244" /></div> 2139 2140<div class="impr2-item"><img alt="" src="/image/1245" /></div> 2141 2142<div class="impr2-item"><img alt="" src="/image/1246" /></div> 2143 2144<div class="impr2-item"><img alt="" src="/image/1247" /></div> 2145 2146<div class="impr2-item"><img alt="" src="/image/1248" /></div> 2147 2148<div class="impr2-item"><img alt="" src="/image/1249" /></div> 2149 2150<div class="impr2-item"><img alt="" src="/image/1250" /></div> 2151 2152<div class="impr2-item"><img alt="" src="/image/1251" /></div> 2153 2154<div class="impr2-item"><img alt="" src="/image/1252" /></div> 2155 2156<div class="impr2-item"><img alt="" src="/image/1253" /></div> 2157 2158<div class="impr2-item"><img alt="" src="/image/1254" /></div> 2159 2160<div class="impr2-item"><img alt="" src="/image/1255" /></div> 2161 2162<div class="impr2-item"><img alt="" src="/imag
2162e/1256" /></div> 2163 2164<div class="impr2-item"><img alt="" src="/image/1257" /></div> 2165<!-- duplicate --> 2166 2167<div class="impr2-item"><img alt="" src="/image/1222" /></div> 2168 2169<div class="impr2-item"><img alt="" src="/image/1223" /></div> 2170 2171<div class="impr2-item"><img alt="" src="/image/1224" /></div> 2172 2173<div class="impr2-item"><img alt="" src="/image/1225" /></div> 2174 2175<div class="impr2-item"><img alt="" src="/image/1226" /></div> 2176 2177<div class="impr2-item"><img alt="" src="/image/1227" /></div> 2178 2179<div class="impr2-item"><img alt="" src="/image/1228" /></div> 2180 2181<div class="impr2-item"><img alt="" src="/image/1229" /></div> 2182 2183<div class="impr2-item"><img alt="" src="/image/1230" /></div> 2184 2185<div class="impr2-item"><img alt="" src="/image/1231" /></div> 2186 2187<div class="impr2-item"><img alt="" src="/image/1232" /></div> 2188 2189<div class="impr2-item"><img alt="" src="/image/1233" /></div> 2190 2191<div class="impr2-item"><img alt="" src="/image/1234" /></div> 2192 2193<div class="impr2-item"><img alt="" src="/image/1235" /></div> 2194 2195<div class="impr2-item"><img alt="" src="/image/1236" /></div> 2196 2197<div class="impr2-item"><img alt="" src="/image/1237" /></div> 2198 2199<div class="impr2-item"><img alt="" src="/image/1238" /></div> 2200 2201<div class="impr2-item"><img alt="" src="/image/1239" /></div> 2202 2203<div class="impr2-item"><img alt="" src="/image/1240" /></div> 2204 2205<div class="impr2-item"><img alt="" src="/image/1241" /></div> 2206 2207<div class="impr2-item"><img alt="" src="/image/1242" /></div> 2208 2209<div class="impr2-item"><img alt="" src="/image/1243" /></div> 2210 2211<div class="impr2-item"><img alt="" src="/image/1244" /></div> 2212 2213<div class="impr2-item"><img alt="" src="/image/1245" /></div> 2214 2215<div class="impr2-item"><img alt="" src="/image/1246" /></div> 2216 2217<div class="impr2-item"><img alt="" src="/image/1247" /></div> 2218 2219<div class="impr2-item"><img alt="" src="/image/1248" /></div> 2220 2221<div class="impr2-item"><img alt="" src="/image/1249" /></div> 2222 2223<div class="impr2-item"><img alt="" src="/image/1250" /></div> 2224 2225<div class="impr2-item"><img alt="" src="/image/1251" /></div> 2226 2227<div class="impr2-item"><img alt="" src="/image/1252" /></div> 2228 2229<div class="impr2-item"><img alt="" src="/image/1253" /></div> 2230 2231<div class="impr2-item"><img alt="" src="/image/1254" /></div> 2232 2233<div class="impr2-item"><img alt="" src="/image/1255" /></div> 2234 2235<div class="impr2-item"><img alt="" src="/image/1256" /></div> 2236 2237<div class="impr2-item"><img alt="" src="/image/1257" /></div> 2238</div> 2239</div> 2240</section> 2241 2242<section class="exccom-section"> 2243<div class="exccom-banner"> 2244<div class="exccom-banner__content"> 2245<div class="exccom-banner__left"><span class="exccom-main__eyebrow">Excellence Community</span> 2246 2247<h2 class="exccom-main__heading">Become Part of the Excellence Community.</h2> 2248 2249<p class="exccom-main__desc">Our Excellence Program classifies graduates in Bronze, Silver and Gold — a global quality standard for recruiting and professional development.</p> 2250 2251<a class="exccom-main__cta" href="/en/excellence-community/">Learn more <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"> 2252 <path d="M5 12h14"/> 2253 <path d="m12 5 7 7-7 7"/> 2254 </svg></a> 2255</div> 2256 2257<div class="exccom-banner__right"> 2258<div class="exccom-benefit__heading">Network with Lean leaders worldwide</div> 2259 2260<div class="exccom-benefit__desc">Best practices, tools and whitepapers — straight from the community.</div> 2261</div> 2262</div> 2263</div> 2264</section> 2265 2266<section class="dlst-section"> 2267<div class="dlst-tiles"> 2268<div class="dlst-tile"><img alt="Coaching & Consulting" class="manifest-tile__icon" src="/image/676" style="height: 82px; width: 150px;" /> 2269<div> 2270<div class="dlst-tile__name">OPEX Roll-out</div> 2271 2272<p class="dlst-tile__desc">Roll-out and optimization of Operational Excellence</p> 2273 2274<a class="dlst-tile__cta" href="/en/opex-roll-out">Read more <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"> 2275 <path d="M5 12h14"/> 2276 <path d="m12 5 7 7-7 7"/> 2277 </svg></a> 2278</div> 2279</div> 2280 2281<div class="dlst-tile"><img alt="Training & Seminars" class="manifest-tile__icon" src="/image/672" /> 2282<div> 2283<div class="dlst-tile__name">Talent Development</div> 2284 2285<p class="dlst-tile__desc">Discover your greatest resource</p> 2286 2287<a class="dlst-tile__cta" href="/en/talent-development">Read more <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"> 2288 <path d="M5 12h14"/> 2289 <path d="m12 5 7 7-7 7"/> 2290 </svg></a> 2291</div> 2292</div> 2293 2294<div class="dlst-tile"><img alt="Process Consulting" class="manifest-tile__icon" src="/image/675" /> 2295<div> 2296<div class="dlst-tile__name">Benchmarking</div> 2297 2298<p class="dlst-tile__desc">Work on the right levers</p> 2299 2300<a class="dlst-tile__cta" href="/en/benchmarking">Read more <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"> 2301 <path d="M5 12h14"/> 2302 <path d="m12 5 7 7-7 7"/> 2303 </svg></a> 2304</div> 2305</div> 2306</div> 2307</section> 2308 2309<section class="prod-section"> 2310<div class="prod-bento"> 2311<a class="prod-card prod-alphaditab" href="/en/products/tools-templates/tools"><img alt="" class="prod-card__bg-img" src="/image/1186" style="inset:auto;width:90%;max-width:460px;height:auto;bottom:0;right:-5%;top:auto;left:auto;object-fit:contain;" /> 2312<div><span class="prod-card__label">Resources</span> 2313 2314<div class="prod-card__name">Tools</div> 2315 2316<p class="prod-card__desc">Templates, checklists and tools for Lean Six Sigma projects — ready to use immediately.</p> 2317</div> 2318<svg class="prod-card__arrow" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"> 2319 <path d="M5 12h14"/> 2320 <path d="m12 5 7 7-7 7"/> 2321 </svg></a> 2322 2323<a class="prod-card prod-tools" href="/en/alphadi-tab"><img alt="" class="prod-card__bg-img" src="/image/1276" style="inset:auto;width:58%;max-width:600px;height:auto;bottom:0;right:0;top:auto;left:auto;object-fit:contain;" /> 2324<div><span class="prod-card__label">Software</span> 2325 2326<div class="prod-card__name">AlphadiTab</div> 2327 2328<p class="prod-card__desc">AlphadiTab is a software for solving complex problems that guides you along the DMAIC roadmap — from definition through analysis to sustainable improvement.</p> 2329</div> 2330<svg class="prod-card__arrow" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"> 2331 <path d="M5 12h14"/> 2332 <path d="m12 5 7 7-7 7"/> 2333 </svg></a> 2334 2335<a class="prod-card prod-weiterbildung" href="/en/workshops"><img alt="" class="prod-card__bg-img" src="/image/681" style="transform:scale(1.18) translateY(5%);transform-origin:center;" /> 2336<div><span class="prod-card__label">Learning</span> 2337 2338<div class="prod-card__name">Further Education</div> 2339</div> 2340<svg class="prod-card__arrow" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"> 2341 <path d="M5 12h14"/> 2342 <path d="m12 5 7 7-7 7"/> 2343 </svg></a> 2344 2345<a class="prod-card prod-buecher" href="/en/products/buecher"><img alt="" class="prod-card__bg-img" src="/image/682" style="inset:auto;width:85%;max-width:430px;height:auto;bottom:-18%;right:-8%;top:auto;left:auto;object-fit:contain;transform:rotate(5deg);transform-origin:bottom right;" /> 2346<div><span class="prod-card__label">Books</span> 2347 2348<div class="prod-card__name">Books</div> 2349</div> 2350<svg class="prod-card__arrow" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"> 2351 <path d="M5 12h14"/> 2352 <path d="m12 5 7 7-7 7"/> 2353 </svg></a> 2354</div> 2355</section> 2356 2357<div class="trust-band"> 2358<div class="trust-band__label"><span class="eyebrow" style="display:block;text-align:center;margin-bottom:0.5rem;">Our Partners</span> 2359 2360<h2 class="trust-band__text">Trusted by leading companies</h2> 2361</div> 2362 2363<div class="logo-track-wrap"> 2364<div class="logo-track" id="logoTrack"><img alt="Partner Logo" class="logo-item" src="/image/1258" /> <img alt="Partner Logo" class="logo-item" src="/image/1259" /> <img alt="Partner Logo" class="logo-item" src="/image/1260" /> <img alt="Partner Logo" class="logo-item" src="/image/1261" /> <img alt="Partner Logo" class="logo-item" src="/image/1262" /> <img alt="Partner Logo" class="logo-item" src="/image/1263" /> <img alt="Partner Logo" class="logo-item" src="/image/1264" /> <img alt="Partner Logo" class="logo-item" src="/image/1265" /> <img alt="Partner Logo" class="logo-item" src="/image/1266" /> <img alt="Partner Logo" class="logo-item" src="/image/1267" /> <img alt="Partner Logo" class="logo-item" src="/image/1268" /> <img alt="Partner Logo" class="logo-item" src="/image/1269" /> <img alt="Partner Logo" class="logo-item" src="/image/1270" /> <img alt="Partner Logo" class="logo-item" src="/image/1271" /> <img alt="Partner Logo" class="logo-item" src="/image/1272" /> <img alt="Partner Logo" class="logo-item" src="/image/1273" /> <img alt="Partner Logo" class="logo-item" src="/image/1274" /> <img alt="Partner Logo" class="logo-item" src="/image/1275" /></div> 2365</div> 2366</div>
2367<script> 2368 var logoTrack = document.getElementById('logoTrack'); 2369 if (logoTrack) { 2370 Array.prototype.slice.call(logoTrack.children).forEach(function(node) { 2371 logoTrack.appendChild(node.cloneNode(true)); 2372 }); 2373 } 2374</script>
2374 2375 2376 2377 2378 <!-- âââââââ FOOTER âââââââ --> 2379<meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"> 2380<title></title> 2381<link href="https://api.fontshare.com" rel="preconnect" /> 2382<link href="https://fonts.googleapis.com" rel="preconnect" /> 2383<link href="https://api.fontshare.com/v2/css?f[]=satoshi@300,400,500,600,700,900&display=swap" rel="stylesheet" /> 2384<link href="https://fonts.googleapis.com/css2?family=Lexend:wght@300;400;500;600;700&display=swap" rel="stylesheet" /> 2385<style type="text/css">*, *::before, *::after { 2386 box-sizing: border-box; 2387 margin: 0; 2388 padding: 0; 2389 } 2390 html { 2391 font-size: 16px; 2392 } 2393 body { 2394 font-family: 'Satoshi', system-ui, sans-serif; 2395 -webkit-font-smoothing: antialiased; 2396 } 2397 a { 2398 color: inherit; 2399 text-decoration: none; 2400 } 2401 img { 2402 max-width: 100%; 2403 display: block; 2404 } 2405 .footer-v2 { 2406 background: #111111; 2407 position: relative; 2408 overflow: hidden; 2409 } 2410 .footer-v2::before { 2411 content: ''; 2412 position: absolute; 2413 top: 0; 2414 left: 0; 2415 right: 0; 2416 height: 3px; 2417 background: linear-gradient(90deg, #111111, #EC841F, #1a0a00); 2418 } 2419 .footer-v2::after { 2420 content: ''; 2421 position: absolute; 2422 top: -120px; 2423 left: -80px; 2424 width: 500px; 2425 height: 500px; 2426 border-radius: 50%; 2427 background: radial-gradient(circle, rgba(236,132,31,.07) 0%, transparent 65%); 2428 pointer-events: none; 2429 } 2430 .footer-v2__inner { 2431 max-width: 1280px; 2432 margin: 0 auto; 2433 padding: 4rem 3rem 0; 2434 } 2435 @media (max-width: 767px) { 2436 .footer-v2__inner { 2437 padding: 3rem 1.5rem 0; 2438 } 2439 } 2440 .footer-v2__top { 2441 display: grid; 2442 grid-template-columns: 1.6fr 2.4fr; 2443 gap: 4rem; 2444 padding-bottom: 3rem; 2445 border-bottom: 1px solid rgba(255,255,255,.08); 2446 } 2447 @media (max-width: 767px) { 2448 .footer-v2__top { 2449 grid-template-columns: 1fr; 2450 gap: 2.5rem; 2451 } 2452 } 2453 .footer-v2__brand img { 2454 height: 56px; 2455 width: auto; 2456 margin-bottom: 2rem; 2457 filter: none !important; 2458 /* Prevents browser dark mode from inverting the white logo to black */ 2459 forced-color-adjust: none; 2460 /* Exclude logo from automatic color adjustment (Dark Mode/High Contrast) */ 2461 } 2462 .footer-v2__claim { 2463 font-family: 'Satoshi', system-ui, sans-serif; 2464 font-size: clamp(1.15rem, 1.8vw, 1.45rem); 2465 font-weight: 700; 2466 color: #ffffff; 2467 line-height: 1.35; 2468 letter-spacing: -0.02em; 2469 margin-bottom: 1.5rem; 2470 max-width: 280px; 2471 } 2472 .footer-v2__claim em { 2473 font-style: normal; 2474 color: #EC841F; 2475 } 2476 .footer-v2__contact { 2477 display: flex; 2478 flex-direction: column; 2479 gap: 0.4rem; 2480 } 2481 .footer-v2__contact a { 2482 display: flex;
2483 align-items: center; 2484 gap: 0.5rem; 2485 font-family: 'Satoshi', system-ui, sans-serif; 2486 font-size: 0.78rem; 2487 color: rgba(255,255,255,.88); 2488 text-decoration: none; 2489 transition: color 0.15s; 2490 font-weight: 400; 2491 letter-spacing: 0.8px; 2492 } 2493 .footer-v2__contact a:hover { 2494 color: #EC841F; 2495 } 2496 .footer-v2__contact svg { 2497 flex-shrink: 0; 2498 opacity: .6; 2499 } 2500 .footer-v2__links { 2501 display: grid; 2502 grid-template-columns: repeat(3, 1fr); 2503 gap: 2rem; 2504 padding-top: 0.25rem; 2505 } 2506 @media (max-width: 479px) { 2507 .footer-v2__links { 2508 grid-template-columns: repeat(2, 1fr); 2509 } 2510 } 2511 .footer-v2__col h4 { 2512 font-family: 'Satoshi', system-ui, sans-serif; 2513 font-size: 0.65rem; 2514 font-weight: 700; 2515 letter-spacing: 0.14em; 2516 text-transform: uppercase; 2517 color: #ffffff; 2518 margin-bottom: 1rem; 2519 } 2520 .footer-v2__col a { 2521 display: block; 2522 font-family: 'Satoshi', system-ui, sans-serif; 2523 font-size: 0.78rem; 2524 color: rgba(255,255,255,.88); 2525 margin-bottom: 0.5rem; 2526 text-decoration: none; 2527 transition: color 0.15s, padding-left 0.15s; 2528 font-weight: 300; 2529 letter-spacing: 0.8px; 2530 } 2531 .footer-v2__col a:hover { 2532 color: #fff; 2533 padding-left: 3px; 2534 } 2535 .footer-v2__bottom { 2536 max-width: 1280px; 2537 margin: 0 auto; 2538 padding: 1.25rem 3rem; 2539 border-top: 1px solid rgba(255,255,255,.14); 2540 display: flex; 2541 flex-wrap: wrap; 2542 justify-content: space-between; 2543 align-items: center; 2544 gap: 0.75rem; 2545 } 2546 @media (max-width: 767px) { 2547 .footer-v2__bottom { 2548 padding: 1.25rem 1.5rem; 2549 flex-direction: column; 2550 align-items: flex-start; 2551 } 2552 } 2553 .footer-v2__copy { 2554 font-family: 'Satoshi', system-ui, sans-serif; 2555 font-size: 0.75rem; 2556 color: rgba(255,255,255,.88); 2557 } 2558 .footer-v2__socials { 2559 display: flex;
2560 align-items: center; 2561 gap: 0.5rem; 2562 } 2563 .footer-v2__social { 2564 width: 36px; 2565 height: 36px; 2566 display: flex; 2567 align-items: center; 2568 justify-content: center; 2569 border: 1px solid rgba(255,255,255,.5); 2570 border-radius: 8px; 2571 color: rgba(255,255,255,.9); 2572 text-decoration: none; 2573 transition: border-color 0.15s, color 0.15s, background 0.15s; 2574 } 2575 .footer-v2__social:hover { 2576 border-color: #EC841F; 2577 color: #EC841F; 2578 background: rgba(236,132,31,.08); 2579 } 2580 .footer-v2__social svg { 2581 width: 14px; 2582 height: 14px; 2583 } 2584</style> 2585<footer class="footer-v2"> 2586<div class="footer-v2__inner"> 2587<div class="footer-v2__top"> 2588<div class="footer-v2__brand"> 2589<a href="/"><img alt="Alphadi" src="/image/222" /></a> 2590 2591<p class="footer-v2__claim">We focus on<br /> 2592<em>people</em>.</p> 2593 2594<div class="footer-v2__contact"> 2595<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"> 2596 <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"/> 2597 </svg>+49 561 949 189 0</a> 2598 2599<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"> 2600 <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"/> 2601 <polyline points="22,6 12,13 2,6"/> 2602 </svg>[email protected]</a> 2603</div> 2604</div> 2605 2606<div class="footer-v2__links"> 2607<div class="footer-v2__col"> 2608<h4>Programs</h4> 2609 2610<a href="/en/workshops">Workshops & Seminars</a> 2611 2612<a href="/en/events">Events</a> 2613 2614<a href="/en/assessments">Assessments</a> 2615 2616<a href="/en/support">Software Support & Help</a> 2617</div> 2618 2619<div class="footer-v2__col"> 2620<h4>Company</h4> 2621 2622<a href="/en/ueber-uns">About us</a> 2623 2624<a href="/en/contact">Contact</a> 2625 2626<a href="/en/career">Career</a> 2627</div> 2628 2629<div class="footer-v2__col"> 2630<h4>Legal</h4> 2631 2632<a href="/en/privacy-policy">Privacy Policy</a> 2633 2634<a href="/en/t&c">Terms and Conditions</a> 2635 2636<a href="/en/imprint">Imprint</a> 2637 2638<a href="/en/cancellation-policy">Revoke Contract Here</a> 2639 2640<a href="/en/shipping-payment-terms">Shipping & Payment</a> 2641</div> 2642</div> 2643</div> 2644 2645<div class="footer-v2__bottom"><span class="footer-v2__copy">© 2026 Alphadi Deutschland GmbH. All rights reserved.</span> 2646 2647<div class="footer-v2__socials"> 2648<a aria-label="YouTube" class="footer-v2__social" href="#"><svg viewBox="0 0 24 24" fill="currentColor" width="16" height="16"> 2649 <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"/> 2650 </svg></a> 2651 2652<a aria-label="LinkedIn" class="footer-v2__social" href="#"><svg viewBox="0 0 24 24" fill="currentColor" width="16" height="16"> 2653 <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"/> 2654 </svg></a> 2655</div> 2656</div> 2657</div> 2658</footer> 2659 2660
2660<script> 2661 // Shared price formatter â mirrors DecimalUtils.PriceDisplay (German format, e.g. "6.600,00 â¬"). 2662 // Used by every client-side price render (cart drawer, cart page, checkout, product options). 2663 window.formatPrice = function (value, symbol) { 2664 var n = Number(value); 2665 if (!isFinite(n)) { n = 0; } 2666 var number = n.toLocaleString('de-DE', { minimumFractionDigits: 2, maximumFractionDigits: 2 }); 2667 return number + ' ' + (symbol || 'â¬'); 2668 }; 2669 </script>
2669 2670
2670<script src="/bundles/hp-scripts.min.js?v=ZHApbpWBMcSvjokQcwPZYptpuVDzcPqCftH9nsYyTTE"></script>
2670 2671
2671<script src="/js/cart-sync.js?v=9IsathfVPUw6nubjgrQKNjXkyoTVZ-DBaj0qJNKNn8w"></script>
2671 2672 2673 <!-- KaTeX: render LaTeX math anywhere in the page content (delimiters \( \), \[ \], $$ $$) --> 2674
2674<script src="/lib/katex/katex.min.js?v=3ISyluw-iE3gkxWPdg_Z1Ftser5YtTgVV_ThOPRqWK4"></script>
2674 2675
2675<script src="/lib/katex/contrib/auto-render.min.js?v=nLjaz8CGwpZsnsS6VPSi3EO3y-KzPOwaJ0PYhsf7R6c"></script>
2675 2676
2676<script> 2677 2678 2679 (function () { 2680 function renderMath() { 2681 if (typeof renderMathInElement !== 'function') { return; } 2682 renderMathInElement(document.body, { 2683 delimiters: [ 2684 { left: '$$', right: '$$', display: true }, 2685 { left: '\\[', right: '\\]', display: true }, 2686 { left: '\\(', right: '\\)', display: false } 2687 ], 2688 throwOnError: false, 2689 ignoredTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code'] 2690 }); 2691 } 2692 2693 if (document.readyState === 'loading') { 2694 document.addEventListener('DOMContentLoaded', renderMath); 2695 } else { 2696 renderMath(); 2697 } 2698 })(); 2699 </script>
2699 2700 2701 <!-- Topbar user menu toggle --> 2702
2702<script> 2703 (function () { 2704 var userMenu = document.getElementById('userMenu'); 2705 var userMenuBtn = document.getElementById('userMenuBtn'); 2706 if (userMenu && userMenuBtn) { 2707 userMenuBtn.addEventListener('click', function (e) { 2708 e.stopPropagation(); 2709 userMenu.classList.toggle('is-open'); 2710 }); 2711 document.addEventListener('click', function () { 2712 userMenu.classList.remove('is-open'); 2713 }); 2714 userMenu.addEventListener('click', function (e) { e.stopPropagation(); }); 2715 } 2716 // Note: lang-switch toggles are already handled globally by hp-scripts.js 2717 })(); 2718 </script>
2718 2719 2720 <!-- Topbar account (signed out) dropdown toggle --> 2721
2721<script> 2722 (function () { 2723 var accountMenu = document.getElementById('accountMenu'); 2724 var accountMenuBtn = document.getElementById('accountMenuBtn'); 2725 if (accountMenu && accountMenuBtn) { 2726 accountMenuBtn.addEventListener('click', function (e) { 2727 e.stopPropagation(); 2728 var open = accountMenu.classList.toggle('is-open'); 2729 accountMenuBtn.setAttribute('aria-expanded', open ? 'true' : 'false'); 2730 }); 2731 document.addEventListener('click', function () { 2732 if (accountMenu.classList.contains('is-open')) { 2733 accountMenu.classList.remove('is-open'); 2734 accountMenuBtn.setAttribute('aria-expanded', 'false'); 2735 } 2736 }); 2737 accountMenu.addEventListener('click', function (e) { e.stopPropagation(); }); 2738 } 2739 })(); 2740 </script>
2740 2741 2742 2743 2744 2745 <!-- Cart FAB (mobile) --> 2746 <button class="cart-fab cart-btn" id="cartFab" aria-label="Cart"> 2747 <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> 2748 <span class="cart-fab__badge cart-badge">0</span> 2749 </button> 2750 2751 <!-- Cart Overlay + Drawer --> 2752 <div class="cart-overlay" id="cartOverlay"></div> 2753 <div class="cart-drawer" id="cartDrawer" 2754 data-label-empty="Your cart is empty." 2755 data-label-remove="Remove" 2756 data-label-order="Order now" 2757 data-label-continue="Continue shopping" 2758 data-label-unit="unit" 2759 data-label-required="This option is required."> 2760 <div class="cart-drawer__head"> 2761 <span class="cart-drawer__title">Cart</span> 2762 <button class="cart-drawer__close" id="cartClose">✕</button> 2763 </div> 2764 <div class="cart-drawer__notice" id="cartNotice" style="display:none;padding:0.9rem 1.1rem 0;" 2765 data-msg-title="Your cart was updated" 2766 data-msg-removed="{name} is no longer available and was removed." 2767 data-msg-repriced="Price of {name} changed to {price}."></div> 2768 <div class="cart-drawer__body" id="cartBody"></div> 2769 <div class="cart-drawer__foot" id="cartFoot" style="display:none;"> 2770 <div class="cart-subtotal"> 2771 <span class="cart-subtotal__label">Total</span> 2772 <span class="cart-subtotal__amount" id="cartTotal">0,00 €</span> 2773 </div> 2774 <a href="/en/cart" class="btn btn--primary btn--lg" style="width:100%;justify-content:center;">View cart</a> 2775 <button class="cart-continue" id="cartContinue">Continue shopping</button> 2776 </div> 2777 </div> 2778 2779 2780<div class="modal-overlay" id="bookingRequestModal"> 2781 <div class="modal" role="dialog" aria-modal="true" aria-labelledby="bookingRequestModalTitle"> 2782 <button type="button" class="modal__close" data-booking-request-close aria-label="Close">×</button> 2783 <div class="modal__title" id="bookingRequestModalTitle">Reserve a seat</div> 2784 <p style="font-family:var(--f-ui);font-size:0.875rem;color:var(--c-mid);margin-bottom:1.5rem;"> 2785 <strong id="bookingRequestProduct"></strong> 2786 <span id="bookingRequestFormat"></span> 2787 </p> 2788 <form id="bookingRequestForm" novalidate> 2789 <div class="form-group"> 2790 <label class="form-label">First name *</label> 2791 <input type="text" class="form-input" name="firstName" required /> 2792 <div class="field-error"></div> 2793 </div> 2794 <div class="form-group"> 2795 <label class="form-label">Last name *</label> 2796 <input type="text" class="form-input" name="lastName" required /> 2797 <div class="field-error"></div> 2798 </div> 2799 <div class="form-group"> 2800 <label class="form-label">Company *</label> 2801 <input type="text" class="form-input" name="company" required /> 2802 <div class="field-error"></div> 2803 </div> 2804 <div class="form-group"> 2805 <label class="form-label">Email *</label> 2806 <input type="email" class="form-input" name="email" required /> 2807 <div class="field-error"></div> 2808 </div> 2809 <div class="form-group"> 2810 <label class="form-label">Phone *</label> 2811 <input type="tel" class="form-input" name="phone" required /> 2812 <div class="field-error"></div> 2813 </div> 2814 <div class="form-group"> 2815 <label class="form-label">Notes / special requirements</label> 2816 <textarea class="form-textarea" name="notes" rows="3"></textarea> 2817 </div> 2818 <div class="checkout-check-field"> 2819 <label class="checkout-check-label"> 2820 <input type="checkbox" id="br-terms" name="terms" />
2821 <span> 2822 I have read the 2823 <a href="/en/t&c" target="_blank" rel="noopener">Terms & Conditions</a> 2824 and agree to them. <span class="req">*</span> 2825 </span> 2826 </label> 2827 <span class="field-error fw-bold text-danger" id="brTermsError"></span> 2828 </div> 2829 <div class="checkout-check-field"> 2830 <label class="checkout-check-label"> 2831 <input type="checkbox" id="br-privacy" name="privacy" /> 2832 <span> 2833 I have read the 2834 <a href="/en/privacy-policy" target="_blank" rel="noopener">Privacy Policy</a> 2835 and agree that my data will be processed. <span class="req">*</span> 2836 </span> 2837 </label> 2838 <span class="field-error fw-bold text-danger" id="brPrivacyError"></span> 2839 </div> 2840 2841 <div class="field-error" id="bookingRequestFormError" style="margin-bottom:.75rem;"></div> 2842 <button type="submit" class="btn btn--primary" style="width:100%;justify-content:center;"> 2843 Send booking request 2844 </button> 2845 </form> 2846 </div> 2847</div> 2848
2849<script> 2850(function () { 2851 'use strict'; 2852 2853 var overlay = document.getElementById('bookingRequestModal'); 2854 var form = document.getElementById('bookingRequestForm'); 2855 if (!overlay || !form) { return; } 2856 2857 var productEl = document.getElementById('bookingRequestProduct'); 2858 var formatEl = document.getElementById('bookingRequestFormat'); 2859 var formError = document.getElementById('bookingRequestFormError'); 2860 var pending = null; 2861 var submitting = false; 2862 2863 var POST_URL = '/en/cart/submit-booking-request'; 2864 var MSG_REQUIRED = "This field is required."; 2865 var MSG_EMAIL = "Please enter a valid e-mail address."; 2866 var MSG_ERROR = "An error occurred. Please try again."; 2867 var MSG_TERMS = "You must agree to the Terms & Conditions to continue."; 2868 var MSG_PRIVACY = "You must agree to the Privacy Policy to continue."; 2869 2870 function isEmail(v) { return /^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/.test((v || '').trim()); } 2871 2872 function openModal(data) { 2873 pending = data; 2874 productEl.textContent = data.name || ''; 2875 formatEl.innerHTML = data.format ? (' · ' + data.format) : ''; 2876 form.reset(); 2877 formError.textContent = ''; 2878 form.querySelectorAll('.is-invalid').forEach(function (el) { el.classList.remove('is-invalid'); }); 2879 form.querySelectorAll('.field-error').forEach(function (el) { el.textContent = ''; }); 2880 overlay.classList.add('is-open'); 2881 document.body.style.overflow = 'hidden'; 2882 setTimeout(function () { form.querySelector('[name=firstName]')?.focus(); }, 50); 2883 } 2884 2885 function closeModal() { 2886 overlay.classList.remove('is-open'); 2887 document.body.style.overflow = ''; 2888 pending = null; 2889 } 2890 2891 overlay.addEventListener('click', function (e) { 2892 if (e.target === overlay) { closeModal(); } 2893 }); 2894 overlay.querySelectorAll('[data-booking-request-close]').forEach(function (b) { 2895 b.addEventListener('click', closeModal); 2896 }); 2897 document.addEventListener('keydown', function (e) { 2898 if (e.key === 'Escape' && overlay.classList.contains('is-open')) { closeModal(); } 2899 }); 2900 2901 // Capture-phase interception so we beat both the cart booking modal and the global add-to-cart handler. 2902 document.addEventListener('click', function (e) { 2903 var btn = e.target.closest('[data-add-to-cart][data-cart-type]'); 2904 if (!btn) { return; } 2905 if (btn.dataset.onlyBooking !== 'true') { return; } // not an OnlyBooking appointment â let the cart flow run 2906 var type = btn.dataset.cartType; 2907 if (type !== 'training' && type !== 'event') { return; } 2908 if (btn.disabled) { return; } 2909 e.preventDefault(); 2910 e.stopImmediatePropagation(); 2911 openModal({ 2912 id: btn.dataset.addToCart, 2913 type: type, 2914 name: btn.dataset.cartName || btn.dataset.addToCart, 2915 format: btn.dataset.cartFormat || '', 2916 }); 2917 }, true); 2918 2919 function showErr(field, msg) { 2920 field.classList.add('is-invalid'); 2921 var s = field.parentElement.querySelector('.field-error'); 2922 if (s) { s.textContent = msg; } 2923 } 2924 function clearErr(field) { 2925 field.classList.remove('is-invalid'); 2926 var s = field.parentElement.querySelector('.field-error'); 2927 if (s) { s.textContent = ''; } 2928 } 2929 function validate(field) { 2930 var val = (field.value || '').trim(); 2931 if (field.hasAttribute('required') && !val) { showErr(field, MSG_REQUIRED); return false; } 2932 if (field.type === 'email' && val && !isEmail(val)) { showErr(field, MSG_EMAIL); return false; } 2933 clearErr(field); return true; 2934 } 2935 2936 form.querySelectorAll('input, textarea').forEach(function (f) { 2937 f.addEventListener('blur', function () { validate(f); }); 2938 f.addEventListener('input', function () { if (f.classList.contains('is-invalid')) { clearErr(f); } }); 2939 }); 2940 2941 form.addEventListener('submit', function (e) { 2942 e.preventDefault(); 2943 if (!pending || submitting) { return; } 2944 formError.textContent = ''; 2945 var ok = true; 2946 form.querySelectorAll('input[required], input[type=email]').forEach(function (f) { 2947 if (!validate(f)) { ok = false; } 2948 }); 2949 2950 var termsCb = document.getElementById('br-terms'); 2951 var termsErr = document.getElementById('brTermsError'); 2952 if (termsCb) { 2953 if (!termsCb.checked) { 2954 termsCb.classList.add('is-invalid'); 2955 if (termsErr) { termsErr.textContent = MSG_TERMS; } 2956 ok = false; 2957 } else { 2958 termsCb.classList.remove('is-invalid'); 2959 if (termsErr) { termsErr.textContent = ''; } 2960 } 2961 } 2962 2963 var privacyCb = document.getElementById('br-privacy'); 2964 var privacyErr = document.getElementById('brPrivacyError'); 2965 if (!privacyCb.checked) { 2966 privacyCb.classList.add('is-invalid'); 2967 if (privacyErr) { privacyErr.textContent = MSG_PRIVACY; } 2968 ok = false; 2969 } else { 2970 privacyCb.classList.remove('is-invalid'); 2971 if (privacyErr) { privacyErr.textContent = ''; } 2972 } 2973 2974 if (!ok) { return; } 2975 2976 var fd = new FormData(form); 2977 var payload = {
2978 id: pending.id, 2979 type: pending.type, 2980 firstName: (fd.get('firstName') || '').trim(), 2981 lastName: (fd.get('lastName') || '').trim(), 2982 company: (fd.get('company') || '').trim(), 2983 email: (fd.get('email') || '').trim(), 2984 phone: (fd.get('phone') || '').trim(), 2985 notes: (fd.get('notes') || '').trim(), 2986 }; 2987 2988 submitting = true; 2989 var submitBtn = form.querySelector('button[type=submit]'); 2990 if (submitBtn) { submitBtn.disabled = true; } 2991 2992 fetch(POST_URL, { 2993 method: 'POST', 2994 headers: { 'Content-Type': 'application/json' }, 2995 body: JSON.stringify(payload), 2996 }).then(function (res) { 2997 return res.ok ? res.json() : Promise.reject(res); 2998 }).then(function (data) { 2999 if (data && data.redirectUrl) { 3000 window.location = data.redirectUrl; 3001 } else { 3002 window.location.reload(); 3003 } 3004 }).catch(function () { 3005 submitting = false; 3006 if (submitBtn) { submitBtn.disabled = false; } 3007 formError.textContent = MSG_ERROR; 3008 }); 3009 }); 3010})(); 3011</script>
3011 3012 3013 3014<div class="modal-overlay" id="bookingModal"> 3015 <div class="modal" role="dialog" aria-modal="true" aria-labelledby="bookingModalTitle"> 3016 <button type="button" class="modal__close" data-booking-close aria-label="Close">×</button> 3017 <div class="modal__title" id="bookingModalTitle">Reserve a seat</div> 3018 <p style="font-family:var(--f-ui);font-size:0.875rem;color:var(--c-mid);margin-bottom:1.5rem;"> 3019 <strong id="bookingModalProduct"></strong> 3020 <span id="bookingModalFormat"></span> 3021 </p> 3022 <form id="bookingForm" novalidate> 3023 <div class="form-group"> 3024 <label class="form-label">First name *</label> 3025 <input type="text" class="form-input" name="participantFirstName" required /> 3026 <div class="field-error"></div> 3027 </div> 3028 <div class="form-group"> 3029 <label class="form-label">Last name *</label> 3030 <input type="text" class="form-input" name="participantLastName" required /> 3031 <div class="field-error"></div> 3032 </div> 3033 <div class="form-group"> 3034 <label class="form-label">Company *</label> 3035 <input type="text" class="form-input" name="participantCompany" required /> 3036 <div class="field-error"></div> 3037 </div> 3038 <div class="form-group"> 3039 <label class="form-label">Email *</label> 3040 <input type="email" class="form-input" name="participantEmail" required /> 3041 <div class="field-error"></div> 3042 </div> 3043 <div class="form-group"> 3044 <label class="form-label">Phone *</label> 3045 <input type="tel" class="form-input" name="participantPhone" required /> 3046 <div class="field-error"></div> 3047 </div> 3048 <div class="form-group"> 3049 <label class="form-label">Notes / special requirements</label> 3050 <textarea class="form-textarea" name="participantNotes" rows="3"></textarea> 3051 </div> 3052 <button type="submit" class="btn btn--primary" style="width:100%;justify-content:center;"> 3053 Add to cart 3054 </button> 3055 </form> 3056 </div> 3057</div> 3058
3059<script> 3060(function () { 3061 'use strict'; 3062 3063 var overlay = document.getElementById('bookingModal'); 3064 var form = document.getElementById('bookingForm'); 3065 if (!overlay || !form) { return; } 3066 3067 var productEl = document.getElementById('bookingModalProduct'); 3068 var formatEl = document.getElementById('bookingModalFormat'); 3069 var pending = null; 3070 3071 var MSG_REQUIRED = 'This field is required.'; 3072 var MSG_EMAIL = 'Please enter a valid e-mail address.'; 3073 3074 function isEmail(v) { return /^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/.test((v || '').trim()); } 3075 3076 function openModal(data) { 3077 pending = data; 3078 productEl.textContent = data.name || ''; 3079 formatEl.innerHTML = data.format ? (' · ' + data.format) : ''; 3080 form.reset(); 3081 form.querySelectorAll('.is-invalid').forEach(function (el) { el.classList.remove('is-invalid'); }); 3082 form.querySelectorAll('.field-error').forEach(function (el) { el.textContent = ''; }); 3083 overlay.classList.add('is-open'); 3084 document.body.style.overflow = 'hidden'; 3085 setTimeout(function () { form.querySelector('[name=participantFirstName]')?.focus(); }, 50); 3086 } 3087 3088 function closeModal() { 3089 overlay.classList.remove('is-open'); 3090 document.body.style.overflow = ''; 3091 pending = null; 3092 } 3093 3094 overlay.addEventListener('click', function (e) { 3095 if (e.target === overlay) { closeModal(); } 3096 }); 3097 overlay.querySelectorAll('[data-booking-close]').forEach(function (b) { 3098 b.addEventListener('click', closeModal); 3099 }); 3100 document.addEventListener('keydown', function (e) { 3101 if (e.key === 'Escape' && overlay.classList.contains('is-open')) { closeModal(); } 3102 }); 3103 3104 // Intercept add-to-cart clicks for trainings/events so we collect participant info first. 3105 document.addEventListener('click', function (e) { 3106 var btn = e.target.closest('[data-add-to-cart][data-cart-type]'); 3107 if (!btn) { return; } 3108 var type = btn.dataset.cartType; 3109 if (type !== 'training' && type !== 'event') { return; } 3110 // OnlyBooking appointments are handled by the separate "Send booking request" modal. 3111 if (btn.dataset.onlyBooking === 'true') { return; } 3112 if (btn.disabled) { return; } 3113 e.preventDefault(); 3114 e.stopImmediatePropagation(); 3115 openModal({ 3116 id: btn.dataset.addToCart, 3117 name: btn.dataset.cartName || btn.dataset.addToCart, 3118 price: btn.dataset.cartPrice || '0', 3119 format: btn.dataset.cartFormat || '', 3120 image: btn.dataset.cartImage || '', 3121 type: type, 3122 }); 3123 }, true); // capture phase so we beat the global add-to-cart handler 3124 3125 function showErr(field, msg) { 3126 field.classList.add('is-invalid'); 3127 var s = field.parentElement.querySelector('.field-error'); 3128 if (s) { s.textContent = msg; } 3129 } 3130 function clearErr(field) { 3131 field.classList.remove('is-invalid'); 3132 var s = field.parentElement.querySelector('.field-error'); 3133 if (s) { s.textContent = ''; } 3134 } 3135 function validate(field) { 3136 var val = (field.value || '').trim(); 3137 if (field.hasAttribute('required') && !val) { showErr(field, MSG_REQUIRED); return false; } 3138 if (field.type === 'email' && val && !isEmail(val)) { showErr(field, MSG_EMAIL); return false; } 3139 clearErr(field); return true; 3140 } 3141 3142 form.querySelectorAll('input, textarea').forEach(function (f) { 3143 f.addEventListener('blur', function () { validate(f); }); 3144 f.addEventListener('input', function () { if (f.classList.contains('is-invalid')) { clearErr(f); } }); 3145 }); 3146 3147 form.addEventListener('submit', function (e) { 3148 e.preventDefault(); 3149 if (!pending) { return; } 3150 var ok = true; 3151 form.querySelectorAll('input[required], input[type=email]').forEach(function (f) { 3152 if (!validate(f)) { ok = false; } 3153 }); 3154 if (!ok) { return; } 3155 3156 var fd = new FormData(form); 3157 var firstName = (fd.get('participantFirstName') || '').trim(); 3158 var lastName = (fd.get('participantLastName') || '').trim(); 3159 var participant = { 3160 firstName: firstName, 3161 lastName: lastName, 3162 // Combined name kept for the mini-cart display (and legacy back-compat). 3163 name: (firstName + ' ' + lastName).trim(), 3164 company: (fd.get('participantCompany') || '').trim(), 3165 email: (fd.get('participantEmail') || '').trim(), 3166 phone: (fd.get('participantPhone') || '').trim(), 3167 notes: (fd.get('participantNotes') || '').trim(), 3168 }; 3169 3170 if (typeof window.alphadiAddBookingToCart === 'function') { 3171 window.alphadiAddBookingToCart(pending, participant); 3172 } 3173 closeModal(); 3174 });
3175})(); 3176</script>
3176 3177 3178 3179<div class="modal-overlay" id="requestModal"> 3180 <div class="modal" role="dialog" aria-modal="true" aria-labelledby="requestModalTitle"> 3181 <button type="button" class="modal__close" data-request-close aria-label="Close">×</button> 3182 <div class="modal__title" id="requestModalTitle">Request</div> 3183 <p style="font-family:var(--f-ui);font-size:0.875rem;color:var(--c-mid);margin-bottom:1.5rem;"> 3184 <strong id="requestModalProduct"></strong> 3185 </p> 3186 <form id="requestForm" novalidate> 3187 <input type="hidden" name="itemName" id="requestItemName" /> 3188 <div class="form-group"> 3189 <label class="form-label">First name *</label> 3190 <input type="text" class="form-input" name="firstName" required /> 3191 <div class="field-error"></div> 3192 </div> 3193 <div class="form-group"> 3194 <label class="form-label">Last name *</label> 3195 <input type="text" class="form-input" name="lastName" required /> 3196 <div class="field-error"></div> 3197 </div> 3198 <div class="form-group"> 3199 <label class="form-label">Company</label> 3200 <input type="text" class="form-input" name="company" /> 3201 <div class="field-error"></div> 3202 </div> 3203 <div class="form-group"> 3204 <label class="form-label">Email *</label> 3205 <input type="email" class="form-input" name="email" required /> 3206 <div class="field-error"></div> 3207 </div> 3208 <div class="form-group"> 3209 <label class="form-label">Phone *</label> 3210 <input type="tel" class="form-input" name="phone" required /> 3211 <div class="field-error"></div> 3212 </div> 3213 <div class="form-group"> 3214 <label class="form-label">Message</label> 3215 <textarea class="form-textarea" name="message" rows="3"></textarea> 3216 </div> 3217 <div id="requestFormStatus" style="display:none;margin-bottom:1rem;font-family:var(--f-ui);font-size:0.875rem;"></div> 3218 3219 <div class="checkout-check-field"> 3220 <label class="checkout-check-label"> 3221 <input type="checkbox" id="req-terms" name="terms" /> 3222 <span> 3223 I have read the 3224 <a href="/en/t&c" target="_blank" rel="noopener">Terms & Conditions</a> 3225 and agree to them. <span class="req">*</span> 3226 </span> 3227 </label> 3228 <span class="field-error fw-bold text-danger" id="reqTermsError"></span> 3229 </div> 3230 <div class="checkout-check-field"> 3231 <label class="checkout-check-label"> 3232 <input type="checkbox" id="req-privacy" name="privacy" /> 3233 <span> 3234 I have read the 3235 <a href="/en/privacy-policy" target="_blank" rel="noopener">Privacy Policy</a> 3236 and agree that my data will be processed. <span class="req">*</span> 3237 </span> 3238 </label> 3239 <span class="field-error fw-bold text-danger" id="reqPrivacyError"></span> 3240 </div> 3241 3242 <button type="submit" class="btn btn--primary" style="width:100%;justify-content:center;"> 3243 Send request 3244 </button> 3245 </form> 3246 </div> 3247</div> 3248
3249<script> 3250(function () { 3251 'use strict'; 3252 3253 var overlay = document.getElementById('requestModal'); 3254 var form = document.getElementById('requestForm'); 3255 var productEl = document.getElementById('requestModalProduct'); 3256 var itemNameEl = document.getElementById('requestItemName'); 3257 var statusEl = document.getElementById('requestFormStatus'); 3258 if (!overlay || !form) { return; } 3259 3260 var MSG_REQUIRED = "This field is required."; 3261 var MSG_EMAIL = "Please enter a valid e-mail address."; 3262 var MSG_SUCCESS = "Your request has been sent. We will get back to you shortly."; 3263 var MSG_ERROR = "Something went wrong. Please try again."; 3264 var MSG_TERMS = "You must agree to the Terms & Conditions to continue."; 3265 var MSG_PRIVACY = "You must agree to the Privacy Policy to continue."; 3266 3267 function isEmail(v) { return /^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/.test((v || '').trim()); } 3268 3269 function openModal(name) { 3270 if (productEl) { productEl.textContent = name || ''; } 3271 if (itemNameEl) { itemNameEl.value = name || ''; } 3272 form.reset(); 3273 if (itemNameEl) { itemNameEl.value = name || ''; } 3274 form.querySelectorAll('.is-invalid').forEach(function (el) { el.classList.remove('is-invalid'); }); 3275 form.querySelectorAll('.field-error').forEach(function (el) { el.textContent = ''; }); 3276 statusEl.style.display = 'none'; 3277 statusEl.textContent = ''; 3278 overlay.classList.add('is-open'); 3279 document.body.style.overflow = 'hidden'; 3280 setTimeout(function () { form.querySelector('[name=firstName]')?.focus(); }, 50); 3281 } 3282 3283 function closeModal() { 3284 overlay.classList.remove('is-open'); 3285 document.body.style.overflow = ''; 3286 } 3287 3288 overlay.addEventListener('click', function (e) { 3289 if (e.target === overlay) { closeModal(); } 3290 }); 3291 overlay.querySelectorAll('[data-request-close]').forEach(function (b) { 3292 b.addEventListener('click', closeModal); 3293 }); 3294 document.addEventListener('keydown', function (e) { 3295 if (e.key === 'Escape' && overlay.classList.contains('is-open')) { closeModal(); } 3296 }); 3297 3298 document.addEventListener('click', function (e) { 3299 var btn = e.target.closest('[data-open-request-modal]'); 3300 if (!btn) { return; } 3301 e.preventDefault(); 3302 openModal(btn.dataset.openRequestModal || ''); 3303 }); 3304 3305 // Per-date "By invoice" toggle â expands the inline note ("Inquire here â¦") within the 3306 // booking box; the link inside it opens this modal. 3307 document.addEventListener('click', function (e) { 3308 var toggle = e.target.closest('[data-invoice-toggle]'); 3309 if (!toggle) { return; } 3310 var item = toggle.closest('[data-date-item]'); 3311 if (item) { item.classList.toggle('is-open'); } 3312 }); 3313 3314 function showErr(field, msg) { 3315 field.classList.add('is-invalid'); 3316 var s = field.parentElement.querySelector('.field-error'); 3317 if (s) { s.textContent = msg; } 3318 } 3319 function clearErr(field) { 3320 field.classList.remove('is-invalid'); 3321 var s = field.parentElement.querySelector('.field-error'); 3322 if (s) { s.textContent = ''; } 3323 } 3324 function validate(field) { 3325 var val = (field.value || '').trim(); 3326 if (field.hasAttribute('required') && !val) { showErr(field, MSG_REQUIRED); return false; } 3327 if (field.type === 'email' && val && !isEmail(val)) { showErr(field, MSG_EMAIL); return false; } 3328 clearErr(field); return true; 3329 } 3330 3331 form.querySelectorAll('input, textarea').forEach(function (f) { 3332 f.addEventListener('blur', function () { validate(f); }); 3333 f.addEventListener('input', function () { if (f.classList.contains('is-invalid')) { clearErr(f); } }); 3334 }); 3335 3336 form.addEventListener('submit', function (e) { 3337 e.preventDefault(); 3338 var ok = true; 3339 form.querySelectorAll('input[required], input[type=email]').forEach(function (f) { 3340 if (!validate(f)) { ok = false; } 3341 }); 3342 3343 var termsCb = document.getElementById('req-terms'); 3344 var termsErr = document.getElementById('reqTermsError'); 3345 if (termsCb) { 3346 if (!termsCb.checked) { 3347 termsCb.classList.add('is-invalid'); 3348 if (termsErr) { termsErr.textContent = MSG_TERMS; } 3349 ok = false; 3350 } else { 3351 termsCb.classList.remove('is-invalid'); 3352 if (termsErr) { termsErr.textContent = ''; } 3353 } 3354 } 3355 3356 var privacyCb = document.getElementById('req-privacy'); 3357 var privacyErr = document.getElementById('reqPrivacyError'); 3358 if (!privacyCb.checked) { 3359 privacyCb.classList.add('is-invalid'); 3360 if (privacyErr) { privacyErr.textContent = MSG_PRIVACY; } 3361 ok = false; 3362 } else { 3363 privacyCb.classList.remove('is-invalid'); 3364 if (privacyErr) { privacyErr.textContent = ''; } 3365 } 3366 3367 if (!ok) { return; } 3368 3369 var submitBtn = form.querySelector('[type=submit]'); 3370 submitBtn.disabled = true; 3371 3372 var fd = new FormData(form); 3373 var payload = { 3374 itemName: (fd.get('itemName') || '').trim(), 3375 firstName: (fd.get('firstName') || '').trim(), 3376 lastName: (fd.get('lastName') || '').trim(), 3377 company: (fd.get('company') || '').trim(), 3378 email: (fd.get('email') || '').trim(), 3379 phone: (fd.get('phone') || '').trim(), 3380 message: (fd.get('message') || '').trim(), 3381 }; 3382 3383 fetch('/Home/SendRequest', { 3384 method: 'POST', 3385 headers: { 'Content-Type': 'application/json' }, 3386 body: JSON.stringify(payload), 3387 }) 3388 .then(function (r) { return r.json(); }) 3389 .then(function (data) { 3390 if (data.success) { 3391 if (data.redirectUrl) { 3392 window.location.href = data.redirectUrl; 3393 } else { 3394 statusEl.style.display = 'block'; 3395 statusEl.style.color = 'var(--c-green, green)'; 3396 statusEl.textContent = MSG_SUCCESS; 3397 form.querySelectorAll('input, textarea, button[type=submit]').forEach(function (el) { el.disabled = true; }); 3398 } 3399 } else { 3400 statusEl.style.display = 'block'; 3401 statusEl.style.color = 'var(--c-error, red)'; 3402 statusEl.textContent = data.message || MSG_ERROR; 3403 submitBtn.disabled = false; 3404 } 3405 }) 3406 .catch(function () { 3407 statusEl.style.display = 'block'; 3408 statusEl.style.color = 'var(--c-error, red)'; 3409 statusEl.textContent = MSG_ERROR; 3410 submitBtn.disabled = false; 3411 }); 3412 });
3413})(); 3414</script>
3414 3415 3416 3417<div class="modal-overlay" id="productFeatureModal"> 3418 <div class="modal" role="dialog" aria-modal="true" aria-labelledby="productFeatureModalTitle" style="max-width:560px;"> 3419 <button type="button" class="modal__close" data-pf-close aria-label="Close">×</button> 3420 <div class="modal__title" id="productFeatureModalTitle">Choose options</div> 3421 <p style="font-family:var(--f-ui);font-size:0.875rem;color:var(--c-mid);margin-bottom:1.25rem;"> 3422 <strong id="pfModalProduct"></strong> 3423 </p> 3424 3425 <div id="pfModalBody"></div> 3426 3427 <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);"> 3428 <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> 3429 <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> 3430 </div> 3431 3432 <button type="button" id="pfModalSubmit" class="btn btn--primary" style="width:100%;justify-content:center;"> 3433 Add to cart 3434 </button> 3435 </div> 3436</div> 3437
3438<script> 3439(function () { 3440 'use strict'; 3441 3442 var overlay = document.getElementById('productFeatureModal'); 3443 if (!overlay) { return; } 3444 3445 var productEl = document.getElementById('pfModalProduct'); 3446 var bodyEl = document.getElementById('pfModalBody'); 3447 var totalEl = document.getElementById('pfModalTotal'); 3448 var submitBtn = document.getElementById('pfModalSubmit'); 3449 3450 var MSG_REQUIRED = 'Please select an option.'; 3451 3452 var pending = null; // { id, name, basePrice, image, shippableMap } 3453 var features = []; // [{ name, isRequired, options: [...] }] 3454 var selected = {}; // { [featureIndex]: { name, price, isShippable } } 3455 3456 function fmtPrice(v) { 3457 return window.formatPrice 3458 ? window.formatPrice(v) 3459 : '\u20AC' + (v < 0 ? '-' + Math.abs(v).toFixed(2) : v.toFixed(2)); 3460 } 3461 3462 // Build shippability lookup from raw DB JSON (PascalCase, all feature types). 3463 // Returns map[listFeatureIndex][optionIndex] = bool 3464 function buildShippableMap(rawJson) { 3465 var map = {}; 3466 try { 3467 var all = JSON.parse(rawJson || '[]'); 3468 var listIdx = 0; 3469 all.forEach(function (f) { 3470 if ((f.Type !== undefined ? f.Type : f.type) !== 0) { return; } 3471 var fi = listIdx++; 3472 map[fi] = {}; 3473 (f.Options || f.options || []).forEach(function (o, oi) { 3474 map[fi][oi] = !!(o.IsShippable || o.isShippable); 3475 }); 3476 }); 3477 } catch (e) {} 3478 return map; 3479 } 3480 3481 function recalcTotal() { 3482 var delta = 0; 3483 Object.keys(selected).forEach(function (k) { delta += selected[k].price; }); 3484 var total = Math.max(0, pending.basePrice + delta); 3485 totalEl.textContent = fmtPrice(total); 3486 return total; 3487 } 3488 3489 function renderBody() { 3490 selected = {}; 3491 if (!features.length) { bodyEl.innerHTML = ''; return; } 3492 var sm = (pending && pending.shippableMap) || {}; 3493 3494 bodyEl.innerHTML = features.map(function (f, fi) { 3495 var opts = (f.options || []).map(function (o, oi) { 3496 var deltaHtml = ''; 3497 if (o.price > 0) { deltaHtml = '<span class="product-fmt-card__delta">+' + fmtPrice(o.price) + '</span>'; } 3498 else if (o.price < 0) { deltaHtml = '<span class="product-fmt-card__delta product-fmt-card__delta--down">' + fmtPrice(o.price) + '</span>'; } 3499 3500 var badgeHtml = o.badgeText 3501 ? '<span class="product-fmt-card__badge">' + o.badgeText + '</span>' 3502 : ''; 3503 3504 var isShippable = !!(sm[fi] && sm[fi][oi]); 3505 var isDefault = !!o.isDefault; 3506 if (isDefault) { 3507 selected[fi] = { name: o.name, price: parseFloat(o.price) || 0, isShippable: isShippable }; 3508 } 3509 3510 return '<label class="product-fmt-card' + (isDefault ? ' is-selected' : '') + '"' + 3511 ' data-feature-index="' + fi + '"' + 3512 ' data-option-index="' + oi + '"' + 3513 ' data-option-name="' + (o.name || '').replace(/"/g, '"') + '"' + 3514 ' data-option-price="' + (parseFloat(o.price) || 0) + '"' + 3515 ' data-option-shippable="' + (isShippable ? 'true' : 'false') + '">' + 3516 '<input type="radio" name="pf-' + fi + '" ' + (isDefault ? 'checked' : '') + ' style="display:none">' + 3517 '<div class="product-fmt-card__name">' + (o.name || '') + ' ' + badgeHtml + '</div>' +
3518 (deltaHtml ? '<div class="product-fmt-card__meta">' + deltaHtml + '</div>' : '') + 3519 '</label>'; 3520 }).join(''); 3521 3522 return '<div class="product-fmt-group" data-feature-index="' + fi + '" data-feature-required="' + (f.isRequired ? 'true' : 'false') + '">' + 3523 '<div class="product-fmt-group__label">' + 3524 (f.name || '') + 3525 (f.isRequired ? '<span class="product-fmt-group__req" title="Required">*</span>' : '') + 3526 '</div>' + 3527 '<div class="product-fmt-grid">' + opts + '</div>' + 3528 '<div class="product-fmt-error"></div>' + 3529 '</div>'; 3530 }).join(''); 3531 } 3532 3533 function openModal(data, parsedFeatures, shippableMap) { 3534 pending = data; 3535 pending.shippableMap = shippableMap || {}; 3536 features = parsedFeatures || []; 3537 productEl.textContent = data.name || ''; 3538 renderBody(); 3539 recalcTotal(); 3540 overlay.classList.add('is-open'); 3541 document.body.style.overflow = 'hidden'; 3542 } 3543 3544 function closeModal() { 3545 overlay.classList.remove('is-open'); 3546 document.body.style.overflow = ''; 3547 pending = null; 3548 features = []; 3549 selected = {}; 3550 } 3551 3552 overlay.addEventListener('click', function (e) { 3553 if (e.target === overlay) { closeModal(); } 3554 }); 3555 overlay.querySelectorAll('[data-pf-close]').forEach(function (b) { 3556 b.addEventListener('click', closeModal); 3557 }); 3558 document.addEventListener('keydown', function (e) { 3559 if (e.key === 'Escape' && overlay.classList.contains('is-open')) { closeModal(); } 3560 }); 3561 3562 bodyEl.addEventListener('click', function (e) { 3563 var card = e.target.closest('.product-fmt-card'); 3564 if (!card) { return; } 3565 var fi = card.dataset.featureIndex; 3566 var group = card.closest('.product-fmt-group'); 3567 if (group) { 3568 group.querySelectorAll('.product-fmt-card').forEach(function (c) { c.classList.remove('is-selected', 'is-error'); }); 3569 var errEl = group.querySelector('.product-fmt-error'); 3570 if (errEl) { errEl.textContent = ''; } 3571 } 3572 card.classList.add('is-selected'); 3573 var input = card.querySelector('input[type=radio]'); 3574 if (input) { input.checked = true; } 3575 selected[fi] = { 3576 name: card.dataset.optionName, 3577 price: parseFloat(card.dataset.optionPrice) || 0, 3578 isShippable: card.dataset.optionShippable === 'true', 3579 }; 3580 recalcTotal(); 3581 }); 3582 3583 submitBtn.addEventListener('click', function () { 3584 if (!pending) { return; } 3585 3586 var ok = true; 3587 bodyEl.querySelectorAll('.product-fmt-group[data-feature-required="true"]').forEach(function (group) { 3588 var fi = group.dataset.featureIndex; 3589 var errEl = group.querySelector('.product-fmt-error'); 3590 if (!selected[fi]) { 3591 if (errEl) { errEl.textContent = MSG_REQUIRED; } 3592 group.querySelectorAll('.product-fmt-card').forEach(function (c) { c.classList.add('is-error'); }); 3593 ok = false; 3594 } 3595 }); 3596 if (!ok) { return; } 3597 3598 var finalPrice = recalcTotal(); 3599 var parts = []; 3600 features.forEach(function (f, fi) { if (selected[fi]) { parts.push(selected[fi].name); } }); 3601 var finalFormat = parts.join(', ') || (pending.format || ''); 3602 var isShippable = Object.values(selected).some(function (s) { return s.isShippable; }); 3603 3604 if (typeof window.alphadiAddProductToCart === 'function') { 3605 window.alphadiAddProductToCart({ 3606 id: pending.id, 3607 name: pending.name, 3608 price: finalPrice, 3609 format: finalFormat, 3610 image: pending.image, 3611 isShippable: isShippable, 3612 }); 3613 } 3614 closeModal(); 3615 });
3616 3617 // Intercept add-to-cart clicks for products that ship feature data. 3618 document.addEventListener('click', function (e) { 3619 var btn = e.target.closest('[data-add-to-cart][data-cart-type="product"]'); 3620 if (!btn) { return; } 3621 if (btn.disabled) { return; } 3622 3623 var raw = btn.dataset.cartFeatures; 3624 if (!raw) { return; } // no features â fall through to global handler 3625 3626 var parsed = null; 3627 try { parsed = JSON.parse(raw); } catch (_) { parsed = null; } 3628 if (!parsed || !parsed.length) { return; } 3629 3630 e.preventDefault(); 3631 e.stopImmediatePropagation(); 3632 3633 var shippableMap = buildShippableMap(btn.dataset.featuresRaw || ''); 3634 3635 openModal({ 3636 id: btn.dataset.addToCart, 3637 name: btn.dataset.cartName || btn.dataset.addToCart, 3638 basePrice: parseFloat(btn.dataset.cartPrice) || 0, 3639 format: btn.dataset.cartFormat || '', 3640 image: btn.dataset.cartImage || '', 3641 }, parsed, shippableMap); 3642 }, true); // capture phase â beat the global add-to-cart handler 3643})(); 3644</script>
3644 3645 3646 3647 <div style="display: none !important"> 3648 <a href="https://www.alphadi.org/de">Startseite German</a> 3649 <a href="https://www.alphadi.org/en">Startseite English</a> 3650 <a href="https://www.alphadi.org/es">Startseite Spanish</a> 3651 <a href="https://www.alphadi.org/it">Startseite Italian</a> 3652 <a href="https://www.alphadi.org/fr">Startseite French</a> 3653 <a href="https://www.alphadi.org/pl">Startseite Polish</a> 3654 <a href="https://www.alphadi.org/pt">Startseite Portuguese</a> 3655 </div> 3656</body> 3657</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.