From 02af696d4f9b0e3c19468c1920ae96a91f6dbf95 Mon Sep 17 00:00:00 2001 From: Rajpreet0 Date: Fri, 25 Sep 2026 18:53:25 +0200 Subject: [PATCH] added legeal stuff --- app/(legal)/datenschutz/page.tsx | 444 ++++++++++++++++++ app/(legal)/impressum/page.tsx | 46 ++ app/(legal)/layout.tsx | 22 + app/globals.css | 154 ++++++ app/layout.tsx | 4 +- app/not-found.tsx | 54 +++ app/robots.ts | 14 + app/sitemap.ts | 30 ++ lib/sound.ts | 13 +- modules/landingPage/forms/contact-form.tsx | 1 + modules/landingPage/schema/contact-schema.ts | 16 +- modules/landingPage/server/contact-action.ts | 1 + .../ui/components/tools/contrast-tool.tsx | 9 +- modules/shared/config/site.ts | 15 +- .../shared/ui/components/cookie-consent.tsx | 60 +++ .../ui/components/cookie-prefrence-button.tsx | 16 + .../shared/ui/components/custom-cursor.tsx | 2 +- modules/shared/ui/components/preloader.tsx | 2 +- .../shared/ui/components/requested-path.tsx | 21 + modules/shared/ui/components/site-footer.tsx | 4 + modules/shared/ui/components/site-header.tsx | 20 +- package-lock.json | 50 ++ package.json | 2 + 23 files changed, 979 insertions(+), 21 deletions(-) create mode 100644 app/(legal)/datenschutz/page.tsx create mode 100644 app/(legal)/impressum/page.tsx create mode 100644 app/(legal)/layout.tsx create mode 100644 app/not-found.tsx create mode 100644 app/robots.ts create mode 100644 app/sitemap.ts create mode 100644 modules/shared/ui/components/cookie-consent.tsx create mode 100644 modules/shared/ui/components/cookie-prefrence-button.tsx create mode 100644 modules/shared/ui/components/requested-path.tsx diff --git a/app/(legal)/datenschutz/page.tsx b/app/(legal)/datenschutz/page.tsx new file mode 100644 index 0000000..e363382 --- /dev/null +++ b/app/(legal)/datenschutz/page.tsx @@ -0,0 +1,444 @@ +import type { Metadata } from "next" + +export const metadata: Metadata = { + title: "Datenschutzerklärung", +} + +const Datenschutz = () => { + return ( + <> +

Datenschutzerklärung

+ +

1. Datenschutz auf einen Blick

+ +

Allgemeine Hinweise

+

+ Die folgenden Hinweise geben einen einfachen Überblick darüber, was mit Ihren + personenbezogenen Daten passiert, wenn Sie diese Website besuchen. Personenbezogene + Daten sind alle Daten, mit denen Sie persönlich identifiziert werden können. + Ausführliche Informationen zum Thema Datenschutz entnehmen Sie unserer unter diesem + Text aufgeführten Datenschutzerklärung. +

+ +

Datenerfassung auf dieser Website

+ +

Wer ist verantwortlich für die Datenerfassung auf dieser Website?

+

+ Die Datenverarbeitung auf dieser Website erfolgt durch den Websitebetreiber. Dessen + Kontaktdaten können Sie dem Abschnitt „Hinweis zur verantwortlichen Stelle“ in dieser + Datenschutzerklärung entnehmen. +

+ +

Wie erfassen wir Ihre Daten?

+

+ Ihre Daten werden zum einen dadurch erhoben, dass Sie uns diese mitteilen. Hierbei + kann es sich z. B. um Daten handeln, die Sie in ein Kontaktformular eingeben. +

+

+ Andere Daten werden automatisch oder nach Ihrer Einwilligung beim Besuch der Website + durch unsere IT-Systeme erfasst. Das sind vor allem technische Daten (z. B. + Internetbrowser, Betriebssystem oder Uhrzeit des Seitenaufrufs). Die Erfassung dieser + Daten erfolgt automatisch, sobald Sie diese Website betreten. +

+ +

Wofür nutzen wir Ihre Daten?

+

+ Ein Teil der Daten wird erhoben, um eine fehlerfreie Bereitstellung der Website zu + gewährleisten. Andere Daten können zur Analyse Ihres Nutzerverhaltens verwendet + werden. Sofern über die Website Verträge geschlossen oder angebahnt werden können, + werden die übermittelten Daten auch für Vertragsangebote, Bestellungen oder sonstige + Auftragsanfragen verarbeitet. +

+ +

Welche Rechte haben Sie bezüglich Ihrer Daten?

+

+ Sie haben jederzeit das Recht, unentgeltlich Auskunft über Herkunft, Empfänger und + Zweck Ihrer gespeicherten personenbezogenen Daten zu erhalten. Sie haben außerdem ein + Recht, die Berichtigung oder Löschung dieser Daten zu verlangen. Wenn Sie eine + Einwilligung zur Datenverarbeitung erteilt haben, können Sie diese Einwilligung + jederzeit für die Zukunft widerrufen. Außerdem haben Sie das Recht, unter bestimmten + Umständen die Einschränkung der Verarbeitung Ihrer personenbezogenen Daten zu + verlangen. Des Weiteren steht Ihnen ein Beschwerderecht bei der zuständigen + Aufsichtsbehörde zu. +

+

+ Hierzu sowie zu weiteren Fragen zum Thema Datenschutz können Sie sich jederzeit an + uns wenden. +

+ +

Analyse-Tools und Tools von Drittanbietern

+

+ Beim Besuch dieser Website kann Ihr Surf-Verhalten statistisch ausgewertet werden. + Das geschieht vor allem mit sogenannten Analyseprogrammen. +

+

+ Detaillierte Informationen zu diesen Analyseprogrammen finden Sie in der folgenden + Datenschutzerklärung. +

+ +

2. Hosting

+

Wir hosten die Inhalte unserer Website bei folgendem Anbieter:

+ +

Externes Hosting

+

+ Diese Website wird extern gehostet. Die personenbezogenen Daten, die auf dieser + Website erfasst werden, werden auf den Servern des Hosters / der Hoster gespeichert. + Hierbei kann es sich v. a. um IP-Adressen, Kontaktanfragen, Meta- und + Kommunikationsdaten, Vertragsdaten, Kontaktdaten, Namen, Websitezugriffe und + sonstige Daten, die über eine Website generiert werden, handeln. +

+

+ Das externe Hosting erfolgt zum Zwecke der Vertragserfüllung gegenüber unseren + potenziellen und bestehenden Kunden (Art. 6 Abs. 1 lit. b DSGVO) und im Interesse + einer sicheren, schnellen und effizienten Bereitstellung unseres Online-Angebots + durch einen professionellen Anbieter (Art. 6 Abs. 1 lit. f DSGVO). Sofern eine + entsprechende Einwilligung abgefragt wurde, erfolgt die Verarbeitung ausschließlich + auf Grundlage von Art. 6 Abs. 1 lit. a DSGVO und § 25 Abs. 1 TDDDG, soweit die + Einwilligung die Speicherung von Cookies oder den Zugriff auf Informationen im + Endgerät des Nutzers (z. B. Device-Fingerprinting) im Sinne des TDDDG umfasst. Die + Einwilligung ist jederzeit widerrufbar. +

+

+ Unser(e) Hoster wird bzw. werden Ihre Daten nur insoweit verarbeiten, wie dies zur + Erfüllung seiner Leistungspflichten erforderlich ist und unsere Weisungen in Bezug + auf diese Daten befolgen. +

+

Wir setzen folgende(n) Hoster ein:

+
+ Vercel Inc. +
+ 440 Barranca Ave #4133 +
+ Covina, CA 91723 +
+ USA +
+ +

Auftragsverarbeitung

+

+ Wir haben einen Vertrag über Auftragsverarbeitung (AVV) zur Nutzung des oben + genannten Dienstes geschlossen. Hierbei handelt es sich um einen + datenschutzrechtlich vorgeschriebenen Vertrag, der gewährleistet, dass dieser die + personenbezogenen Daten unserer Websitebesucher nur nach unseren Weisungen und unter + Einhaltung der DSGVO verarbeitet. +

+ +

3. Allgemeine Hinweise und Pflichtinformationen

+ +

Datenschutz

+

+ Die Betreiber dieser Seiten nehmen den Schutz Ihrer persönlichen Daten sehr ernst. + Wir behandeln Ihre personenbezogenen Daten vertraulich und entsprechend den + gesetzlichen Datenschutzvorschriften sowie dieser Datenschutzerklärung. +

+

+ Wenn Sie diese Website benutzen, werden verschiedene personenbezogene Daten erhoben. + Personenbezogene Daten sind Daten, mit denen Sie persönlich identifiziert werden + können. Die vorliegende Datenschutzerklärung erläutert, welche Daten wir erheben und + wofür wir sie nutzen. Sie erläutert auch, wie und zu welchem Zweck das geschieht. +

+

+ Wir weisen darauf hin, dass die Datenübertragung im Internet (z. B. bei der + Kommunikation per E-Mail) Sicherheitslücken aufweisen kann. Ein lückenloser Schutz + der Daten vor dem Zugriff durch Dritte ist nicht möglich. +

+ +

Hinweis zur verantwortlichen Stelle

+

Die verantwortliche Stelle für die Datenverarbeitung auf dieser Website ist:

+
+ Ben Dalhoff, Rajpreet Singh +
+ Sandweg 91 +
+ 48565 Steinfurt +
+

+ Telefon: +49 176 47601638 +
+ E-Mail: info@since3.de +

+

+ Verantwortliche Stelle ist die natürliche oder juristische Person, die allein oder + gemeinsam mit anderen über die Zwecke und Mittel der Verarbeitung von + personenbezogenen Daten (z. B. Namen, E-Mail-Adressen o. Ä.) entscheidet. +

+ +

Speicherdauer

+

+ Soweit innerhalb dieser Datenschutzerklärung keine speziellere Speicherdauer genannt + wurde, verbleiben Ihre personenbezogenen Daten bei uns, bis der Zweck für die + Datenverarbeitung entfällt. Wenn Sie ein berechtigtes Löschersuchen geltend machen + oder eine Einwilligung zur Datenverarbeitung widerrufen, werden Ihre Daten gelöscht, + sofern wir keine anderen rechtlich zulässigen Gründe für die Speicherung Ihrer + personenbezogenen Daten haben (z. B. steuer- oder handelsrechtliche + Aufbewahrungsfristen); im letztgenannten Fall erfolgt die Löschung nach Fortfall + dieser Gründe. +

+ +

Allgemeine Hinweise zu den Rechtsgrundlagen der Datenverarbeitung auf dieser Website

+

+ Sofern Sie in die Datenverarbeitung eingewilligt haben, verarbeiten wir Ihre + personenbezogenen Daten auf Grundlage von Art. 6 Abs. 1 lit. a DSGVO bzw. Art. 9 Abs. + 2 lit. a DSGVO, sofern besondere Datenkategorien nach Art. 9 Abs. 1 DSGVO verarbeitet + werden. Im Falle einer ausdrücklichen Einwilligung in die Übertragung + personenbezogener Daten in Drittstaaten erfolgt die Datenverarbeitung außerdem auf + Grundlage von Art. 49 Abs. 1 lit. a DSGVO. Sofern Sie in die Speicherung von Cookies + oder in den Zugriff auf Informationen in Ihr Endgerät (z. B. via + Device-Fingerprinting) eingewilligt haben, erfolgt die Datenverarbeitung zusätzlich + auf Grundlage von § 25 Abs. 1 TDDDG. Die Einwilligung ist jederzeit widerrufbar. Sind + Ihre Daten zur Vertragserfüllung oder zur Durchführung vorvertraglicher Maßnahmen + erforderlich, verarbeiten wir Ihre Daten auf Grundlage des Art. 6 Abs. 1 lit. b + DSGVO. Des Weiteren verarbeiten wir Ihre Daten, sofern diese zur Erfüllung einer + rechtlichen Verpflichtung erforderlich sind, auf Grundlage von Art. 6 Abs. 1 lit. c + DSGVO. Die Datenverarbeitung kann ferner auf Grundlage unseres berechtigten + Interesses nach Art. 6 Abs. 1 lit. f DSGVO erfolgen. Über die jeweils im Einzelfall + einschlägigen Rechtsgrundlagen wird in den folgenden Absätzen dieser + Datenschutzerklärung informiert. +

+ +

Empfänger von personenbezogenen Daten

+

+ Im Rahmen unserer Geschäftstätigkeit arbeiten wir mit verschiedenen externen Stellen + zusammen. Dabei ist teilweise auch eine Übermittlung von personenbezogenen Daten an + diese externen Stellen erforderlich. Wir geben personenbezogene Daten nur dann an + externe Stellen weiter, wenn dies im Rahmen einer Vertragserfüllung erforderlich ist, + wenn wir gesetzlich hierzu verpflichtet sind (z. B. Weitergabe von Daten an + Steuerbehörden), wenn wir ein berechtigtes Interesse nach Art. 6 Abs. 1 lit. f DSGVO + an der Weitergabe haben oder wenn eine sonstige Rechtsgrundlage die Datenweitergabe + erlaubt. Beim Einsatz von Auftragsverarbeitern geben wir personenbezogene Daten + unserer Kunden nur auf Grundlage eines gültigen Vertrags über Auftragsverarbeitung + weiter. Im Falle einer gemeinsamen Verarbeitung wird ein Vertrag über gemeinsame + Verarbeitung geschlossen. +

+ +

Widerruf Ihrer Einwilligung zur Datenverarbeitung

+

+ Viele Datenverarbeitungsvorgänge sind nur mit Ihrer ausdrücklichen Einwilligung + möglich. Sie können eine bereits erteilte Einwilligung jederzeit widerrufen. Die + Rechtmäßigkeit der bis zum Widerruf erfolgten Datenverarbeitung bleibt vom Widerruf + unberührt. +

+ +

+ Widerspruchsrecht gegen die Datenerhebung in besonderen Fällen sowie gegen + Direktwerbung (Art. 21 DSGVO) +

+

+ WENN DIE DATENVERARBEITUNG AUF GRUNDLAGE VON ART. 6 ABS. 1 LIT. E ODER F DSGVO + ERFOLGT, HABEN SIE JEDERZEIT DAS RECHT, AUS GRÜNDEN, DIE SICH AUS IHRER BESONDEREN + SITUATION ERGEBEN, GEGEN DIE VERARBEITUNG IHRER PERSONENBEZOGENEN DATEN WIDERSPRUCH + EINZULEGEN; DIES GILT AUCH FÜR EIN AUF DIESE BESTIMMUNGEN GESTÜTZTES PROFILING. DIE + JEWEILIGE RECHTSGRUNDLAGE, AUF DENEN EINE VERARBEITUNG BERUHT, ENTNEHMEN SIE DIESER + DATENSCHUTZERKLÄRUNG. WENN SIE WIDERSPRUCH EINLEGEN, WERDEN WIR IHRE BETROFFENEN + PERSONENBEZOGENEN DATEN NICHT MEHR VERARBEITEN, ES SEI DENN, WIR KÖNNEN ZWINGENDE + SCHUTZWÜRDIGE GRÜNDE FÜR DIE VERARBEITUNG NACHWEISEN, DIE IHRE INTERESSEN, RECHTE + UND FREIHEITEN ÜBERWIEGEN ODER DIE VERARBEITUNG DIENT DER GELTENDMACHUNG, AUSÜBUNG + ODER VERTEIDIGUNG VON RECHTSANSPRÜCHEN (WIDERSPRUCH NACH ART. 21 ABS. 1 DSGVO). +

+

+ WERDEN IHRE PERSONENBEZOGENEN DATEN VERARBEITET, UM DIREKTWERBUNG ZU BETREIBEN, SO + HABEN SIE DAS RECHT, JEDERZEIT WIDERSPRUCH GEGEN DIE VERARBEITUNG SIE BETREFFENDER + PERSONENBEZOGENER DATEN ZUM ZWECKE DERARTIGER WERBUNG EINZULEGEN; DIES GILT AUCH FÜR + DAS PROFILING, SOWEIT ES MIT SOLCHER DIREKTWERBUNG IN VERBINDUNG STEHT. WENN SIE + WIDERSPRECHEN, WERDEN IHRE PERSONENBEZOGENEN DATEN ANSCHLIESSEND NICHT MEHR ZUM + ZWECKE DER DIREKTWERBUNG VERWENDET (WIDERSPRUCH NACH ART. 21 ABS. 2 DSGVO). +

+ +

Beschwerderecht bei der zuständigen Aufsichtsbehörde

+

+ Im Falle von Verstößen gegen die DSGVO steht den Betroffenen ein Beschwerderecht bei + einer Aufsichtsbehörde, insbesondere in dem Mitgliedstaat ihres gewöhnlichen + Aufenthalts, ihres Arbeitsplatzes oder des Orts des mutmaßlichen Verstoßes zu. Das + Beschwerderecht besteht unbeschadet anderweitiger verwaltungsrechtlicher oder + gerichtlicher Rechtsbehelfe. +

+ +

Recht auf Datenübertragbarkeit

+

+ Sie haben das Recht, Daten, die wir auf Grundlage Ihrer Einwilligung oder in + Erfüllung eines Vertrags automatisiert verarbeiten, an sich oder an einen Dritten in + einem gängigen, maschinenlesbaren Format aushändigen zu lassen. Sofern Sie die + direkte Übertragung der Daten an einen anderen Verantwortlichen verlangen, erfolgt + dies nur, soweit es technisch machbar ist. +

+ +

Auskunft, Berichtigung und Löschung

+

+ Sie haben im Rahmen der geltenden gesetzlichen Bestimmungen jederzeit das Recht auf + unentgeltliche Auskunft über Ihre gespeicherten personenbezogenen Daten, deren + Herkunft und Empfänger und den Zweck der Datenverarbeitung und ggf. ein Recht auf + Berichtigung oder Löschung dieser Daten. Hierzu sowie zu weiteren Fragen zum Thema + personenbezogene Daten können Sie sich jederzeit an uns wenden. +

+ +

Recht auf Einschränkung der Verarbeitung

+

+ Sie haben das Recht, die Einschränkung der Verarbeitung Ihrer personenbezogenen + Daten zu verlangen. Hierzu können Sie sich jederzeit an uns wenden. Das Recht auf + Einschränkung der Verarbeitung besteht in folgenden Fällen: +

+ +

+ Wenn Sie die Verarbeitung Ihrer personenbezogenen Daten eingeschränkt haben, dürfen + diese Daten – von ihrer Speicherung abgesehen – nur mit Ihrer Einwilligung oder zur + Geltendmachung, Ausübung oder Verteidigung von Rechtsansprüchen oder zum Schutz der + Rechte einer anderen natürlichen oder juristischen Person oder aus Gründen eines + wichtigen öffentlichen Interesses der Europäischen Union oder eines Mitgliedstaats + verarbeitet werden. +

+ +

SSL- bzw. TLS-Verschlüsselung

+

+ Diese Seite nutzt aus Sicherheitsgründen und zum Schutz der Übertragung + vertraulicher Inhalte, wie zum Beispiel Bestellungen oder Anfragen, die Sie an uns + als Seitenbetreiber senden, eine SSL- bzw. TLS-Verschlüsselung. Eine verschlüsselte + Verbindung erkennen Sie daran, dass die Adresszeile des Browsers von „http://“ auf + „https://“ wechselt und an dem Schloss-Symbol in Ihrer Browserzeile. +

+

+ Wenn die SSL- bzw. TLS-Verschlüsselung aktiviert ist, können die Daten, die Sie an + uns übermitteln, nicht von Dritten mitgelesen werden. +

+ +

4. Datenerfassung auf dieser Website

+ +

Cookies

+

+ Unsere Internetseiten verwenden so genannte „Cookies“. Cookies sind kleine + Datenpakete und richten auf Ihrem Endgerät keinen Schaden an. Sie werden entweder + vorübergehend für die Dauer einer Sitzung (Session-Cookies) oder dauerhaft + (permanente Cookies) auf Ihrem Endgerät gespeichert. Session-Cookies werden nach + Ende Ihres Besuchs automatisch gelöscht. Permanente Cookies bleiben auf Ihrem + Endgerät gespeichert, bis Sie diese selbst löschen oder eine automatische Löschung + durch Ihren Webbrowser erfolgt. +

+

+ Cookies können von uns (First-Party-Cookies) oder von Drittunternehmen stammen (sog. + Third-Party-Cookies). Third-Party-Cookies ermöglichen die Einbindung bestimmter + Dienstleistungen von Drittunternehmen innerhalb von Webseiten (z. B. Cookies zur + Abwicklung von Zahlungsdienstleistungen). +

+

+ Cookies haben verschiedene Funktionen. Zahlreiche Cookies sind technisch notwendig, + da bestimmte Webseitenfunktionen ohne diese nicht funktionieren würden (z. B. die + Warenkorbfunktion oder die Anzeige von Videos). Andere Cookies können zur Auswertung + des Nutzerverhaltens oder zu Werbezwecken verwendet werden. +

+

+ Cookies, die zur Durchführung des elektronischen Kommunikationsvorgangs, zur + Bereitstellung bestimmter, von Ihnen erwünschter Funktionen (z. B. für die + Warenkorbfunktion) oder zur Optimierung der Website (z. B. Cookies zur Messung des + Webpublikums) erforderlich sind (notwendige Cookies), werden auf Grundlage von Art. 6 + Abs. 1 lit. f DSGVO gespeichert, sofern keine andere Rechtsgrundlage angegeben wird. + Der Websitebetreiber hat ein berechtigtes Interesse an der Speicherung von + notwendigen Cookies zur technisch fehlerfreien und optimierten Bereitstellung seiner + Dienste. Sofern eine Einwilligung zur Speicherung von Cookies und vergleichbaren + Wiedererkennungstechnologien abgefragt wurde, erfolgt die Verarbeitung + ausschließlich auf Grundlage dieser Einwilligung (Art. 6 Abs. 1 lit. a DSGVO und § 25 + Abs. 1 TDDDG); die Einwilligung ist jederzeit widerrufbar. +

+

+ Sie können Ihren Browser so einstellen, dass Sie über das Setzen von Cookies + informiert werden und Cookies nur im Einzelfall erlauben, die Annahme von Cookies für + bestimmte Fälle oder generell ausschließen sowie das automatische Löschen der Cookies + beim Schließen des Browsers aktivieren. Bei der Deaktivierung von Cookies kann die + Funktionalität dieser Website eingeschränkt sein. +

+

+ Sofern weitere Cookies und Dienste auf dieser Website eingesetzt werden, können Sie + dies dieser Datenschutzerklärung entnehmen. +

+ +

Vercel Analytics

+

+ Wir nutzen auf unserer Website die Analysedienste Vercel Analytics der Vercel Inc. (440 Barranca Ave #4133, Covina, CA 91723, USA). + Diese Dienste dienen der Messung der Performance unserer Website (z. B. Ladezeiten) sowie der statistischen Auswertung + der Nutzung unseres Online-Angebots. Dabei werden technische Informationen (z. B. aufgerufene Seite, Browsertyp, Ladezeiten) + an Server von Vercel übermittelt. +

+

+ Die Einbindung und Verarbeitung erfolgt ausschließlich auf Grundlage Ihrer ausdrücklichen Einwilligung gemäß + Art. 6 Abs. 1 lit. a DSGVO sowie § 25 Abs. 1 TDDDG. Die Einwilligung wird über unseren Cookie-Banner abgefragt + und ist jederzeit mit Wirkung für die Zukunft über die Cookie-Einstellungen auf unserer Website widerrufbar. +

+ +

Kontaktformular

+

+ Wenn Sie uns per Kontaktformular Anfragen zukommen lassen, werden Ihre Angaben aus + dem Anfrageformular inklusive der von Ihnen dort angegebenen Kontaktdaten zwecks + Bearbeitung der Anfrage und für den Fall von Anschlussfragen bei uns gespeichert. + Diese Daten geben wir nicht ohne Ihre Einwilligung weiter. +

+

+ Die Verarbeitung dieser Daten erfolgt auf Grundlage von Art. 6 Abs. 1 lit. b DSGVO, + sofern Ihre Anfrage mit der Erfüllung eines Vertrags zusammenhängt oder zur + Durchführung vorvertraglicher Maßnahmen erforderlich ist. In allen übrigen Fällen + beruht die Verarbeitung auf unserem berechtigten Interesse an der effektiven + Bearbeitung der an uns gerichteten Anfragen (Art. 6 Abs. 1 lit. f DSGVO) oder auf + Ihrer Einwilligung (Art. 6 Abs. 1 lit. a DSGVO) sofern diese abgefragt wurde; die + Einwilligung ist jederzeit widerrufbar. +

+

+ Die von Ihnen im Kontaktformular eingegebenen Daten verbleiben bei uns, bis Sie uns + zur Löschung auffordern, Ihre Einwilligung zur Speicherung widerrufen oder der Zweck + für die Datenspeicherung entfällt (z. B. nach abgeschlossener Bearbeitung Ihrer + Anfrage). Zwingende gesetzliche Bestimmungen – insbesondere Aufbewahrungsfristen – + bleiben unberührt. +

+ +

Anfrage per E-Mail, Telefon oder Telefax

+

+ Wenn Sie uns per E-Mail, Telefon oder Telefax kontaktieren, wird Ihre Anfrage + inklusive aller daraus hervorgehenden personenbezogenen Daten (Name, Anfrage) zum + Zwecke der Bearbeitung Ihres Anliegens bei uns gespeichert und verarbeitet. Diese + Daten geben wir nicht ohne Ihre Einwilligung weiter. +

+

+ Die Verarbeitung dieser Daten erfolgt auf Grundlage von Art. 6 Abs. 1 lit. b DSGVO, + sofern Ihre Anfrage mit der Erfüllung eines Vertrags zusammenhängt oder zur + Durchführung vorvertraglicher Maßnahmen erforderlich ist. In allen übrigen Fällen + beruht die Verarbeitung auf unserem berechtigten Interesse an der effektiven + Bearbeitung der an uns gerichteten Anfragen (Art. 6 Abs. 1 lit. f DSGVO) oder auf + Ihrer Einwilligung (Art. 6 Abs. 1 lit. a DSGVO) sofern diese abgefragt wurde; die + Einwilligung ist jederzeit widerrufbar. +

+

+ Die von Ihnen an uns per Kontaktanfragen übersandten Daten verbleiben bei uns, bis + Sie uns zur Löschung auffordern, Ihre Einwilligung zur Speicherung widerrufen oder + der Zweck für die Datenspeicherung entfällt (z. B. nach abgeschlossener Bearbeitung + Ihres Anliegens). Zwingende gesetzliche Bestimmungen – insbesondere gesetzliche + Aufbewahrungsfristen – bleiben unberührt. +

+ +

+ Quelle: https://www.e-recht24.de +

+ + ) +} + +export default Datenschutz diff --git a/app/(legal)/impressum/page.tsx b/app/(legal)/impressum/page.tsx new file mode 100644 index 0000000..35a5572 --- /dev/null +++ b/app/(legal)/impressum/page.tsx @@ -0,0 +1,46 @@ +import type { Metadata } from "next" + +export const metadata: Metadata = { + title: "Impressum", +} + +const Impressum = () => { + return ( + <> +

Impressum

+ +
+ Since3 GbR +
+ Sandweg 91 +
+ 48565 Steinfurt +
+ +

Vertreten durch:

+

Ben Dalhoff, Rajpreet Singh

+ +

Kontakt

+

+ Telefon: +49 176 47601638 +
+ E-Mail: info@since3.de +

+ +

Redaktionell verantwortlich

+

Ben Dalhoff, Rajpreet Singh

+ +

Verbraucherstreitbeilegung/Universalschlichtungsstelle

+

+ Wir sind nicht bereit oder verpflichtet, an Streitbeilegungsverfahren vor einer + Verbraucherschlichtungsstelle teilzunehmen. +

+ +

+ Quelle: https://www.e-recht24.de +

+ + ) +} + +export default Impressum diff --git a/app/(legal)/layout.tsx b/app/(legal)/layout.tsx new file mode 100644 index 0000000..4a9756a --- /dev/null +++ b/app/(legal)/layout.tsx @@ -0,0 +1,22 @@ +import Link from "next/link"; +import { ArrowLeft } from "lucide-react"; + +// Shared frame for Impressum and Datenschutz: light page, one readable column +export default function LegalLayout({ children }: { children: React.ReactNode }) { + return ( +
+
+
+ + + Zur Startseite + +
{children}
+
+
+
+ ); +} diff --git a/app/globals.css b/app/globals.css index 67e4668..7dfa718 100644 --- a/app/globals.css +++ b/app/globals.css @@ -49,6 +49,18 @@ --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1); --ease-in-out-quart: cubic-bezier(0.76, 0, 0.24, 1); + + /* + * Single stacking scale for every fixed/overlay layer on the page. + * Highest wins, so the custom cursor stays above all real UI, and the + * cookie banner (a third-party widget) is pinned below it explicitly — + * see the vanilla-cookieconsent override further down. + */ + --z-header: 80; + --z-mobile-menu: 85; + --z-cookie-banner: 90; + --z-cursor: 95; + --z-preloader: 100; } @theme inline { @@ -244,6 +256,148 @@ html.lenis body { paint-order: stroke fill; } +/* ── Cookie Consent Banner ─────────────────────────────── */ +:root.cc--elegant-black { + color-scheme: dark; + + --cc-bg: #000; + --cc-primary-color: rgb(239, 244, 246); + --cc-secondary-color: #b1bdc3; + + --cc-btn-primary-bg: #ffffff; + --cc-btn-primary-color: #000; + --cc-btn-primary-hover-bg: #ccd4d8; + --cc-btn-primary-hover-color: #000; + + --cc-btn-secondary-bg: rgba(255, 255, 255, 0.039); + --cc-btn-secondary-color: var(--cc-primary-color); + --cc-btn-secondary-border-color: #252729; + --cc-btn-secondary-hover-bg: #252729; + --cc-btn-secondary-hover-color: #fff; + --cc-btn-secondary-hover-border-color: #252729; + + --cc-cookie-category-block-bg: #101111; + --cc-cookie-category-block-border: #1d1e1f; + --cc-cookie-category-block-hover-bg: #151516; + --cc-cookie-category-block-hover-border: #1d1e1f; + --cc-cookie-category-expanded-block-hover-bg: #1d1e1f; + --cc-cookie-category-expanded-block-bg: #101111; + --cc-toggle-readonly-bg: #2f3132; + --cc-overlay-bg: rgba(0, 0, 0, 0.9)!important; + + --cc-toggle-on-knob-bg: var(--cc-bg); + --cc-toggle-readonly-knob-bg: var( --cc-cookie-category-block-bg); + + --cc-separator-border-color: #252729; + + --cc-footer-border-color: #212529; + --cc-footer-bg: #000; + } + + .cc--elegant-black #cc-main .cm, + .cc--elegant-black #cc-main .pm { + border: 1px solid var(--cc-separator-border-color); + } + + + +/* ── Cookie consent (vanilla-cookieconsent) ───────────────────────────── */ + +/* + * The library defaults --cc-z-index to 2147483647 (max signed 32-bit int), + * which sits above literally everything, including the custom cursor. + * Pin it into our own stacking scale instead. + * + * Its stylesheet is imported by as a separate CSS module, so + * load order relative to this file isn't guaranteed. Setting the variable on + * #cc-main itself (the library's own root selector) beats a plain :root + * declaration on specificity regardless of which file loads last. + */ +#cc-main { + --cc-z-index: var(--z-cookie-banner); +} + +/* ── Legal pages (Impressum, Datenschutz) ─────────────────────────────── */ + +/* Plain, readable long-form text. No effects, just hierarchy and rhythm. */ +@layer components { + + .legal-prose { + hyphens: auto; + overflow-wrap: break-word; + } + .legal-prose h1 { + font-size: clamp(2rem, 8vw, 4.5rem); + font-variation-settings: "wght" 800, "wdth" 75; + line-height: 0.9; + letter-spacing: -0.01em; + text-transform: uppercase; + } + .legal-prose h2 { + margin-top: 3.5rem; + padding-top: 2rem; + border-top: 1px solid var(--line); + font-size: var(--text-title); + font-variation-settings: "wght" 600, "wdth" 90; + line-height: 1.15; + letter-spacing: -0.02em; + text-wrap: balance; + } + .legal-prose h1 + h2, + .legal-prose h1 + * { + margin-top: 2.5rem; + } + .legal-prose h3 { + margin-top: 2.5rem; + font-size: 1.1875rem; + font-weight: 600; + line-height: 1.3; + text-wrap: balance; + } + .legal-prose h4 { + margin-top: 1.75rem; + font-weight: 600; + line-height: 1.4; + } + .legal-prose :is(h2, h3) + :is(h3, h4) { + margin-top: 1.25rem; + } + .legal-prose :is(p, ul, address) { + margin-top: 0.875rem; + line-height: 1.7; + color: color-mix(in oklch, var(--fg) 78%, var(--bg)); + } + .legal-prose address { + font-style: normal; + } + .legal-prose ul { + padding-left: 1.25rem; + list-style: disc; + } + .legal-prose li + li { + margin-top: 0.5rem; + } + .legal-prose a { + color: var(--fg); + text-decoration: underline; + text-underline-offset: 3px; + } + .legal-prose a:hover { + text-decoration-thickness: 2px; + } + /* The legally required all-caps paragraph (Art. 21 DSGVO), slightly calmer */ + .legal-prose .legal-caps { + font-size: 0.9375rem; + letter-spacing: 0.01em; + } + .legal-prose .legal-source { + margin-top: 4rem; + font-family: var(--font-mono); + font-size: var(--text-label); + color: var(--fg-muted); + } +} + /* ── Grain over everything ────────────────────────────────────────────── */ body::after { diff --git a/app/layout.tsx b/app/layout.tsx index fa6482d..df82be8 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -12,6 +12,7 @@ import { SoundEffects } from "@/modules/shared/ui/components/sound-effects"; import { mono, sans } from "./fonts"; import "./globals.css"; +import CookieBanner from "@/modules/shared/ui/components/cookie-consent"; export const metadata: Metadata = { metadataBase: new URL(site.url), @@ -48,7 +49,7 @@ export default function RootLayout({ children }: LayoutProps<"/">) {
Zum Inhalt springen @@ -62,6 +63,7 @@ export default function RootLayout({ children }: LayoutProps<"/">) {
{children}
+ diff --git a/app/not-found.tsx b/app/not-found.tsx new file mode 100644 index 0000000..1526c15 --- /dev/null +++ b/app/not-found.tsx @@ -0,0 +1,54 @@ +import type { Metadata } from "next"; +import Link from "next/link"; +import { ArrowRight } from "lucide-react"; + +import { RequestedPath } from "@/modules/shared/ui/components/requested-path"; +import { Magnetic } from "@/modules/shared/ui/components/magnetic"; + +export const metadata: Metadata = { + title: "Seite nicht gefunden", +}; + +// Renders inside the root layout, so header, footer and the shared theme +// still apply — this is the same dark, oversized-type language as the hero. +export default function NotFound() { + return ( +
+
+

(Fehler 404)

+ +

+ 404 +

+ +

+ Diese Seite gibt es nicht, oder sie ist umgezogen. Der Link war + vielleicht veraltet oder es hat sich jemand vertippt. +

+ + + + + + Zur Startseite + + + +
+
+ ); +} diff --git a/app/robots.ts b/app/robots.ts new file mode 100644 index 0000000..6457123 --- /dev/null +++ b/app/robots.ts @@ -0,0 +1,14 @@ +import type { MetadataRoute } from "next"; + +import { site } from "@/modules/shared/config/site"; + +// The whole site is public marketing content, so crawlers get full access. +export default function robots(): MetadataRoute.Robots { + return { + rules: { + userAgent: "*", + allow: "/", + }, + sitemap: `${site.url}/sitemap.xml`, + }; +} diff --git a/app/sitemap.ts b/app/sitemap.ts new file mode 100644 index 0000000..cff7e39 --- /dev/null +++ b/app/sitemap.ts @@ -0,0 +1,30 @@ +import type { MetadataRoute } from "next"; + +import { site } from "@/modules/shared/config/site"; + +// One entry per actual route. The in-page anchors (/#projekte etc.) are +// sections of "/", not separate pages, so they don't get their own entry. +export default function sitemap(): MetadataRoute.Sitemap { + const lastModified = new Date(); + + return [ + { + url: site.url, + lastModified, + changeFrequency: "weekly", + priority: 1, + }, + { + url: `${site.url}/impressum`, + lastModified, + changeFrequency: "yearly", + priority: 0.3, + }, + { + url: `${site.url}/datenschutz`, + lastModified, + changeFrequency: "yearly", + priority: 0.3, + }, + ]; +} diff --git a/lib/sound.ts b/lib/sound.ts index 36809f7..dcf40ad 100644 --- a/lib/sound.ts +++ b/lib/sound.ts @@ -33,7 +33,8 @@ export function setEnabled(enabled: boolean) { type Engine = { ctx: AudioContext; master: GainNode; noise: AudioBuffer } let engine: Engine | null = null -// Created lazily on first use, which is always inside a user gesture +// Created lazily on first use. Hover is not a user activation, so `play` +// checks activation before calling this — see there. function getEngine(): Engine { if (!engine) { const ctx = new AudioContext() @@ -156,6 +157,16 @@ const VOICES: Record void> = { export function play(voice: SoundVoice, { force = false } = {}) { if (typeof window === "undefined") return if (!force && !isEnabled()) return + + // Before the first user activation, a new AudioContext stays "suspended" + // and resume() is a no-op. currentTime is then frozen at 0, so every + // sound scheduled while hovering (not an activation) would queue up at + // t=0 and all fire at once, as one loud burst, once a click resumes it. + const activated = navigator.userActivation?.hasBeenActive ?? true + if (!engine && !activated) return + if (engine && engine.ctx.state !== "running" && !activated) return + const current = getEngine() + if (current.ctx.state !== "running") return VOICES[voice](current, current.ctx.currentTime) } diff --git a/modules/landingPage/forms/contact-form.tsx b/modules/landingPage/forms/contact-form.tsx index 552e1c1..6c22a73 100644 --- a/modules/landingPage/forms/contact-form.tsx +++ b/modules/landingPage/forms/contact-form.tsx @@ -141,6 +141,7 @@ ${el.value}` : text {...fieldProps("privacy")} type="checkbox" required + defaultChecked={state.values?.privacy} className="mt-0.5 size-5 shrink-0 accent-current" />