1<!DOCTYPE html> 2<html lang="de-DE"> 3<head> 4 <meta charset="utf-8"> 5 6<!-- 7 build by DGM-Inventum GmbH 8 9 This website is powered by TYPO3 - inspiring people to share! 10 TYPO3 is a free open source Content Management Framework initially created by Kasper Skaarhoj and licensed under GNU/GPL. 11 TYPO3 is copyright 1998-2026 of Kasper Skaarhoj. Extensions are copyright of their respective owners. 12 Information and contribution at https://typo3.org/ 13--> 14 15 16<title>Mitglieder | BV MatWerk</title> 17<meta http-equiv="x-ua-compatible" content="IE=edge"> 18<meta name="generator" content="TYPO3 CMS"> 19<meta name="viewport" content="width=device-width, initial-scale=1"> 20<meta name="robots" content="index,follow"> 21<meta property="og:title" content="Mitglieder"> 22<meta property="og:site_name" content="BV MatWerk"> 23<meta name="twitter:card" content="summary"> 24<meta name="apple-mobile-web-app-capable" content="no"> 25<meta name="theme-color" content="#00a7e7"> 26 27 28<link rel="stylesheet" href="/typo3temp/assets/css/7015c8c4ac5ff815b57530b221005fc6.css?1719823328" media="all"> 29<link rel="stylesheet" href="/_assets/56730f7c12b109a4b91b7021b42662c9/Fonts/fontawesome-pro/css/all.min.css?1734126606" media="all"> 30<link rel="stylesheet" href="/_assets/56730f7c12b109a4b91b7021b42662c9/Css/videojs.css?1698166415" media="all"> 31<link rel="stylesheet" href="/_assets/56730f7c12b109a4b91b7021b42662c9/Css/lightbox.min.css?1718888415" media="all"> 32<link rel="stylesheet" href="/_assets/56730f7c12b109a4b91b7021b42662c9/Css/typo3-form-tailwind4.css?1770637617" media="all"> 33<link rel="stylesheet" href="/_assets/56730f7c12b109a4b91b7021b42662c9/Css/tabs.css?1783874359" media="all"> 34<link rel="stylesheet" href="/_assets/56730f7c12b109a4b91b7021b42662c9/Css/CrmAccess.css?1790101277" media="all"> 35 36 37 38 39 40 41<link rel="apple-touch-icon" sizes="180x180" href="/fileadmin/BvMatWerk/Logo/MatWerk-Logo-Transparent.png"><link rel="icon" type="image/png" sizes="32x32" href="/fileadmin/BvMatWerk/Logo/MatWerk-Logo-Transparent.png"><link rel="icon" type="image/png" sizes="16x16" href="/fileadmin/BvMatWerk/Logo/MatWerk-Logo-Transparent.png"><link rel="shortcut icon" href="/fileadmin/BvMatWerk/Logo/MatWerk-Logo-Transparent.png"> <meta name="msapplication-TileColor" content="#da532c"> 42 <meta name="theme-color" content="#ffffff"> 43<!-- Dynamic CSS: Sitename =BV Matwerk--><link rel="stylesheet" href="https://cdn.inventum.de/direct-assets/webwidgets/tailwind/default.css?hash=845ef9f6d8fb61dfecac9999428581b9"><!-- Custom Theme --><link href="https://dgm.inventum.de/api/css/styling_static_2/00a7e7/style.css" rel="stylesheet"><!-- Custom Theme Primary Color -->
43<script>window.primaryColor="#00a7e7";</script>
43 44<link rel="canonical" href="https://bvmatwerk.de/mitgliedschaft/mitglieder"> 45 46</head> 47<body> 48 49 50 51 52 53 54 55 56 57 58 59 60 61<style> 62 .unlink { 63 background-image: none !important; 64 65 } 66 67 .terms_html a { 68 69 text-decoration: underline; 70 } 71 72 73 .ce-uploads a { 74 75 display: inline-block; 76 margin-left: 1.5rem; 77 } 78 79 80 .ce-uploads a:before { 81 margin-left: -1.5rem; 82 text-decoration: none; 83 display: inline-block; 84 position: absolute; 85 font-family: Font Awesome\ 6 Pro; 86 font-weight: 300; 87 content: "\f0ed"; 88 89 90 } 91 92 .body-fade-out { 93 opacity: 0.5; 94 transition: opacity 0.3s ease-in-out; 95 } 96 97 /* First content element: tighten its top padding so the page doesn't open with 98 a large void below the breadcrumb (like "Space before: small"). Skipped on 99 full-bleed hero pages, where the first element is the edge-to-edge hero. */ 100 body:not(.dgm-page-has-fullscreen-hero) #crm__widgets > *:first-child { 101 padding-top: 0.5rem; 102 } 103 104 105 { 106 f: cObject(typoscriptObjectPath:'lib.additionalCss') 107 } 108 109 .dgm-mainlink-anchor { 110 position: relative; 111 } 112 113 /* menu block must paint above later header-wrap siblings (banner, page content 114 incl. hero layers up to z-50); overlay variant keeps its own z-999 rule */ 115 .dgm-page-header-wrap .mainmenu:not(.dgm-mainmenu--overlay) { 116 z-index: 100; 117 } 118 119 .dgm-mainlink-tip { 120 position: absolute; 121 top: calc(100% + 7px); 122 right: 0; 123 transform-origin: top right; 124 transform: scale(.96); 125 opacity: 0; 126 pointer-events: none; 127 z-index: 9999999; 128 white-space: nowrap; 129 background: #0f172a; 130 color: #f8fafc; 131 font-size: 12px; 132 font-weight: 500; 133 line-height: 1; 134 padding: 7px 12px; 135 border-radius: 6px; 136 box-shadow: 0 4px 14px rgba(2, 6, 23, .4); 137 transition: opacity .15s ease, transform .15s ease; 138 } 139 140 .dgm-mainlink-anchor:hover .dgm-mainlink-tip, 141 .dgm-mainlink-anchor:focus-visible .dgm-mainlink-tip { 142 opacity: 1; 143 transform: scale(1); 144 } 145 146 .dgm-langmenu { 147 min-width: 10.5rem; 148 background: #fff; 149 border: 1px solid #e2e8f0; 150 border-radius: 8px; 151 box-shadow: 0 4px 16px rgba(2, 6, 23, .10), 0 1px 3px rgba(2, 6, 23, .08); 152 padding: 4px; 153 z-index: 9999999; 154 } 155 156 .dgm-langmenu__item { 157 display: flex; 158 align-items: center; 159 gap: .5rem; 160 padding: .45rem .55rem; 161 border-radius: 6px; 162 font-size: 13px; 163 line-height: 1; 164 color: #0f172a; 165 text-decoration: none; 166 transition: background .12s ease; 167 } 168 169 .dgm-langmenu__item:hover, 170 .dgm-langmenu__item:focus-visible { 171 background: #f1f5f9; 172 outline: none; 173 } 174 175 .dgm-langmenu__item.is-active { 176 font-weight: 600; 177 } 178 179 .dgm-langmenu__check { 180 width: 1rem; 181 display: inline-flex; 182 justify-content: center; 183 color: var(--primary-500, #475569); 184 font-size: 10px; 185 } 186 187 .dgm-langmenu__code { 188 margin-left: auto; 189 padding-left: 1rem; 190 font-size: 10px; 191 font-weight: 600; 192 letter-spacing: .06em; 193 color: #94a3b8; 194 text-transform: uppercase; 195 } 196 197 .dgm-langmenu__chev { 198 font-size: 10px; 199 margin-left: .35rem; 200 transition: transform .15s ease; 201 } 202 203 .dgm-langmenu__chev.is-open { 204 transform: rotate(180deg); 205 } 206</style> 207 208<div class="dgm-page-shell relative"> 209 210 211 <div class="dgm-page-header-wrap z-50 relative"> 212 213 214 <div class="relative mainmenu js-vue-menu-scope "> 215 <div class="container mx-auto pr-4 sm:pr-6"> 216 <div class="flex justify-between items-center py-6 xl:justify-start md:space-x-10"> 217 <div class="px-2 lg:px-0 lg:w-0 lg:flex-1"> 218 <a href="#" class="flex"> 219 220 <a id="logo" href="/"> 221 <img src="/fileadmin/_processed_/
2217/1/csm_MatWerk-Logo-Transparent_41889a49c6.png" width="370" height="350" class="h-8 w-auto sm:h-8 object-contain" alt="" > 222 </a> 223 224 </a> 225 </div> 226 <div class="-mr-2 -my-2 xl:hidden"> 227 <button @click="mobileMenuOpen = true" type="button" 228 class="inline-flex items-center justify-center p-2 rounded-md text-gray-500 hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 focus:text-gray-500 transition duration-150 ease-in-out"> 229 <svg class="h-6 w-6" x-description="Heroicon name: menu" xmlns="http://www.w3.org/2000/svg" 230 fill="none" 231 viewBox="0 0 24 24" stroke="currentColor"> 232 <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" 233 d="M4 6h16M4 12h16M4 18h16"> 234 </path> 235 </svg> 236 </button> 237 </div> 238 <nav class="hidden xl:flex space-x-1 py-1 rounded-md " style="z-index: 9999;"> 239 <!-- THEMEN --> 240 241 242 243 <div @mouseenter="setButton('main-0')" 244 @mouseleave="unsetButton('main-0')" 245 data-vue-menu-hover="1" 246 data-vue-menu-id="main-0" 247 class="relative"> 248 <a href="/" 249 250 type="button" data-vue-menu-trigger="1" x-state:on="Item active" 251 x-state:off="Item inactive" 252 :class="{ 'dgm-mainmenu-trigger--open text-primary-500': isOpen('main-0'), ' text-primary-500': !isOpen('main-0') }" 253 class="group inline-flex tracking-normal items-center space-x-1 lg:px-1 xl:px-2 font-semibold md:text-sm 2xl:text-base leading-tight hover:text-primary-500 focus:outline-none focus:text-gray-900 transition ease-in-out duration-200 text-gray-900 text-primary-500"> 254 <span> Home </span> 255 256 257 258 </a> 259 260 </div> 261 262 263 264 <div @mouseenter="setButton('main-1')" 265 @mouseleave="unsetButton('main-1')" 266 data-vue-menu-hover="1" 267 data-vue-menu-id="main-1" 268 class="relative"> 269 <a href="/mitgliedschaft/mitglieder" 270 271 type="button" data-vue-menu-trigger="1" x-state:on="Item active" 272 x-state:off="Item inactive" 273 :class="{ 'dgm-mainmenu-trigger--open text-primary-500': isOpen('main-1'), ' text-primary-500': !isOpen('main-1') }" 274 class="group inline-flex tracking-normal items-center space-x-1 lg:px-1 xl:px-2 font-semibold md:text-sm 2xl:text-base leading-tight hover:text-primary-500 focus:outline-none focus:text-gray-900 transition ease-in-out duration-200 text-gray-900 text-primary-500"> 275 <span> Mitgliedschaft </span> 276 277 <i class="fal fa-chevron-down h-5 w-3 mt-0.5 pt-0.5 text-xs" style=" padding-top: 0.13rem;" 278 :class="{ 'text-primary-500': isOpen('main-1'), ' text-primary-500': !isOpen('main-1') }" 279 280 ></i> 281 282 283 </a> 284 285 286 <teleport to="body" :disabled="true"> 287 <div x-description="" 288 v-show="isOpen('main-1')" 289 @mouseenter="setHover('main-1')" 290 @mouseleave="unsetHover('main-1')" 291 data-vue-menu-panel-owner="main-1" 292 data-vue-menu-portal="0" 293 294 295 x-transition:enter-start="opacity-0" 296 x-transition:enter-end="opacity-100" 297 x-transition:leave-start="opacity-100" 298 x-transition:leave-end="opacity-0" 299 class="absolute mt-3 px-2 w-screen max-w-md sm:px-0 flyout-menu z-50 " 300 style="display: none;"> 301 302 303 <div class="rounded-lg shadow-xl ring-1 ring-gray-100 bg-white"> 304 <div class="rounded-lg shadow-xs overflow-hidden sm:p-3 sm:px-4"> 305 306 <div 307 class="z-50 relative grid gap-2 bg-white sm:gap-1 " 308 style="z-index: 999;"> 309 310 311 <a href="/mitgliedschaft/mitglieder" 312 313 class=" p-2 px-4 flex items-start space-x-2 rounded-lg 314 hover:bg-gray-50 transition ease-in-out duration-150 315 leading-snug hover:shadow hover:scale-102 transform 316 bg-gray-50 border 317 border-primary-300"> 318 <div class="pr-1 mt-1"> 319 <i class="flex-shrink-0 fa-fw text-primary-500 text-lg fal 320fa-light fa-chart-network 321 "></i> 322 </div> 323 324 325 <div class="space-y-0.5"> 326 <p class="text-base leading-tight font-bold text-gray-900 font-bold text-primary-500"> 327 328 329 Mitglieder 330 331 </p> 332 333 <p class=" leading-tight tracking-tight text-sm text-gray-500 font-light" 334 style="text-wrap: pretty;"> 335 Unsere Mitglieder im Ãberblick 336 </p> 337 338 339 </div> 340 </a> 341 342 343 <a href="/mitgliedschaft/ansprechpartner" 344 345 class=" p-2 px-4 flex items-start space-x-2 rounded-lg 346 hover:bg-gray-50 transition ease-in-out duration-150 347 leading-snug hover:shadow hover:scale-102 transform 348 "> 349 <div class="pr-1 mt-1"> 350 <i class="flex-shrink-0 fa-fw text-primary-500 text-lg fal 351fa-regular fa-address-card 352 "></i> 353 </div> 354 355 356 <div class="space-y-0.5"> 357 <p class="text-base leading-tight font-bold text-gray-900 "> 358 359 360 Ansprechpartner 361 362 </p> 363 364 <p class=" leading-tight tracking-tight text-sm text-gray-500 font-light" 365 style="text-wrap: pretty;"> 366 der Mitgliedsverbände 367 </p> 368 369 370 </div> 371 </a> 372 373 374 <a href="/mitgliedschaft/beitrittserklaerung" 375 376 class=" p-2 px-4 flex items-start space-x-2 rounded-lg 377 hover:bg-gray-50 transition ease-in-out duration-150 378 leading-snug hover:shadow hover:scale-102 transform 379 "> 380 <div class="pr-1 mt-1"> 381 <i class="flex-shrink-0 fa-fw text-primary-500 text-lg fal 382fa-regular fa-user-plus 383 "></i> 384 </div> 385 386 387 <div class="space-y-0.5"> 388 <p class="text-base leading-tight font-bold text-gray-900 "> 389 390 391 Beitrittserklärung 392 393 </p> 394 395 <p class=" leading-tight tracking-tight text-sm text-gray-500 font-light" 396 style="text-wrap: pretty;"> 397 Werden Sie Mitglied der BVMatWerk 398 </p> 399 400 401 </div> 402 </a> 403 404 405 406 </div> 407 408 </div> 409 </div> 410 </div> 411 </teleport> 412 413 </div> 414 415 416 417 <div @mouseenter="setButton('main-2')" 418 @mouseleave="unsetButton('main-2')" 419 data-vue-menu-hover="1" 420 data-vue-menu-id="main-2" 421 class="relative"> 422 <a href="/organisation" 423 424 type="button" data-vue-menu-trigger="1" x-state:on="Item active" 425 x-state:off="Item inactive" 426 :class="{ 'dgm-mainmenu-trigger--open text-primary-500': isOpen('main-2'), 'text-gray-900': !isOpen('main-2') }" 427 class="group inline-flex tracking-normal items-center space-x-1 lg:px-1 xl:px-2 font-semibold md:text-sm 2xl:text-base leading-tight hover:text-primary-500 focus:outline-none focus:text-gray-900 transition ease-in-out duration-200 text-gray-900 ">
428 <span> Organisation </span> 429 430 <i class="fal fa-chevron-down h-5 w-3 mt-0.5 pt-0.5 text-xs" style=" padding-top: 0.13rem;" 431 :class="{ 'text-primary-500': isOpen('main-2'), 'text-gray-900': !isOpen('main-2') }" 432 433 ></i> 434 435 436 </a> 437 438 439 <teleport to="body" :disabled="true"> 440 <div x-description="" 441 v-show="isOpen('main-2')" 442 @mouseenter="setHover('main-2')" 443 @mouseleave="unsetHover('main-2')" 444 data-vue-menu-panel-owner="main-2" 445 data-vue-menu-portal="0" 446 447 448 x-transition:enter-start="opacity-0" 449 x-transition:enter-end="opacity-100" 450 x-transition:leave-start="opacity-100" 451 x-transition:leave-end="opacity-0" 452 class="absolute mt-3 px-2 w-screen max-w-md sm:px-0 flyout-menu z-50 " 453 style="display: none;"> 454 455 456 <div class="rounded-lg shadow-xl ring-1 ring-gray-100 bg-white"> 457 <div class="rounded-lg shadow-xs overflow-hidden sm:p-3 sm:px-4"> 458 459 <div 460 class="z-50 relative grid gap-2 bg-white sm:gap-1 " 461 style="z-index: 999;"> 462 463 464 <a href="/organisation/vorstand" 465 466 class=" p-2 px-4 flex items-start space-x-2 rounded-lg 467 hover:bg-gray-50 transition ease-in-out duration-150 468 leading-snug hover:shadow hover:scale-102 transform 469 "> 470 <div class="pr-1 mt-1"> 471 <i class="flex-shrink-0 fa-fw text-primary-500 text-lg fal 472fa-regular fa-users 473 "></i> 474 </div> 475 476 477 <div class="space-y-0.5"> 478 <p class="text-base leading-tight font-bold text-gray-900 "> 479 480 481 Vorstand 482 483 </p> 484 485 <p class=" leading-tight tracking-tight text-sm text-gray-500 font-light" 486 style="text-wrap: pretty;"> 487 Aufgaben und Ansprechpartner 488 </p> 489 490 491 </div> 492 </a> 493 494 495 <a href="/leitbild" 496 497 class=" p-2 px-4 flex items-start space-x-2 rounded-lg 498 hover:bg-gray-50 transition ease-in-out duration-150 499 leading-snug hover:shadow hover:scale-102 transform 500 "> 501 <div class="pr-1 mt-1"> 502 <i class="flex-shrink-0 fa-fw text-primary-500 text-lg fal 503fa-bullseye-arrow 504 "></i> 505 </div> 506 507 508 <div class="space-y-0.5"> 509 <p class="text-base leading-tight font-bold text-gray-900 "> 510 511 512 Leitbild 513 514 </p> 515 516 <p class=" leading-tight tracking-tight text-sm text-gray-500 font-light" 517 style="text-wrap: pretty;"> 518 Mission & Vision 519 </p> 520 521 522 </div> 523 </a> 524 525 526 <a href="/satzung" 527 528 class=" p-2 px-4 flex items-start space-x-2 rounded-lg 529 hover:bg-gray-50 transition ease-in-out duration-150 530 leading-snug hover:shadow hover:scale-102 transform 531 "> 532 <div class="pr-1 mt-1"> 533 <i class="flex-shrink-0 fa-fw text-primary-500 text-lg fal 534fa-file-contract 535 "></i> 536 </div> 537 538 539 <div class="space-y-0.5"> 540 <p class="text-base leading-tight font-bold text-gray-900 "> 541 542 543 Satzung 544 545 </p> 546 547 <p class=" leading-tight tracking-tight text-sm text-gray-500 font-light" 548 style="text-wrap: pretty;"> 549 Regelwerk der BVMatWerk 550 </p> 551 552 553 </div> 554 </a> 555 556 557 558 </div> 559 560 </div> 561 </div> 562 </div> 563 </teleport> 564 565 </div> 566 567 568 569 <div @mouseenter="setButton('main-3')" 570 @mouseleave="unsetButton('main-3')" 571 data-vue-menu-hover="1" 572 data-vue-menu-id="main-3" 573 class="relative"> 574 <a href="/nachwuchsfoerderung" 575 576 type="button" data-vue-menu-trigger="1" x-state:on="Item active" 577 x-state:off="Item inactive" 578 :class="{ 'dgm-mainmenu-trigger--open text-primary-500': isOpen('main-3'), 'text-gray-900': !isOpen('main-3') }" 579 class="group inline-flex tracking-normal items-center space-x-1 lg:px-1 xl:px-2 font-semibold md:text-sm 2xl:text-base leading-tight hover:text-primary-500 focus:outline-none focus:text-gray-900 transition ease-in-out duration-200 text-gray-900 ">
580 <span> Nachwuchsförderung </span> 581 582 583 584 </a> 585 586 </div> 587 588 589 590 <!-- THEMEN --> 591 592 593 </nav> 594 <div 595 class="hidden relative xl:flex items-center justify-end space-x-2 lg:space-x-3 3xl:space-x-4 md:flex-1 lg:w-0 text-xs "> 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 <!-- 617 618 --> 619 </div> 620 </div> 621 </div> 622 623 <!-- 624 ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 625 MOBILE MENU â teleported to <body> so it escapes the .mainmenu 626 stacking context. The smart-sticky scroll handler also bails 627 while the sheet is open (see mountFullscreenHeroMenuPin), and 628 the watcher on mobileMenuOpen body-scroll-locks the page. 629 Two CSS transitions wrap backdrop + sheet for an elegant slide. 630 ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 631 --> 632 <teleport to="body"> 633 <div class="dgm-mainmenu-mobile xl:hidden" :class="{ 'is-open': mobileMenuOpen }"> 634 <transition name="dgm-mm-fade"> 635 <div class="dgm-mainmenu-mobile__backdrop" 636 v-show="mobileMenuOpen" 637 @click="mobileMenuOpen = false" 638 aria-hidden="true" 639 style="display:none;"></div> 640 </transition> 641 <transition name="dgm-mm-slide"> 642 <aside class="dgm-mainmenu-mobile__sheet" 643 v-show="mobileMenuOpen" 644 role="dialog" 645 aria-modal="true" 646 aria-label="Menü" 647 style="display:none;"> 648 <header class="dgm-mainmenu-mobile__header"> 649 <a id="logo" href="/"> 650 <img src="/fileadmin/_processed_/7/1/csm_MatWerk-Logo-Transparent_00d132493f.png" width="449" height="425" class="h-8 w-auto" alt="" > 651 </a> 652 <button @click="mobileMenuOpen = false" type="button" 653 class="dgm-mainmenu-mobile__close" 654 aria-label="Menü schlieÃen"> 655 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" aria-hidden="true"> 656 <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" 657 d="M6 18L18 6M6 6l12 12"></path> 658 </svg> 659 </button> 660 </header> 661 662 <div class="dgm-mainmenu-mobile__scroll"> 663 664 665 <nav class="dgm-mainmenu-mobile__nav" aria-label="Mobile"> 666 667 <div class="dgm-mainmenu-mobile__group" 668 data-mm-id="mm-0" 669 670 :class="isMobileChildOpen('mm-0') ? 'is-open' : ''"> 671 <div class="dgm-mainmenu-mobile__row"> 672 <a href="/" 673 674 class="dgm-mainmenu-mobile__row-link is-current"> 675 <i class="dgm-mainmenu-mobile__row-icon fal fa-circle-small" 676 aria-hidden="true"></i>
677 <span>Home</span> 678 </a> 679 680 </div> 681 682 </div> 683 684 <div class="dgm-mainmenu-mobile__group" 685 data-mm-id="mm-1" 686 data-mm-default-open="1" 687 :class="isMobileChildOpen('mm-1') ? 'is-open' : ''"> 688 <div class="dgm-mainmenu-mobile__row"> 689 <a href="/mitgliedschaft/mitglieder" 690 691 class="dgm-mainmenu-mobile__row-link is-current"> 692 <i class="dgm-mainmenu-mobile__row-icon fal fa-circle-small" 693 aria-hidden="true"></i> 694 <span>Mitgliedschaft</span> 695 </a> 696 697 <button type="button" 698 class="dgm-mainmenu-mobile__row-toggle" 699 @click="toggleMobileChild('mm-1')" 700 :aria-expanded="isMobileChildOpen('mm-1') ? 'true' : 'false'" 701 :aria-label="isMobileChildOpen('mm-1') ? 'Unterpunkte schlieÃen' : 'Unterpunkte anzeigen'"> 702 <i class="fal fa-chevron-down" aria-hidden="true"></i> 703 </button> 704 705 </div> 706 707 <ul class="dgm-mainmenu-mobile__children" 708 v-show="isMobileChildOpen('mm-1')" 709 style="display:none;"> 710 711 <li> 712 <a href="/mitgliedschaft/mitglieder" 713 714 class="dgm-mainmenu-mobile__child is-current"> 715 <i class="dgm-mainmenu-mobile__child-icon fal fa-light fa-chart-network" 716 aria-hidden="true"></i> 717 <span>Mitglieder</span> 718 </a> 719 </li> 720 721 <li> 722 <a href="/mitgliedschaft/ansprechpartner" 723 724 class="dgm-mainmenu-mobile__child "> 725 <i class="dgm-mainmenu-mobile__child-icon fal fa-regular fa-address-card" 726 aria-hidden="true"></i> 727 <span>Ansprechpartner</span> 728 </a> 729 </li> 730 731 <li> 732 <a href="/mitgliedschaft/beitrittserklaerung" 733 734 class="dgm-mainmenu-mobile__child "> 735 <i class="dgm-mainmenu-mobile__child-icon fal fa-regular fa-user-plus" 736 aria-hidden="true"></i> 737 <sp
737an>Beitrittserklärung</span> 738 </a> 739 </li> 740 741 </ul> 742 743 </div> 744 745 <div class="dgm-mainmenu-mobile__group" 746 data-mm-id="mm-2" 747 748 :class="isMobileChildOpen('mm-2') ? 'is-open' : ''"> 749 <div class="dgm-mainmenu-mobile__row"> 750 <a href="/organisation" 751 752 class="dgm-mainmenu-mobile__row-link "> 753 <i class="dgm-mainmenu-mobile__row-icon fal fa-circle-small" 754 aria-hidden="true"></i> 755 <span>Organisation</span> 756 </a> 757 758 <button type="button" 759 class="dgm-mainmenu-mobile__row-toggle" 760 @click="toggleMobileChild('mm-2')" 761 :aria-expanded="isMobileChildOpen('mm-2') ? 'true' : 'false'" 762 :aria-label="isMobileChildOpen('mm-2') ? 'Unterpunkte schlieÃen' : 'Unterpunkte anzeigen'"> 763 <i class="fal fa-chevron-down" aria-hidden="true"></i> 764 </button> 765 766 </div> 767 768 <ul class="dgm-mainmenu-mobile__children" 769 v-show="isMobileChildOpen('mm-2')" 770 style="display:none;"> 771 772 <li> 773 <a href="/organisation/vorstand" 774 775 class="dgm-mainmenu-mobile__child "> 776 <i class="dgm-mainmenu-mobile__child-icon fal fa-regular fa-users" 777 aria-hidden="true"></i> 778 <span>Vorstand</span> 779 </a> 780 </li> 781 782 <li> 783 <a href="/leitbild" 784 785 class="dgm-mainmenu-mobile__child "> 786 <i class="dgm-mainmenu-mobile__child-icon fal fa-bullseye-arrow" 787 aria-hidden="true"></i> 788 <span>Leitbild</span> 789 </a> 790 </li> 791 792 <li> 793 <a href="/satzung" 794 795 class="dgm-mainmenu-mobile__child "> 796 <i class="dgm-mainmenu-mobile__child-icon fal fa-file-contract" 797 aria-hidden="true"></i> 798 <sp
798an>Satzung</span> 799 </a> 800 </li> 801 802 </ul> 803 804 </div> 805 806 <div class="dgm-mainmenu-mobile__group" 807 data-mm-id="mm-3" 808 809 :class="isMobileChildOpen('mm-3') ? 'is-open' : ''"> 810 <div class="dgm-mainmenu-mobile__row"> 811 <a href="/nachwuchsfoerderung" 812 813 class="dgm-mainmenu-mobile__row-link "> 814 <i class="dgm-mainmenu-mobile__row-icon fal fa-circle-small" 815 aria-hidden="true"></i> 816 <span>Nachwuchsförderung</span> 817 </a> 818 819 </div> 820 821 </div> 822 823 </nav> 824 </div> 825 826 <footer class="dgm-mainmenu-mobile__footer"> 827 828 829 830 831 <a href="" 832 class="dgm-mainmenu-mobile__cta dgm-mainmenu-mobile__cta--primary"> 833 <i class="fal fa-sign-in" aria-hidden="true"></i> 834 <span>Login</span> 835 </a> 836 837 838 839 840 841 842 </footer> 843 </aside> 844 </transition> 845 </div> 846 </teleport> 847</div> 848 849 850 851 852 853 <!-- 854 ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 855 BREADCRUMB â shadcn-style hover dropdown, wired to the centralized 856 Vue menu app in main.js (.js-vue-menu-scope). 857 Trigger API: setButton(id) / unsetButton(id) / setHover(id) / 858 unsetHover(id) / isOpen(id) â provided by the Vue app 859 mounted on .js-vue-menu-scope. Panels use v-show + data-vue-menu-* 860 attributes so main.js can normalize, position and animate them. 861 ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 862 --> 863 864 865 866 <nav class="container mx-auto my-10 px-6 md:px-0 js-vue-menu-scope" 867 id="breadcrumb__section" 868 aria-label="Breadcrumb"> 869 <ol class="cms__breadcrumbs relative z-30 flex flex-wrap items-center gap-x-1 gap-y-2"> 870 871 <li class="relative inline-flex items-center" 872 data-vue-menu-hover="1" 873 data-vue-menu-id="crumb-0" 874 @mouseenter="setButton('crumb-0')" 875 @mouseleave="unsetButton('crumb-0')"> 876 877 <a href="/" 878 879 data-vue-menu-trigger="1" 880 @touchend.prevent="isOpen('crumb-0') ? unsetButton('crumb-0') : setButton('crumb-0')" 881 :class="{ 882 'border-primary-200 bg-primary-50 text-primary-700': isOpen('crumb-{iterator.index}'), 883 '{f:if(condition:iterator.isLast, then: \'text-gray-900\', else: \'text-gray-600 hover:text-gray-900\')}': !isOpen('crumb-0') 884 }" 885 class="group inline-flex items-center gap-1 rounded-lg border border-transparent px-2 py-0.5 text-xs font-medium transition hover:border-gray-200 hover:bg-white focus:outline-none focus-visible:ring-2 focus-visible:ring-primary-500/30 focus-visible:ring-offset-1" 886 aria-haspopup="true" 887 :aria-expanded="isOpen('crumb-0') ? 'true' : 'false'"> 888 889 <i class="fa-solid fa-house text-[11px]" aria-hidden="true"></i>
890 <span class="sr-only">BV MatWerk e.V.</span> 891 892 893 <i class="fa-solid fa-chevron-down text-[8px] opacity-70 transition group-hover:opacity-100" 894 :class="{ 'rotate-180': isOpen('crumb-{iterator.index}') }" 895 aria-hidden="true"></i> 896 897 </a> 898 899 <!-- 900 Dropdown panel â shadcn-style popover surface. 901 `data-vue-menu-portal="1"` tells main.js to 902 position the panel as `position: fixed` 903 against the viewport, so it escapes any 904 parent stacking context. Combined with 905 z-[100], the panel sits on top of headers, 906 sticky bars, parallax sections â anything 907 below z:100. 908 --> 909 910 <div data-vue-menu-panel="1" 911 data-vue-menu-portal="1" 912 role="menu" 913 aria-orientation="vertical" 914 class="dgm-breadcrumb-flyout absolute left-0 top-full z-[100] mt-2 w-60 origin-top-left rounded-xl border border-gray-200 bg-white shadow-lg shadow-gray-900/[0.08]" 915 v-show="isOpen('crumb-0')" 916 @mouseenter="setHover('crumb-0')" 917 @mouseleave="unsetHover('crumb-0')" 918 style="display: none;"> 919 <!-- 920 Inner wrapper â main.js animates the 921 panel's firstElementChild as a single 922 unit. Without this wrapper, only the 923 first <a> would animate; the rest 924 would pop in. With it, every item 925 enters together as the slide 926 animation plays. 927 --> 928 <div class="p-1"> 929 930 <a href="/" 931 932 role="menuitem" 933 class="flex items-center gap-2 rounded-md px-2.5 py-1.5 text-xs leading-snug transition focus:outline-none focus-visible:ring-2 focus-visible:ring-primary-500/30 bg-primary-50 text-primary-700 font-semibold hover:bg-primary-50 hover:text-primary-700"> 934 Home 935 </a> 936 937 <a href="/mitgliedschaft/mitglieder" 938 939 role="menuitem" 940 class="flex items-center gap-2 rounded-md px-2.5 py-1.5 text-xs leading-snug transition focus:outline-none focus-visible:ring-2 focus-visible:ring-primary-500/30 bg-primary-50 text-primary-700 font-semibold hover:bg-primary-50 hover:text-primary-700"> 941 Mitgliedschaft 942 </a> 943 944 <a href="/organisation" 945 946 role="menuitem" 947 class="flex items-center gap-2 rounded-md px-2.5 py-1.5 text-xs leading-snug transition focus:outline-none focus-visible:ring-2 focus-visible:ring-primary-500/30 text-gray-700 hover:bg-primary-50 hover:text-primary-700"> 948 Organisation 949 </a> 950 951 <a href="/nachwuchsfoerderung" 952 953 role="menuitem" 954 class="flex items-center gap-2 rounded-md px-2.5 py-1.5 text-xs leading-snug transition focus:outline-none focus-visible:ring-2 focus-visible:ring-primary-500/30 text-gray-700 hover:bg-primary-50 hover:text-primary-700"> 955 Nachwuchsförderung 956 </a> 957 958 </div> 959 </div> 960 961 </li> 962 963 964 <li class="inline-flex items-center text-gray-300" aria-hidden="true"> 965 <i class="fa-solid fa-chevron-right text-[9px]"></i> 966 </li> 967 968 969 <li class="relative inline-flex items-center" 970 data-vue-menu-hover="1" 971 data-vue-menu-id="crumb-1" 972 @mouseenter="setButton('crumb-1')" 973 @mouseleave="unsetButton('crumb-1')"> 974 975 <a href="/mitgliedschaft/mitglieder" 976 977 data-vue-menu-trigger="1" 978 @touchend.prevent="isOpen('crumb-1') ? unsetButton('crumb-1') : setButton('crumb-1')" 979 :class="{ 980 'border-primary-200 bg-primary-50 text-primary-700': isOpen('crumb-{iterator.index}'), 981 '{f:if(condition:iterator.isLast, then: \'text-gray-900\', else: \'text-gray-600 hover:text-gray-900\')}': !isOpen('crumb-1') 982 }" 983 class="group inline-flex items-center gap-1 rounded-lg border border-transparent px-2 py-0.5 text-xs font-medium transition hover:border-gray-200 hover:bg-white focus:outline-none focus-visible:ring-2 focus-visible:ring-primary-500/30 focus-visible:ring-offset-1" 984 aria-haspopup="true" 985 :aria-expanded="isOpen('crumb-1') ? 'true' : 'false'"> 986 987 Mitgliedschaft 988 989 990 <i class="fa-solid fa-chevron-down text-[8px] opacity-70 transition group-hover:opacity-100" 991 :class="{ 'rotate-180': isOpen('crumb-{iterator.index}') }" 992 aria-hidden="true"></i> 993 994 </a> 995 996 <!-- 997 Dropdown panel â shadcn-style popover surface. 998 `data-vue-menu-portal="1"` tells main.js to 999 position the panel as `position: fixed` 1000 against the viewport, so it escapes any 1001 parent stacking context. Combined with 1002 z-[100], the panel sits on top of headers, 1003 sticky bars, parallax sections â anything
1004 below z:100. 1005 --> 1006 1007 <div data-vue-menu-panel="1" 1008 data-vue-menu-portal="1" 1009 role="menu" 1010 aria-orientation="vertical" 1011 class="dgm-breadcrumb-flyout absolute left-0 top-full z-[100] mt-2 w-60 origin-top-left rounded-xl border border-gray-200 bg-white shadow-lg shadow-gray-900/[0.08]" 1012 v-show="isOpen('crumb-1')" 1013 @mouseenter="setHover('crumb-1')" 1014 @mouseleave="unsetHover('crumb-1')" 1015 style="display: none;"> 1016 <!-- 1017 Inner wrapper â main.js animates the 1018 panel's firstElementChild as a single 1019 unit. Without this wrapper, only the 1020 first <a> would animate; the rest 1021 would pop in. With it, every item 1022 enters together as the slide 1023 animation plays. 1024 --> 1025 <div class="p-1"> 1026 1027 <a href="/mitgliedschaft/mitglieder" 1028 1029 role="menuitem" 1030 class="flex items-center gap-2 rounded-md px-2.5 py-1.5 text-xs leading-snug transition focus:outline-none focus-visible:ring-2 focus-visible:ring-primary-500/30 bg-primary-50 text-primary-700 font-semibold hover:bg-primary-50 hover:text-primary-700"> 1031 Mitglieder 1032 </a> 1033 1034 <a href="/mitgliedschaft/ansprechpartner" 1035 1036 role="menuitem" 1037 class="flex items-center gap-2 rounded-md px-2.5 py-1.5 text-xs leading-snug transition focus:outline-none focus-visible:ring-2 focus-visible:ring-primary-500/30 text-gray-700 hover:bg-primary-50 hover:text-primary-700"> 1038 Ansprechpartner 1039 </a> 1040 1041 <a href="/mitgliedschaft/beitrittserklaerung" 1042 1043 role="menuitem" 1044 class="flex items-center gap-2 rounded-md px-2.5 py-1.5 text-xs leading-snug transition focus:outline-none focus-visible:ring-2 focus-visible:ring-primary-500/30 text-gray-700 hover:bg-primary-50 hover:text-primary-700"> 1045 Beitrittserklärung 1046 </a> 1047 1048 </div> 1049 </div> 1050 1051 </li> 1052 1053 1054 <li class="inline-flex items-center text-gray-300" aria-hidden="true"> 1055 <i class="fa-solid fa-chevron-right text-[9px]"></i> 1056 </li> 1057 1058 1059 <li class="relative inline-flex items-center" 1060 data-vue-menu-hover="1" 1061 data-vue-menu-id="crumb-2" 1062 @mouseenter="setButton('crumb-2')" 1063 @mouseleave="unsetButton('crumb-2')"> 1064 1065 <a href="/mitgliedschaft/mitglieder" 1066 1067 data-vue-menu-trigger="1" 1068 @touchend.prevent="isOpen('crumb-2') ? unsetButton('crumb-2') : setButton('crumb-2')" 1069 :class="{ 1070 'border-primary-200 bg-primary-50 text-primary-700': isOpen('crumb-{iterator.index}'), 1071 '{f:if(condition:iterator.isLast, then: \'text-gray-900\', else: \'text-gray-600 hover:text-gray-900\')}': !isOpen('crumb-2') 1072 }" 1073 class="group inline-flex items-center gap-1 rounded-lg border border-transparent px-2 py-0.5 text-xs font-semibold transition hover:border-gray-200 hover:bg-white focus:outline-none focus-visible:ring-2 focus-visible:ring-primary-500/30 focus-visible:ring-offset-1" 1074 aria-haspopup="false" 1075 :aria-expanded="isOpen('crumb-2') ? 'true' : 'false'"> 1076 1077 Mitglieder 1078 1079 1080 </a> 1081 1082 <!-- 1083 Dropdown panel â shadcn-style popover surface. 1084 `data-vue-menu-portal="1"` tells main.js to 1085 position the panel as `position: fixed` 1086 against the viewport, so it escapes any 1087 parent stacking context. Combined with 1088 z-[100], the panel sits on top of headers, 1089 sticky bars, parallax sections â anything
1090 below z:100. 1091 --> 1092 1093 </li> 1094 1095 1096 1097 </ol> 1098 </nav> 1099 1100 1101 1102 1103<div class="" id="content__section"> 1104 <div class=" max-w-none"> 1105 1106 1107 1108 1109 1110 1111 </div> 1112 <div class="max-w-none mb-8 lg:mx-2 2xl:mx-1" id="crm__widgets"> 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162<section id="c54" 1163 class="dgm-ex-index-source dgm-ex-root text-slate-900 pt-14 lg:pt-20 pb-10 lg:pb-20 bg-transparent" 1164 data-index-enabled="0" 1165 data-section-anchor="c54" 1166 data-section-label="BV MatWerk" 1167 data-section-icon="fa-circle-nodes"> 1168 <div class="container mx-auto"> 1169 <header data-reveal class="mt-0 mx-auto max-w-2xl text-center mb-8 sm:mb-10"> 1170 1171 1172 1173 <span class="mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/5 px-3 py-1.5 text-[11px] font-bold uppercase tracking-[0.1em] text-primary"> 1174 1175 <i class="fa-solid fa-circle-nodes"></i> 1176 1177 BV MatWerk 1178 </span> 1179 1180 1181 1182 <h2 class="mt-0 mb-0 text-pretty text-3xl font-bold tracking-tight sm:text-4xl">Mitglieder</h2> 1183 1184 1185 1186 <div class="mt-4 text-pretty text-base leading-relaxed text-slate-600 sm:text-lg"> 1187 <p>Mitgliedsorganisationen der BV MatWerk im Ãberblick.</p> 1188 </div> 1189 1190 1191 1192 </header> 1193 1194 1195 <div data-reveal class="w-full"> 1196 1197 1198 1199 1200 1201 <div id="c37" class="frame frame-default frame-type-html frame-layout-0"> 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 <custom-plugin-element name="membership-list" domain="bvmatwerk.inventum.de" id="c9a6845a-05e4-4c2a-8d63-309572ccaac8" hash="6698d8ea0c5a56698d8ea0c5a7"></custom-plugin-element> 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 </div> 1228 1229 1230 1231 1232 1233 1234 </div> 1235 1236 </div> 1237</section> 1238 1239 1240 1241 1242 1243 1244 1245 </div> 1246 <div class=" max-w-none"> 1247 1248 1249 1250 1251 1252 1253 </div> 1254 1255 1256 1257</div> 1258 1259<!-- 1260 ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 1261 FOOTER â redesigned to align with the H2 MSE 2027 design language: 1262 · Hairline borders, soft tinted card surfaces, primary accent on hover 1263 · JetBrains-mono-style uppercase eyebrows + tracked captions 1264 · Refined newsletter card with pill eyebrow + clean input/button 1265 · Social row as round chip buttons (consistent sizing) 1266 · Bottom row: utility links on the left, brand strip on the right 1267 All Fluid logic (f:if / f:for / f:cObject / BV Matwerk / nav vars) 1268 + form action URLs + hidden honeypot fields preserved verbatim. 1269 Includes 9 social platforms: linkedin, whatsapp, bluesky, facebook, 1270 twitter/X, instagram, podcast, youtube. 1271 ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 1272--> 1273<footer class="relative mt-16 w-full border-t border-gray-200 bg-gray-50 md:mt-32"> 1274 1275 <!-- Optional brand strip: rootTitle · rootSubtitle --> 1276 1277 1278 <div class="mx-auto max-w-7xl px-6 py-14 lg:py-20"> 1279 1280 <!-- âââ Newsletter card (per site + language) âââââââââââââââ --> 1281 1282 1283 1284 1285 1286 1287 1288 1289 <!-- âââ Connect with us / Social row ââââââââââââââââââââââââ --> 1290 1291 1292 <!-- âââ Main navigation grid ââââââââââââââââââââââââââââââââ --> 1293 <nav class="mt-14 border-t border-gray-200 pt-12" aria-label="Footer"> 1294 <ul class="grid grid-cols-1 gap-x-8 gap-y-10 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4"> 1295 1296 <li> 1297 <a href="/" 1298 1299 class="font-mono text-[10px] font-bold uppercase tracking-[0.16em] text-gray-900 transition hover:text-primary-700"> 1300 Home 1301 </a> 1302 <ul class="mt-3 space-y-2.5"> 1303 1304 </ul> 1305 </li> 1306 1307 <li> 1308 <a href="/mitgliedschaft/mitglieder" 1309 1310 class="font-mono text-[10px] font-bold uppercase tracking-[0.16em] text-gray-900 transition hover:text-primary-700"> 1311 Mitgliedschaft 1312 </a> 1313 <ul class="mt-3 space-y-2.5"> 1314 1315 <li> 1316 <a href="/mitgliedschaft/mitglieder" 1317 1318 class="block text-sm leading-snug text-gray-600 transition hover:text-primary-700"> 1319 Mitglieder 1320 </a> 1321 </li> 1322 1323 <li> 1324 <a href="/mitgliedschaft/ansprechpartner" 1325 1326 class="block text-sm leading-snug text-gray-600 transition hover:text-primary-700"> 1327 Ansprechpartner 1328 </a> 1329 </li> 1330 1331 <li> 1332 <a href="/mitgliedschaft/beitrittserklaerung" 1333 1334 class="block text-sm leading-snug text-gray-600 transition hover:text-primary-700"> 1335 Beitrittserklärung 1336 </a> 1337 </li> 1338 1339 </ul> 1340 </li> 1341 1342 <li> 1343 <a href="/organisation" 1344 1345 class="font-mono text-[10px] font-bold uppercase tracking-[0.16em] text-gray-900 transition hover:text-primary-700"> 1346 Organisation 1347 </a> 1348 <ul class="mt-3 space-y-2.5"> 1349 1350 <li> 1351 <a href="/organisation/vorstand" 1352 1353 class="block text-sm leading-snug text-gray-600 transition hover:text-primary-700"> 1354 Vorstand 1355 </a> 1356 </li> 1357 1358 <li> 1359 <a href="/leitbild" 1360 1361 class="block text-sm leading-snug text-gray-600 transition hover:text-primary-700"> 1362 Leitbild 1363 </a> 1364 </li> 1365 1366 <li> 1367 <a href="/satzung" 1368 1369 class="block text-sm leading-snug text-gray-600 transition hover:text-primary-700"> 1370 Satzung 1371 </a> 1372 </li> 1373 1374 </ul> 1375 </li> 1376 1377 <li> 1378 <a href="/nachwuchsfoerderung" 1379 1380 class="font-mono text-[10px] font-bold uppercase tracking-[0.16em] text-gray-900 transition hover:text-primary-700"> 1381 Nachwuchsförderung 1382 </a> 1383 <ul class="mt-3 space-y-2.5"> 1384 1385 </ul> 1386 </li> 1387 1388 </ul> 1389 </nav> 1390 1391 <!-- âââ Bottom row: footer menu links âââââââââââââââââââââââ --> 1392 <div class="mt-12 flex flex-col items-center gap-3 border-t border-gray-200 pt-6 text-xs text-gray-500 md:flex-row md:justify-center md:gap-x-8 md:gap-y-2"> 1393 1394 <a href="/impressum" 1395 1396 class="transition hover:text-primary-700">Impressum</a> 1397 1398 </div> 1399 1400 </div> 1401 1402 1403
1403<script language="JavaScript"> 1404 1405 window.appSettings = {appLanguage: '{languagenavigation.0.twoLetterIsoCode}'} 1406 </script>
1406 1407 1408 1409 1410 1411 1412
1412<script language="JavaScript"> 1413 1414 window.appSettings = {appLanguage: 'de'} 1415 </script>
1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 <!-- End Matomo --> 1425 1426 <!--
1426<script language="JavaScript" defer 1427 src="https://cdn.inventum.de/js/public/manifest.js?hash=238fdi9j3euwnfif439ui23fnd2"></script>
1427 1428
1428<script language="JavaScript" defer 1429 src="https://cdn.inventum.de/js/public/vendor.js?hash=238fdi9j3euwnfif439ui23fnd2"></script>
1429 1430
1430<script language="JavaScript" defer 1431 src="https://cdn.inventum.de/js/public/webwidgets_v2.js?hash=238fdi9j3euwnfif439ui23fnd2"></script>
1431 1432 --> 1433
1433<script defer src="https://cdn.inventum.de/direct-assets/webwidgets/loader.js"></script>
1433 1434 1435 1436 1437 1438 1439 <!-- âââ Floating "scroll to top" button âââââââââââââââââââââââââââââââ 1440 Appears after scrolling past 1.5à the viewport height, smoothly returns to 1441 top. Self-contained (inline CSS+JS, no CDN/bundle deploy needed). Uses the 1442 template's dynamic --primary colour (white arrow). Entrance/hover use 1443 motion-mcp linear() springs. Two layers: wrapper = entrance/visibility, 1444 inner button = hover/press, so the spring timings never collide. 1445 NB: inline JS avoids object literals ({key: value}) on purpose â Fluid 1446 parses those as inline arrays and mangles them. --> 1447 <style> 1448 .dgm-scroll-top { 1449 position: fixed; 1450 right: clamp(1rem, 2.5vw, 1.75rem); 1451 bottom: clamp(1rem, 2.5vw, 1.75rem); 1452 z-index: 50; 1453 opacity: 0; 1454 visibility: hidden; 1455 transform: translateY(16px) scale(.8); 1456 transition: opacity .28s ease, transform .28s ease, visibility 0s linear .28s; 1457 pointer-events: none; 1458 } 1459 .dgm-scroll-top.is-visible { 1460 opacity: 1; 1461 visibility: visible; 1462 transform: translateY(0) scale(1); 1463 /* motion-mcp spring · bounce .3 · 0.45s perceptual */ 1464 transition: opacity .3s ease, 1465 transform .65s linear(0, 0.1181, 0.3726, 0.6479, 0.8754, 1.0278, 1.1059, 1.1263, 1.1104, 1.0779, 1.0433, 1.0149, 0.996, 0.9864, 0.9841, 0.9862, 0.9903, 0.9947, 0.9982, 1.0006, 1.0017, 1), 1466 visibility 0s; 1467 pointer-events: auto; 1468 } 1469 .dgm-scroll-top__btn { 1470 display: inline-flex; 1471 align-items: center; 1472 justify-content: center; 1473 width: 3rem; 1474 height: 3rem; 1475 padding: 0; 1476 border: 0; 1477 cursor: pointer; 1478 border-radius: 9999px; 1479 color: #fff; 1480 background-color: var(--primary, #00ABE3); 1481 box-shadow: 0 10px 24px -8px rgba(15, 23, 42, .35), 1482 0 4px 10px -4px rgba(15, 23, 42, .28), 1483 inset 0 0 0 1px rgba(255, 255, 255, .16); 1484 /* motion-mcp spring · bounce .25 · 0.22s perceptual */ 1485 transition: transform .45s linear(0, 0.1587, 0.4417, 0.6916, 0.8624, 0.9593, 1.0043, 1.0188, 1.0188, 1.0137, 1.0082, 1.0041, 1.0015, 1.0002, 1), 1486 box-shadow .3s ease, 1487 background-color .3s ease; 1488 -webkit-tap-highlight-color: transparent; 1489 } 1490 .dgm-scroll-top__btn:hover { 1491 transform: translateY(-3px) scale(1.06); 1492 background-color: color-mix(in oklab, var(--primary, #00ABE3) 90%, #000); 1493 box-shadow: 0 18px 36px -10px rgba(15, 23, 42, .42), 1494 0 6px 14px -6px rgba(15, 23, 42, .3), 1495 inset 0 0 0 1px rgba(255, 255, 255, .22); 1496 } 1497 .dgm-scroll-top__btn:active { 1498 transform: scale(.93); 1499 transition: transform .12s ease; 1500 } 1501 .dgm-scroll-top__btn:focus-visible { 1502 outline: none; 1503 box-shadow: 0 0 0 3px #fff, 1504 0 0 0 6px color-mix(in oklab, var(--primary, #00ABE3) 55%, transparent), 1505 0 14px 28px -10px rgba(15, 23, 42, .42); 1506 } 1507 .dgm-scroll-top__icon { 1508 font-size: 1.05rem; 1509 line-height: 1; 1510 transition: transform .3s linear(0, 0.1587, 0.4417, 0.6916, 0.8624, 0.9593, 1.0043, 1.0188, 1.0188, 1.0137, 1.0082, 1.0041, 1.0015, 1.0002, 1); 1511 } 1512 .dgm-scroll-top__btn:hover .dgm-scroll-top__icon { 1513 transform: translateY(-2px); 1514 } 1515 @media (prefers-reduced-motion: reduce) { 1516 .dgm-scroll-top, 1517 .dgm-scroll-top__btn, 1518 .dgm-scroll-top__icon { 1519 transition-duration: .01ms !important; 1520 } 1521 } 1522 </style> 1523 <div id="dgmScrollTop" class="dgm-scroll-top" aria-hidden="true"> 1524 <button type="button" class="dgm-scroll-top__btn" aria-label="Nach oben" title="Nach oben"> 1525 <i class="fas fa-arrow-up dgm-scroll-top__icon" aria-hidden="true"></i> 1526 </button> 1527 </div> 1528
1528<script type="text/javascript"> 1529 (function () { 1530 var wrap = document.getElementById('dgmScrollTop'); 1531 if (!wrap) { return; } 1532 var btn = wrap.querySelector('.dgm-scroll-top__btn'); 1533 var docEl = document.documentElement; 1534 var ticking = false; 1535 1536 // Localise the label (static markup defaults to German for the no-JS case). 1537 if ((docEl.getAttribute('lang') || '').toLowerCase().indexOf('en') === 0) { 1538 btn.setAttribute('aria-label', 'Back to top'); 1539 btn.setAttribute('title', 'Back to top'); 1540 } 1541 1542 function update() { 1543 var y = window.pageYOffset || docEl.scrollTop; 1544 var show = y >= window.innerHeight * 1.5; 1545 wrap.classList.toggle('is-visible', show); 1546 wrap.setAttribute('aria-hidden', show ? 'false' : 'true'); 1547 ticking = false; 1548 } 1549 1550 function onScroll() { 1551 if (!ticking) { 1552 window.requestAnimationFrame(update); 1553 ticking = true; 1554 } 1555 } 1556 1557 window.addEventListener('scroll', onScroll); 1558 window.addEventListener('resize', onScroll); 1559 update(); 1560 1561 btn.addEventListener('click', function () { 1562 var reduce = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches; 1563 if (reduce || !('scrollBehavior' in docEl.style)) { 1564 window.scrollTo(0, 0); 1565 return; 1566 } 1567 var prev = docEl.style.scrollBehavior; 1568 docEl.style.scrollBehavior = 'smooth'; 1569 window.scrollTo(0, 0); 1570 window.setTimeout(function () { docEl.style.scrollBehavior = prev; }, 900); 1571 }); 1572 })(); 1573 </script>
1573 1574 1575</footer> 1576
1577<script src="/_assets/56730f7c12b109a4b91b7021b42662c9/JavaScript/jQuery.js?1762933136"></script>
vendor: 1 bytes, line 1577
1577
1578<script src="/_assets/56730f7c12b109a4b91b7021b42662c9/JavaScript/lightbox.min.js?1718886110"></script>
vendor: 1 bytes, line 1578
1578
1579<script src="/_assets/56730f7c12b109a4b91b7021b42662c9/JavaScript/CrmSession.js?1790149703"></script>
1579 1580 1581 1582</body> 1583</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.