Redesign homepage as single-page site with new dark/gold branding
Replaces the previous multi-page structure (Startseite, Leistungen, Über uns, Kontakt) with one long-form page covering pricing, work samples, process and FAQ, matching the new visual identity (dark theme, serif display type, sage-green logo mark). Old routes now redirect to the corresponding anchors. Adds Impressum and Datenschutz stub pages with clearly marked placeholders for the still-missing real content (contact details, founder bios, portfolio, pricing specifics). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
parent
ec872efa42
commit
478e032b0b
12 changed files with 1195 additions and 448 deletions
|
|
@ -2,4 +2,9 @@ import { defineConfig } from 'astro/config';
|
||||||
|
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
site: 'https://larpaso.de',
|
site: 'https://larpaso.de',
|
||||||
|
redirects: {
|
||||||
|
'/leistungen': '/#leistungen',
|
||||||
|
'/ueber-uns': '/#kontakt',
|
||||||
|
'/kontakt': '/#kontakt',
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
|
|
||||||
BIN
public/logo.jpg
Normal file
BIN
public/logo.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.5 KiB |
|
|
@ -3,76 +3,34 @@ const year = new Date().getFullYear();
|
||||||
---
|
---
|
||||||
|
|
||||||
<footer class="footer">
|
<footer class="footer">
|
||||||
<div class="container footer-inner">
|
<div class="container footer-bottom">
|
||||||
<div class="footer-brand">
|
<p>
|
||||||
<p class="footer-logo">Larpaso</p>
|
© {year} larpaso · Individuelle Websites, KI-gestützt entwickelt · Lara
|
||||||
<p class="footer-tagline">Individuelle Websites, KI-gestützt entwickelt.</p>
|
{' '}<span class="placeholder">[Nachname]</span> und Pascal <span class="placeholder">[Nachname]</span>
|
||||||
</div>
|
</p>
|
||||||
|
|
||||||
<nav class="footer-nav" aria-label="Footer-Navigation">
|
<nav class="footer-nav" aria-label="Footer-Navigation">
|
||||||
<a href="/">Startseite</a>
|
<a href="/impressum">Impressum</a>
|
||||||
<a href="/leistungen">Leistungen</a>
|
<a href="/datenschutz">Datenschutz</a>
|
||||||
<a href="/ueber-uns">Über uns</a>
|
<a href="#kontakt">Kontakt</a>
|
||||||
<a href="/kontakt">Kontakt</a>
|
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<div class="footer-contact">
|
|
||||||
<a href="mailto:kontakt@larpaso.de">kontakt@larpaso.de</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="container footer-bottom">
|
|
||||||
<p>© {year} Larpaso. Alle Rechte vorbehalten.</p>
|
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.footer {
|
.footer {
|
||||||
background: var(--color-surface);
|
background: var(--color-bg);
|
||||||
border-top: 1px solid var(--color-border);
|
border-top: 1px solid var(--color-border);
|
||||||
margin-top: var(--space-8);
|
margin-top: var(--space-8);
|
||||||
}
|
}
|
||||||
|
|
||||||
.footer-inner {
|
.footer-bottom {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
gap: var(--space-6);
|
align-items: center;
|
||||||
padding-block: var(--space-7);
|
gap: var(--space-4);
|
||||||
}
|
padding-block: var(--space-6);
|
||||||
|
|
||||||
.footer-logo {
|
|
||||||
font-weight: var(--font-weight-bold);
|
|
||||||
color: var(--color-text);
|
|
||||||
margin-bottom: var(--space-2);
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer-tagline {
|
|
||||||
font-size: var(--font-size-sm);
|
|
||||||
margin: 0;
|
|
||||||
max-width: 20rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer-nav {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
gap: var(--space-2);
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer-nav a,
|
|
||||||
.footer-contact a {
|
|
||||||
color: var(--color-text-muted);
|
|
||||||
font-size: var(--font-size-sm);
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer-nav a:hover,
|
|
||||||
.footer-contact a:hover {
|
|
||||||
color: var(--color-primary);
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer-bottom {
|
|
||||||
border-top: 1px solid var(--color-border);
|
|
||||||
padding-block: var(--space-4);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.footer-bottom p {
|
.footer-bottom p {
|
||||||
|
|
@ -81,9 +39,24 @@ const year = new Date().getFullYear();
|
||||||
color: var(--color-text-muted);
|
color: var(--color-text-muted);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.footer-nav {
|
||||||
|
display: flex;
|
||||||
|
gap: var(--space-5);
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-nav a {
|
||||||
|
color: var(--color-text-muted);
|
||||||
|
font-size: var(--font-size-sm);
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-nav a:hover {
|
||||||
|
color: var(--color-primary);
|
||||||
|
}
|
||||||
|
|
||||||
@media (max-width: 720px) {
|
@media (max-width: 720px) {
|
||||||
.footer-inner {
|
.footer-bottom {
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
align-items: flex-start;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -1,17 +1,18 @@
|
||||||
---
|
---
|
||||||
const navItems = [
|
const navItems = [
|
||||||
{ href: '/', label: 'Startseite' },
|
{ href: '#warum', label: 'Warum' },
|
||||||
{ href: '/leistungen', label: 'Leistungen' },
|
{ href: '#leistungen', label: 'Leistungen' },
|
||||||
{ href: '/ueber-uns', label: 'Über uns' },
|
{ href: '#arbeiten', label: 'Arbeiten' },
|
||||||
{ href: '/kontakt', label: 'Kontakt' },
|
{ href: '#ablauf', label: 'Ablauf' },
|
||||||
|
{ href: '#preis', label: 'Preis' },
|
||||||
];
|
];
|
||||||
|
|
||||||
const currentPath = Astro.url.pathname.replace(/\/$/, '') || '/';
|
|
||||||
---
|
---
|
||||||
|
|
||||||
<header class="nav">
|
<header class="nav">
|
||||||
<div class="container nav-inner">
|
<div class="container nav-inner">
|
||||||
<a href="/" class="nav-logo">Larpaso</a>
|
<a href="/" class="nav-logo">
|
||||||
|
<img src="/logo.jpg" alt="larpaso Webdesign" width="320" height="60" class="nav-logo-img" />
|
||||||
|
</a>
|
||||||
|
|
||||||
<input type="checkbox" id="nav-toggle" class="nav-toggle-checkbox" />
|
<input type="checkbox" id="nav-toggle" class="nav-toggle-checkbox" />
|
||||||
<label for="nav-toggle" class="nav-toggle" aria-label="Menü öffnen/schließen">
|
<label for="nav-toggle" class="nav-toggle" aria-label="Menü öffnen/schließen">
|
||||||
|
|
@ -22,27 +23,20 @@ const currentPath = Astro.url.pathname.replace(/\/$/, '') || '/';
|
||||||
|
|
||||||
<nav class="nav-links" aria-label="Hauptnavigation">
|
<nav class="nav-links" aria-label="Hauptnavigation">
|
||||||
<ul>
|
<ul>
|
||||||
{navItems.map((item) => {
|
{navItems.map((item) => (
|
||||||
const isActive =
|
<li>
|
||||||
item.href === '/'
|
<a href={item.href}>{item.label}</a>
|
||||||
? currentPath === '/'
|
</li>
|
||||||
: currentPath.startsWith(item.href);
|
))}
|
||||||
return (
|
|
||||||
<li>
|
|
||||||
<a href={item.href} aria-current={isActive ? 'page' : undefined}>
|
|
||||||
{item.label}
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
);
|
|
||||||
})}
|
|
||||||
</ul>
|
</ul>
|
||||||
|
<a class="btn btn-primary nav-cta" href="#kontakt">Projekt anfragen</a>
|
||||||
</nav>
|
</nav>
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.nav {
|
.nav {
|
||||||
background: var(--color-surface);
|
background: var(--color-bg);
|
||||||
border-bottom: 1px solid var(--color-border);
|
border-bottom: 1px solid var(--color-border);
|
||||||
position: sticky;
|
position: sticky;
|
||||||
top: 0;
|
top: 0;
|
||||||
|
|
@ -57,14 +51,24 @@ const currentPath = Astro.url.pathname.replace(/\/$/, '') || '/';
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav-logo {
|
.nav-logo {
|
||||||
font-weight: var(--font-weight-bold);
|
display: flex;
|
||||||
font-size: var(--font-size-md);
|
align-items: center;
|
||||||
color: var(--color-text);
|
gap: var(--space-3);
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav-logo:hover {
|
.nav-logo:hover {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
color: var(--color-primary);
|
}
|
||||||
|
|
||||||
|
.nav-logo-img {
|
||||||
|
height: 3.5rem;
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-links {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: var(--space-6);
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav-links ul {
|
.nav-links ul {
|
||||||
|
|
@ -80,13 +84,16 @@ const currentPath = Astro.url.pathname.replace(/\/$/, '') || '/';
|
||||||
font-size: var(--font-size-sm);
|
font-size: var(--font-size-sm);
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav-links a:hover {
|
.nav-links ul a:hover {
|
||||||
color: var(--color-primary);
|
color: var(--color-primary);
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav-links a[aria-current='page'] {
|
.nav-cta {
|
||||||
color: var(--color-primary);
|
font-size: var(--font-size-sm);
|
||||||
|
letter-spacing: 0.04em;
|
||||||
|
text-transform: uppercase;
|
||||||
|
padding: var(--space-3) var(--space-5);
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav-toggle-checkbox {
|
.nav-toggle-checkbox {
|
||||||
|
|
@ -110,7 +117,7 @@ const currentPath = Astro.url.pathname.replace(/\/$/, '') || '/';
|
||||||
border-radius: 1px;
|
border-radius: 1px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (max-width: 720px) {
|
@media (max-width: 900px) {
|
||||||
.nav-toggle {
|
.nav-toggle {
|
||||||
display: flex;
|
display: flex;
|
||||||
}
|
}
|
||||||
|
|
@ -121,16 +128,23 @@ const currentPath = Astro.url.pathname.replace(/\/$/, '') || '/';
|
||||||
top: 100%;
|
top: 100%;
|
||||||
left: 0;
|
left: 0;
|
||||||
right: 0;
|
right: 0;
|
||||||
background: var(--color-surface);
|
background: var(--color-bg);
|
||||||
border-bottom: 1px solid var(--color-border);
|
border-bottom: 1px solid var(--color-border);
|
||||||
box-shadow: var(--shadow-md);
|
box-shadow: var(--shadow-md);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.nav-links {
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: flex-start;
|
||||||
|
gap: var(--space-4);
|
||||||
|
padding: var(--space-4) var(--container-padding) var(--space-5);
|
||||||
|
}
|
||||||
|
|
||||||
.nav-links ul {
|
.nav-links ul {
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: flex-start;
|
align-items: flex-start;
|
||||||
gap: 0;
|
gap: 0;
|
||||||
padding: var(--space-4) var(--container-padding);
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav-links li {
|
.nav-links li {
|
||||||
|
|
@ -139,12 +153,8 @@ const currentPath = Astro.url.pathname.replace(/\/$/, '') || '/';
|
||||||
border-bottom: 1px solid var(--color-border);
|
border-bottom: 1px solid var(--color-border);
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav-links li:last-child {
|
|
||||||
border-bottom: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.nav-toggle-checkbox:checked ~ .nav-links {
|
.nav-toggle-checkbox:checked ~ .nav-links {
|
||||||
display: block;
|
display: flex;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ const {
|
||||||
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
||||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
||||||
<link
|
<link
|
||||||
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap"
|
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;0,700;1,500;1,600&display=swap"
|
||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
/>
|
/>
|
||||||
</head>
|
</head>
|
||||||
|
|
|
||||||
55
src/pages/datenschutz.astro
Normal file
55
src/pages/datenschutz.astro
Normal file
|
|
@ -0,0 +1,55 @@
|
||||||
|
---
|
||||||
|
import Layout from '../layouts/Layout.astro';
|
||||||
|
---
|
||||||
|
|
||||||
|
<Layout title="Datenschutz" description="Datenschutzerklärung von larpaso.">
|
||||||
|
<section class="section-tight">
|
||||||
|
<div class="container legal">
|
||||||
|
<p class="eyebrow">Datenschutz</p>
|
||||||
|
<h1>Datenschutzerklärung</h1>
|
||||||
|
|
||||||
|
<p class="placeholder">
|
||||||
|
[Diese Seite ist noch ein Platzhalter. Vor dem Livegang durch eine vollständige, rechtlich
|
||||||
|
geprüfte Datenschutzerklärung ersetzen — u. a. mit Angaben zu: verantwortlicher Stelle,
|
||||||
|
Kontaktformular/Mailto-Versand, ggf. eingesetzten Diensten (Hosting, Schriftarten,
|
||||||
|
Analyse-Tools), Speicherdauer und Betroffenenrechten.]
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>Verantwortliche Stelle</h2>
|
||||||
|
<p class="placeholder">
|
||||||
|
[Name / Firmenname, Anschrift, E-Mail — noch zu ergänzen]
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>Kontaktformular</h2>
|
||||||
|
<p>
|
||||||
|
Das Kontaktformular auf dieser Website öffnet beim Absenden Ihr E-Mail-Programm mit einem
|
||||||
|
vorausgefüllten Entwurf. Ihre Angaben werden dabei direkt an
|
||||||
|
<a href="mailto:kontakt@larpaso.de">kontakt@larpaso.de</a> adressiert und nicht an einen
|
||||||
|
Server dieser Website oder Dritte übertragen.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p class="legal-note">
|
||||||
|
Diese Datenschutzerklärung ist noch nicht vollständig und muss vor dem Livegang ergänzt
|
||||||
|
bzw. rechtlich geprüft werden.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</Layout>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.legal {
|
||||||
|
max-width: 40rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal h2 {
|
||||||
|
margin-top: var(--space-7);
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-note {
|
||||||
|
margin-top: var(--space-8);
|
||||||
|
padding-top: var(--space-5);
|
||||||
|
border-top: 1px solid var(--color-border);
|
||||||
|
font-size: var(--font-size-sm);
|
||||||
|
color: var(--color-flag);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
58
src/pages/impressum.astro
Normal file
58
src/pages/impressum.astro
Normal file
|
|
@ -0,0 +1,58 @@
|
||||||
|
---
|
||||||
|
import Layout from '../layouts/Layout.astro';
|
||||||
|
---
|
||||||
|
|
||||||
|
<Layout title="Impressum" description="Impressum von larpaso.">
|
||||||
|
<section class="section-tight">
|
||||||
|
<div class="container legal">
|
||||||
|
<p class="eyebrow">Impressum</p>
|
||||||
|
<h1>Angaben gemäß § 5 TMG</h1>
|
||||||
|
|
||||||
|
<p class="placeholder">
|
||||||
|
[Vollständiger Name / Firmenname, Rechtsform falls vorhanden — noch zu ergänzen]<br />
|
||||||
|
[Straße und Hausnummer — noch zu ergänzen]<br />
|
||||||
|
[PLZ und Ort — noch zu ergänzen]
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>Kontakt</h2>
|
||||||
|
<p>
|
||||||
|
E-Mail: <a href="mailto:kontakt@larpaso.de">kontakt@larpaso.de</a><br />
|
||||||
|
Telefon: <span class="placeholder">[Telefonnummer eintragen]</span>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>Umsatzsteuer-ID</h2>
|
||||||
|
<p class="placeholder">
|
||||||
|
[Falls vorhanden: Umsatzsteuer-Identifikationsnummer gemäß § 27a UStG — sonst Absatz
|
||||||
|
entfernen]
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>Verantwortlich für den Inhalt nach § 18 Abs. 2 MStV</h2>
|
||||||
|
<p class="placeholder">
|
||||||
|
[Name, Anschrift wie oben — noch zu ergänzen]
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p class="legal-note">
|
||||||
|
Dieses Impressum ist noch nicht vollständig und muss vor dem Livegang mit den echten
|
||||||
|
Angaben ergänzt werden.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</Layout>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.legal {
|
||||||
|
max-width: 40rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal h2 {
|
||||||
|
margin-top: var(--space-7);
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-note {
|
||||||
|
margin-top: var(--space-8);
|
||||||
|
padding-top: var(--space-5);
|
||||||
|
border-top: 1px solid var(--color-border);
|
||||||
|
font-size: var(--font-size-sm);
|
||||||
|
color: var(--color-flag);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,113 +0,0 @@
|
||||||
---
|
|
||||||
import Layout from '../layouts/Layout.astro';
|
|
||||||
---
|
|
||||||
|
|
||||||
<Layout
|
|
||||||
title="Kontakt"
|
|
||||||
description="Nehmen Sie Kontakt mit Larpaso auf und erzählen Sie uns von Ihrem Website-Projekt."
|
|
||||||
>
|
|
||||||
<section class="section-tight">
|
|
||||||
<div class="container contact-layout">
|
|
||||||
<div class="contact-intro">
|
|
||||||
<p class="eyebrow">Kontakt</p>
|
|
||||||
<h1>Lassen Sie uns sprechen.</h1>
|
|
||||||
<p class="text-lead">
|
|
||||||
Erzählen Sie uns kurz von Ihrem Projekt – wir melden uns zeitnah bei Ihnen zurück.
|
|
||||||
Ein Erstgespräch ist unverbindlich und kostet Sie nichts.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<div class="contact-detail">
|
|
||||||
<h3>Direkt erreichbar</h3>
|
|
||||||
<p><a href="mailto:kontakt@larpaso.de">kontakt@larpaso.de</a></p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<form class="contact-form card" aria-label="Kontaktformular">
|
|
||||||
<div class="form-field">
|
|
||||||
<label for="name">Name</label>
|
|
||||||
<input type="text" id="name" name="name" placeholder="Ihr Name" required />
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="form-field">
|
|
||||||
<label for="email">E-Mail</label>
|
|
||||||
<input type="email" id="email" name="email" placeholder="ihre.email@beispiel.de" required />
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="form-field">
|
|
||||||
<label for="message">Nachricht</label>
|
|
||||||
<textarea
|
|
||||||
id="message"
|
|
||||||
name="message"
|
|
||||||
rows="6"
|
|
||||||
placeholder="Erzählen Sie uns von Ihrem Projekt …"
|
|
||||||
required
|
|
||||||
></textarea>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<button type="submit" class="btn btn-primary form-submit">Nachricht senden</button>
|
|
||||||
<p class="form-note">
|
|
||||||
Hinweis: Dieses Formular ist aktuell nur als Struktur angelegt und noch nicht an ein
|
|
||||||
Backend angebunden.
|
|
||||||
</p>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
</Layout>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
.contact-layout {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: 1fr 1.2fr;
|
|
||||||
gap: var(--space-8);
|
|
||||||
align-items: start;
|
|
||||||
}
|
|
||||||
|
|
||||||
.contact-detail {
|
|
||||||
margin-top: var(--space-6);
|
|
||||||
}
|
|
||||||
|
|
||||||
.contact-detail h3 {
|
|
||||||
margin-bottom: var(--space-2);
|
|
||||||
}
|
|
||||||
|
|
||||||
.contact-form {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
gap: var(--space-5);
|
|
||||||
}
|
|
||||||
|
|
||||||
.form-field input,
|
|
||||||
.form-field textarea {
|
|
||||||
width: 100%;
|
|
||||||
padding: var(--space-3) var(--space-4);
|
|
||||||
border: 1px solid var(--color-border);
|
|
||||||
border-radius: var(--radius-sm);
|
|
||||||
background: var(--color-bg);
|
|
||||||
color: var(--color-text);
|
|
||||||
}
|
|
||||||
|
|
||||||
.form-field input:focus,
|
|
||||||
.form-field textarea:focus {
|
|
||||||
outline: 2px solid var(--color-primary);
|
|
||||||
outline-offset: 1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form-field textarea {
|
|
||||||
resize: vertical;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form-submit {
|
|
||||||
align-self: flex-start;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form-note {
|
|
||||||
font-size: var(--font-size-sm);
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (max-width: 800px) {
|
|
||||||
.contact-layout {
|
|
||||||
grid-template-columns: 1fr;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
@ -1,87 +0,0 @@
|
||||||
---
|
|
||||||
import Layout from '../layouts/Layout.astro';
|
|
||||||
|
|
||||||
const services = [
|
|
||||||
{
|
|
||||||
title: 'Individuelle Websites',
|
|
||||||
text: 'Konzeption und Umsetzung von Websites, die auf Ihr Unternehmen, Ihre Zielgruppe und Ihre Ziele zugeschnitten sind – von der einfachen Unternehmenspräsenz bis zur komplexeren Webanwendung.',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'KI-gestützte Entwicklung',
|
|
||||||
text: 'Wir nutzen moderne KI-Werkzeuge gezielt im Entwicklungsprozess, um Umsetzungszeiten zu verkürzen und gleichzeitig Code-Qualität und Sorgfalt hochzuhalten.',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Konzeption & Beratung',
|
|
||||||
text: 'Vor der Umsetzung klären wir Struktur, Inhalte und technische Anforderungen – damit die Website von Anfang an zu Ihren Zielen passt.',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Redesign & Weiterentwicklung',
|
|
||||||
text: 'Bestehende Websites überarbeiten, modernisieren oder um neue Funktionen erweitern – technisch fundiert und mit klarem Fokus auf Nutzbarkeit.',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Wartung & Support',
|
|
||||||
text: 'Nach dem Launch lassen wir Sie nicht allein: Updates, kleinere Anpassungen und technischer Support nach Bedarf.',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Performance & Zugänglichkeit',
|
|
||||||
text: 'Websites, die schnell laden und für möglichst viele Nutzerinnen und Nutzer gut zugänglich sind – als Grundlage, nicht als nachträgliches Extra.',
|
|
||||||
},
|
|
||||||
];
|
|
||||||
---
|
|
||||||
|
|
||||||
<Layout
|
|
||||||
title="Leistungen"
|
|
||||||
description="Individuelle Websites, KI-gestützte Entwicklung, Beratung und Support – die Leistungen von Larpaso im Überblick."
|
|
||||||
>
|
|
||||||
<section class="section-tight">
|
|
||||||
<div class="container">
|
|
||||||
<p class="eyebrow">Leistungen</p>
|
|
||||||
<h1>Was wir für Sie tun können</h1>
|
|
||||||
<p class="text-lead">
|
|
||||||
Von der ersten Idee bis zur laufenden Betreuung: Larpaso begleitet Ihr Website-Projekt
|
|
||||||
mit individueller Entwicklung und dem gezielten Einsatz von KI-Werkzeugen.
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section class="section-tight">
|
|
||||||
<div class="container">
|
|
||||||
<div class="grid grid-3">
|
|
||||||
{services.map((service) => (
|
|
||||||
<div class="card">
|
|
||||||
<h3>{service.title}</h3>
|
|
||||||
<p>{service.text}</p>
|
|
||||||
</div>
|
|
||||||
))}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section class="section-tight cta">
|
|
||||||
<div class="container cta-inner">
|
|
||||||
<h2>Passt das zu Ihrem Projekt?</h2>
|
|
||||||
<p class="text-lead">Schreiben Sie uns kurz, worum es geht – wir melden uns zeitnah zurück.</p>
|
|
||||||
<a class="btn btn-primary" href="/kontakt">Kontakt aufnehmen</a>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
</Layout>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
.cta {
|
|
||||||
background: var(--color-surface);
|
|
||||||
border-top: 1px solid var(--color-border);
|
|
||||||
border-bottom: 1px solid var(--color-border);
|
|
||||||
}
|
|
||||||
|
|
||||||
.cta-inner {
|
|
||||||
text-align: center;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
align-items: center;
|
|
||||||
gap: var(--space-2);
|
|
||||||
}
|
|
||||||
|
|
||||||
.cta-inner .text-lead {
|
|
||||||
margin-bottom: var(--space-4);
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
@ -1,87 +0,0 @@
|
||||||
---
|
|
||||||
import Layout from '../layouts/Layout.astro';
|
|
||||||
|
|
||||||
const values = [
|
|
||||||
{
|
|
||||||
title: 'Individualität statt Schema F',
|
|
||||||
text: 'Jedes Projekt bekommt eine Lösung, die zu den tatsächlichen Anforderungen passt – statt eines starren Baukastens.',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'KI als Werkzeug, nicht als Ausrede',
|
|
||||||
text: 'Wir setzen KI gezielt ein, um schneller und gründlicher zu arbeiten. Verantwortung für Qualität und Ergebnis bleibt bei uns.',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Klare, ehrliche Kommunikation',
|
|
||||||
text: 'Verständliche Erklärungen statt Fachjargon, realistische Einschätzungen statt leerer Versprechen.',
|
|
||||||
},
|
|
||||||
];
|
|
||||||
---
|
|
||||||
|
|
||||||
<Layout
|
|
||||||
title="Über uns"
|
|
||||||
description="Larpaso ist eine Agentur für individuelle Websites mit Fokus auf KI-gestützte Entwicklung. Erfahren Sie mehr über unsere Arbeitsweise."
|
|
||||||
>
|
|
||||||
<section class="section-tight">
|
|
||||||
<div class="container intro">
|
|
||||||
<p class="eyebrow">Über uns</p>
|
|
||||||
<h1>Wir sind Larpaso.</h1>
|
|
||||||
<p class="text-lead">
|
|
||||||
Larpaso entwickelt individuelle Websites für Kunden, die sich von der Stange nicht
|
|
||||||
zufriedengeben wollen. Unser Schwerpunkt liegt auf KI-gestützter Entwicklung: Wir nutzen
|
|
||||||
moderne KI-Werkzeuge, um Projekte effizienter, gründlicher und zu planbaren Kosten
|
|
||||||
umzusetzen – ohne dabei an handwerklicher Sorgfalt zu sparen.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Entstanden ist Larpaso aus der Überzeugung, dass gute Websites weder Massenware noch
|
|
||||||
Luxusgut sein müssen. Mit dem richtigen Werkzeugkasten lässt sich beides verbinden:
|
|
||||||
individuelle, durchdachte Lösungen in überschaubarer Zeit.
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section class="section-tight">
|
|
||||||
<div class="container">
|
|
||||||
<h2>Wofür wir stehen</h2>
|
|
||||||
<div class="grid grid-3">
|
|
||||||
{values.map((value) => (
|
|
||||||
<div class="card">
|
|
||||||
<h3>{value.title}</h3>
|
|
||||||
<p>{value.text}</p>
|
|
||||||
</div>
|
|
||||||
))}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section class="section-tight cta">
|
|
||||||
<div class="container cta-inner">
|
|
||||||
<h2>Lernen Sie uns kennen</h2>
|
|
||||||
<p class="text-lead">Erzählen Sie uns von Ihrem Projekt – wir freuen uns auf den Austausch.</p>
|
|
||||||
<a class="btn btn-primary" href="/kontakt">Kontakt aufnehmen</a>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
</Layout>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
.intro {
|
|
||||||
max-width: 46rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.cta {
|
|
||||||
background: var(--color-surface);
|
|
||||||
border-top: 1px solid var(--color-border);
|
|
||||||
border-bottom: 1px solid var(--color-border);
|
|
||||||
}
|
|
||||||
|
|
||||||
.cta-inner {
|
|
||||||
text-align: center;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
align-items: center;
|
|
||||||
gap: var(--space-2);
|
|
||||||
}
|
|
||||||
|
|
||||||
.cta-inner .text-lead {
|
|
||||||
margin-bottom: var(--space-4);
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
@ -5,23 +5,28 @@
|
||||||
========================================================================== */
|
========================================================================== */
|
||||||
:root {
|
:root {
|
||||||
/* Farben */
|
/* Farben */
|
||||||
--color-bg: #fafafa;
|
--color-bg: #17130f;
|
||||||
--color-surface: #ffffff;
|
--color-bg-alt: #1c1712;
|
||||||
--color-text: #1f2430;
|
--color-surface: #211b15;
|
||||||
--color-text-muted: #5b6472;
|
--color-text: #f2ead9;
|
||||||
--color-border: #e4e7ec;
|
--color-text-muted: #a89a85;
|
||||||
|
--color-border: rgba(201, 168, 118, 0.2);
|
||||||
|
|
||||||
--color-primary: #4f46e5;
|
--color-primary: #c9a876;
|
||||||
--color-primary-dark: #3730a3;
|
--color-primary-dark: #b08f5c;
|
||||||
--color-primary-contrast: #ffffff;
|
--color-primary-contrast: #1a1511;
|
||||||
|
|
||||||
--color-accent: #14b8a6;
|
--color-accent: #c9a876;
|
||||||
--color-accent-dark: #0f766e;
|
--color-accent-dark: #b08f5c;
|
||||||
|
|
||||||
--color-success: #16a34a;
|
--color-success: #7a9a6b;
|
||||||
--color-danger: #dc2626;
|
--color-danger: #c97b64;
|
||||||
|
|
||||||
|
--color-flag: #c97b64;
|
||||||
|
--color-flag-bg: rgba(201, 123, 100, 0.1);
|
||||||
|
|
||||||
/* Typografie */
|
/* Typografie */
|
||||||
|
--font-serif: 'Playfair Display', Georgia, 'Times New Roman', serif;
|
||||||
--font-sans: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
|
--font-sans: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
|
||||||
|
|
||||||
--font-size-sm: 0.875rem;
|
--font-size-sm: 0.875rem;
|
||||||
|
|
@ -102,6 +107,7 @@ h1, h2, h3, h4 {
|
||||||
line-height: var(--line-height-tight);
|
line-height: var(--line-height-tight);
|
||||||
font-weight: var(--font-weight-bold);
|
font-weight: var(--font-weight-bold);
|
||||||
letter-spacing: -0.01em;
|
letter-spacing: -0.01em;
|
||||||
|
font-family: var(--font-serif);
|
||||||
}
|
}
|
||||||
|
|
||||||
h1 { font-size: var(--font-size-3xl); }
|
h1 { font-size: var(--font-size-3xl); }
|
||||||
|
|
@ -235,3 +241,10 @@ textarea {
|
||||||
color: var(--color-primary);
|
color: var(--color-primary);
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Platzhalter fuer noch fehlende, reale Angaben (Telefonnummer, Preise, Bios etc.) */
|
||||||
|
.placeholder {
|
||||||
|
color: var(--color-flag);
|
||||||
|
border-bottom: 1px dashed var(--color-flag);
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue