Optimierung markemacht.de und adametz.media für Live-Deploy.
Beide Sites mit lokalem Font-Hosting, WebP, Build-Pipeline, SEO-Basis, HSTS, Performance-Tuning und aktualisierten Impressum/Datenschutz-Texten. Co-authored-by: Cursor <cursoragent@cursor.com>
92
_adametz.media/.htaccess
Normal file
|
|
@ -0,0 +1,92 @@
|
|||
# ADAMETZ.MEDIA — Apache-Konfiguration (adametz.media)
|
||||
# Kanonische Domain: https://adametz.media (ohne www)
|
||||
|
||||
# ── Rewrite-Engine ────────────────────────────────────────────────────────────
|
||||
<IfModule mod_rewrite.c>
|
||||
RewriteEngine On
|
||||
RewriteBase /
|
||||
|
||||
# HTTPS erzwingen und www → non-www (301 Permanent)
|
||||
RewriteCond %{HTTPS} off [OR]
|
||||
RewriteCond %{HTTP_HOST} ^www\.adametz\.media$ [NC]
|
||||
RewriteRule ^ https://adametz.media%{REQUEST_URI} [R=301,L]
|
||||
|
||||
# Build-Skript und interne Dateien nicht öffentlich
|
||||
RewriteRule ^scripts/ - [F,L]
|
||||
RewriteRule ^assets/components/ - [F,L]
|
||||
RewriteRule ^assets/version\.txt$ - [F,L]
|
||||
</IfModule>
|
||||
|
||||
# ── Fehlerseiten ──────────────────────────────────────────────────────────────
|
||||
ErrorDocument 404 /404.html
|
||||
|
||||
# ── Verzeichnislisting deaktivieren ───────────────────────────────────────────
|
||||
Options -Indexes -MultiViews
|
||||
|
||||
# ── Standard-Dokument ─────────────────────────────────────────────────────────
|
||||
DirectoryIndex index.html
|
||||
|
||||
# ── Zeichensatz ───────────────────────────────────────────────────────────────
|
||||
AddDefaultCharset UTF-8
|
||||
|
||||
# ── MIME-Typen ────────────────────────────────────────────────────────────────
|
||||
<IfModule mod_mime.c>
|
||||
AddType image/webp .webp
|
||||
AddType image/svg+xml .svg
|
||||
AddType font/woff2 .woff2
|
||||
AddType font/woff .woff
|
||||
</IfModule>
|
||||
|
||||
# ── Kompression ───────────────────────────────────────────────────────────────
|
||||
<IfModule mod_deflate.c>
|
||||
AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml
|
||||
AddOutputFilterByType DEFLATE application/javascript application/json application/xml
|
||||
AddOutputFilterByType DEFLATE image/svg+xml font/woff2 font/woff
|
||||
</IfModule>
|
||||
|
||||
<IfModule mod_brotli.c>
|
||||
AddOutputFilterByType BROTLI_COMPRESS text/html text/plain text/css text/xml
|
||||
AddOutputFilterByType BROTLI_COMPRESS application/javascript application/json application/xml
|
||||
AddOutputFilterByType BROTLI_COMPRESS image/svg+xml font/woff2 font/woff
|
||||
</IfModule>
|
||||
|
||||
# ── Cache-Steuerung ───────────────────────────────────────────────────────────
|
||||
<IfModule mod_expires.c>
|
||||
ExpiresActive On
|
||||
ExpiresDefault "access plus 0 seconds"
|
||||
|
||||
ExpiresByType text/html "access plus 0 seconds"
|
||||
ExpiresByType text/css "access plus 7 days"
|
||||
ExpiresByType application/javascript "access plus 7 days"
|
||||
ExpiresByType image/svg+xml "access plus 7 days"
|
||||
ExpiresByType image/webp "access plus 7 days"
|
||||
ExpiresByType image/jpeg "access plus 7 days"
|
||||
ExpiresByType image/png "access plus 7 days"
|
||||
ExpiresByType font/woff2 "access plus 7 days"
|
||||
ExpiresByType font/woff "access plus 7 days"
|
||||
</IfModule>
|
||||
|
||||
<IfModule mod_headers.c>
|
||||
SetEnvIf Request_URI "^/assets/" ASSET_PATH=1
|
||||
Header set Cache-Control "public, max-age=604800, immutable" env=ASSET_PATH
|
||||
|
||||
<FilesMatch "\.(html)$">
|
||||
Header set Cache-Control "no-cache, must-revalidate"
|
||||
</FilesMatch>
|
||||
|
||||
Header always set X-Content-Type-Options "nosniff"
|
||||
Header always set X-Frame-Options "SAMEORIGIN"
|
||||
Header always set Referrer-Policy "strict-origin-when-cross-origin"
|
||||
Header always set Permissions-Policy "camera=(), microphone=(), geolocation=()"
|
||||
Header always set Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; connect-src 'self'; frame-ancestors 'self'; base-uri 'self'; form-action 'self' mailto:"
|
||||
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains" env=HTTPS
|
||||
</IfModule>
|
||||
|
||||
# ── Zugriffsschutz ────────────────────────────────────────────────────────────
|
||||
<FilesMatch "(^\.|\.md$|\.DS_Store$)">
|
||||
Require all denied
|
||||
</FilesMatch>
|
||||
|
||||
<FilesMatch "(^|/)version\.txt$">
|
||||
Require all denied
|
||||
</FilesMatch>
|
||||
162
_adametz.media/404.html
Normal file
|
|
@ -0,0 +1,162 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Seite nicht gefunden – Kevin Adametz</title>
|
||||
<meta
|
||||
name="description"
|
||||
content="Die angeforderte Seite wurde nicht gefunden."
|
||||
/>
|
||||
<meta name="robots" content="noindex" />
|
||||
|
||||
<meta property="og:title" content="Seite nicht gefunden – Kevin Adametz" />
|
||||
<meta
|
||||
property="og:description"
|
||||
content="Die angeforderte Seite wurde nicht gefunden."
|
||||
/>
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="https://adametz.media/404.html" />
|
||||
<link rel="canonical" href="https://adametz.media/" />
|
||||
<meta name="twitter:title" content="Seite nicht gefunden – Kevin Adametz" />
|
||||
<meta
|
||||
name="twitter:description"
|
||||
content="Die angeforderte Seite wurde nicht gefunden."
|
||||
/>
|
||||
|
||||
<meta property="og:locale" content="de_DE" />
|
||||
<meta property="og:site_name" content="ADAMETZ.MEDIA" />
|
||||
<meta property="og:image" content="https://adametz.media/assets/img/og-share.webp" />
|
||||
<meta property="og:image:width" content="1200" />
|
||||
<meta property="og:image:height" content="630" />
|
||||
<meta property="og:image:alt" content="Kevin Adametz — Markensysteme, die funktionieren" />
|
||||
<meta name="twitter:card" content="summary_large_image" />
|
||||
<meta name="twitter:image" content="https://adametz.media/assets/img/og-share.webp" />
|
||||
<meta name="theme-color" content="#0a0a0a" />
|
||||
|
||||
<link rel="preload" href="assets/fonts/outfit-regular.woff2" as="font" type="font/woff2" crossorigin />
|
||||
<link rel="preload" href="assets/fonts/source-sans-3-regular.woff2" as="font" type="font/woff2" crossorigin />
|
||||
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="assets/fav/apple-icon-180x180.png" />
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="assets/fav/favicon-32x32.png" />
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="assets/fav/favicon-16x16.png" />
|
||||
<link rel="shortcut icon" href="assets/fav/favicon.ico" />
|
||||
<link rel="manifest" href="manifest.json" />
|
||||
|
||||
<link rel="stylesheet" href="assets/styles.css?v=20250610" />
|
||||
<script src="assets/js/app.js?v=20250610" defer></script>
|
||||
|
||||
<script defer src="https://sys.adametz.media/config.js" data-website-id="69ec86fc-7f06-4cc5-9e2c-fd9daaae7faa"></script>
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "WebSite",
|
||||
"name": "ADAMETZ.MEDIA",
|
||||
"url": "https://adametz.media/",
|
||||
"description": "Markensysteme für Unternehmen, die sich klar erklären wollen – von der Strategie bis zur Umsetzung.",
|
||||
"inLanguage": "de-DE"
|
||||
}
|
||||
</script>
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "Person",
|
||||
"name": "Kevin Adametz",
|
||||
"jobTitle": "Markenarchitekt",
|
||||
"url": "https://adametz.media/",
|
||||
"email": "info@adametz.media",
|
||||
"telephone": "+49-5206-7076721",
|
||||
"address": {
|
||||
"@type": "PostalAddress",
|
||||
"streetAddress": "In der Lake 4",
|
||||
"addressLocality": "Bielefeld",
|
||||
"postalCode": "33739",
|
||||
"addressCountry": "DE"
|
||||
},
|
||||
"worksFor": {
|
||||
"@type": "Organization",
|
||||
"name": "ADAMETZ.MEDIA"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<a class="skip-link" href="#main">Zum Inhalt springen</a>
|
||||
|
||||
<nav class="nav" id="nav" aria-label="Hauptnavigation">
|
||||
<div class="container">
|
||||
<div class="nav-inner">
|
||||
<a href="index.html" class="nav-logo">
|
||||
<img
|
||||
src="assets/img/logo.png"
|
||||
alt="Adametz.Media Logo"
|
||||
class="nav-logo-img"
|
||||
width="252"
|
||||
height="160"
|
||||
decoding="async"
|
||||
/>
|
||||
Adametz.Media
|
||||
</a>
|
||||
|
||||
<ul class="nav-links">
|
||||
<li><a href="index.html#start">Start</a></li>
|
||||
<li><a href="index.html#haltung">Haltung</a></li>
|
||||
<li><a href="index.html#umsetzung">Umsetzung</a></li>
|
||||
<li><a href="index.html#projekte">Evidenz</a></li>
|
||||
<li><a href="index.html#kontakt">Kontakt</a></li>
|
||||
</ul>
|
||||
|
||||
<button
|
||||
class="nav-toggle"
|
||||
id="navToggle"
|
||||
aria-label="Menü öffnen"
|
||||
aria-controls="navMobile"
|
||||
aria-expanded="false"
|
||||
>
|
||||
<span></span>
|
||||
<span></span>
|
||||
<span></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div class="nav-mobile" id="navMobile">
|
||||
<a href="index.html#start">Start</a>
|
||||
<a href="index.html#haltung">Haltung</a>
|
||||
<a href="index.html#umsetzung">Umsetzung</a>
|
||||
<a href="index.html#projekte">Evidenz</a>
|
||||
<a href="index.html#kontakt">Kontakt</a>
|
||||
</div>
|
||||
|
||||
<section class="content-section" id="main">
|
||||
<div class="container">
|
||||
<div class="content-wrapper">
|
||||
<h1>Seite nicht gefunden</h1>
|
||||
<p>
|
||||
Die angeforderte Seite existiert nicht oder wurde verschoben.
|
||||
</p>
|
||||
<p>
|
||||
<a href="index.html" class="btn">
|
||||
Zur Startseite
|
||||
<span class="btn-arrow">→</span>
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<footer class="footer">
|
||||
<div class="container">
|
||||
<div class="footer-inner">
|
||||
<p class="footer-copy">© 2026 ADAMETZ.MEDIA – Kevin Adametz</p>
|
||||
<div class="footer-links">
|
||||
<a href="impressum.html">Impressum</a>
|
||||
<a href="datenschutz.html">Datenschutz</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
186
_adametz.media/DEPLOYMENT.md
Normal file
|
|
@ -0,0 +1,186 @@
|
|||
# Live-Deployment — adametz.media
|
||||
|
||||
Kurzanleitung für den Upload auf den Produktionsserver (Apache + `.htaccess`).
|
||||
|
||||
---
|
||||
|
||||
## Server-Anforderungen
|
||||
|
||||
| Komponente | Erforderlich |
|
||||
|------------|--------------|
|
||||
| **Webserver** | Apache mit `mod_rewrite`, `mod_headers`, `mod_expires`, `mod_deflate` |
|
||||
| **PHP** | Nicht erforderlich (reine Static-Site) |
|
||||
| **HTTPS** | Pflicht — wird per `.htaccess` erzwungen |
|
||||
| **Optional** | `mod_brotli` (zusätzliche Kompression) |
|
||||
|
||||
Domain: **https://adametz.media** (ohne `www`).
|
||||
|
||||
---
|
||||
|
||||
## Deploy-Ablauf (Checkliste)
|
||||
|
||||
### 1. Vor dem Upload (lokal)
|
||||
|
||||
```bash
|
||||
cd _adametz.media
|
||||
|
||||
# Bei CSS/JS-Änderungen: Version erhöhen
|
||||
# → assets/version.txt (z. B. 20250610)
|
||||
|
||||
# Head, Header, Footer in alle HTML-Seiten einspielen
|
||||
python3 scripts/build-site.py
|
||||
```
|
||||
|
||||
### 2. Auf den Server hochladen
|
||||
|
||||
Document Root = Inhalt von `_adametz.media/` (alle Dateien im Root der Domain).
|
||||
|
||||
### 3. Kurz testen
|
||||
|
||||
- [ ] https://adametz.media/ lädt korrekt
|
||||
- [ ] Hero-Bild und Scroll-Reveal funktionieren
|
||||
- [ ] Mobile Navigation öffnet und schließt
|
||||
- [ ] https://adametz.media/robots.txt erreichbar
|
||||
- [ ] https://adametz.media/sitemap.xml erreichbar
|
||||
- [ ] Ungültige URL zeigt `404.html`
|
||||
- [ ] `mailto:`- und `tel:`-Links funktionieren
|
||||
|
||||
---
|
||||
|
||||
## Was hochladen — was nicht
|
||||
|
||||
### Mit hochladen
|
||||
|
||||
- Alle `*.html` im Root (inkl. `404.html`)
|
||||
- `.htaccess`
|
||||
- `robots.txt`, `sitemap.xml`, `manifest.json`, `browserconfig.xml`
|
||||
- `assets/` (css, js, fonts, img, fav, components)
|
||||
|
||||
### Nicht öffentlich / nicht nötig
|
||||
|
||||
| Pfad | Grund |
|
||||
|------|--------|
|
||||
| `scripts/` | Build-Skript — wird per `.htaccess` blockiert |
|
||||
| `assets/version.txt` | Nur für Build — wird blockiert |
|
||||
| `*.md` | Werden per `.htaccess` blockiert |
|
||||
| `.DS_Store` | Werden blockiert |
|
||||
| Ungenutzte PNG/JPG-Originale in `assets/img/` | Nicht deployen — nur WebP-Varianten ausliefern |
|
||||
| `assets/manifest.json` | Gelöscht — nur Root-`manifest.json` nutzen |
|
||||
|
||||
---
|
||||
|
||||
## Build-Workflow
|
||||
|
||||
Die Site nutzt ein einfaches Build-Skript analog zu markemacht.de:
|
||||
|
||||
```
|
||||
assets/components/
|
||||
head-common.html → Favicons, OG-Bild, JSON-LD, CSS/JS mit Cache-Busting
|
||||
header-index.html → Navigation für Startseite (Anker-Links)
|
||||
header-sub.html → Navigation für Unterseiten
|
||||
footer.html → Footer
|
||||
|
||||
scripts/build-site.py → Inlined Komponenten in alle *.html
|
||||
assets/version.txt → Versionsnummer für ?v= Cache-Busting
|
||||
```
|
||||
|
||||
**Nach jeder Änderung an Komponenten oder version.txt:**
|
||||
|
||||
```bash
|
||||
python3 scripts/build-site.py
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Bilder
|
||||
|
||||
Genutzte Bilder liegen als **WebP** in `assets/img/`:
|
||||
|
||||
| Datei | Verwendung | Größe (ca.) |
|
||||
|-------|------------|-------------|
|
||||
| `hero-bg2.webp` | Hero-Hintergrund (LCP) | ~91 KB |
|
||||
| `og-share.webp` | Social-Media-Vorschau | ~49 KB |
|
||||
| `haltung-*.webp` | Haltung-Sektion | ~11–18 KB |
|
||||
| `umsetzung-*.webp` | Umsetzung-Sektion | ~24–54 KB |
|
||||
| `case-*.webp` | Evidenz-Sektion | ~10–62 KB |
|
||||
| `am.webp` | Hero-Portrait | ~2 KB |
|
||||
| `back.webp` | Kontakt-Portrait | ~19 KB |
|
||||
| `logo.png` | Logo (klein, PNG) | ~8 KB |
|
||||
|
||||
**Neue Bilder hinzufügen:**
|
||||
|
||||
```bash
|
||||
# Beispiel: PNG → WebP mit ffmpeg
|
||||
ffmpeg -y -i neues-bild.png -vf "scale=800:-2" -c:v libwebp -quality 80 neues-bild.webp
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Schriften
|
||||
|
||||
Alle Schriften sind lokal gehostet (`assets/fonts/`):
|
||||
|
||||
- **Outfit** (400, 500, 600, 700) — Headlines
|
||||
- **Source Sans 3** (400, 500, 600) — Fließtext
|
||||
|
||||
Keine externen Font-Requests (kein Google Fonts).
|
||||
|
||||
---
|
||||
|
||||
## SEO
|
||||
|
||||
| Datei | Inhalt |
|
||||
|-------|--------|
|
||||
| `robots.txt` | Crawler-Regeln + Sitemap-Verweis |
|
||||
| `sitemap.xml` | 3 URLs: `/`, `/impressum.html`, `/datenschutz.html` |
|
||||
| JSON-LD | `WebSite` + `Person` auf allen Seiten (via head-common) |
|
||||
| `og-share.webp` | Dediziertes OG-Bild (1200×630) |
|
||||
|
||||
---
|
||||
|
||||
## Apache-Konfiguration (`.htaccess`)
|
||||
|
||||
Die `.htaccess` enthält:
|
||||
|
||||
- HTTPS + www→non-www Redirect (301)
|
||||
- `ErrorDocument 404 /404.html`
|
||||
- Gzip + Brotli-Kompression
|
||||
- Cache-Steuerung: HTML frisch, Assets 7 Tage (mit `?v=` Cache-Busting)
|
||||
- Security-Headers (CSP, X-Frame-Options, etc.)
|
||||
- Schutz für `scripts/`, `version.txt`, `.md`, `.DS_Store`
|
||||
|
||||
**CSP:** Keine externen Skripte — `script-src 'self'` only.
|
||||
|
||||
---
|
||||
|
||||
## Wartung
|
||||
|
||||
### CSS/JS geändert?
|
||||
|
||||
1. `assets/version.txt` erhöhen (z. B. `20250610`)
|
||||
2. `python3 scripts/build-site.py` ausführen
|
||||
3. Geänderte Dateien hochladen
|
||||
|
||||
### Navigation/Footer geändert?
|
||||
|
||||
1. Komponente in `assets/components/` bearbeiten
|
||||
2. `python3 scripts/build-site.py` ausführen
|
||||
3. Alle HTML-Dateien hochladen
|
||||
|
||||
### Neues Bild?
|
||||
|
||||
1. WebP erstellen und in `assets/img/` ablegen
|
||||
2. HTML referenzieren (oder Build-Skript anpassen)
|
||||
3. Hochladen
|
||||
|
||||
---
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
| Problem | Lösung |
|
||||
|---------|--------|
|
||||
| Altes CSS nach Update | `version.txt` erhöhen + Build ausführen |
|
||||
| 404 zeigt Server-Default | `.htaccess` prüfen, `mod_rewrite` aktiv? |
|
||||
| Bilder laden nicht | WebP-Dateien hochgeladen? `mod_mime` für `.webp`? |
|
||||
| Redirect-Loop | HTTPS-Zertifikat und `RewriteBase /` prüfen |
|
||||
| Header fehlt auf Unterseite | `build-site.py` erneut ausführen |
|
||||
BIN
_adametz.media/assets/android-icon-144x144.png
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
BIN
_adametz.media/assets/android-icon-192x192.png
Normal file
|
After Width: | Height: | Size: 6.9 KiB |
BIN
_adametz.media/assets/android-icon-36x36.png
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
_adametz.media/assets/android-icon-48x48.png
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
BIN
_adametz.media/assets/android-icon-72x72.png
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
_adametz.media/assets/android-icon-96x96.png
Normal file
|
After Width: | Height: | Size: 3.7 KiB |
11
_adametz.media/assets/components/footer.html
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
<footer class="footer">
|
||||
<div class="container">
|
||||
<div class="footer-inner">
|
||||
<p class="footer-copy">© 2026 ADAMETZ.MEDIA – Kevin Adametz</p>
|
||||
<div class="footer-links">
|
||||
<a href="impressum.html">Impressum</a>
|
||||
<a href="datenschutz.html">Datenschutz</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
56
_adametz.media/assets/components/head-common.html
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
<meta property="og:locale" content="de_DE" />
|
||||
<meta property="og:site_name" content="ADAMETZ.MEDIA" />
|
||||
<meta property="og:image" content="https://adametz.media/assets/img/og-share.webp" />
|
||||
<meta property="og:image:width" content="1200" />
|
||||
<meta property="og:image:height" content="630" />
|
||||
<meta property="og:image:alt" content="Kevin Adametz — Markensysteme, die funktionieren" />
|
||||
<meta name="twitter:card" content="summary_large_image" />
|
||||
<meta name="twitter:image" content="https://adametz.media/assets/img/og-share.webp" />
|
||||
<meta name="theme-color" content="#0a0a0a" />
|
||||
|
||||
<link rel="preload" href="assets/fonts/outfit-regular.woff2" as="font" type="font/woff2" crossorigin />
|
||||
<link rel="preload" href="assets/fonts/source-sans-3-regular.woff2" as="font" type="font/woff2" crossorigin />
|
||||
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="assets/fav/apple-icon-180x180.png" />
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="assets/fav/favicon-32x32.png" />
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="assets/fav/favicon-16x16.png" />
|
||||
<link rel="shortcut icon" href="assets/fav/favicon.ico" />
|
||||
<link rel="manifest" href="manifest.json" />
|
||||
|
||||
<link rel="stylesheet" href="assets/styles.css?v={{VERSION}}" />
|
||||
<script src="assets/js/app.js?v={{VERSION}}" defer></script>
|
||||
|
||||
<script defer src="https://sys.adametz.media/config.js" data-website-id="69ec86fc-7f06-4cc5-9e2c-fd9daaae7faa"></script>
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "WebSite",
|
||||
"name": "ADAMETZ.MEDIA",
|
||||
"url": "https://adametz.media/",
|
||||
"description": "Markensysteme für Unternehmen, die sich klar erklären wollen – von der Strategie bis zur Umsetzung.",
|
||||
"inLanguage": "de-DE"
|
||||
}
|
||||
</script>
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "Person",
|
||||
"name": "Kevin Adametz",
|
||||
"jobTitle": "Markenarchitekt",
|
||||
"url": "https://adametz.media/",
|
||||
"email": "info@adametz.media",
|
||||
"telephone": "+49-5206-7076721",
|
||||
"address": {
|
||||
"@type": "PostalAddress",
|
||||
"streetAddress": "In der Lake 4",
|
||||
"addressLocality": "Bielefeld",
|
||||
"postalCode": "33739",
|
||||
"addressCountry": "DE"
|
||||
},
|
||||
"worksFor": {
|
||||
"@type": "Organization",
|
||||
"name": "ADAMETZ.MEDIA"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
47
_adametz.media/assets/components/header-index.html
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
<a class="skip-link" href="#start">Zum Inhalt springen</a>
|
||||
|
||||
<nav class="nav" id="nav" aria-label="Hauptnavigation">
|
||||
<div class="container">
|
||||
<div class="nav-inner">
|
||||
<a href="#start" class="nav-logo">
|
||||
<img
|
||||
src="assets/img/logo.png"
|
||||
alt="Adametz.Media Logo"
|
||||
class="nav-logo-img"
|
||||
width="252"
|
||||
height="160"
|
||||
decoding="async"
|
||||
/>
|
||||
Adametz.Media
|
||||
</a>
|
||||
|
||||
<ul class="nav-links">
|
||||
<li><a href="#start">Start</a></li>
|
||||
<li><a href="#haltung">Haltung</a></li>
|
||||
<li><a href="#umsetzung">Umsetzung</a></li>
|
||||
<li><a href="#projekte">Evidenz</a></li>
|
||||
<li><a href="#kontakt">Kontakt</a></li>
|
||||
</ul>
|
||||
|
||||
<button
|
||||
class="nav-toggle"
|
||||
id="navToggle"
|
||||
aria-label="Menü öffnen"
|
||||
aria-controls="navMobile"
|
||||
aria-expanded="false"
|
||||
>
|
||||
<span></span>
|
||||
<span></span>
|
||||
<span></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div class="nav-mobile" id="navMobile">
|
||||
<a href="#start">Start</a>
|
||||
<a href="#haltung">Haltung</a>
|
||||
<a href="#umsetzung">Umsetzung</a>
|
||||
<a href="#projekte">Evidenz</a>
|
||||
<a href="#kontakt">Kontakt</a>
|
||||
</div>
|
||||
47
_adametz.media/assets/components/header-sub.html
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
<a class="skip-link" href="#main">Zum Inhalt springen</a>
|
||||
|
||||
<nav class="nav" id="nav" aria-label="Hauptnavigation">
|
||||
<div class="container">
|
||||
<div class="nav-inner">
|
||||
<a href="index.html" class="nav-logo">
|
||||
<img
|
||||
src="assets/img/logo.png"
|
||||
alt="Adametz.Media Logo"
|
||||
class="nav-logo-img"
|
||||
width="252"
|
||||
height="160"
|
||||
decoding="async"
|
||||
/>
|
||||
Adametz.Media
|
||||
</a>
|
||||
|
||||
<ul class="nav-links">
|
||||
<li><a href="index.html#start">Start</a></li>
|
||||
<li><a href="index.html#haltung">Haltung</a></li>
|
||||
<li><a href="index.html#umsetzung">Umsetzung</a></li>
|
||||
<li><a href="index.html#projekte">Evidenz</a></li>
|
||||
<li><a href="index.html#kontakt">Kontakt</a></li>
|
||||
</ul>
|
||||
|
||||
<button
|
||||
class="nav-toggle"
|
||||
id="navToggle"
|
||||
aria-label="Menü öffnen"
|
||||
aria-controls="navMobile"
|
||||
aria-expanded="false"
|
||||
>
|
||||
<span></span>
|
||||
<span></span>
|
||||
<span></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div class="nav-mobile" id="navMobile">
|
||||
<a href="index.html#start">Start</a>
|
||||
<a href="index.html#haltung">Haltung</a>
|
||||
<a href="index.html#umsetzung">Umsetzung</a>
|
||||
<a href="index.html#projekte">Evidenz</a>
|
||||
<a href="index.html#kontakt">Kontakt</a>
|
||||
</div>
|
||||
BIN
_adametz.media/assets/fav/apple-icon-114x114.png
Normal file
|
After Width: | Height: | Size: 4.5 KiB |
BIN
_adametz.media/assets/fav/apple-icon-120x120.png
Normal file
|
After Width: | Height: | Size: 4.7 KiB |
BIN
_adametz.media/assets/fav/apple-icon-144x144.png
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
BIN
_adametz.media/assets/fav/apple-icon-152x152.png
Normal file
|
After Width: | Height: | Size: 6.2 KiB |
BIN
_adametz.media/assets/fav/apple-icon-180x180.png
Normal file
|
After Width: | Height: | Size: 7.7 KiB |
BIN
_adametz.media/assets/fav/apple-icon-57x57.png
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
BIN
_adametz.media/assets/fav/apple-icon-60x60.png
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
BIN
_adametz.media/assets/fav/apple-icon-72x72.png
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
_adametz.media/assets/fav/apple-icon-76x76.png
Normal file
|
After Width: | Height: | Size: 3.3 KiB |
BIN
_adametz.media/assets/fav/apple-icon-precomposed.png
Normal file
|
After Width: | Height: | Size: 7.5 KiB |
BIN
_adametz.media/assets/fav/apple-icon.png
Normal file
|
After Width: | Height: | Size: 7.5 KiB |
BIN
_adametz.media/assets/fav/favicon-16x16.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
_adametz.media/assets/fav/favicon-32x32.png
Normal file
|
After Width: | Height: | Size: 2 KiB |
BIN
_adametz.media/assets/fav/favicon-96x96.png
Normal file
|
After Width: | Height: | Size: 3.7 KiB |
BIN
_adametz.media/assets/fav/favicon.ico
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
_adametz.media/assets/fav/ms-icon-144x144.png
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
BIN
_adametz.media/assets/fav/ms-icon-150x150.png
Normal file
|
After Width: | Height: | Size: 6.2 KiB |
BIN
_adametz.media/assets/fav/ms-icon-310x310.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
_adametz.media/assets/fav/ms-icon-70x70.png
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
41
_adametz.media/assets/fonts/README.md
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
# Font-Dateien
|
||||
|
||||
Dieser Ordner sollte die folgenden Font-Dateien enthalten:
|
||||
|
||||
## Outfit Font (4 Varianten)
|
||||
|
||||
- `outfit-regular.woff2` (Font-Weight: 400)
|
||||
- `outfit-regular.woff` (Font-Weight: 400)
|
||||
- `outfit-medium.woff2` (Font-Weight: 500)
|
||||
- `outfit-medium.woff` (Font-Weight: 500)
|
||||
- `outfit-semibold.woff2` (Font-Weight: 600)
|
||||
- `outfit-semibold.woff` (Font-Weight: 600)
|
||||
- `outfit-bold.woff2` (Font-Weight: 700)
|
||||
- `outfit-bold.woff` (Font-Weight: 700)
|
||||
|
||||
## Source Sans 3 Font (3 Varianten)
|
||||
|
||||
- `source-sans-3-regular.woff2` (Font-Weight: 400)
|
||||
- `source-sans-3-regular.woff` (Font-Weight: 400)
|
||||
- `source-sans-3-medium.woff2` (Font-Weight: 500)
|
||||
- `source-sans-3-medium.woff` (Font-Weight: 500)
|
||||
- `source-sans-3-semibold.woff2` (Font-Weight: 600)
|
||||
- `source-sans-3-semibold.woff` (Font-Weight: 600)
|
||||
|
||||
## Fonts herunterladen
|
||||
|
||||
Die Fonts können von folgenden Quellen heruntergeladen werden:
|
||||
|
||||
1. **Google Fonts** (https://fonts.google.com/):
|
||||
|
||||
- Outfit: https://fonts.google.com/specimen/Outfit
|
||||
- Source Sans 3: https://fonts.google.com/specimen/Source+Sans+3
|
||||
|
||||
2. **Alternative Tools zum Herunterladen**:
|
||||
|
||||
- Google Webfonts Helper: https://gwfh.mranftl.com/fonts
|
||||
- Fontsquirrel: https://www.fontsquirrel.com/
|
||||
|
||||
3. **Direkter Download** (mit Tools wie `google-webfonts-helper` oder Browser-Erweiterungen)
|
||||
|
||||
Die Fonts müssen im WOFF2- und WOFF-Format vorliegen für optimale Browser-Kompatibilität.
|
||||
BIN
_adametz.media/assets/fonts/outfit-500.woff2
Normal file
BIN
_adametz.media/assets/fonts/outfit-600.woff2
Normal file
BIN
_adametz.media/assets/fonts/outfit-700.woff2
Normal file
BIN
_adametz.media/assets/fonts/outfit-regular.woff2
Normal file
BIN
_adametz.media/assets/fonts/source-sans-3-500.woff2
Normal file
BIN
_adametz.media/assets/fonts/source-sans-3-600.woff2
Normal file
BIN
_adametz.media/assets/fonts/source-sans-3-700.woff2
Normal file
BIN
_adametz.media/assets/fonts/source-sans-3-regular.woff2
Normal file
BIN
_adametz.media/assets/img/am.jpg
Normal file
|
After Width: | Height: | Size: 340 KiB |
BIN
_adametz.media/assets/img/am.webp
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
_adametz.media/assets/img/back.jpg
Normal file
|
After Width: | Height: | Size: 349 KiB |
BIN
_adametz.media/assets/img/back.webp
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
_adametz.media/assets/img/case-1.png
Normal file
|
After Width: | Height: | Size: 1.8 MiB |
BIN
_adametz.media/assets/img/case-1.webp
Normal file
|
After Width: | Height: | Size: 61 KiB |
BIN
_adametz.media/assets/img/case-2.png
Normal file
|
After Width: | Height: | Size: 1.3 MiB |
BIN
_adametz.media/assets/img/case-2.webp
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
_adametz.media/assets/img/case-3.png
Normal file
|
After Width: | Height: | Size: 1.4 MiB |
BIN
_adametz.media/assets/img/case-3.webp
Normal file
|
After Width: | Height: | Size: 35 KiB |
BIN
_adametz.media/assets/img/case-4.png
Normal file
|
After Width: | Height: | Size: 1.5 MiB |
BIN
_adametz.media/assets/img/case-4.webp
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
_adametz.media/assets/img/case-5.png
Normal file
|
After Width: | Height: | Size: 900 KiB |
BIN
_adametz.media/assets/img/case-5.webp
Normal file
|
After Width: | Height: | Size: 9.5 KiB |
BIN
_adametz.media/assets/img/haltung-1.png
Normal file
|
After Width: | Height: | Size: 2 MiB |
BIN
_adametz.media/assets/img/haltung-1.webp
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
_adametz.media/assets/img/haltung-11.png
Normal file
|
After Width: | Height: | Size: 1.8 MiB |
BIN
_adametz.media/assets/img/haltung-2.png
Normal file
|
After Width: | Height: | Size: 1.4 MiB |
BIN
_adametz.media/assets/img/haltung-2.webp
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
_adametz.media/assets/img/haltung-3.png
Normal file
|
After Width: | Height: | Size: 1.1 MiB |
BIN
_adametz.media/assets/img/haltung-3.webp
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
_adametz.media/assets/img/haltung-4.png
Normal file
|
After Width: | Height: | Size: 1.6 MiB |
BIN
_adametz.media/assets/img/haltung-4.webp
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
_adametz.media/assets/img/hero-bg.png
Normal file
|
After Width: | Height: | Size: 1.6 MiB |
BIN
_adametz.media/assets/img/hero-bg1.png
Normal file
|
After Width: | Height: | Size: 1.7 MiB |
BIN
_adametz.media/assets/img/hero-bg2-640.webp
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
_adametz.media/assets/img/hero-bg2-960.webp
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
_adametz.media/assets/img/hero-bg2.png
Normal file
|
After Width: | Height: | Size: 1.4 MiB |
BIN
_adametz.media/assets/img/hero-bg2.webp
Normal file
|
After Width: | Height: | Size: 91 KiB |
BIN
_adametz.media/assets/img/logo-dark-1.png
Normal file
|
After Width: | Height: | Size: 9.3 KiB |
BIN
_adametz.media/assets/img/logo-dark.png
Executable file
|
After Width: | Height: | Size: 4.7 KiB |
BIN
_adametz.media/assets/img/logo-footer-dark.png
Normal file
|
After Width: | Height: | Size: 9.2 KiB |
BIN
_adametz.media/assets/img/logo.png
Executable file
|
After Width: | Height: | Size: 4.5 KiB |
BIN
_adametz.media/assets/img/og-share.webp
Normal file
|
After Width: | Height: | Size: 49 KiB |
BIN
_adametz.media/assets/img/umsetzung-1.png
Normal file
|
After Width: | Height: | Size: 1.3 MiB |
BIN
_adametz.media/assets/img/umsetzung-1.webp
Normal file
|
After Width: | Height: | Size: 48 KiB |
BIN
_adametz.media/assets/img/umsetzung-11.png
Normal file
|
After Width: | Height: | Size: 1.1 MiB |
BIN
_adametz.media/assets/img/umsetzung-2.png
Normal file
|
After Width: | Height: | Size: 1.1 MiB |
BIN
_adametz.media/assets/img/umsetzung-2.webp
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
_adametz.media/assets/img/umsetzung-3.png
Normal file
|
After Width: | Height: | Size: 1.6 MiB |
BIN
_adametz.media/assets/img/umsetzung-3.webp
Normal file
|
After Width: | Height: | Size: 53 KiB |
BIN
_adametz.media/assets/img/umsetzung-31.png
Normal file
|
After Width: | Height: | Size: 1.4 MiB |
72
_adametz.media/assets/js/app.js
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
(function () {
|
||||
'use strict';
|
||||
|
||||
var nav = document.getElementById('nav');
|
||||
var navToggle = document.getElementById('navToggle');
|
||||
var navMobile = document.getElementById('navMobile');
|
||||
|
||||
/* Navigation scroll effect */
|
||||
if (nav) {
|
||||
var scrolled = false;
|
||||
window.addEventListener(
|
||||
'scroll',
|
||||
function () {
|
||||
var shouldScroll = window.scrollY > 100;
|
||||
if (shouldScroll === scrolled) return;
|
||||
scrolled = shouldScroll;
|
||||
nav.classList.toggle('scrolled', scrolled);
|
||||
},
|
||||
{ passive: true }
|
||||
);
|
||||
}
|
||||
|
||||
/* Mobile menu */
|
||||
if (navToggle && navMobile) {
|
||||
navToggle.addEventListener('click', function () {
|
||||
var isOpen = navMobile.classList.toggle('active');
|
||||
navToggle.setAttribute('aria-expanded', isOpen ? 'true' : 'false');
|
||||
});
|
||||
|
||||
navMobile.querySelectorAll('a').forEach(function (link) {
|
||||
link.addEventListener('click', function () {
|
||||
navMobile.classList.remove('active');
|
||||
navToggle.setAttribute('aria-expanded', 'false');
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/* Scroll reveal via IntersectionObserver */
|
||||
var reveals = document.querySelectorAll('.reveal');
|
||||
if (reveals.length && 'IntersectionObserver' in window) {
|
||||
var observer = new IntersectionObserver(
|
||||
function (entries) {
|
||||
entries.forEach(function (entry) {
|
||||
if (entry.isIntersecting) {
|
||||
entry.target.classList.add('active');
|
||||
observer.unobserve(entry.target);
|
||||
}
|
||||
});
|
||||
},
|
||||
{ rootMargin: '0px 0px -80px 0px', threshold: 0.05 }
|
||||
);
|
||||
reveals.forEach(function (el) {
|
||||
observer.observe(el);
|
||||
});
|
||||
} else {
|
||||
reveals.forEach(function (el) {
|
||||
el.classList.add('active');
|
||||
});
|
||||
}
|
||||
|
||||
/* Smooth scroll for anchor links */
|
||||
document.querySelectorAll('a[href^="#"]').forEach(function (anchor) {
|
||||
anchor.addEventListener('click', function (e) {
|
||||
var href = this.getAttribute('href');
|
||||
if (!href || href === '#') return;
|
||||
var target = document.querySelector(href);
|
||||
if (!target) return;
|
||||
e.preventDefault();
|
||||
target.scrollIntoView({ behavior: 'smooth', block: 'start' });
|
||||
});
|
||||
});
|
||||
})();
|
||||
1200
_adametz.media/assets/styles.css
Normal file
1
_adametz.media/assets/version.txt
Normal file
|
|
@ -0,0 +1 @@
|
|||
20250610
|
||||
2
_adametz.media/browserconfig.xml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<browserconfig><msapplication><tile><square70x70logo src="/assets/fav/ms-icon-70x70.png"/><square150x150logo src="/assets/fav/ms-icon-150x150.png"/><square310x310logo src="/assets/fav/ms-icon-310x310.png"/><TileColor>#0a0a0a</TileColor></tile></msapplication></browserconfig>
|
||||
500
_adametz.media/datenschutz.html
Normal file
|
|
@ -0,0 +1,500 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Datenschutzerklärung – Kevin Adametz</title>
|
||||
<meta
|
||||
name="description"
|
||||
content="Datenschutzerklärung von ADAMETZ.MEDIA mit Informationen zu Hosting, Server-Logs, Kontakt und Analyse."
|
||||
/>
|
||||
<meta name="author" content="Kevin Adametz" />
|
||||
<meta name="robots" content="index, follow" />
|
||||
|
||||
<meta property="og:title" content="Datenschutzerklärung – Kevin Adametz" />
|
||||
<meta
|
||||
property="og:description"
|
||||
content="Datenschutzerklärung von ADAMETZ.MEDIA mit Informationen zu Hosting, Server-Logs, Kontakt und Analyse."
|
||||
/>
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="https://adametz.media/datenschutz.html" />
|
||||
<link rel="canonical" href="https://adametz.media/datenschutz.html" />
|
||||
<meta name="twitter:title" content="Datenschutzerklärung – Kevin Adametz" />
|
||||
<meta
|
||||
name="twitter:description"
|
||||
content="Datenschutzerklärung von ADAMETZ.MEDIA mit Informationen zu Hosting, Server-Logs, Kontakt und Analyse."
|
||||
/>
|
||||
|
||||
<meta property="og:locale" content="de_DE" />
|
||||
<meta property="og:site_name" content="ADAMETZ.MEDIA" />
|
||||
<meta property="og:image" content="https://adametz.media/assets/img/og-share.webp" />
|
||||
<meta property="og:image:width" content="1200" />
|
||||
<meta property="og:image:height" content="630" />
|
||||
<meta property="og:image:alt" content="Kevin Adametz — Markensysteme, die funktionieren" />
|
||||
<meta name="twitter:card" content="summary_large_image" />
|
||||
<meta name="twitter:image" content="https://adametz.media/assets/img/og-share.webp" />
|
||||
<meta name="theme-color" content="#0a0a0a" />
|
||||
|
||||
<link rel="preload" href="assets/fonts/outfit-regular.woff2" as="font" type="font/woff2" crossorigin />
|
||||
<link rel="preload" href="assets/fonts/source-sans-3-regular.woff2" as="font" type="font/woff2" crossorigin />
|
||||
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="assets/fav/apple-icon-180x180.png" />
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="assets/fav/favicon-32x32.png" />
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="assets/fav/favicon-16x16.png" />
|
||||
<link rel="shortcut icon" href="assets/fav/favicon.ico" />
|
||||
<link rel="manifest" href="manifest.json" />
|
||||
|
||||
<link rel="stylesheet" href="assets/styles.css?v=20250610" />
|
||||
<script src="assets/js/app.js?v=20250610" defer></script>
|
||||
|
||||
<script defer src="https://sys.adametz.media/config.js" data-website-id="69ec86fc-7f06-4cc5-9e2c-fd9daaae7faa"></script>
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "WebSite",
|
||||
"name": "ADAMETZ.MEDIA",
|
||||
"url": "https://adametz.media/",
|
||||
"description": "Markensysteme für Unternehmen, die sich klar erklären wollen – von der Strategie bis zur Umsetzung.",
|
||||
"inLanguage": "de-DE"
|
||||
}
|
||||
</script>
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "Person",
|
||||
"name": "Kevin Adametz",
|
||||
"jobTitle": "Markenarchitekt",
|
||||
"url": "https://adametz.media/",
|
||||
"email": "info@adametz.media",
|
||||
"telephone": "+49-5206-7076721",
|
||||
"address": {
|
||||
"@type": "PostalAddress",
|
||||
"streetAddress": "In der Lake 4",
|
||||
"addressLocality": "Bielefeld",
|
||||
"postalCode": "33739",
|
||||
"addressCountry": "DE"
|
||||
},
|
||||
"worksFor": {
|
||||
"@type": "Organization",
|
||||
"name": "ADAMETZ.MEDIA"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<a class="skip-link" href="#main">Zum Inhalt springen</a>
|
||||
|
||||
<nav class="nav" id="nav" aria-label="Hauptnavigation">
|
||||
<div class="container">
|
||||
<div class="nav-inner">
|
||||
<a href="index.html" class="nav-logo">
|
||||
<img
|
||||
src="assets/img/logo.png"
|
||||
alt="Adametz.Media Logo"
|
||||
class="nav-logo-img"
|
||||
width="252"
|
||||
height="160"
|
||||
decoding="async"
|
||||
/>
|
||||
Adametz.Media
|
||||
</a>
|
||||
|
||||
<ul class="nav-links">
|
||||
<li><a href="index.html#start">Start</a></li>
|
||||
<li><a href="index.html#haltung">Haltung</a></li>
|
||||
<li><a href="index.html#umsetzung">Umsetzung</a></li>
|
||||
<li><a href="index.html#projekte">Evidenz</a></li>
|
||||
<li><a href="index.html#kontakt">Kontakt</a></li>
|
||||
</ul>
|
||||
|
||||
<button
|
||||
class="nav-toggle"
|
||||
id="navToggle"
|
||||
aria-label="Menü öffnen"
|
||||
aria-controls="navMobile"
|
||||
aria-expanded="false"
|
||||
>
|
||||
<span></span>
|
||||
<span></span>
|
||||
<span></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div class="nav-mobile" id="navMobile">
|
||||
<a href="index.html#start">Start</a>
|
||||
<a href="index.html#haltung">Haltung</a>
|
||||
<a href="index.html#umsetzung">Umsetzung</a>
|
||||
<a href="index.html#projekte">Evidenz</a>
|
||||
<a href="index.html#kontakt">Kontakt</a>
|
||||
</div>
|
||||
|
||||
<section class="content-section" id="main">
|
||||
<div class="container">
|
||||
<div class="content-wrapper">
|
||||
<h1>Datenschutzerklärung</h1>
|
||||
<p>
|
||||
Informationen dazu, welche personenbezogenen Daten beim Besuch dieser Website
|
||||
verarbeitet werden.
|
||||
</p>
|
||||
|
||||
<h3>1. Datenschutz auf einen Blick</h3>
|
||||
<h4>Allgemeine Hinweise</h4>
|
||||
<p>
|
||||
Die folgenden Hinweise geben einen einfachen Überblick darüber, was mit Ihren
|
||||
personenbezogenen Daten passiert, wenn Sie unsere 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.
|
||||
</p>
|
||||
|
||||
<h4>Datenerfassung auf unserer Website</h4>
|
||||
<p><strong>Wer ist verantwortlich für die Datenerfassung auf dieser Website?</strong></p>
|
||||
<p>
|
||||
Die Datenverarbeitung auf dieser Website erfolgt durch den Websitebetreiber. Dessen
|
||||
Kontaktdaten können Sie dem Impressum dieser Website entnehmen.
|
||||
</p>
|
||||
|
||||
<p><strong>Wie erfassen wir Ihre Daten?</strong></p>
|
||||
<p>
|
||||
Ihre Daten werden zum einen dadurch erhoben, dass Sie uns diese mitteilen — z. B.
|
||||
per E-Mail oder Telefon. Diese Website verwendet kein Kontaktformular.
|
||||
</p>
|
||||
<p>
|
||||
Andere Daten werden automatisch 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
|
||||
unsere Website betreten.
|
||||
</p>
|
||||
|
||||
<p><strong>Wofür nutzen wir Ihre Daten?</strong></p>
|
||||
<p>
|
||||
Ein Teil der Daten wird erhoben, um eine fehlerfreie Bereitstellung der Website zu
|
||||
gewährleisten. Andere Daten werden zur anonymisierten Analyse Ihres Nutzerverhaltens
|
||||
verwendet.
|
||||
</p>
|
||||
|
||||
<p><strong>Welche Rechte haben Sie bezüglich Ihrer Daten?</strong></p>
|
||||
<p>
|
||||
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, Sperrung oder Löschung dieser Daten zu verlangen. Hierzu sowie zu
|
||||
weiteren Fragen zum Thema Datenschutz können Sie sich jederzeit unter der im Impressum
|
||||
angegebenen Adresse an uns wenden. Des Weiteren steht Ihnen ein Beschwerderecht bei der
|
||||
zuständigen Aufsichtsbehörde zu.
|
||||
</p>
|
||||
<p>
|
||||
Außerdem haben Sie das Recht, unter bestimmten Umständen die Einschränkung der
|
||||
Verarbeitung Ihrer personenbezogenen Daten zu verlangen. Details hierzu entnehmen Sie
|
||||
der Datenschutzerklärung unter „Recht auf Einschränkung der Verarbeitung".
|
||||
</p>
|
||||
|
||||
<h3>2. Hosting</h3>
|
||||
<h4>Externes Hosting</h4>
|
||||
<p>
|
||||
Diese Website wird bei einem externen Dienstleister gehostet (Hoster). Die
|
||||
personenbezogenen Daten, die auf dieser Website erfasst werden, werden auf den Servern
|
||||
des Hosters 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.
|
||||
</p>
|
||||
<p>
|
||||
Der Einsatz des Hosters 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). Unser Hoster wird Ihre Daten nur
|
||||
insoweit verarbeiten, wie dies zur Erfüllung seiner Leistungspflichten erforderlich ist
|
||||
und unsere Weisungen in Bezug auf diese Daten befolgen.
|
||||
</p>
|
||||
<p>
|
||||
Wir setzen folgenden Hoster ein:<br />
|
||||
ALL-INKL.COM - Neue Medien Münnich<br />
|
||||
Inhaber: René Münnich<br />
|
||||
Hauptstraße 68<br />
|
||||
02742 Friedersdorf
|
||||
</p>
|
||||
|
||||
<h4>Abschluss eines Vertrages über Auftragsverarbeitung (AVV)</h4>
|
||||
<p>
|
||||
Wir haben einen Vertrag über Auftragsverarbeitung (AVV) mit dem oben genannten Anbieter
|
||||
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.
|
||||
</p>
|
||||
|
||||
<hr />
|
||||
|
||||
<h3>3. Allgemeine Hinweise und Pflichtinformationen</h3>
|
||||
<h4>Datenschutz</h4>
|
||||
<p>
|
||||
Die Betreiber dieser Seiten nehmen den Schutz Ihrer persönlichen
|
||||
Daten sehr ernst. Wir behandeln Ihre personenbezogenen Daten
|
||||
vertraulich und entsprechend der gesetzlichen
|
||||
Datenschutzvorschriften sowie dieser Datenschutzerklärung.
|
||||
</p>
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
<h4>Hinweis zur verantwortlichen Stelle</h4>
|
||||
<p>
|
||||
Die verantwortliche Stelle für die Datenverarbeitung auf dieser Website ist:<br />
|
||||
<br />
|
||||
ADAMETZ.MEDIA<br />
|
||||
Kevin Adametz<br />
|
||||
In der Lake 4<br />
|
||||
33739 Bielefeld<br />
|
||||
<br />
|
||||
Tel: +49 5206 7076721<br />
|
||||
E-Mail: <a href="mailto:info@adametz.media">info@adametz.media</a>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
<h4>Widerruf Ihrer Einwilligung zur Datenverarbeitung</h4>
|
||||
<p>
|
||||
Viele Datenverarbeitungsvorgänge sind nur mit Ihrer ausdrücklichen
|
||||
Einwilligung möglich. Sie können eine bereits erteilte Einwilligung
|
||||
jederzeit widerrufen. Dazu reicht eine formlose Mitteilung per
|
||||
E-Mail an uns. Die Rechtmäßigkeit der bis zum Widerruf erfolgten
|
||||
Datenverarbeitung bleibt vom Widerruf unberührt.
|
||||
</p>
|
||||
<h4>
|
||||
Widerspruchsrecht gegen die Datenerhebung in besonderen Fällen sowie
|
||||
gegen Direktwerbung (Art. 21 DSGVO)
|
||||
</h4>
|
||||
<p>
|
||||
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).
|
||||
</p>
|
||||
|
||||
<p>
|
||||
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 anschließend
|
||||
nicht mehr zum Zwecke der Direktwerbung verwendet (Widerspruch nach
|
||||
Art. 21 Abs. 2 DSGVO).
|
||||
</p>
|
||||
<h4>Beschwerderecht bei der zuständigen Aufsichtsbehörde</h4>
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
<h4>Recht auf Datenübertragbarkeit</h4>
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
<h4>SSL- bzw. TLS-Verschlüsselung</h4>
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
<p>
|
||||
Wenn die SSL- bzw. TLS-Verschlüsselung aktiviert ist, können die
|
||||
Daten, die Sie an uns übermitteln, nicht von Dritten mitgelesen
|
||||
werden.
|
||||
</p>
|
||||
<h4>Auskunft, Sperrung, Löschung und Berichtigung</h4>
|
||||
<p>
|
||||
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, Sperrung oder Löschung dieser Daten. Hierzu sowie zu
|
||||
weiteren Fragen zum Thema personenbezogene Daten können Sie sich
|
||||
jederzeit unter der im Impressum angegebenen Adresse an uns wenden.
|
||||
</p>
|
||||
<h4>Recht auf Einschränkung der Verarbeitung</h4>
|
||||
<p>
|
||||
Sie haben das Recht, die Einschränkung der Verarbeitung Ihrer personenbezogenen Daten
|
||||
zu verlangen. Das Recht auf Einschränkung der Verarbeitung besteht in folgenden Fällen:
|
||||
</p>
|
||||
<p>
|
||||
Wenn Sie die Richtigkeit Ihrer bei uns gespeicherten personenbezogenen Daten bestreiten,
|
||||
benötigen wir in der Regel Zeit, um dies zu überprüfen. Für die Dauer der Prüfung haben
|
||||
Sie das Recht, die Einschränkung der Verarbeitung Ihrer personenbezogenen Daten zu
|
||||
verlangen.
|
||||
</p>
|
||||
<p>
|
||||
Wenn die Verarbeitung Ihrer personenbezogenen Daten unrechtmäßig geschah / geschieht,
|
||||
können Sie statt der Löschung die Einschränkung der Datenverarbeitung verlangen.
|
||||
</p>
|
||||
<p>
|
||||
Wenn wir Ihre personenbezogenen Daten nicht mehr benötigen, Sie sie jedoch zur Ausübung,
|
||||
Verteidigung oder Geltendmachung von Rechtsansprüchen benötigen, haben Sie das Recht,
|
||||
statt der Löschung die Einschränkung der Verarbeitung Ihrer personenbezogenen Daten zu
|
||||
verlangen.
|
||||
</p>
|
||||
<p>
|
||||
Wenn Sie einen Widerspruch nach Art. 21 Abs. 1 DSGVO eingelegt haben, muss eine Abwägung
|
||||
zwischen Ihren und unseren Interessen vorgenommen werden. Solange noch nicht feststeht,
|
||||
wessen Interessen überwiegen, haben Sie das Recht, die Einschränkung der Verarbeitung
|
||||
Ihrer personenbezogenen Daten zu verlangen.
|
||||
</p>
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
<h4>Widerspruch gegen Werbe-E-Mails</h4>
|
||||
<p>
|
||||
Der Nutzung von im Rahmen der Impressumspflicht veröffentlichten
|
||||
Kontaktdaten zur Übersendung von nicht ausdrücklich angeforderter
|
||||
Werbung und Informationsmaterialien wird hiermit widersprochen. Die
|
||||
Betreiber der Seiten behalten sich ausdrücklich rechtliche Schritte
|
||||
im Falle der unverlangten Zusendung von Werbeinformationen, etwa
|
||||
durch Spam-E-Mails, vor.
|
||||
</p>
|
||||
<hr />
|
||||
|
||||
<h3>4. Datenerfassung auf unserer Website</h3>
|
||||
<h4>Cookies</h4>
|
||||
<p>Diese Webseite verwendet keine Cookies.</p>
|
||||
|
||||
<h4>Server-Log-Dateien</h4>
|
||||
<p>
|
||||
Der Provider der Seiten erhebt und speichert automatisch Informationen in so genannten
|
||||
Server-Log-Dateien, die Ihr Browser automatisch an uns übermittelt. Dies sind:
|
||||
</p>
|
||||
<p>
|
||||
Browsertyp und Browserversion<br />
|
||||
verwendetes Betriebssystem<br />
|
||||
Referrer URL<br />
|
||||
Hostname des zugreifenden Rechners<br />
|
||||
Uhrzeit der Serveranfrage<br />
|
||||
IP-Adresse
|
||||
</p>
|
||||
<p>
|
||||
Eine Zusammenführung dieser Daten mit anderen Datenquellen wird nicht vorgenommen. Die
|
||||
Erfassung dieser Daten erfolgt auf Grundlage von Art. 6 Abs. 1 lit. f DSGVO. Der
|
||||
Websitebetreiber hat ein berechtigtes Interesse an der technisch fehlerfreien
|
||||
Darstellung und der Optimierung seiner Website – hierzu müssen die Server-Log-Files
|
||||
erfasst werden.
|
||||
</p>
|
||||
|
||||
<h4>E-Mail-Kontakt</h4>
|
||||
<p>
|
||||
Wenn Sie uns per E-Mail Anfragen zukommen lassen, werden Ihre Angaben (z. B.
|
||||
E-Mail-Adresse und der Text Ihrer Anfrage) zwecks Bearbeitung der Anfrage und für den
|
||||
Fall von Anschlussfragen bei uns gespeichert. Diese Daten geben wir nicht ohne Ihre
|
||||
Einwilligung weiter.
|
||||
</p>
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
<p>
|
||||
Die von Ihnen an uns übersendeten 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.
|
||||
</p>
|
||||
|
||||
<h4>Verarbeiten von Daten (Kunden- und Vertragsdaten)</h4>
|
||||
<p>
|
||||
Wir erheben, verarbeiten und nutzen personenbezogene Daten nur, soweit sie für die
|
||||
Begründung, inhaltliche Ausgestaltung oder Änderung des Rechtsverhältnisses erforderlich
|
||||
sind (Bestandsdaten). Dies erfolgt auf Grundlage von Art. 6 Abs. 1 lit. b DSGVO, der die
|
||||
Verarbeitung von Daten zur Erfüllung eines Vertrags oder vorvertraglicher Maßnahmen
|
||||
gestattet. Personenbezogene Daten über die Inanspruchnahme unserer Internetseiten
|
||||
(Nutzungsdaten) erheben, verarbeiten und nutzen wir nur, soweit dies erforderlich ist,
|
||||
um dem Nutzer die Inanspruchnahme des Dienstes zu ermöglichen oder abzurechnen.
|
||||
</p>
|
||||
<p>
|
||||
Die erhobenen Kundendaten werden nach Abschluss des Auftrags oder Beendigung der
|
||||
Geschäftsbeziehung gelöscht. Gesetzliche Aufbewahrungsfristen bleiben unberührt.
|
||||
</p>
|
||||
|
||||
<h3>5. Analyse-Tools</h3>
|
||||
<h4>Umami Analytics (selbst gehostet)</h4>
|
||||
<p>
|
||||
Diese Website nutzt das Open-Source-Webanalyse-Tool Umami für interne Auswertungen. Um
|
||||
höchste Datenschutzstandards zu gewährleisten, wird Umami vollständig auf einem eigenen
|
||||
Server gehostet. Dadurch bleiben alle erfassten Daten in unserer alleinigen Kontrolle
|
||||
und werden nicht an Dritte weitergegeben.
|
||||
</p>
|
||||
<p>Umami wurde datenschutzfreundlich konzipiert:</p>
|
||||
<p>
|
||||
Es werden keine Cookies in Ihrem Browser gespeichert.<br />
|
||||
Es findet kein website- oder geräteübergreifendes Tracking (Cross-Site Tracking) statt.<br />
|
||||
Alle IP-Adressen werden unmittelbar bei der Erfassung vollständig anonymisiert, sodass
|
||||
ein Rückschluss auf Ihre Person oder Ihr genaues Gerät ausgeschlossen ist.
|
||||
</p>
|
||||
<p>
|
||||
Es werden lediglich grundlegende, anonyme Telemetriedaten erfasst (z. B. aufgerufene
|
||||
Seiten, Browsertyp, Betriebssystem, Herkunftsland und Bildschirmauflösung). Die Nutzung
|
||||
von Umami erfolgt auf Grundlage unseres berechtigten Interesses gemäß Art. 6 Abs. 1
|
||||
lit. f DSGVO. Unser berechtigtes Interesse liegt in der anonymisierten Analyse des
|
||||
Nutzerverhaltens, um unsere Website sowie unser Angebot technisch und inhaltlich
|
||||
fortlaufend zu optimieren.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<footer class="footer">
|
||||
<div class="container">
|
||||
<div class="footer-inner">
|
||||
<p class="footer-copy">© 2026 ADAMETZ.MEDIA – Kevin Adametz</p>
|
||||
<div class="footer-links">
|
||||
<a href="impressum.html">Impressum</a>
|
||||
<a href="datenschutz.html">Datenschutz</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
244
_adametz.media/impressum.html
Normal file
|
|
@ -0,0 +1,244 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Impressum – Kevin Adametz</title>
|
||||
<meta
|
||||
name="description"
|
||||
content="Impressum und Anbieterkennzeichnung von ADAMETZ.MEDIA."
|
||||
/>
|
||||
<meta name="author" content="Kevin Adametz" />
|
||||
<meta name="robots" content="index, follow" />
|
||||
|
||||
<meta property="og:title" content="Impressum – Kevin Adametz" />
|
||||
<meta
|
||||
property="og:description"
|
||||
content="Impressum und Anbieterkennzeichnung von ADAMETZ.MEDIA."
|
||||
/>
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="https://adametz.media/impressum.html" />
|
||||
<link rel="canonical" href="https://adametz.media/impressum.html" />
|
||||
<meta name="twitter:title" content="Impressum – Kevin Adametz" />
|
||||
<meta
|
||||
name="twitter:description"
|
||||
content="Impressum und Anbieterkennzeichnung von ADAMETZ.MEDIA."
|
||||
/>
|
||||
|
||||
<meta property="og:locale" content="de_DE" />
|
||||
<meta property="og:site_name" content="ADAMETZ.MEDIA" />
|
||||
<meta property="og:image" content="https://adametz.media/assets/img/og-share.webp" />
|
||||
<meta property="og:image:width" content="1200" />
|
||||
<meta property="og:image:height" content="630" />
|
||||
<meta property="og:image:alt" content="Kevin Adametz — Markensysteme, die funktionieren" />
|
||||
<meta name="twitter:card" content="summary_large_image" />
|
||||
<meta name="twitter:image" content="https://adametz.media/assets/img/og-share.webp" />
|
||||
<meta name="theme-color" content="#0a0a0a" />
|
||||
|
||||
<link rel="preload" href="assets/fonts/outfit-regular.woff2" as="font" type="font/woff2" crossorigin />
|
||||
<link rel="preload" href="assets/fonts/source-sans-3-regular.woff2" as="font" type="font/woff2" crossorigin />
|
||||
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="assets/fav/apple-icon-180x180.png" />
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="assets/fav/favicon-32x32.png" />
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="assets/fav/favicon-16x16.png" />
|
||||
<link rel="shortcut icon" href="assets/fav/favicon.ico" />
|
||||
<link rel="manifest" href="manifest.json" />
|
||||
|
||||
<link rel="stylesheet" href="assets/styles.css?v=20250610" />
|
||||
<script src="assets/js/app.js?v=20250610" defer></script>
|
||||
|
||||
<script defer src="https://sys.adametz.media/config.js" data-website-id="69ec86fc-7f06-4cc5-9e2c-fd9daaae7faa"></script>
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "WebSite",
|
||||
"name": "ADAMETZ.MEDIA",
|
||||
"url": "https://adametz.media/",
|
||||
"description": "Markensysteme für Unternehmen, die sich klar erklären wollen – von der Strategie bis zur Umsetzung.",
|
||||
"inLanguage": "de-DE"
|
||||
}
|
||||
</script>
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "Person",
|
||||
"name": "Kevin Adametz",
|
||||
"jobTitle": "Markenarchitekt",
|
||||
"url": "https://adametz.media/",
|
||||
"email": "info@adametz.media",
|
||||
"telephone": "+49-5206-7076721",
|
||||
"address": {
|
||||
"@type": "PostalAddress",
|
||||
"streetAddress": "In der Lake 4",
|
||||
"addressLocality": "Bielefeld",
|
||||
"postalCode": "33739",
|
||||
"addressCountry": "DE"
|
||||
},
|
||||
"worksFor": {
|
||||
"@type": "Organization",
|
||||
"name": "ADAMETZ.MEDIA"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<a class="skip-link" href="#main">Zum Inhalt springen</a>
|
||||
|
||||
<nav class="nav" id="nav" aria-label="Hauptnavigation">
|
||||
<div class="container">
|
||||
<div class="nav-inner">
|
||||
<a href="index.html" class="nav-logo">
|
||||
<img
|
||||
src="assets/img/logo.png"
|
||||
alt="Adametz.Media Logo"
|
||||
class="nav-logo-img"
|
||||
width="252"
|
||||
height="160"
|
||||
decoding="async"
|
||||
/>
|
||||
Adametz.Media
|
||||
</a>
|
||||
|
||||
<ul class="nav-links">
|
||||
<li><a href="index.html#start">Start</a></li>
|
||||
<li><a href="index.html#haltung">Haltung</a></li>
|
||||
<li><a href="index.html#umsetzung">Umsetzung</a></li>
|
||||
<li><a href="index.html#projekte">Evidenz</a></li>
|
||||
<li><a href="index.html#kontakt">Kontakt</a></li>
|
||||
</ul>
|
||||
|
||||
<button
|
||||
class="nav-toggle"
|
||||
id="navToggle"
|
||||
aria-label="Menü öffnen"
|
||||
aria-controls="navMobile"
|
||||
aria-expanded="false"
|
||||
>
|
||||
<span></span>
|
||||
<span></span>
|
||||
<span></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div class="nav-mobile" id="navMobile">
|
||||
<a href="index.html#start">Start</a>
|
||||
<a href="index.html#haltung">Haltung</a>
|
||||
<a href="index.html#umsetzung">Umsetzung</a>
|
||||
<a href="index.html#projekte">Evidenz</a>
|
||||
<a href="index.html#kontakt">Kontakt</a>
|
||||
</div>
|
||||
|
||||
<section class="content-section" id="main">
|
||||
<div class="container">
|
||||
<div class="content-wrapper">
|
||||
<h1>Impressum</h1>
|
||||
<p>Angaben gemäß § 5 DDG.</p>
|
||||
|
||||
<p>
|
||||
ADAMETZ.MEDIA<br />
|
||||
Kevin Adametz<br />
|
||||
In der Lake 4<br />
|
||||
33739 Bielefeld
|
||||
</p>
|
||||
|
||||
<h3>Inhaber / Vertreten durch</h3>
|
||||
<p>Kevin Adametz</p>
|
||||
|
||||
<h3>Kontakt</h3>
|
||||
<p>
|
||||
Telefon: +49 5206 7076721<br />
|
||||
E-Mail: <a href="mailto:info@adametz.media">info@adametz.media</a>
|
||||
</p>
|
||||
|
||||
<h3>Umsatzsteuer-ID</h3>
|
||||
<p>
|
||||
Umsatzsteuer-Identifikationsnummer gemäß § 27 a Umsatzsteuergesetz:<br />
|
||||
DE298729654
|
||||
</p>
|
||||
|
||||
<h3>Steuernummer</h3>
|
||||
<p>349/5910/0994</p>
|
||||
|
||||
<h3>EU-Streitschlichtung</h3>
|
||||
<p>
|
||||
Die Europäische Kommission stellt eine Plattform zur Online-Streitbeilegung (OS) bereit:
|
||||
<a href="https://ec.europa.eu/consumers/odr/" rel="noopener noreferrer">https://ec.europa.eu/consumers/odr/</a>.
|
||||
Unsere E-Mail-Adresse finden Sie oben im Impressum.
|
||||
</p>
|
||||
|
||||
<h3>Verbraucherstreitbeilegung / Universalschlichtungsstelle</h3>
|
||||
<p>
|
||||
Wir sind nicht bereit oder verpflichtet, an Streitbeilegungsverfahren vor einer
|
||||
Verbraucherschlichtungsstelle teilzunehmen.
|
||||
</p>
|
||||
|
||||
<hr />
|
||||
|
||||
<h3>Haftungsausschluss (Disclaimer)</h3>
|
||||
|
||||
<h4>Haftung für Inhalte</h4>
|
||||
<p>
|
||||
Als Diensteanbieter sind wir gemäß § 7 Abs. 1 DDG für eigene Inhalte auf diesen Seiten
|
||||
nach den allgemeinen Gesetzen verantwortlich. Nach §§ 8 bis 10 DDG sind wir als
|
||||
Diensteanbieter jedoch nicht verpflichtet, übermittelte oder gespeicherte fremde
|
||||
Informationen zu überwachen oder nach Umständen zu forschen, die auf eine rechtswidrige
|
||||
Tätigkeit hinweisen.
|
||||
</p>
|
||||
<p>
|
||||
Verpflichtungen zur Entfernung oder Sperrung der Nutzung von Informationen nach den
|
||||
allgemeinen Gesetzen bleiben hiervon unberührt. Eine diesbezügliche Haftung ist jedoch
|
||||
erst ab dem Zeitpunkt der Kenntnis einer konkreten Rechtsverletzung möglich. Bei
|
||||
Bekanntwerden von entsprechenden Rechtsverletzungen werden wir diese Inhalte umgehend
|
||||
entfernen.
|
||||
</p>
|
||||
|
||||
<h4>Haftung für Links</h4>
|
||||
<p>
|
||||
Unser Angebot enthält Links zu externen Websites Dritter, auf deren Inhalte wir keinen
|
||||
Einfluss haben. Deshalb können wir für diese fremden Inhalte auch keine Gewähr übernehmen.
|
||||
Für die Inhalte der verlinkten Seiten ist stets der jeweilige Anbieter oder Betreiber der
|
||||
Seiten verantwortlich. Die verlinkten Seiten wurden zum Zeitpunkt der Verlinkung auf
|
||||
mögliche Rechtsverstöße überprüft. Rechtswidrige Inhalte waren zum Zeitpunkt der
|
||||
Verlinkung nicht erkennbar.
|
||||
</p>
|
||||
<p>
|
||||
Eine permanente inhaltliche Kontrolle der verlinkten Seiten ist jedoch ohne konkrete
|
||||
Anhaltspunkte einer Rechtsverletzung nicht zumutbar. Bei Bekanntwerden von
|
||||
Rechtsverletzungen werden wir derartige Links umgehend entfernen.
|
||||
</p>
|
||||
|
||||
<h3>Urheberrecht</h3>
|
||||
<p>
|
||||
Die durch die Seitenbetreiber erstellten Inhalte und Werke auf diesen Seiten unterliegen
|
||||
dem deutschen Urheberrecht. Die Vervielfältigung, Bearbeitung, Verbreitung und jede Art
|
||||
der Verwertung außerhalb der Grenzen des Urheberrechtes bedürfen der schriftlichen
|
||||
Zustimmung des jeweiligen Autors bzw. Erstellers. Downloads und Kopien dieser Seite sind
|
||||
nur für den privaten, nicht kommerziellen Gebrauch gestattet.
|
||||
</p>
|
||||
<p>
|
||||
Soweit die Inhalte auf dieser Seite nicht vom Betreiber erstellt wurden, werden die
|
||||
Urheberrechte Dritter beachtet. Insbesondere werden Inhalte Dritter als solche
|
||||
gekennzeichnet. Sollten Sie trotzdem auf eine Urheberrechtsverletzung aufmerksam werden,
|
||||
bitten wir um einen entsprechenden Hinweis. Bei Bekanntwerden von Rechtsverletzungen
|
||||
werden wir derartige Inhalte umgehend entfernen.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<footer class="footer">
|
||||
<div class="container">
|
||||
<div class="footer-inner">
|
||||
<p class="footer-copy">© 2026 ADAMETZ.MEDIA – Kevin Adametz</p>
|
||||
<div class="footer-links">
|
||||
<a href="impressum.html">Impressum</a>
|
||||
<a href="datenschutz.html">Datenschutz</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
747
_adametz.media/index.html
Normal file
|
|
@ -0,0 +1,747 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>
|
||||
Kevin Adametz – Ich entwickle Markensysteme, die funktionieren
|
||||
</title>
|
||||
<meta
|
||||
name="description"
|
||||
content="Ich entwickle Markensysteme für Unternehmen, die sich klar erklären wollen – von der Strategie bis zur Umsetzung."
|
||||
/>
|
||||
<meta name="author" content="Kevin Adametz" />
|
||||
<meta name="robots" content="index, follow" />
|
||||
|
||||
<meta
|
||||
property="og:title"
|
||||
content="Kevin Adametz – Markensysteme, die funktionieren"
|
||||
/>
|
||||
<meta
|
||||
property="og:description"
|
||||
content="Ich entwickle Markensysteme für Unternehmen, die sich klar erklären wollen."
|
||||
/>
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="https://adametz.media/" />
|
||||
<link rel="canonical" href="https://adametz.media/" />
|
||||
<meta
|
||||
name="twitter:title"
|
||||
content="Kevin Adametz – Markensysteme, die funktionieren"
|
||||
/>
|
||||
<meta
|
||||
name="twitter:description"
|
||||
content="Ich entwickle Markensysteme für Unternehmen, die sich klar erklären wollen."
|
||||
/>
|
||||
|
||||
<meta property="og:locale" content="de_DE" />
|
||||
<meta property="og:site_name" content="ADAMETZ.MEDIA" />
|
||||
<meta property="og:image" content="https://adametz.media/assets/img/og-share.webp" />
|
||||
<meta property="og:image:width" content="1200" />
|
||||
<meta property="og:image:height" content="630" />
|
||||
<meta property="og:image:alt" content="Kevin Adametz — Markensysteme, die funktionieren" />
|
||||
<meta name="twitter:card" content="summary_large_image" />
|
||||
<meta name="twitter:image" content="https://adametz.media/assets/img/og-share.webp" />
|
||||
<meta name="theme-color" content="#0a0a0a" />
|
||||
|
||||
<link rel="preload" href="assets/fonts/outfit-regular.woff2" as="font" type="font/woff2" crossorigin />
|
||||
<link rel="preload" href="assets/fonts/source-sans-3-regular.woff2" as="font" type="font/woff2" crossorigin />
|
||||
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="assets/fav/apple-icon-180x180.png" />
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="assets/fav/favicon-32x32.png" />
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="assets/fav/favicon-16x16.png" />
|
||||
<link rel="shortcut icon" href="assets/fav/favicon.ico" />
|
||||
<link rel="manifest" href="manifest.json" />
|
||||
<link rel="preload" as="image" href="assets/img/hero-bg2-960.webp" type="image/webp" fetchpriority="high" imagesrcset="assets/img/hero-bg2-640.webp 640w, assets/img/hero-bg2-960.webp 960w, assets/img/hero-bg2.webp 1920w" imagesizes="100vw" />
|
||||
|
||||
<link rel="stylesheet" href="assets/styles.css?v=20250610" />
|
||||
<script src="assets/js/app.js?v=20250610" defer></script>
|
||||
|
||||
<script defer src="https://sys.adametz.media/config.js" data-website-id="69ec86fc-7f06-4cc5-9e2c-fd9daaae7faa"></script>
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "WebSite",
|
||||
"name": "ADAMETZ.MEDIA",
|
||||
"url": "https://adametz.media/",
|
||||
"description": "Markensysteme für Unternehmen, die sich klar erklären wollen – von der Strategie bis zur Umsetzung.",
|
||||
"inLanguage": "de-DE"
|
||||
}
|
||||
</script>
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "Person",
|
||||
"name": "Kevin Adametz",
|
||||
"jobTitle": "Markenarchitekt",
|
||||
"url": "https://adametz.media/",
|
||||
"email": "info@adametz.media",
|
||||
"telephone": "+49-5206-7076721",
|
||||
"address": {
|
||||
"@type": "PostalAddress",
|
||||
"streetAddress": "In der Lake 4",
|
||||
"addressLocality": "Bielefeld",
|
||||
"postalCode": "33739",
|
||||
"addressCountry": "DE"
|
||||
},
|
||||
"worksFor": {
|
||||
"@type": "Organization",
|
||||
"name": "ADAMETZ.MEDIA"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<a class="skip-link" href="#start">Zum Inhalt springen</a>
|
||||
|
||||
<nav class="nav" id="nav" aria-label="Hauptnavigation">
|
||||
<div class="container">
|
||||
<div class="nav-inner">
|
||||
<a href="#start" class="nav-logo">
|
||||
<img
|
||||
src="assets/img/logo.png"
|
||||
alt="Adametz.Media Logo"
|
||||
class="nav-logo-img"
|
||||
width="252"
|
||||
height="160"
|
||||
decoding="async"
|
||||
/>
|
||||
Adametz.Media
|
||||
</a>
|
||||
|
||||
<ul class="nav-links">
|
||||
<li><a href="#start">Start</a></li>
|
||||
<li><a href="#haltung">Haltung</a></li>
|
||||
<li><a href="#umsetzung">Umsetzung</a></li>
|
||||
<li><a href="#projekte">Evidenz</a></li>
|
||||
<li><a href="#kontakt">Kontakt</a></li>
|
||||
</ul>
|
||||
|
||||
<button
|
||||
class="nav-toggle"
|
||||
id="navToggle"
|
||||
aria-label="Menü öffnen"
|
||||
aria-controls="navMobile"
|
||||
aria-expanded="false"
|
||||
>
|
||||
<span></span>
|
||||
<span></span>
|
||||
<span></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div class="nav-mobile" id="navMobile">
|
||||
<a href="#start">Start</a>
|
||||
<a href="#haltung">Haltung</a>
|
||||
<a href="#umsetzung">Umsetzung</a>
|
||||
<a href="#projekte">Evidenz</a>
|
||||
<a href="#kontakt">Kontakt</a>
|
||||
</div>
|
||||
|
||||
<section class="hero" id="start">
|
||||
<div class="hero-background">
|
||||
<img
|
||||
src="assets/img/hero-bg2.webp"
|
||||
srcset="assets/img/hero-bg2-640.webp 640w, assets/img/hero-bg2-960.webp 960w, assets/img/hero-bg2.webp 1920w"
|
||||
sizes="100vw"
|
||||
alt="Abstrakte architektonische Struktur"
|
||||
width="1920"
|
||||
height="1080"
|
||||
loading="eager"
|
||||
fetchpriority="high"
|
||||
decoding="async"
|
||||
/>
|
||||
<div class="hero-shape hero-shape-1"></div>
|
||||
<div class="hero-shape hero-shape-2"></div>
|
||||
<div class="hero-shape hero-shape-3"></div>
|
||||
</div>
|
||||
|
||||
<div class="container">
|
||||
<div class="hero-content">
|
||||
<h1>Ich entwickle Markensysteme, die funktionieren.</h1>
|
||||
|
||||
<div class="hero-text">
|
||||
<p>
|
||||
Seit über 20 Jahren arbeite ich mit Unternehmen an der Frage, wie
|
||||
sie sich erklären – konsistent, strukturiert, unabhängig von
|
||||
einzelnen Köpfen.
|
||||
</p>
|
||||
<p>
|
||||
Das beginnt mit Klarheit. Und es endet mit Umsetzung: Websites,
|
||||
Tools, Kommunikationsmittel, die das System im Alltag tragen.
|
||||
</p>
|
||||
<p>Die Methode dahinter heißt „MARKE MACHT"</p>
|
||||
</div>
|
||||
|
||||
<div class="hero-cta">
|
||||
<a href="#haltung" class="btn btn--next">
|
||||
Haltung
|
||||
<span class="btn-arrow-down" aria-hidden="true">↓</span>
|
||||
</a>
|
||||
<a
|
||||
href="https://markemacht.de"
|
||||
class="btn btn--mm"
|
||||
target="_blank"
|
||||
rel="noopener"
|
||||
>
|
||||
MARKE MACHT
|
||||
<span class="btn-arrow" aria-hidden="true">→</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="hero-meta">
|
||||
<img
|
||||
src="assets/img/am.webp"
|
||||
alt="Kevin Adametz"
|
||||
class="hero-portrait"
|
||||
width="200"
|
||||
height="200"
|
||||
loading="lazy"
|
||||
decoding="async"
|
||||
/>
|
||||
<div class="hero-meta-text">
|
||||
<p><strong>Kevin Adametz</strong></p>
|
||||
<p>Markenarchitekt · Gründer von „MARKE MACHT"</p>
|
||||
<p>Bielefeld</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="haltung" id="haltung">
|
||||
<div class="container">
|
||||
<div class="section-header reveal">
|
||||
<p class="section-label">Haltung</p>
|
||||
<h2>Wofür ich stehe.</h2>
|
||||
</div>
|
||||
|
||||
<div class="haltung-grid">
|
||||
<div class="haltung-item reveal">
|
||||
<div class="haltung-image">
|
||||
<img
|
||||
src="assets/img/haltung-1.webp"
|
||||
alt="Struktur"
|
||||
loading="lazy"
|
||||
width="320"
|
||||
height="320"
|
||||
decoding="async"
|
||||
/>
|
||||
</div>
|
||||
<div class="haltung-content">
|
||||
<h3>Struktur vor Kreativität.</h3>
|
||||
<p>
|
||||
Gute Markenarbeit beginnt mit Klarheit – über das, wofür ein
|
||||
Unternehmen steht, wie es spricht und wo es Grenzen zieht. Erst
|
||||
wenn diese Grundlage existiert, wird Gestaltung wirksam.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="haltung-item reveal">
|
||||
<div class="haltung-image">
|
||||
<img
|
||||
src="assets/img/haltung-2.webp"
|
||||
alt="Systeme"
|
||||
loading="lazy"
|
||||
width="320"
|
||||
height="320"
|
||||
decoding="async"
|
||||
/>
|
||||
</div>
|
||||
<div class="haltung-content">
|
||||
<h3>Systeme statt Einzelmaßnahmen.</h3>
|
||||
<p>
|
||||
Ich entwickle Regelwerke, die über Jahre tragen – und mit dem
|
||||
Unternehmen wachsen. Eine Marke, die nur in Kampagnen existiert,
|
||||
bleibt fragil. Eine Marke, die in Struktur existiert, ist
|
||||
führbar.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="haltung-item reveal">
|
||||
<div class="haltung-image">
|
||||
<img
|
||||
src="assets/img/haltung-3.webp"
|
||||
alt="Strategie"
|
||||
loading="lazy"
|
||||
width="320"
|
||||
height="320"
|
||||
decoding="async"
|
||||
/>
|
||||
</div>
|
||||
<div class="haltung-content">
|
||||
<h3>Strategie und Umsetzung aus einer Hand.</h3>
|
||||
<p>
|
||||
Ich trenne Denken und Machen nicht. Wer Markensysteme baut, muss
|
||||
sie auch in die Realität bringen – in Websites, Tools,
|
||||
Interfaces und ja, auch in Print. Sonst bleibt Strategie Papier.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="haltung-item reveal">
|
||||
<div class="haltung-image">
|
||||
<img
|
||||
src="assets/img/haltung-4.webp"
|
||||
alt="Partnerschaft"
|
||||
loading="lazy"
|
||||
width="320"
|
||||
height="320"
|
||||
decoding="async"
|
||||
/>
|
||||
</div>
|
||||
<div class="haltung-content">
|
||||
<h3>Partnerschaft auf Augenhöhe.</h3>
|
||||
<p>
|
||||
Viele meiner Kunden begleite ich seit über zehn Jahren.
|
||||
Vertrauen entsteht durch Ergebnisse, durch Verlässlichkeit und
|
||||
durch die Bereitschaft, gemeinsam klare Entscheidungen zu
|
||||
treffen.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="haltung-cta reveal">
|
||||
<p>
|
||||
Wenn Sie verstehen wollen, wie ich über Marke denke, finden Sie den
|
||||
vollständigen Denkrahmen auf markemacht.de.
|
||||
</p>
|
||||
<div class="section-cta">
|
||||
<a href="#umsetzung" class="btn btn--next">
|
||||
Umsetzung
|
||||
<span class="btn-arrow-down" aria-hidden="true">↓</span>
|
||||
</a>
|
||||
<a
|
||||
href="https://markemacht.de"
|
||||
class="btn btn--mm"
|
||||
target="_blank"
|
||||
rel="noopener"
|
||||
>
|
||||
MARKE MACHT
|
||||
<span class="btn-arrow" aria-hidden="true">→</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="umsetzung" id="umsetzung">
|
||||
<div class="container">
|
||||
<div class="section-header reveal">
|
||||
<p class="section-label">Umsetzung</p>
|
||||
<h2>Wie Klarheit Realität wird.</h2>
|
||||
</div>
|
||||
|
||||
<div class="umsetzung-intro reveal">
|
||||
<p>
|
||||
Klarheit, die nur in Dokumenten existiert, verändert nichts. Deshalb
|
||||
endet meine Arbeit nicht bei der Strategie – sondern dort, wo die
|
||||
Marke sichtbar und nutzbar wird.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="umsetzung-grid">
|
||||
<div class="umsetzung-item reveal">
|
||||
<div class="umsetzung-number">01</div>
|
||||
<h3>Websites, Tools, Interfaces</h3>
|
||||
<p>
|
||||
Ich entwickle und programmiere Websites, Landingpages, interne
|
||||
Tools und Web-Applikationen – immer auf Basis der Marken-DNA.
|
||||
Technik folgt der Strategie, nicht umgekehrt.
|
||||
</p>
|
||||
<div class="umsetzung-image">
|
||||
<img
|
||||
src="assets/img/umsetzung-1.webp"
|
||||
alt="Websites und Tools"
|
||||
loading="lazy"
|
||||
width="960"
|
||||
height="540"
|
||||
decoding="async"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="umsetzung-item reveal">
|
||||
<div class="umsetzung-number">02</div>
|
||||
<h3>Workflows, die Konsistenz sichern</h3>
|
||||
<p>
|
||||
KI nutze ich nicht für Spielereien, sondern für Marken-Governance:
|
||||
Regeln, Checks und Prozesse, die dafür sorgen, dass die Marke in
|
||||
Content und Kommunikation stabil bleibt.
|
||||
</p>
|
||||
<div class="umsetzung-image">
|
||||
<img
|
||||
src="assets/img/umsetzung-2.webp"
|
||||
alt="KI Workflows"
|
||||
loading="lazy"
|
||||
width="960"
|
||||
height="540"
|
||||
decoding="async"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="umsetzung-item reveal">
|
||||
<div class="umsetzung-number">03</div>
|
||||
<h3>Print, Präsentationen, Messe</h3>
|
||||
<p>
|
||||
Wenn das System steht, entstehen auch analoge Anwendungen –
|
||||
Geschäftsausstattung, Broschüren, Messestände. Sie sind Konsequenz
|
||||
der Markenführung, nicht Ausgangspunkt.
|
||||
</p>
|
||||
<div class="umsetzung-image">
|
||||
<img
|
||||
src="assets/img/umsetzung-3.webp"
|
||||
alt="Print und Messe"
|
||||
loading="lazy"
|
||||
width="960"
|
||||
height="540"
|
||||
decoding="async"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="umsetzung-note reveal">
|
||||
<p>
|
||||
Alle Umsetzungen folgen denselben Regeln: der Marken-DNA des
|
||||
Unternehmens. Das ist der Unterschied zwischen Ausführung und
|
||||
Systemarbeit.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="umsetzung-cta reveal">
|
||||
<div class="section-cta">
|
||||
<a href="#projekte" class="btn btn--next">
|
||||
Evidenz
|
||||
<span class="btn-arrow-down" aria-hidden="true">↓</span>
|
||||
</a>
|
||||
<a
|
||||
href="https://markemacht.de"
|
||||
class="btn btn--mm"
|
||||
target="_blank"
|
||||
rel="noopener"
|
||||
>
|
||||
MARKE MACHT
|
||||
<span class="btn-arrow" aria-hidden="true">→</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="projekte" id="projekte">
|
||||
<div class="container">
|
||||
<div class="section-header reveal">
|
||||
<p class="section-label">Evidenz</p>
|
||||
<h2>Ausgewählte Erfolge.</h2>
|
||||
<p>
|
||||
Keine Logos, keine Bildergalerien. Nur das, was zählt: Ausgangslage,
|
||||
Intervention, Ergebnis.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="case-list">
|
||||
<article class="case-item reveal">
|
||||
<div class="case-image">
|
||||
<img
|
||||
src="assets/img/case-1.webp"
|
||||
alt="Makro-Detailaufnahme"
|
||||
loading="lazy"
|
||||
width="800"
|
||||
height="450"
|
||||
decoding="async"
|
||||
/>
|
||||
</div>
|
||||
<div class="case-header">
|
||||
<h3>Maschinenbauer</h3>
|
||||
<span>120 Mitarbeiter</span>
|
||||
</div>
|
||||
<div class="case-content">
|
||||
<div class="case-block">
|
||||
<h4>Ausgangslage</h4>
|
||||
<p>
|
||||
Technisch führend, aber sprachlich austauschbar. Vertrieb
|
||||
argumentierte je nach Person unterschiedlich. Website und
|
||||
Angebote erzählten verschiedene Geschichten.
|
||||
</p>
|
||||
</div>
|
||||
<div class="case-block">
|
||||
<h4>Intervention</h4>
|
||||
<p>
|
||||
Marken-DNA entwickelt: Identitätskern, Positionierung,
|
||||
Sprachregeln. Website neu aufgebaut. Vertriebsunterlagen
|
||||
vereinheitlicht.
|
||||
</p>
|
||||
</div>
|
||||
<div class="case-block">
|
||||
<h4>Ergebnis</h4>
|
||||
<p>
|
||||
Das Unternehmen erklärt sich heute in einem Satz – konsistent
|
||||
über alle Kanäle. Abstimmungsschleifen im Marketing haben sich
|
||||
halbiert.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
<article class="case-item reveal">
|
||||
<div class="case-image">
|
||||
<img
|
||||
src="assets/img/case-2.webp"
|
||||
alt="Makro-Detailaufnahme"
|
||||
loading="lazy"
|
||||
width="800"
|
||||
height="450"
|
||||
decoding="async"
|
||||
/>
|
||||
</div>
|
||||
<div class="case-header">
|
||||
<h3>IT-Dienstleister</h3>
|
||||
<span>40 Mitarbeiter</span>
|
||||
</div>
|
||||
<div class="case-content">
|
||||
<div class="case-block">
|
||||
<h4>Ausgangslage</h4>
|
||||
<p>
|
||||
Schnelles Wachstum, aber keine einheitliche Sprache. Website,
|
||||
Sales-Pitches und LinkedIn widersprachen sich. Jeder
|
||||
Mitarbeiter erklärte das Unternehmen anders.
|
||||
</p>
|
||||
</div>
|
||||
<div class="case-block">
|
||||
<h4>Intervention</h4>
|
||||
<p>
|
||||
Positionierung geschärft. Sprachregeln und Themenrahmen
|
||||
definiert. Website und Pitch-Deck neu strukturiert. Interne
|
||||
Guidelines erstellt.
|
||||
</p>
|
||||
</div>
|
||||
<div class="case-block">
|
||||
<h4>Ergebnis</h4>
|
||||
<p>
|
||||
Kommunikation ist reproduzierbar – unabhängig davon, wer sie
|
||||
erstellt. Neue Mitarbeiter sind in Tagen statt Wochen
|
||||
sprachfähig.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
<article class="case-item reveal">
|
||||
<div class="case-image">
|
||||
<img
|
||||
src="assets/img/case-3.webp"
|
||||
alt="Makro-Detailaufnahme"
|
||||
loading="lazy"
|
||||
width="800"
|
||||
height="450"
|
||||
decoding="async"
|
||||
/>
|
||||
</div>
|
||||
<div class="case-header">
|
||||
<h3>Beratungsunternehmen</h3>
|
||||
<span>8 Mitarbeiter</span>
|
||||
</div>
|
||||
<div class="case-content">
|
||||
<div class="case-block">
|
||||
<h4>Ausgangslage</h4>
|
||||
<p>
|
||||
Starke Gründerpersönlichkeit, aber Wissen war nicht
|
||||
übertragbar. Inhalte und Akquise hingen am Inhaber. Skalierung
|
||||
blockiert.
|
||||
</p>
|
||||
</div>
|
||||
<div class="case-block">
|
||||
<h4>Intervention</h4>
|
||||
<p>
|
||||
Haltung in Struktur übersetzt. Marken-DNA dokumentiert. Team
|
||||
befähigt, eigenständig zu kommunizieren. Website als System
|
||||
aufgebaut.
|
||||
</p>
|
||||
</div>
|
||||
<div class="case-block">
|
||||
<h4>Ergebnis</h4>
|
||||
<p>
|
||||
Die Marke funktioniert auch ohne den Gründer im Raum. Erstmals
|
||||
können andere Berater unter derselben Positionierung
|
||||
auftreten.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
<article class="case-item reveal">
|
||||
<div class="case-image">
|
||||
<img
|
||||
src="assets/img/case-4.webp"
|
||||
alt="Makro-Detailaufnahme"
|
||||
loading="lazy"
|
||||
width="800"
|
||||
height="450"
|
||||
decoding="async"
|
||||
/>
|
||||
</div>
|
||||
<div class="case-header">
|
||||
<h3>Produzierendes Unternehmen</h3>
|
||||
<span>200 Mitarbeiter</span>
|
||||
</div>
|
||||
<div class="case-content">
|
||||
<div class="case-block">
|
||||
<h4>Ausgangslage</h4>
|
||||
<p>
|
||||
Marke existierte nur als Logo und Farbwelt. Keine
|
||||
dokumentierte Positionierung. Marketing produzierte viel, aber
|
||||
ohne roten Faden.
|
||||
</p>
|
||||
</div>
|
||||
<div class="case-block">
|
||||
<h4>Intervention</h4>
|
||||
<p>
|
||||
Marken-DNA von Grund auf entwickelt. Interne Workshops zur
|
||||
Verankerung. Website-Relaunch, Messeauftritt, Broschüren –
|
||||
alles aus einem System.
|
||||
</p>
|
||||
</div>
|
||||
<div class="case-block">
|
||||
<h4>Ergebnis</h4>
|
||||
<p>
|
||||
Zum ersten Mal spricht das Unternehmen nach außen wie nach
|
||||
innen. Der Messestand wurde zum konsistentesten Auftritt der
|
||||
Firmengeschichte.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
<article class="case-item reveal">
|
||||
<div class="case-image">
|
||||
<img
|
||||
src="assets/img/case-5.webp"
|
||||
alt="Makro-Detailaufnahme"
|
||||
loading="lazy"
|
||||
width="800"
|
||||
height="450"
|
||||
decoding="async"
|
||||
/>
|
||||
</div>
|
||||
<div class="case-header">
|
||||
<h3>Startup</h3>
|
||||
<span>12 Mitarbeiter</span>
|
||||
</div>
|
||||
<div class="case-content">
|
||||
<div class="case-block">
|
||||
<h4>Ausgangslage</h4>
|
||||
<p>
|
||||
Produkt war da, aber die Erklärung fehlte. Pitch-Deck
|
||||
überzeugte nicht. Website war technisch, nicht strategisch.
|
||||
</p>
|
||||
</div>
|
||||
<div class="case-block">
|
||||
<h4>Intervention</h4>
|
||||
<p>
|
||||
Positionierung erarbeitet. Messaging-System entwickelt.
|
||||
Website und Pitch-Deck komplett neu gebaut. KI-gestützter
|
||||
Content-Workflow eingerichtet.
|
||||
</p>
|
||||
</div>
|
||||
<div class="case-block">
|
||||
<h4>Ergebnis</h4>
|
||||
<p>
|
||||
Investorengespräche laufen fokussierter. Content entsteht
|
||||
jetzt regelbasiert statt aus dem Bauch.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
<div class="projekte-cta reveal">
|
||||
<p>
|
||||
Diese Projekte stehen für eine Arbeitsweise: Klarheit zuerst, dann
|
||||
Umsetzung. Wenn Sie wissen wollen, ob das zu Ihrer Situation passt,
|
||||
sprechen wir.
|
||||
</p>
|
||||
<div class="section-cta">
|
||||
<a href="#kontakt" class="btn btn--next">
|
||||
Kontakt
|
||||
<span class="btn-arrow-down" aria-hidden="true">↓</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="kontakt" id="kontakt">
|
||||
<div class="container">
|
||||
<div class="section-header reveal">
|
||||
<p class="section-label">Kontakt</p>
|
||||
<h2>Sprechen wir.</h2>
|
||||
<p>
|
||||
Wenn Sie über Markenklarheit sprechen wollen – oder ein konkretes
|
||||
Umsetzungsprojekt haben – schreiben Sie mir.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="kontakt-grid">
|
||||
<div class="kontakt-text reveal">
|
||||
<div class="kontakt-portrait">
|
||||
<img
|
||||
src="assets/img/back.webp"
|
||||
alt="Kevin Adametz"
|
||||
loading="lazy"
|
||||
width="800"
|
||||
height="533"
|
||||
decoding="async"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="kontakt-info reveal">
|
||||
<div class="kontakt-card">
|
||||
<img
|
||||
src="assets/img/logo.png"
|
||||
alt="Adametz.Media Logo"
|
||||
class="kontakt-logo"
|
||||
width="252"
|
||||
height="160"
|
||||
decoding="async"
|
||||
/>
|
||||
<h3>Kevin Adametz</h3>
|
||||
<div class="kontakt-details">
|
||||
<p>ADAMETZ.MEDIA</p>
|
||||
<p>In der Lake 4</p>
|
||||
<p>33739 Bielefeld</p>
|
||||
<p style="margin-top: 1rem">
|
||||
<a href="mailto:info@adametz.media">info@adametz.media</a>
|
||||
</p>
|
||||
<p><a href="tel:+4952067076721">+49 5206 7076721</a></p>
|
||||
</div>
|
||||
<p class="kontakt-note">
|
||||
Ich antworte in der Regel innerhalb von 48 Stunden.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<footer class="footer">
|
||||
<div class="container">
|
||||
<div class="footer-inner">
|
||||
<p class="footer-copy">© 2026 ADAMETZ.MEDIA – Kevin Adametz</p>
|
||||
<div class="footer-links">
|
||||
<a href="https://markemacht.de">MARKE MACHT</a>
|
||||
<a href="impressum.html">Impressum</a>
|
||||
<a href="datenschutz.html">Datenschutz</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
47
_adametz.media/manifest.json
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
{
|
||||
"name": "ADAMETZ.MEDIA",
|
||||
"short_name": "Adametz",
|
||||
"start_url": "/",
|
||||
"scope": "/",
|
||||
"display": "standalone",
|
||||
"theme_color": "#0a0a0a",
|
||||
"background_color": "#0a0a0a",
|
||||
"icons": [
|
||||
{
|
||||
"src": "assets/android-icon-36x36.png",
|
||||
"sizes": "36x36",
|
||||
"type": "image/png",
|
||||
"density": "0.75"
|
||||
},
|
||||
{
|
||||
"src": "assets/android-icon-48x48.png",
|
||||
"sizes": "48x48",
|
||||
"type": "image/png",
|
||||
"density": "1.0"
|
||||
},
|
||||
{
|
||||
"src": "assets/android-icon-72x72.png",
|
||||
"sizes": "72x72",
|
||||
"type": "image/png",
|
||||
"density": "1.5"
|
||||
},
|
||||
{
|
||||
"src": "assets/android-icon-96x96.png",
|
||||
"sizes": "96x96",
|
||||
"type": "image/png",
|
||||
"density": "2.0"
|
||||
},
|
||||
{
|
||||
"src": "assets/android-icon-144x144.png",
|
||||
"sizes": "144x144",
|
||||
"type": "image/png",
|
||||
"density": "3.0"
|
||||
},
|
||||
{
|
||||
"src": "assets/android-icon-192x192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png",
|
||||
"density": "4.0"
|
||||
}
|
||||
]
|
||||
}
|
||||
4
_adametz.media/robots.txt
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
User-agent: *
|
||||
Allow: /
|
||||
|
||||
Sitemap: https://adametz.media/sitemap.xml
|
||||
135
_adametz.media/scripts/build-site.py
Executable file
|
|
@ -0,0 +1,135 @@
|
|||
#!/usr/bin/env python3
|
||||
"""Synchronisiert head-common, Header und Footer in alle HTML-Seiten."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import re
|
||||
from pathlib import Path
|
||||
|
||||
ROOT = Path(__file__).resolve().parent.parent
|
||||
VERSION = (ROOT / 'assets' / 'version.txt').read_text().strip()
|
||||
HEAD_COMMON = ROOT / 'assets' / 'components' / 'head-common.html'
|
||||
HEADER_INDEX = ROOT / 'assets' / 'components' / 'header-index.html'
|
||||
HEADER_SUB = ROOT / 'assets' / 'components' / 'header-sub.html'
|
||||
FOOTER = ROOT / 'assets' / 'components' / 'footer.html'
|
||||
|
||||
HEAD_MOUNT = re.compile(r' <!-- data-site-head -->\n')
|
||||
HEAD_BLOCK = re.compile(
|
||||
r' <meta property="og:locale" content="de_DE" />.*?"name": "ADAMETZ\.MEDIA"\n \}\n \}\n </script>\n',
|
||||
re.DOTALL,
|
||||
)
|
||||
HEADER_MOUNT = re.compile(r' <div data-site-header></div>\n')
|
||||
FOOTER_MOUNT = re.compile(r' <div data-site-footer></div>\n')
|
||||
|
||||
STYLESHEET = re.compile(
|
||||
r'<link rel="stylesheet" href="assets/styles\.css(?:\?v=[^"]*)?" />'
|
||||
)
|
||||
APP_JS = re.compile(
|
||||
r'<script src="assets/js/app\.js(?:\?v=[^"]*)?" defer></script>'
|
||||
)
|
||||
|
||||
HERO_IMG = re.compile(
|
||||
r'<img\s+src="assets/img/hero-bg2\.webp"[^>]*>',
|
||||
re.DOTALL,
|
||||
)
|
||||
|
||||
HERO_IMG_REPLACEMENT = '''<img
|
||||
src="assets/img/hero-bg2.webp"
|
||||
srcset="assets/img/hero-bg2-640.webp 640w, assets/img/hero-bg2-960.webp 960w, assets/img/hero-bg2.webp 1920w"
|
||||
sizes="100vw"
|
||||
alt="Abstrakte architektonische Struktur"
|
||||
width="1920"
|
||||
height="1080"
|
||||
loading="eager"
|
||||
fetchpriority="high"
|
||||
decoding="async"
|
||||
/>'''
|
||||
|
||||
INDEX_PAGES = {'index.html'}
|
||||
|
||||
|
||||
def indent_block(text: str, prefix: str = ' ') -> str:
|
||||
lines = text.strip('\n').splitlines()
|
||||
return '\n'.join(prefix + line if line.strip() else '' for line in lines) + '\n'
|
||||
|
||||
|
||||
def build_head() -> str:
|
||||
content = HEAD_COMMON.read_text()
|
||||
content = content.replace('{{VERSION}}', VERSION)
|
||||
return indent_block(content)
|
||||
|
||||
|
||||
def build_header(path: Path) -> str:
|
||||
if path.name in INDEX_PAGES:
|
||||
return indent_block(HEADER_INDEX.read_text())
|
||||
return indent_block(HEADER_SUB.read_text())
|
||||
|
||||
|
||||
def process_html(path: Path) -> bool:
|
||||
text = path.read_text()
|
||||
if '<!-- data-site-head -->' not in text and 'og:locale' not in text:
|
||||
return False
|
||||
|
||||
original = text
|
||||
|
||||
if HEAD_MOUNT.search(text):
|
||||
text = HEAD_MOUNT.sub(build_head(), text, count=1)
|
||||
elif 'og:locale' in text:
|
||||
text = HEAD_BLOCK.sub(build_head(), text, count=1)
|
||||
|
||||
if HEADER_MOUNT.search(text):
|
||||
text = HEADER_MOUNT.sub(build_header(path), text, count=1)
|
||||
|
||||
if FOOTER_MOUNT.search(text):
|
||||
footer = indent_block(FOOTER.read_text())
|
||||
text = FOOTER_MOUNT.sub(footer, text, count=1)
|
||||
|
||||
text = STYLESHEET.sub(
|
||||
f'<link rel="stylesheet" href="assets/styles.css?v={VERSION}" />',
|
||||
text,
|
||||
)
|
||||
text = APP_JS.sub(
|
||||
f'<script src="assets/js/app.js?v={VERSION}" defer></script>',
|
||||
text,
|
||||
)
|
||||
|
||||
if path.name == 'index.html':
|
||||
text = HERO_IMG.sub(HERO_IMG_REPLACEMENT, text, count=1)
|
||||
preload = (
|
||||
' <link rel="preload" as="image" href="assets/img/hero-bg2-960.webp" '
|
||||
'type="image/webp" fetchpriority="high" '
|
||||
'imagesrcset="assets/img/hero-bg2-640.webp 640w, '
|
||||
'assets/img/hero-bg2-960.webp 960w, assets/img/hero-bg2.webp 1920w" '
|
||||
'imagesizes="100vw" />\n'
|
||||
)
|
||||
for _ in range(3):
|
||||
text = re.sub(
|
||||
r' <link rel="preload" as="image" href="assets/img/hero-bg2[^"]*"[^/]*/>\n',
|
||||
'',
|
||||
text,
|
||||
)
|
||||
manifest_line = ' <link rel="manifest" href="manifest.json" />\n'
|
||||
if preload.strip() not in text and manifest_line in text:
|
||||
text = text.replace(manifest_line, manifest_line + preload, 1)
|
||||
|
||||
if text != original:
|
||||
path.write_text(text)
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
def main() -> None:
|
||||
updated = []
|
||||
for path in sorted(ROOT.glob('*.html')):
|
||||
if process_html(path):
|
||||
updated.append(path.name)
|
||||
|
||||
print(f'Version: {VERSION}')
|
||||
for name in updated:
|
||||
print(f' aktualisiert: {name}')
|
||||
if not updated:
|
||||
print(' keine Änderungen')
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
18
_adametz.media/sitemap.xml
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||
<url>
|
||||
<loc>https://adametz.media/</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>1.0</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://adametz.media/impressum.html</loc>
|
||||
<changefreq>yearly</changefreq>
|
||||
<priority>0.3</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://adametz.media/datenschutz.html</loc>
|
||||
<changefreq>yearly</changefreq>
|
||||
<priority>0.3</priority>
|
||||
</url>
|
||||
</urlset>
|
||||
5
_markemacht.de/.gitignore
vendored
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
# Composer-Abhängigkeiten (per `composer install` reproduzierbar)
|
||||
/vendor/
|
||||
|
||||
# Zugangsdaten – niemals committen (siehe config.example.php als Vorlage)
|
||||
/assets/php/config.php
|
||||
108
_markemacht.de/.htaccess
Normal file
|
|
@ -0,0 +1,108 @@
|
|||
# MARKE MACHT — Apache-Konfiguration (markemacht.de)
|
||||
# Kanonische Domain: https://markemacht.de (ohne www)
|
||||
|
||||
# ── Rewrite-Engine ────────────────────────────────────────────────────────────
|
||||
<IfModule mod_rewrite.c>
|
||||
RewriteEngine On
|
||||
RewriteBase /
|
||||
|
||||
# HTTPS erzwingen und www → non-www (301 Permanent)
|
||||
RewriteCond %{HTTPS} off [OR]
|
||||
RewriteCond %{HTTP_HOST} ^www\.markemacht\.de$ [NC]
|
||||
RewriteRule ^ https://markemacht.de%{REQUEST_URI} [R=301,L]
|
||||
|
||||
# Alte Denken-Artikel → Übersicht
|
||||
RewriteRule ^denken-agilitaet\.html$ /denken.html [R=301,L]
|
||||
RewriteRule ^denken-fuehrung-durch-reduktion\.html$ /denken.html [R=301,L]
|
||||
RewriteRule ^denken-architektursanierung\.html$ /denken.html [R=301,L]
|
||||
|
||||
# Build-Skript und interne Dateien nicht öffentlich
|
||||
RewriteRule ^scripts/ - [F,L]
|
||||
RewriteRule ^assets/components/ - [F,L]
|
||||
RewriteRule ^assets/version\.txt$ - [F,L]
|
||||
</IfModule>
|
||||
|
||||
# ── Fehlerseiten ──────────────────────────────────────────────────────────────
|
||||
ErrorDocument 404 /404.html
|
||||
|
||||
# ── Verzeichnislisting deaktivieren ───────────────────────────────────────────
|
||||
Options -Indexes -MultiViews
|
||||
|
||||
# ── Standard-Dokument ─────────────────────────────────────────────────────────
|
||||
DirectoryIndex index.html
|
||||
|
||||
# ── Zeichensatz ───────────────────────────────────────────────────────────────
|
||||
AddDefaultCharset UTF-8
|
||||
|
||||
# ── MIME-Typen ────────────────────────────────────────────────────────────────
|
||||
<IfModule mod_mime.c>
|
||||
AddType image/webp .webp
|
||||
AddType image/svg+xml .svg
|
||||
AddType font/woff2 .woff2
|
||||
AddType font/woff .woff
|
||||
</IfModule>
|
||||
|
||||
# ── Kompression ───────────────────────────────────────────────────────────────
|
||||
<IfModule mod_deflate.c>
|
||||
AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml
|
||||
AddOutputFilterByType DEFLATE application/javascript application/json application/xml
|
||||
AddOutputFilterByType DEFLATE image/svg+xml font/woff2 font/woff
|
||||
</IfModule>
|
||||
|
||||
<IfModule mod_brotli.c>
|
||||
AddOutputFilterByType BROTLI_COMPRESS text/html text/plain text/css text/xml
|
||||
AddOutputFilterByType BROTLI_COMPRESS application/javascript application/json application/xml
|
||||
AddOutputFilterByType BROTLI_COMPRESS image/svg+xml font/woff2 font/woff
|
||||
</IfModule>
|
||||
|
||||
# ── Cache-Steuerung ───────────────────────────────────────────────────────────
|
||||
<IfModule mod_expires.c>
|
||||
ExpiresActive On
|
||||
ExpiresDefault "access plus 0 seconds"
|
||||
|
||||
# HTML-Seiten: immer frisch validieren
|
||||
ExpiresByType text/html "access plus 0 seconds"
|
||||
|
||||
# Statische Assets: 7 Tage (Cache-Busting via ?v= in CSS/JS)
|
||||
ExpiresByType text/css "access plus 7 days"
|
||||
ExpiresByType application/javascript "access plus 7 days"
|
||||
ExpiresByType image/svg+xml "access plus 7 days"
|
||||
ExpiresByType image/webp "access plus 7 days"
|
||||
ExpiresByType image/jpeg "access plus 7 days"
|
||||
ExpiresByType image/png "access plus 7 days"
|
||||
ExpiresByType font/woff2 "access plus 7 days"
|
||||
ExpiresByType font/woff "access plus 7 days"
|
||||
</IfModule>
|
||||
|
||||
<IfModule mod_headers.c>
|
||||
# Statische Assets unter /assets/
|
||||
SetEnvIf Request_URI "^/assets/" ASSET_PATH=1
|
||||
Header set Cache-Control "public, max-age=604800, immutable" env=ASSET_PATH
|
||||
|
||||
# HTML: Revalidierung erlauben
|
||||
<FilesMatch "\.(html)$">
|
||||
Header set Cache-Control "no-cache, must-revalidate"
|
||||
</FilesMatch>
|
||||
|
||||
# Sicherheits-Header
|
||||
Header always set X-Content-Type-Options "nosniff"
|
||||
Header always set X-Frame-Options "SAMEORIGIN"
|
||||
Header always set Referrer-Policy "strict-origin-when-cross-origin"
|
||||
Header always set Permissions-Policy "camera=(), microphone=(), geolocation=()"
|
||||
Header always set Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' https://sys.adametz.media; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; connect-src 'self' https://sys.adametz.media; frame-ancestors 'self'; base-uri 'self'; form-action 'self' mailto:"
|
||||
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains" env=HTTPS
|
||||
</IfModule>
|
||||
|
||||
# ── Zugriffsschutz (interne / sensible Dateien) ──────────────────────────────
|
||||
<FilesMatch "(^\.|\.md$|composer\.(json|lock)$)">
|
||||
Require all denied
|
||||
</FilesMatch>
|
||||
|
||||
<FilesMatch "(^|/)version\.txt$">
|
||||
Require all denied
|
||||
</FilesMatch>
|
||||
|
||||
<IfModule mod_rewrite.c>
|
||||
RewriteRule ^vendor/ - [F,L]
|
||||
RewriteRule ^docker/ - [F,L]
|
||||
</IfModule>
|
||||
276
_markemacht.de/404.html
Normal file
|
|
@ -0,0 +1,276 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="de" data-theme="monolith">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
|
||||
<title>Seite nicht gefunden · MARKE MACHT</title>
|
||||
<meta name="description" content="Die angeforderte Seite wurde nicht gefunden." />
|
||||
<meta name="robots" content="noindex" />
|
||||
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:site_name" content="MARKE MACHT" />
|
||||
<meta property="og:title" content="Seite nicht gefunden · MARKE MACHT" />
|
||||
<meta property="og:description" content="Die angeforderte Seite wurde nicht gefunden." />
|
||||
<meta property="og:url" content="https://markemacht.de/404.html" />
|
||||
<link rel="canonical" href="https://markemacht.de/" />
|
||||
<meta property="og:locale" content="de_DE" />
|
||||
<meta property="og:image" content="https://markemacht.de/assets/img/og-share.webp" />
|
||||
<meta property="og:image:width" content="1200" />
|
||||
<meta property="og:image:height" content="630" />
|
||||
<meta property="og:image:alt" content="MARKE MACHT — Denkraum für Unternehmer" />
|
||||
<meta name="twitter:card" content="summary_large_image" />
|
||||
<meta name="twitter:image" content="https://markemacht.de/assets/img/og-share.webp" />
|
||||
<meta name="theme-color" content="#0A0A0A" media="(prefers-color-scheme: dark)" />
|
||||
<meta name="theme-color" content="#FBFAF2" media="(prefers-color-scheme: light)" />
|
||||
|
||||
<link rel="icon" type="image/svg+xml" href="./assets/favicon.svg" />
|
||||
<link rel="preconnect" href="https://sys.adametz.media" crossorigin />
|
||||
|
||||
<script>
|
||||
(function () {
|
||||
'use strict';
|
||||
if ('scrollRestoration' in history) history.scrollRestoration = 'manual';
|
||||
if (!location.hash) window.scrollTo(0, 0);
|
||||
|
||||
var key = 'mm-wirkung';
|
||||
var valid = ['monolith', 'editorial'];
|
||||
var v = null;
|
||||
try { v = localStorage.getItem(key); } catch (_) {}
|
||||
if (valid.indexOf(v) === -1) v = 'monolith';
|
||||
document.documentElement.setAttribute('data-theme', v);
|
||||
|
||||
var fontBase = './assets/fonts/';
|
||||
var displayFont = v === 'editorial'
|
||||
? fontBase + 'plus-jakarta-sans/plus-jakarta-sans-v12-latin-600.woff2'
|
||||
: fontBase + 'outfit/outfit-v15-latin-700.woff2';
|
||||
[fontBase + 'space-grotesk/space-grotesk-v22-latin-regular.woff2', displayFont].forEach(function (href) {
|
||||
var link = document.createElement('link');
|
||||
link.rel = 'preload';
|
||||
link.as = 'font';
|
||||
link.type = 'font/woff2';
|
||||
link.crossOrigin = 'anonymous';
|
||||
link.href = href;
|
||||
document.head.appendChild(link);
|
||||
});
|
||||
|
||||
['./assets/fonts/fonts-shared.css', './assets/fonts/fonts-' + v + '.css'].forEach(function (href) {
|
||||
var link = document.createElement('link');
|
||||
link.rel = 'stylesheet';
|
||||
link.href = href;
|
||||
document.head.appendChild(link);
|
||||
});
|
||||
|
||||
var heroes = {
|
||||
'index.html': { monolith: 'start-monolith.webp', editorial: 'start-editorial.webp' },
|
||||
'manifest.html': { monolith: 'manifest-monolith.webp', editorial: 'manifest-editorial.webp' },
|
||||
'methode.html': { monolith: 'methode-monolith.webp', editorial: 'methode-editorial.webp' },
|
||||
'denken.html': { monolith: 'denken-monolith.webp', editorial: 'denken-editorial.webp' }
|
||||
};
|
||||
var page = location.pathname.split('/').pop() || 'index.html';
|
||||
var pair = heroes[page];
|
||||
if (pair) {
|
||||
var img = pair[v] || pair.monolith;
|
||||
var preload = document.createElement('link');
|
||||
preload.rel = 'preload';
|
||||
preload.as = 'image';
|
||||
preload.href = './assets/img/' + img;
|
||||
preload.type = 'image/webp';
|
||||
if ('fetchPriority' in preload) preload.fetchPriority = 'high';
|
||||
document.head.appendChild(preload);
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<link rel="stylesheet" href="./assets/css/app.css?v=20250610" />
|
||||
<script defer src="https://sys.adametz.media/config.js" data-website-id="40125fcf-49c4-43f3-a9a5-9eec5eb55696"></script>
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "WebSite",
|
||||
"name": "MARKE MACHT",
|
||||
"url": "https://markemacht.de/",
|
||||
"description": "Denkraum für Unternehmer im Mittelstand. Marke ist die Fähigkeit eines Unternehmens, sich selbst eindeutig zu erklären.",
|
||||
"inLanguage": "de-DE"
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<a class="visually-hidden" href="#main">Zum Inhalt springen</a>
|
||||
|
||||
<nav class="nav" aria-label="Hauptnavigation" data-site-nav>
|
||||
<div class="nav-inner">
|
||||
<a class="nav-brand" href="./index.html">MARKE MACHT</a>
|
||||
|
||||
<div class="nav-links">
|
||||
<a class="nav-link" href="./index.html" data-nav-page="start">Start</a>
|
||||
<a class="nav-link" href="./manifest.html" data-nav-page="manifest">Manifest</a>
|
||||
<a class="nav-link" href="./methode.html" data-nav-page="methode">Methode</a>
|
||||
<a class="nav-link" href="./denken.html" data-nav-page="denken">Denken</a>
|
||||
</div>
|
||||
|
||||
<div class="wirkung-switch" role="group" aria-label="Wirkung wechseln">
|
||||
<span class="wirkung-label">Wirkung:</span>
|
||||
<button type="button" class="wirkung-option" data-wirkung="monolith" aria-pressed="false">monolithisch</button>
|
||||
<span class="wirkung-sep" aria-hidden="true">·</span>
|
||||
<button type="button" class="wirkung-option" data-wirkung="editorial" aria-pressed="false">editorial</button>
|
||||
</div>
|
||||
|
||||
<a class="nav-cta" href="./audit.html">Audit anfragen</a>
|
||||
|
||||
<button class="menu-btn" data-drawer-open aria-label="Menü öffnen" aria-controls="mobile-drawer" aria-expanded="false">
|
||||
<svg class="icon" aria-hidden="true"><use href="./assets/icons.svg#menu"></use></svg>
|
||||
</button>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<aside id="mobile-drawer" class="mobile-drawer" data-mobile-drawer aria-hidden="true" aria-label="Mobile Navigation">
|
||||
<div class="mobile-drawer-head">
|
||||
<span class="nav-brand">MARKE MACHT</span>
|
||||
<button class="menu-btn" data-drawer-close aria-label="Menü schließen">
|
||||
<svg class="icon" aria-hidden="true"><use href="./assets/icons.svg#close"></use></svg>
|
||||
</button>
|
||||
</div>
|
||||
<nav class="mobile-drawer-links" aria-label="Mobile Hauptnavigation">
|
||||
<a class="mobile-drawer-link" href="./index.html" data-nav-page="start">Start</a>
|
||||
<a class="mobile-drawer-link" href="./manifest.html" data-nav-page="manifest">Manifest</a>
|
||||
<a class="mobile-drawer-link" href="./methode.html" data-nav-page="methode">Methode</a>
|
||||
<a class="mobile-drawer-link" href="./denken.html" data-nav-page="denken">Denken</a>
|
||||
</nav>
|
||||
<div class="mobile-drawer-footer">
|
||||
<div class="wirkung-switch" role="group" aria-label="Wirkung wechseln">
|
||||
<span class="wirkung-label">Wirkung:</span>
|
||||
<button type="button" class="wirkung-option" data-wirkung="monolith" aria-pressed="false">monolithisch</button>
|
||||
<span class="wirkung-sep" aria-hidden="true">·</span>
|
||||
<button type="button" class="wirkung-option" data-wirkung="editorial" aria-pressed="false">editorial</button>
|
||||
</div>
|
||||
<a class="nav-cta mobile-drawer-cta" href="./audit.html">Audit anfragen</a>
|
||||
</div>
|
||||
</aside>
|
||||
|
||||
<main id="main">
|
||||
<section class="section">
|
||||
<div class="shell grid-12">
|
||||
<div class="col-12 stack-32" style="padding-block: clamp(64px, 12vw, 128px);">
|
||||
<span class="meta accent">404</span>
|
||||
<h1 class="section-headline" style="max-width: 16ch;">Diese Seite existiert nicht.</h1>
|
||||
<p class="body-text dim max-prose">
|
||||
Der Link ist veraltet oder die Adresse wurde falsch eingegeben. Vielleicht finden Sie hier, was Sie suchen:
|
||||
</p>
|
||||
<div class="btn-row">
|
||||
<a class="btn" href="./index.html">
|
||||
Zur Startseite
|
||||
<svg class="icon" aria-hidden="true"><use href="./assets/icons.svg#arrow-forward"></use></svg>
|
||||
</a>
|
||||
<a class="btn btn-ghost" href="./denken.html">
|
||||
Zum Denkraum
|
||||
<svg class="icon" aria-hidden="true"><use href="./assets/icons.svg#arrow-forward"></use></svg>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<footer class="site-footer">
|
||||
<div class="footer-inner">
|
||||
<div class="footer-meta">
|
||||
<p class="footer-copy">© MARKE MACHT · Denkraum für Unternehmer</p>
|
||||
<p class="footer-note">Keine Cookies</p>
|
||||
</div>
|
||||
<div class="footer-links">
|
||||
<a class="footer-link" href="./impressum.html">Impressum</a>
|
||||
<a class="footer-link" href="./datenschutz.html">Datenschutz</a>
|
||||
<button class="footer-link" type="button" data-audit-modal-open>Anfrage</button>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<div class="modal-backdrop" data-audit-modal aria-hidden="true">
|
||||
<div class="modal-dialog" role="dialog" aria-modal="true" aria-labelledby="audit-modal-title" aria-describedby="audit-modal-desc">
|
||||
<button class="modal-close" type="button" data-audit-modal-close aria-label="Anfragefenster schließen">
|
||||
<svg class="icon" aria-hidden="true"><use href="./assets/icons.svg#close"></use></svg>
|
||||
</button>
|
||||
|
||||
<div class="stack-32">
|
||||
<div class="stack-16">
|
||||
<span class="meta accent">Anfrage</span>
|
||||
<h2 class="section-headline" id="audit-modal-title" style="max-width: 16ch;">Kurzer Erstkontakt.</h2>
|
||||
<p class="body-text max-prose" id="audit-modal-desc">
|
||||
Wählen Sie den direkten E-Mail-Weg oder senden Sie eine knappe Anfrage über das Formular.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="card stack-16">
|
||||
<span class="meta">Direkt per E-Mail</span>
|
||||
<p class="body-text">
|
||||
Öffnet Ihr E-Mail-Programm mit vorausgefülltem Betreff.
|
||||
</p>
|
||||
<div>
|
||||
<a class="btn btn-nav-cta" href="mailto:info@markemacht.de?subject=Anfrage%20Marken-Klarheits-Audit">
|
||||
E-Mail öffnen
|
||||
<svg class="icon" aria-hidden="true"><use href="./assets/icons.svg#arrow-forward"></use></svg>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div data-audit-form-panel>
|
||||
<form class="modal-form stack-16" data-audit-form novalidate>
|
||||
<div class="form-field">
|
||||
<label class="meta" for="audit-name">Name</label>
|
||||
<input id="audit-name" name="name" type="text" autocomplete="name" required />
|
||||
</div>
|
||||
|
||||
<div class="form-field">
|
||||
<label class="meta" for="audit-email">E-Mail</label>
|
||||
<input id="audit-email" name="email" type="email" autocomplete="email" required />
|
||||
</div>
|
||||
|
||||
<div class="form-field">
|
||||
<label class="meta" for="audit-message">Worum geht es?</label>
|
||||
<textarea id="audit-message" name="message" rows="5" required></textarea>
|
||||
</div>
|
||||
|
||||
<div class="form-honeypot" aria-hidden="true">
|
||||
<label for="audit-company">Firma</label>
|
||||
<input id="audit-company" name="company" type="text" tabindex="-1" autocomplete="off" />
|
||||
<label for="audit-url">Website</label>
|
||||
<input id="audit-url" name="url" type="url" tabindex="-1" autocomplete="off" />
|
||||
</div>
|
||||
|
||||
<label class="form-check">
|
||||
<input name="privacy" type="checkbox" required />
|
||||
<span class="form-switch" aria-hidden="true"></span>
|
||||
<span>Ich akzeptiere die <a href="./datenschutz.html">Datenschutzerklärung</a>.</span>
|
||||
</label>
|
||||
|
||||
<p class="form-status body-text" data-audit-form-status aria-live="polite"></p>
|
||||
|
||||
<div>
|
||||
<button class="btn btn-nav-cta" type="submit">
|
||||
Absenden
|
||||
<svg class="icon" aria-hidden="true"><use href="./assets/icons.svg#arrow-forward"></use></svg>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="form-success" data-audit-form-success hidden>
|
||||
<div class="form-success-icon" aria-hidden="true">
|
||||
<svg class="icon icon--lg" aria-hidden="true"><use href="./assets/icons.svg#check-circle"></use></svg>
|
||||
</div>
|
||||
<div class="stack-16">
|
||||
<h3 class="sub-headline">Vielen Dank für Ihre Anfrage.</h3>
|
||||
<p class="body-text">Wir werden uns in Kürze bei Ihnen melden.</p>
|
||||
</div>
|
||||
<button class="btn btn-ghost" type="button" data-audit-modal-close>
|
||||
Schließen
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="./assets/js/app.js?v=20250610" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
233
_markemacht.de/DEPLOYMENT.md
Normal file
|
|
@ -0,0 +1,233 @@
|
|||
# Live-Deployment — markemacht.de
|
||||
|
||||
Kurzanleitung für den Upload auf den Produktionsserver (Apache + `.htaccess`).
|
||||
|
||||
---
|
||||
|
||||
## Server-Anforderungen
|
||||
|
||||
| Komponente | Erforderlich |
|
||||
|------------|--------------|
|
||||
| **Webserver** | Apache mit `mod_rewrite`, `mod_headers`, `mod_expires`, `mod_deflate` |
|
||||
| **PHP** | 8.1+ (nur für Kontaktformular unter `assets/php/`) |
|
||||
| **HTTPS** | Pflicht — wird per `.htaccess` erzwungen |
|
||||
| **Optional** | `mod_brotli` (zusätzliche Kompression) |
|
||||
|
||||
Domain: **https://markemacht.de** (ohne `www`).
|
||||
|
||||
---
|
||||
|
||||
## Deploy-Ablauf (Checkliste)
|
||||
|
||||
### 1. Vor dem Upload (lokal)
|
||||
|
||||
```bash
|
||||
cd _markemacht.de
|
||||
|
||||
# Bei CSS/JS-Änderungen: Version erhöhen
|
||||
# → assets/version.txt (z. B. 20250610)
|
||||
|
||||
# Head, Header, Footer in alle HTML-Seiten einspielen
|
||||
python3 scripts/build-site.py
|
||||
|
||||
# PHP-Abhängigkeiten (nur wenn Formular genutzt wird)
|
||||
php composer install --no-dev --optimize-autoloader
|
||||
|
||||
/usr/bin/php84 /usr/bin/composer
|
||||
```
|
||||
|
||||
### 2. Auf den Server hochladen
|
||||
|
||||
Document Root = Inhalt von `_markemacht.de/` (alle Dateien im Root der Domain).
|
||||
|
||||
### 3. Nach dem Upload (einmalig / bei Formular)
|
||||
|
||||
```bash
|
||||
# Auf dem Server, im Ordner assets/php/:
|
||||
cp config.example.php config.php
|
||||
# → SMTP-Zugangsdaten eintragen (nicht ins Git committen)
|
||||
```
|
||||
|
||||
### 4. Kurz testen
|
||||
|
||||
- [ ] https://markemacht.de/ lädt korrekt
|
||||
- [ ] Wirkungs-Umschalter (monolithisch / editorial) funktioniert
|
||||
- [ ] Anfrage-Modal öffnet sich, Formular sendet (oder Fehlermeldung bei fehlender SMTP-Config)
|
||||
- [ ] https://markemacht.de/robots.txt erreichbar
|
||||
- [ ] https://markemacht.de/sitemap.xml erreichbar
|
||||
- [ ] Ungültige URL zeigt `404.html`
|
||||
- [ ] Alte URLs leiten um: `/denken-agilitaet.html` → `/denken.html`
|
||||
|
||||
---
|
||||
|
||||
## Was hochladen — was nicht
|
||||
|
||||
### Mit hochladen
|
||||
|
||||
- Alle `*.html` im Root (inkl. `404.html`)
|
||||
- `.htaccess`
|
||||
- `robots.txt`, `sitemap.xml`
|
||||
- `assets/` (css, js, fonts, img, icons.svg, components, php)
|
||||
- `vendor/` — **nur wenn** das Kontaktformular aktiv ist
|
||||
|
||||
### Nicht öffentlich / nicht nötig auf Static-Only-Hosting
|
||||
|
||||
| Pfad | Grund |
|
||||
|------|--------|
|
||||
| `scripts/` | Build-Skript — wird per `.htaccess` blockiert |
|
||||
| `docker/` | Nur für lokale Entwicklung |
|
||||
| `vendor/` | Nur für PHP-Formular nötig |
|
||||
| `assets/php/config.php` | Enthält SMTP-Passwort — nur auf Server anlegen |
|
||||
| `*.md` (außer intern) | Werden per `.htaccess` blockiert |
|
||||
| `composer.json` / `composer.lock` | Werden blockiert |
|
||||
|
||||
Die **vollständigen Font-Archive** unter `assets/fonts/*/` können auf dem Server liegen bleiben (Reserve). Beim Seitenaufruf werden nur die reduzierten Theme-Bundles geladen (`fonts-monolith.css` / `fonts-editorial.css` + `fonts-shared.css`).
|
||||
|
||||
---
|
||||
|
||||
## Build-System & Komponenten
|
||||
|
||||
Die Seite nutzt **kein** Build-Tool wie Webpack. Stattdessen:
|
||||
|
||||
### Quell-Dateien (hier bearbeiten)
|
||||
|
||||
| Datei | Inhalt |
|
||||
|-------|--------|
|
||||
| `assets/components/head-common.html` | OG-Tags, Favicon, Theme-Init, CSS, Analytics, JSON-LD |
|
||||
| `assets/components/header.html` | Navigation, Mobile Drawer |
|
||||
| `assets/components/footer.html` | Footer + Anfrage-Modal |
|
||||
|
||||
### Build ausführen
|
||||
|
||||
```bash
|
||||
python3 scripts/build-site.py
|
||||
```
|
||||
|
||||
Das Skript:
|
||||
|
||||
1. Spiegelt `head-common.html` in alle HTML-Seiten (ab `og:locale`)
|
||||
2. Bettet Header und Footer direkt in jede Seite ein (kein JS-Fetch mehr)
|
||||
3. Setzt Cache-Busting an `app.js?v=…` aus `assets/version.txt`
|
||||
4. Ergänzt auf `index.html` das LCP-Preload für das Hero-Bild
|
||||
|
||||
**Wichtig:** Nach Änderungen an den drei Komponenten immer Build ausführen, sonst sind die Live-HTML-Dateien veraltet.
|
||||
|
||||
### Cache-Busting
|
||||
|
||||
- Version steht in `assets/version.txt` (z. B. `20250609`)
|
||||
- `head-common.html` nutzt Platzhalter `{{VERSION}}` für `app.css?v={{VERSION}}`
|
||||
- Bei jedem Deploy mit CSS/Änderungen: **Version erhöhen** → Build → Upload
|
||||
|
||||
---
|
||||
|
||||
## Apache (`.htaccess`)
|
||||
|
||||
Die Live-Konfiguration liegt in `.htaccess` im Root. Wichtigste Regeln:
|
||||
|
||||
- **HTTPS + non-www** — Redirect auf `https://markemacht.de`
|
||||
- **301-Redirects** — alte Denken-Artikel → `denken.html`
|
||||
- **404** — `ErrorDocument 404 /404.html`
|
||||
- **Gzip + optional Brotli**
|
||||
- **Cache** — HTML: `no-cache`; Assets unter `/assets/`: 7 Tage `immutable`
|
||||
- **Security-Header** — CSP, `X-Frame-Options`, `Referrer-Policy` u. a.
|
||||
- **CSP** erlaubt Analytics von `https://sys.adametz.media`
|
||||
|
||||
Geschützte Pfade: `/scripts/`, `/vendor/`, `/docker/`, `/assets/version.txt`
|
||||
|
||||
---
|
||||
|
||||
## Kontaktformular (PHP)
|
||||
|
||||
Endpoint: `assets/php/send-anfrage.php`
|
||||
Konfiguration: `assets/php/config.php` (aus `config.example.php` kopieren)
|
||||
|
||||
```bash
|
||||
composer install --no-dev
|
||||
cp assets/php/config.example.php assets/php/config.php
|
||||
# config.php mit SMTP-Daten füllen
|
||||
```
|
||||
|
||||
`config.php` ist per `.htaccess` in `assets/php/` vor direktem Download geschützt.
|
||||
|
||||
Das Modal liegt im Footer (`assets/components/footer.html`) — nach Änderungen Build ausführen.
|
||||
|
||||
---
|
||||
|
||||
## Schriften & Icons
|
||||
|
||||
- **Keine Google Fonts** — alles lokal unter `assets/fonts/`
|
||||
- **Theme-Fonts** — Inline-Script in `head-common.html` setzt Theme, lädt Fonts und LCP-Preload; beim Wechsel lädt `app.js` das andere Bundle nach
|
||||
- **Icons** — SVG-Sprite `assets/icons.svg` (kein Icon-Font mehr)
|
||||
|
||||
---
|
||||
|
||||
## Analytics
|
||||
|
||||
Umami (selbst gehostet), eingebunden in `head-common.html`:
|
||||
|
||||
```html
|
||||
<script defer src="https://sys.adametz.media/config.js" data-website-id="40125fcf-49c4-43f3-a9a5-9eec5eb55696"></script>
|
||||
```
|
||||
|
||||
Keine Cookies. In der Datenschutzerklärung bereits beschrieben.
|
||||
|
||||
---
|
||||
|
||||
## SEO-Dateien
|
||||
|
||||
| Datei | URL |
|
||||
|-------|-----|
|
||||
| `robots.txt` | https://markemacht.de/robots.txt |
|
||||
| `sitemap.xml` | https://markemacht.de/sitemap.xml |
|
||||
| OG-Share-Bild | `assets/img/og-share.webp` (1200×630) |
|
||||
|
||||
Bei neuen indexierbaren Seiten: `sitemap.xml` manuell ergänzen.
|
||||
|
||||
---
|
||||
|
||||
## Bilder
|
||||
|
||||
- Hero- und Split-Bilder als **WebP** unter `assets/img/`
|
||||
- Benennung: `{seite}-monolith.webp` / `{seite}-editorial.webp`
|
||||
- Lazy Load über `app.js` (Intersection Observer)
|
||||
|
||||
Neue Bildpaare: in `assets/css/app.css` unter `.hero--*` bzw. `.split-visual .monolith` eintragen.
|
||||
|
||||
---
|
||||
|
||||
## Datenschutz & Cookies
|
||||
|
||||
- **Keine Cookies**
|
||||
- Wirkungs-Modus wird in **`localStorage`** gespeichert (`mm-wirkung`) — in Datenschutzerklärung dokumentiert
|
||||
- Beim Moduswechsel wird ein eventuelles Legacy-Cookie einmalig gelöscht (`app.js`)
|
||||
|
||||
---
|
||||
|
||||
## Typische Probleme
|
||||
|
||||
| Symptom | Lösung |
|
||||
|---------|--------|
|
||||
| Altes CSS/JS nach Deploy | `assets/version.txt` erhöhen, `build-site.py` ausführen, neu hochladen |
|
||||
| Header/Footer veraltet | Komponente bearbeitet, aber Build vergessen |
|
||||
| Formular sendet nicht | `config.php` auf Server prüfen, `vendor/` vorhanden, PHP-Fehlerlog |
|
||||
| 500 nach Upload | `.htaccess`-Module prüfen (`mod_rewrite`, `mod_headers`); PHP-Version |
|
||||
| CSP blockiert Script | Nur `self`, inline und `sys.adametz.media` erlaubt — keine fremden Scripts ohne CSP-Anpassung |
|
||||
| Fonts laden nicht | `assets/fonts/fonts-*.css` und zugehörige `.woff2` mit hochladen |
|
||||
|
||||
---
|
||||
|
||||
## Schnellreferenz — Änderungstyp → Schritte
|
||||
|
||||
| Änderung an … | Schritte |
|
||||
|---------------|----------|
|
||||
| `app.css` | Version ↑ → optional Build → Upload `app.css` + HTML (wegen `?v=`) |
|
||||
| `app.js` | Version ↑ → Build → Upload |
|
||||
| `head-common.html` | Bearbeiten → **Build** → alle HTML hochladen |
|
||||
| `header.html` / `footer.html` | Bearbeiten → **Build** → alle HTML hochladen |
|
||||
| Einzelne Inhaltsseite `*.html` | Direkt bearbeiten → hochladen (Head/Footer nur via Build sync) |
|
||||
| Neues Hero-Bild | WebP ablegen → CSS anpassen → Upload |
|
||||
| SMTP / Formular | Nur `config.php` auf Server |
|
||||
|
||||
---
|
||||
|
||||
*Stand: Juni 2025 — Projekt `_markemacht.de`*
|
||||
|
|
@ -2,12 +2,97 @@
|
|||
<div class="footer-inner">
|
||||
<div class="footer-meta">
|
||||
<p class="footer-copy">© MARKE MACHT · Denkraum für Unternehmer</p>
|
||||
<p class="footer-note">Keine Cookies, kein Tracking.</p>
|
||||
<p class="footer-note">Keine Cookies</p>
|
||||
</div>
|
||||
<div class="footer-links">
|
||||
<a class="footer-link" href="#">Impressum</a>
|
||||
<a class="footer-link" href="#">Datenschutz</a>
|
||||
<a class="footer-link" href="#">Kontakt</a>
|
||||
<a class="footer-link" href="./impressum.html">Impressum</a>
|
||||
<a class="footer-link" href="./datenschutz.html">Datenschutz</a>
|
||||
<button class="footer-link" type="button" data-audit-modal-open>Anfrage</button>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<div class="modal-backdrop" data-audit-modal aria-hidden="true">
|
||||
<div class="modal-dialog" role="dialog" aria-modal="true" aria-labelledby="audit-modal-title" aria-describedby="audit-modal-desc">
|
||||
<button class="modal-close" type="button" data-audit-modal-close aria-label="Anfragefenster schließen">
|
||||
<svg class="icon" aria-hidden="true"><use href="./assets/icons.svg#close"></use></svg>
|
||||
</button>
|
||||
|
||||
<div class="stack-32">
|
||||
<div class="stack-16">
|
||||
<span class="meta accent">Anfrage</span>
|
||||
<h2 class="section-headline" id="audit-modal-title" style="max-width: 16ch;">Kurzer Erstkontakt.</h2>
|
||||
<p class="body-text max-prose" id="audit-modal-desc">
|
||||
Wählen Sie den direkten E-Mail-Weg oder senden Sie eine knappe Anfrage über das Formular.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="card stack-16">
|
||||
<span class="meta">Direkt per E-Mail</span>
|
||||
<p class="body-text">
|
||||
Öffnet Ihr E-Mail-Programm mit vorausgefülltem Betreff.
|
||||
</p>
|
||||
<div>
|
||||
<a class="btn btn-nav-cta" href="mailto:info@markemacht.de?subject=Anfrage%20Marken-Klarheits-Audit">
|
||||
E-Mail öffnen
|
||||
<svg class="icon" aria-hidden="true"><use href="./assets/icons.svg#arrow-forward"></use></svg>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div data-audit-form-panel>
|
||||
<form class="modal-form stack-16" data-audit-form novalidate>
|
||||
<div class="form-field">
|
||||
<label class="meta" for="audit-name">Name</label>
|
||||
<input id="audit-name" name="name" type="text" autocomplete="name" required />
|
||||
</div>
|
||||
|
||||
<div class="form-field">
|
||||
<label class="meta" for="audit-email">E-Mail</label>
|
||||
<input id="audit-email" name="email" type="email" autocomplete="email" required />
|
||||
</div>
|
||||
|
||||
<div class="form-field">
|
||||
<label class="meta" for="audit-message">Worum geht es?</label>
|
||||
<textarea id="audit-message" name="message" rows="5" required></textarea>
|
||||
</div>
|
||||
|
||||
<div class="form-honeypot" aria-hidden="true">
|
||||
<label for="audit-company">Firma</label>
|
||||
<input id="audit-company" name="company" type="text" tabindex="-1" autocomplete="off" />
|
||||
<label for="audit-url">Website</label>
|
||||
<input id="audit-url" name="url" type="url" tabindex="-1" autocomplete="off" />
|
||||
</div>
|
||||
|
||||
<label class="form-check">
|
||||
<input name="privacy" type="checkbox" required />
|
||||
<span class="form-switch" aria-hidden="true"></span>
|
||||
<span>Ich akzeptiere die <a href="./datenschutz.html">Datenschutzerklärung</a>.</span>
|
||||
</label>
|
||||
|
||||
<p class="form-status body-text" data-audit-form-status aria-live="polite"></p>
|
||||
|
||||
<div>
|
||||
<button class="btn btn-nav-cta" type="submit">
|
||||
Absenden
|
||||
<svg class="icon" aria-hidden="true"><use href="./assets/icons.svg#arrow-forward"></use></svg>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="form-success" data-audit-form-success hidden>
|
||||
<div class="form-success-icon" aria-hidden="true">
|
||||
<svg class="icon icon--lg" aria-hidden="true"><use href="./assets/icons.svg#check-circle"></use></svg>
|
||||
</div>
|
||||
<div class="stack-16">
|
||||
<h3 class="sub-headline">Vielen Dank für Ihre Anfrage.</h3>
|
||||
<p class="body-text">Wir werden uns in Kürze bei Ihnen melden.</p>
|
||||
</div>
|
||||
<button class="btn btn-ghost" type="button" data-audit-modal-close>
|
||||
Schließen
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
81
_markemacht.de/assets/components/head-common.html
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
<meta property="og:locale" content="de_DE" />
|
||||
<meta property="og:image" content="https://markemacht.de/assets/img/og-share.webp" />
|
||||
<meta property="og:image:width" content="1200" />
|
||||
<meta property="og:image:height" content="630" />
|
||||
<meta property="og:image:alt" content="MARKE MACHT — Denkraum für Unternehmer" />
|
||||
<meta name="twitter:card" content="summary_large_image" />
|
||||
<meta name="twitter:image" content="https://markemacht.de/assets/img/og-share.webp" />
|
||||
<meta name="theme-color" content="#0A0A0A" media="(prefers-color-scheme: dark)" />
|
||||
<meta name="theme-color" content="#FBFAF2" media="(prefers-color-scheme: light)" />
|
||||
|
||||
<link rel="icon" type="image/svg+xml" href="./assets/favicon.svg" />
|
||||
<link rel="preconnect" href="https://sys.adametz.media" crossorigin />
|
||||
|
||||
<script>
|
||||
(function () {
|
||||
'use strict';
|
||||
if ('scrollRestoration' in history) history.scrollRestoration = 'manual';
|
||||
if (!location.hash) window.scrollTo(0, 0);
|
||||
|
||||
var key = 'mm-wirkung';
|
||||
var valid = ['monolith', 'editorial'];
|
||||
var v = null;
|
||||
try { v = localStorage.getItem(key); } catch (_) {}
|
||||
if (valid.indexOf(v) === -1) v = 'monolith';
|
||||
document.documentElement.setAttribute('data-theme', v);
|
||||
|
||||
var fontBase = './assets/fonts/';
|
||||
var displayFont = v === 'editorial'
|
||||
? fontBase + 'plus-jakarta-sans/plus-jakarta-sans-v12-latin-600.woff2'
|
||||
: fontBase + 'outfit/outfit-v15-latin-700.woff2';
|
||||
[fontBase + 'space-grotesk/space-grotesk-v22-latin-regular.woff2', displayFont].forEach(function (href) {
|
||||
var link = document.createElement('link');
|
||||
link.rel = 'preload';
|
||||
link.as = 'font';
|
||||
link.type = 'font/woff2';
|
||||
link.crossOrigin = 'anonymous';
|
||||
link.href = href;
|
||||
document.head.appendChild(link);
|
||||
});
|
||||
|
||||
['./assets/fonts/fonts-shared.css', './assets/fonts/fonts-' + v + '.css'].forEach(function (href) {
|
||||
var link = document.createElement('link');
|
||||
link.rel = 'stylesheet';
|
||||
link.href = href;
|
||||
document.head.appendChild(link);
|
||||
});
|
||||
|
||||
var heroes = {
|
||||
'index.html': { monolith: 'start-monolith.webp', editorial: 'start-editorial.webp' },
|
||||
'manifest.html': { monolith: 'manifest-monolith.webp', editorial: 'manifest-editorial.webp' },
|
||||
'methode.html': { monolith: 'methode-monolith.webp', editorial: 'methode-editorial.webp' },
|
||||
'denken.html': { monolith: 'denken-monolith.webp', editorial: 'denken-editorial.webp' }
|
||||
};
|
||||
var page = location.pathname.split('/').pop() || 'index.html';
|
||||
var pair = heroes[page];
|
||||
if (pair) {
|
||||
var img = pair[v] || pair.monolith;
|
||||
var preload = document.createElement('link');
|
||||
preload.rel = 'preload';
|
||||
preload.as = 'image';
|
||||
preload.href = './assets/img/' + img;
|
||||
preload.type = 'image/webp';
|
||||
if ('fetchPriority' in preload) preload.fetchPriority = 'high';
|
||||
document.head.appendChild(preload);
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<link rel="stylesheet" href="./assets/css/app.css?v={{VERSION}}" />
|
||||
<script defer src="https://sys.adametz.media/config.js" data-website-id="40125fcf-49c4-43f3-a9a5-9eec5eb55696"></script>
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "WebSite",
|
||||
"name": "MARKE MACHT",
|
||||
"url": "https://markemacht.de/",
|
||||
"description": "Denkraum für Unternehmer im Mittelstand. Marke ist die Fähigkeit eines Unternehmens, sich selbst eindeutig zu erklären.",
|
||||
"inLanguage": "de-DE"
|
||||
}
|
||||
</script>
|
||||