+
+ {/* Carousel: stays inside container for left alignment, breaks right to viewport edge */}
+
{references.map((ref, i) => {
const imgSrc = ref.image
? (typeof ref.image === 'string' ? ref.image : ref.image.url)
@@ -81,47 +128,54 @@ export function ReferencesSlider(props: ReferencesSliderProps) {
return (
-
-
-
-
-
-
-
-
- {ref.category}
-
-
- {ref.title}
-
-
-
+ href={`/${locale}/referenzen#${ref.slug}`}
+ onClick={(e) => {
+ if (dragDistanceRef.current > 5) {
+ e.preventDefault();
+ e.stopPropagation();
+ }
+ }}
+ onDragStart={(e) => e.preventDefault()}
+ draggable={false}
+ data-testid="reference-tile"
+ className="block relative select-none aspect-[16/10] bg-neutral-800 rounded-2xl overflow-hidden mb-5 border border-white/5 shadow-2xl cursor-pointer"
+ >
+
+
+
+
+
+
+
+ {ref.category}
+
+
{ref.title}
+
+
);
})}
+ {/* Right padding spacer so last card doesn't clip at viewport edge */}
+