PageSourceSearch

https://www.appcore.ai/loesung/shop-pflichtangaben

html appcore.ai collected 2026-10-05 14:13:45 UTC 250,776 bytes, 2,536 lines download raw bytes

1<!DOCTYPE html><html lang="de"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="icon" type="image/png" sizes="32x32" href="/api/brand-icons/file/letter-appcore-93jl2n-32x32.png?v=mrt5et03"><link rel="apple-touch-icon" sizes="180x180" href="/api/brand-icons/file/letter-appcore-93jl2n-180x180.png?v=mrt5et03"><style>@layer reset, tokens, base, components, pages, utilities, tenant-overrides, page-overrides;</style><link rel="preload" as="font" type="font/woff2" href="/_astro/plus-jakarta-sans-latin-wght-normal.eXO_dkmS.woff2" crossorigin><link rel="preload" as="font" type="font/woff2" href="/_astro/jetbrains-mono-latin-wght-normal.B9CIFXIH.woff2" crossorigin><style is:global>@layer tokens { :root { 
2    --color-primary: #003366;
3    --color-primary-dark: #001F3F;
4    --color-accent: #FF8C00;
5    --color-accent-hover: #E07B00;
6    --color-neutral-light: #F0F2F5;
7    --color-neutral-dark: #003366;
8    --color-premium: #D4A017;
9    --color-text-primary: #003366;
10    --color-text-secondary: #4A5568;
11    --color-text-muted: #64748B;
12    --color-text-inverse: #FFFFFF;
13    --color-bg-page: #FFFFFF;
14    --color-bg-surface: #FFFFFF;
15    --color-bg-elevated: #FFFFFF;
16    --color-border-subtle: #E2E8F0;
17    --color-border-default: #CBD5E0;
18    --color-border-strong: #4A5568;
19    --color-cta-bg: #FF8C00;
20    --color-cta-bg-hover: #E07B00;
21    --color-cta-text: #003366;
22    --color-success-accent: #1B7A45;
23    --color-on-accent: #003366;
24    --font-family-sans: 'Plus Jakarta Sans', system-ui, sans-serif;
25    --font-family-mono: 'JetBrains Mono', ui-monospace, monospace;
26    --font-family-display: 'Plus Jakarta Sans', system-ui, sans-serif;
27    --container-max: 1280px;
28    --brand-navy: var(--color-primary, #003366);
29    --brand-navy-dark: var(--color-primary-dark, #002a52);
30    --brand-dark: var(--color-neutral-dark, var(--color-text-primary, #1A2433));
31    --brand-orange: var(--color-accent, #FF8C00);
32    --brand-orange-hover: var(--color-accent-hover, var(--color-accent, #FF8C00));
33    --brand-orange-bright: var(--color-accent, #FF8C00);
34    --brand-green: var(--color-success-accent, #2ECC71);
35    --brand-gold-premium: var(--color-premium, #D4A017);
36    --brand-white: var(--color-text-inverse, #ffffff);
37    --brand-light-grey: var(--color-neutral-light, #F0F2F5);
38    --brand-navy: #003366;
39    --brand-orange: #FF8C00;
40    --brand-green: #2ECC71;
41    --brand-light-grey: #F0F2F5;
42    --brand-white: #FFFFFF;
43    --brand-black: #000000;
44    --color-info-bg: #E6EDF5;
45    --color-info-border: #B3C7DB;
46    --color-info-fg: #003366;
47    --color-info-accent: #003366;
48    --color-success-bg: #E6F4EC;
49    --color-success-border: #B3DCC6;
50    --color-success-fg: #1B7A45;
51    --color-warning-bg: #FEF3E7;
52    --color-warning-border: #F0C797;
53    --color-warning-fg: #92400E;
54    --color-warning-accent: #B45309;
55    --color-danger-bg: #FEE2E2;
56    --color-danger-border: #F8B5B5;
57    --color-danger-fg: #991B1B;
58    --color-danger-accent: #B91C1C;
59    --font-size-caption: 0.75rem;
60    --font-size-body-sm: 0.875rem;
61    --font-size-body: 1rem;
62    --font-size-lead: 1.25rem;
63    --font-size-h4: 1.625rem;
64    --font-size-h3: 2.125rem;
65    --font-size-h2: 2.875rem;
66    --font-size-h1: clamp(2.5rem, 4.5vw + 1rem, 4.1875rem);
67    --font-size-display-xl: clamp(3rem, 6.5vw + 1rem, 5.5rem);
68    --lh-tight: 1.1;
69    --lh-snug: 1.2;
70    --lh-balanced: 1.25;
71    --lh-relaxed: 1.3;
72    --lh-caption: 1.4;
73    --lh-comfortable: 1.5;
74    --lh-loose: 1.6;
75    --fw-regular: 400;
76    --fw-medium: 500;
77    --fw-semibold: 600;
78    --fw-bold: 700;
79    --fw-extrabold: 800;
80    --space-1: 4px;
81    --space-2: 8px;
82    --space-3: 12px;
83    --space-4: 16px;
84    --space-5: 24px;
85    --space-6: 32px;
86    --space-7: 48px;
87    --space-8: 64px;
88    --space-9: 96px;
89    --space-10: 128px;
90    --container-default: 1024px;
91    --container-narrow: 720px;
92    --container-prose: 65ch;
93    --grid-cols: 12;
94    --grid-gap: var(--space-6);
95    --color-so-scan: #003366;
96    --color-so-optimize: #FF8C00;
97    --color-so-validate: #2ECC71;
98    --color-so-publish: #5B9BD5;
99    --color-so-monitor: #6F42C1;
100    --color-callout-card-bar1: #003366;
101    --color-callout-card-bar2: #2ECC71;
102    --color-callout-card-bar3: #5B9BD5;
103    --color-callout-card-seal-stroke: #003366;
104    --color-callout-card-seal-accent: #FF8C00;
105    --color-report-ring: #FF8C00;
106    --color-report-critical: #d04340;
107    --color-report-high: #C2410C;
108    --color-report-medium: #A16207;
109    --color-report-low: #1B7A45;
110    --space-neg-1: -4px;
111    --space-neg-2: -8px;
112    --space-neg-3: -12px;
113    --space-neg-4: -16px;
114    --space-neg-5: -24px;
115    --space-neg-6: -32px;
116    --color-warning: #B45309;
117    --color-warning-text: #92400E;
118    --color-success-accent: #1B7A45;
119    --color-danger: #B91C1C;
120
121     
122    --font-size-caption: 0.75rem;
123    --font-size-body-sm: 0.875rem;
124    --font-size-body: 1rem;
125    --font-size-lead: 1.25rem;
126    --font-size-h4: 1.625rem;
127    --font-size-h3: 2.125rem;
128    --font-size-h2: 2.875rem;
129    --font-size-h1: clamp(2.5rem, 4.5vw + 1rem, 4.1875rem);
130    --font-size-display-xl: clamp(3rem, 6.5vw + 1rem, 5.5rem);
131
132     
133    --fw-regular: 400;
134    --fw-medium: 500;
135    --fw-semibold: 600;
136    --fw-bold: 700;
137    --fw-extrabold: 800;
138
139     
140    --space-1: 4px;
141    --space-2: 8px;
142    --space-3: 12px;
143    --space-4: 16px;
144    --space-5: 24px;
145    --space-6: 32px;
146    --space-7: 48px;
147    --space-8: 64px;
148    --space-9: 80px;
149    --space-10: 120px;
150
151     
152    --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
153    --color-so-scan-contrast: #FFFFFF;
154    --color-so-optimize-contrast: #003366;
155    --color-so-validate-contrast: #003366;
156    --color-so-publish-contrast: #0A0A0A;
157    --color-so-monitor-contrast: #FFFFFF;
158 } }</style><style is:global>@layer tokens { :root {
159    --font-family-sans: 'Plus Jakarta Sans', 'Plus Jakarta Sans Fallback', system-ui, sans-serif;
160    --font-family-display: 'Plus Jakarta Sans', 'Plus Jakarta Sans Fallback', system-ui, sans-serif;
161    --font-family-mono: 'JetBrains Mono', 'JetBrains Mono Fallback', ui-monospace, monospace;
162  } }</style><style is:global>@layer tenant-overrides {
163 
164 
165.header { border-bottom: 2px solid var(--brand-navy); }
166 
167.header__brand .ac-logo { --logo-size: 40px !important; }
168.header__actions .btn--primary .btn__arrow { display: none; }
169 
170:root { --brand-green: #2ECC71; }
171 
172.hero__eyebrow { display: inline-block; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.10); border-radius: 999px; padding: 6px 14px; color: rgba(255,255,255,0.65); }
173 
174.hero__accent { position: relative; }
175.hero__accent::after { content: ''; position: absolute; left: 0; right: 0; bottom: -2px; height: 2px; background: var(--brand-orange); opacity: 0.55; }
176 
177.hero__subtitle { color: rgba(255,255,255,0.85); }
178 
179.header { padding-inline: 0; }
180.header > .container { padding-inline: var(--container-padding, 24px); }
181.hero { padding-inline: 0; }
182.hero__inner { padding-inline: var(--container-padding, 24px); }
183 
184.hero { background-color: var(--brand-navy); background-image: linear-gradient(rgba(255,255,255,0.04) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.04) 1px, transparent 1px); background-size: 56px 56px; position: relative; overflow: hidden; isolation: isolate; }
185.hero::before, .hero::after { content: ''; position: absolute; border-radius: 50%; filter: blur(80px); pointer-events: none; z-index: 0; }
186.hero::before { width: 520px; height: 520px; top: -200px; left: -160px; background: radial-gradient(circle, rgba(255,140,0,0.55) 0%, transparent 70%); }
187.hero::after { width: 420px; height: 420px; bottom: -180px; right: -120px; background: radial-gradient(circle, rgba(46,204,113,0.40) 0%, transparent 70%); }
188.hero__inner { position: relative; z-index: 1; }
189 
190.faq .section-head, .faq .section-head__title, .faq .section-head__lead { text-align: center; }
191 
192.section-band .accent, .section-band .kpi-counter__value-accent { color: #C76D00; }
193
194 
195 
196.faq .section-head__lead { margin-inline: auto; }
197 
198.hero__eyebrow { align-self: flex-start; width: fit-content; }
199 
200:root { --section-title-size: 2rem; --color-success-bg: #E6F4EC; --color-success-fg: #1B7A45; }
201
202 
203.solutions-overlap {
204  position: relative;
205  z-index: 5;
206  max-width: 940px;
207  width: calc(100% - 48px);
208  margin: var(--space-neg-3) auto 32px;
209  background: var(--brand-white);
210  border: 1px solid var(--color-border-default);
211  border-radius: 16px;
212  box-shadow: 0 16px 36px -16px rgba(0, 42, 82, 0.24), 0 6px 14px -8px rgba(0, 42, 82, 0.10);
213  padding: 24px 30px;
214  display: grid;
215  grid-template-columns: 1.2fr 1fr;
216  gap: 24px;
217  align-items: center;
218}
219.solutions-overlap h4 {
220  font-size: var(--font-size-h4);
221  font-weight: var(--fw-medium);
222  color: var(--brand-navy);
223  margin: 0 0 10px;
224}
225.solutions-overlap p {
226  font-size: var(--font-size-body-sm);
227  color: var(--color-text-muted);
228  line-height: var(--lh-comfortable);
229  margin: 0 0 12px;
230}
231.solutions-overlap .pill {
232  font-family: var(--font-family-mono);
233  font-size: var(--font-size-caption);
234  letter-spacing: 0.04em;
235  text-transform: uppercase;
236}
237@media (max-width: 720px) {
238  .solutions-overlap { grid-template-columns: 1fr; }
239}
240
241 
242 
243.solutions-overview h2,
244.solutions-overview__title {
245  font-size: var(--font-size-h4);
246  line-height: var(--lh-snug);
247}
248.solutions-overview__lead,
249.solutions-overview > p {
250  font-size: var(--font-size-body-sm);
251  line-height: var(--lh-comfortable);
252}
253.solutions-overview__item h3,
254.solutions-overview__item-title {
255  font-size: var(--font-size-body);
256  font-weight: var(--fw-semibold);
257}
258.solutions-overview__item p,
259.solutions-overview__item-description {
260  font-size: var(--font-size-caption);
261  line-height: var(--lh-caption);
262}
263.solutions-overview__item {
264  padding: var(--space-4);
265}
266
267 
268.kpi-counter__value,
269.kpi-counter__value-accent {
270  font-size: 24px !important;
271}
272@media (max-width: 480px) {
273  .kpi-counter__value,
274  .kpi-counter__value-accent {
275    font-size: 20px !important;
276  }
277}
278
279 
280.container {
281  width: 100%;
282  max-width: 1280px;
283  margin-inline: auto;
284  padding-inline: var(--container-padding, 24px);
285  box-sizing: border-box;
286}
287:root {
288  --container-padding: 24px;
289}
290@media (max-width: 768px) {
291  :root {
292    --container-padding: 20px;
293  }
294}
295@media (max-width: 480px) {
296  :root {
297    --container-padding: 16px;
298  }
299}
300
301 
302.nav-mega__og-title {
303  font-size: 0.95rem;
304  color: var(--brand-orange, #FF8C00);
305  font-weight: 700;
306}
307.nav-mega__link-desc {
308  font-weight: 800;
309  font-size: 0.72rem;
310}
311
312 
313.footer__brand-description {
314  color: #FFFFFF;
315  opacity: 1;
316}
317
318 
319.footer__bottom {
320  color: #FFFFFF;
321  opacity: 1;
322}
323
324 
325.footer__linkgrid-dot {
326  box-shadow: 0 0 0 1.5px #FFFFFF;
327}
328
329 
330.identity-hub { position: relative; }
331.identity-hub .btn--register {
332  position: absolute;
333  top: calc(100% + 6px);
334  left: 0;
335  opacity: 0;
336  visibility: hidden;
337  pointer-events: none;
338  transition: opacity .15s ease, visibility .15s ease;
339  z-index: 60;
340  box-shadow: 0 10px 28px -12px rgba(0,42,82,.4);
341}
342.identity-hub:has(.btn--ghost.btn--sm:hover) .btn--register,
343.identity-hub .btn--register:hover,
344.identity-hub .btn--register:focus-visible {
345  opacity: 1;
346  visibility: visible;
347  pointer-events: auto;
348}
349.identity-hub .btn--ghost.btn--sm {
350  position: relative;
351  padding-inline: 14px;
352}
353.identity-hub .btn--ghost.btn--sm::after {
354  content: '';
355  display: inline-block;
356  width: 6px;
357  height: 6px;
358  margin-left: 7px;
359  margin-bottom: 1px;
360  border-right: 1.5px solid currentColor;
361  border-bottom: 1.5px solid currentColor;
362  transform: rotate(45deg);
363  opacity: .7;
364}
365 
366@supports not (selector(:has(a))) {
367  .identity-hub .btn--register {
368    position: static;
369    opacity: 1;
370    visibility: visible;
371    pointer-events: auto;
372    box-shadow: none;
373  }
374  .identity-hub .btn--ghost.btn--sm::after {
375    display: none;
376  }
377}
378
379 
380.nav-mega__stage-card[data-stage="01"] a.nav-mega__link:nth-of-type(1) {
381  position: relative;
382  overflow: hidden;
383  flex: 1;
384  display: flex;
385  flex-direction: column;
386  align-items: flex-start;
387  justify-content: flex-start;
388  gap: 10px;
389  padding: 16px 16px 14px;
390  background: linear-gradient(135deg, var(--brand-navy,#003366), #013c78);
391  border: 1px solid rgba(255,255,255,.18);
392  margin-bottom: 10px;
393  box-shadow: 0 6px 16px -8px rgba(0,20,50,.35);
394  transition: background .25s ease, border-color .25s ease, box-shadow .25s ease;
395}
396.nav-mega__stage-card[data-stage="01"] a.nav-mega__link:nth-of-type(1)::before {
397  content: '';
398  position: absolute;
399  top: 6px;
400  right: 4px;
401  width: 108px;
402  height: 92px;
403  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%20100%2090%22%3E%0A%20%20%3Crect%20x%3D%222%22%20y%3D%226%22%20width%3D%2272%22%20height%3D%2252%22%20rx%3D%228%22%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%222%22%20opacity%3D%220.85%22/%3E%0A%20%20%3Ccircle%20cx%3D%2212%22%20cy%3D%2216%22%20r%3D%222%22%20fill%3D%22%23ffffff%22%20opacity%3D%220.6%22/%3E%0A%20%20%3Ccircle%20cx%3D%2220%22%20cy%3D%2216%22%20r%3D%222%22%20fill%3D%22%23ffffff%22%20opacity%3D%220.4%22/%3E%0A%20%20%3Ccircle%20cx%3D%2228%22%20cy%3D%2216%22%20r%3D%222%22%20fill%3D%22%23ffffff%22%20opacity%3D%220.4%22/%3E%0A%20%20%3Cline%20x1%3D%2210%22%20y1%3D%2229%22%20x2%3D%2258%22%20y2%3D%2229%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%222.6%22%20stroke-linecap%3D%22round%22%20opacity%3D%220.55%22/%3E%0A%20%20%3Cline%20x1%3D%2210%22%20y1%3D%2239%22%20x2%3D%2266%22%20y2%3D%2239%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%222.6%22%20stroke-linecap%3D%22round%22%20opacity%3D%220.4%22/%3E%0A%20%20%3Cline%20x1%3D%2210%22%20y1%3D%2249%22%20x2%3D%2244%22%20y2%3D%2249%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%222.6%22%20stroke-linecap%3D%22round%22%20opacity%3D%220.4%22/%3E%0A%20%20%3Cg%20transform%3D%22translate%2856%2C36%29%22%3E%0A%20%20%20%20%3Cpath%20d%3D%22M18%200%20L35%207.5%20V23%20C35%2034.5%2027%2042.5%2018%2046%20C9%2042.5%201%2034.5%201%2023%20V7.5%20Z%22%20fill%3D%22%23FF8C00%22/%3E%0A%20%20%20%20%3Cpath%20d%3D%22M10.5%2023%20L16.5%2029%20L27.5%2015.5%22%20stroke%3D%22%23003366%22%20stroke-width%3D%223.4%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20fill%3D%22none%22/%3E%0A%20%20%3C/g%3E%0A%3C/svg%3E%0A");
404  background-repeat: no-repeat;
405  background-position: top right;
406  background-size: contain;
407  pointer-events: none;
408  transition: transform .35s cubic-bezier(.34,1.56,.64,1);
409}
410.nav-mega__stage-card[data-stage="01"] a.nav-mega__link:nth-of-type(1) .nav-mega__link-content {
411  flex: 1;
412  width: 100%;
413  max-width: 100%;
414  position: relative;
415  z-index: 1;
416  gap: 9px;
417}
418.nav-mega__stage-card[data-stage="01"] a.nav-mega__link:nth-of-type(1) .nav-mega__link-title {
419  display: block;
420  max-width: 62%;
421  color: #fff;
422  font-size: 1.4rem;
423  font-weight: 800;
424  line-height: 1.2;
425}
426.nav-mega__stage-card[data-stage="01"] a.nav-mega__link:nth-of-type(1) .nav-mega__link-desc {
427  display: block;
428  max-width: 60%;
429  color: rgba(255,255,255,.85);
430  font-size: 0.98rem;
431  font-weight: 600;
432  line-height: 1.4;
433}
434.nav-mega__stage-card[data-stage="01"] a.nav-mega__link:nth-of-type(1) .nav-mega__link-arrow {
435  align-self: flex-end;
436  margin-top: auto;
437  color: #FFFFFF;
438  opacity: 1;
439  transform: translate(0);
440  width: 18px;
441  height: 18px;
442  position: relative;
443  z-index: 1;
444  transition: transform .25s cubic-bezier(.34,1.56,.64,1);
445}
446.nav-mega__stage-card[data-stage="01"] a.nav-mega__link:nth-of-type(1):hover {
447  background: linear-gradient(135deg, #013c78, var(--brand-navy,#003366));
448  border-color: rgba(255,140,0,.55);
449  box-shadow: 0 14px 30px -12px rgba(0,20,50,.55);
450}
451.nav-mega__stage-card[data-stage="01"] a.nav-mega__link:nth-of-type(1):hover::before {
452  transform: scale(1.08) translateY(-3px);
453}
454.nav-mega__stage-card[data-stage="01"] a.nav-mega__link:nth-of-type(1):hover .nav-mega__link-arrow {
455  transform: translateX(5px);
456}
457
458 
459.nav-mega__stage-card[data-stage="06"] {
460  --cluster: #D4A017;
461  --cluster-soft: rgba(212, 160, 23, .1);
462  --cluster-tint: rgba(212, 160, 23, .04);
463}
464
465 
466.ins-post__head,
467.bp-wrap--toc {
468  width: 100% !important;
469  max-width: 1280px !important;
470  margin-left: auto !important;
471  margin-right: auto !important;
472  padding-left: 24px !important;
473  padding-right: 24px !important;
474  box-sizing: border-box !important;
475}
476
477.ins-post__head {
478  padding-top: 60px !important;
479  display: grid !important;
480  grid-template-columns: 2fr 1fr !important;
481  column-gap: 40px !important;
482  align-items: start !important;
483}
484
485.ins-post__head-left {
486  min-width: 0;
487}
488
489.ins-post__author-card {
490  display: flex;
491  flex-direction: column;
492  align-items: center;
493  text-align: center;
494  gap: 10px;
495  padding: 24px 20px;
496  border: 2px solid var(--color-primary, #003366);
497  border-radius: 12px;
498  background: var(--color-bg-surface, #ffffff);
499}
500
501.ins-post__author-avatar {
502  width: 64px;
503  height: 64px;
504  border-radius: 50%;
505  background: var(--color-primary, #003366);
506  color: #ffffff;
507  display: flex;
508  align-items: center;
509  justify-content: center;
510  font-weight: 700;
511  font-size: 1.25rem;
512  letter-spacing: 0.02em;
513  flex-shrink: 0;
514}
515
516.ins-post__author-name {
517  font-weight: 700;
518  color: var(--color-primary, #003366);
519  font-size: 0.9375rem;
520}
521
522.ins-post__author-role {
523  font-size: 0.8125rem;
524  color: var(--color-text-muted, #718096);
525}
526
527.ins-post__author-bio {
528  font-size: 0.8125rem;
529  line-height: 1.45;
530  color: var(--color-text-secondary, #4a5568);
531  margin-top: 4px;
532}
533
534@media (max-width: 900px) {
535  .ins-post__head {
536    grid-template-columns: 1fr !important;
537    row-gap: 24px;
538  }
539  .ins-post__author-card {
540    flex-direction: row;
541    text-align: left;
542    justify-content: flex-start;
543    flex-wrap: wrap;
544  }
545  .ins-post__author-bio {
546    flex-basis: 100%;
547  }
548}
549
550.ins-post__crumb {
551  margin-bottom: 20px !important;
552}
553.ins-post__chip {
554  margin-bottom: 14px !important;
555}
556.ins-post__meta {
557  margin-bottom: 12px !important;
558}
559.ins-post__title {
560  margin-top: 4px !important;
561  margin-bottom: 20px !important;
562}
563.ins-post__lead {
564  margin-bottom: 24px !important;
565}
566.ins-post__byline {
567  padding-top: 20px !important;
568  border-top: 1px solid var(--color-border-subtle, #e2e8f0) !important;
569}
570
571.toc-nav__label {
572  font-weight: 700 !important;
573}
574
575.toc-nav {
576  border-width: 2px !important;
577  border-style: solid !important;
578  border-color: var(--color-border-subtle, #e2e8f0) !important;
579}
580
581@media (min-width: 1200px) {
582  .bp-wrap--toc {
583    grid-template-columns: 2fr 1fr !important;
584  }
585
586  .bp-wrap--toc .ins-post__body > [data-block="normCover"]:first-child {
587    width: calc(150% + 56px) !important;
588    max-width: calc(150% + 56px) !important;
589    margin-left: 0 !important;
590    margin-right: calc(-50% - 56px) !important;
591  }
592}
593
594 
595.ife-container {
596  width: 100% !important;
597  max-width: 1280px !important;
598  margin-left: auto !important;
599  margin-right: auto !important;
600  padding-left: 24px !important;
601  padding-right: 24px !important;
602  box-sizing: border-box !important;
603}
604
605.author-box__card {
606  border: 2px solid var(--brand-navy, #003366) !important;
607}
608
609@media (min-width: 1200px) {
610  .ife-wrap--toc {
611    grid-template-columns: 3fr 1fr !important;
612  }
613}
614
615 
616.ac-review-badge{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:inherit;opacity:.92}
617.ac-review-badge:hover{opacity:1;text-decoration:underline}
618.ac-review-badge__stars{display:inline-flex;gap:1px}
619.ac-review-badge__stars svg{width:14px;
619height:14px;display:block}
620 
621
622 
623.ac-review-card {
624  display: flex;
625  align-items: center;
626  gap: 20px;
627  width: 100%;
628  margin: 32px 0 8px;
629  padding: 20px 28px;
630  border-radius: 18px;
631  background: #ffffff;
632  box-shadow: 0 18px 40px -14px rgba(0, 0, 0, 0.35);
633  text-decoration: none;
634  transition: transform 0.25s ease, box-shadow 0.25s ease;
635}
636.ac-review-card:hover {
637  transform: translateY(-3px);
638  box-shadow: 0 24px 48px -12px rgba(0, 0, 0, 0.45);
639}
640.ac-review-card:hover .ac-review-card__icon {
641  transform: rotate(90deg);
642}
643.ac-review-card__icon {
644  flex-shrink: 0;
645  width: 52px;
646  height: 52px;
647  transition: transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
648}
649.ac-review-card__body {
650  flex: 1 1 auto;
651  min-width: 0;
652  display: block;
653}
654.ac-review-card__eyebrow {
655  display: block;
656  margin: 0 0 4px;
657  font-family: var(--font-family-mono, monospace);
658  font-size: 0.75rem;
659  font-weight: 700;
660  letter-spacing: 0.06em;
661  text-transform: uppercase;
662  color: var(--color-text-muted, #64748B);
663}
664.ac-review-card__title {
665  display: block;
666  margin: 0 0 6px;
667  font-size: 1.0625rem;
668  font-weight: 700;
669  color: var(--brand-navy, #003366);
670}
671.ac-review-card__stars {
672  display: flex;
673  gap: 3px;
674}
675.ac-review-card__stars svg {
676  width: 15px;
677  height: 15px;
678}
679.ac-review-card__cta {
680  flex-shrink: 0;
681  display: inline-flex;
682  align-items: center;
683  gap: 8px;
684  padding: 12px 22px;
685  border-radius: 999px;
686  background: #4285f4;
687  color: #ffffff;
688  font-weight: 700;
689  font-size: 0.9375rem;
690  white-space: nowrap;
691  transition: background 0.2s ease;
692}
693.ac-review-card:hover .ac-review-card__cta {
694  background: #3367d6;
695}
696@media (max-width: 640px) {
697  .ac-review-card {
698    flex-direction: column;
699    align-items: flex-start;
700    text-align: left;
701    gap: 14px;
702    padding: 20px 22px;
703  }
704  .ac-review-card__cta {
705    width: 100%;
706    justify-content: center;
707  }
708}
709 
710
711 
712.ac-alt-light {
713  background-color: #F0F2F5;
714}
715 
716}</style><title>Shop-Pflichtangaben prüfen, abmahnsicher verkaufen | AppCore</title><meta name="robots" content="index, follow, max-image-preview:large"><link rel="canonical" href="https://www.appcore.ai/loesung/shop-pflichtangaben"><meta property="og:title" content="Shop-Pflichtangaben prüfen, abmahnsicher verkaufen | AppCore"><meta property="og:type" content="website"><meta property="og:url" content="https://www.appcore.ai/loesung/shop-pflichtangaben"><meta property="og:locale" content="de_DE"><meta property="og:site_name" content="AppCore"><meta property="og:image" content="https://appcore.ai/og-image.png"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="Shop-Pflichtangaben prüfen, abmahnsicher verkaufen | AppCore"><meta name="twitter:image" content="https://appcore.ai/og-image.png"><link rel="alternate" type="application/rss+xml" title="AppCore RSS" href="https://www.appcore.ai/rss.xml">
716<script defer src="https://analytics.appcore.ai/js/pa-Mb8Mihj0S3xpqsPJ5BI2H.js"></script>
716<script>window.plausible=window.plausible||function(){(window.plausible.q=window.plausible.q||[]).push(arguments)};window.plausible.init=window.plausible.init||function(i){window.plausible.o=i||{}};plausible.init({outboundLinks:true,fileDownloads:true,formSubmissions:true})</script>
716<style is:global>@font-face {
717  font-family: 'Plus Jakarta Sans';
718  font-style: normal;
719  font-weight: 200 800;
720  font-display: swap;
721  src: url(/_astro/plus-jakarta-sans-latin-wght-normal.eXO_dkmS.woff2) format('woff2-variations');
722}
723@font-face {
724  font-family: 'Plus Jakarta Sans Fallback';
725  font-style: normal;
726  font-weight: 200 800;
727  src: local('Arial'), local('Helvetica Neue'), local('Liberation Sans');
728  size-adjust: 104.98%;
729  ascent-override: 98.88%;
730  descent-override: 21.15%;
731  line-gap-override: 0%;
732}
733@font-face {
734  font-family: 'JetBrains Mono';
735  font-style: normal;
736  font-weight: 100 800;
737  font-display: swap;
738  src: url(/_astro/jetbrains-mono-latin-wght-normal.B9CIFXIH.woff2) format('woff2-variations');
739}
740@font-face {
741  font-family: 'JetBrains Mono Fallback';
742  font-style: normal;
743  font-weight: 100 800;
744  src: local('Courier New'), local('Liberation Mono');
745  size-adjust: 99.98%;
746  ascent-override: 102.02%;
747  descent-override: 30.00%;
748  line-gap-override: 0%;
749}</style>
749<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://www.appcore.ai/#organization","name":"AppCore","url":"https://www.appcore.ai"},{"@type":"WebSite","@id":"https://www.appcore.ai/#website","name":"AppCore","url":"https://www.appcore.ai","inLanguage":"de-DE","publisher":{"@id":"https://www.appcore.ai/#organization"}},{"@type":"BreadcrumbList","@id":"https://www.appcore.ai/loesung/shop-pflichtangaben#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Start","item":"https://www.appcore.ai/"},{"@type":"ListItem","position":2,"name":"Alle 20 Lösungen im Überblick","item":"https://www.appcore.ai/loesung"},{"@type":"ListItem","position":3,"name":"Shop-Pflichtangaben prüfen, abmahnsicher verkaufen | AppCore","item":"https://www.appcore.ai/loesung/shop-pflichtangaben"}]},{"@type":"WebPage","@id":"https://www.appcore.ai/loesung/shop-pflichtangaben#webpage","url":"https://www.appcore.ai/loesung/shop-pflichtangaben","name":"Shop-Pflichtangaben prüfen, abmahnsicher verkaufen | AppCore","inLanguage":"de-DE","isPartOf":{"@id":"https://www.appcore.ai/#website"},"breadcrumb":{"@id":"https://www.appcore.ai/loesung/shop-pflichtangaben#breadcrumb"}}]}</script>
749<script type="application/ld+json">{"@type":"BreadcrumbList","@context":"https://schema.org","itemListElement":[{"item":"https://appcore.ai/","name":"Start","@type":"ListItem","position":1},{"item":"https://appcore.ai/loesung","name":"Lösungen","@type":"ListItem","position":2},{"item":"https://appcore.ai/loesung/shop-pflichtangaben","name":"Shop-Pflichtangaben","@type":"ListItem","position":3}]}</script>
749<script type="application/ld+json">{"url":"https://appcore.ai/loesung/shop-pflichtangaben","name":"Shop-Pflichtangaben-Prüfung","@type":"Service","@context":"https://schema.org","provider":{"url":"https://appcore.ai","name":"AppCore","@type":"Organization"},"areaServed":"DE","serviceType":"Prüfung gesetzlicher Informationspflichten im E-Commerce"}</script>
749<script type="application/ld+json">{"@type":"FAQPage","@context":"https://schema.org","mainEntity":[{"name":"Welche Pflichtangaben braucht eine Produktseite?","@type":"Question","acceptedAnswer":{"text":"Typisch sind Gesamtpreis inklusive Steuern, gegebenenfalls Grundpreis, Versandkosten, Lieferzeit und eine klare Widerrufsbelehrung.","@type":"Answer"}},{"name":"Gilt das auch für kleine Shops?","@type":"Question","acceptedAnswer":{"text":"Ja. Die Informationspflichten gelten unabhängig von der Größe. Gerade kleinere Shops werden häufig abgemahnt.","@type":"Answer"}}]}</script>
749<style is:global>@layer pages {
750:root{--container-max:1280px;--container-padding:24px;}
751.container{ max-width: var(--container-max); margin: 0 auto; padding: 0 var(--container-padding); }
752
753.lg-hero { position:relative; overflow:hidden; background:var(--brand-navy); color:#fff; padding: calc(var(--space-9) + 6px) 0 var(--space-9); }
754.lg-hero__grid { position:absolute; inset:0; z-index:0; pointer-events:none; background-image:linear-gradient(rgba(255,255,255,0.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,0.045) 1px,transparent 1px); background-size:46px 46px; -webkit-mask-image:radial-gradient(ellipse at 75% 30%,rgba(0,0,0,0.8) 0%,transparent 72%); mask-image:radial-gradient(ellipse at 75% 30%,rgba(0,0,0,0.8) 0%,transparent 72%); animation:lg-drift 60s linear infinite; }
755@keyframes lg-drift { from{background-position:0 0,0 0;} to{background-position:46px 46px,46px 46px;} }
756.lg-hero__inner { position:relative; z-index:2; max-width:62ch; }
757.lg-breadcrumb { font-family:var(--font-family-mono); font-size:0.75rem; color:rgba(255,255,255,0.55); margin-bottom:18px; }
758.lg-breadcrumb a { color:rgba(255,255,255,0.7); text-decoration:none; } .lg-breadcrumb a:hover{ color:#fff; }
759.lg-hero__eyebrow { font-family:var(--font-family-mono); font-size:var(--font-size-caption); font-weight:700; letter-spacing:0.14em; text-transform:uppercase; color:var(--brand-orange); }
760.lg-hero__title { font-size:clamp(2rem,4.4vw,3.1rem); font-weight:var(--fw-bold); letter-spacing:-0.02em; line-height:1.08; margin:14px 0 0; }
761.lg-hero__title .accent { color:var(--brand-orange); }
762.lg-hero__lead { font-size:var(--font-size-body-lg); color:rgba(255,255,255,0.82); margin:18px 0 0; line-height:1.6; }
763.lg-hero__actions { display:flex; gap:14px; flex-wrap:wrap; margin-top:28px; }
764.lg-hero__meta { font-family:var(--font-family-mono); font-size:0.75rem; color:rgba(255,255,255,0.55); margin-top:18px; }
765
766.lg-sec { padding:var(--space-8) 0; }
767.lg-sec--surface { background:var(--color-bg-surface); }
768.lg-sec__eyebrow { font-family:var(--font-family-mono); font-size:0.6875rem; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; color:var(--brand-orange); }
769.lg-sec__title { font-size:var(--section-title-size); font-weight:var(--fw-bold); letter-spacing:-0.01em; color:var(--color-text-primary); margin:6px 0 0; }
770.lg-sec__lead { font-size:var(--font-size-body-lg); color:var(--color-text-secondary); line-height:1.6; margin:14px 0 0; max-width:64ch; }
771
772.lg-checks { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; margin-top:28px; }
773.lg-check { display:flex; gap:13px; align-items:flex-start; background:var(--brand-white); border:1px solid var(--color-border-subtle); border-radius:12px; padding:16px 18px; }
774.lg-check__mark { flex-shrink:0; width:22px; height:22px; border-radius:50%; background:var(--color-success-bg); position:relative; margin-top:2px; }
775.lg-check__mark::after { content:""; position:absolute; left:8px; top:5px; width:6px; height:11px; border-right:2px solid var(--color-success-accent); border-bottom:2px solid var(--color-success-accent); transform:rotate(40deg); }
776.lg-check__t { display:block; font-size:0.9375rem; font-weight:var(--fw-bold); color:var(--color-text-primary); }
777.lg-check__d { display:block; font-size:var(--font-size-caption); color:var(--color-text-secondary); line-height:1.5; margin-top:4px; }
778
779.lg-risks { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:28px; }
780.lg-risk { background:var(--color-bg-page); border:1px solid var(--color-border-subtle); border-top:4px solid #FF6B6B; border-radius:14px; padding:22px 20px; display:flex; flex-direction:column; gap:8px; }
781.lg-risk__big { font-family:var(--font-family-mono); font-size:1.6rem; font-weight:800; color:var(--brand-navy); line-height:1.1; }
782.lg-risk__tag { font-family:var(--font-family-mono); font-size:0.6875rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:#FF6B6B; }
783.lg-risk__d { font-size:var(--font-size-body-sm); color:var(--color-text-secondary); line-height:1.55; }
784
785.lg-bridge { background:var(--brand-navy); color:#fff; }
786.lg-bridge__inner { display:grid; grid-template-columns:1.1fr 1fr; gap:44px; align-items:center; }
787.lg-bridge__title { font-size:var(--section-title-size); font-weight:var(--fw-bold); letter-spacing:-0.01em; }
788.lg-bridge__title .accent { color:var(--brand-orange); }
789.lg-bridge__txt { font-size:var(--font-size-body); color:rgba(255,255,255,0.8); line-height:1.65; margin-top:14px; }
790.lg-bridge__flow { display:flex; flex-wrap:wrap; gap:8px; margin-top:22px; }
791.lg-bridge__flow span { font-family:var(--font-family-mono); font-size:0.6875rem; font-weight:700; letter-spacing:0.04em; padding:7px 12px; border:1px solid rgba(255,255,255,0.2); border-radius:8px; color:rgba(255,255,255,0.78); }
792.lg-bridge__flow span.is-on { background:var(--brand-orange); border-color:var(--brand-orange); color:var(--brand-navy); }
793.lg-bridge__card { background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.14); border-radius:16px; padding:26px; }
794.lg-bridge__card h3 { font-size:1.0625rem; font-weight:var(--fw-bold); margin:0; }
795.lg-bridge__card p { font-size:var(--font-size-body-sm); color:rgba(255,255,255,0.72); line-height:1.6; margin:10px 0 0; }
796
797.lg-plan { text-align:center; }
798.lg-plan__note { font-size:var(--font-size-body); color:var(--color-text-secondary); margin:14px auto 0; max-width:54ch; line-height:1.6; }
799.lg-plan__pills { display:flex; gap:10px; justify-content:center; flex-wrap:wrap; margin-top:22px; }
800.lg-plan__pill { font-family:var(--font-family-mono); font-size:0.8125rem; font-weight:700; color:var(--color-text-primary); background:var(--color-bg-surface); border:1px solid var(--color-border-subtle); border-radius:9px; padding:10px 16px; }
801.lg-plan__pill b { color:var(--brand-navy); }
802.lg-plan__actions { display:flex; gap:14px; justify-content:center; flex-wrap:wrap; margin-top:26px; }
803
804.lg-faq { max-width:760px; margin:0 auto; }
805.lg-faq__item { border-bottom:1px solid var(--color-border-subtle); padding:18px 0; }
806.lg-faq__q { font-size:1.0625rem; font-weight:var(--fw-semibold); color:var(--color-text-primary); }
807.lg-faq__a { font-size:var(--font-size-body-sm); color:var(--color-text-secondary); line-height:1.6; margin-top:8px; }
808
809.lg-hero__inner--split { display:grid; grid-template-columns:1.05fr 0.95fr; gap:48px; align-items:center; max-width:var(--container-max); }
810.lg-hero__copy { max-width:60ch; }
811.lg-hero__viz { display:flex; justify-content:center; }
812.lg-viz { width:100%; max-width:420px; background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.14); border-radius:18px; overflow:hidden; box-shadow:0 24px 60px rgba(0,0,0,0.32); backdrop-filter:blur(2px); }
813.lg-viz__bar { display:flex; align-items:center; gap:7px; padding:13px 16px; background:rgba(255,255,255,0.06); border-bottom:1px solid rgba(255,255,255,0.1); }
814.lg-viz__dot { width:10px; height:10px; border-radius:50%; background:rgba(255,255,255,0.28); }
815.lg-viz__url { margin-left:10px; font-family:var(--font-family-mono); font-size:0.6875rem; color:rgba(255,255,255,0.5); letter-spacing:0.04em; }
816.lg-viz__body { padding:24px; display:flex; gap:22px; align-items:center; }
817.lg-viz__score { position:relative; width:120px; height:120px; flex-shrink:0; }
818.lg-viz__score svg { width:100%; height:100%; }
819.lg-viz__track { fill:none; stroke:rgba(255,255,255,0.13); }
820.lg-viz__ring { fill:none; stroke:var(--brand-orange); stroke-linecap:round; transition:stroke-dashoffset 600ms cubic-bezier(0.16,1,0.3,1); }
821.lg-viz__score-num { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; font-family:var(--font-family-mono); }
822.lg-viz__score-num span { font-size:2rem; font-weight:800; color:#fff; line-height:1; }
823.lg-viz__score-num small { font-size:0.625rem; color:rgba(255,255,255,0.55); letter-spacing:0.1em; text-transform:uppercase; margin-top:3px; }
824.lg-viz__list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:11px; flex:1; }
825.lg-viz__item { display:flex; align-items:center; gap:10px; font-size:0.8125rem; color:rgba(255,255,255,0.5); transition:color 300ms ease; }
826.lg-viz__ico { width:18px; height:18px; border-radius:50%; border:2px solid rgba(255,255,255,0.25); flex-shrink:0; position:relative; transition:all 300ms ease; }
827.lg-viz__item.is-ok { color:#fff; }
828.lg-viz__item.is-ok .lg-viz__ico { background:var(--brand-green); border-color:var(--brand-green); }
829.lg-viz__item.is-ok .lg-viz__ico::after { content:""; position:absolute; left:5px; top:2px; width:4px; height:8px; border-right:2px solid #fff; border-bottom:2px solid #fff; transform:rotate(40deg); }
830.lg-viz__item.is-warn .lg-viz__ico { background:#FF6B6B; border-color:#FF6B6B; }
831.lg-viz__item.is-warn .lg-viz__ico::after { content:"!"; position:absolute; left:5px; top:-1px; color:#fff; font-size:11px; font-weight:800; }
832
833 
834.js-anim .lg-check, .js-anim .lg-risk { opacity:0; transform:translateY(14px); }
835.js-anim .lg-check.is-in, .js-anim .lg-risk.is-in { opacity:1; transform:translateY(0); transition:opacity 480ms ease, transform 480ms cubic-bezier(0.16,1,0.3,1); }
836.lg-risk { transition:opacity 480ms ease, transform 200ms ease, box-shadow 200ms ease; }
837.lg-risk:hover { transform:translateY(-3px); box-shadow:0 14px 30px rgba(0,51,102,0.10); }
838
839 
840.lg-faq__item { border:1px solid var(--color-border-subtle); border-radius:12px; padding:0; margin-bottom:12px; background:var(--brand-white); overflow:hidden; transition:border-color 200ms ease, box-shadow 200ms ease; }
841.lg-faq__item.is-open { border-color:var(--brand-orange); box-shadow:0 10px 26px rgba(0,51,102,0.08); }
842.lg-faq__btn { width:100%; display:flex; align-items:center; gap:14px; padding:18px 20px; background:none; border:none; cursor:pointer; text-align:left; font:inherit; }
843.lg-faq__q { flex:1; font-size:1.0625rem; font-weight:var(--fw-semibold); color:var(--color-text-primary); }
844.lg-faq__plus { position:relative; width:20px; height:20px; flex-shrink:0; }
845.lg-faq__plus::before, .lg-faq__plus::after { content:""; position:absolute; background:var(--brand-orange); border-radius:2px; transition:transform 260ms ease, opacity 260ms ease; }
846.lg-faq__plus::before { left:9px; top:2px; width:2px; height:16px; }
847.lg-faq__plus::after { left:2px; top:9px; width:16px; height:2px; }
848.lg-faq__item.is-open .lg-faq__plus::before { transform:rotate(90deg); opacity:0; }
849.lg-faq__panel { max-height:0; overflow:hidden; transition:max-height 320ms ease; }
850.lg-faq__a { padding:0 20px 18px; font-size:var(--font-size-body-sm); color:var(--color-text-secondary); line-height:1.65; margin:0; }
851.lg-faq__btn:focus-visible { outline:2px solid var(--brand-orange); outline-offset:-2px; border-radius:12px; }
852
853@media (prefers-reduced-motion: reduce){ .lg-hero__grid{ animation:none; } .lg-viz__ring{ transition:none; } .lg-check,.lg-risk{ opacity:1; transform:none; } .lg-faq__panel{ transition:none; } }
854 
855.lg-count { font-variant-numeric:tabular-nums; }
856 
857.lg-bridge__step { font-family:var(--font-family-mono); font-size:0.6875rem; font-weight:700; letter-spacing:0.04em; padding:7px 12px; border:1px solid rgba(255,255,255,0.2); border-radius:8px; color:rgba(255,255,255,0.78); background:none; cursor:pointer; transition:all 220ms ease; }
858.lg-bridge__step:hover { border-color:rgba(255,255,255,0.5); color:#fff; }
859.lg-bridge__step.is-on { background:var(--brand-orange); border-color:var(--brand-orange); color:var(--brand-navy); }
860.lg-bridge__step:focus-visible { outline:2px solid #fff; outline-offset:2px; }
861.lg-bridge__info { font-size:var(--font-size-body-sm); color:rgba(255,255,255,0.78); margin-top:14px; min-height:42px; line-height:1.5; }
862
863 
864 
865
866@media (max-width:860px){ .lg-hero__inner--split{ grid-template-columns:1fr; gap:32px; } .lg-hero__viz{ order:2; } }
867@media (max-width:760px){ .lg-checks{ grid-template-columns:1fr; } .lg-risks{ grid-template-columns:1fr; } .lg-bridge__inner{ grid-template-columns:1fr; gap:28px; } }
868
869 
870
871
872 
873
874
875 
876@keyframes lg-df-sweep { to{ transform:rotate(360deg); } }
877@keyframes lg-df-pulse { 0%{ box-shadow:0 0 0 0 rgba(255,107,107,0.5); } 100%{ box-shadow:0 0 0 14px rgba(255,107,107,0); } }
878
879
880 
881.lg-sh { margin-top:28px; }
882.lg-sh__ctrl { display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-bottom:18px; }
883.lg-sh__btn { font:inherit; font-size:0.875rem; font-weight:var(--fw-semibold); padding:10px 18px; border-radius:9px; border:none; background:var(--brand-orange); color:var(--brand-navy); cursor:pointer; }
884.lg-sh__btn:focus-visible { outline:2px solid var(--brand-navy); outline-offset:2px; }
885.lg-sh__btn[disabled] { opacity:0.6; cursor:default; }
886.lg-sh__legend { font-size:var(--font-size-caption); color:var(--color-text-secondary); }
887.lg-sh__grid { display:grid; grid-template-columns:1fr 1fr; gap:22px; align-items:start; }
888@media (max-width:760px){ .lg-sh__grid{ grid-template-columns:1fr; } }
889.lg-sh__mock { background:var(--brand-white); border:1px solid var(--color-border-subtle); border-radius:14px; padding:24px; position:relative; }
890.lg-sh__img { height:130px; border-radius:10px; background:linear-gradient(135deg,#E8ECF1,#D6DCE4); display:flex; align-items:center; justify-content:center; font-family:var(--font-family-mono); font-size:0.6875rem; color:var(--color-text-muted); }
891.lg-sh__pname { font-size:1.125rem; font-weight:var(--fw-bold); color:var(--color-text-primary); margin:16px 0 4px; }
892.lg-sh__price { font-size:1.5rem; font-weight:800; color:var(--brand-navy); }
893.lg-sh__line { position:relative; font-size:0.875rem; color:var(--color-text-secondary); padding:9px 0; border-bottom:1px solid var(--color-border-subtle); }
894.lg-sh__line:last-child { border-bottom:none; }
895.lg-sh__flag { position:relative; }
896.lg-sh__flag.is-missing { background:rgba(255,107,107,0.08); border-radius:7px; padding-left:10px; }
897.lg-sh__dot { display:none; }
898.lg-sh__flag.is-missing .lg-sh__miss { display:inline-flex; }
899.lg-sh__miss { display:none; align-items:center; gap:5px; margin-left:8px; font-family:var(--font-family-mono); font-size:0.625rem; font-weight:800; color:#fff; background:#FF6B6B; padding:2px 8px; border-radius:5px; vertical-align:middle; }
900.lg-sh__cart { width:100%; margin-top:16px; padding:12px; border-radius:9px; background:var(--brand-orange); color:var(--brand-navy); font-weight:var(--fw-bold); text-align:center; font-size:0.9375rem; }
901.lg-sh__findings { background:var(--color-bg-page); border:1px solid var(--color-border-subtle); border-radius:14px; padding:22px 24px; }
902.lg-sh__findings h3 { font-size:1.0625rem; font-weight:var(--fw-bold); color:var(--color-text-primary); margin:0 0 4px; }
903.lg-sh__findings p { font-size:var(--font-size-caption); color:var(--color-text-secondary); margin:0 0 16px; }
904.lg-sh__fitem { display:flex; gap:11px; align-items:flex-start; padding:11px 0; border-bottom:1px solid var(--color-border-subtle); opacity:0.4; transition:opacity 300ms ease; }
905.lg-sh__fitem:last-child { border-bottom:none; }
906.lg-sh__fitem.is-on { opacity:1; }
907.lg-sh__fico { flex-shrink:0; width:20px; height:20px; border-radius:50%; background:#FF6B6B; color:#fff; display:flex; align-items:center; justify-content:center; font-size:0.75rem; font-weight:800; margin-top:1px; }
908.lg-sh__ft { font-size:0.875rem; font-weight:var(--fw-semibold); color:var(--color-text-primary); }
909.lg-sh__fd { font-size:var(--font-size-caption); color:var(--color-text-secondary); line-height:1.45; margin-top:2px; }
910.lg-sh__count { display:inline-flex; align-items:center; gap:7px; margin-top:16px; font-family:var(--font-family-mono); font-size:0.8125rem; font-weight:700; color:#C0392B; }
911@media (prefers-reduced-motion: reduce){ .lg-sh__fitem{ transition:none; } }
912
913
914}</style><style is:global>@layer page-overrides {
915.hero{--hero-chrome:132px;--hero-kpi-reserve:88px;
915--hero-min-height:calc(100svh - var(--hero-chrome) - var(--hero-kpi-reserve));}
916@media (max-width:900px){.hero{--hero-chrome:108px;}}
917.hero h1,.hero .hero__title{font-size:clamp(1.9rem, min(6vw, 8vh), var(--font-size-h1,4.1875rem));line-height:1.12;}
918.hero__feature{display:flex;align-items:center;justify-content:center;}
919
920#lg-pruefen .lg-sec__eyebrow{font-size:1.05rem;font-weight:600;}
921#lg-pruefen .lg-eyebrow-tax{font-weight:900;color:var(--brand-navy,#003366);}
922
923 
924.faq .section-shell{display:grid;grid-template-columns:1fr 340px;column-gap:40px;row-gap:28px;align-items:start}
925.faq .section-head{grid-column:1 / -1}
926.faq .faq__filter{grid-column:1 / -1}
927.faq .faq__list{grid-column:1}
928.faq .faq__ask{grid-column:2;position:sticky;top:110px;margin-top:0}
929.faq .faq__ask{display:flex !important;flex-direction:column;align-items:flex-start;gap:16px}
930.faq .faq__ask-visual{width:56px;height:56px}
931.faq .faq__ask-text{width:100%}
932.faq .faq__ask-title,.faq .faq__ask-desc{width:100%;max-width:none}
933.faq .faq__ask-cta{width:100%}
934.faq .faq__ask-btn{width:100%;justify-content:center}
935@media(max-width:1024px){
936  .faq .section-shell{display:block}
937  .faq .faq__ask{position:static;margin-top:28px;display:grid !important;grid-template-columns:auto 1fr auto;align-items:center}
938  .faq .faq__ask-btn{width:auto}
939}
940 
941
942 
943.ac-path{position:absolute;left:16px;width:32px;z-index:5;display:none;pointer-events:none}
944@media(min-width:1440px){.ac-path{display:block}}
945.ac-path__line{position:absolute;left:15px;top:16px;bottom:16px;width:2px;background:rgba(148,163,184,.55)}
946.ac-path__line-fill{position:absolute;left:15px;top:16px;width:2px;height:0;background:var(--brand-orange,#FF8C00);box-shadow:0 0 6px rgba(255,140,0,.5)}
947.ac-path__marker{position:absolute;left:0;width:32px;height:32px;border-radius:999px;background:var(--color-surface,#fff);border:2px solid var(--color-border,#e2e8f0);display:flex;align-items:center;justify-content:center;font-size:.68rem;font-weight:800;color:var(--color-text-muted,#64748b);transition:background .2s ease,border-color .2s ease,color .2s ease,transform .2s ease,box-shadow .2s ease;box-shadow:0 1px 4px rgba(15,23,42,.15)}
948.ac-path__marker.is-passed{border-color:var(--brand-orange,#FF8C00);color:var(--brand-orange,#FF8C00)}
949.ac-path__marker.is-active{background:var(--brand-orange,#FF8C00);border-color:var(--brand-orange,#FF8C00);color:#fff;transform:scale(1.15);box-shadow:0 0 0 3px var(--color-surface,#fff),0 4px 10px rgba(0,0,0,.3)}
950 
951
952 
953.ac-rail{
954  position:fixed;left:22px;bottom:28px;z-index:40;
955  opacity:0;pointer-events:none;transform:translateX(-14px);
956  transition:opacity .35s ease,transform .35s ease,padding .25s ease;
957  background:var(--color-surface,#fff);
958  border-radius:20px;
959  box-shadow:0 16px 40px -14px rgba(15,23,42,.28),0 2px 8px rgba(15,23,42,.1);
960  padding:20px 22px;
961}
962.ac-rail.is-visible{opacity:1;pointer-events:auto;transform:translateX(0)}
963@media(min-width:1450px){.ac-rail{left:68px}}
964.ac-rail__list{list-style:none;margin:0;padding:0;position:relative}
965.ac-rail__list::before{content:"";position:absolute;left:12.5px;top:13.5px;bottom:13.5px;width:2px;background:var(--color-border,#e2e8f0)}
966.ac-rail__item{position:relative;display:flex;align-items:center;gap:12px;padding:3px 0;margin-bottom:16px;cursor:pointer;background:none;border:0;font:inherit;text-align:left}
967.ac-rail__item:last-child{margin-bottom:0}
968.ac-rail__num{flex:0 0 auto;width:27px;height:27px;border-radius:999px;background:var(--color-surface,#fff);border:2px solid var(--color-border,#e2e8f0);display:flex;align-items:center;justify-content:center;font-size:.68rem;font-weight:800;color:var(--color-text-muted,#64748b);transition:all .25s ease;position:relative;z-index:1;box-sizing:border-box}
969.ac-rail__label{font-size:.82rem;font-weight:600;color:var(--color-text-muted,#64748b);white-space:nowrap;transition:color .2s ease,font-weight .2s ease,max-width .25s ease,opacity .2s ease}
970.ac-rail__item:hover .ac-rail__num{border-color:var(--brand-navy,#003366)}
971.ac-rail__item:hover .ac-rail__label{color:var(--brand-navy,#003366);font-weight:800}
972.ac-rail__item.is-active .ac-rail__num{background:var(--brand-navy,#003366);border-color:var(--brand-navy,#003366);color:#fff;transform:scale(1.35);box-shadow:0 0 0 5px rgba(0,51,102,.18)}
973.ac-rail__item.is-active .ac-rail__label{color:var(--brand-navy,#003366);font-weight:800}
974.ac-rail__cta{display:flex;align-items:center;gap:12px;text-decoration:none;padding:3px 0 14px;margin-bottom:14px;border-bottom:1px solid var(--color-border,#e2e8f0);height:auto;background:none;box-shadow:none;border-radius:0}
975.ac-rail__cta-dot{width:16px;height:16px;border-radius:50%;flex:none;box-sizing:border-box;
975background:var(--brand-orange,#FF8C00);border:3px solid var(--brand-orange,#FF8C00);display:flex;align-items:center;justify-content:center;transition:transform .2s ease,box-shadow .2s ease}
976.ac-rail__cta-dot svg{width:8px;height:8px;color:#fff}
977.ac-rail__cta:hover .ac-rail__cta-dot{transform:scale(1.15);box-shadow:0 0 0 5px rgba(255,140,0,.2)}
978.ac-rail__cta-label{font-size:.82rem;font-weight:800;color:var(--brand-orange,#FF8C00);white-space:nowrap;transition:color .2s ease,max-width .25s ease,opacity .2s ease}
979.ac-rail__cta:hover .ac-rail__cta-label{color:#e07b00}
980@media(prefers-reduced-motion:reduce){.ac-rail,.ac-rail__num,.ac-rail__label,.ac-rail__cta-dot,.ac-rail__cta-label{transition:none}}
981@media(max-width:1449px){
982  .ac-rail{left:16px;bottom:16px;padding:18px 14px}
983  .ac-rail__label,.ac-rail__cta-label{max-width:0;opacity:0;overflow:hidden}
984  .ac-rail:hover{padding:18px 22px}
985  .ac-rail:hover .ac-rail__label,.ac-rail:hover .ac-rail__cta-label{max-width:160px;opacity:1}
986}
987@media(max-width:899px){.ac-rail{display:none!important}}
988 
989}</style>
989<script>window.__APPCORE_API_URL__ = "";</script>
989<link rel="stylesheet" href="/_astro/interactiveMap.BSwA76Pa.css">
990<link rel="stylesheet" href="/_astro/_slug_.CX22ciIl.css">
991<link rel="stylesheet" href="/_astro/_slug_.CD7qXGkk.css">
992<link rel="stylesheet" href="/_astro/_slug_.Be3SJTCB.css">
993<style>@layer components{.ai-text-disclosure{display:block;margin-block-end:var(--space-4, 16px);padding:var(--space-3, 12px) var(--space-4, 16px);border:1px solid var(--color-ai-disclosure-border, #d5d9e0);border-radius:var(--radius-card, 8px);background:var(--color-ai-disclosure-bg, #f4f6f9);color:var(--color-ai-disclosure-text, #1a1a1a);font-family:var(--font-family-sans, sans-serif);font-size:var(--font-size-caption, .875rem);line-height:1.5}.ai-text-disclosure__text{margin:0}.ai-text-disclosure__note{margin:var(--space-2, 8px) 0 0;color:var(--color-ai-disclosure-note-text, var(--color-text-secondary, #4b5563));font-size:var(--font-size-caption-sm, .8125rem);font-style:italic}}
994@layer components{.kw-cloud__heading{font-size:var(--font-size-caption, .75rem);text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted, #71809a);margin:0 0 12px}.kw-cloud__list{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}.kw-cloud__chip{display:inline-flex;align-items:center;min-height:24px;font-size:var(--font-size-body-sm, .875rem);line-height:1.35;padding:6px 12px;border-radius:999px;border:1px solid var(--color-border-subtle, #e6e9ef);color:var(--color-text-secondary, #4a5568);text-decoration:none}.kw-cloud__chip--link{color:var(--color-primary, #003366)}.kw-cloud__chip--link:hover{border-color:var(--color-primary, #003366)}.kw-cloud__chip--link:focus-visible{outline:2px solid var(--color-focus, var(--color-primary, #003366));outline-offset:2px}}
995.ins-listing[data-astro-cid-tiyu23xs]{padding:60px 32px;max-width:1080px;margin:0 auto}.ins-listing__header[data-astro-cid-tiyu23xs]{margin-bottom:32px}.ins-listing__eyebrow[data-astro-cid-tiyu23xs]{font-family:var(--font-family-mono, ui-monospace, monospace);font-size:var(--font-size-caption, .75rem);text-transform:uppercase;letter-spacing:.1em;color:var(--color-accent, #FF8C00);margin:0 0 8px}.ins-listing__title[data-astro-cid-tiyu23xs]{font-size:clamp(2rem,4vw,2.75rem);font-weight:800;margin:0 0 12px;color:var(--color-primary, #003366)}.ins-listing__lead[data-astro-cid-tiyu23xs]{font-size:var(--font-size-lead, 1.25rem);color:var(--color-text-secondary, #4a5568);margin:0;max-width:640px}.ifax__list[data-astro-cid-tiyu23xs]{list-style:none;margin:0;padding:0;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.ifax__item[data-astro-cid-tiyu23xs]{border:1px solid var(--color-border-subtle, #e6e9ef);border-radius:10px;padding:20px 22px;background:var(--color-surface, #fff)}.ifax__link[data-astro-cid-tiyu23xs]{text-decoration:none;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.ifax__term[data-astro-cid-tiyu23xs]{font-size:1.125rem;font-weight:700;color:var(--color-primary, #003366)}.ifax__short[data-astro-cid-tiyu23xs]{font-family:var(--font-family-mono, ui-monospace, monospace);font-size:var(--font-size-caption, .75rem);color:var(--color-text-muted, #71809a)}.ifax__link[data-astro-cid-tiyu23xs]:hover .ifax__term[data-astro-cid-tiyu23xs],.ifax__link[data-astro-cid-tiyu23xs]:focus-visible .ifax__term[data-astro-cid-tiyu23xs]{text-decoration:underline}.ifax__teaser[data-astro-cid-tiyu23xs]{margin:8px 0 0;font-size:.9375rem;line-height:1.55;color:var(--color-text-secondary, #4a5568)}.ifax__empty[data-astro-cid-tiyu23xs]{color:var(--color-text-muted, #71809a);font-size:var(--font-size-lead, 1.125rem);margin:0}
996</style>
997<link rel="stylesheet" href="/_astro/_slug_.LFfpyXFt.css">
998<link rel="stylesheet" href="/_astro/_slug_.7jCqIA6h.css">
999<link rel="stylesheet" href="/_astro/_slug_.FDjEaRhI.css">
1000<link rel="stylesheet" href="/_astro/_slug_.DCsfBEfR.css">
1001<link rel="stylesheet" href="/_astro/_slug_.aPYlC0QL.css"></head> <body> <a href="#main" class="skip-link">Zum Hauptinhalt springen</a>   <aside class="promo-bar promo-bar--slider" id="promoBar" role="region" aria-label="Hinweis-Banner" aria-live="polite" aria-atomic="false" style="--promo-rotation-ms:7000ms" data-rotation-ms="7000"><div class="container promo-bar__inner"><div class="promo-bar__viewport">
1001<div class="promo-bar__slide" data-slide="0" data-active="true"><span class="promo-bar__badge">BFSG</span><span class="promo-bar__text">Seit 28. Juni 2025 gilt die Barrierefreiheitspflicht. Prüf in 2 Minuten, wo du stehst.</span><a class="promo-bar__link" href="/loesung/barrierefreiheit" aria-label="Mehr zu BFSG"><span class="promo-bar__link-text">Mehr erfahren</span><svg class="promo-bar__link-arrow" viewBox="0 0 16 16" aria-hidden="true"><path d="M3 8h10M9 4l4 4-4 4" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></a></div><div class="promo-bar__slide" data-slide="1" data-active="false"><span class="promo-bar__badge">DSGVO</span><span class="promo-bar__text">Cookie-Banner sind seit drei Jahren Abmahn-Thema. Wir prüfen, wo es hakt.</span><a class="promo-bar__link" href="/loesung/dsgvo-check" aria-label="Mehr zu DSGVO"><span class="promo-bar__link-text">Mehr erfahren</span><svg class="promo-bar__link-arrow" viewBox="0 0 16 16" aria-hidden="true"><path d="M3 8h10M9 4l4 4-4 4" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></a></div><div class="promo-bar__slide" data-slide="2" data-active="false"><span class="promo-bar__badge">
1001EU AI Act</span><span class="promo-bar__text">KI-Kennzeichnungspflicht ab August 2026. Bereite dich jetzt vor.</span><a class="promo-bar__link" href="/loesung/ai-act" aria-label="Mehr zur EU KI-Verordnung"><span class="promo-bar__link-text">Mehr erfahren</span><svg class="promo-bar__link-arrow" viewBox="0 0 16 16" aria-hidden="true"><path d="M3 8h10M9 4l4 4-4 4" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></a></div><div class="promo-bar__slide" data-slide="3" data-active="false"><span class="promo-bar__badge">UWG</span><span class="promo-bar__text">Wer mit KI wirbt, muss auch KI liefern. Sonst kommt die Abmahnung.</span><a class="promo-bar__link" href="/loesung/ki-claims-pruefen" aria-label="Mehr zu Werbe-Claims"><span class="promo-bar__link-text">Mehr erfahren</span><svg class="promo-bar__link-arrow" viewBox="0 0 16 16" aria-hidden="true"><path d="M3 8h10M9 4l4 4-4 4" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></a></div><div class="promo-bar__slide" data-slide="4" data-active="false"><span class="promo-bar__badge">TDDDG</span><span class="promo-bar__text">TDDDG hat das TTDSG abgelöst. Was sich für dein Tracking ändert.</span><a class="promo-bar__link" href="/loesung/dsgvo-check" aria-label="Mehr zu TDDDG"><span class="promo-bar__link-text">Mehr erfahren</span>
1001<svg class="promo-bar__link-arrow" viewBox="0 0 16 16" aria-hidden="true"><path d="M3 8h10M9 4l4 4-4 4" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></a></div></div><button type="button" class="promo-bar__close" id="promoBarClose" aria-label="Promo-Bar schließen">✕</button></div></aside>
1001<script type="module">function E(o){const{bar:e,slideCount:m,rotationMs:i,prefersReducedMotion:t,onActivate:n}=o;let s=0,r=null,u=null;function h(){s=(s+1)%m,n(s)}function f(){r&&clearInterval(r),r=null}function d(){u&&clearTimeout(u),u=null}function p(){if(t){e.removeAttribute("data-rotating");return}f(),e.setAttribute("data-rotating","true"),e.removeAttribute("data-paused"),r=setInterval(h,i)}function c(){d(),f(),e.setAttribute("data-paused","true")}function l(){d(),e.removeAttribute("data-paused"),p()}function v(){d(),!t&&(u=setTimeout(l,4e3))}return{start:p,hoverStart:a=>{a==="mouse"&&c()},hoverEnd:a=>{a==="mouse"&&l()},touchStart:c,touchEnd:v,touchCancel:v,visibilityChange:a=>a?c():l()}}function b(o,e){return o!=="false"&&e==="1"}(function(){if(typeof window>"u")return;const o="appcore.promo.dismissed",e=document.getElementById("promoBar");if(!e)return;if(b(e.dataset.dismissible,sessionStorage.getItem(o))){e.style.display="none";return}if(document.getElementById("promoBarClose")?.addEventListener("click",()=>{sessionStorage.setItem(o,"1"),e.style.display="none"}),!e.classList.contains("promo-bar--slider"))return;const i=e.querySelectorAll(".promo-bar__slide");if(i.length<2)return;const t=E({bar:e,slideCount:i.length,rotationMs:Number(e.dataset.rotationMs)||7e3,prefersReducedMotion:window.matchMedia("(prefers-reduced-motion: reduce)").matches,onActivate:n=>i.forEach((s,r)=>s.setAttribute("data-active",r===n?"true":"false"))});e.addEventListener("pointerenter",n=>t.hoverStart(n.pointerType)),e.addEventListener("pointerleave",n=>t.hoverEnd(n.pointerType)),document.addEventListener("visibilitychange",()=>t.visibilityChange(document.hidden)),e.addEventListener("touchstart",t.touchStart,{passive:!0}),e.addEventListener("touchend",t.touchEnd,{passive:!0}),e.addEventListener("touchcancel",t.touchCancel,{passive:!0}),t.start()})();</script>
1001 <header class="header" id="siteHeader"> <div class="container"> <div class="header__inner"> <a href="/" class="header__brand ac-logo-link" aria-label="AppCore Startseite"> <span class="ac-logo ac-logo--light" style="--logo-size: 36px;"> <span class="ac-logo__wm"> <span class="ac-logo__app">App</span><span class="ac-logo__core">Core</span> </span> <span class="ac-logo__sl">Powered by Experts</span> </span>  </a> <nav class="header__nav" aria-label="Hauptnavigation"> <details class="mega-menu-wrap nav__mega-wrap" data-mega> <summary class="header__nav-link header__nav-link--mega" aria-haspopup="true" aria-expanded="false">AppCore CMS²</summary> <div class="nav-mega" role="region" aria-label="AppCore CMS²-Übersicht"> <div class="nav-mega__inner"> <div class="nav-mega__stage-card" data-stage="01"> <div class="nav-mega__stage-head"> <div class="nav-mega__stage-num-wrap"> <span class="nav-mega__stage-num">01</span> <div class="nav-mega__stage-icon" aria-hidden="true"> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="7"/><path d="M16 16l5 5" stroke-linecap="round"/><path d="M11 7v4l3 2" stroke-linecap="round" stroke-linejoin="round"/></svg>  </div> </div> <div class="nav-mega__stage-meta"> <span class="nav-mega__stage-label">Stufe 1</span> <span class="nav-mega__stage-title">Scannen</span> </div> </div> <div class="nav-mega__stage-body"> <a href="/cms" class="nav-mega__link"> <div class="nav-mega__link-content"> <span class="nav-mega__link-title">AppCore CMS²</span> <span class="nav-mega__link-desc">CMS² = Content Management System mit eingebauter Compliance</span> </div>
1001 <svg class="nav-mega__link-arrow" viewBox="0 0 20 20" aria-hidden="true"> <path d="M5 10h10M11 5l5 5-5 5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" fill="none"></path> </svg> </a><a href="/loesung/digital-decay" class="nav-mega__link nav-mega__link--featured"> <div class="nav-mega__link-content"> <span class="nav-mega__link-title">Digital Decay</span> <span class="nav-mega__link-desc">[DigitalDecay] · Stale Content, Broken Links, veraltete Daten</span> </div> <svg class="nav-mega__link-arrow" viewBox="0 0 20 20" aria-hidden="true"> <path d="M5 10h10M11 5l5 5-5 5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" fill="none"></path> </svg> </a> </div> </div><div class="nav-mega__stage-card nav-mega__stage-card--wide" data-stage="02"> <div class="nav-mega__stage-head"> <div class="nav-mega__stage-num-wrap"> <span class="nav-mega__stage-num">02</span> <div class="nav-mega__stage-icon" aria-hidden="true"> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M14 4l4 4-8 8H6v-4l8-8z" stroke-linejoin="round"/><path d="M3 21h18" stroke-linecap="round"/><circle cx="17" cy="7" r="0.5" fill="currentColor"/></svg>  </div> </div> <div class="nav-mega__stage-meta"> <span class="nav-mega__stage-label">Stufe 2 · 14 Lösungen</span> <span class="nav-mega__stage-title">Optimieren</span> </div> </div> <div class="nav-mega__stage-body"> <div class="nav-mega__optimize-grid"> <div class="nav-mega__og"> <span class="nav-mega__og-title">Compliance</span> <a href="/loesung/barrierefreiheit" class="nav-mega__og-link"> <span class="nav-mega__og-link-content"> <span class="nav-mega__og-link-title">Barrierefreiheit</span> <span class="nav-mega__og-link-desc">[AccessGuard]</span> </span>
1001 <svg class="nav-mega__link-arrow" viewBox="0 0 20 20" aria-hidden="true"> <path d="M5 10h10M11 5l5 5-5 5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" fill="none"></path> </svg> </a><a href="/loesung/shop-pflichtangaben" class="nav-mega__og-link"> <span class="nav-mega__og-link-content"> <span class="nav-mega__og-link-title">Shop-Pflichtangaben</span> <span class="nav-mega__og-link-desc">[ShopGuard]</span> </span> <svg class="nav-mega__link-arrow" viewBox="0 0 20 20" aria-hidden="true"> <path d="M5 10h10M11 5l5 5-5 5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" fill="none"></path> </svg> </a><a href="/loesung/dsgvo-check" class="nav-mega__og-link"> <span class="nav-mega__og-link-content"> <span class="nav-mega__og-link-title">DSGVO-Check</span> <span class="nav-mega__og-link-desc">[PrivacyScanner]</span> </span> <svg class="nav-mega__link-arrow" viewBox="0 0 20 20" aria-hidden="true"> <path d="M5 10h10M11 5l5 5-5 5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" fill="none"></path> </svg> </a><a href="/loesung/cookie-tracking" class="nav-mega__og-link"> <span class="nav-mega__og-link-content"> <span class="nav-mega__og-link-title">Cookies &amp; Tracking</span> <span class="nav-mega__og-link-desc">[CookieGuard]</span> </span>
1001 <svg class="nav-mega__link-arrow" viewBox="0 0 20 20" aria-hidden="true"> <path d="M5 10h10M11 5l5 5-5 5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" fill="none"></path> </svg> </a><a href="/loesung/agb-check" class="nav-mega__og-link"> <span class="nav-mega__og-link-content"> <span class="nav-mega__og-link-title">AGB-Check</span> <span class="nav-mega__og-link-desc">[TermsGuard]</span> </span> <svg class="nav-mega__link-arrow" viewBox="0 0 20 20" aria-hidden="true"> <path d="M5 10h10M11 5l5 5-5 5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" fill="none"></path> </svg> </a> </div><div class="nav-mega__og"> <span class="nav-mega__og-title">Kommunikation</span> <a href="/loesung/ki-claims-pruefen" class="nav-mega__og-link"> <span class="nav-mega__og-link-content"> <span class="nav-mega__og-link-title">KI-Claims prüfen</span> <span class="nav-mega__og-link-desc">[ClaimScanner]</span> </span> <svg class="nav-mega__link-arrow" viewBox="0 0 20 20" aria-hidden="true"> <path d="M5 10h10M11 5l5 5-5 5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" fill="none"></path> </svg> </a><a href="/loesung/green-claims" class="nav-mega__og-link"> <span class="nav-mega__og-link-content"> <span class="nav-mega__og-link-title">Green Claims</span> <span class="nav-mega__og-link-desc">[GreenClaims]</span> </span>
1001 <svg class="nav-mega__link-arrow" viewBox="0 0 20 20" aria-hidden="true"> <path d="M5 10h10M11 5l5 5-5 5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" fill="none"></path> </svg> </a><a href="/loesung/health-claims" class="nav-mega__og-link"> <span class="nav-mega__og-link-content"> <span class="nav-mega__og-link-title">Health Claims</span> <span class="nav-mega__og-link-desc">[HealthClaims]</span> </span> <svg class="nav-mega__link-arrow" viewBox="0 0 20 20" aria-hidden="true"> <path d="M5 10h10M11 5l5 5-5 5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" fill="none"></path> </svg> </a><a href="/loesung/bewertungen" class="nav-mega__og-link"> <span class="nav-mega__og-link-content"> <span class="nav-mega__og-link-title">Bewertungen</span> <span class="nav-mega__og-link-desc">[ReviewGuard]</span> </span> <svg class="nav-mega__link-arrow" viewBox="0 0 20 20" aria-hidden="true"> <path d="M5 10h10M11 5l5 5-5 5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" fill="none"></path> </svg> </a> </div><div class="nav-mega__og"> <span class="nav-mega__og-title">Content</span> <a href="/loesung/quellen-validierung" class="nav-mega__og-link"> <span class="nav-mega__og-link-content"> <span class="nav-mega__og-link-title">Quellen-Validierung</span> <span class="nav-mega__og-link-desc">[SourceShield]</span> </span>
1001 <svg class="nav-mega__link-arrow" viewBox="0 0 20 20" aria-hidden="true"> <path d="M5 10h10M11 5l5 5-5 5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" fill="none"></path> </svg> </a><a href="/loesung/bild-rechte" class="nav-mega__og-link"> <span class="nav-mega__og-link-content"> <span class="nav-mega__og-link-title">Bild-Rechte</span> <span class="nav-mega__og-link-desc">[MediaShield]</span> </span> <svg class="nav-mega__link-arrow" viewBox="0 0 20 20" aria-hidden="true"> <path d="M5 10h10M11 5l5 5-5 5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" fill="none"></path> </svg> </a><a href="/loesung/inhalte-aktualisieren" class="nav-mega__og-link"> <span class="nav-mega__og-link-content"> <span class="nav-mega__og-link-title">Inhalte aktualisieren</span> <span class="nav-mega__og-link-desc">[ContentMatch]</span> </span> <svg class="nav-mega__link-arrow" viewBox="0 0 20 20" aria-hidden="true"> <path d="M5 10h10M11 5l5 5-5 5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" fill="none"></path> </svg> </a> </div><div class="nav-mega__og"> <span class="nav-mega__og-title">Strategie</span> <a href="/loesung/ai-act" class="nav-mega__og-link"> <span class="nav-mega__og-link-content"> <span class="nav-mega__og-link-title">AI Act</span> <span class="nav-mega__og-link-desc">[AIActGuard]</span> </span>
1001 <svg class="nav-mega__link-arrow" viewBox="0 0 20 20" aria-hidden="true"> <path d="M5 10h10M11 5l5 5-5 5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" fill="none"></path> </svg> </a><a href="/loesung/sichtbarkeit" class="nav-mega__og-link"> <span class="nav-mega__og-link-content"> <span class="nav-mega__og-link-title">Sichtbarkeit</span> <span class="nav-mega__og-link-desc">[VisibilityGuard]</span> </span> <svg class="nav-mega__link-arrow" viewBox="0 0 20 20" aria-hidden="true"> <path d="M5 10h10M11 5l5 5-5 5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" fill="none"></path> </svg> </a> </div> </div> </div> </div><div class="nav-mega__stage-card" data-stage="03"> <div class="nav-mega__stage-head"> <div class="nav-mega__stage-num-wrap"> <span class="nav-mega__stage-num">03</span> <div class="nav-mega__stage-icon" aria-hidden="true"> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2l9 4v6c0 5-3.5 8.5-9 10-5.5-1.5-9-5-9-10V6l9-4z" stroke-linejoin="round"/><path d="M8 12l3 3 5-5" stroke-linecap="round" stroke-linejoin="round"/></svg>  </div> </div> <div class="nav-mega__stage-meta"> <span class="nav-mega__stage-label">Stufe 3</span> <span class="nav-mega__stage-title">Validieren</span> </div> </div> <div class="nav-mega__stage-body"> <a href="/loesung/beweiskette" class="nav-mega__link"> <div class="nav-mega__link-content"> <span class="nav-mega__link-title">Beweiskette</span> <span class="nav-mega__link-desc">[AuditVault] · Audit-Trail, Hash-Zeitstempel</span> </div>
1001 <svg class="nav-mega__link-arrow" viewBox="0 0 20 20" aria-hidden="true"> <path d="M5 10h10M11 5l5 5-5 5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" fill="none"></path> </svg> </a> </div> </div><div class="nav-mega__stage-card" data-stage="04"> <div class="nav-mega__stage-head"> <div class="nav-mega__stage-num-wrap"> <span class="nav-mega__stage-num">04</span> <div class="nav-mega__stage-icon" aria-hidden="true"> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 2L11 13" stroke-linecap="round" stroke-linejoin="round"/><path d="M22 2l-7 20-4-9-9-4 20-7z" stroke-linejoin="round"/></svg>  </div> </div> <div class="nav-mega__stage-meta"> <span class="nav-mega__stage-label">Stufe 4</span> <span class="nav-mega__stage-title">Publizieren</span> </div> </div> <div class="nav-mega__stage-body"> <a href="/loesung/cms-migration" class="nav-mega__link"> <div class="nav-mega__link-content"> <span class="nav-mega__link-title">CMS-Migration</span> <span class="nav-mega__link-desc">[ContentMigrator] · Redirect, Consent-Übertragung</span> </div>
1001 <svg class="nav-mega__link-arrow" viewBox="0 0 20 20" aria-hidden="true"> <path d="M5 10h10M11 5l5 5-5 5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" fill="none"></path> </svg> </a><a href="/loesung/freigabe-prozess" class="nav-mega__link"> <div class="nav-mega__link-content"> <span class="nav-mega__link-title">Freigabe-Prozess</span> <span class="nav-mega__link-desc">[PublishGate] · Pre-Publish, Vier-Augen</span> </div> <svg class="nav-mega__link-arrow" viewBox="0 0 20 20" aria-hidden="true"> <path d="M5 10h10M11 5l5 5-5 5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" fill="none"></path> </svg> </a> </div> </div><div class="nav-mega__stage-card" data-stage="05"> <div class="nav-mega__stage-head"> <div class="nav-mega__stage-num-wrap"> <span class="nav-mega__stage-num">05</span> <div class="nav-mega__stage-icon" aria-hidden="true"> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M18 8a6 6 0 00-12 0c0 7-3 9-3 9h18s-3-2-3-9" stroke-linecap="round"/><path d="M10 21a2 2 0 004 0" stroke-linecap="round"/></svg>
1001 <svg class="nav-mega__stage-icon-pulse-overlay" viewBox="0 0 24 24" aria-hidden="true"> <circle class="nav-mega__stage-icon-pulse" cx="19" cy="6" r="2" fill="#d04340"></circle> </svg> </div> </div> <div class="nav-mega__stage-meta"> <span class="nav-mega__stage-label">Stufe 5 · 2 Lösungen</span> <span class="nav-mega__stage-title">Überwachen</span> </div> </div> <div class="nav-mega__stage-body"> <a href="/loesung/normen-monitoring" class="nav-mega__link"> <div class="nav-mega__link-content"> <span class="nav-mega__link-title">Normen-Monitoring</span> <span class="nav-mega__link-desc">[NormTracker] · Gesetze, BGH, Behörden</span> </div> <svg class="nav-mega__link-arrow" viewBox="0 0 20 20" aria-hidden="true"> <path d="M5 10h10M11 5l5 5-5 5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" fill="none"></path> </svg> </a><a href="/loesung/drift-monitoring" class="nav-mega__link"> <div class="nav-mega__link-content"> <span class="nav-mega__link-title">Drift-Monitoring</span> <span class="nav-mega__link-desc">[DriftDetect] · Content-Drift, Score-Verfall</span> </div>
1001 <svg class="nav-mega__link-arrow" viewBox="0 0 20 20" aria-hidden="true"> <path d="M5 10h10M11 5l5 5-5 5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" fill="none"></path> </svg> </a> </div> </div> </div> <div class="nav-mega__footer"> <div class="nav-mega__footer-text"> <strong>Alle 20 Lösungen sind fest im AppCore CMS² eingebaut.</strong> Ein Preis nach Seitenzahl und Branche. </div> <a href="/loesung" class="nav-mega__footer-link"> <span>Alle Lösungen im Überblick</span> <svg viewBox="0 0 20 20" aria-hidden="true"><path d="M5 10h10M11 5l5 5-5 5" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg> </a> </div> </div> </details><details class="mega-menu-wrap nav__mega-wrap" data-mega> <summary class="header__nav-link header__nav-link--mega" aria-haspopup="true" aria-expanded="false">Branchen</summary> <div class="nav-mega" role="region" aria-label="Branchen-Übersicht"> <div class="nav-mega__inner nav-mega__inner--simple"> <div class="nav-mega__stage-card" data-stage="01"> <div class="nav-mega__stage-head"> <div class="nav-mega__stage-num-wrap"> <span class="nav-mega__stage-num">01</span> <div class="nav-mega__stage-icon" aria-hidden="true"> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 20s-7-4.5-9.5-9C.7 7.2 3 3.5 7 3.5c2.2 0 3.8 1.2 5 3 1.2-1.8 2.8-3 5-3 4 0 6.3 3.7 4.5 7.5C19 15.5 12 20 12 20z" stroke-linejoin="round"></path></svg>  </div> </div> <div class="nav-mega__stage-meta"> <span class="nav-mega__stage-label">4 Segmente</span> <span class="nav-mega__stage-title">Healthcare &amp; Medizin</span> </div> </div> <div class="nav-mega__stage-body"> <a href="/branchen/aerzte-heilberufe" class="nav-mega__link"> <div class="nav-mega__link-content"> <span class="nav-mega__link-title">Ärzte &amp; Heilberufe</span> <span class="nav-mega__link-desc">Praxis-Websites nach HWG und Berufsrecht geprüft.</span> </div>
1001 <svg class="nav-mega__link-arrow" viewBox="0 0 20 20" aria-hidden="true"> <path d="M5 10h10M11 5l5 5-5 5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" fill="none"></path> </svg> </a><a href="/branchen/apotheken-versandhandel" class="nav-mega__link"> <div class="nav-mega__link-content"> <span class="nav-mega__link-title">Apotheken &amp; Versandhandel</span> <span class="nav-mega__link-desc">Vor-Ort und Versandhandel, apothekenrechtlich geprüft.</span> </div> <svg class="nav-mega__link-arrow" viewBox="0 0 20 20" aria-hidden="true"> <path d="M5 10h10M11 5l5 5-5 5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" fill="none"></path> </svg> </a><a href="/branchen/sanitaetshaeuser-hilfsmittel-reha" class="nav-mega__link"> <div class="nav-mega__link-content"> <span class="nav-mega__link-title">Sanitätshäuser, Hilfsmittel &amp; Reha</span> <span class="nav-mega__link-desc">Hilfsmittel-Angebote, korrekt ausgezeichnet und barrierefrei.</span> </div>
1001 <svg class="nav-mega__link-arrow" viewBox="0 0 20 20" aria-hidden="true"> <path d="M5 10h10M11 5l5 5-5 5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" fill="none"></path> </svg> </a><a href="/branchen/pharma-arzneimittelhersteller" class="nav-mega__link"> <div class="nav-mega__link-content"> <span class="nav-mega__link-title">Pharma &amp; Arzneimittelhersteller</span> <span class="nav-mega__link-desc">Herstellerangaben und Health Claims, HWG-geprüft kommuniziert.</span> </div> <svg class="nav-mega__link-arrow" viewBox="0 0 20 20" aria-hidden="true"> <path d="M5 10h10M11 5l5 5-5 5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" fill="none"></path> </svg> </a> </div> </div><div class="nav-mega__stage-card" data-stage="02"> <div class="nav-mega__stage-head"> <div class="nav-mega__stage-num-wrap"> <span class="nav-mega__stage-num">02</span> <div class="nav-mega__stage-icon" aria-hidden="true"> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="7" width="18" height="13" rx="2"/><path d="M8 7V5a2 2 0 012-2h4a2 2 0 012 2v2" stroke-linecap="round" stroke-linejoin="round"/><path d="M3 13h18" stroke-linecap="round"/></svg>  </div> </div> <div class="nav-mega__stage-meta"> <span class="nav-mega__stage-label">3 Segmente</span> <span class="nav-mega__stage-title">Lokaler Mittelstand &amp; KMUs</span> </div> </div> <div class="nav-mega__stage-body"> <a href="/branchen/handwerk" class="nav-mega__link"> <div class="nav-mega__link-content"> <span class="nav-mega__link-title">Handwerk</span> <span class="nav-mega__link-desc">Website-Pflichtangaben für Betriebe, ohne Agentur-Aufwand.</span> </div>
1001 <svg class="nav-mega__link-arrow" viewBox="0 0 20 20" aria-hidden="true"> <path d="M5 10h10M11 5l5 5-5 5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" fill="none"></path> </svg> </a><a href="/branchen/gewerbe" class="nav-mega__link"> <div class="nav-mega__link-content"> <span class="nav-mega__link-title">Gewerbe</span> <span class="nav-mega__link-desc">Compliance für lokale Gewerbebetriebe, zum Fixpreis erledigt.</span> </div> <svg class="nav-mega__link-arrow" viewBox="0 0 20 20" aria-hidden="true"> <path d="M5 10h10M11 5l5 5-5 5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" fill="none"></path> </svg> </a><a href="/branchen/dienstleistung" class="nav-mega__link"> <div class="nav-mega__link-content"> <span class="nav-mega__link-title">Dienstleistung</span> <span class="nav-mega__link-desc">Geprüfte Auftritte für Dienstleister aller Art.</span> </div> <svg class="nav-mega__link-arrow" viewBox="0 0 20 20" aria-hidden="true"> <path d="M5 10h10M11 5l5 5-5 5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" fill="none"></path> </svg> </a> </div> </div><div class="nav-mega__stage-card" data-stage="03"> <div class="nav-mega__stage-head"> <div class="nav-mega__stage-num-wrap"> <span class="nav-mega__stage-num">03</span> <div class="nav-mega__stage-icon" aria-hidden="true"> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 3v18M5 7l-3 6a3 3 0 006 0l-3-6zM19 7l-3 6a3 3 0 006 0l-3-6zM5 7h14M9 21h6" stroke-linecap="round" stroke-linejoin="round"/></svg>  </div> </div> <div class="nav-mega__stage-meta"> <span class="nav-mega__stage-label">3 Segmente</span> <span class="nav-mega__stage-title">Rechts- und Beratungswesen</span> </div> </div> <div class="nav-mega__stage-body"> <a href="/branchen/anwaltskanzlei" class="nav-mega__link"> <div class="nav-mega__link-content"> <span class="nav-mega__link-title">Anwaltskanzlei</span> <span class="nav-mega__link-desc">Kanzlei-Websites nach Berufsrecht geprüft.</span> </div>
1001 <svg class="nav-mega__link-arrow" viewBox="0 0 20 20" aria-hidden="true"> <path d="M5 10h10M11 5l5 5-5 5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" fill="none"></path> </svg> </a><a href="/branchen/steuerberater" class="nav-mega__link"> <div class="nav-mega__link-content"> <span class="nav-mega__link-title">Steuerberater</span> <span class="nav-mega__link-desc">Kanzlei-Auftritte, die berufsrechtlichen Vorgaben entsprechen.</span> </div> <svg class="nav-mega__link-arrow" viewBox="0 0 20 20" aria-hidden="true"> <path d="M5 10h10M11 5l5 5-5 5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" fill="none"></path> </svg> </a><a href="/branchen/notare" class="nav-mega__link"> <div class="nav-mega__link-content"> <span class="nav-mega__link-title">Notare</span> <span class="nav-mega__link-desc">Notariats-Websites, korrekt und zurückhaltend nach Standesrecht.</span> </div> <svg class="nav-mega__link-arrow" viewBox="0 0 20 20" aria-hidden="true"> <path d="M5 10h10M11 5l5 5-5 5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" fill="none"></path> </svg> </a> </div> </div><div class="nav-mega__stage-card" data-stage="04"> <div class="nav-mega__stage-head"> <div class="nav-mega__stage-num-wrap"> <span class="nav-mega__stage-num">04</span> <div class="nav-mega__stage-icon" aria-hidden="true"> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M5 21c8 0 14-6 14-14V4h-3C8 4 5 10 5 17v4z" stroke-linejoin="round"/><path d="M5 21c3-3 5-6 6-10" stroke-linecap="round"/></svg>  </div> </div> <div class="nav-mega__stage-meta"> <span class="nav-mega__stage-label">3 Segmente</span> <span class="nav-mega__stage-title">ESG &amp; Nachhaltigkeit</span> </div> </div> <div class="nav-mega__stage-body"> <a href="/branchen/esg-beratungshaeuser" class="nav-mega__link"> <div class="nav-mega__link-content"> <span class="nav-mega__link-title">ESG-Beratungshäuser</span> <span class="nav-mega__link-desc">Nachweisbare Aussagen statt Greenwashing-Risiko.</span> </div>
1001 <svg class="nav-mega__link-arrow" viewBox="0 0 20 20" aria-hidden="true"> <path d="M5 10h10M11 5l5 5-5 5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" fill="none"></path> </svg> </a><a href="/branchen/esg-auditoren" class="nav-mega__link"> <div class="nav-mega__link-content"> <span class="nav-mega__link-title">ESG-Auditoren</span> <span class="nav-mega__link-desc">Prüf-Angebote, selbst geprüft kommuniziert.</span> </div> <svg class="nav-mega__link-arrow" viewBox="0 0 20 20" aria-hidden="true"> <path d="M5 10h10M11 5l5 5-5 5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" fill="none"></path> </svg> </a><a href="/branchen/csrd-unternehmen" class="nav-mega__link"> <div class="nav-mega__link-content"> <span class="nav-mega__link-title">CSRD-Unternehmen</span> <span class="nav-mega__link-desc">Berichtspflichtige Unternehmen, Website inklusive geprüft.</span> </div> <svg class="nav-mega__link-arrow" viewBox="0 0 20 20" aria-hidden="true"> <path d="M5 10h10M11 5l5 5-5 5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" fill="none"></path> </svg> </a> </div> </div><div class="nav-mega__stage-card" data-stage="05"> <div class="nav-mega__stage-head"> <div class="nav-mega__stage-num-wrap"> <span class="nav-mega__stage-num">05</span> <div class="nav-mega__stage-icon" aria-hidden="true"> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 10l9-6 9 6" stroke-linecap="round" stroke-linejoin="round"/><path d="M5 10v9M10 10v9M14 10v9M19 10v9" stroke-linecap="round"/><path d="M3 21h18" stroke-linecap="round"/></svg>  </div> </div> <div class="nav-mega__stage-meta"> <span class="nav-mega__stage-label">3 Segmente</span> <span class="nav-mega__stage-title">Finanz- &amp; Versicherungswirtschaft</span> </div> </div> <div class="nav-mega__stage-body"> <a href="/branchen/banken" class="nav-mega__link"> <div class="nav-mega__link-content"> <span class="nav-mega__link-title">Banken</span> <span class="nav-mega__link-desc">Web-Auftritte nach Finanzaufsicht und Werberecht geprüft.</span> </div>
1001 <svg class="nav-mega__link-arrow" viewBox="0 0 20 20" aria-hidden="true"> <path d="M5 10h10M11 5l5 5-5 5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" fill="none"></path> </svg> </a><a href="/branchen/versicherungen" class="nav-mega__link"> <div class="nav-mega__link-content"> <span class="nav-mega__link-title">Versicherungen</span> <span class="nav-mega__link-desc">Produktkommunikation, versicherungsrechtlich geprüft.</span> </div> <svg class="nav-mega__link-arrow" viewBox="0 0 20 20" aria-hidden="true"> <path d="M5 10h10M11 5l5 5-5 5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" fill="none"></path> </svg> </a><a href="/branchen/asset-management" class="nav-mega__link"> <div class="nav-mega__link-content"> <span class="nav-mega__link-title">Asset Management</span> <span class="nav-mega__link-desc">Kapitalanlage-Kommunikation, Werberecht-geprüft.</span> </div> <svg class="nav-mega__link-arrow" viewBox="0 0 20 20" aria-hidden="true"> <path d="M5 10h10M11 5l5 5-5 5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" fill="none"></path> </svg> </a> </div> </div><div class="nav-mega__stage-card" data-stage="06"> <div class="nav-mega__stage-head"> <div class="nav-mega__stage-num-wrap"> <span class="nav-mega__stage-num">06</span> <div class="nav-mega__stage-icon" aria-hidden="true"> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="9"/><path d="M15 9l-2 6-6 2 2-6 6-2z" stroke-linejoin="round"/></svg>  </div> </div> <div class="nav-mega__stage-meta"> <span class="nav-mega__stage-label">3 Segmente</span> <span class="nav-mega__stage-title">Tourismus- &amp; Freizeitwirtschaft</span> </div> </div> <div class="nav-mega__stage-body"> <a href="/branchen/hotel-beherbergung" class="nav-mega__link"> <div class="nav-mega__link-content"> <span class="nav-mega__link-title">Hotel &amp; Beherbergung</span> <span class="nav-mega__link-desc">Buchbare Angebote, Preisangaben und Barrierefreiheit geprüft.</span> </div>
1001 <svg class="nav-mega__link-arrow" viewBox="0 0 20 20" aria-hidden="true"> <path d="M5 10h10M11 5l5 5-5 5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" fill="none"></path> </svg> </a><a href="/branchen/reiseveranstalter" class="nav-mega__link"> <div class="nav-mega__link-content"> <span class="nav-mega__link-title">Reiseveranstalter</span> <span class="nav-mega__link-desc">Pauschalreise-Pflichtangaben, korrekt und vollständig.</span> </div> <svg class="nav-mega__link-arrow" viewBox="0 0 20 20" aria-hidden="true"> <path d="M5 10h10M11 5l5 5-5 5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" fill="none"></path> </svg> </a><a href="/branchen/destinationen-tourismusverbaende" class="nav-mega__link"> <div class="nav-mega__link-content"> <span class="nav-mega__link-title">Destinationen &amp; Tourismusverbände</span> <span class="nav-mega__link-desc">Öffentliche Auftritte, barrierefrei und geprüft.</span> </div> <svg class="nav-mega__link-arrow" viewB
1001ox="0 0 20 20" aria-hidden="true"> <path d="M5 10h10M11 5l5 5-5 5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" fill="none"></path> </svg> </a> </div> </div> </div> <div class="nav-mega__footer"> <div class="nav-mega__footer-text"> <strong>Sechs Branchen, ein Prüfprinzip.</strong> Landingpages und eigene Domains folgen, sobald die Marken live gehen. </div> <a href="/audit?topic=cms2" class="nav-mega__footer-link"> <span>Kostenfreien Audit starten</span> <svg viewBox="0 0 20 20" aria-hidden="true"><path d="M5 10h10M11 5l5 5-5 5" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg> </a> </div> </div> </details><a href="/system" class="header__nav-link">System</a><a href="/pricing" class="header__nav-link">Preise</a><details class="mega-menu-wrap nav__mega-wrap" data-mega> <summary class="header__nav-link header__nav-link--mega" aria-haspopup="true" aria-expanded="false">InScope</summary> <div class="nav-mega" role="region" aria-label="InScope-Übersicht"> <div class="nav-mega__inner nav-mega__inner--simple"> <div class="nav-mega__stage-card" data-stage="01"> <div class="nav-mega__stage-head"> <div class="nav-mega__stage-num-wrap"> <span class="nav-mega__stage-num">01</span> <div class="nav-mega__stage-icon" aria-hidden="true"> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="4" y="3" width="16" height="18" rx="1.5"/><path d="M8 8h4M8 12l3 -3 2 2 3 -4" stroke-linecap="round" stroke-linejoin="round"/></svg>  </div> </div> <div class="nav-mega__stage-meta"> <span class="nav-mega__stage-label">AppCore</span> <span class="nav-mega__stage-title">InSights</span> </div> </div> <div class="nav-mega__stage-body"> <a href="/blog" class="nav-mega__link nav-mega__link--featured"> <div class="nav-mega__link-content"> <span class="nav-mega__link-title">Zu InSights</span> <span class="nav-mega__link-desc">Praxisnahe Analysen und Compliance-Wissen aus der Redaktion.</span> </div>
1001 <svg class="nav-mega__link-arrow" viewBox="0 0 20 20" aria-hidden="true"> <path d="M5 10h10M11 5l5 5-5 5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" fill="none"></path> </svg> </a> </div> </div><div class="nav-mega__stage-card" data-stage="02"> <div class="nav-mega__stage-head"> <div class="nav-mega__stage-num-wrap"> <span class="nav-mega__stage-num">02</span> <div class="nav-mega__stage-icon" aria-hidden="true"> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 5c2.5 -1.5 5 -1.5 8 0v14c-3 -1.5 -5.5 -1.5 -8 0V5z" stroke-linejoin="round"/><path d="M21 5c-2.5 -1.5 -5 -1.5 -8 0v14c3 -1.5 5.5 -1.5 8 0V5z" stroke-linejoin="round"/></svg>  </div> </div> <div class="nav-mega__stage-meta"> <span class="nav-mega__stage-label">AppCore</span> <span class="nav-mega__stage-title">InFocus</span> </div> </div> <div class="nav-mega__stage-body"> <a href="/infocus" class="nav-mega__link nav-mega__link--featured"> <div class="nav-mega__link-content"> <span class="nav-mega__link-title">Zu InFocus</span> <span class="nav-mega__link-desc">33 Compliance-Begriffe, interaktiv und in einfachen Worten erklärt.</span> </div>
1001 <svg class="nav-mega__link-arrow" viewBox="0 0 20 20" aria-hidden="true"> <path d="M5 10h10M11 5l5 5-5 5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" fill="none"></path> </svg> </a> </div> </div><div class="nav-mega__stage-card" data-stage="03"> <div class="nav-mega__stage-head"> <div class="nav-mega__stage-num-wrap"> <span class="nav-mega__stage-num">03</span> <div class="nav-mega__stage-icon" aria-hidden="true"> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 4h11a2 2 0 0 1 2 2v14H6a2 2 0 0 1 -2 -2V4z" stroke-linejoin="round"/><path d="M17 4v16" stroke-linecap="round"/><path d="M9 9v6M9 15l-2.5 -2.5M9 15l2.5 -2.5" stroke-linecap="round" stroke-linejoin="round"/></svg>  </div> </div> <div class="nav-mega__stage-meta"> <span class="nav-mega__stage-label">AppCore</span> <span class="nav-mega__stage-title">InGuide</span> </div> </div> <div class="nav-mega__stage-body"> <a href="/inguide" class="nav-mega__link nav-mega__link--featured"> <div class="nav-mega__link-content"> <span class="nav-mega__link-title">Zu InGuide</span> <span class="nav-mega__link-desc">Guides, die ein Thema in die Tiefe bohren. Die ersten Titel entstehen gerade.</span> </div>
1001 <svg class="nav-mega__link-arrow" viewBox="0 0 20 20" aria-hidden="true"> <path d="M5 10h10M11 5l5 5-5 5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" fill="none"></path> </svg> </a> </div> </div> </div> <div class="nav-mega__footer"> <div class="nav-mega__footer-text"> <strong>Drei redaktionelle Kanäle, ein Ziel:</strong> Klarheit statt Bürokratie. </div> <a href="/inscope" class="nav-mega__footer-link"> <span>Alle drei Kanäle im Überblick</span> <svg viewBox="0 0 20 20" aria-hidden="true"><path d="M5 10h10M11 5l5 5-5 5" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg> </a> </div> </div> </details> </nav> <div class="header__actions identity-hub">    <a href="https://my.appcore.ai/login?returnTo=https%3A%2F%2Fwww.appcore.ai%2Floesung%2Fshop-pflichtangaben" class="btn btn--ghost btn--sm" data-astro-reload>Anmelden</a> <a href="https://my.appcore.ai/register?returnTo=https%3A%2F%2Fwww.appcore.ai%2Floesung%2Fshop-pflichtangaben" class="btn btn--register btn--sm" data-astro-reload>Account erstellen</a> <a href="/audit" class="btn btn--primary btn--md"> Audit starten <span class="btn__arrow">→</span> </a> <details class="header__hamburger-wrap"> <summary class="header__hamburger" aria-label="Menü öffnen" aria-expanded="false" aria-controls="mobile-nav"> <svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true"> <path d="M3 6h18M3 12h18M3 18h18" stroke="currentColor" stroke-width="2" stroke-linecap="round"></path> </svg> </summary> <nav id="mobile-nav" class="header__mobile-nav" aria-label="Mobile Navigation"> <details class="header__mobile-nav-details" data-mega> <summary class="header__mobile-nav-link header__mobile-nav-summary" aria-haspopup="true" aria-expanded="false">AppCore CMS²</summary> <div class="header__mobile-nav-sub"> <div class="header__mobile-nav-stage" data-stage="01"> <div class="header__mobile-nav-stage-head"> <div class="header__mobile-nav-stage-num-wrap"> <span class="header__mobile-nav-stage-num">01</span> <div class="header__mobile-nav-stage-icon" aria-hidden="true"> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="7"/><path d="M16 16l5 5" stroke-linecap="round"/><path d="M11 7v4l3 2" stroke-linecap="round" stroke-linejoin="round"/></svg> </div> </div> <div class="header__mobile-nav-stage-meta"> <span class="header__mobile-nav-stage-eyebrow">Stufe 1</span> <span class="header__mobile-nav-heading header__mobile-nav-heading--stage">Scannen</span> </div> </div> <a href="/cms" class="header__mobile-nav-sublink"> <span class="header__mobile-nav-sublink-title">AppCore CMS²</span> <span class="header__mobile-nav-sublink-desc">CMS² = Content Management System mit eingebauter Compliance</span> </a><a href="/loesung/digital-decay" class="header__mobile-nav-sublink"> <span class="header__mobile-nav-sublink-title">Digital Decay</span> <span class="header__mobile-nav-sublink-desc">[DigitalDecay] · Stale Content, Broken Links, veraltete Daten</span> </a> </div><div class="header__mobile-nav-stage" data-stage="02"> <div class="header__mobile-nav-stage-head"> <div class="header__mobile-nav-stage-num-wrap"> <span class="header__mobile-nav-stage-num">02</span> <div class="header__mobile-nav-stage-icon" aria-hidden="true"> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M14 4l4 4-8 8H6v-4l8-8z" stroke-linejoin="round"/><path d="M3 21h18" stroke-linecap="round"/><circle cx="17" cy="7" r="0.5" fill="currentColor"/></svg> </div> </div> <div class="header__mobile-nav-stage-meta"> <span class="header__mobile-nav-stage-eyebrow">Stufe 2 · 14 Lösungen</span> <span class="header__mobile-nav-heading header__mobile-nav-heading--stage">Optimieren</span> </div> </div> <a href="/loesung/barrierefreiheit" class="header__mobile-nav-sublink"> <span class="header__mobile-nav-sublink-title">Barrierefreiheit</span> <span class="header__mobile-nav-sublink-desc">[AccessGuard]</span> </a><a href="/loesung/shop-pflichtangaben" class="header__mobile-nav-sublink"> <span class="header__mobile-nav-sublink-title">Shop-Pflichtangaben</span> <span class="header__mobile-nav-sublink-desc">[ShopGuard]</span> </a><a href="/loesung/dsgvo-check" class="header__mobile-nav-sublink"> <span class="header__mobile-nav-sublink-title">DSGVO-Check</span> <span class="header__mobile-nav-sublink-desc">[PrivacyScanner]</span> </a><a href="/loesung/cookie-tracking" class="header__mobile-nav-sublink"> <span class="header__mobile-nav-sublink-title">Cookies &amp; Tracking</span> <span class="header__mobile-nav-sublink-desc">[CookieGuard]</span> </a><a href="/loesung/agb-check" class="header__mobile-nav-sublink"> <span class="header__mobile-nav-sublink-title">AGB-Check</span> <span class="header__mobile-nav-sublink-desc">[TermsGuard]</span> </a><a href="/loesung/ki-claims-pruefen" class="header__mobile-nav-sublink"> <span class="header__mobile-nav-sublink-title">KI-Claims prüfen</span> <span class="header__mobile-nav-sublink-desc">[ClaimScanner]</span> </a><a href="/loesung/green-claims" class="header__mobile-nav-sublink"> <span class="header__mobile-nav-sublink-title">Green Claims</span> <span class="header__mobile-nav-sublink-desc">[GreenClaims]</span> </a><a href="/loesung/health-claims" class="header__mobile-nav-sublink"> <span class="header__mobile-nav-sublink-title">Health Claims</span> <span class="header__mobile-nav-sublink-desc">[HealthClaims]</span> </a><a href="/loesung/bewertungen" class="header__mobile-nav-sublink"> <span class="header__mobile-nav-sublink-title">Bewertungen</span> <span class="header__mobile-nav-sublink-desc">[ReviewGuard]</span> </a><a href="/loesung/quellen-validierung" class="header__mobile-nav-sublink"> <span class="header__mobile-nav-sublink-title">Quellen-Validierung</span> <span class="header__mobile-nav-sublink-desc">[SourceShield]</span> </a><a href="/loesung/bild-rechte" class="header__mobile-nav-sublink"> <span class="header__mobile-nav-sublink-title">Bild-Rechte</span> <span class="header__mobile-nav-sublink-desc">[MediaShield]</span> </a><a href="/loesung/inhalte-aktualisieren" class="header__mobile-nav-sublink"> <span class="header__mobile-nav-sublink-title">Inhalte aktualisieren</span> <span class="header__mobile-nav-sublink-desc">[ContentMatch]</span> </a><a href="/loesung/ai-act" class="header__mobile-nav-sublink"> <span class="header__mobile-nav-sublink-title">AI Act</span> <span class="header__mobile-nav-sublink-desc">[AIActGuard]</span> </a><a href="/loesung/sichtbarkeit" class="header__mobile-nav-sublink"> <span class="header__mobile-nav-sublink-title">Sichtbarkeit</span> <span class="header__mobile-nav-sublink-desc">[VisibilityGuard]</span> </a> </div><div class="header__mobile-nav-stage" data-stage="03"> <div class="header__mobile-nav-stage-head"> <div class="header__mobile-nav-stage-num-wrap"> <span class="header__mobile-nav-stage-num">03</span> <div class="header__mobile-nav-stage-icon" aria-hidden="true"> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2l9 4v6c0 5-3.5 8.5-9 10-5.5-1.5-9-5-9-10V6l9-4z" stroke-linejoin="round"/>
1001<path d="M8 12l3 3 5-5" stroke-linecap="round" stroke-linejoin="round"/></svg> </div> </div> <div class="header__mobile-nav-stage-meta"> <span class="header__mobile-nav-stage-eyebrow">Stufe 3</span> <span class="header__mobile-nav-heading header__mobile-nav-heading--stage">Validieren</span> </div> </div> <a href="/loesung/beweiskette" class="header__mobile-nav-sublink"> <span class="header__mobile-nav-sublink-title">Beweiskette</span> <span class="header__mobile-nav-sublink-desc">[AuditVault] · Audit-Trail, Hash-Zeitstempel</span> </a> </div><div class="header__mobile-nav-stage" data-stage="04"> <div class="header__mobile-nav-stage-head"> <div class="header__mobile-nav-stage-num-wrap"> <span class="header__mobile-nav-stage-num">04</span> <div class="header__mobile-nav-stage-icon" aria-hidden="true"> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 2L11 13" stroke-linecap="round" stroke-linejoin="round"/><path d="M22 2l-7 20-4-9-9-4 20-7z" stroke-linejoin="round"/></svg> </div> </div> <div class="header__mobile-nav-stage-meta"> <span class="header__mobile-nav-stage-eyebrow">Stufe 4</span> <span class="header__mobile-nav-heading header__mobile-nav-heading--stage">Publizieren</span> </div> </div> <a href="/loesung/cms-migration" class="header__mobile-nav-sublink"> <span class="header__mobile-nav-sublink-title">CMS-Migration</span> <span class="header__mobile-nav-sublink-desc">[ContentMigrator] · Redirect, Consent-Übertragung</span> </a><a href="/loesung/freigabe-prozess" class="header__mobile-nav-sublink"> <span class="header__mobile-nav-sublink-title">Freigabe-Prozess</span> <span class="header__mobile-nav-sublink-desc">[PublishGate] · Pre-Publish, Vier-Augen</span> </a> </div><div class="header__mobile-nav-stage" data-stage="05"> <div class="header__mobile-nav-stage-head"> <div class="header__mobile-nav-stage-num-wrap"> <span class="header__mobile-nav-stage-num">05</span> <div class="header__mobile-nav-stage-icon" aria-hidden="true"> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M18 8a6 6 0 00-12 0c0 7-3 9-3 9h18s-3-2-3-9" stroke-linecap="round"/><path d="M10 21a2 2 0 004 0" stroke-linecap="round"/></svg> </div> </div> <div class="header__mobile-nav-stage-meta"> <span class="header__mobile-nav-stage-eyebrow">Stufe 5 · 2 Lösungen</span> <span class="header__mobile-nav-heading header__mobile-nav-heading--stage">Überwachen</span> </div> </div> <a href="/loesung/normen-monitoring" class="header__mobile-nav-sublink"> <span class="header__mobile-nav-sublink-title">Normen-Monitoring</span> <span class="header__mobile-nav-sublink-desc">[NormTracker] · Gesetze, BGH, Behörden</span> </a><a href="/loesung/drift-monitoring" class="header__mobile-nav-sublink"> <span class="header__mobile-nav-sublink-title">Drift-Monitoring</span> <span class="header__mobile-nav-sublink-desc">[DriftDetect] · Content-Drift, Score-Verfall</span> </a> </div> <a href="/loesung" class="header__mobile-nav-sublink header__mobile-nav-sublink--footer">Alle Lösungen im Überblick</a> </div> </details><details class="header__mobile-nav-details" data-mega> <summary class="header__mobile-nav-link header__mobile-nav-summary" aria-haspopup="true" aria-expanded="false">Branchen</summary> <div class="header__mobile-nav-sub"> <div class="header__mobile-nav-stage" data-stage="01"> <div class="header__mobile-nav-stage-head"> <div class="header__mobile-nav-stage-num-wrap"> <span class="header__mobile-nav-stage-num">01</span> <div class="header__mobile-nav-stage-icon" aria-hidden="true"> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 20s-7-4.5-9.5-9C.7 7.2 3 3.5 7 3.5c2.2 0 3.8 1.2 5 3 1.2-1.8 2.8-3 5-3 4 0 6.3 3.7 4.5 7.5C19 15.5 12 20 12 20z" stroke-linejoin="round"></path></svg> </div> </div> <div class="header__mobile-nav-stage-meta"> <span class="header__mobile-nav-stage-eyebrow">4 Segmente</span> <span class="header__mobile-nav-heading header__mobile-nav-heading--stage">Healthcare &amp; Medizin</span> </div> </div> <a href="/branchen/aerzte-heilberufe" class="header__mobile-nav-sublink"> <span class="header__mobile-nav-sublink-title">Ärzte &amp; Heilberufe</span> <span class="header__mobile-nav-sublink-desc">Praxis-Websites nach HWG und Berufsrecht geprüft.</span> </a><a href="/branchen/apotheken-versandhandel" class="header__mobile-nav-sublink"> <span class="header__mobile-nav-sublink-title">Apotheken &amp; Versandhandel</span> <span class="header__mobile-nav-sublink-desc">Vor-Ort und Versandhandel, apothekenrechtlich geprüft.</span> </a><a href="/branchen/sanitaetshaeuser-hilfsmittel-reha" class="header__mobile-nav-sublink"> <span class="header__mobile-nav-sublink-title">Sanitätshäuser, Hilfsmittel &amp; Reha</span> <span class="header__mobile-nav-sublink-desc">Hilfsmittel-Angebote, korrekt ausgezeichnet und barrierefrei.</span> </a><a href="/branchen/pharma-arzneimittelhersteller" class="header__mobile-nav-sublink"> <span class="header__mobile-nav-sublink-title">Pharma &amp; Arzneimittelhersteller</span> <span class="header__mobile-nav-sublink-desc">Herstellerangaben und Health Claims, HWG-geprüft kommuniziert.</span> </a> </div><div class="header__mobile-nav-stage" data-stage="02"> <div class="header__mobile-nav-stage-head"> <div class="header__mobile-nav-stage-num-wrap"> <span class="header__mobile-nav-stage-num">02</span> <div class="header__mobile-nav-stage-icon" aria-hidden="true"> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="7" width="18" height="13" rx="2"/><path d="M8 7V5a2 2 0 012-2h4a2 2 0 012 2v2" stroke-linecap="round" stroke-linejoin="round"/>
1001<path d="M3 13h18" stroke-linecap="round"/></svg> </div> </div> <div class="header__mobile-nav-stage-meta"> <span class="header__mobile-nav-stage-eyebrow">3 Segmente</span> <span class="header__mobile-nav-heading header__mobile-nav-heading--stage">Lokaler Mittelstand &amp; KMUs</span> </div> </div> <a href="/branchen/handwerk" class="header__mobile-nav-sublink"> <span class="header__mobile-nav-sublink-title">Handwerk</span> <span class="header__mobile-nav-sublink-desc">Website-Pflichtangaben für Betriebe, ohne Agentur-Aufwand.</span> </a><a href="/branchen/gewerbe" class="header__mobile-nav-sublink"> <span class="header__mobile-nav-sublink-title">Gewerbe</span> <span class="header__mobile-nav-sublink-desc">Compliance für lokale Gewerbebetriebe, zum Fixpreis erledigt.</span> </a><a href="/branchen/dienstleistung" class="header__mobile-nav-sublink"> <span class="header__mobile-nav-sublink-title">Dienstleistung</span> <span class="header__mobile-nav-sublink-desc">Geprüfte Auftritte für Dienstleister aller Art.</span> </a> </div><div class="header__mobile-nav-stage" data-stage="03"> <div class="header__mobile-nav-stage-head"> <div class="header__mobile-nav-stage-num-wrap"> <span class="header__mobile-nav-stage-num">03</span> <div class="header__mobile-nav-stage-icon" aria-hidden="true"> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 3v18M5 7l-3 6a3 3 0 006 0l-3-6zM19 7l-3 6a3 3 0 006 0l-3-6zM5 7h14M9 21h6" stroke-linecap="round" stroke-linejoin="round"/></svg> </div> </div> <div class="header__mobile-nav-stage-meta"> <span class="header__mobile-nav-stage-eyebrow">3 Segmente</span> <span class="header__mobile-nav-heading header__mobile-nav-heading--stage">Rechts- und Beratungswesen</span> </div> </div> <a href="/branchen/anwaltskanzlei" class="header__mobile-nav-sublink"> <span class="header__mobile-nav-sublink-title">Anwaltskanzlei</span> <span class="header__mobile-nav-sublink-desc">Kanzlei-Websites nach Berufsrecht geprüft.</span> </a><a href="/branchen/steuerberater" class="header__mobile-nav-sublink"> <span class="header__mobile-nav-sublink-title">Steuerberater</span> <span class="header__mobile-nav-sublink-desc">Kanzlei-Auftritte, die berufsrechtlichen Vorgaben entsprechen.</span> </a><a href="/branchen/notare" class="header__mobile-nav-sublink"> <span class="header__mobile-nav-sublink-title">Notare</span> <span class="header__mobile-nav-sublink-desc">Notariats-Websites, korrekt und zurückhaltend nach Standesrecht.</span> </a> </div><div class="header__mobile-nav-stage" data-stage="04"> <div class="header__mobile-nav-stage-head"> <div class="header__mobile-nav-stage-num-wrap"> <span class="header__mobile-nav-stage-num">04</span> <div class="header__mobile-nav-stage-icon" aria-hidden="true"> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M5 21c8 0 14-6 14-14V4h-3C8 4 5 10 5 17v4z" stroke-linejoin="round"/><path d="M5 21c3-3 5-6 6-10" stroke-linecap="round"/></svg> </div> </div> <div class="header__mobile-nav-stage-meta"> <span class="header__mobile-nav-stage-eyebrow">3 Segmente</span> <span class="header__mobile-nav-heading header__mobile-nav-heading--stage">ESG &amp; Nachhaltigkeit</span> </div> </div> <a href="/branchen/esg-beratungshaeuser" class="header__mobile-nav-sublink"> <span class="header__mobile-nav-sublink-title">ESG-Beratungshäuser</span> <span class="header__mobile-nav-sublink-desc">Nachweisbare Aussagen statt Greenwashing-Risiko.</span> </a><a href="/branchen/esg-auditoren" class="header__mobile-nav-sublink"> <span class="header__mobile-nav-sublink-title">ESG-Auditoren</span> <span class="header__mobile-nav-sublink-desc">Prüf-Angebote, selbst geprüft kommuniziert.</span> </a><a href="/branchen/csrd-unternehmen" class="header__mobile-nav-sublink"> <span class="header__mobile-nav-sublink-title">CSRD-Unternehmen</span> <span class="header__mobile-nav-sublink-desc">Berichtspflichtige Unternehmen, Website inklusive geprüft.</span> </a> </div><div class="header__mobile-nav-stage" data-stage="05"> <div class="header__mobile-nav-stage-head"> <div class="header__mobile-nav-stage-num-wrap"> <span class="header__mobile-nav-stage-num">05</span> <div class="header__mobile-nav-stage-icon" aria-hidden="true"> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 10l9-6 9 6" stroke-linecap="round" stroke-linejoin="round"/>
1001<path d="M5 10v9M10 10v9M14 10v9M19 10v9" stroke-linecap="round"/><path d="M3 21h18" stroke-linecap="round"/></svg> </div> </div> <div class="header__mobile-nav-stage-meta"> <span class="header__mobile-nav-stage-eyebrow">3 Segmente</span> <span class="header__mobile-nav-heading header__mobile-nav-heading--stage">Finanz- &amp; Versicherungswirtschaft</span> </div> </div> <a href="/branchen/banken" class="header__mobile-nav-sublink"> <span class="header__mobile-nav-sublink-title">Banken</span> <span class="header__mobile-nav-sublink-desc">Web-Auftritte nach Finanzaufsicht und Werberecht geprüft.</span> </a><a href="/branchen/versicherungen" class="header__mobile-nav-sublink"> <span class="header__mobile-nav-sublink-title">Versicherungen</span> <span class="header__mobile-nav-sublink-desc">Produktkommunikation, versicherungsrechtlich geprüft.</span> </a><a href="/branchen/asset-management" class="header__mobile-nav-sublink"> <span class="header__mobile-nav-sublink-title">Asset Management</span> <span class="header__mobile-nav-sublink-desc">Kapitalanlage-Kommunikation, Werberecht-geprüft.</span> </a> </div><div class="header__mobile-nav-stage" data-stage="06"> <div class="header__mobile-nav-stage-head"> <div class="header__mobile-nav-stage-num-wrap"> <span class="header__mobile-nav-stage-num">06</span> <div class="header__mobile-nav-stage-icon" aria-hidden="true"> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="9"/><path d="M15 9l-2 6-6 2 2-6 6-2z" stroke-linejoin="round"/></svg> </div> </div> <div class="header__mobile-nav-stage-meta"> <span class="header__mobile-nav-stage-eyebrow">3 Segmente</span> <span class="header__mobile-nav-heading header__mobile-nav-heading--stage">Tourismus- &amp; Freizeitwirtschaft</span> </div> </div> <a href="/branchen/hotel-beherbergung" class="header__mobile-nav-sublink"> <span class="header__mobile-nav-sublink-title">Hotel &amp; Beherbergung</span> <span class="header__mobile-nav-sublink-desc">Buchbare Angebote, Preisangaben und Barrierefreiheit geprüft.</span> </a><a href="/branchen/reiseveranstalter" class="header__mobile-nav-sublink"> <span class="header__mobile-nav-sublink-title">Reiseveranstalter</span> <span class="header__mobile-nav-sublink-desc">Pauschalreise-Pflichtangaben, korrekt und vollständig.</span> </a><a href="/branchen/destinationen-tourismusverbaende" class="header__mobile-nav-sublink"> <span class="header__mobile-nav-sublink-title">Destinationen &amp; Tourismusverbände</span> <span class="header__mobile-nav-sublink-desc">Öffentliche Auftritte, barrierefrei und geprüft.</span> </a> </div> <a href="/audit?topic=cms2" class="header__mobile-nav-sublink header__mobile-nav-sublink--footer">Kostenfreien Audit starten</a> </div> </details><a href="/system" class="header__mobile-nav-link">System</a><a href="/pricing" class="header__mobile-nav-link">Preise</a><details class="header__mobile-nav-details" data-mega> <summary class="header__mobile-nav-link header__mobile-nav-summary" aria-haspopup="true" aria-expanded="false">InScope</summary> <div class="header__mobile-nav-sub"> <div class="header__mobile-nav-stage" data-stage="01"> <div class="header__mobile-nav-stage-head"> <div class="header__mobile-nav-stage-num-wrap"> <span class="header__mobile-nav-stage-num">01</span> <div class="header__mobile-nav-stage-icon" aria-hidden="true"> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="4" y="3" width="16" height="18" rx="1.5"/><path d="M8 8h4M8 12l3 -3 2 2 3 -4" stroke-linecap="round" stroke-linejoin="round"/></svg> </div> </div> <div class="header__mobile-nav-stage-meta"> <span class="header__mobile-nav-stage-eyebrow">AppCore</span> <span class="header__mobile-nav-heading header__mobile-nav-heading--stage">InSights</span> </div> </div> <a href="/blog" class="header__mobile-nav-sublink"> <span class="header__mobile-nav-sublink-title">Zu InSights</span> <span class="header__mobile-nav-sublink-desc">Praxisnahe Analysen und Compliance-Wissen aus der Redaktion.</span> </a> </div><div class="header__mobile-nav-stage" data-stage="02"> <div class="header__mobile-nav-stage-head"> <div class="header__mobile-nav-stage-num-wrap"> <span class="header__mobile-nav-stage-num">02</span> <div class="header__mobile-nav-stage-icon" aria-hidden="true"> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 5c2.5 -1.5 5 -1.5 8 0v14c-3 -1.5 -5.5 -1.5 -8 0V5z" stroke-linejoin="round"/>
1001<path d="M21 5c-2.5 -1.5 -5 -1.5 -8 0v14c3 -1.5 5.5 -1.5 8 0V5z" stroke-linejoin="round"/></svg> </div> </div> <div class="header__mobile-nav-stage-meta"> <span class="header__mobile-nav-stage-eyebrow">AppCore</span> <span class="header__mobile-nav-heading header__mobile-nav-heading--stage">InFocus</span> </div> </div> <a href="/infocus" class="header__mobile-nav-sublink"> <span class="header__mobile-nav-sublink-title">Zu InFocus</span> <span class="header__mobile-nav-sublink-desc">33 Compliance-Begriffe, interaktiv und in einfachen Worten erklärt.</span> </a> </div><div class="header__mobile-nav-stage" data-stage="03"> <div class="header__mobile-nav-stage-head"> <div class="header__mobile-nav-stage-num-wrap"> <span class="header__mobile-nav-stage-num">03</span> <div class="header__mobile-nav-stage-icon" aria-hidden="true"> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 4h11a2 2 0 0 1 2 2v14H6a2 2 0 0 1 -2 -2V4z" stroke-linejoin="round"/><path d="M17 4v16" stroke-linecap="round"/><path d="M9 9v6M9 15l-2.5 -2.5M9 15l2.5 -2.5" stroke-linecap="round" stroke-linejoin="round"/></svg> </div> </div> <div class="header__mobile-nav-stage-meta"> <span class="header__mobile-nav-stage-eyebrow">AppCore</span> <span class="header__mobile-nav-heading header__mobile-nav-heading--stage">InGuide</span> </div> </div> <a href="/inguide" class="header__mobile-nav-sublink"> <span class="header__mobile-nav-sublink-title">Zu InGuide</span> <span class="header__mobile-nav-sublink-desc">Guides, die ein Thema in die Tiefe bohren. Die ersten Titel entstehen gerade.</span> </a> </div> <a href="/inscope" class="header__mobile-nav-sublink header__mobile-nav-sublink--footer">Alle drei Kanäle im Überblick</a> </div> </details>  <a href="https://my.appcore.ai/login?returnTo=https%3A%2F%2Fwww.appcore.ai%2Floesung%2Fshop-pflichtangaben" class="header__mobile-nav-link" data-astro-reload>Anmelden</a> <a href="https://my.appcore.ai/register?returnTo=https%3A%2F%2Fwww.appcore.ai%2Floesung%2Fshop-pflichtangaben" class="header__mobile-nav-link" data-astro-reload>Account erstellen</a>   </nav> </details> </div> </div> </div> </header>  
1001<script type="module">(function(){if(typeof window>"u")return;const n=document.getElementById("siteHeader");if(!n)return;const e=()=>{n.dataset.scrolled=window.scrollY>20?"true":"false"};e(),window.addEventListener("scroll",e,{passive:!0})})();document.querySelectorAll("[data-logout-trigger]").forEach(n=>{n.addEventListener("click",async()=>{const e=n.dataset.logoutUrl;if(e){try{await fetch(e,{method:"POST",credentials:"include"})}catch(r){console.error("logout failed",r)}window.location.reload()}})});document.querySelectorAll("details[data-mega], details[data-dropdown]").forEach(n=>{const e=n.querySelector("summary"),r=()=>{const o=n.open;e?.setAttribute("aria-expanded",o?"true":"false")};r(),n.addEventListener("toggle",r),document.addEventListener("click",o=>{n.contains(o.target)||(n.open=!1)}),document.addEventListener("keydown",o=>{o.key==="Escape"&&(n.open=!1)})});document.querySelectorAll("details[data-lang-switcher]").forEach(n=>{const e=n,r=e.querySelector("summary"),o=()=>Array.from(e.querySelectorAll("a.lang-switcher__item")),i=()=>r?.setAttribute("aria-expanded",e.open?"true":"false");i(),e.addEventListener("toggle",i);const a=s=>{const t=o();t.length!==0&&t[(s%t.length+t.length)%t.length]?.focus()};e.addEventListener("keydown",s=>{const t=s;if(t.key==="Escape"){if(!e.open)return;e.open=!1,r?.focus();return}if(t.key!=="ArrowDown"&&t.key!=="ArrowUp"&&t.key!=="Home"&&t.key!=="End")return;if(r!=null&&r.contains(t.target)){t.preventDefault(),e.open=!0;const d=t.key==="ArrowUp"||t.key==="End";requestAnimationFrame(()=>a(d?-1:0));return}const c=o().indexOf(document.activeElement);c!==-1&&(t.preventDefault(),t.key==="ArrowDown"?a(c+1):t.key==="ArrowUp"?a(c-1):t.key==="Home"?a(0):a(-1))}),document.addEventListener("click",s=>{e.contains(s.target)||(e.open=!1)}),e.addEventListener("focusout",()=>{window.setTimeout(()=>{e.contains(document.activeElement)||(e.open=!1)},0)})});document.querySelectorAll("details.header__hamburger-wrap").forEach(n=>{const e=n.querySelector("summary"),r=()=>{const o=n.open;e?.setAttribute("aria-expanded",o?"true":"false"),e?.setAttribute("aria-label",o?"Menü schließen":"Menü öffnen")};r(),n.addEventListener("toggle",r)});</script>
1001 <main id="main" class="mockup-scope"> <section class="hero" data-block="hero" data-align="inherit" data-has-feature="true" data-has-bg="false">  <div class="hero__inner"> <div class="hero__content"> <nav class="hero__breadcrumb" aria-label="Brotkrumen"> <span class="hero__breadcrumb-item">  <a href="/">Start</a> </span><span class="hero__breadcrumb-item"> <span class="hero__breadcrumb-sep" aria-hidden="true">›</span> <a href="/loesung">Lösungen</a> </span><span class="hero__breadcrumb-item"> <span class="hero__breadcrumb-sep" aria-hidden="true">›</span> <span aria-current="page">Shop-Pflichtangaben</span> </span> </nav> <p class="hero__eyebrow">Lösung · [ShopGuard]</p> <h1 class="hero__title">Verkauft dein Shop schon <span class="accent">abmahnsicher</span>?</h1> <p class="hero__subtitle">Grundpreis, Lieferzeit, Versandkosten, Widerruf: Im Online-Handel ist eine lange Liste an Angaben Pflicht. Fehlt nur eine, droht die Abmahnung. AppCore prüft deine Produkt- und Bestellseiten und zeigt dir genau, was fehlt.</p>  <div class="hero__ctas"> <a class="hero__cta hero__cta--primary" href="/audit?topic=shop-pflichtangaben"> Kostenfreien Erstaudit starten </a><a class="hero__cta hero__cta--ghost" href="#lg-pruefen"> Was wir prüfen </a> </div> <p class="hero__trust"> <svg class="hero__trust-icon" viewBox="0 0 16 16" aria-hidden="true"> <path d="M8 1l2 4 4 .5-3 3 1 4-4-2-4 2 1-4-3-3 4-.5z" fill="currentColor"></path> </svg> <span>Kostenfrei, ohne Anmeldung. Der Audit prüft alle 20 Lösungen in einem Lauf und liefert dir direkt deinen Preis für den Umzug ins AppCore CMS.</span> </p>   </div> <div class="hero__feature" data-anim-paused="false"> <div class="svg-raw-visual" role="img" aria-label="Animierte Vorschau eines Shop-Pflichtangaben-Scans: eine Beispiel-Produktseite wird geprüft, vier fehlende Pflichtangaben werden markiert, darunter eine Befund-Liste" style="max-width: 560px"><div class="shg" data-shg aria-hidden="true"><div class="shg__card"><div class="shg__head"><span class="shg__src">Produkt-Scan · shop.de/olivenoel</span><span class="shg__live"><span class="shg__live-dot"></span>live</span></div><div class="shg__stage"><div class="shg__mock"><span class="shg__mock-img">Produktbild</span><span class="shg__mock-name">Bio-Olivenöl, 500&nbsp;ml</span><span class="shg__mock-price">14,90&nbsp;€</span><span class="shg__mock-line shg__mock-line--flag">inkl. MwSt.<i>1</i></span><span class="shg__mock-line shg__mock-line--flag">Verfügbar<i>2</i></span><span class="shg__mock-line shg__mock-line--flag">Kostenloser Rückversand<i>3</i></span><span class="shg__mock-btn shg__mock-line--flag">Jetzt kaufen<i>4</i></span></div></div><div class="shg__verdict">4 Pflichtangaben fehlen</div><div class="shg__cats"><div class="shg__cat shg__cat--crit"><span class="shg__cat-dot"></span><span class="shg__cat-l">Grundpreis</span><span class="shg__cat-s">fehlt</span></div><div class="shg__cat shg__cat--crit"><span class="shg__cat-dot"></span><span class="shg__cat-l">Lieferzeit</span><span class="shg__cat-s">fehlt</span></div><div class="shg__cat shg__cat--warn"><span class="shg__cat-dot"></span><span class="shg__cat-l">Versandkosten</span><span class="shg__cat-s">Hinweis</span></div><div class="shg__cat shg__cat--warn"><span class="shg__cat-dot"></span><span class="shg__cat-l">Widerrufsbelehrung</span><span class="shg__cat-s">Hinweis</span></div></div></div></div><style>.shg{width:100%;display:flex;align-items:center;justify-content:center}.shg__card{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;gap:12px;aspect-ratio:9/16;height:clamp(460px,68vh,650px);width:auto;max-width:100%;background:var(--color-surface,#fff);border:1px solid var(--color-border,#e2e8f0);border-radius:20px;padding:22px 20px;box-shadow:0 24px 60px -24px rgba(15,23,42,.35)}@media(max-width:900px){.shg__card{height:auto;width:min(74vw,272px)}}.shg__head{display:flex;justify-content:space-between;align-items:center}.shg__src{font-family:var(--font-family-mono,ui-monospace,monospace);font-size:.68rem;color:var(--color-text-muted,#64748b)}.shg__live{display:inline-flex;align-items:center;gap:6px;font-size:.66rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#16A34A}.shg__live-dot{width:7px;height:7px;border-radius:999px;background:#16A34A;animation:shgPulse 1.6s ease-in-out infinite}@keyframes shgPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.75)}}.shg__stage{flex:1;display:flex;align-items:center;justify-content:center}.shg__mock{position:relative;width:100%;max-width:230px;background:var(--color-surface-raised,#f1f5f9);border:1px solid var(--color-border,#e2e8f0);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:7px}.shg__mock-img{height:56px;border-radius:8px;background:linear-gradient(135deg,#E8ECF1,#D6DCE4);display:flex;align-items:center;justify-content:center;font-family:var(--font-family-mono,monospace);font-size:.6rem;color:var(--color-text-muted,#64748b)}.shg__mock-name{font-size:.82rem;font-weight:700;color:var(--color-text,#0f172a);margin-top:4px}.shg__mock-price{font-size:1.15rem;font-weight:800;color:var(--brand-navy,#003366);margin-bottom:4px}.shg__mock-line{position:relative;font-size:.72rem;color:var(--color-text-muted,#64748b);padding:5px 0;border-top:1px solid var(--color-border,#e2e8f0)}.shg__mock-btn{position:relative;margin-top:6px;font-size:.74rem;font-weight:700;color:#fff;
1001background:var(--brand-orange,#FF8C00);padding:7px 10px;border-radius:7px;text-align:center}.shg__mock-line--flag i{position:absolute;top:50%;right:-9px;transform:translateY(-50%) scale(.5);width:17px;height:17px;border-radius:50%;background:#E5484D;color:#fff;font-style:normal;font-size:.6rem;font-weight:800;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 3px var(--color-surface,#fff);opacity:0;animation:shgBadge 9s ease-in-out infinite}.shg__mock-btn i{top:50%;transform:translateY(-50%) scale(.5)}.shg__mock-line:nth-of-type(1) i,.shg__stage .shg__mock-line--flag:nth-child(4) i{animation-delay:.7s}.shg__mock-line--flag:nth-child(5) i{animation-delay:1.8s}.shg__mock-line--flag:nth-child(6) i{animation-delay:2.6s}.shg__mock-btn i{animation:shgBadge 9s ease-in-out infinite;animation-delay:3.4s}@keyframes shgBadge{0%,9%{opacity:0;transform:translateY(-50%) scale(.5)}13%{opacity:1;transform:translateY(-50%) scale(1)}44%{opacity:1;transform:translateY(-50%) scale(1)}50%,100%{opacity:0;transform:translateY(-50%) scale(.5)}}.shg__verdict{align-self:flex-start;font-size:.72rem;font-weight:800;letter-spacing:.03em;color:#991B1B;background:rgba(229,72,77,.14);padding:5px 12px;border-radius:999px;opacity:0;animation:shgCat 9s ease-in-out infinite;animation-delay:4.3s}.shg__cats{display:flex;flex-direction:column;gap:11px}.shg__cat{display:flex;align-items:center;gap:10px;opacity:0;transform:translateX(8px);animation:shgCat 9s ease-in-out infinite}.shg__cat:nth-child(1){animation-delay:4.8s}.shg__cat:nth-child(2){animation-delay:5.1s}.shg__cat:nth-child(3){animation-delay:5.4s}.shg__cat:nth-child(4){animation-delay:5.7s}@keyframes shgCat{0%,6%{opacity:0;transform:translateX(8px)}14%{opacity:1;transform:translateX(0)}80%{opacity:1;transform:translateX(0)}88%,100%{opacity:0;transform:translateX(8px)}}.shg__cat-dot{flex:0 0 auto;width:10px;height:10px;border-radius:999px;background:var(--sv)}.shg__cat-l{flex:1;font-size:.9rem;font-weight:600;color:var(--color-text,#0f172a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shg__cat-s{font-size:.76rem;font-weight:600;color:var(--sv)}.shg__cat--crit{--sv:#E5484D}.shg__cat--warn{--sv:#E8850C}@media(prefers-reduced-motion:reduce){.shg__mock-line--flag i,.shg__mock-btn i,.shg__verdict,.shg__cat,.shg__live-dot{animation:none}.shg__mock-line--flag i,.shg__mock-btn i,.shg__verdict,.shg__cat{opacity:1;transform:translateY(-50%) scale(1)}}</style></div>  <button class="hero__anim-toggle" type="button" aria-pressed="false" aria-label="Animation pausieren" data-label-pause="Animation pausieren" data-label-play="Animation abspielen"> <svg class="hero__anim-icon hero__anim-icon--pause" viewBox="0 0 16 16" aria-hidden="true"><path d="M4 2h3v12H4zM9 2h3v12H9z" fill="currentColor"></path></svg> <svg class="hero__anim-icon hero__anim-icon--play" viewBox="0 0 16 16" aria-hidden="true"><path d="M4 2l9 6-9 6z" fill="currentColor"></path></svg> </button> </div> </div> </section> <div class="hero__cue" data-cue-variant="arrow"> <button type="button" class="hero__cue-arrow" aria-label="Zur nächsten Sektion scrollen"> <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M5 9l7 7 7-7"></path></svg> </button> </div>  
1001<script type="module">function n(){document.querySelectorAll('[data-block="hero"] .hero__anim-toggle').forEach(e=>{e.dataset.bound!=="true"&&(e.dataset.bound="true",e.addEventListener("click",()=>{const r=e.closest(".hero__feature");if(!r)return;const t=r.getAttribute("data-anim-paused")!=="true";r.setAttribute("data-anim-paused",String(t)),e.setAttribute("aria-pressed",String(t)),e.setAttribute("aria-label",(t?e.dataset.labelPlay:e.dataset.labelPause)??"Animation")}))})}function c(e){const r=new Set(["SCRIPT","STYLE","LINK","TEMPLATE"]);let t=e.nextElementSibling;for(;t&&r.has(t.tagName);)t=t.nextElementSibling;return t}function i(){document.querySelectorAll(".hero__cue-arrow").forEach(e=>{e.dataset.bound!=="true"&&(e.dataset.bound="true",e.addEventListener("click",()=>{const r=e.closest(".hero__cue"),t=r?c(r):null;if(!t)return;t.style.scrollMarginTop||(t.style.scrollMarginTop="var(--header-height, 90px)");const a=window.matchMedia("(prefers-reduced-motion: reduce)").matches;t.scrollIntoView({behavior:a?"auto":"smooth",block:"start"})}))})}function u(){document.querySelectorAll('[data-block="hero"] .hero__bg-video').forEach(e=>{if(e.dataset.bound==="true")return;e.dataset.bound="true";const r=e.dataset.src;if(!r||window.innerWidth<768||window.matchMedia("(prefers-reduced-motion: reduce)").matches)return;const t=navigator.connection;t?.saveData!==!0&&(t?.effectiveType==="2g"||t?.effectiveType==="slow-2g"||(e.addEventListener("playing",()=>{e.setAttribute("data-playing","true")},{once:!0}),e.src=r,e.play().catch(()=>{}),document.addEventListener("visibilitychange",()=>{const a=e.closest(".hero__bg-wrap");document.hidden?e.pause():a?.getAttribute("data-anim-paused")!=="true"&&e.play().catch(()=>{})})))})}function s(){document.querySelectorAll('[data-block="hero"] .hero__bg-anim-toggle').forEach(e=>{e.dataset.bound!=="true"&&(e.dataset.bound="true",e.addEventListener("click",()=>{const r=e.closest('[data-block="hero"]'),t=r?.querySelector(".hero__bg-wrap"),a=r?.querySelector(".hero__bg-video");if(!t||!a)return;const o=t.getAttribute("data-anim-paused")!=="true";t.setAttribute("data-anim-paused",String(o)),e.setAttribute("aria-pressed",String(o)),e.setAttribute("aria-label",(o?e.dataset.labelPlay:e.dataset.labelPause)??"Hintergrund-Video"),o?a.pause():a.play().catch(()=>{})}))})}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{n(),u(),s(),i()}):(n(),u(),s(),i());</script>
1001<div class="sc-cue"><button type="button" class="sc-cue__arrow" aria-label="Zur nächsten Sektion scrollen"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M5 9l7 7 7-7"/></svg></button></div><style>.sc-cue{position:relative;height:0;z-index:8;pointer-events:none;overflow:visible}.sc-cue__arrow{position:absolute;left:50%;margin-left:-27px;bottom:80px;width:54px;height:54px;border-radius:999px;background:#fff;color:var(--brand-navy,#003366);display:flex;align-items:center;justify-content:center;box-shadow:0 12px 26px -6px rgba(0,0,0,.45),0 3px 8px rgba(0,0,0,.25);animation:scCueBob 1.9s ease-in-out infinite;border:0;padding:0;font:inherit;pointer-events:auto;cursor:pointer}.sc-cue__arrow svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}.sc-cue__arrow:focus-visible{outline:2px solid var(--brand-orange,#FF8C00);outline-offset:3px}@keyframes scCueBob{0%,100%{transform:translateY(0)}50%{transform:translateY(7px)}}@media(prefers-reduced-motion:reduce){.sc-cue__arrow{animation:none}}</style><div class="kpi-counter" data-block="kpiCounter" data-topbar="none"><ul class="kpi-counter__list" role="list"><li class="kpi-counter__item"><span class="kpi-counter__value">6 Pflichtangaben</span><span class="kpi-counter__label">im Fernabsatz geprüft</span></li><li class="kpi-counter__item"><span class="kpi-counter__value">bis 12 Monate</span><span class="kpi-counter__label">verlängerte Widerrufsfrist bei Fehlern</span></li><li class="kpi-counter__item"><span class="kpi-counter__value">abmahnfähig</span><span class="kpi-counter__label">bei fehlender Angabe</span></li><li class="kpi-counter__item"><span class="kpi-counter__value">20 Lösungen</span><span class="kpi-counter__label">im selben Audit-Lauf geprüft</span></li></ul></div><div class="section-band" data-section-bg="a"><section class="svc-tiles" data-block="contentServiceTiles" data-columns="3" id="lg-pruefen"> <div class="section-shell"> <div class="section-head"><p class="section-head__eyebrow">Was der AppCore [ShopGuard] genau prüft</p><h2 class="section-head__title">Die Pflichtangaben, an denen Shops scheitern</h2><p class="section-head__lead">AppCore prüft deine Produkt- und Bestellstrecke gegen die gesetzlichen Informationspflichten im Fernabsatz.</p></div><div class="svc-tiles__grid" data-tilt-grid> <article class="svc-tiles__card" data-tilt data-status="active">   <div class="svc-tiles__icon" aria-hidden="true"> <svg viewBox="0 0 32 32" fill="none" focusable="false"><circle cx="16" cy="16" r="11" stroke="currentColor" stroke-width="1.6"/><path d="M11 16l3.5 3.5L21 13" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"/></svg> </div> <h3 class="svc-tiles__card-title">Grundpreis-Angabe</h3> <p class="svc-tiles__tagline">Bei vielen Waren ist der Preis pro Liter, Kilo oder Stück Pflicht. Fehlt er, ist die Auszeichnung angreifbar.</p>   </article><article class="svc-tiles__card" data-tilt data-status="active">   <div class="svc-tiles__icon" aria-hidden="true"> <svg viewBox="0 0 32 32" fill="none" focusable="false"><circle cx="16" cy="16" r="11" stroke="currentColor" stroke-width="1.6"/><path d="M11 16l3.5 3.5L21 13" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"/></svg> </div> <h3 class="svc-tiles__card-title">Lieferzeit-Angabe</h3> <p class="svc-tiles__tagline">Kunden müssen vor dem Kauf wissen, wann geliefert wird. Vage Formulierungen reichen oft nicht.</p>   </article><article class="svc-tiles__card" data-tilt data-status="active">   <div class="svc-tiles__icon" aria-hidden="true"> <svg viewBox="0 0 32 32" fill="none" focusable="false"><circle cx="16" cy="16" r="11" stroke="currentColor" stroke-width="1.6"/><path d="M11 16l3.5 3.5L21 13" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"/></svg> </div> <h3 class="svc-tiles__card-title">Versandkosten-Transparenz</h3> <p class="svc-tiles__tagline">Zusätzliche Kosten müssen klar erkennbar sein, bevor die Bestellung verbindlich wird.</p>   </article><article class="svc-tiles__card" data-tilt data-status="active">   <div class="svc-tiles__icon" aria-hidden="true"> <svg viewBox="0 0 32 32" fill="none" focusable="false"><circle cx="16" cy="16" r="11" stroke="currentColor" stroke-width="1.6"/><path d="M11 16l3.5 3.5L21 13" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"/></svg> </div> <h3 class="svc-tiles__card-title">Widerrufsbelehrung</h3> <p class="svc-tiles__tagline">Ist sie vorhanden, korrekt und leicht auffindbar? Fehler hier verlängern die Widerrufsfrist erheblich.</p>   </article><article class="svc-tiles__card" data-tilt data-status="active">   <div class="svc-tiles__icon" aria-hidden="true"> <svg viewBox="0 0 32 32" fill="none" focusable="false"><circle cx="16" cy="16" r="11" stroke="currentColor" stroke-width="1.6"/><path d="M11 16l3.5 3.5L21 13" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"/></svg> </div> <h3 class="svc-tiles__card-title">
1001Button-Beschriftung</h3> <p class="svc-tiles__tagline">Der Bestell-Button muss eindeutig auf die Zahlungspflicht hinweisen, etwa zahlungspflichtig bestellen.</p>   </article><article class="svc-tiles__card" data-tilt data-status="active">   <div class="svc-tiles__icon" aria-hidden="true"> <svg viewBox="0 0 32 32" fill="none" focusable="false"><circle cx="16" cy="16" r="11" stroke="currentColor" stroke-width="1.6"/><path d="M11 16l3.5 3.5L21 13" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"/></svg> </div> <h3 class="svc-tiles__card-title">Pflichtangaben im Footer</h3> <p class="svc-tiles__tagline">Impressum, AGB und Datenschutz müssen von jeder Seite aus erreichbar sein.</p>   </article> </div>  </div>  </section> 
1001<script type="module">(function(){document.querySelectorAll('[data-block="contentServiceTiles"]').forEach(function(o){o.querySelectorAll("[data-tilt]").forEach(function(e){e.addEventListener("mousemove",function(c){const n=c,t=e.getBoundingClientRect(),i=t.left+t.width/2,r=t.top+t.height/2,s=n.clientX-i,a=(n.clientY-r)/(t.height/2)*-8,d=s/(t.width/2)*8;e.style.transform=`perspective(1200px) rotateX(${a.toFixed(2)}deg) rotateY(${d.toFixed(2)}deg) translateZ(6px)`}),e.addEventListener("mouseleave",function(){e.style.transform=""})})})})();</script>
1001 </div><div class="section-band" data-section-bg="b"><section class="svc-tiles" data-block="contentServiceTiles" data-columns="3" id="lg-risiko"> <div class="section-shell"> <div class="section-head"><p class="section-head__eyebrow">Was bei Verstoß droht</p><h2 class="section-head__title">Eine fehlende Angabe reicht für die Abmahnung</h2><p class="section-head__lead">Im E-Commerce wird genau hingeschaut, von Mitbewerbern wie von Abmahnverbänden. Die Folgen treffen oft genau die kleinen Shops.</p></div><div class="svc-tiles__grid" data-tilt-grid> <article class="svc-tiles__card" data-tilt data-status="active">   <div class="svc-tiles__icon" aria-hidden="true"> <svg viewBox="0 0 32 32" fill="none" focusable="false"><path d="M6 8h20v13H17l-5 4v-4H6V8z" stroke="currentColor" stroke-width="1.7" stroke-linejoin="round"/><path d="M16 11v5M16 18.5v.5" stroke="currentColor" stroke-width="1.9" stroke-linecap="round"/></svg> </div> <h3 class="svc-tiles__card-title">Abmahnungen</h3> <p class="svc-tiles__tagline">Wettbewerb &amp; Verbände</p> <ul class="svc-tiles__list" aria-label="Leistungen: Abmahnungen"> <li class="svc-tiles__list-item">Fehlende Pflichtangaben sind der Abmahn-Klassiker im E-Commerce, oft mit Unterlassungsforderung und Kostennote.</li> </ul>  </article><article class="svc-tiles__card" data-tilt data-status="active">   <div class="svc-tiles__icon" aria-hidden="true"> <svg viewBox="0 0 32 32" fill="none" focusable="false"><path d="M9 4h10l5 5v19H9V4z" stroke="currentColor" stroke-width="1.7" stroke-linejoin="round"/><path d="M19 4v5h5M13 15h6M13 19h6M13 23h4" stroke="currentColor" stroke-width="1.6" stroke-linecap="round"/></svg> </div> <h3 class="svc-tiles__card-title">Widerruf bis 12 Monate</h3> <p class="svc-tiles__tagline">statt 14 Tage</p> <ul class="svc-tiles__list" aria-label="Leistungen: Widerruf bis 12 Monate"> <li class="svc-tiles__list-item">Fehlt oder fehlerhaft ist die Widerrufsbelehrung, verlängert sich die Frist auf bis zu zwölf Monate und vierzehn Tage.</li> </ul>  </article><article class="svc-tiles__card" data-tilt data-status="active">   <div class="svc-tiles__icon" aria-hidden="true"> <svg viewBox="0 0 32 32" fill="none" focusable="false"><circle cx="14" cy="14" r="8" stroke="currentColor" stroke-width="1.7"/><path d="M20 20l6 6" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/><path d="M11 14l2.5 2.5L18 11" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/></svg> </div> <h3 class="svc-tiles__card-title">Vertrag unwirksam</h3> <p class="svc-tiles__tagline">im Zweifel</p> <ul class="svc-tiles__list" aria-label="Leistungen: Vertrag unwirksam"> <li class="svc-tiles__list-item">Verstöße gegen Informationspflichten können einzelne Klauseln oder ganze Vertragsbestandteile unwirksam machen.</li> </ul>  </article> </div>  </div>  </section>  </div><section class="lg-sec" id="lg-erleben">
1002    <div class="container">
1003      <span class="lg-sec__eyebrow">Zum Selbst-Erleben</span>
1004      <h2 class="lg-sec__title">Finde die Fehler auf dieser Produktseite</h2>
1005      <p class="lg-sec__lead">Hier ist eine typische Produktseite. Auf den ersten Blick sieht sie sauber aus. Starte die Prüfung und sieh, was einer Abmahnung Tür und Tor öffnet.</p>
1006      <div class="lg-sh" id="lgSh">
1007        <div class="lg-sh__ctrl">
1008          <button class="lg-sh__btn" id="lgShBtn">Produktseite prüfen</button>
1009          <span class="lg-sh__legend">Die Prüfung markiert fehlende Pflichtangaben direkt auf der Seite.</span>
1010        </div>
1011        <div class="lg-sh__grid">
1012          <div class="lg-sh__mock">
1013            <div class="lg-sh__img">Produktbild</div>
1014            <div class="lg-sh__pname">Bio-Olivenöl, 500 ml</div>
1015            <div class="lg-sh__price">14,90 €</div>
1016            <div class="lg-sh__line lg-sh__flag" data-i="0">inkl. MwSt.<span class="lg-sh__miss">Grundpreis fehlt</span></div>
1017            <div class="lg-sh__line lg-sh__flag" data-i="1">Verfügbar<span class="lg-sh__miss">Lieferzeit fehlt</span></div>
1018            <div class="lg-sh__line lg-sh__flag" data-i="2">Kostenloser Rückversand<span class="lg-sh__miss">Versandkosten unklar</span></div>
1019            <div class="lg-sh__cart lg-sh__flag" data-i="3">Jetzt kaufen<span class="lg-sh__miss">Button unklar</span></div>
1020          </div>
1021          <div class="lg-sh__findings">
1022            <h3>Befunde der Prüfung</h3>
1023            <p>Das findet ShopGuard auf dieser einen Seite.</p>
1024
1025          <div class="lg-sh__fitem" data-i="0"><span class="lg-sh__fico" aria-hidden="true">!</span><div><span class="lg-sh__ft">Grundpreis fehlt</span><span class="lg-sh__fd">Bei dieser Ware ist der Preis je Einheit anzugeben.</span></div></div>
1026          <div class="lg-sh__fitem" data-i="1"><span class="lg-sh__fico" aria-hidden="true">!</span><div><span class="lg-sh__ft">Lieferzeit unklar</span><span class="lg-sh__fd">Es fehlt eine konkrete Angabe, wann geliefert wird.</span></div></div>
1027          <div class="lg-sh__fitem" data-i="2"><span class="lg-sh__fico" aria-hidden="true">!</span><div><span class="lg-sh__ft">Versandkosten erst im Warenkorb</span><span class="lg-sh__fd">Zusatzkosten müssen vorher klar erkennbar sein.</span></div></div>
1028          <div class="lg-sh__fitem" data-i="3"><span class="lg-sh__fico" aria-hidden="true">!</span><div><span class="lg-sh__ft">Button nicht eindeutig</span><span class="lg-sh__fd">Jetzt kaufen weist nicht klar auf die Zahlungspflicht hin.</span></div></div>
1029            <div class="lg-sh__count"><span id="lgShCount">0</span> von 4 Pflichtangaben fehlerhaft</div>
1030          </div>
1031        </div>
1032      </div>
1033      <div class="lg-erleben-close">
1034        <p class="lg-erleben-close__note">Das war eine Beispielseite.</p>
1035        <a class="lg-erleben-close__link" href="/audit?topic=shop-pflichtangaben">Meinen Shop kostenfrei prüfen im echten Audit <span aria-hidden="true">→</span></a>
1036      </div>
1037    </div>
1038  </section>
1039<style>
1040.lg-sh__mock{background:var(--color-surface,#fff);border:1px solid var(--color-border,#e2e8f0);border-radius:16px;padding:24px;position:relative}
1041.lg-sh__img{background:var(--color-surface-raised,#f1f5f9);border-radius:10px;height:120px;
1041display:flex;align-items:center;justify-content:center;color:var(--color-text-muted,#64748b);font-size:.85rem;margin-bottom:14px}
1042.lg-sh__pname{font-weight:700;color:var(--brand-navy,#003366);margin-bottom:4px}
1043.lg-sh__price{font-size:1.3rem;font-weight:800;color:var(--brand-navy,#003366);margin-bottom:14px}
1044.lg-sh__line{padding:8px 0;border-top:1px solid var(--color-border,#e2e8f0);font-size:.9rem;color:var(--color-text-secondary,#4a5568);position:relative}
1045.lg-sh__cart{margin-top:14px;padding:12px 16px;background:var(--brand-orange,#FF8C00);color:#fff;border-radius:10px;font-weight:700;text-align:center;position:relative}
1046.lg-sh__miss{display:none;font-size:.72rem;font-weight:700;color:#B91C1C;background:#FEE2E2;padding:2px 8px;border-radius:999px;margin-left:8px}
1047.lg-sh__flag.is-flagged{background:rgba(212,24,24,.06)}
1048.lg-sh__flag.is-flagged .lg-sh__miss{display:inline-block}
1049.lg-sh__cart.is-flagged{box-shadow:0 0 0 2px #B91C1C inset}
1050.lg-sh__findings{background:var(--color-surface,#fff);border:1px solid var(--color-border,#e2e8f0);border-radius:16px;padding:24px}
1051.lg-sh__findings h3{margin:0 0 4px;font-size:1.05rem;color:var(--brand-navy,#003366)}
1052.lg-sh__findings>p{margin:0 0 16px;font-size:.88rem;color:var(--color-text-muted,#64748b)}
1053.lg-sh__fitem{display:flex;gap:12px;align-items:flex-start;opacity:0;max-height:0;overflow:hidden;transition:opacity .4s ease,max-height .4s ease,margin .4s ease}
1054.lg-sh__fitem.is-active{opacity:1;max-height:120px;margin-bottom:14px}
1055.lg-sh__fico{flex:0 0 auto;width:24px;height:24px;border-radius:999px;background:#B91C1C;color:#fff;font-weight:800;font-size:.78rem;display:flex;align-items:center;justify-content:center;margin-top:2px}
1056.lg-sh__ft{display:block;font-weight:700;color:var(--brand-navy,#003366);margin-bottom:2px}
1057.lg-sh__fd{margin:0;font-size:.85rem;color:var(--color-text-secondary,#4a5568)}
1058.lg-sh__count{font-size:.85rem;font-weight:700;color:var(--brand-navy,#003366);padding-top:10px;border-top:1px solid var(--color-border,#e2e8f0)}
1059.lg-sh__ctrl{display:flex;align-items:center;gap:16px;margin-bottom:20px;flex-wrap:wrap}
1060.lg-sh__btn{font:inherit;font-size:.92rem;font-weight:700;color:#fff;background:var(--brand-orange,#FF8C00);border:none;border-radius:10px;padding:12px 20px;cursor:pointer;transition:background .18s ease}
1061.lg-sh__btn:hover{background:#e07b00}
1062.lg-sh__btn.is-restart{background:var(--brand-navy,#003366)}
1063.lg-sh__btn.is-restart:hover{background:#012448}
1064.lg-sh__btn[disabled]{opacity:.7;cursor:default}
1065.lg-sh__legend{font-size:.85rem;color:var(--color-text-muted,#64748b)}
1066.lg-sh__grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start}
1067@media(max-width:900px){.lg-sh__grid{grid-template-columns:1fr}}
1068.lg-erleben-close{margin-top:28px;text-align:center}
1069.lg-erleben-close__note{margin:0 0 8px;color:var(--color-text-muted,#64748b);font-size:.88rem}
1070.lg-erleben-close__link{display:inline-flex;align-items:center;gap:6px;font-size:.95rem;font-weight:700;color:var(--brand-navy,#003366);text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(0,51,102,.35);transition:color .15s ease,text-decoration-color .15s ease}
1071.lg-erleben-close__link:hover{color:var(--brand-orange,#FF8C00);text-decoration-color:var(--brand-orange,#FF8C00)}
1072.lg-erleben-close__link span{transition:transform .15s ease;display:inline-block}
1073.lg-erleben-close__link:hover span{transform:translateX(3px)}
1074</style><div class="section-band" data-section-bg="a"><section class="lifecycle-pentad" data-block="lifecyclePentad" id="lg-fuenfklang"><div class="section-shell"> <div class="section-head"><p class="section-head__eyebrow">Fünfklang · So bringt dich AppCore auf Kurs</p><h2 class="section-head__title">Shop-Pflichtangaben sind kein Einzelthema, sondern Teil deiner gesamten Compliance</h2><p class="section-head__lead">AppCore prüft deine Seite im Fünfklang. Shop-Pflichtangaben sitzen in der Optimieren-Stufe, im selben Lauf siehst du auch alle anderen Risiken.</p></div><div class="lifecycle-pentad__row"><article class="lifecycle-pentad__stage" data-cluster="scan" style="--lp-delay:0ms"><div class="lifecycle-pentad__num" aria-hidden="true">01</div><h3 class="lifecycle-pentad__name">Scannen</h3><p class="lifecycle-pentad__desc">Erfasst deinen Bestand und findet zeitkritische Risiken, auch bei den Pflichtangaben.</p></article><article class="lifecycle-pentad__stage" data-cluster="optimize" style="--lp-delay:100ms"><div class="lifecycle-pentad__num" aria-hidden="true">02</div><h3 class="lifecycle-pentad__name">Optimieren</h3><p class="lifecycle-pentad__desc">Hier sitzen die Shop-Pflichtangaben, gemeinsam mit 13 weiteren Lösungen.</p></article><article class="lifecycle-pentad__stage" data-cluster="validate" style="--lp-delay:200ms"><div class="lifecycle-pentad__num" aria-hidden="true">03</div><h3 class="lifecycle-pentad__name">Validieren</h3><p class="lifecycle-pentad__desc">Bündelt alle Prüfungen zu einem Score, ab 80 das SmartSeal.</p></article><article class="lifecycle-pentad__stage" data-cluster="publish" style="--lp-delay:300ms"><div class="lifecycle-pentad__num" aria-hidden="true">04</div><h3 class="lifecycle-pentad__name">Publizieren</h3><p class="lifecycle-pentad__desc">Bringt geprüfte Inhalte sauber und freigegeben nach draußen.</p></article><article class="lifecycle-pentad__stage" data-cluster="monitor" style="--lp-delay:400ms"><div class="lifecycle-pentad__num" aria-hidden="true">05</div><h3 class="lifecycle-pentad__name">Überwachen</h3><p class="lifecycle-pentad__desc">Prüft nach, sobald sich Inhalte oder Vorgaben ändern.</p></article></div> </div> </section>
1074<script type="module">const l=t=>{if(t.hasAttribute("data-lp-js"))return;t.setAttribute("data-lp-js","true");const n=Array.from(t.querySelectorAll(".lifecycle-pentad__stage")),d=()=>n.forEach(e=>e.classList.add("is-revealed"));if(window.matchMedia("(prefers-reduced-motion: reduce)").matches||!("IntersectionObserver"in window)){d();return}const r=new Set(n),o=e=>{e.classList.add("is-revealed"),r.delete(e)},s=new IntersectionObserver(e=>{e.forEach(c=>{c.isIntersecting&&(o(c.target),s.unobserve(c.target))})},{threshold:.12,rootMargin:"0px 0px -40px 0px"}),i=()=>{r.forEach(e=>{e.getBoundingClientRect().bottom<0&&(o(e),s.unobserve(e))}),r.size===0&&window.removeEventListener("scroll",i)};window.addEventListener("scroll",i,{passive:!0}),n.forEach(e=>s.observe(e))},a=()=>document.querySelectorAll('[data-block="lifecyclePentad"]').forEach(l);document.readyState==="loading"?document.addEventListener("DOMContentLoaded",a,{once:!0}):a();</script>
1074</div><section class="lg-preis-split" id="lg-preis">
1075  <div class="container lg-preis-split__inner">
1076    <div class="lg-preis-split__text">
1077      <span class="lg-preis-split__eyebrow">Was es kostet</span>
1078      <h2 class="lg-preis-split__title">Alle 20 Lösungen, ein Preis</h2>
1079      <p class="lg-preis-split__body">Shop-Pflichtangaben sind im AppCore CMS vollständig enthalten, genau wie die anderen 19 Lösungen. Dein Preis richtet sich nach Seitenzahl und Branche, nie nach Funktionsumfang. Bundle ab 990,- €, Vorsorge im ersten Jahr inklusive, danach automatisch.</p>
1080      <div class="lg-preis-split__ctas">
1081        <a class="btn btn--primary btn--lg" href="/audit?topic=shop-pflichtangaben">Kostenfreien Erstaudit starten</a>
1082        <a class="btn btn--ghost btn--lg" href="/pricing">Preisformel ansehen</a>
1083      </div>
1084    </div>
1085    <div class="lg-preis-split__visual" aria-hidden="true">
1086      <svg viewBox="0 0 320 220" class="lg-ladder">
1087        <rect x="20" y="150" width="80" height="50" rx="8" class="lg-ladder__step lg-ladder__step--1"/>
1088        <text x="60" y="180" class="lg-ladder__label" text-anchor="middle">Audit</text>
1089        <text x="60" y="140" class="lg-ladder__tag" text-anchor="middle">kostenfrei</text>
1090        <rect x="120" y="95" width="80" height="105" rx="8" class="lg-ladder__step lg-ladder__step--2"/>
1091        <text x="160" y="150" class="lg-ladder__label" text-anchor="middle">AppCore CMS</text>
1092        <text x="160" y="85" class="lg-ladder__tag" text-anchor="middle">Setup + Jahr 1</text>
1093        <rect x="220" y="40" width="80" height="160" rx="8" class="lg-ladder__step lg-ladder__step--3"/>
1094        <text x="260" y="123" class="lg-ladder__label" text-anchor="middle">Vorsorge</text>
1095        <text x="260" y="30" class="lg-ladder__tag" text-anchor="middle">automatisch</text>
1096        <path d="M100 175 L120 150" class="lg-ladder__arrow"/>
1097        <path d="M200 145 L220 120" class="lg-ladder__arrow"/>
1098      </svg>
1099    </div>
1100  </div>
1101<style>
1102.lg-preis-split{background:var(--brand-navy,#003366);color:#fff;padding:var(--space-8,64px) 0}
1103.lg-preis-split__inner{display:grid;grid-template-columns:1.1fr 1fr;gap:48px;align-items:center}
1104.lg-preis-split__eyebrow{font-family:var(--font-family-mono,monospace);font-size:.6875rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--brand-orange,#FF8C00)}
1105.lg-preis-split__title{font-size:var(--section-title-size,2rem);font-weight:800;letter-spacing:-.01em;margin:6px 0 0;color:#fff}
1106.lg-preis-split__body{font-size:1rem;color:rgba(255,255,255,.82);line-height:1.65;margin:16px 0 0;max-width:52ch}
1107.lg-preis-split__ctas{display:flex;gap:14px;flex-wrap:wrap;margin-top:26px}
1108.lg-preis-split__visual{display:flex;justify-content:center}
1109.lg-ladder{width:100%;max-width:340px;height:auto}
1110.lg-ladder__step{fill:rgba(255,255,255,.08);stroke:rgba(255,255,255,.22);stroke-width:1}
1111.lg-ladder__step--2{fill:rgba(255,140,0,.16);stroke:rgba(255,140,0,.5)}
1112.lg-ladder__step--3{fill:rgba(255,140,0,.32);stroke:var(--brand-orange,#FF8C00)}
1113.lg-ladder__label{font-family:var(--font-family-sans,sans-serif);font-size:13px;font-weight:700;fill:#fff}
1114.lg-ladder__tag{font-family:var(--font-family-mono,monospace);font-size:10px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;fill:rgba(255,255,255,.6)}
1115.lg-ladder__arrow{fill:none;stroke:rgba(255,255,255,.4);stroke-width:2;stroke-dasharray:4 3}
1116@media(max-width:860px){.lg-preis-split__inner{grid-template-columns:1fr;gap:32px}.lg-preis-split__visual{order:-1;max-width:280px;margin:0 auto}}
1117</style>
1118</section><section class="ac-mag" id="ac-mag" data-block="ac-magazine-tabs"><div class="ac-mag__head"><p class="ac-mag__eyebrow">Mehr zum Thema</p><h2 class="ac-mag__title">Mehr zu Shop-Pflichtangaben: InSights, InFocus und InGuide</h2><p class="ac-mag__lead">Alles, was wir zu Pflichtangaben und Widerrufsrecht bereits aufbereitet haben, an einem Ort.</p></div><div class="ac-mag__tabs" role="tablist" aria-label="Content-Art wählen"><button type="button" class="ac-mag__tabbtn" role="tab" id="ac-mag-tab-0" aria-selected="false" aria-controls="ac-mag-panel-0" data-tab="0" tabindex="-1">InSights</button><button type="button" class="ac-mag__tabbtn is-on" role="tab" id="ac-mag-tab-1" aria-selected="true" aria-controls="ac-mag-panel-1" data-tab="1">InFocus</button><button type="button" class="ac-mag__tabbtn" role="tab" id="ac-mag-tab-2" aria-selected="false" aria-controls="ac-mag-panel-2" data-tab="2" tabindex="-1">InGuide</button></div><div class="ac-mag__panels"><div class="ac-mag__panel" id="ac-mag-panel-0" role="tabpanel" aria-labelledby="ac-mag-tab-0" data-panel="0" hidden><div class="ac-mag__empty"><div class="ac-mag__empty-scan"></div><div class="ac-mag__empty-icon"><svg viewBox="0 0 48 48" aria-hidden="true"><circle cx="24" cy="24" r="21" fill="none" stroke="currentColor" stroke-width="2" opacity=".25"/><path d="M15 30V20l9-6 9 6v10" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"/>
1118<path d="M19 30v-7h10v7" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"/></svg></div><div class="ac-mag__empty-body"><span class="ac-mag__empty-badge"><span class="ac-mag__empty-dot"></span>Im Aufbau</span><p class="ac-mag__empty-t">Noch kein InSights-Artikel zu Shop-Pflichtangaben</p><p class="ac-mag__empty-d">Wir bauen InSights gerade auf. Bis ein passender Artikel da ist, findest du im Blog die bereits verfügbaren Themen.</p><a class="ac-mag__empty-link" href="/blog">Zu InSights<svg viewBox='0 0 20 20' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'><path d='M4 10h12M12 5l5 5-5 5'/></svg></a></div></div></div><div class="ac-mag__panel is-on" id="ac-mag-panel-1" role="tabpanel" aria-labelledby="ac-mag-tab-1" data-panel="1"><div class="ac-mag__grid"><a class="ac-mag__card--big" href="/infocus/online-shop-pflichtangaben"><span class="ac-mag__badge">Fernabsatz</span><h3 class="ac-mag__card-title">Online-Shop-Pflichtangaben: die Pflichtseiten im Überblick</h3><p class="ac-mag__card-teaser">Der InFocus-Begriff erklärt, was ein Online-Shop rechtlich zeigen muss und wo die typischen Lücken liegen.</p><span class="ac-mag__card-cta">Begriff ansehen<svg viewBox='0 0 20 20' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'><path d='M4 10h12M12 5l5 5-5 5'/></svg></span></a><div class="ac-mag__list"><a class="ac-mag__item" href="/infocus/widerrufsrecht"><span>Widerrufsrecht: die 14-Tage-Frist und ihre Fallstricke</span><span class="ac-mag__item-arrow" aria-hidden="true">→</span></a></div></div></div><div class="ac-mag__panel" id="ac-mag-panel-2" role="tabpanel" aria-labelledby="ac-mag-tab-2" data-panel="2" hidden><div class="ac-mag__empty"><div class="ac-mag__empty-scan"></div><div class="ac-mag__empty-icon"><svg viewBox="0 0 48 48" aria-hidden="true"><rect x="11" y="8" width="26" height="32" rx="3" fill="none" stroke="currentColor" stroke-width="2" opacity=".25"/><path d="M17 18h14M17 24h14M17 30h8" stroke="currentColor" stroke-width="2.2" stroke-linecap="round"/></svg></div><div class="ac-mag__empty-body"><span class="ac-mag__empty-badge"><span class="ac-mag__empty-dot"></span>Im Aufbau</span><p class="ac-mag__empty-t">Noch kein InGuide zu Shop-Pflichtangaben</p><p class="ac-mag__empty-d">InGuide steht bei AppCore noch am Anfang. Sobald ein passender Guide fertig ist, erscheint er hier.</p><a class="ac-mag__empty-link" href="/inguide">Zu InGuide<svg viewBox='0 0 20 20' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'><path d='M4 10h12M12 5l5 5-5 5'/></svg></a></div></div></div></div></section>
1119<style>
1120.ac-mag{max-width:1280px;margin:0 auto;padding:64px 24px;box-sizing:border-box}
1121.ac-mag__eyebrow{font-family:var(--font-family-mono,monospace);font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--brand-orange,#FF8C00);margin:0 0 8px}
1122.ac-mag__title{font-family:var(--font-family-display,sans-serif);font-size:clamp(1.6rem,3vw + 1rem,2.3rem);color:var(--brand-navy,#003366);margin:0 0 12px}
1123.ac-mag__lead{font-size:1rem;line-height:1.6;color:var(--color-text-secondary,#4A5568);max-width:64ch;margin:0 0 32px}
1124.ac-mag__tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px;border-bottom:1px solid var(--color-border,#E2E8F0);padding-bottom:0}
1125.ac-mag__tabbtn{font-family:var(--font-family-sans,sans-serif);font-size:.92rem;font-weight:700;padding:11px 20px;border-radius:10px 10px 0 0;border:none;background:transparent;color:var(--color-text-secondary,#4A5568);cursor:pointer;position:relative;transition:color .2s ease}
1126.ac-mag__tabbtn:hover{color:var(--brand-orange,#FF8C00)}
1127.ac-mag__tabbtn.is-on{color:var(--brand-navy,#003366)}
1128.ac-mag__tabbtn.is-on::after{content:"";position:absolute;left:14px;right:14px;bottom:-1px;height:3px;border-radius:3px;background:var(--brand-orange,#FF8C00)}
1129.ac-mag__panel{display:none}
1130.ac-mag__panel.is-on{display:block;animation:acMagFade .3s ease}
1131@keyframes acMagFade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
1132.ac-mag__grid{display:grid;grid-template-columns:1.1fr 1fr;gap:24px;align-items:stretch}
1133.ac-mag__card--big{display:flex;flex-direction:column;gap:12px;background:var(--color-surface,#fff);border:1px solid var(--color-border,#E2E8F0);border-radius:18px;padding:28px 26px;text-decoration:none;box-shadow:0 10px 28px -14px rgba(0,51,102,.24);transition:transform .18s ease,box-shadow .18s ease}
1134.ac-mag__card--big:hover{transform:translateY(-2px);box-shadow:0 18px 38px -16px rgba(0,51,102,.3)}
1134
1135.ac-mag__badge{align-self:flex-start;font-family:var(--font-family-mono,monospace);font-size:.68rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--brand-orange,#FF8C00);background:rgba(255,140,0,.1);padding:5px 12px;border-radius:999px}
1136.ac-mag__card-title{font-family:var(--font-family-display,sans-serif);font-size:1.2rem;line-height:1.35;color:var(--brand-navy,#003366);margin:0}
1137.ac-mag__card-teaser{font-size:.92rem;line-height:1.55;color:var(--color-text-secondary,#4A5568);margin:0;flex:1}
1138.ac-mag__card-cta{display:inline-flex;align-items:center;gap:6px;font-size:.88rem;font-weight:700;color:var(--brand-orange,#FF8C00)}
1139.ac-mag__card-cta svg{width:15px;height:15px;transition:transform .18s ease}
1140.ac-mag__card--big:hover .ac-mag__card-cta svg{transform:translateX(3px)}
1141.ac-mag__list{display:flex;flex-direction:column;gap:2px}
1142.ac-mag__item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 4px;border-bottom:1px solid var(--color-border,#E2E8F0);text-decoration:none;color:var(--brand-navy,#003366);font-size:.92rem;font-weight:600;line-height:1.4;transition:color .15s ease}
1143.ac-mag__item:last-child{border-bottom:none}
1144.ac-mag__item:hover{color:var(--brand-orange,#FF8C00)}
1145.ac-mag__item-arrow{flex-shrink:0;color:var(--brand-orange,#FF8C00);transition:transform .18s ease}
1146.ac-mag__item:hover .ac-mag__item-arrow{transform:translateX(3px)}
1147.ac-mag__empty{position:relative;overflow:hidden;display:flex;align-items:center;gap:28px;width:100%;background:linear-gradient(135deg,rgba(0,51,102,.03),rgba(255,140,0,.05));border:1.5px dashed var(--color-border,#CBD5E0);border-radius:20px;padding:40px 44px}
1148.ac-mag__empty-scan{position:absolute;left:0;right:0;top:0;height:70px;background:linear-gradient(180deg,rgba(255,140,0,.14),transparent);pointer-events:none;animation:acMagScan 4.4s ease-in-out infinite}
1149@keyframes acMagScan{0%{transform:translateY(-60px);opacity:0}15%{opacity:1}85%{opacity:1}100%{transform:translateY(220px);opacity:0}}
1150.ac-mag__empty-icon{position:relative;flex:0 0 auto;width:76px;height:76px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--color-surface,#fff);color:var(--brand-navy,#003366);box-shadow:0 10px 26px -12px rgba(0,51,102,.35)}
1151.ac-mag__empty-icon::before{content:"";position:absolute;inset:-6px;border-radius:50%;border:1.5px solid rgba(255,140,0,.4);animation:acMagRing 2.6s ease-out infinite}
1152@keyframes acMagRing{0%{transform:scale(.9);opacity:.8}100%{transform:scale(1.35);opacity:0}}
1153.ac-mag__empty-icon svg{width:32px;height:32px;position:relative;z-index:1}
1154.ac-mag__empty-body{position:relative;z-index:1;flex:1;min-width:0;text-align:left}
1155.ac-mag__empty-badge{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-family-mono,monospace);font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--brand-orange,#FF8C00);background:rgba(255,140,0,.12);padding:5px 11px;border-radius:999px;margin-bottom:10px}
1156.ac-mag__empty-dot{width:6px;height:6px;border-radius:50%;background:var(--brand-orange,#FF8C00);animation:acMagPulse 1.6s ease-in-out infinite}
1157@keyframes acMagPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}
1158.ac-mag__empty-t{font-family:var(--font-family-display,sans-serif);font-size:1.15rem;color:var(--brand-navy,#003366);margin:0 0 8px;font-weight:700}
1159.ac-mag__empty-d{font-size:.92rem;line-height:1.55;color:var(--color-text-secondary,#4A5568);margin:0 0 16px;max-width:56ch}
1160.ac-mag__empty-link{display:inline-flex;align-items:center;gap:6px;font-size:.9rem;font-weight:700;color:var(--brand-orange,#FF8C00);text-decoration:none}
1161.ac-mag__empty-link svg{width:15px;height:15px;transition:transform .18s ease}
1162.ac-mag__empty-link:hover svg{transform:translateX(3px)}
1163@media(max-width:820px){.ac-mag__grid{grid-template-columns:1fr}.ac-mag__empty{flex-direction:column;text-align:center;padding:36px 28px}.ac-mag__empty-body{text-align:center}.ac-mag__empty-d{margin-inline:auto}}
1164@media(prefers-reduced-motion:reduce){.ac-mag__panel.is-on{animation:none}.ac-mag__card--big,.ac-mag__item,.ac-mag__tabbtn{transition:none}.ac-mag__empty-scan,.ac-mag__empty-icon::before,.ac-mag__empty-dot{animation:none}}
1165</style><div class="section-band" data-section-bg="b"><section class="faq" data-block="faq"> <div class="section-shell">  <div class="section-head"><p class="section-head__eyebrow">Häufige Fragen</p><h2 class="section-head__title">Shop-Pflichtangaben, kurz erklärt</h2></div> <div class="faq__list"> <article class="faq-item" data-accordion-item data-open="false" data-cat="Recht" data-category="recht" data-filtered="true"> <button class="faq-item__trigger" data-accordion-toggle aria-expanded="false" type="button">  <span class="faq-item__meta"> <span class="faq-item__cat">Recht</span> <h3 class="faq-item__question">Welche Pflichtangaben braucht eine Produktseite?</h3> </span> <span class="faq-item__arrow" aria-hidden="true"> <svg viewBox="0 0 16 16" width="16" height="16" fill="none" aria-hidden="true"> <path d="M4 6l4 4 4-4" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path> </svg> </span> </button> <div class="faq-item__body" data-accordion-panel> <div class="faq-item__body-inner"> <div class="faq-item__body-pad"> <p class="faq-item__answer">Das hängt von der Ware ab, aber typisch sind Gesamtpreis inklusive Steuern, gegebenenfalls Grundpreis, Versandkosten, Lieferzeit und eine klare Widerrufsbelehrung. AppCore prüft die Produkt- und Bestellseiten gegen diese Anforderungen.</p>  </div> </div> </div> </article><article class="faq-item" data-accordion-item data-open="false" data-cat="Umfang" data-category="umfang" data-filtered="true"> <button class="faq-item__trigger" data-accordion-toggle aria-expanded="false" type="button">  <span class="faq-item__meta"> <span class="faq-item__cat">Umfang</span> <h3 class="faq-item__question">Gilt das auch für kleine Shops?</h3> </span> <span class="faq-item__arrow" aria-hidden="true"> <svg viewBox="0 0 16 16" width="16" height="16" fill="none" aria-hidden="true"> <path d="M4 6l4 4 4-4" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path> </svg> </span> </button> <div class="faq-item__body" data-accordion-panel> <div class="faq-item__body-inner"> <div class="faq-item__body-pad"> <p class="faq-item__answer">Ja. Die Informationspflichten gelten unabhängig von der Größe. Gerade kleinere Shops werden häufig abgemahnt, weil Pflichtangaben fehlen oder veraltet sind.</p>  </div> </div> </div> </article><article class="faq-item" data-accordion-item data-open="false" data-cat="Umfang" data-category="umfang" data-filtered="true"> <button class="faq-item__trigger" data-accordion-toggle aria-expanded="false" type="button">  <span class="faq-item__meta"> <span class="faq-item__cat">Umfang</span> <h3 class="faq-item__question">Prüft ihr nur den Shop?</h3> </span> <span class="faq-item__arrow" aria-hidden="true"> <svg viewBox="0 0 16 16" width="16" height="16" fill="none" aria-hidden="true"> <path d="M4 6l4 4 4-4" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path> </svg> </span> </button> <div class="faq-item__body" data-accordion-panel> <div class="faq-item__body-inner"> <div class="faq-item__body-pad"> <p class="faq-item__answer">Der AppCore Audit prüft deine Seite immer gegen alle 20 Lösungen auf einmal. Shop-Pflichtangaben sind eine davon, im selben Report siehst du auch Datenschutz, Cookies und mehr.</p>  </div> </div> </div> </article><article class="faq-item" data-accordion-item data-open="false" data-cat="Ablauf" data-category="ablauf" data-cluster="scan" data-filtered="true"> <button class="faq-item__trigger" data-accordion-toggle aria-expanded="false" type="button"> <span class="faq-item__icon" aria-hidden="true"><svg viewBox="0 0 32 32" fill="none"><circle cx="16" cy="16" r="12" stroke="currentColor" stroke-width="1.8" opacity="0.4"/><path d="M16 8v8l6 4" stroke="currentColor" stroke-width="2" stroke-linecap="round"/><circle cx="16" cy="16" r="1.5" fill="currentColor"/><path d="M16 4v2M28 16h-2M16 28v-2M4 16h2" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/></svg></span> <span class="faq-item__meta"> <span class="faq-item__cat">Ablauf</span> <h3 class="faq-item__question">Was kommt nach dem Audit?</h3> </span> <span class="faq-item__arrow" aria-hidden="true"> <svg viewBox="0 0 16 16" width="16" height="16" fill="none" aria-hidden="true"> <path d="M4 6l4 4 4-4" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path> </svg> </span> </button> <div class="faq-item__body" data-accordion-panel> <div class="faq-item__body-inner"> <div class="faq-item__body-pad"> <p class="faq-item__answer">Der Audit zeigt dir die Befunde. Der Umzug ins AppCore CMS behebt sie direkt, alle 20 Lösungen fest eingebaut, danach hält die Vorsorge deine Seite dauerhaft sauber.</p>  </div> </div> </div> </article> </div> <div class="faq__ask"> <div class="faq__ask-visual" aria-hidden="true">  <svg viewBox="0 0 80 80" fill="none"> <circle cx="40" cy="40" r="32" fill="none" stroke="currentColor" stroke-width="2" opacity="0.18" stroke-dasharray="3 4"> <animateTransform attributeName="transform" type="rotate" from="0 40 40" to="360 40 40" dur="40s" repeatCount="indef
1165inite"></animateTransform> </circle> <circle cx="40" cy="40" r="22" fill="currentColor" opacity="0.10"></circle> <circle cx="40" cy="40" r="14" fill="currentColor" opacity="0.18"> <animate attributeName="r" values="14;16;14" dur="2.4s" repeatCount="indefinite"></animate> <animate attributeName="opacity" values="0.18;0.32;0.18" dur="2.4s" repeatCount="indefinite"></animate> </circle> <circle cx="40" cy="40" r="14" fill="currentColor"></circle> <path d="M40 32a6 6 0 016 6c0 3-2 4-3 5-1 1-2 2-2 3M40 49v.5" stroke="var(--color-faq-ask-mark, #ffffff)" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"></path> </svg> </div> <div class="faq__ask-text"> <h3 class="faq__ask-title">Deine Frage ist nicht dabei?</h3> <p class="faq__ask-desc">Wir antworten innerhalb eines Werktags. Direkt von Tobias oder Andreas, keine Standard-Mail.</p> </div> <div class="faq__ask-cta"> <a class="faq__ask-btn" href="/kontakt">Frage stellen</a> </div> </div> </div>  </section> 
1165<script type="application/ld+json">{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Welche Pflichtangaben braucht eine Produktseite?","acceptedAnswer":{"@type":"Answer","text":"Das hängt von der Ware ab, aber typisch sind Gesamtpreis inklusive Steuern, gegebenenfalls Grundpreis, Versandkosten, Lieferzeit und eine klare Widerrufsbelehrung. AppCore prüft die Produkt- und Bestellseiten gegen diese Anforderungen."}},{"@type":"Question","name":"Gilt das auch für kleine Shops?","acceptedAnswer":{"@type":"Answer","text":"Ja. Die Informationspflichten gelten unabhängig von der Größe. Gerade kleinere Shops werden häufig abgemahnt, weil Pflichtangaben fehlen oder veraltet sind."}},{"@type":"Question","name":"Prüft ihr nur den Shop?","acceptedAnswer":{"@type":"Answer","text":"Der AppCore Audit prüft deine Seite immer gegen alle 20 Lösungen auf einmal. Shop-Pflichtangaben sind eine davon, im selben Report siehst du auch Datenschutz, Cookies und mehr."}},{"@type":"Question","name":"Was kommt nach dem Audit?","acceptedA
1165nswer":{"@type":"Answer","text":"Der Audit zeigt dir die Befunde. Der Umzug ins AppCore CMS behebt sie direkt, alle 20 Lösungen fest eingebaut, danach hält die Vorsorge deine Seite dauerhaft sauber."}}]}</script>
1165 
1165<script type="module">(function(){function o(t){t.querySelectorAll("[data-accordion-toggle]").forEach(function(r){r.addEventListener("click",function(){var a=r.closest("[data-accordion-item]");if(a){var i=a.getAttribute("data-open")==="true";a.setAttribute("data-open",i?"false":"true"),r.setAttribute("aria-expanded",i?"false":"true")}})})}function f(t){var r=t.querySelectorAll("[data-cat]");if(r.length){var a=t.querySelectorAll(".faq__pill[data-cat]"),i=t.querySelectorAll(".faq-item[data-cat]");a.forEach(function(c){c.addEventListener("click",function(){var n=c.getAttribute("data-cat");a.forEach(function(e){e.setAttribute("aria-pressed",e===c?"true":"false")}),i.forEach(function(e){var l=n==="all"||e.getAttribute("data-cat")===n;if(e.setAttribute("data-filtered",l?"true":"false"),!l){e.setAttribute("data-open","false");var u=e.querySelector("[data-accordion-toggle]");u&&u.setAttribute("aria-expanded","false")}})})})}}document.querySelectorAll('[data-block="faq"]').forEach(function(t){o(t),f(t)})})();</script>
1165 </div><section class="content-callout" data-block="contentCallout" data-variant="card"><div class="section-shell"> <div class="content-callout__inner"><div class="content-callout__body"><div class="section-head"><p class="section-head__eyebrow">Jetzt starten</p><h2 class="section-head__title">Compliance veraltet jeden Tag. <span class="accent">Wir halten dich aktuell.</span></h2></div><p class="content-callout__text">Eine fehlende Pflichtangabe fällt oft erst auf, wenn die Abmahnung im Postfach liegt. Starte jetzt mit dem kostenfreien Audit-Bericht. Keine Kreditkarte, kein Abo.</p><div class="content-callout__ctas"><a class="content-callout__cta content-callout__cta--primary" href="/audit?topic=shop-pflichtangaben">Kostenfreien Audit starten</a><a class="content-callout__cta content-callout__cta--ghost" href="/loesung">Alle 20 Lösungen ansehen</a></div></div><div class="content-callout__seal-art" aria-hidden="true"><svg viewBox="0 0 120 132" class="content-callout__seal-svg" aria-hidden="true" focusable="false"><path d="M60 8 L106 26 V68 C106 98 86 116 60 122 C34 116 14 98 14 68 V26 Z" fill="var(--color-callout-card-seal-bg,#F0F4F8)" stroke="var(--color-callout-card-seal-stroke,#9ca3af)" stroke-width="3"></path><rect x="38" y="52" width="44" height="7" rx="3.5" fill="var(--color-callout-card-bar1,#9ca3af)"></rect><rect x="38" y="66" width="44" height="7" rx="3.5" fill="var(--color-callout-card-bar2,#6b7280)"></rect><rect x="38" y="80" width="44" height="7" rx="3.5" fill="var(--color-callout-card-bar3,#9ca3af)"></rect><circle cx="90" cy="34" r="16" fill="var(--color-callout-card-seal-accent, #6b7280)"></circle><path d="M83 34.5l4.5 4.5 9.5-10.5" fill="none" stroke="var(--color-text-inverse,#ffffff)" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></div></div> </div> </section> </main> <footer class="footer" role="contentinfo"> <div class="container"> <div class="footer__grid">  <div class="footer__column footer__column--linkgrid"> <div class="footer__linkgrid"> <div class="footer__linkgrid-group"> <p class="footer__linkgrid-heading">Scannen</p> <ul class="footer__linkgrid-list"> <li> <a href="/loesung/digital-decay" class="footer__linkgrid-link"> <span class="footer__linkgrid-dot" style="background: var(--color-so-scan, var(--brand-orange));" aria-hidden="true"></span> <span>Digital Decay</span> </a> </li> </ul> </div><div class="footer__linkgrid-group"> <p class="footer__linkgrid-heading">Rechtliche Pflichten</p> <ul class="footer__linkgrid-list"> <li> <a href="/loesung/barrierefreiheit" class="footer__linkgrid-link"> <span class="footer__linkgrid-dot" style="background: var(--color-so-optimize, var(--brand-orange));" aria-hidden="true"></span> <span>Barrierefreiheit</span> </a> </li><li> <a href="/loesung/shop-pflichtangaben" class="footer__linkgrid-link"> <span class="footer__linkgrid-dot" style="background: var(--color-so-optimize, var(--brand-orange));" aria-hidden="true"></span> <span>Shop-Pflichtangaben</span> </a> </li><li> <a href="/loesung/dsgvo-check" class="footer__linkgrid-link"> <span class="footer__linkgrid-dot" style="background: var(--color-so-optimize, var(--brand-orange));" aria-hidden="true"></span> <span>DSGVO-Check</span> </a> </li><li> <a href="/loesung/cookie-tracking" class="footer__linkgrid-link"> <span class="footer__linkgrid-dot" style="background: var(--color-so-optimize, var(--brand-orange));" aria-hidden="true"></span> <span>Cookies &amp; Tracking</span> </a> </li><li> <a href="/loesung/agb-check" class="footer__linkgrid-link"> <span class="footer__linkgrid-dot" style="background: var(--color-so-optimize, var(--brand-orange));" aria-hidden="true"></span> <span>AGB-Check</span> </a> </li> </ul> </div><div class="footer__linkgrid-group"> <p class="footer__linkgrid-heading">Werbe-Compliance</p> <ul class="footer__linkgrid-list"> <li> <a href="/loesung/ki-claims-pruefen" class="footer__linkgrid-link"> <span class="footer__linkgrid-dot" style="background: var(--color-so-optimize, var(--brand-orange));" aria-hidden="true"></span> <span>KI-Claims prüfen</span> </a> </li><li> <a href="/loesung/green-claims" class="footer__linkgrid-link"> <span class="footer__linkgrid-dot" style="background: var(--color-so-optimize, var(--brand-orange));" aria-hidden="true"></span> <span>Green Claims</span> </a> </li><li> <a href="/loesung/health-claims" class="footer__linkgrid-link"> <span class="footer__linkgrid-dot" style="background: var(--color-so-optimize, var(--brand-orange));" aria-hidden="true"></span> <span>Health Claims</span> </a> </li><li> <a href="/loesung/bewertungen" class="footer__linkgrid-link"> <span class="footer__linkgrid-dot" style="background: var(--color-so-optimize, var(--brand-orange));" aria-hidden="true"></span> <span>Bewertungen</span> </a> </li> </ul> </div><div class="footer__linkgrid-group"> <p class="footer__linkgrid-heading">Inhalts-Qualität</p> <ul class="footer__linkgrid-list"> <li> <a href="/loesung/quellen-validierung" class="footer__linkgrid-link"> <span class="footer__linkgrid-dot" style="background: var(--color-so-optimize, var(--brand-orange));" aria-hidden="true"></span> <span>Quellen-Validierung</span> </a> </li><li> <a href="/loesung/bild-rechte" class="footer__linkgrid-link"> <span class="footer__linkgrid-dot" style="background: var(--color-so-optimize, var(--brand-orange));" aria-hidden="true"></span> <span>Bild-Rechte</span> </a> </li><li> <a href="/loesung/inhalte-aktualisieren" class="footer__linkgrid-link"> <span class="footer__linkgrid-dot" style="background: var(--color-so-optimize, var(--brand-orange));" aria-hidden="true"></span> <span>Inhalte aktualisieren</span> </a> </li> </ul> </div><div class="footer__linkgrid-group"> <p class="footer__linkgrid-heading">Strategisch</p> <ul class="footer__linkgrid-list"> <li> <a href="/loesung/ai-act" class="footer__linkgrid-link"> <span class="footer__linkgrid-dot" style="background: var(--color-so-optimize, var(--brand-orange));" aria-hidden="true"></span> <span>AI Act</span> </a> </li><li> <a href="/loesung/sichtbarkeit" class="footer__linkgrid-link"> <span class="footer__linkgrid-dot" style="background: var(--color-so-optimize, var(--brand-orange));" aria-hidden="true"></span> <span>Sichtbarkeit</span> </a> </li> </ul> </div><div class="footer__linkgrid-group"> <p class="footer__linkgrid-heading">Validieren</p> <ul class="footer__linkgrid-list"> <li> <a href="/loesung/beweiskette" class="footer__linkgrid-link"> <span class="footer__linkgrid-dot" style="background: var(--color-so-vali
1165date, var(--brand-orange));" aria-hidden="true"></span> <span>Beweiskette</span> </a> </li> </ul> </div><div class="footer__linkgrid-group"> <p class="footer__linkgrid-heading">Publizieren</p> <ul class="footer__linkgrid-list"> <li> <a href="/loesung/cms-migration" class="footer__linkgrid-link"> <span class="footer__linkgrid-dot" style="background: var(--color-so-publish, var(--brand-orange));" aria-hidden="true"></span> <span>CMS-Migration</span> </a> </li><li> <a href="/loesung/freigabe-prozess" class="footer__linkgrid-link"> <span class="footer__linkgrid-dot" style="background: var(--color-so-publish, var(--brand-orange));" aria-hidden="true"></span> <span>Freigabe-Prozess</span> </a> </li> </ul> </div><div class="footer__linkgrid-group"> <p class="footer__linkgrid-heading">Überwachen</p> <ul class="footer__linkgrid-list"> <li> <a href="/loesung/normen-monitoring" class="footer__linkgrid-link"> <span class="footer__linkgrid-dot" style="background: var(--color-so-monitor, var(--brand-orange));" aria-hidden="true"></span> <span>Normen-Monitoring</span> </a> </li><li> <a href="/loesung/drift-monitoring" class="footer__linkgrid-link"> <span class="footer__linkgrid-dot" style="background: var(--color-so-monitor, var(--brand-orange));" aria-hidden="true"></span> <span>Drift-Monitoring</span> </a> </li> </ul> </div> </div> </div><div class="footer__column footer__column--brand"> <a href="/" class="ac-logo-link" aria-label="AppCore Startseite">  <span class="ac-logo ac-logo--dark" style="--logo-size: 32px;"> <span class="ac-logo__wm"> <span class="ac-logo__app">App</span><span class="ac-logo__core">Core</span> </span> <span class="ac-logo__sl">Powered by Experts</span> </span>  </a> <p class="footer__brand-description">Das compliance-native CMS für Websites im deutschsprachigen Raum, alle 20 Compliance-Lösungen fest eingebaut. Scannen, optimieren, validieren, publizieren, überwachen, alles im eigenen System.</p> <div class="footer__social" aria-label="Social Media"> <a href="/kontakt" class="footer__social-link" aria-label="E-Mail"> <svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M20 4H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2zm0 2-8 5-8-5h16zm0 12H4V8.82l7.72 4.83a1 1 0 0 0 1.06 0L20 8.82V18z"/></svg> </a><a href="#" class="footer__social-link" aria-label="LinkedIn" data-coming-soon="true"> <svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"> <path d="M19 3a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14zM8.34 18.34V9.67H5.67v8.67h2.67zM7 8.5a1.55 1.55 0 1 0 0-3.1 1.55 1.55 0 0 0 0 3.1zm11.34 9.84v-4.74c0-2.55-1.36-3.74-3.18-3.74-1.47 0-2.13.81-2.49 1.38V9.67h-2.67c.04.76 0 8.67 0 8.67h2.67v-4.84c0-.24.02-.48.09-.65.19-.48.63-.97 1.36-.97.96 0 1.34.73 1.34 1.8v4.66h2.88z"/> </svg> </a><a href="#" class="footer__social-link" aria-label="X (Twitter)" data-coming-soon="true"> <svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"> <path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231 5.45-6.231zm-1.161 17.52h1.833L7.084 4.126H5.117l11.966 15.644z"/> </svg> </a><a href="#" class="footer__social-link" aria-label="YouTube" data-coming-soon="true"> <svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"> <path d="M23.5 6.5a3 3 0 0 0-2.1-2.1C19.5 4 12 4 12 4s-7.5 0-9.4.4A3 3 0 0 0 .5 6.5C.1 8.4.1 12 .1 12s0 3.6.4 5.5a3 3 0 0 0 2.1 2.1c1.9.4 9.4.4 9.4.4s7.5 0 9.4-.4a3 3 0 0 0 2.1-2.1c.4-1.9.4-5.5.4-5.5s0-3.6-.4-5.5zM9.6 15.6V8.4l6.2 3.6-6.2 3.6z"/> </svg> </a><a href="#" class="footer__social-link" aria-label="Instagram" data-coming-soon="true"> <svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"> <path d="M12 2.16c3.2 0 3.58.01 4.85.07 1.17.05 1.8.25 2.23.41.56.22.96.48 1.38.9.42.42.68.82.9 1.38.16.42.36 1.06.41 2.23.06 1.27.07 1.65.07 4.85s-.01 3.58-.07 4.85c-.05 1.17-.25 1.8-.41 2.23-.22.56-.48.96-.9 1.38-.42.42-.82.68-1.38.9-.42.16-1.06.36-2.23.41-1.27.06-1.65.07-4.85.07s-3.58-.01-4.85-.07c-1.17-.05-1.8-.25-2.23-.41a3.7 3.7 0 0 1-1.38-.9 3.7 3.7 0 0 1-.9-1.38c-.16-.42-.36-1.06-.41-2.23-.06-1.27-.07-1.65-.07-4.85s.01-3.58.07-4.85c.05-1.17.25-1.8.41-2.23.22-.56.48-.96.9-1.38.42-.42.82-.68 1.38-.9.42-.16 1.06-.36 2.23-.41 1.27-.06 1.65-.07 4.85-.07zM12 0C8.74 0 8.33.01 7.05.07c-1.28.06-2.16.26-2.92.56-.79.3
11651-1.46.72-2.13 1.38A5.9 5.9 0 0 0 .63 4.13c-.3.76-.5 1.64-.56 2.92C.01 8.33 0 8.74 0 12s.01 3.67.07 4.95c.06 1.28.26 2.16.56 2.92.31.79.72 1.46 1.38 2.13a5.9 5.9 0 0 0 2.13 1.38c.76.3 1.64.5 2.92.56C8.33 23.99 8.74 24 12 24s3.67-.01 4.95-.07c1.28-.06 2.16-.26 2.92-.56a5.9 5.9 0 0 0 2.13-1.38 5.9 5.9 0 0 0 1.38-2.13c.3-.76.5-1.64.56-2.92.06-1.28.07-1.69.07-4.95s-.01-3.67-.07-4.95c-.06-1.28-.26-2.16-.56-2.92a5.9 5.9 0 0 0-1.38-2.13A5.9 5.9 0 0 0 19.87.63c-.76-.3-1.64-.5-2.92-.56C15.67.01 15.26 0 12 0zm0 5.84a6.16 6.16 0 1 0 0 12.32 6.16 6.16 0 0 0 0-12.32zM12 16a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm6.4-11.85a1.44 1.44 0 1 0 0 2.88 1.44 1.44 0 0 0 0-2.88z"/> </svg> </a><a href="#" class="footer__social-link" aria-label="Facebook" data-coming-soon="true"> <svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"> <path d="M24 12.07C24 5.41 18.63 0 12 0S0 5.41 0 12.07C0 18.1 4.39 23.1 10.13 24v-8.44H7.08v-3.49h3.05V9.41c0-3.02 1.79-4.69 4.53-4.69 1.31 0 2.68.24 2.68.24v2.97h-1.51c-1.49 0-1.95.93-1.95 1.88v2.26h3.32l-.53 3.49h-2.79V24C19.61 23.1 24 18.1 24 12.07z"/> </svg> </a> </div>     </div><div class="footer__column" data-sections="1" style="--footer-col-weight:1"> <div class="footer__column-block"> <p class="footer__column-title">Plattform</p> <ul class="footer__links"> <li> <a href="/audit" class="footer__link">  AppCore Audit </a> </li><li> <a href="/cms" class="footer__link">  AppCore CMS² </a> </li><li> <a href="/system" class="footer__link">  AppCore System </a> </li><li> <a href="/pricing" class="footer__link">  AppCore Pricing </a> </li> </ul> </div> </div><div class="footer__column" data-sections="1" style="--footer-col-weight:1"> <div class="footer__column-block"> <p class="footer__column-title">Wissen</p> <ul class="footer__links"> <li> <a href="/inscope" class="footer__link">  AppCore InScope </a> </li><li> <a href="/blog" class="footer__link">  AppCore InSights </a> </li><li> <a href="/infocus" class="footer__link">  AppCore InFocus </a> </li><li> <a href="/inguide" class="footer__link">  AppCore InGuide </a> </li> </ul> </div> </div><div class="footer__column" data-sections="1" style="--footer-col-weight:1"> <div class="footer__column-block"> <p class="footer__column-title">Rechtliches</p> <ul class="footer__links"> <li> <a href="/barrierefreiheits-erklaerung" class="footer__link">  Barrierefreiheits-Erklärung </a> </li><li> <a href="/impressum" class="footer__link">  Impressum </a> </li><li> <a href="/datenschutz" class="footer__link">  Datenschutz </a> </li><li> <a href="/agb" class="footer__link">  AGB </a> </li> </ul> </div> </div> </div> <p class="footer__disclaimer">* Alle angegebenen Preise sind Nettopreise, zzgl. der gesetzlich geltenden Umsatzsteuer.</p> <div class="footer__bottom">  <span>© 2026 datavisibles S.L.</span> <span>Made with care in Germany &amp; Spain</span>    </div> </div> </footer>   
1165<script type="module" src="/_astro/MapActivation.astro_astro_type_script_index_0_lang.BeeAliTI.js"></script>
1165  
1165<script> 
1166(function () {
1167  'use strict';
1168  if (window.__acMobileMenuMounted) return;
1169
1170  var CL  = { '01':'#003366','02':'#FF8C00','03':'#2ECC71','04':'#5B9BD5','05':'#6F42C1' };
1171  var CLS = { '01':'rgba(0,51,102,.08)','02':'rgba(255,140,0,.12)','03':'rgba(46,204,113,.14)','04':'rgba(91,155,213,.14)','05':'rgba(111,66,193,.12)' };
1172
1173  function el(tag, cls, txt){ var e=document.createElement(tag); if(cls)e.className=cls; if(txt!=null)e.textContent=txt; return e; }
1174  function txt(node){ return node ? (node.textContent||'').replace(/\s+/g,' ').trim() : ''; }
1175
1176  function init(){
1177    if (window.__acMobileMenuMounted) return;
1178    var wrap   = document.querySelector('details.header__hamburger-wrap');
1179    var header = document.getElementById('siteHeader');
1180    if (!wrap || !header) return;
1181    var summary = wrap.querySelector('summary');
1182    var origNav = wrap.querySelector('#mobile-nav');
1183    window.__acMobileMenuMounted = true;
1184
1185    var megas = [];
1186    Array.prototype.forEach.call(header.querySelectorAll('details[data-mega]'), function(d){
1187      var sum = d.querySelector('summary');
1188      var m   = d.querySelector('.nav-mega');
1189      if (sum && m) megas.push({ label: txt(sum), node: m });
1190    });
1191    var megaLabels = megas.map(function(m){ return m.label.toLowerCase(); });
1192
1193    injectStyle();
1194
1195    var overlay = el('div','acmm');
1196    overlay.setAttribute('role','dialog');
1197    overlay.setAttribute('aria-modal','true');
1198    overlay.setAttribute('aria-label','Hauptmenü');
1199
1200    var top = el('div','acmm__top');
1201    var brand = header.querySelector('.header__brand');
1202    if (brand) top.appendChild(brand.cloneNode(true));
1203    var close = el('button','acmm__close'); close.type='button'; close.setAttribute('aria-label','Menü schließen');
1204    close.innerHTML = '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><path d="M6 6l12 12M18 6L6 18" stroke-linecap="round"/></svg>';
1205    top.appendChild(close);
1206    overlay.appendChild(top);
1207
1208    var body = el('div','acmm__body');
1209
1210    var directNav = el('nav','acmm__nav'); directNav.setAttribute('aria-label','Hauptnavigation');
1211    var account = [];
1212    if (origNav) {
1213      Array.prototype.forEach.call(origNav.querySelectorAll('a'), function(a){
1214        var href  = a.getAttribute('href')||'';
1215        var label = txt(a);
1216        if (/my\.appcore\.ai/.test(href)) { account.push(a); return; }
1217        if (megaLabels.indexOf(label.toLowerCase()) !== -1) return;
1218        var lk = el('a','acmm__link', label); lk.href = href;
1219        directNav.appendChild(lk);
1220      });
1221    }
1222
1223    var panelSeq = 0;
1224    megas.forEach(function(m){
1225      var mega = m.node;
1226      var sec = el('div','acmm__solutions');
1227      sec.appendChild(el('p','acmm__solutions-label', m.label));
1228
1229      Array.prototype.forEach.call(mega.querySelectorAll('.nav-mega__stage-card'), function(card, i){
1230        var num   = txt(card.querySelector('.nav-mega__stage-num')) || ('0'+(i+1));
1231        var title = txt(card.querySelector('.nav-mega__stage-title'));
1232        var label = txt(card.querySelector('.nav-mega__stage-label'));
1233        var acc = el('div','acmm__acc');
1234        acc.style.setProperty('--c',  CL[num]  || '#003366');
1235        acc.style.setProperty('--cs', CLS[num] || 'rgba(0,51,102,.08)');
1236        var pid = 'acmmP' + (panelSeq++);
1237        var trg = el('button','acmm__trg'); trg.type='button';
1238        trg.setAttribute('aria-expanded','false'); trg.setAttribute('aria-controls',pid);
1239        trg.appendChild(el('span','acmm__num',num));
1240        var lab = el('span','acmm__lab');
1241        lab.appendChild(el('span','acmm__stage',title));
1242        if (label) lab.appendChild(el('span','acmm__count',label));
1243        trg.appendChild(lab);
1244        var chev = el('span','acmm__chev');
1245        chev.innerHTML = '<svg viewBox="0 0 20 20" aria-hidden="true"><path d="M5 8l5 5 5-5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg>';
1246        trg.appendChild(chev);
1247
1248        var panel = el('div','acmm__panel'); panel.id = pid; panel.hidden = true;
1249        var grid = card.querySelector('.nav-mega__optimize-grid');
1250        if (grid) {
1251          Array.prototype.forEach.call(grid.querySelectorAll('.nav-mega__og'), function(og){
1252            var g = el('div','acmm__group');
1253            var gt = txt(og.querySelector('.nav-mega__og-title'));
1254            if (gt) g.appendChild(el('p','acmm__group-title',gt));
1255            Array.prototype.forEach.call(og.querySelectorAll('a.nav
1255-mega__og-link'), function(a){
1256              var lk = el('a','acmm__slink', txt(a)); lk.href = a.getAttribute('href')||'#';
1257              g.appendChild(lk);
1258            });
1259            panel.appendChild(g);
1260          });
1261        } else {
1262          Array.prototype.forEach.call(card.querySelectorAll('a.nav-mega__link'), function(a){
1263            var lk = el('a','acmm__slink'); lk.href = a.getAttribute('href')||'#';
1264            lk.appendChild(el('span','acmm__slink-t', txt(a.querySelector('.nav-mega__link-title')) || txt(a)));
1265            var d = txt(a.querySelector('.nav-mega__link-desc'));
1266            if (d) lk.appendChild(el('span','acmm__slink-d', d));
1267            panel.appendChild(lk);
1268          });
1269        }
1270        acc.appendChild(trg); acc.appendChild(panel);
1271        sec.appendChild(acc);
1272      });
1273
1274      var f = mega.querySelector('.nav-mega__footer-link');
1275      if (f) {
1276        var all = el('a','acmm__all'); all.href = f.getAttribute('href')||'#';
1277        all.appendChild(el('span', null, txt(f)));
1278        all.insertAdjacentHTML('beforeend','<svg viewBox="0 0 20 20" aria-hidden="true"><path d="M5 10h10M11 5l5 5-5 5" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg>');
1279        sec.appendChild(all);
1280      }
1281      body.appendChild(sec);
1282    });
1283
1284    body.appendChild(directNav);
1285
1286    overlay.appendChild(body);
1287
1288    var actions = el('div','acmm__actions');
1289    var cta = el('a','acmm__btn acmm__btn--primary','Audit starten'); cta.href='/audit';
1290    actions.appendChild(cta);
1291    account.forEach(function(a){
1292      var lk = el('a','acmm__btn acmm__btn--ghost', txt(a)); lk.href = a.getAttribute('href')||'#';
1293      actions.appendChild(lk);
1294    });
1295    overlay.appendChild(actions);
1296
1297    if (origNav) origNav.hidden = true;
1298    document.body.appendChild(overlay);
1299
1300    var savedY = 0;
1301    function lock(){
1302      savedY = window.scrollY || window.pageYOffset || 0;
1303      document.body.style.top = (-savedY) + 'px';
1304      document.body.classList.add('acmm-locked');
1305    }
1306    function unlock(){
1307      document.body.classList.remove('acmm-locked');
1308      document.body.style.top = '';
1309      window.scrollTo(0, savedY);
1310    }
1311
1312    var lastFocus = null;
1313    wrap.addEventListener('toggle', function(){
1314      if (wrap.open) {
1315        lastFocus = document.activeElement;
1316        lock();
1317        overlay.classList.add('is-open');
1318        if (summary) summary.setAttribute('aria-expanded','true');
1319        setTimeout(function(){ close.focus(); }, 0);
1320      } else {
1321        overlay.classList.remove('is-open');
1322        unlock();
1323        if (summary) summary.setAttribute('aria-expanded','false');
1324        if (lastFocus && lastFocus.focus) lastFocus.focus(); else if (summary) summary.focus();
1325      }
1326    });
1327    close.addEventListener('click', function(){ wrap.open = false; });
1328
1329    Array.prototype.forEach.call(overlay.querySelectorAll('.acmm__trg'), function(t){
1330      t.addEventListener('click', function(){
1331        var p = document.getElementById(t.getAttribute('aria-controls'));
1332        var ex = t.getAttribute('aria-expanded') === 'true';
1333        t.setAttribute('aria-expanded', String(!ex));
1334        if (p) p.hidden = ex;
1335      });
1336    });
1337    Array.prototype.forEach.call(overlay.querySelectorAll('a[href]'), function(a){
1338      a.addEventListener('click', function(){ wrap.open = false; });
1339    });
1340    document.addEventListener('keydown', function(e){
1341      if (!wrap.open) return;
1342      if (e.key === 'Escape') { e.preventDefault(); wrap.open = false; return; }
1343      if (e.key === 'Tab') {
1344        var f = Array.prototype.slice.call(overlay.querySelectorAll('a[href],button:not([disabled])')).filter(function(x){ return x.offsetParent !== null; });
1345        if (!f.length) return;
1346        var first = f[0], last = f[f.length-1];
1347        if (e.shiftKey && document.activeElement === first) { e.preventDefault(); last.focus(); }
1348        else if (!e.shiftKey && document.activeElement === last) { e.preventDefault(); first.focus(); }
1349      }
1350    });
1351    var mq = window.matchMedia('(min-width: 901px)');
1352    var onMq = function(){ if (mq.matches && wrap.open) wrap.open = false; };
1353    if (mq.addEventListener) mq.addEventListener('change', onMq); else if (mq.addListener) mq.addListener(onMq);
1354  }
1355
1356  function injectStyle(){
1357    if (document.getElementById('acmm-style')) return;
1358    var s = document.createElement('style'); s.id = 'acmm-style'; s.textContent = ACMM_CSS;
1359    document.head.appendChild(s);
1360  }
1361
1362  var ACMM_CSS = `
1363body.acmm-locked{position:fixed;left:0;right:0;width:100%;overflow:hidden}
1364.acmm{display:none}
1365.acmm.is-open{display:flex;flex-direction:column;position:fixed;inset:0;z-index:1000;background:var(--brand-white,#fff);overscroll-behavior:contain}
1366.acmm *{box-sizing:border-box}
1367.acmm__top{flex:none;display:flex;align-items:center;justify-content:space-between;gap:16px;height:64px;padding:0 24px;border-bottom:2px solid var(--brand-navy,#003366)}
1368.acmm__close{flex:none;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:8px;
1368cursor:pointer;color:var(--brand-navy,#003366)}
1369.acmm__close:hover{background:rgba(0,51,102,.06)}
1370.acmm__close:focus-visible{outline:2px solid var(--brand-navy,#003366);outline-offset:2px}
1371.acmm__close svg{width:24px;height:24px}
1372.acmm__body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:16px 24px 32px}
1373.acmm__nav{display:flex;flex-direction:column;gap:2px;margin-top:8px;padding-top:8px;border-top:1px solid var(--color-border-subtle,#E2E8F0)}
1374.acmm__link{display:flex;align-items:center;min-height:44px;padding:12px 0;font-size:1.3125rem;font-weight:600;color:var(--color-text-primary,#003366);border-bottom:1px solid var(--color-border-subtle,#E2E8F0);text-decoration:none}
1375.acmm__link:hover{color:var(--brand-orange,#FF8C00)}
1376.acmm__solutions{margin-top:8px}
1377.acmm__solutions-label{font-family:var(--font-family-mono,monospace);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted,#718096);padding:16px 0 8px;margin:0}
1378.acmm__acc{border-bottom:1px solid var(--color-border-subtle,#E2E8F0)}
1379.acmm__trg{width:100%;min-height:56px;display:flex;align-items:center;gap:12px;padding:10px 0;background:transparent;border:none;cursor:pointer;text-align:left;color:var(--color-text-primary,#003366);font-family:inherit}
1380.acmm__trg:focus-visible{outline:2px solid var(--c,#003366);outline-offset:2px;border-radius:6px}
1381.acmm__num{flex:none;width:34px;height:34px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-family-mono,monospace);font-weight:600;font-size:.9rem;color:var(--c,#003366);background:var(--cs,rgba(0,51,102,.08))}
1382.acmm__lab{flex:1;min-width:0}
1383.acmm__stage{display:block;font-size:1.0625rem;font-weight:700}
1384.acmm__count{display:block;font-family:var(--font-family-mono,monospace);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted,#718096);margin-top:2px}
1385.acmm__chev{flex:none;width:20px;height:20px;color:var(--color-text-muted,#718096);transition:transform .22s ease;display:inline-flex}
1386.acmm__chev svg{width:20px;height:20px}
1387.acmm__trg[aria-expanded="true"] .acmm__chev{transform:rotate(180deg)}
1388.acmm__panel{padding:0 0 12px 46px}
1389.acmm__panel[hidden]{display:none}
1390.acmm__group+.acmm__group{margin-top:12px}
1391.acmm__group-title{font-family:var(--font-family-mono,monospace);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted,#718096);margin:0 0 2px}
1392.acmm__slink{display:block;min-height:44px;padding:9px 0;font-size:1rem;font-weight:600;color:var(--color-text-primary,#003366);text-decoration:none}
1393.acmm__slink:hover{color:var(--brand-orange,#FF8C00)}
1394.acmm__slink-t{display:block}
1395.acmm__slink-d{display:block;font-weight:400;font-size:.85rem;color:var(--color-text-muted,#718096);margin-top:1px}
1396.acmm__all{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin-top:16px;font-weight:700;color:var(--brand-navy,#003366);text-decoration:none}
1397.acmm__all:hover{color:var(--brand-orange,#FF8C00)}
1398.acmm__all svg{width:18px;height:18px}
1399.acmm__actions{flex:none;display:flex;flex-direction:column;gap:12px;padding:16px 24px calc(24px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--color-border-subtle,#E2E8F0)}
1400.acmm__btn{width:100%;height:56px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;font-weight:600;text-decoration:none;border:2px solid transparent}
1401.acmm__btn--primary{background:var(--brand-orange,#FF8C00);color:#fff}
1402.acmm__btn--ghost{background:transparent;color:var(--color-text-primary,#003366);border-color:var(--color-text-primary,#003366)}
1403.acmm__top .header__brand{display:inline-flex}
1404@media (prefers-reduced-motion:reduce){.acmm__chev{transition:none}}
1405@media (max-height:500px){
1406.acmm__top{height:52px}
1407.acmm__body{padding-top:12px;padding-bottom:16px}
1408.acmm__actions{flex-direction:row;flex-wrap:nowrap;gap:8px;padding:10px 24px calc(10px + env(safe-area-inset-bottom,0px))}
1409.acmm__btn{flex:1 1 0;min-width:0;height:44px;font-size:.85rem;padding:0 10px;white-space:nowrap}
1410}
1411`;
1412
1413  if (document.readyState !== 'loading') init();
1414  else document.addEventListener('DOMContentLoaded', init);
1415})();
1416
1417 
1418(function () {
1419  'use strict';
1420  function scrollToNextSection() {
1421    var target = document.querySelector('.kpi-counter');
1422    if (!target) {
1423      var cue = document.querySelector('.sc-cue');
1424      target = cue ? cue.nextElementSibling : null;
1425    }
1426    if (!target) return;
1427    var header = document.getElementById('siteHeader');
1428    var offset = header ? header.getBoundingClientRect().height : 0;
1429    var top = target.getBoundingClientRect().top + window.pageYOffset - offset - 16;
1430    window.scrollTo({ top: top, behavior: 'smooth' });
1431  }
1432  function init() {
1433    var btn = document.querySelector('.sc-cue__arrow');
1434    if (!btn || btn.__acWired) return;
1435    btn.__acWired = true;
1436    btn.addEventListener('click', scrollToNextSection);
1437  }
1438  if (document.readyState !== 'loading') init();
1439  else document.addEventListener('DOMContentLoaded', init);
1440})();
1441
1442 
1443(function(){
1444  'use strict';
1445  if (window.__ifxMounted) return;
1446
1447   
1448  var TOC_EXCLUDE = '[data-block="valueLadder"],[data-block="editorialCta"],[data-block="relatedTerms"]';
1449
1450   
1451  function autoLabel(head, text){
1452    if (head.closest('[data-block="scopeGauge"]')) {
1453      if (/^Brauchst du/i.test(text)) return 'Brauchst du das?';
1454      if (/^(Trifft|Betrifft|Musst|Bindest)/i.test(text)) return 'Trifft dich das?';
1455      return 'Dein Risiko';
1456    }
1457    if (head.closest('[data-block="verdictTriage"]'))   return 'Deine Einordnung';
1458    if (head.closest('[data-block="contentTimeline"]')) return 'Zeitleiste';
1459    if (/^Die Rechtslage/.test(text))                   return 'Die Rechtslage';
1460    if (/^(Die )?Rechtsgrundlage:/.test(text))          return 'Die Rechtsgrundlage';
1461    if (/:\s*die Folgen$/.test(text))                   return 'Die Folgen';
1462    if (/AppCore Audit/.test(text))                     return 'So prüft es der Audit';
1463    return null;
1464  }
1465
1466  var LABELS = {
1467    'greenwashing': {
1468      'Was Greenwashing bedeutet': 'Was es bedeutet',
1469      'Woher der Begriff Greenwashing kommt': 'Herkunft des Begriffs',
1470      'Die häufigsten Formen von Greenwashing': 'Die häufigsten Formen',
1471      'Ablenkung und Verlagerung der Verantwortung': 'Ablenkung, Verlagerung',
1472      'Die vier Grundregeln, zum Durchtippen': 'Die vier Grundregeln',
1473      'Bluewashing, Greenhushing und verwandte Begriffe': 'Verwandte Begriffe',
1474      'Greenshifting und Greencrowding': 'Greenshifting, Greencrowding',
1475      'Greenwashing auf der eigenen Website vermeiden': 'Auf der Website vermeiden'
1476    },
1477    'dsgvo': {
1478      'Was die DSGVO regelt': 'Was sie regelt',
1479      'Woher die DSGVO kommt und seit wann sie gilt': 'Herkunft und Geltung',
1480      'Personenbezogene Daten: worum es geht': 'Personenbezogene Daten',
1481      'Die Grundsätze der Datenverarbeitung': 'Die Grundsätze',
1482      'Betroffenenrechte: welche Rechte Nutzer haben': 'Betroffenenrechte',
1483      'Auftragsverarbeitung und Drittdienste': 'Auftragsverarbeitung',
1484      'DSGVO auf der eigenen Website umsetzen': 'Auf der Website umsetzen'
1485    },
1486    'impressumspflicht': {
1487      'Was die Impressumspflicht bedeutet': 'Was sie bedeutet',
1488      'Vom TMG zum DDG: woher die Pflicht kommt': 'Herkunft der Pflicht',
1489      'Was ins Impressum gehört': 'Was hineingehört',
1490      'Zusätzliche Angaben für bestimmte Betriebe': 'Zusätzliche Angaben',
1491      'Die Pflichtangaben im Überblick': 'Die Pflichtangaben',
1492      'Sonderfälle: Social Media, Kleinunternehmer und Muster': 'Sonderfälle',
1493      'Das eigene Impressum aktuell halten': 'Aktuell halten'
1494    },
1495    'datenschutzerklaerung': {
1496      'Was die Datenschutzerklärung leistet': 'Was sie leistet',
1497      'Was in eine Datenschutzerklärung gehört': 'Was hineingehört',
1498      'Der häufigste Fehler: Text und Realität passen nicht zusammen': 'Der häufigste Fehler',
1499      'Woran sich eine Datenschutzerklärung messen lässt': 'Woran sie sich misst',
1500      'Muster-Generatoren und ihre Grenzen': 'Muster-Generatoren',
1501      'Die eigene Datenschutzerklärung aktuell halten': 'Aktuell halten'
1502    },
1503    'agb': {
1504      'Was AGB sind und wann sie gelten': 'Was sie sind',
1505      'Was mit unwirksamen Klauseln passiert': 'Unwirksame Klauseln',
1506      'B2C und B2B: unterschiedliche Strenge': 'B2C und B2B',
1507      'Woran sich wirksame AGB messen lassen': 'Woran sie sich messen',
1508      'Der häufigste Irrtum: AGB schützen automatisch': 'Der häufigste Irrtum',
1509      'AGB, die zum eigenen Geschäft passen': 'Zum Geschäft passend'
1510    },
1511    'cookie-banner': {
1512      'Was ein Cookie-Banner leisten muss': 'Was er leisten muss',
1513      'Was eine wirksame Einwilligung ausmacht': 'Wirksame Einwilligung',
1514      'Dark Patterns: der häufigste Fehler': 'Dark Patterns',
1515      'Woran sich ein Cookie-Banner messen lässt': 'Woran er sich misst',
1516      'Kosmetische Banner: viel Anzeige, keine Wirkung': 'Kosmetische Banner',
1517      'Den eigenen Cookie-Banner richtig aufsetzen': 'Richtig aufsetzen'
1518    },
1519    'widerrufsrecht': {
1520      'Was das Widerrufsrecht bedeutet': 'Was es bedeutet',
1521      'Die Widerrufsfrist: 14 Tage und ihr Beginn': 'Die Widerrufsfrist',
1522      'Die Widerrufsbelehrung und das Muster-Formular': 'Belehrung und Formular',
1523      'Der teuerste Fehler: die verlängerte Frist': 'Der teuerste Fehler',
1524      'Woran sich eine Widerrufsbelehrung messen lässt': 'Woran sie sich misst',
1525      'Wann kein Widerrufsrecht besteht': 'Wann es nicht besteht',
1526      'Das eigene Widerrufsrecht sauber aufsetzen': 'Sauber aufsetzen'
1527    },
1528    'abmahnung': {
1529      'Was eine Abmahnung ist': 'Was sie ist',
1530      'Was in einer Abmahnung steht': 'Was darin steht',
1531      'Die strafbewehrte Unterlassungserklärung': 'Unterlassungserklärung',
1532      'Richtig auf eine Abmahnung reagieren': 'Richtig reagieren',
1533      'Berechtigt, unberechtigt, missbräuchlich': 'Berechtigt oder nicht',
1534      'So senkt der AppCore Audit dein Abmahn-Risiko': 'So hilft der Audit',
1535      'Der Abmahnung vorbeugen': 'Vorbeugen'
1536    },
1537    'barrierefreiheit-bfsg': {
1538      'Was Barrierefreiheit im Web bedeutet': 'Was es bedeutet',
1539      'Woran sich Barrierefreiheit misst: die WCAG': 'Die WCAG',
1540      'Vier Prinzipien in der Praxis': 'In der Praxis',
1541      'Die vier Prinzipien barrierefreier Websites': 'Die vier Prinzipien',
1542      'Die häufigsten Barrieren im Web': 'Die häufigsten Barrieren',
1543      'Die eigene Seite barrierefrei machen': 'Barrierefrei machen'
1544    },
1545    'cookie-einwilligung': {
1546      'Was eine Cookie-Einwilligung rechtlich ausmacht': 'Was sie ausmacht',
1547      'Die vier materiellen Voraussetzungen': 'Die vier Voraussetzungen',
1548      'Granularität: eine Einwilligung pro Zweck': 'Granularität',
1549      'Woran sich eine wirksame Einwilligung misst': 'Woran sie sich misst',
1550      'Berechtigtes Interesse ist keine Alternative': 'Kein berechtigtes Interesse',
1551      'Die eigene Einwilligungslösung sauber aufsetzen': 'Sauber aufsetzen'
1552    },
1553    'bildrechte': {
1554      'Was Bildrechte im Web bedeuten': 'Was sie bedeuten',
1555      'Lizenzarten und ihre Bedingungen': 'Lizenzarten',
1556      'Creative-Commons-Lizenzen: kostenlos, aber nicht bedingungslos': 'Creative Commons',
1557      'Woran sich sauberer Bildeinsatz misst': 'Woran er sich misst',
1558      'Der teuerste Irrtum: „das steht doch überall im Netz\"': 'Der teuerste Irrtum',
1559      'Die eigene Bildnutzung sauber aufsetzen': 'Sauber aufsetzen'
1560    },
1561    'pangv': {
1562      'Was die Preisangabenverordnung verlangt': 'Was sie verlangt',
1563      'Gesamtpreis, Grundpreis, Referenzpreis': 'Die drei Preisarten',
1564      'Der Referenzpreis bei Rabatten': 'Referenzpreis bei Rabatten',
1565      'Woran sich korrekte Preisangaben messen lassen': 'Woran sie sich messen',
1566      'Der häufigste Fehler: Kosten, die erst später auftauchen': 'Der häufigste Fehler',
1567      'Die eigene Preisauszeichnung sauber aufsetzen': 'Sauber aufsetzen'
1568    },
1569    'irrefuehrende-werbung': {
1570      'Was irreführende Werbung ausmacht': 'Was sie ausmacht',
1571      'Typische Formen irreführender Werbung': 'Typische Formen',
1572      'Das Weglassen ist so riskant wie die falsche Aussage': 'Das Weglassen',
1573      'Woran sich zulässige Werbung misst': 'Woran sie sich misst',
1574      'Der häufigste Irrtum: „es stimmt doch im Kern\"': 'Der häufigste Irrtum',
1575      'Die eigene Werbung sauber aufsetzen': 'Sauber aufsetzen'
1576    },
1577    'eu-ai-act': {
1578      'Was der EU AI Act für Websites bedeutet': 'Was er bedeutet',
1579      'Chatbots und generierte Inhalte: was konkret zu kennzeichnen ist': 'Was zu kennzeichnen ist',
1580      'Deepfakes und generierte Medien': 'Deepfakes',
1581      'Woran sich Transparenz nach Art. 50 misst': 'Woran sie sich misst',
1582      'Der häufigste Irrtum: „Wir sind ja nur ein kleiner Betrieb\"': 'Der häufigste Irrtum',
1583      'Die eigene KI-Nutzung transparent machen': 'Transparent machen'
1584    },
1585    'online-bewertungen': {
1586      'Was bei Online-Bewertungen rechtlich zählt': 'Was rechtlich zählt',
1587      'Typische Verstöße rund um Bewertungen': 'Typische Verstöße',
1588      'Der Unterschied zwischen Moderation und Zensur': 'Moderation oder Zensur',
1589      'Woran sich ein sauberer Umgang mit Bewertungen misst': 'Woran er sich misst',
1590      'Der häufigste Irrtum: „Wir löschen nur, was unfair ist\"': 'Der häufigste Irrtum',
1591      'Die eigene Bewertungspraxis sauber aufsetzen': 'Sauber aufsetzen'
1592    },
1593    'compliance': {
1594      'Was Compliance im Website-Kontext bedeutet': 'Was es bedeutet',
1595      'Die Rechtsgebiete im Überblick': 'Die Rechtsgebiete',
1596      'Warum es keinen binären Zustand gibt': 'Kein binärer Zustand',
1597      'Der Trugschluss des einen Siegels': 'Der Trugschluss',
1598      'Woran sich eine solide Compliance-Basis zeigt': 'Woran sie sich zeigt',
1599      'Der häufigste Fehler: Compliance als einmaliges Projekt': 'Der häufigste Fehler',
1600      'So bildet der AppCore Audit das Gesamtbild ab': 'So sieht es der Audit',
1601      'Die eigene Compliance systematisch angehen': 'Systematisch angehen'
1602    },
1603    'datenschutz-website': {
1604      'Was Datenschutz auf der Website praktisch bedeutet': 'Was es bedeutet',
1605      'Auftragsverarbeitung: der oft übersehene Baustein': 'Auftragsverarbeitung',
1606      'Ohne AVV fehlt die Rechtsgrundlage': 'Ohne AVV',
1607      'Woran sich technischer Datenschutz zeigt': 'Woran er sich zeigt',
1608      'Der häufigste Irrtum: „Die Erklärung ist doch korrekt\"': 'Der häufigste Irrtum',
1609      'Den eigenen technischen Datenschutz sauber aufsetzen': 'Sauber aufsetzen'
1610    },
1611    'barrierefreiheit': {
1612      'Was Barrierefreiheit bedeutet und warum sie jeden betrifft': 'Was es bedeutet',
1613      'Die vier Prinzipien: WCAG in Kürze': 'Die vier Prinzipien',
1614      'Kontrast direkt ausprobieren': 'Kontrast ausprobieren',
1615      'Barrieren direkt erleben': 'Barrieren erleben',
1616      'Vier häufige Barriere-Typen und ihre Lösung': 'Vier Barriere-Typen',
1617      'Der häufigste Irrtum: „Sieht doch gut aus\"': 'Der häufigste Irrtum',
1618      'Wie barrierefrei ist deine Seite wirklich?': 'Deine Einordnung',
1619      'Vom Nischenthema zum universellen Standard': 'Zeitleiste',
1620      'Standard und Recht: WCAG und die Prüfung durch AppCore': 'Standard und Recht',
1621      'Reichweite und Reputation: der Nutzen barrierefreier Seiten': 'Reichweite und Reputation',
1622      'Die eigene Seite barrierefrei gestalten': 'Barrierefrei gestalten'
1623    },
1624    'google-fonts': {
1625      'Was beim externen Einbinden von Google Fonts passiert': 'Was dabei passiert',
1626      'Lokales Hosting als Lösung': 'Lokales Hosting',
1627      'Das Problem reicht über Google Fonts hinaus': 'Nicht nur Google Fonts',
1628      'Woran sich eine saubere Schriftarten-Einbindung misst': 'Woran sie sich misst',
1629      'Der häufigste Irrtum: „Das macht doch mein Theme automatisch\"': 'Der häufigste Irrtum',
1630      'Die eigene Schriftarten-Einbindung prüfen': 'Einbindung prüfen'
1631    },
1632    'double-opt-in': {
1633      'Was Double-Opt-In bedeutet': 'Was es bedeutet',
1634      'Protokollierung: der oft vergessene zweite Teil': 'Protokollierung',
1635      'Ohne Protokoll ist der Nac
1635hweis lückenhaft': 'Ohne Protokoll',
1636      'Woran sich ein sauberes Double-Opt-In misst': 'Woran es sich misst',
1637      'Der häufigste Irrtum: „Die haben sich doch selbst eingetragen\"': 'Der häufigste Irrtum',
1638      'Das eigene Anmeldeverfahren sauber aufsetzen': 'Sauber aufsetzen'
1639    },
1640    'google-analytics': {
1641      'Was beim Einsatz von Google Analytics rechtlich zählt': 'Was rechtlich zählt',
1642      'IP-Anonymisierung und ihre Grenzen': 'IP-Anonymisierung',
1643      'Anonymisierung ersetzt keine Einwilligung': 'Ersetzt keine Einwilligung',
1644      'Woran sich ein datenschutzkonformer Analytics-Einsatz misst': 'Woran er sich misst',
1645      'Der häufigste Irrtum: „Anonymisiert ist doch unproblematisch\"': 'Der häufigste Irrtum',
1646      'Den eigenen Analytics-Einsatz absichern': 'Einsatz absichern'
1647    },
1648    'social-media-buttons': {
1649      'Was Social-Media-Buttons technisch tun': 'Was sie technisch tun',
1650      'Zwei-Klick-Lösung und Shariff als Alternativen': 'Alternativen',
1651      'Shariff: Teilen ohne Vorab-Übertragung': 'Shariff',
1652      'Woran sich eine saubere Social-Media-Einbindung misst': 'Woran sie sich misst',
1653      'Der häufigste Irrtum: „Das ist doch nur ein kleines Icon\"': 'Der häufigste Irrtum',
1654      'Die eigene Social-Media-Einbindung prüfen': 'Einbindung prüfen'
1655    },
1656    'kuendigungsbutton': {
1657      'Was der Kündigungsbutton verlangt': 'Was er verlangt',
1658      'Der zweistufige Ablauf: Button und Bestätigungsseite': 'Der zweistufige Ablauf',
1659      'Bestätigung der Kündigung ist ebenfalls Pflicht': 'Bestätigung ist Pflicht',
1660      'Woran sich ein korrekter Kündigungsbutton misst': 'Woran er sich misst',
1661      'Der häufigste Irrtum: „Unser Support kündigt doch schnell\"': 'Der häufigste Irrtum',
1662      'Den eigenen Kündigungsprozess sauber aufsetzen': 'Sauber aufsetzen'
1663    },
1664    'youtube-video-einbinden': {
1665      'Was beim Einbetten eines YouTube-Videos passiert': 'Was dabei passiert',
1666      'Klick-to-load: die datensparsamste Lösung': 'Klick-to-load',
1667      'Cookie-Banner und Klick-to-load lassen sich kombinieren': 'Kombination mit dem Banner',
1668      'Woran sich eine saubere Video-Einbindung misst': 'Woran sie sich misst',
1669      'Der häufigste Irrtum: „Wir nutzen doch den Datenschutzmodus\"': 'Der häufigste Irrtum',
1670      'Die eigene Video-Einbindung prüfen': 'Einbindung prüfen'
1671    },
1672    'health-claims': {
1673      'Was Health Claims sind und wo sie greifen': 'Was sie sind',
1674      'Kosmetik und Medizinprodukte: zusätzlich das HWG': 'Kosmetik und HWG',
1675      'Die Grenze zwischen Kosmetik- und Heilversprechen': 'Grenze zum Heilversprechen',
1676      'Woran sich zulässige Gesundheitswerbung misst': 'Woran sie sich misst',
1677      'Der häufigste Irrtum: „Das ist doch wissenschaftlich belegt\"': 'Der häufigste Irrtum',
1678      'Die eigene Gesundheitswerbung sauber aufsetzen': 'Sauber aufsetzen'
1679    },
1680    'markenrecht-google-ads': {
1681      'Was beim Keyword-Advertising markenrechtlich zählt': 'Was markenrechtlich zählt',
1682      'Wann die Grenze überschritten wird': 'Wo die Grenze liegt',
1683      'Vertragshändler haben eine Sonderstellung': 'Vertragshändler',
1684      'Woran sich zulässiges Keyword-Advertising misst': 'Woran es sich misst',
1685      'Der häufigste Irrtum: „Wenn Google das Keyword zulässt, ist es erlaubt\"': 'Der häufigste Irrtum',
1686      'Wo der AppCore Audit ansetzt und wo nicht': 'Wo der Audit ansetzt',
1687      'Die eigenen Google-Ads-Kampagnen prüfen': 'Kampagnen prüfen'
1688    },
1689    'textplagiate': {
1690      'Was Textplagiate von Bildrechten unterscheidet': 'Was sie ausmacht',
1691      'Warum Umformulieren allein nicht schützt': 'Umformulieren schützt nicht',
1692      'KI-generierte Texte sind kein Freibrief': 'KI-Texte',
1693      'Woran sich unbedenkliche Texte messen lassen': 'Woran sie sich messen',
1694      'Der häufigste Irrtum: „Wir haben uns nur inspirieren lassen\"': 'Der häufigste Irrtum',
1695      'Die eigenen Texte auf Herkunft prüfen': 'Texte prüfen'
1696    },
1697    'verpackungsgesetz': {
1698      'Was das Verpackungsgesetz von Online-Händlern verlangt': 'Was es verlangt',
1699      'Wer betroffen ist, auch außerhalb Deutschlands': 'Wer betroffen ist',
1700      'Ausnahmen sind eng gefasst': 'Ausnahmen',
1701      'Woran sich eine vollständige Verpackungs-Compliance misst': 'Woran sie sich misst',
1702      'Der häufigste Irrtum: „Wir sind doch viel zu klein\"': 'Der häufigste Irrtum',
1703      'Die eigene Verpackungs-Registrierung prüfen': 'Registrierung prüfen'
1704    },
1705    'geoblocking-verordnung': {
1706      'Was die Geoblocking-Verordnung verlangt': 'Was sie verlangt',
1707      'Was weiterhin zulässig bleibt': 'Was zulässig bleibt',
1708      'Zahlungsmittel dürfen nicht diskriminierend abgelehnt werden': 'Zahlungsmittel',
1709      'Woran sich Geoblocking-Konformität misst': 'Woran sie sich misst',
1710      'Der häufigste Irrtum: „Wir müssen doch nicht überallhin liefern\"': 'Der häufigste Irrtum',
1711      'Das eigene grenzüberschreitende Angebot prüfen': 'Angebot prüfen'
1712    },
1713    'influencer-kennzeichnungspflicht': {
1714      'Was die Kennzeichnungspflicht verlangt': 'Was sie verlangt',
1715      'Die Grauzone: Eigenwerbung und Tap-Tags': 'Die Grauzone',
1716      'Verlinkung zum eigenen Unternehmen': 'Verlinkung',
1717      'Woran sich eine korrekte Kennzeichnung misst': 'Woran sie sich misst',
1718      'Der häufigste Irrtum: „Alle wissen doch, dass das Werbung ist\"': 'Der häufigste Irrtum',
1719      'Die eigenen Kooperationen prüfen': 'Kooperationen prüfen'
1720    },
1721    'elektrogesetz': {
1722      'Was das ElektroG von Online-Händlern verlangt': 'Was es verlangt',
1723      'Kennzeichnung und Rücknahmepflicht': 'Kennzeichnung, Rücknahme',
1724      'Rücknahmepflicht hängt von der Verkaufsfläche ab': 'Die Rücknahmepflicht',
1725      'Woran sich eine vollständige ElektroG-Compliance misst': 'Woran sie sich misst',
1726      'Der häufigste Irrtum: „Das ist doch nur Zubehör\"': 'Der häufigste Irrtum',
1727      'Die eigene ElektroG-Registrierung prüfen': 'Registrierung prüfen'
1728    },
1729    'vergleichende-werbung': {
1730      'Was vergleichende Werbung ist und warum sie erlaubt ist': 'Was sie ist',
1731      'Objektiv, relevant, nachprüfbar: die Kernanforderung': 'Die Kernanforderung',
1732      'Herabsetzung ist die häufigste Stolperfalle': 'Herabsetzung',
1733      'Woran sich ein zulässiger Vergleich misst': 'Woran er sich misst',
1734      'Der häufigste Irrtum: „Vergleiche sind doch grundsätzlich verboten\"': 'Der häufigste Irrtum',
1735      'Die eigene Vergleichs-Werbung prüfen': 'Werbung prüfen'
1736    },
1737    'kontaktformular': {
1738      'Was ein datenschutzkonformes Kontaktformular ausmacht': 'Was es ausmacht',
1739      'Barrierefreiheit: Labels, Fehlermeldungen, Tastatur': 'Barrierefreiheit',
1740      'Spam-Schutz durch Dritte: die oft übersehene Einwilligungspflicht': 'Spam-Schutz',
1741      'CookieGuard prüft die Einwilligung vor dem Laden': 'CookieGuard',
1742      'Woran sich ein sauberes Kontaktformular misst': 'Woran es sich misst',
1743      'Der häufigste Irrtum: „Unser Formular-Plugin macht das schon richtig\"': 'Der häufigste Irrtum',
1744      'Das eigene Kontaktformular prüfen': 'Formular prüfen'
1745    },
1746    'online-shop-pflichtangaben': {
1747      'Was Online-Shop-Pflichtangaben umfassen': 'Was dazugehört',
1748      'Die Pflichtseiten im Überblick': 'Die Pflichtseiten',
1749      'Der Bestellbutton und die Button-Lösung': 'Der Bestellbutton',
1750      'Woran sich ein vollständiger Shop messen lässt': 'Woran er sich misst',
1751      'Der häufigste Irrtum: das Shopsystem regelt das schon': 'Der häufigste Irrtum',
1752      'Die eigenen Pflichtangaben sauber aufsetzen': 'Sauber aufsetzen'
1753    },
1754    'heilmittelwerbegesetz': {
1755      'Was das Heilmittelwerbegesetz regelt': 'Was es regelt',
1756      'HWG oder Health-Claims-Verordnung: was gilt wann': 'HWG oder HCVO?',
1757      'Die wichtigsten Verbote im Überblick': 'Die wichtigsten Verbote',
1758      'Das Werbeverbot für bestimmte Krankheiten': 'Verbot bei Krankheiten',
1759      'Die vier Grenzen der Heilmittelwerbung': 'Die vier Grenzen',
1760      'Der häufigste Fehler: die eigene Website für Information halten': 'Der häufigste Fehler',
1761      'Die eigene Praxis-Website HWG-fest aufsetzen': 'Sauber aufsetzen'
1762    },
1763    'csrd': {
1764      'Was die CSRD regelt': 'Was sie regelt',
1765      'Das Omnibus-Paket: wer jetzt noch berichten muss': 'Das Omnibus-Paket',
1766      'Die Umsetzung in nationales Recht steht aus': 'Umsetzung steht aus',
1767      'Warum die CSRD dich trotzdem erreicht': 'Warum sie dich erreicht',
1768      'Die vier Bausteine der CSRD': 'Die vier Bausteine',
1769      'Der häufigste Irrtum: Berichtspflicht gleich Aussagenfreiheit': 'Der häufigste Irrtum',
1770      'Was der AppCore Audit hier leistet und was nicht': 'Was der Audit leistet',
1771      'Die Folgen: Bußgeld für die einen, Abmahnung für die anderen': 'Die Folgen'
1772    },
1773    'lieferkettengesetz': {
1774      'Was das Lieferkettengesetz verlangt': 'Was es verlangt',
1775      'Wer betroffen ist und was sich 2025 geändert hat': 'Wer betroffen ist',
1776      'Wie das BAFA jetzt prüft': 'Wie das BAFA prüft',
1777      'Der wichtigste Punkt für Zulieferer': 'Wichtig für Zulieferer',
1778      'Die vier Sorgfaltspflichten': 'Die vier Pflichten',
1779      'Der häufigste Irrtum: entfallen gleich erledigt': 'Der häufigste Irrtum',
1780      'Was der AppCore Audit hier leistet und was nicht': 'Was der Audit leistet',
1781      'Die Folgen: Bußgeld für die einen, Abmahnung für die anderen': 'Die Folgen'
1782    }
1783  };
1784
1785  function slug(){
1786    var m = (location.pathname || '').match(/\/infocus\/([^\/?#]+)/);
1787    return m ? m[1] : '';
1788  }
1789
1790  function injectCss(){
1791    if (document.getElementById('ifx-style')) return;
1792    var s = document.createElement('style');
1793    s.id = 'ifx-style';
1794    s.textContent = IFX_CSS;
1795    document.head.appendChild(s);
1796  }
1797
1798   
1799  function moveAuthor(){
1800    var head = document.querySelector('.ife__head');
1801    var box  = document.querySelector('.ife-main > [data-block="authorBox"]');
1802    if (!head) return true;
1803    if (head.querySelector('[data-block="authorBox"]')) return true;
1804    if (!box) return true;
1805    var left = document.createElement('div');
1806    left.className = 'ifh-left';
1807    while (head.firstChild) left.appendChild(head.firstChild);
1808    head.appendChild(left);
1809    head.appendChild(box);
1810    return true;
1811  }
1812
1813  function cleanToc(){
1814    var nav = document.querySelector('[data-block="tocNav"]');
1815    if (!nav) return true;
1816    var links = nav.querySelectorAll('.toc-nav__link');
1817    if (!links.length) return false;          // Scrollspy noch nicht fertig
1818
1819    var map = LABELS[slug()] || {};
1820
1821    Array.prototype.forEach.call(links, function(a){
1822      var id = (a.getAttribute('href') || '').replace(/^#/, '');
1823      var head = id ? document.getElementById(id) : null;
1824      if (!head || !head.closest) return;
1825
1826      var drop = !!head.closest(TOC_EXCLUDE);
1827      if (!drop && head.tagName === 'H3' && head.closest('[data-block="contentTimeline"]')) drop = true;
1828
1829      if (drop) {
1830        var li = a.closest('li');
1831        if (li && li.parentNode) li.parentNode.removeChild(li);
1832        return;
1833      }
1834
1835      var t = (a.textContent || '').trim();
1836      var short = map[t] || autoLabel(head, t);   // Tabelle schlaegt Regel
1837      if (short && short !== t) { a.textContent = short; a.title = t; }
1838    });
1839
1840    if (!nav.querySelectorAll('.toc-nav__link').length) nav.hidden = true;
1841    return true;
1842  }
1843
1844  function init(){
1845    if (window.__ifxMounted) return;
1846    var main = document.querySelector('.ife-main');
1847    if (!main) return;                          // keine InFocus-Begriffsseite
1848    window.__ifxMounted = true;
1849
1850    injectCss();
1851
1852     
1853    if (main.querySelector('[data-block="tocNav"]')) main.classList.add('ifx-toc');
1854
1855    moveAuthor();
1856
1857    if (!cleanToc()) {
1858      var n = 0;
1859      var iv = setInterval(function(){
1860        if (cleanToc() || ++n > 40) clearInterval(iv);
1861      }, 50);
1862    }
1863  }
1864
1865  var IFX_CSS = `
1866/* Kopf und Content auf dieselbe Breite. .ife__head setzt padding als Kurzform
1867   (44px 0 0) und loescht damit die seitlichen 24px der .ife-container, der Kopf war
1868   also 48px breiter als Hero und Content. Frontend-Bug, hier deploy-frei entschaerft. */
1869.ife__head{padding:44px 24px 0}
1870
1871/* Block-Rhythmus: 48px Padding oben UND unten je Textblock plus 48px h2-margin
1872   ergaben 144px Abstand. Padding halbiert, fuehrende Ueberschrift ohne Extra-Margin. */
1873.ife-main{--content-pad-y:24px;--author-box-pad-y:24px;--content-timeline-pad-y:24px;--cll-section-pad-y:24px}
1874.ife-main .content-rich-text__prose>h2:first-child,
1875.ife-main .content-rich-text__prose>h3:first-child{margin-top:0}
1876
1877/* Gleiche Breite fuer alle Bloecke: Textbloecke trugen 32px Seiten-Padding, Widgets nicht. */
1878.ife-main{--content-pad-x:0;--content-prose-max:100%}
1879
1880/* Wert-Leiter als Treppe: Audit (kostenfrei) volle Breite oben, BluePrint und Plan darunter. */
1881.ife-main [data-block="valueLadder"] .value-ladder__grid{grid-template-columns:repeat(2,1fr)}
1882.ife-main [data-block="valueLadder"] .value-ladder__card:first-child{grid-column:1 / -1}
1883@media(max-width:640px){.ife-main [data-block="valueLadder"] .value-ladder__grid{grid-template-columns:1fr}.ife-main [data-block="valueLadder"] .value-ladder__card:first-child{grid-column:auto}}
1884
1885/* Story-Weiche (nur wo vorhanden). */
1886.ife-main [data-block="storyFork"]{position:relative;overflow:hidden;margin:32px 0;padding:26px 30px;border:1px solid #dbe3ec;border-left:4px solid #FF8C00;border-radius:14px;background:linear-gradient(135deg,#f7f9fc,#eef2f7);box-shadow:0 10px 28px -18px rgba(0,42,82,.28)}
1887.ife-main [data-block="storyFork"] .story-fork__prompt{display:flex;align-items:center;gap:10px;font-size:1.15rem}
1888.ife-main [data-block="storyFork"] .story-fork__prompt::before{content:"";flex:none;width:9px;height:9px;border-radius:50%;background:#FF8C00;box-shadow:0 0 0 0 rgba(255,140,0,.45);animation:ifx-pulse 2.2s ease-out infinite}
1889@keyframes ifx-pulse{0%{box-shadow:0 0 0 0 rgba(255,140,0,.45)}70%{box-shadow:0 0 0 9px rgba(255,140,0,0)}100%{box-shadow:0 0 0 0 rgba(255,140,0,0)}}
1890.ife-main [data-block="storyFork"] .story-fork__choice{background:#fff;border-color:#dbe3ec;transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease}
1891.ife-main [data-block="storyFork"] .story-fork__choice:hover{border-color:#FF8C00;transform:translateY(-2px);box-shadow:0 8px 20px -12px rgba(0,42,82,.35)}
1892.ife-main [data-block="storyFork"] .story-fork__choice[aria-pressed="true"]{background:#fff;border-color:#003366;box-shadow:0 8px 20px -12px rgba(0,42,82,.4)}
1893
1894/* 75/25-Raster, NUR mit Inhaltsverzeichnis (Klasse .ifx-toc, von init() gesetzt).
1895   Das Template setzt ife-wrap--toc nicht und rendert den TOC INNERHALB von .ife-main
1896   (kein Sidebar-Slot); .ife-main ist zudem auf 760px gedeckelt. Also: Deckelung auf,
1897   .ife-main selbst zum Grid, Bloecke in Spalte 1, TOC in Spalte 2 ueber alle Zeilen
1898   (sticky). row-gap 0, damit der Zeilen-Span keine Luecken erzeugt.
1899   Ohne .ifx-toc bleibt die Seite einspaltig, statt eine leere Spalte offenzulassen. */
1900@media(min-width:901px){
1901.ife-main.ifx-toc{max-width:none;margin:0;display:grid;grid-template-columns:3fr 1fr;column-gap:40px;row-gap:0;align-items:start}
1902.ife-main.ifx-toc>*{grid-column:1;min-width:0}
1903.ife-main.ifx-toc>[data-block="tocNav"]{grid-column:2;grid-row:1 / span 999;align-self:start;position:sticky;top:88px;margin:0}
1904.ife__head{display:grid;grid-template-columns:3fr 1fr;column-gap:40px;align-items:stretch}
1905.ife__head .ifh-left{min-width:0}
1906.ife__head [data-block="authorBox"]{padding:0;display:flex;align-self:stretch}
1907.ife__head .author-box__card{height:100%;max-width:none;margin:0;padding:16px 18px;gap:0;border-radius:12px}
1908}
1909
1910/* Autoren-Karte im Kopf: kompakte Typografie. */
1911.ife__head [data-block="authorBox"]{padding:16px 0}
1912.ife__head .author-box__body{display:flex;flex-direction:column;justify-content:center}
1913.ife__head .author-box__meta{margin-bottom:8px;gap:6px 8px}
1914.ife__head .author-box__name{font-size:.92rem;line-height:1.25}
1915.ife__head .author-box__role{font-size:.6rem;padding:2px 6px}
1916.ife__head .author-box__bio{font-size:.78rem;line-height:1.5;margin-bottom:10px}
1917.ife__head .author-box__tags{gap:5px}
1918.ife__head .author-box__tag{font-size:.6rem;padding:3px 8px}
1919
1920/* Inhaltsverzeichnis. Kein Scrollbalken (max-height/overflow aufgehoben). */
1921.ife-main [data-block="tocNav"]{padding:10px;max-height:none;overflow:visible;border-radius:10px}
1922.ife-main [data-block="tocNav"] .toc-nav__label{font-family:var(--font-family-sans,sans-serif);font-size:.9rem;font-weight:700;text-transform:none;letter-spacing:normal;color:var(--color-primary,#003366);padding:10px;margin:0 0 6px;border-bottom:1px solid var(--color-border-subtle,#e2e8f0)}
1923.ife-main [data-block="tocNav"] .toc-nav__link{font-size:.84rem;line-height:1.2;padding:5px 6px 5px 8px}
1924.ife-main [data-block="tocNav"] .toc-nav__sub{padding-left:5px}
1925.ife-main [data-block="tocNav"] .toc-nav__list{gap:0}
1926.ife-main [data-block="tocNav"] .toc-nav__list>li+li{margin-top:5px;padding-top:5px;border-top:1px solid #eaeff5}
1927.ife-main [data-block="tocNav"] .toc-nav__list>li>.toc-nav__link{font-weight:600}
1928.ife-main [data-block="tocNav"] .toc-nav__sub{gap:0;margin-top:1px}
1929.ife-main [data-block="tocNav"] .toc-nav__sub .toc-nav__link{font-size:.78rem;font-weight:400;color:var(--color-text-muted,#718096);padding-top:1.5px;padding-bottom:1.5px}
1930.ife-main [data-block="tocNav"] .toc-nav__sub .toc-nav__link[data-active="true"]{font-weight:600;color:var(--color-primary,#003366)}
1931
1932@media(max-width:768px){.ife__head{padding:32px 20px 0}.ife-main{--content-pad-y:16px;--author-box-pad-y:16px;--content-timeline-pad-y:16px;--cll-section-pad-y:16px}.ife-main [data-block="storyFork"]{margin:24px 0;padding:22px 20px}}
1933@media(max-width:480px){.ife__head{padding:28px 16px 0}.ife-main{--content-pad-y:12px;--author-box-pad-y:12px;--content-timeline-pad-y:12px;--cll-section-pad-y:12px}.ife-main [data-block="storyFork"]{margin:20px 0}}
1934
1935@media(prefers-reduced-motion:reduce){
1936.ife-main [data-block="storyFork"] .story-fork__prompt::before{animation:none}
1937.ife-main [data-block="storyFork"] .story-fork__choice{transition:none}
1938.ife-main [data-block="storyFork"] .story-fork__choice:hover{transform:none}
1939}
1940`;
1941
1942  if (document.readyState !== 'loading') init();
1943  else document.addEventListener('DOMContentLoaded', init);
1944})();
1945
1946 
1947(function(){
1948  'use strict';
1949  if (window.__ifpMounted) return;
1950  function init(){
1951    if (window.__ifpMounted) return;
1952    var hero = document.querySelector('.ins-hub__hero');
1953    if (!hero) return;
1954    window.__ifpMounted = true;
1955
1956    if (!document.getElementById('ifp-style')) {
1957      var st = document.createElement('style'); st.id = 'ifp-style'; st.textContent = IFP_CSS;
1958      document.head.appendChild(st);
1959    }
1960    var rm = window.matchMedia && window.matchMedia('(prefers-reduced-motion:reduce)').matches;
1961    var terms = ['Greenwashing','Barrierefreiheit','die DSGVO','das BFSG','Health Claims','der AI Act','Cookie-Consent'];
1962
1963    var sec = document.createElement('section');
1964    sec.className = 'ifp';
1965    sec.innerHTML =
1966      '<div class="container">' +
1967        '<a class="ifp__card" href="/infocus" aria-label="Zum InFocus-Lexikon: Compliance-Begriffe einfach erklärt">' +
1968          '<div class="ifp__body">' +
1969            '<span class="ifp__eyebrow">InFocus · Lexikon</span>' +
1970            '<p class="ifp__q">Was bedeutet <span class="ifp__term" id="ifpTerm">' + terms[0] + '</span>?</p>' +
1971            '<p class="ifp__lead">Die wichtigsten Compliance-Begriffe, interaktiv und in einfachen Worten erklärt. Von A wie Barrierefreiheit bis Z.</p>' +
1972            '<span class="ifp__cta">Zum InFocus-Lexikon <svg viewBox="0 0 20 20" aria-hidden="true"><path d="M5 10h10M11 5l5 5-5 5" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg></span>' +
1973          '</div>' +
1974          '<div class="ifp__aside" aria-hidden="true">' +
1975            '<span class="ifp__chip">A bis Z</span><span class="ifp__chip ifp__chip--live" id="ifpChip">Greenwashing</span><span class="ifp__chip">DSGVO</span><span class="ifp__chip">BFSG</span><span class="ifp__chip">AI Act</span><span class="ifp__chip">Health Claims</span>' +
1976          '</div>' +
1977        '</a>' +
1978      '</div>';
1979    hero.parentNode.insertBefore(sec, hero.nextSibling);
1980
1981    if (!rm) {
1982      var t = document.getElementById('ifpTerm'), chip = document.getElementById('ifpChip'), i = 0;
1983      setInterval(function(){
1984        t.classList.add('ifp-swap');
1985        setTimeout(function(){
1986          i = (i + 1) % terms.length;
1987          t.textContent = terms[i];
1988          t.classList.remove('ifp-swap');
1989          if (chip) chip.textContent = terms[i].replace(/^(die |das |der )/, '');
1990        }, 300);
1991      }, 2200);
1992    }
1993  }
1994  var IFP_CSS = `
1995.ifp{margin:22px 0 10px}
1996.ifp__card{position:relative;overflow:hidden;isolation:isolate;display:grid;grid-template-columns:1.5fr .8fr;gap:26px;align-items:center;background:linear-gradient(135deg,#00274c,#003366 55%,#013c78);border:1px solid rgba(255,255,255,.10);border-radius:20px;padding:32px 36px;color:#fff;text-decoration:none;box-shadow:0 20px 48px -24px rgba(0,30,66,.7);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
1997.ifp__card::before{content:"";position:absolute;z-index:0;width:440px;height:440px;top:-210px;right:-130px;border-radius:50%;background:radial-gradient(circle,rgba(255,140,0,.42),transparent 70%);filter:blur(64px);pointer-events:none;opacity:.85;transition:opacity .3s ease}
1998.ifp__card:hover{transform:translateY(-4px);box-shadow:0 30px 62px -22px rgba(0,30,66,.82);border-color:rgba(255,140,0,.5)}
1999.ifp__card:hover::before{opacity:1}
2000.ifp__card:focus-visible{outline:2px solid var(--brand-orange,#FF8C00);outline-offset:3px}
2001.ifp__body{position:relative;z-index:1}
2002.ifp__eyebrow{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-family-mono,monospace);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:rgba(255,140,0,.16);border:1px solid rgba(255,140,0,.42);border-radius:999px;padding:6px 12px}
2003.ifp__eyebrow::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--brand-orange,#FF8C00);box-shadow:0 0 0 3px rgba(255,140,0,.25)}
2004.ifp__q{font-size:clamp(1.5rem,2.4vw + .8rem,2.05rem);font-weight:700;line-height:1.15;margin:16px 0 10px;letter-spacing:-.01em}
2005.ifp__term{display:inline-block;color:var(--brand-orange,#FF8C00);border-bottom:2px solid rgba(255,140,0,.5);transition:opacity .3s ease,transform .3s ease}
2006.ifp__term.ifp-swap{opacity:0;transform:translateY(6px)}
2007.ifp__lead{font-size:1.02rem;line-height:1.5;color:rgba(255,255,255,.82);max-width:540px;margin:0 0 20px}
2008.ifp__cta{display:inline-flex;align-items:center;gap:8px;height:46px;padding:0 22px;background:var(--brand-orange,#FF8C00);color:#fff;font-weight:600;border-radius:9px}
2009.ifp__cta svg{width:18px;height:18px;transition:transform .2s ease}
2010.ifp__card:hover .ifp__cta svg{transform:translateX(4px)}
2011.ifp__aside{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;align-content:center}
2012.ifp__chip{font-family:var(--font-family-mono,monospace);font-size:.74rem;color:rgba(255,255,255,.72);background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:6px 10px;transition:color .3s ease,border-color .3s ease,background .3s ease}
2013.ifp__chip--live{color:#fff;border-color:rgba(255,140,0,.55);background:rgba(255,140,0,.12)}
2014@media (max-width:760px){.ifp__card{grid-template-columns:1fr;padding:26px 22px}.ifp__aside{display:none}}
2015@media (prefers-reduced-motion:reduce){.ifp__card,.ifp__term,.ifp__cta svg,.ifp__chip{transition:none}}
2016`;
2017  if (document.readyState !== 'loading') init();
2018  else document.addEventListener('DOMContentLoaded', init);
2019})();
2020
2021 
2022(function () {
2023  'use strict';
2024  if (window.__acInsTocOffset) { return; }
2025  window.__acInsTocOffset = true;
2026
2027  function positionToc() {
2028    document.querySelectorAll('.bp-wrap--toc').forEach(function (wrap) {
2029      var body = wrap.querySelector(':scope > .ins-post__body');
2030      var toc = wrap.querySelector(':scope > .toc-nav');
2031      if (!body || !toc) { return; }
2032      var card = body.querySelector(':scope > [data-block="normCover"]:first-child');
2033      if (!card) { toc.style.marginTop = ''; return; }
2034
2035      var bodyRect = body.getBoundingClientRect();
2036      var tocRect = toc.getBoundingClientRect();
2037      var sideBySide = tocRect.left >= bodyRect.right - 4;
2038      if (!sideBySide) { toc.style.marginTop = ''; return; }
2039
2040      var cardRect = card.getBoundingClientRect();
2041      var gap = 48;
2042      toc.style.marginTop = Math.round(cardRect.height + gap) + 'px';
2043    });
2044  }
2045
2046  function debounce(fn, wait) {
2047    var timer;
2048    return function () {
2049      clearTimeout(timer);
2050      timer = setTimeout(fn, wait);
2051    };
2052  }
2053
2054  var scheduled = debounce(positionToc, 100);
2055
2056  if (document.readyState !== 'loading') { positionToc(); }
2057  else { document.addEventListener('DOMContentLoaded', positionToc); }
2058  window.addEventListener('load', positionToc);
2059  window.addEventListener('resize', scheduled);
2060  if (document.fonts && document.fonts.ready) {
2061    document.fonts.ready.then(positionToc);
2062  }
2063})();
2064
2065 
2066(function () {
2067  'use strict';
2068  if (window.__acInsAuthorCard) { return; }
2069  window.__acInsAuthorCard = true;
2070
2071  var AUTHOR_BIOS = {
2072    'AppCore Intelligence Unit': 'Recherchiert und schreibt f\u00fcr AppCore Insights zu Compliance, GEO und regulatorischer Sichtbarkeit \u2014 mit dem Ziel, komplexe Rechtslagen praktisch nutzbar zu machen.'
2073  };
2074
2075  function buildAuthorCard(byline) {
2076    var link = byline.querySelector('a');
2077    var name = link ? link.textContent.replace(/\s+/g, ' ').trim() : '';
2078    if (!name) { return null; }
2079
2080    var fullText = byline.textContent.replace(/\s+/g, ' ').trim();
2081    var parts = fullText.split('\u00b7');
2082    var role = parts.length > 1 ? parts[parts.length - 1].trim() : '';
2083    var bio = AUTHOR_BIOS[name] || '';
2084
2085    var initials = name.split(' ').filter(function (w) { return w.length > 0; })
2086      .map(function (w) { return w.charAt(0); })
2087      .join('')
2088      .slice(0, 2)
2089      .toUpperCase();
2090
2091    var card = document.createElement('div');
2092    card.className = 'ins-post__author-card';
2093
2094    var avatar = document.createElement('div');
2095    avatar.className = 'ins-post__author-avatar';
2096    avatar.setAttribute('aria-hidden', 'true');
2097    avatar.textContent = initials;
2098    card.appendChild(avatar);
2099
2100    var textWrap = document.createElement('div');
2101    var nameEl = document.createElement('div');
2102    nameEl.className = 'ins-post__author-name';
2103    nameEl.textContent = name;
2104    textWrap.appendChild(nameEl);
2105
2106    if (role) {
2107      var roleEl = document.createElement('div');
2108      roleEl.className = 'ins-post__author-role';
2109      roleEl.textContent = role;
2110      textWrap.appendChild(roleEl);
2111    }
2112    card.appendChild(textWrap);
2113
2114    if (bio) {
2115      var bioEl = document.createElement('p');
2116      bioEl.className = 'ins-post__author-bio';
2117      bioEl.textContent = bio;
2118      card.appendChild(bioEl);
2119    }
2120
2121    return card;
2122  }
2123
2124  function restructure() {
2125    document.querySelectorAll('.ins-post__head').forEach(function (head) {
2126      if (head.dataset.acAuthorCard === 'done') { return; }
2127      head.dataset.acAuthorCard = 'done';
2128
2129      var byline = head.querySelector('.ins-post__byline');
2130      var card = byline ? buildAuthorCard(byline) : null;
2131      if (!card) { return; }
2132
2133      var left = document.createElement('div');
2134      left.className = 'ins-post__head-left';
2135      while (head.firstChild) { left.appendChild(head.firstChild); }
2136      head.appendChild(left);
2137      head.appendChild(card);
2138    });
2139  }
2140
2141  if (document.readyState !== 'loading') { restructure(); }
2142  else { document.addEventListener('DOMContentLoaded', restructure); }
2143})();
2144
2145 
2146(function(){
2147  'use strict';
2148  function init(){
2149    var bottom = document.querySelector('.footer__bottom');
2150    if (!bottom || bottom.querySelector('.ac-review-badge')) return;
2151    var colors = ['#4285F4', '#EA4335', '#FBBC05', '#34A853', '#4285F4'];
2152    var starsHtml = colors.map(function(c){
2153      return '<svg viewBox="0 0 24 24" fill="' + c + '"><path d="M12 2.5l2.9 6.6 7.1.6-5.4 4.7 1.6 7-6.2-3.7-6.2 3.7 1.6-7-5.4-4.7 7.1-.6z"></path></svg>';
2154    }).join('');
2155    var a = document.createElement('a');
2156    a.className = 'ac-review-badge';
2157    a.href = 'https://g.page/r/CS_nTvrYl3KJEBM/review';
2158    a.target = '_blank';
2159    a.rel = 'noopener noreferrer';
2160    a.setAttribute('aria-label', 'Bei Google bewerten, öffnet in neuem Tab');
2161    a.innerHTML = '<span class="ac-review-badge__stars" aria-hidden="true">' + starsHtml + '</span><span>0 Google-Bewertungen</span>';
2162    bottom.appendChild(a);
2163  }
2164  if (document.readyState !== 'loading') init();
2165  else document.addEventListener('DOMContentLoaded', init);
2166})();
2167
2168 
2169(function () {
2170  'use strict';
2171  if (window.__acReviewCard) { return; }
2172  window.__acReviewCard = true;
2173
2174  var STAR = '<path d="M12 2.5l2.9 6.6 7.1.6-5.4 4.7 1.6 7-6.2-3.7-6.2 3.7 1.6-7-5.4-4.7 7.1-.6z"/>';
2175  var STAR_COLORS = ['#4285F4', '#EA4335', '#FBBC05', '#34A853', '#4285F4'];
2176
2177  function buildStars() {
2178    var wrap = document.createElement('span');
2179    wrap.className = 'ac-review-card__stars';
2180    wrap.setAttribute('aria-hidden', 'true');
2181    STAR_COLORS.forEach(function (color) {
2182      var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
2183      svg.setAttribute('viewBox', '0 0 24 24');
2184      svg.setAttribute('fill', color);
2185      svg.innerHTML = STAR;
2186      wrap.appendChild(svg);
2187    });
2188    return wrap;
2189  }
2190
2191  function buildIcon() {
2192    var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
2193    svg.setAttribute('class', 'ac-review-card__icon');
2194    svg.setAttribute('viewBox', '0 0 48 48');
2195    svg.setAttribute('aria-hidden', 'true');
2196    svg.innerHTML =
2197      '<path d="M24,24 L24,4 A20,20 0 0,1 44,24 Z" fill="#4285F4"/>' +
2198      '<path d="M24,24 L44,24 A20,20 0 0,1 24,44 Z" fill="#34A853"/>' +
2199      '<path d="M24,24 L24,44 A20,20 0 0,1 4,24 Z" fill="#FBBC05"/>' +
2200      '<path d="M24,24 L4,24 A20,20 0 0,1 24,4 Z" fill="#EA4335"/>' +
2201      '<circle cx="24" cy="24" r="7" fill="#ffffff"/>';
2202    return svg;
2203  }
2204
2205  function addReviewCard() {
2206    if (document.querySelector('.ac-review-card')) { return; }
2207    var grid = document.querySelector('.footer__grid') || document.querySelector('.footer__linkgrid');
2208    if (!grid) { return; }
2209
2210    var a = document.createElement('a');
2211    a.className = 'ac-review-card';
2212    a.href = 'https://g.page/r/CS_nTvrYl3KJEBM/review';
2213    a.target = '_blank';
2214    a.rel = 'noopener noreferrer';
2215    a.setAttribute('aria-label', 'Bei Google bewerten, öffnet in neuem Tab');
2216
2217    a.appendChild(buildIcon());
2218
2219    var body = document.createElement('span');
2220    body.className = 'ac-review-card__body';
2221
2222    var eyebrow = document.createElement('span');
2223    eyebrow.className = 'ac-review-card__eyebrow';
2224    eyebrow.textContent = 'Ihre Meinung zählt';
2225    body.appendChild(eyebrow);
2226
2227    var title = document.createElement('span');
2228    title.className = 'ac-review-card__title';
2229    title.textContent = 'Bewerten Sie uns bei Google';
2230    body.appendChild(title);
2231
2232    body.appendChild(buildStars());
2233    a.appendChild(body);
2234
2235    var cta = document.createElement('span');
2236    cta.className = 'ac-review-card__cta';
2237    cta.textContent = 'Jetzt bewerten →';
2238    a.appendChild(cta);
2239
2240    grid.insertAdjacentElement('afterend', a);
2241  }
2242
2243  if (document.readyState !== 'loading') { addReviewCard(); }
2244  else { document.addEventListener('DOMContentLoaded', addReviewCard); }
2245})();
2246
2247 
2248(function () {
2249  'use strict';
2250  if (window.__acSectionAlt) { return; }
2251  window.__acSectionAlt = true;
2252
2253  function isEligibleContainer(el) {
2254    if (el.tagName === 'SECTION') { return true; }
2255    if (el.tagName === 'DIV' && el.classList.contains('section-band')) { return true; }
2256    return false;
2257  }
2258
2259  function isExempt(el) {
2260    if (el.dataset.block === 'hero') { return true; }
2261    var variant = el.dataset.variant;
2262    if (variant === 'band' || variant === 'card') { return true; }
2263    var bg = window.getComputedStyle(el).backgroundColor;
2264    var isPlain = !bg || bg === 'rgba(0, 0, 0, 0)' || bg === 'transparent' || bg === 'rgb(255, 255, 255)';
2265    if (!isPlain) { return true; }
2266    return false;
2267  }
2268
2269  function applyAlternation() {
2270    var main = document.getElementById('main');
2271    if (!main) { return; }
2272    var candidates = Array.prototype.filter.call(main.children, isEligibleContainer);
2273    var toggle = false;
2274    candidates.forEach(function (el) {
2275      el.classList.remove('ac-alt-light');
2276      if (isExempt(el)) { return; }
2277      if (toggle) { el.classList.add('ac-alt-light'); }
2278      toggle = !toggle;
2279    });
2280  }
2281
2282  if (document.readyState === 'complete') { applyAlternation(); }
2283  else { window.addEventListener('load', applyAlternation); }
2284})();
2285
2286 
2287(function(){
2288  'use strict';
2289  if (window.__acMagTabs) { return; }
2290  window.__acMagTabs = true;
2291
2292  function wireOne(root){
2293    if (root.dataset.acMagWired === 'true') { return; }
2294    root.dataset.acMagWired = 'true';
2295    var tabs = Array.prototype.slice.call(root.querySelectorAll('[role="tab"]'));
2296    var panels = Array.prototype.slice.call(root.querySelectorAll('[role="tabpanel"]'));
2297    if (!tabs.length || !panels.length) { return; }
2298
2299    function activate(idx){
2300      tabs.forEach(function(t, i){
2301        var on = i === idx;
2302        t.classList.toggle('is-on', on);
2303        t.setAttribute('aria-selected', on ? 'true' : 'false');
2304        t.tabIndex = on ? 0 : -1;
2305      });
2306      panels.forEach(function(p, i){
2307        var on = i === idx;
2308        p.classList.toggle('is-on', on);
2309        if (on) { p.removeAttribute('hidden'); } else { p.setAttribute('hidden', ''); }
2310      });
2311    }
2312
2313    tabs.forEach(function(tab, idx){
2314      tab.addEventListener('click', function(){ activate(idx); });
2315      tab.addEventListener('keydown', function(e){
2316        var newIdx;
2317        if (e.key === 'ArrowRight') { newIdx = (idx + 1) % tabs.length; }
2318        else if (e.key === 'ArrowLeft') { newIdx = (idx - 1 + tabs.length) % tabs.length; }
2319        else { return; }
2320        e.preventDefault();
2321        tabs[newIdx].focus();
2322        activate(newIdx);
2323      });
2324    });
2325  }
2326
2327  function init(){
2328    document.querySelectorAll('.ac-mag').forEach(wireOne);
2329  }
2330
2331  if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); }
2332  else { init(); }
2333})();
2334</script>
2334  
2334<script>(function(){
2335  'use strict';
2336   
2337  function initLgSh(){
2338    var root = document.getElementById('lgSh');
2339    if (!root) { return; }
2340    var btn = document.getElementById('lgShBtn');
2341    var countEl = document.getElementById('lgShCount');
2342    var flags = Array.prototype.slice.call(root.querySelectorAll('.lg-sh__flag'));
2343    var fitems = Array.prototype.slice.call(root.querySelectorAll('.lg-sh__fitem'));
2344    if (!btn || !flags.length) { return; }
2345    var running = false;
2346    var completed = false;
2347
2348    function reset(){
2349      flags.forEach(function(f){ f.classList.remove('is-flagged'); });
2350      fitems.forEach(function(f){ f.classList.remove('is-active'); });
2351      if (countEl) countEl.textContent = '0';
2352    }
2353
2354    function play(){
2355      running = true;
2356      btn.disabled = true;
2357      btn.textContent = 'Prüfung läuft …';
2358      function step(idx){
2359        if (idx >= flags.length) {
2360          running = false;
2361          completed = true;
2362          btn.disabled = false;
2363          btn.classList.add('is-restart');
2364          btn.textContent = 'Nochmal erleben ↻';
2365          return;
2366        }
2367        var flag = flags[idx];
2368        var dataIdx = flag.getAttribute('data-i');
2369        flag.classList.add('is-flagged');
2370        fitems.forEach(function(f){ if (f.getAttribute('data-i') === dataIdx) { f.classList.add('is-active'); } });
2371        if (countEl) { countEl.textContent = String(idx + 1); }
2372        setTimeout(function(){ step(idx + 1); }, 550);
2373      }
2374      step(0);
2375    }
2376
2377    btn.addEventListener('click', function(){
2378      if (running) return;
2379      if (completed) {
2380        reset();
2381        completed = false;
2382        btn.classList.remove('is-restart');
2383      }
2384      play();
2385    });
2386  }
2387  if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', initLgSh); }
2388  else { initLgSh(); }
2389})();
2390
2391(function(){
2392  'use strict';
2393  var STOPS = [
2394    { selector: '#lg-pruefen', label: 'Was wir prüfen' },
2395    { selector: '#lg-risiko', label: 'Das Risiko' },
2396    { selector: '#lg-erleben', label: 'Zum Erleben' },
2397    { selector: '#lg-fuenfklang', label: 'Fünfklang' },
2398    { selector: '#lg-preis', label: 'Preis' },
2399    { selector: '#ac-mag', label: 'Weitere Informationen' },
2400    { selector: '[data-block="faq"]', label: 'Fragen' }
2401  ];
2402  var RAIL_VISIBILITY_THRESHOLD = 50;
2403
2404  function build(){
2405    var valid = [];
2406    STOPS.forEach(function(s){
2407      var el = document.querySelector(s.selector);
2408      if (el) valid.push({ el: el, label: s.label });
2409    });
2410    if (valid.length < 3) return;
2411
2412    var rail = document.createElement('nav');
2413    rail.className = 'ac-rail';
2414    rail.id = 'acRail';
2415    rail.setAttribute('aria-label', 'Seiten-Navigation');
2416
2417    var cta = document.createElement('a');
2418    cta.className = 'ac-rail__cta';
2419    cta.href = '/audit?topic=shop-pflichtangaben';
2420    var ctaDot = document.createElement('span');
2421    ctaDot.className = 'ac-rail__cta-dot';
2422    ctaDot.innerHTML = '<svg viewBox="0 0 24 24" fill="none" aria-hidden="true"><path d="M5 12h14M13 6l6 6-6 6" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"/></svg>';
2423    var ctaLabel = document.createElement('span');
2424    ctaLabel.className = 'ac-rail__cta-label';
2425    ctaLabel.textContent = 'Audit starten';
2426    cta.appendChild(ctaDot);
2427    cta.appendChild(ctaLabel);
2428    rail.appendChild(cta);
2429
2430    var railList = document.createElement('ol');
2431    railList.className = 'ac-rail__list';
2432
2433    var railItems = valid.map(function(v, i){
2434      var li = document.createElement('li');
2435      li.className = 'ac-rail__item';
2436      li.tabIndex = 0;
2437      li.setAttribute('role', 'button');
2438      li.setAttribute('aria-label', v.label);
2439      var num = document.createElement('span');
2440      num.className = 'ac-rail__num';
2441      num.textContent = String(i + 1).padStart(2, '0');
2442      var label = document.createElement('span');
2443      label.className = 'ac-rail__label';
2444      label.textContent = v.label;
2445      li.appendChild(num);
2446      li.appendChild(label);
2447      railList.appendChild(li);
2448
2449      function go(){
2450        var header = document.querySelector('header');
2451        var headerH = header ? header.getBoundingClientRect().height : 90;
2452        var top = v.el.getBoundingClientRect().top + window.scrollY - headerH - 16;
2453        window.scrollTo({ top: top, behavior: 'smooth' });
2454      }
2455      li.addEventListener('click', go);
2456      li.addEventListener('keydown', function(e){ if (e.key === 'Enter' || e.key === ' '){ e.preventDefault(); go(); } });
2457      return { li: li, el: v.el };
2458    });
2459
2460    rail.appendChild(railList);
2461    document.body.appendChild(rail);
2462
2463    var path = document.createElement('div');
2464    path.className = 'ac-path';
2465    path.id = 'acPath';
2466    path.setAttribute('aria-hidden', 'true');
2467    var line = document.createElement('div');
2468    line.className = 'ac-path__line';
2469    var lineFill = document.createElement('div');
2470    lineFill.className = 'ac-path__line-fill';
2471    path.appendChild(line);
2472    path.appendChild(lineFill);
2473
2474    var pathMarkers = valid.map(function(v, i){
2475      var m = document.createElement('div');
2476      m.className = 'ac-path__marker';
2477      m.textContent = String(i + 1).padStart(2, '0');
2478      path.appendChild(m);
2479      return { marker: m, el: v.el };
2480    });
2481    document.body.appendChild(path);
2482
2483    var firstTop = 0, pathHeight = 0;
2484    function layoutPath(){
2485      if (!pathMarkers.length) return;
2486      firstTop = pathMarkers[0].el.getBoundingClientRect().top + window.scrollY;
2487      var lastTop = pathMarkers[pathMarkers.length - 1].el.getBoundingClientRect().top + window.scrollY;
2488      pathHeight = Math.max(lastTop - firstTop, 1);
2489      path.style.top = firstTop + 'px';
2490      path.style.height = pathHeight + 'px';
2491      pathMarkers.forEach(function(pm){
2492        var top = pm.el.getBoundingClientRect().top + window.scrollY - firstTop;
2493        pm.marker.style.top = top + 'px';
2494      });
2495    }
2496
2497    function update(){
2498      var scrollPos = window.scrollY + (window.innerHeight * 0.3);
2499      var activeIdx = 0;
2500      railItems.forEach(function(it, i){
2501        var top = it.el.getBoundingClientRect().top + window.scrollY;
2502        if (scrollPos >= top) activeIdx = i;
2503      });
2504      railItems.forEach(function(it, i){ it.li.classList.toggle('is-active', i === activeIdx); });
2505      pathMarkers.forEach(function(pm, i){
2506        pm.marker.classList.toggle('is-active', i === activeIdx);
2507        pm.marker.classList.toggle('is-passed', i < activeIdx);
2508      });
2509      rail.classList.toggle('is-visible', window.scrollY > RAIL_VISIBILITY_THRESHOLD);
2510      if (pathHeight > 0) {
2511        var progressPx = scrollPos - firstTop;
2512        var pct = Math.max(0, Math.min(1, progressPx / pathHeight));
2513        lineFill.style.height = (pct * (pathHeight - 32)) + 'px';
2514      }
2515    }
2516
2517    var ticking = false;
2518    window.addEventListener('scroll', function(){
2519      if (!ticking) { window.requestAnimationFrame(function(){ update(); ticking = false; }); ticking = true; }
2520    }, { passive: true });
2521    var resizeTimer;
2522    window.addEventListener('resize', function(){
2523      clearTimeout(resizeTimer);
2524      resizeTimer = setTimeout(function(){ layoutPath(); update(); }, 150);
2525    });
2526    window.addEventListener('load', function(){ layoutPath(); update(); });
2527    layoutPath();
2528    update();
2529  }
2530
2531  if (document.readyState === 'loading') {
2532    document.addEventListener('DOMContentLoaded', build);
2533  } else {
2534    build();
2535  }
2536})();</script>
2536    </body></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.