/* Ansprechpartner-Mini-Slider: zeigt bei mehreren Kontakten nur eine Karte und wechselt automatisch durch. Progressive Enhancement: - ohne JS bleiben alle Karten gestapelt sichtbar (kein Info-Verlust), - bei prefers-reduced-motion findet keine Enhancement/Auto-Rotation statt (alle Karten bleiben sichtbar), - Pause bei Hover/Fokus, Punkte zur manuellen Auswahl. */ (function () { 'use strict'; var root = document.querySelector('[data-contact-slider]'); if (!root) { return; } var slides = Array.prototype.slice.call(root.querySelectorAll('[data-contact-slide]')); if (slides.length < 2) { return; } // Bewegungsreduzierung: nicht enhancen → alle Karten bleiben sichtbar. if (window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches) { return; } var dots = Array.prototype.slice.call(root.querySelectorAll('[data-contact-dot]')); var INTERVAL = 5000; var current = 0; var timer = null; function show(n) { current = (n + slides.length) % slides.length; slides.forEach(function (slide, idx) { var active = idx === current; slide.hidden = !active; slide.classList.toggle('is-active', active); }); dots.forEach(function (dot, idx) { if (idx === current) { dot.setAttribute('aria-current', 'true'); } else { dot.removeAttribute('aria-current'); } }); } function stop() { if (timer) { window.clearInterval(timer); timer = null; } } function start() { stop(); timer = window.setInterval(function () { show(current + 1); }, INTERVAL); } dots.forEach(function (dot, idx) { dot.addEventListener('click', function () { show(idx); start(); }); }); root.addEventListener('mouseenter', stop); root.addEventListener('mouseleave', start); root.addEventListener('focusin', stop); root.addEventListener('focusout', start); root.classList.add('contact-slider--ready'); show(0); start(); })();