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 & 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 & 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 & 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 & 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 & 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 & 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 & 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 & 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- & 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- & 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 & 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 & 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 & 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 & Medizin</span> </div> </div> <a href="/branchen/aerzte-heilberufe" class="header__mobile-nav-sublink"> <span class="header__mobile-nav-sublink-title">Ãrzte & 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 & 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 & 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 & 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 & 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 & 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- & 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- & Freizeitwirtschaft</span> </div> </div> <a href="/branchen/hotel-beherbergung" class="header__mobile-nav-sublink"> <span class="header__mobile-nav-sublink-title">Hotel & 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 & 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 ml</span><span class="shg__mock-price">14,90 â¬</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 & 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 & 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 & 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.