fix: a
This commit is contained in:
@@ -24,6 +24,69 @@
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
/* Legal content rendered from markdown */
|
||||
.legal-content h1 {
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-weight: 700;
|
||||
font-size: 1.875rem;
|
||||
margin-bottom: 3rem;
|
||||
}
|
||||
|
||||
.legal-content h2 {
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-weight: 500;
|
||||
font-size: 1.125rem;
|
||||
margin-top: 2.5rem;
|
||||
margin-bottom: 0.75rem;
|
||||
color: rgba(255, 255, 255, 0.8);
|
||||
}
|
||||
|
||||
.legal-content h3 {
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-weight: 500;
|
||||
font-size: 0.875rem;
|
||||
margin-top: 1.5rem;
|
||||
margin-bottom: 0.5rem;
|
||||
color: rgba(255, 255, 255, 0.6);
|
||||
}
|
||||
|
||||
.legal-content p,
|
||||
.legal-content li {
|
||||
color: rgba(255, 255, 255, 0.6);
|
||||
line-height: 1.625;
|
||||
}
|
||||
|
||||
.legal-content p + p {
|
||||
margin-top: 0.75rem;
|
||||
}
|
||||
|
||||
.legal-content ul {
|
||||
list-style-type: disc;
|
||||
list-style-position: inside;
|
||||
margin-left: 0.5rem;
|
||||
margin-bottom: 0.75rem;
|
||||
}
|
||||
|
||||
.legal-content ul li + li {
|
||||
margin-top: 0.25rem;
|
||||
}
|
||||
|
||||
.legal-content a {
|
||||
color: rgba(255, 255, 255, 0.8);
|
||||
text-decoration: underline;
|
||||
text-underline-offset: 4px;
|
||||
transition: color 0.2s;
|
||||
}
|
||||
|
||||
.legal-content a:hover {
|
||||
color: rgba(255, 255, 255, 1);
|
||||
}
|
||||
|
||||
.legal-content strong {
|
||||
color: rgba(255, 255, 255, 0.8);
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
/* Staggered animation delays */
|
||||
.delay-100 { animation-delay: 0.1s; }
|
||||
.delay-200 { animation-delay: 0.2s; }
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
<template>
|
||||
<div class="flex items-center gap-3 font-mono text-sm">
|
||||
<NuxtLink
|
||||
:to="{ query: { ...route.query, lang: 'en' } }"
|
||||
:class="lang === 'en' ? 'text-white' : 'text-white/30 hover:text-white/60'"
|
||||
class="transition-colors duration-200"
|
||||
>
|
||||
EN
|
||||
</NuxtLink>
|
||||
<span class="text-white/20">|</span>
|
||||
<NuxtLink
|
||||
:to="{ query: { ...route.query, lang: 'de' } }"
|
||||
:class="lang === 'de' ? 'text-white' : 'text-white/30 hover:text-white/60'"
|
||||
class="transition-colors duration-200"
|
||||
>
|
||||
DE
|
||||
</NuxtLink>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
const route = useRoute()
|
||||
const lang = computed(() => {
|
||||
const l = route.query.lang as string
|
||||
return l === 'de' ? 'de' : 'en'
|
||||
})
|
||||
</script>
|
||||
@@ -0,0 +1,13 @@
|
||||
import { defineContentConfig, defineCollection, z } from '@nuxt/content'
|
||||
|
||||
export default defineContentConfig({
|
||||
collections: {
|
||||
legal: defineCollection({
|
||||
type: 'page',
|
||||
source: '**/*.md',
|
||||
schema: z.object({
|
||||
title: z.string(),
|
||||
}),
|
||||
}),
|
||||
},
|
||||
})
|
||||
@@ -0,0 +1,33 @@
|
||||
---
|
||||
title: Impressum
|
||||
---
|
||||
|
||||
# Impressum
|
||||
|
||||
## Gesetzliche Anbieterkennung:
|
||||
|
||||
Bennet Gallein IT Solutions UG (haftungsbeschraenkt)
|
||||
|
||||
Elbinger Str. 18
|
||||
|
||||
DE-21339, Lüneburg
|
||||
|
||||
|
||||
## Contact:
|
||||
Phone: +49 1772489624
|
||||
|
||||
Email: me@bennetgallein.de
|
||||
|
||||
## Umsatzsteuer:
|
||||
Umsatzsteuer-Identifikationsnummer gemäß § 27a UStG: DE320525917
|
||||
|
||||
|
||||
## Inhalte:
|
||||
Verantwortlich für den Inhalt gemäß § 55 Abs. 2 RStV:
|
||||
|
||||
Bennet Gallein, Elbinger Str. 18, 21339 Lüneburg
|
||||
|
||||
## FairCommerce
|
||||
Wir sind seit 29.01.2022 Mitglied der Initiative "FairCommerce".
|
||||
|
||||
Nähere Informationen hierzu finden Sie unter www.haendlerbund.de/faircommerce.
|
||||
@@ -0,0 +1,112 @@
|
||||
---
|
||||
title: Datenschutzerklärung
|
||||
---
|
||||
|
||||
# Datenschutzerklärung
|
||||
|
||||
Soweit nachstehend keine anderen Angaben gemacht werden, ist die Bereitstellung Ihrer personenbezogenen Daten weder gesetzlich oder vertraglich vorgeschrieben, noch für einen Vertragsabschluss erforderlich. Sie sind zur Bereitstellung der Daten nicht verpflichtet. Eine Nichtbereitstellung hat keine Folgen. Dies gilt nur soweit bei den nachfolgenden Verarbeitungsvorgängen keine anderweitige Angabe gemacht wird.
|
||||
|
||||
"Personenbezogene Daten" sind alle Informationen, die sich auf eine identifizierte oder identifizierbare natürliche Person beziehen.
|
||||
|
||||
## Server-Logfiles
|
||||
|
||||
Sie können unsere Webseiten besuchen, ohne Angaben zu Ihrer Person zu machen.
|
||||
|
||||
Bei jedem Zugriff auf unsere Website werden an uns oder unseren Webhoster / IT-Dienstleister Nutzungsdaten durch Ihren Internet Browser übermittelt und in Protokolldaten (sog. Server-Logfiles) gespeichert. Zu diesen gespeicherten Daten gehören z.B. der Name der aufgerufenen Seite, Datum und Uhrzeit des Abrufs, die IP-Adresse, die übertragene Datenmenge und der anfragende Provider. Die Verarbeitung erfolgt auf Grundlage des Art. 6 Abs. 1 lit. f DSGVO aus unserem überwiegenden berechtigten Interesse an der Gewährleistung eines störungsfreien Betriebs unserer Website sowie zur Verbesserung unseres Angebotes.
|
||||
|
||||
## Kontakt
|
||||
|
||||
### Verantwortlicher
|
||||
|
||||
Kontaktieren Sie uns auf Wunsch. Die Kontaktdaten des für die Datenverarbeitung Verantwortlichen finden Sie in unserem Impressum.
|
||||
|
||||
### Initiativ-Kontaktaufnahme des Kunden per E-Mail
|
||||
|
||||
Wenn Sie per E-Mail initiativ mit uns in Geschäftskontakt treten, erheben wir Ihre personenbezogenen Daten (Name, E-Mail-Adresse, Nachrichtentext) nur in dem von Ihnen zur Verfügung gestellten Umfang. Die Datenverarbeitung dient der Bearbeitung und Beantwortung Ihrer Kontaktanfrage.
|
||||
|
||||
Wenn die Kontaktaufnahme der Durchführung vorvertraglichen Maßnahmen (bspw. Beratung bei Kaufinteresse, Angebotserstellung) dient oder einen bereits zwischen Ihnen und uns geschlossenen Vertrag betrifft, erfolgt diese Datenverarbeitung auf Grundlage des Art. 6 Abs. 1 lit. b DSGVO.
|
||||
|
||||
Erfolgt die Kontaktaufnahme aus anderen Gründen erfolgt diese Datenverarbeitung auf Grundlage des Art. 6 Abs. 1 lit. f DSGVO aus unserem überwiegenden berechtigten Interesse an der Bearbeitung und Beantwortung Ihrer Anfrage. ***In diesem Fall haben Sie das Recht, aus Gründen, die sich aus Ihrer besonderen Situation ergeben, jederzeit dieser auf Art. 6 Abs. 1 lit. f DSGVO beruhenden Verarbeitungen Sie betreffender personenbezogener Daten zu widersprechen.***
|
||||
|
||||
Ihre E-Mail-Adresse nutzen wir nur zur Bearbeitung Ihrer Anfrage. Ihre Daten werden anschließend unter Beachtung gesetzlicher Aufbewahrungsfristen gelöscht, sofern Sie der weitergehenden Verarbeitung und Nutzung nicht zugestimmt haben.
|
||||
|
||||
## Bestellungen
|
||||
|
||||
### Erhebung, Verarbeitung und Weitergabe personenbezogener Daten bei Bestellungen
|
||||
|
||||
Bei der Bestellung erheben und verarbeiten wir Ihre personenbezogenen Daten nur, soweit dies zur Erfüllung und Abwicklung Ihrer Bestellung sowie zur Bearbeitung Ihrer Anfragen erforderlich ist. Die Bereitstellung der Daten ist für den Vertragsschluss erforderlich. Eine Nichtbereitstellung hat zur Folge, dass kein Vertrag geschlossen werden kann. Die Verarbeitung erfolgt auf Grundlage des Art. 6 Abs. 1 lit. b DSGVO und ist für die Erfüllung eines Vertrags mit Ihnen erforderlich.
|
||||
|
||||
Eine Weitergabe Ihrer Daten erfolgt dabei beispielsweise an die von Ihnen gewählten Versandunternehmen und Dropshipping Anbieter, Zahlungsdienstleister, Diensteanbieter für die Bestellabwicklung und IT-Dienstleister. In allen Fällen beachten wir strikt die gesetzlichen Vorgaben. Der Umfang der Datenübermittlung beschränkt sich auf ein Mindestmaß.
|
||||
|
||||
## Zahlungsdienstleister
|
||||
|
||||
### Verwendung von PayPal
|
||||
|
||||
Alle PayPal-Transaktionen unterliegen der PayPal-Datenschutzerklärung. Diese finden Sie unter https://www.paypal.com/de/webapps/mpp/ua/privacy-full
|
||||
|
||||
### Verwendung von PayPal Express
|
||||
|
||||
Wir verwenden auf unserer Website den Zahlungsdienst PayPal Express der PayPal (Europe) S.à.r.l. et Cie, S.C.A. (22-24 Boulevard Royal L-2449, Luxemburg; "PayPal"). Die Datenverarbeitung dient dem Zweck, Ihnen die Zahlung über den Zahlungsdienst PayPal Express anbieten zu können.
|
||||
|
||||
Zur Einbindung dieses Zahlungsdienstes ist es erforderlich, dass PayPal beim Aufruf der Website Daten (z.B. IP-Adresse, Gerätetyp, Betriebssystem, Browsertyp, Standort Ihres Geräts) sammelt, speichert und analysiert. Hierzu können auch Cookies eingesetzt werden. Die Cookies ermöglichen die Wiedererkennung Ihres Browsers.
|
||||
|
||||
Die Nutzung von Cookies oder vergleichbarer Technologien erfolgt mit Ihrer Einwilligung auf Grundlage des § 25 Abs. 1 S. 1 TTDSG i.V.m. Art. 6 Abs. 1 lit. a DSGVO. Die Verarbeitung Ihrer personenbezogenen Daten erfolgt mit Ihrer Einwilligung auf Grundlage des Art. 6 Abs. 1 lit. a DSGVO. Sie können die Einwilligung jederzeit widerrufen, ohne dass die Rechtmäßigkeit der aufgrund der Einwilligung bis zum Widerruf erfolgten Verarbeitung berührt wird.
|
||||
|
||||
Mit Auswahl und Nutzung von PayPal Express werden die zur Zahlungsabwicklung erforderlichen Daten an PayPal übermittelt, um den Vertrag mit Ihnen mit der gewählten Zahlart erfüllen zu können. Diese Verarbeitung erfolgt auf Grundlage des Art. 6 Abs. 1 lit. b DSGVO.
|
||||
|
||||
Nähere Informationen zur Datenverarbeitung bei Verwendung des Zahlungsdienstes PayPal Express finden Sie in der dazugehörigen Datenschutzerklärung unter https://www.paypal.com/de/webapps/mpp/ua/privacy-full?locale.x=de_DE#Updated_PS
|
||||
|
||||
## Cookies
|
||||
|
||||
Unsere Website verwendet Cookies. Cookies sind kleine Textdateien, die im Internetbrowser bzw. vom Internetbrowser auf dem Computersystem eines Nutzers gespeichert werden. Ruft ein Nutzer eine Website auf, so kann ein Cookie auf dem Betriebssystem des Nutzers gespeichert werden. Dieser Cookie enthält eine charakteristische Zeichenfolge, die eine eindeutige Identifizierung des Browsers beim erneuten Aufrufen der Website ermöglicht.
|
||||
|
||||
Cookies werden auf Ihrem Rechner gespeichert. Daher haben Sie die volle Kontrolle über die Verwendung von Cookies. Durch die Auswahl entsprechender technischer Einstellungen in Ihrem Internetbrowser können Sie vor dem Setzen von Cookies benachrichtigt werden und über die Annahme einzeln entscheiden sowie die Speicherung der Cookies und Übermittlung der enthaltenen Daten verhindern. Bereits gespeicherte Cookies können jederzeit gelöscht werden. Wir weisen Sie jedoch darauf hin, dass Sie dann gegebenenfalls nicht sämtliche Funktionen dieser Website vollumfänglich werden nutzen können.
|
||||
|
||||
Unter den nachstehenden Links können Sie sich informieren, wie Sie die Cookies bei den wichtigsten Browsern verwalten (u.a. auch deaktivieren) können:
|
||||
|
||||
- Chrome: https://support.google.com/accounts/answer/61416?hl=de
|
||||
- Internet Explorer: https://support.microsoft.com/de-de/help/17442/windows-internet-explorer-delete-manage-cookies
|
||||
- Mozilla Firefox: https://support.mozilla.org/de/kb/cookies-erlauben-und-ablehnen
|
||||
- Safari: https://support.apple.com/de-de/guide/safari/manage-cookies-and-website-data-sfri11471/mac
|
||||
|
||||
### Technisch notwendige Cookies
|
||||
|
||||
Soweit nachstehend in der Datenschutzerklärung keine anderen Angaben gemacht werden setzen wir nur diese technisch notwendigen Cookies zu dem Zweck ein, unser Angebot nutzerfreundlicher, effektiver und sicherer zu machen. Des Weiteren ermöglichen Cookies unseren Systemen, Ihren Browser auch nach einem Seitenwechsel zu erkennen und Ihnen Services anzubieten. Einige Funktionen unserer Internetseite können ohne den Einsatz von Cookies nicht angeboten werden. Für diese ist es erforderlich, dass der Browser auch nach einem Seitenwechsel wiedererkannt wird.
|
||||
|
||||
Die Nutzung von Cookies oder vergleichbarer Technologien erfolgt auf Grundlage des § 25 Abs. 2 TTDSG. Die Verarbeitung Ihrer personenbezogenen Daten erfolgt auf Grundlage des Art. 6 Abs. 1 lit. f DSGVO aus unserem überwiegenden berechtigten Interesse an der Gewährleistung der optimalen Funktionalität der Website sowie einer nutzerfreundlichen und effektiven Gestaltung unseres Angebots.
|
||||
|
||||
***Sie haben das Recht aus Gründen, die sich aus Ihrer besonderen Situation ergeben, jederzeit dieser Verarbeitungen Sie betreffender personenbezogener Daten zu widersprechen.***
|
||||
|
||||
## Betroffenenrechte und Speicherdauer
|
||||
|
||||
### Dauer der Speicherung
|
||||
|
||||
Nach vollständiger Vertragsabwicklung werden die Daten zunächst für die Dauer der Gewährleistungsfrist, danach unter Berücksichtigung gesetzlicher, insbesondere steuer- und handelsrechtlicher Aufbewahrungsfristen gespeichert und dann nach Fristablauf gelöscht, sofern Sie der weitergehenden Verarbeitung und Nutzung nicht zugestimmt haben.
|
||||
|
||||
### Rechte der betroffenen Person
|
||||
|
||||
Ihnen stehen bei Vorliegen der gesetzlichen Voraussetzungen folgende Rechte nach Art. 15 bis 20 DSGVO zu: Recht auf Auskunft, auf Berichtigung, auf Löschung, auf Einschränkung der Verarbeitung, auf Datenübertragbarkeit.
|
||||
|
||||
Außerdem steht Ihnen nach Art. 21 Abs. 1 DSGVO ein Widerspruchsrecht gegen die Verarbeitungen zu, die auf Art. 6 Abs. 1 f DSGVO beruhen, sowie gegen die Verarbeitung zum Zwecke von Direktwerbung.
|
||||
|
||||
### Beschwerderecht bei der Aufsichtsbehörde
|
||||
|
||||
Sie haben gemäß Art. 77 DSGVO das Recht, sich bei der Aufsichtsbehörde zu beschweren, wenn Sie der Ansicht sind, dass die Verarbeitung Ihrer personenbezogenen Daten nicht rechtmäßig erfolgt.
|
||||
|
||||
Eine Beschwerde können Sie unter anderem bei der für uns zuständigen Aufsichtsbehörde einlegen, die Sie unter folgenden Kontaktdaten erreichen:
|
||||
|
||||
Landesbeauftragte für den Datenschutz Niedersachsen
|
||||
Prinzenstraße 5
|
||||
30159 Hannover
|
||||
Tel.: +49 511 1204500
|
||||
Fax: +49 511 1204599
|
||||
E-Mail: poststelle@lfd.niedersachsen.de
|
||||
|
||||
### Widerspruchsrecht
|
||||
|
||||
Beruhen die hier aufgeführten personenbezogenen Datenverarbeitungen auf Grundlage unseres berechtigten Interesses nach Art. 6 Abs. 1 lit. f DSGVO, haben Sie das Recht aus Gründen, die sich aus Ihrer besonderen Situation ergeben, jederzeit diesen Verarbeitungen mit Wirkung für die Zukunft zu widersprechen.
|
||||
|
||||
Nach erfolgtem Widerspruch wird die Verarbeitung der betroffenen Daten beendet, es sei denn, wir können zwingende schutzwürdige Gründe für die Verarbeitung nachweisen, die Ihren Interessen, Rechten und Freiheiten überwiegen, oder wenn die Verarbeitung der Geltendmachung, Ausübung oder Verteidigung von Rechtsansprüchen dient.
|
||||
|
||||
|
||||
*letzte Aktualisierung: 10.01.2022*
|
||||
@@ -0,0 +1,38 @@
|
||||
---
|
||||
title: Legal Notice
|
||||
---
|
||||
|
||||
# Legal Notice
|
||||
|
||||
## Information pursuant to § 5 TMG
|
||||
|
||||
Bennet Gallein
|
||||
Bennet Gallein IT Solutions
|
||||
Elbinger Str. 18
|
||||
21339 Lüneburg
|
||||
|
||||
## Contact
|
||||
|
||||
Phone: +49 1772489624
|
||||
Email: me@bennetgallein.de
|
||||
|
||||
## VAT ID
|
||||
|
||||
VAT identification number pursuant to § 27a of the German VAT Act:
|
||||
DE320525917
|
||||
|
||||
## Responsible for content pursuant to § 55 para. 2 RStV
|
||||
|
||||
Bennet Gallein
|
||||
Elbinger Str. 18
|
||||
21339 Lüneburg
|
||||
|
||||
## EU Dispute Resolution
|
||||
|
||||
The European Commission provides a platform for online dispute resolution (ODR): https://ec.europa.eu/consumers/odr/
|
||||
|
||||
Our email address can be found above in the legal notice.
|
||||
|
||||
## Consumer Dispute Resolution
|
||||
|
||||
We are not willing or obliged to participate in dispute resolution proceedings before a consumer arbitration board.
|
||||
@@ -0,0 +1,80 @@
|
||||
---
|
||||
title: Privacy Policy
|
||||
---
|
||||
|
||||
# Privacy Policy
|
||||
|
||||
Unless stated otherwise below, providing your personal data is neither legally nor contractually required. You are not obligated to provide data, and there are no consequences for not doing so.
|
||||
|
||||
"Personal data" refers to all information relating to an identified or identifiable natural person.
|
||||
|
||||
## Server Log Files
|
||||
|
||||
You can visit this website without providing any personal information. Each time this website is accessed, usage data is transmitted by your internet browser and stored in log files (server log files). This stored data includes, for example:
|
||||
|
||||
- Name of the page accessed
|
||||
- Date and time of access
|
||||
- IP address
|
||||
- Amount of data transferred
|
||||
- Requesting provider
|
||||
|
||||
Processing is carried out pursuant to Art. 6 para. 1 lit. f GDPR based on our legitimate interest in ensuring uninterrupted operation of the website and improving our services.
|
||||
|
||||
## Contact
|
||||
|
||||
### Data Controller
|
||||
|
||||
Bennet Gallein
|
||||
Bennet Gallein IT Solutions
|
||||
Elbinger Str. 18
|
||||
21339 Lüneburg
|
||||
|
||||
Phone: +49 1772489624
|
||||
Email: me@bennetgallein.de
|
||||
|
||||
### Contact via Email
|
||||
|
||||
When you contact us via email, we only collect the personal data you provide (name, email address, message text). Processing serves to handle and respond to your inquiry.
|
||||
|
||||
If the contact relates to pre-contractual measures or an existing contract, processing is carried out pursuant to Art. 6 para. 1 lit. b GDPR. In all other cases, processing is based on Art. 6 para. 1 lit. f GDPR. You have the right to object to this processing based on your particular situation.
|
||||
|
||||
Your email address is used exclusively for processing your inquiry. Data is deleted after statutory retention periods expire, unless you have consented to further processing.
|
||||
|
||||
## Cookies
|
||||
|
||||
Our website uses cookies — small text files that are stored by your browser on your device. Cookies contain characteristic strings that enable browser identification upon revisiting the site.
|
||||
|
||||
We use only technically necessary cookies to make our website user-friendly, effective, and secure. Some functions of the website require the browser to be recognized across page changes.
|
||||
|
||||
Cookie usage is based on § 25 para. 2 TTDSG. Processing of personal data occurs pursuant to Art. 6 para. 1 lit. f GDPR, based on our legitimate interest in ensuring website functionality and an effective service design.
|
||||
|
||||
You have the right to object to this processing based on your particular situation. You can manage or delete cookies at any time through your browser settings, though this may limit website functionality.
|
||||
|
||||
## Data Subject Rights & Storage Duration
|
||||
|
||||
### Storage Duration
|
||||
|
||||
After complete fulfillment of the purpose, data is retained considering legal, tax, and commercial retention requirements, then deleted upon expiration of those periods, unless you have consented to further processing.
|
||||
|
||||
### Your Rights
|
||||
|
||||
Where the legal requirements are met, you have the following rights under Art. 15–20 GDPR: right to access, right to correction, right to deletion, right to restriction of processing, and right to data portability.
|
||||
|
||||
Additionally, under Art. 21 para. 1 GDPR, you have the right to object to processing based on Art. 6 para. 1 lit. f GDPR, as well as to processing for direct marketing purposes.
|
||||
|
||||
### Right to Lodge a Complaint
|
||||
|
||||
Under Art. 77 GDPR, you have the right to lodge a complaint with the supervisory authority if you believe that the processing of your personal data violates the law.
|
||||
|
||||
**Competent Supervisory Authority:**
|
||||
Landesbeauftragte für den Datenschutz Niedersachsen
|
||||
Prinzenstraße 5
|
||||
30159 Hannover
|
||||
|
||||
Phone: +49 511 1204500
|
||||
Fax: +49 511 1204599
|
||||
Email: poststelle@lfd.niedersachsen.de
|
||||
|
||||
### Right to Object
|
||||
|
||||
Where processing is based on Art. 6 para. 1 lit. f GDPR, you have the right to object at any time on grounds relating to your particular situation. Following your objection, processing will cease unless there are compelling legitimate grounds that override your interests, or the processing serves to assert, exercise, or defend legal claims.
|
||||
@@ -6,8 +6,19 @@ export default defineNuxtConfig({
|
||||
modules: [
|
||||
'@nuxtjs/tailwindcss',
|
||||
'@nuxtjs/google-fonts',
|
||||
'@nuxt/content',
|
||||
],
|
||||
|
||||
content: {
|
||||
renderer: {
|
||||
anchorLinks: false,
|
||||
},
|
||||
},
|
||||
|
||||
tailwindcss: {
|
||||
cssPath: '~/assets/css/main.css',
|
||||
},
|
||||
|
||||
googleFonts: {
|
||||
families: {
|
||||
'JetBrains Mono': [400, 500, 700],
|
||||
|
||||
Generated
+3516
-23
File diff suppressed because it is too large
Load Diff
@@ -10,8 +10,10 @@
|
||||
"postinstall": "nuxt prepare"
|
||||
},
|
||||
"dependencies": {
|
||||
"@nuxt/content": "^3.12.0",
|
||||
"@nuxtjs/google-fonts": "^3.2.0",
|
||||
"@nuxtjs/tailwindcss": "^6.14.0",
|
||||
"better-sqlite3": "^12.8.0",
|
||||
"nuxt": "^3.21.1",
|
||||
"vue": "^3.5.28",
|
||||
"vue-router": "^4.6.4"
|
||||
|
||||
+18
-66
@@ -1,88 +1,40 @@
|
||||
<template>
|
||||
<main class="flex-1 px-6 py-24">
|
||||
<div class="max-w-3xl mx-auto w-full">
|
||||
<div class="flex items-center justify-between mb-12">
|
||||
<NuxtLink
|
||||
to="/"
|
||||
class="inline-flex items-center gap-2 font-mono text-sm text-white/40 hover:text-white transition-colors duration-200 mb-12"
|
||||
class="inline-flex items-center gap-2 font-mono text-sm text-white/40 hover:text-white transition-colors duration-200"
|
||||
>
|
||||
<svg class="w-4 h-4" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="M10.5 19.5L3 12m0 0l7.5-7.5M3 12h18" />
|
||||
</svg>
|
||||
Back
|
||||
</NuxtLink>
|
||||
|
||||
<article class="opacity-0 animate-fade-in prose-legal">
|
||||
<h1 class="font-mono font-bold text-3xl sm:text-4xl mb-12">Legal Notice</h1>
|
||||
|
||||
<section class="mb-10">
|
||||
<h2 class="font-mono font-medium text-lg mb-3 text-white/80">Information pursuant to § 5 TMG</h2>
|
||||
<div class="text-white/60 leading-relaxed space-y-1">
|
||||
<p>Bennet Gallein</p>
|
||||
<p>Bennet Gallein IT Solutions</p>
|
||||
<p>Elbinger Str. 18</p>
|
||||
<p>21339 Lüneburg</p>
|
||||
<LangSwitcher />
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="mb-10">
|
||||
<h2 class="font-mono font-medium text-lg mb-3 text-white/80">Contact</h2>
|
||||
<div class="text-white/60 leading-relaxed space-y-1">
|
||||
<p>Phone: +49 1772489624</p>
|
||||
<p>Email: me@bennetgallein.de</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="mb-10">
|
||||
<h2 class="font-mono font-medium text-lg mb-3 text-white/80">VAT ID</h2>
|
||||
<div class="text-white/60 leading-relaxed space-y-1">
|
||||
<p>
|
||||
VAT identification number pursuant to § 27a of the German VAT Act:<br />
|
||||
DE320525917
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="mb-10">
|
||||
<h2 class="font-mono font-medium text-lg mb-3 text-white/80">Responsible for content pursuant to § 55 para. 2 RStV</h2>
|
||||
<div class="text-white/60 leading-relaxed space-y-1">
|
||||
<p>Bennet Gallein</p>
|
||||
<p>Elbinger Str. 18</p>
|
||||
<p>21339 Lüneburg</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="mb-10">
|
||||
<h2 class="font-mono font-medium text-lg mb-3 text-white/80">EU Dispute Resolution</h2>
|
||||
<div class="text-white/60 leading-relaxed">
|
||||
<p>
|
||||
The European Commission provides a platform for online dispute resolution (ODR):
|
||||
<a
|
||||
href="https://ec.europa.eu/consumers/odr/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
class="text-white/80 underline underline-offset-4 hover:text-white transition-colors"
|
||||
>https://ec.europa.eu/consumers/odr/</a>.
|
||||
</p>
|
||||
<p class="mt-2">Our email address can be found above in the legal notice.</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="mb-10">
|
||||
<h2 class="font-mono font-medium text-lg mb-3 text-white/80">Consumer Dispute Resolution</h2>
|
||||
<div class="text-white/60 leading-relaxed">
|
||||
<p>
|
||||
We are not willing or obliged to participate in dispute resolution proceedings
|
||||
before a consumer arbitration board.
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
<article v-if="doc" class="opacity-0 animate-fade-in prose-legal">
|
||||
<ContentRenderer :value="doc" class="legal-content" />
|
||||
</article>
|
||||
</div>
|
||||
</main>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
const route = useRoute()
|
||||
const lang = computed(() => {
|
||||
const l = route.query.lang as string
|
||||
return l === 'de' ? 'de' : 'en'
|
||||
})
|
||||
|
||||
const { data: doc } = await useAsyncData(
|
||||
() => `imprint-${lang.value}`,
|
||||
() => queryCollection('legal').path(`/${lang.value}/imprint`).first(),
|
||||
{ watch: [lang] },
|
||||
)
|
||||
|
||||
useHead({
|
||||
title: 'Legal Notice – Bennet Gallein IT Solutions',
|
||||
title: computed(() => `${doc.value?.title ?? 'Legal Notice'} – Bennet Gallein IT Solutions`),
|
||||
})
|
||||
</script>
|
||||
|
||||
+18
-154
@@ -1,176 +1,40 @@
|
||||
<template>
|
||||
<main class="flex-1 px-6 py-24">
|
||||
<div class="max-w-3xl mx-auto w-full">
|
||||
<div class="flex items-center justify-between mb-12">
|
||||
<NuxtLink
|
||||
to="/"
|
||||
class="inline-flex items-center gap-2 font-mono text-sm text-white/40 hover:text-white transition-colors duration-200 mb-12"
|
||||
class="inline-flex items-center gap-2 font-mono text-sm text-white/40 hover:text-white transition-colors duration-200"
|
||||
>
|
||||
<svg class="w-4 h-4" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="M10.5 19.5L3 12m0 0l7.5-7.5M3 12h18" />
|
||||
</svg>
|
||||
Back
|
||||
</NuxtLink>
|
||||
|
||||
<article class="opacity-0 animate-fade-in prose-legal">
|
||||
<h1 class="font-mono font-bold text-3xl sm:text-4xl mb-12">Privacy Policy</h1>
|
||||
|
||||
<section class="mb-10">
|
||||
<div class="text-white/60 leading-relaxed space-y-3">
|
||||
<p>
|
||||
Unless stated otherwise below, providing your personal data is neither legally
|
||||
nor contractually required. You are not obligated to provide data, and there are
|
||||
no consequences for not doing so.
|
||||
</p>
|
||||
<p>
|
||||
"Personal data" refers to all information relating to an identified or identifiable
|
||||
natural person.
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="mb-10">
|
||||
<h2 class="font-mono font-medium text-lg mb-3 text-white/80">Server Log Files</h2>
|
||||
<div class="text-white/60 leading-relaxed space-y-3">
|
||||
<p>
|
||||
You can visit this website without providing any personal information. Each time
|
||||
this website is accessed, usage data is transmitted by your internet browser and
|
||||
stored in log files (server log files). This stored data includes, for example:
|
||||
</p>
|
||||
<ul class="list-disc list-inside space-y-1 ml-2">
|
||||
<li>Name of the page accessed</li>
|
||||
<li>Date and time of access</li>
|
||||
<li>IP address</li>
|
||||
<li>Amount of data transferred</li>
|
||||
<li>Requesting provider</li>
|
||||
</ul>
|
||||
<p>
|
||||
Processing is carried out pursuant to Art. 6 para. 1 lit. f GDPR based on our
|
||||
legitimate interest in ensuring uninterrupted operation of the website and improving
|
||||
our services.
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="mb-10">
|
||||
<h2 class="font-mono font-medium text-lg mb-3 text-white/80">Contact</h2>
|
||||
<div class="text-white/60 leading-relaxed space-y-3">
|
||||
<h3 class="font-mono text-sm font-medium text-white/60 mb-2 mt-4">Data Controller</h3>
|
||||
<div class="space-y-1">
|
||||
<p>Bennet Gallein</p>
|
||||
<p>Bennet Gallein IT Solutions</p>
|
||||
<p>Elbinger Str. 18</p>
|
||||
<p>21339 Lüneburg</p>
|
||||
<p class="mt-2">Phone: +49 1772489624</p>
|
||||
<p>Email: me@bennetgallein.de</p>
|
||||
<LangSwitcher />
|
||||
</div>
|
||||
|
||||
<h3 class="font-mono text-sm font-medium text-white/60 mb-2 mt-6">Contact via Email</h3>
|
||||
<p>
|
||||
When you contact us via email, we only collect the personal data you provide
|
||||
(name, email address, message text). Processing serves to handle and respond
|
||||
to your inquiry.
|
||||
</p>
|
||||
<p>
|
||||
If the contact relates to pre-contractual measures or an existing contract,
|
||||
processing is carried out pursuant to Art. 6 para. 1 lit. b GDPR. In all other
|
||||
cases, processing is based on Art. 6 para. 1 lit. f GDPR. You have the right to
|
||||
object to this processing based on your particular situation.
|
||||
</p>
|
||||
<p>
|
||||
Your email address is used exclusively for processing your inquiry. Data is
|
||||
deleted after statutory retention periods expire, unless you have consented to
|
||||
further processing.
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="mb-10">
|
||||
<h2 class="font-mono font-medium text-lg mb-3 text-white/80">Cookies</h2>
|
||||
<div class="text-white/60 leading-relaxed space-y-3">
|
||||
<p>
|
||||
Our website uses cookies — small text files that are stored by your browser
|
||||
on your device. Cookies contain characteristic strings that enable browser
|
||||
identification upon revisiting the site.
|
||||
</p>
|
||||
<p>
|
||||
We use only technically necessary cookies to make our website user-friendly,
|
||||
effective, and secure. Some functions of the website require the browser to be
|
||||
recognized across page changes.
|
||||
</p>
|
||||
<p>
|
||||
Cookie usage is based on § 25 para. 2 TTDSG. Processing of personal data
|
||||
occurs pursuant to Art. 6 para. 1 lit. f GDPR, based on our legitimate interest
|
||||
in ensuring website functionality and an effective service design.
|
||||
</p>
|
||||
<p>
|
||||
You have the right to object to this processing based on your particular
|
||||
situation. You can manage or delete cookies at any time through your browser
|
||||
settings, though this may limit website functionality.
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="mb-10">
|
||||
<h2 class="font-mono font-medium text-lg mb-3 text-white/80">Data Subject Rights & Storage Duration</h2>
|
||||
|
||||
<h3 class="font-mono text-sm font-medium text-white/60 mb-2 mt-4">Storage Duration</h3>
|
||||
<div class="text-white/60 leading-relaxed space-y-3">
|
||||
<p>
|
||||
After complete fulfillment of the purpose, data is retained considering legal,
|
||||
tax, and commercial retention requirements, then deleted upon expiration of
|
||||
those periods, unless you have consented to further processing.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<h3 class="font-mono text-sm font-medium text-white/60 mb-2 mt-6">Your Rights</h3>
|
||||
<div class="text-white/60 leading-relaxed space-y-3">
|
||||
<p>
|
||||
Where the legal requirements are met, you have the following rights under
|
||||
Art. 15–20 GDPR: right to access, right to correction, right to deletion,
|
||||
right to restriction of processing, and right to data portability.
|
||||
</p>
|
||||
<p>
|
||||
Additionally, under Art. 21 para. 1 GDPR, you have the right to object to
|
||||
processing based on Art. 6 para. 1 lit. f GDPR, as well as to processing for
|
||||
direct marketing purposes.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<h3 class="font-mono text-sm font-medium text-white/60 mb-2 mt-6">Right to Lodge a Complaint</h3>
|
||||
<div class="text-white/60 leading-relaxed space-y-3">
|
||||
<p>
|
||||
Under Art. 77 GDPR, you have the right to lodge a complaint with the supervisory
|
||||
authority if you believe that the processing of your personal data violates the law.
|
||||
</p>
|
||||
<div class="mt-2 space-y-1">
|
||||
<p class="text-white/80 font-medium">Competent Supervisory Authority:</p>
|
||||
<p>Landesbeauftragte für den Datenschutz Niedersachsen</p>
|
||||
<p>Prinzenstraße 5</p>
|
||||
<p>30159 Hannover</p>
|
||||
<p class="mt-2">Phone: +49 511 1204500</p>
|
||||
<p>Fax: +49 511 1204599</p>
|
||||
<p>Email: poststelle@lfd.niedersachsen.de</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3 class="font-mono text-sm font-medium text-white/60 mb-2 mt-6">Right to Object</h3>
|
||||
<div class="text-white/60 leading-relaxed">
|
||||
<p>
|
||||
Where processing is based on Art. 6 para. 1 lit. f GDPR, you have the right to
|
||||
object at any time on grounds relating to your particular situation. Following
|
||||
your objection, processing will cease unless there are compelling legitimate
|
||||
grounds that override your interests, or the processing serves to assert,
|
||||
exercise, or defend legal claims.
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
<article v-if="doc" class="opacity-0 animate-fade-in prose-legal">
|
||||
<ContentRenderer :value="doc" class="legal-content" />
|
||||
</article>
|
||||
</div>
|
||||
</main>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
const route = useRoute()
|
||||
const lang = computed(() => {
|
||||
const l = route.query.lang as string
|
||||
return l === 'de' ? 'de' : 'en'
|
||||
})
|
||||
|
||||
const { data: doc } = await useAsyncData(
|
||||
() => `privacy-policy-${lang.value}`,
|
||||
() => queryCollection('legal').path(`/${lang.value}/privacy-policy`).first(),
|
||||
{ watch: [lang] },
|
||||
)
|
||||
|
||||
useHead({
|
||||
title: 'Privacy Policy – Bennet Gallein IT Solutions',
|
||||
title: computed(() => `${doc.value?.title ?? 'Privacy Policy'} – Bennet Gallein IT Solutions`),
|
||||
})
|
||||
</script>
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
import { readFile } from 'node:fs/promises'
|
||||
import { resolve } from 'node:path'
|
||||
|
||||
const VALID_DOCS = ['imprint', 'privacy-policy']
|
||||
const VALID_LOCALES = ['en', 'de']
|
||||
|
||||
export default defineEventHandler(async (event) => {
|
||||
const doc = getRouterParam(event, 'doc')
|
||||
const query = getQuery(event)
|
||||
const lang = typeof query.lang === 'string' && VALID_LOCALES.includes(query.lang)
|
||||
? query.lang
|
||||
: 'en'
|
||||
|
||||
if (!doc || !VALID_DOCS.includes(doc)) {
|
||||
throw createError({ statusCode: 404, message: `Unknown legal document: "${doc}". Valid options: ${VALID_DOCS.join(', ')}` })
|
||||
}
|
||||
|
||||
const locales = lang === 'en' ? ['en'] : [lang, 'en']
|
||||
|
||||
for (const locale of locales) {
|
||||
const filePath = resolve(process.cwd(), `content/${locale}/${doc}.md`)
|
||||
try {
|
||||
const content = await readFile(filePath, 'utf-8')
|
||||
return { locale, doc, content }
|
||||
}
|
||||
catch {}
|
||||
}
|
||||
|
||||
throw createError({ statusCode: 404, message: `Legal document "${doc}" not found` })
|
||||
})
|
||||
Reference in New Issue
Block a user