refactor: update sections for improved layout and styling

- Revamp Contact, FinalCta, Hero, Hours, SalonPromise, Services, SiteHeader, Trust components to use a new v2 design system.
- Enhance responsiveness and accessibility across sections.
- Introduce new styles for better visual hierarchy and user experience.
- Integrate review data into Trust section and update site content structure.
This commit is contained in:
Matthias
2026-05-25 11:59:10 +02:00
parent 3eb46029e9
commit 5cfcea9caf
17 changed files with 1716 additions and 1535 deletions

View File

@@ -2,18 +2,18 @@
import { siteContent } from "@/content/site-content"
---
<section id="leistungen" class="section-shell services-section" aria-labelledby="services-title">
<div class="section-heading">
<p class="eyebrow">Leistungen</p>
<section id="leistungen" class="section-v2 services-v2" aria-labelledby="services-title">
<div class="section-heading-v2">
<p class="eyebrow-v2">Leistungen</p>
<h2 id="services-title">Alles, was ein guter Salonbesuch braucht.</h2>
<p>Die Auswahl bleibt bewusst klar. Details, Wünsche und Termine werden am besten direkt telefonisch besprochen.</p>
<p>Fokus auf das Wesentliche: Ihr Look, Ihr Typ, Ihr Termin. Details und Wünsche besprechen wir am besten kurz am Telefon.</p>
</div>
<div class="service-list">
<div class="services-v2__grid">
{
siteContent.services.map((service, index) => (
<article class="service-row">
<span class="service-index">{String(index + 1).padStart(2, "0")}</span>
<article class="services-v2__card" style={index % 2 === 1 ? "margin-top: 3rem;" : undefined}>
<span class="service-index-v2">{String(index + 1).padStart(2, "0")}</span>
<h3>{service.title}</h3>
<p>{service.text}</p>
</article>
@@ -21,3 +21,60 @@ import { siteContent } from "@/content/site-content"
}
</div>
</section>
<style>
.services-v2 {
background: var(--v2-bg);
}
.services-v2__grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: clamp(2rem, 4vw, 4rem);
margin-top: clamp(3rem, 5vw, 5rem);
}
.services-v2__card {
display: grid;
gap: 0.75rem;
padding-bottom: clamp(2rem, 3vw, 3rem);
border-bottom: 1.5px solid var(--v2-hairline);
}
.services-v2__card:nth-child(even) {
margin-top: 4rem;
}
.service-index-v2 {
color: var(--v2-primary);
font-family: var(--font-heading);
font-size: clamp(3rem, 6vw, 6rem);
line-height: 0.85;
display: block;
margin-bottom: 0.5rem;
}
.services-v2__card h3 {
font-family: var(--font-heading);
font-size: clamp(1.5rem, 2.5vw, 2.2rem);
line-height: 1.1;
margin: 0;
}
.services-v2__card p {
color: var(--v2-muted);
line-height: 1.65;
margin: 0;
max-width: 36ch;
}
@media (max-width: 820px) {
.services-v2__grid {
grid-template-columns: 1fr;
}
.services-v2__card:nth-child(even) {
margin-top: 0;
}
}
</style>