Initial commit
This commit is contained in:
181
src/app/dienstleistungen/page.tsx
Normal file
181
src/app/dienstleistungen/page.tsx
Normal file
@@ -0,0 +1,181 @@
|
||||
"use client";
|
||||
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import NavbarStyleCentered from "@/components/navbar/NavbarStyleCentered/NavbarStyleCentered";
|
||||
import SplitAbout from "@/components/sections/about/SplitAbout";
|
||||
import FeatureBorderGlow from "@/components/sections/feature/featureBorderGlow/FeatureBorderGlow";
|
||||
import ContactCTA from "@/components/sections/contact/ContactCTA";
|
||||
import FooterBaseCard from "@/components/sections/footer/FooterBaseCard";
|
||||
import { Briefcase, Award, Users, TrendingUp, MessageCircle, Wrench, FileText, DollarSign } from "lucide-react";
|
||||
import Link from "next/link";
|
||||
|
||||
export default function ServicesPage() {
|
||||
const navItems = [
|
||||
{ name: "Startseite", id: "/" },
|
||||
{ name: "Dienstleistungen", id: "/dienstleistungen" },
|
||||
{ name: "Über uns", id: "/uber-uns" },
|
||||
{ name: "FAQ", id: "/faq" },
|
||||
{ name: "Kontakt", id: "/kontakt" },
|
||||
];
|
||||
|
||||
const footerColumns = [
|
||||
{
|
||||
title: "Dienstleistungen",
|
||||
items: [
|
||||
{ label: "Unfallgutachten", href: "/dienstleistungen" },
|
||||
{ label: "Wertermittlung", href: "/dienstleistungen" },
|
||||
{ label: "Oldtimer-Gutachten", href: "/dienstleistungen" },
|
||||
{ label: "Flotten-Gutachten", href: "/dienstleistungen" },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Unternehmen",
|
||||
items: [
|
||||
{ label: "Über uns", href: "/uber-uns" },
|
||||
{ label: "Unser Team", href: "/uber-uns" },
|
||||
{ label: "Blog", href: "#" },
|
||||
{ label: "Karriere", href: "#" },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Kontakt",
|
||||
items: [
|
||||
{ label: "Kontaktformular", href: "/kontakt" },
|
||||
{ label: "Tel: 030 - 123 456 789", href: "tel:+493012345789" },
|
||||
{ label: "Email: info@kfz-gutachter-berlin.de", href: "mailto:info@kfz-gutachter-berlin.de" },
|
||||
{ label: "Adresse", href: "#" },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Rechtliches",
|
||||
items: [
|
||||
{ label: "Impressum", href: "#" },
|
||||
{ label: "Datenschutz", href: "#" },
|
||||
{ label: "AGB", href: "#" },
|
||||
{ label: "Disclaimer", href: "#" },
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
const CustomNavbarWrapper = () => (
|
||||
<div id="nav" data-section="nav">
|
||||
<NavbarStyleCentered
|
||||
navItems={navItems.map((item) => ({
|
||||
name: item.name,
|
||||
id: item.id,
|
||||
}))}
|
||||
button={{
|
||||
text: "Jetzt anfragen",
|
||||
href: "/kontakt",
|
||||
}}
|
||||
brandName="KFZ Gutachter Berlin"
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
|
||||
return (
|
||||
<ThemeProvider
|
||||
defaultButtonVariant="expand-hover"
|
||||
defaultTextAnimation="reveal-blur"
|
||||
borderRadius="rounded"
|
||||
contentWidth="medium"
|
||||
sizing="mediumLargeSizeLargeTitles"
|
||||
background="circleGradient"
|
||||
cardStyle="outline"
|
||||
primaryButtonStyle="flat"
|
||||
secondaryButtonStyle="solid"
|
||||
headingFontWeight="normal"
|
||||
>
|
||||
<CustomNavbarWrapper />
|
||||
|
||||
<div id="services-intro" data-section="services-intro">
|
||||
<SplitAbout
|
||||
title="Unsere Dienstleistungen"
|
||||
description="Wir bieten ein umfassendes Spektrum an Gutachtendienstleistungen für alle Anforderungen. Jede Leistung wird mit höchster Fachkompetenz und Zuverlässigkeit erbracht."
|
||||
tag="Vollständiges Leistungsspektrum"
|
||||
tagAnimation="slide-up"
|
||||
bulletPoints={[
|
||||
{
|
||||
icon: Wrench,
|
||||
title: "Unfallschadengutachten",
|
||||
description: "Detaillierte Analyse und Dokumentation von Unfallschäden für Versicherungen und Gerichte.",
|
||||
},
|
||||
{
|
||||
icon: FileText,
|
||||
title: "Wertermittlung",
|
||||
description: "Unabhängige und sachliche Bewertung von Fahrzeugen vor und nach Schaden.",
|
||||
},
|
||||
{
|
||||
icon: DollarSign,
|
||||
title: "Kaufberatungsgutachten",
|
||||
description: "Professionelle Inspektionen und Bewertungen vor dem Kauf eines Fahrzeugs.",
|
||||
},
|
||||
{
|
||||
icon: Award,
|
||||
title: "Oldtimer-Gutachten",
|
||||
description: "Spezielle Expertise für historische Fahrzeuge und Klassiker mit authentischer Bewertung.",
|
||||
},
|
||||
]}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/confident-smiling-businesspeople-sitting-together-business-meeting_23-2147923338.jpg"
|
||||
imageAlt="Unsere Dienstleistungen"
|
||||
imagePosition="right"
|
||||
textboxLayout="default"
|
||||
mediaAnimation="slide-up"
|
||||
useInvertedBackground={false}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="service-features" data-section="service-features">
|
||||
<FeatureBorderGlow
|
||||
title="Was unsere Dienstleistungen auszeichnet"
|
||||
description="Qualitätsmerkmale, die unsere Gutachten zur ersten Wahl machen."
|
||||
features={[
|
||||
{
|
||||
icon: Award,
|
||||
title: "TÜV-Zertifiziert",
|
||||
description: "Alle Sachverständigen sind TÜV-zertifiziert und VDSI-anerkannt.",
|
||||
},
|
||||
{
|
||||
icon: Users,
|
||||
title: "Erfahrenes Team",
|
||||
description: "Über 15 Jahre Erfahrung in der professionellen Fahrzeugbegutachtung.",
|
||||
},
|
||||
{
|
||||
icon: Briefcase,
|
||||
title: "Gerichtliche Anerkennung",
|
||||
description: "Alle Gutachten sind vor Gericht anerkannt und vollständig dokumentiert.",
|
||||
},
|
||||
]}
|
||||
animationType="slide-up"
|
||||
textboxLayout="default"
|
||||
useInvertedBackground={false}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="contact-cta" data-section="contact-cta">
|
||||
<ContactCTA
|
||||
tag="Dienstleistung anfragen"
|
||||
tagIcon={MessageCircle}
|
||||
tagAnimation="slide-up"
|
||||
title="Wählen Sie Ihre Dienstleistung"
|
||||
description="Kontaktieren Sie uns noch heute und erfahren Sie, wie wir Sie unterstützen können. Wir beraten Sie kostenlos und unverbindlich."
|
||||
buttons={[
|
||||
{ text: "Jetzt anfragen", href: "/kontakt" },
|
||||
{ text: "Preise ansehen", href: "/preise" },
|
||||
]}
|
||||
buttonAnimation="slide-up"
|
||||
background={{ variant: "plain" }}
|
||||
useInvertedBackground={false}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="footer" data-section="footer">
|
||||
<FooterBaseCard
|
||||
logoText="KFZ Gutachter Berlin"
|
||||
columns={footerColumns}
|
||||
copyrightText="© 2025 KFZ Gutachter Berlin. Alle Rechte vorbehalten."
|
||||
/>
|
||||
</div>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
169
src/app/faq/page.tsx
Normal file
169
src/app/faq/page.tsx
Normal file
@@ -0,0 +1,169 @@
|
||||
"use client";
|
||||
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import NavbarStyleCentered from "@/components/navbar/NavbarStyleCentered/NavbarStyleCentered";
|
||||
import FaqDouble from "@/components/sections/faq/FaqDouble";
|
||||
import ContactCTA from "@/components/sections/contact/ContactCTA";
|
||||
import FooterBaseCard from "@/components/sections/footer/FooterBaseCard";
|
||||
import { MessageCircle } from "lucide-react";
|
||||
import Link from "next/link";
|
||||
|
||||
export default function FAQPage() {
|
||||
const navItems = [
|
||||
{ name: "Startseite", id: "/" },
|
||||
{ name: "Dienstleistungen", id: "/dienstleistungen" },
|
||||
{ name: "Über uns", id: "/uber-uns" },
|
||||
{ name: "FAQ", id: "/faq" },
|
||||
{ name: "Kontakt", id: "/kontakt" },
|
||||
];
|
||||
|
||||
const footerColumns = [
|
||||
{
|
||||
title: "Dienstleistungen",
|
||||
items: [
|
||||
{ label: "Unfallgutachten", href: "/dienstleistungen" },
|
||||
{ label: "Wertermittlung", href: "/dienstleistungen" },
|
||||
{ label: "Oldtimer-Gutachten", href: "/dienstleistungen" },
|
||||
{ label: "Flotten-Gutachten", href: "/dienstleistungen" },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Unternehmen",
|
||||
items: [
|
||||
{ label: "Über uns", href: "/uber-uns" },
|
||||
{ label: "Unser Team", href: "/uber-uns" },
|
||||
{ label: "Blog", href: "#" },
|
||||
{ label: "Karriere", href: "#" },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Kontakt",
|
||||
items: [
|
||||
{ label: "Kontaktformular", href: "/kontakt" },
|
||||
{ label: "Tel: 030 - 123 456 789", href: "tel:+493012345789" },
|
||||
{ label: "Email: info@kfz-gutachter-berlin.de", href: "mailto:info@kfz-gutachter-berlin.de" },
|
||||
{ label: "Adresse", href: "#" },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Rechtliches",
|
||||
items: [
|
||||
{ label: "Impressum", href: "#" },
|
||||
{ label: "Datenschutz", href: "#" },
|
||||
{ label: "AGB", href: "#" },
|
||||
{ label: "Disclaimer", href: "#" },
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
const CustomNavbarWrapper = () => (
|
||||
<div id="nav" data-section="nav">
|
||||
<NavbarStyleCentered
|
||||
navItems={navItems.map((item) => ({
|
||||
name: item.name,
|
||||
id: item.id,
|
||||
}))}
|
||||
button={{
|
||||
text: "Jetzt anfragen",
|
||||
href: "/kontakt",
|
||||
}}
|
||||
brandName="KFZ Gutachter Berlin"
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
|
||||
return (
|
||||
<ThemeProvider
|
||||
defaultButtonVariant="expand-hover"
|
||||
defaultTextAnimation="reveal-blur"
|
||||
borderRadius="rounded"
|
||||
contentWidth="medium"
|
||||
sizing="mediumLargeSizeLargeTitles"
|
||||
background="circleGradient"
|
||||
cardStyle="outline"
|
||||
primaryButtonStyle="flat"
|
||||
secondaryButtonStyle="solid"
|
||||
headingFontWeight="normal"
|
||||
>
|
||||
<CustomNavbarWrapper />
|
||||
|
||||
<div id="faq" data-section="faq">
|
||||
<FaqDouble
|
||||
title="Häufig gestellte Fragen"
|
||||
description="Antworten auf die wichtigsten Fragen rund um unsere Gutachtendienstleistungen."
|
||||
faqs={[
|
||||
{
|
||||
id: "1",
|
||||
title: "Wie lange dauert ein Gutachten?",
|
||||
content: "Die Vor-Ort-Besichtigung dauert normalerweise 1-2 Stunden. Die vollständige Berichterstellung erfolgt in der Regel innerhalb von 24-48 Stunden nach Besichtigung. Bei Eilanträgen können wir schnellere Lösungen anbieten.",
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
title: "Was kostet ein KFZ-Gutachten?",
|
||||
content: "Die Kosten richten sich nach Gutachtenart und Fahrzeugtyp. Unfallgutachten beginnen ab 150 Euro. Eine detaillierte Kostenaufstellung erfolgt vor Leistungserbringung. Alle Preise sind nach BEMA-Gebührenordnung kalkuliert.",
|
||||
},
|
||||
{
|
||||
id: "3",
|
||||
title: "Kommt ihr zu mir nach Hause?",
|
||||
content: "Ja, wir kommen gerne zu Ihnen. Die Fahrtkosten sind kostenlos in ganz Berlin und dem näheren Umland. Bei Werkstätten oder Versicherungen führen wir die Besichtigung vor Ort durch.",
|
||||
},
|
||||
{
|
||||
id: "4",
|
||||
title: "Sind eure Gutachten gerichtsfest?",
|
||||
content: "Ja, alle unsere Gutachten sind gerichtsfest und von Gerichten anerkannt. Wir arbeiten nach den höchsten Standards und sind jederzeit bereit, unsere Ergebnisse vor Gericht zu vertreten.",
|
||||
},
|
||||
{
|
||||
id: "5",
|
||||
title: "Welche Gutachtenarten bietet ihr an?",
|
||||
content: "Wir bieten an: Unfallschadengutachten, Wertermittlungen, Oldtimer- und Klassiker-Gutachten, Kaufberatungsgutachten, Gewerbliche Flottengutachten, Weiterschadenprognosen und Schadensersatzgutachten.",
|
||||
},
|
||||
{
|
||||
id: "6",
|
||||
title: "Wer bezahlt das Gutachten?",
|
||||
content: "Bei Versicherungsfällen trägt in der Regel die Versicherung die Kosten. Bei privaten Ankäufen oder Verkäufen können wir flexible Lösungen finden. Klären Sie dies am besten vorher mit Ihrer Versicherung oder dem jeweiligen Partner.",
|
||||
},
|
||||
{
|
||||
id: "7",
|
||||
title: "Wie kann ich ein Gutachten beauftragen?",
|
||||
content: "Kontaktieren Sie uns per Telefon, E-Mail oder nutzen Sie unser Online-Anfrageformular. Wir vereinbaren dann einen Termin zur Besichtigung. Eine schriftliche Bestätigung erhalten Sie per E-Mail mit allen wichtigen Informationen.",
|
||||
},
|
||||
{
|
||||
id: "8",
|
||||
title: "Seid ihr auch außerhalb Berlins tätig?",
|
||||
content: "Ja, wir bieten Dienstleistungen in Berlin und dem näheren Umland an. Für Anfragen außerhalb unseres Standardbereichs kontaktieren Sie uns bitte direkt – wir prüfen gerne eine Lösung.",
|
||||
},
|
||||
]}
|
||||
faqsAnimation="slide-up"
|
||||
textboxLayout="default"
|
||||
useInvertedBackground={false}
|
||||
animationType="smooth"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="contact-cta" data-section="contact-cta">
|
||||
<ContactCTA
|
||||
tag="Weitere Fragen?"
|
||||
tagIcon={MessageCircle}
|
||||
tagAnimation="slide-up"
|
||||
title="Wir helfen Ihnen gerne weiter"
|
||||
description="Haben Sie noch Fragen, die nicht beantwortet wurden? Kontaktieren Sie uns direkt – unser Team ist schnell und freundlich für Sie erreichbar."
|
||||
buttons={[
|
||||
{ text: "Kontakt aufnehmen", href: "/kontakt" },
|
||||
{ text: "Angebot anfordern", href: "/dienstleistungen" },
|
||||
]}
|
||||
buttonAnimation="slide-up"
|
||||
background={{ variant: "plain" }}
|
||||
useInvertedBackground={false}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="footer" data-section="footer">
|
||||
<FooterBaseCard
|
||||
logoText="KFZ Gutachter Berlin"
|
||||
columns={footerColumns}
|
||||
copyrightText="© 2025 KFZ Gutachter Berlin. Alle Rechte vorbehalten."
|
||||
/>
|
||||
</div>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
BIN
src/app/favicon.ico
Normal file
BIN
src/app/favicon.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 25 KiB |
5
src/app/globals.css
Normal file
5
src/app/globals.css
Normal file
@@ -0,0 +1,5 @@
|
||||
@import "tailwindcss";
|
||||
@import "./styles/variables.css";
|
||||
@import "./styles/theme.css";
|
||||
@import "./styles/utilities.css";
|
||||
@import "./styles/base.css";
|
||||
151
src/app/kontakt/page.tsx
Normal file
151
src/app/kontakt/page.tsx
Normal file
@@ -0,0 +1,151 @@
|
||||
"use client";
|
||||
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import NavbarStyleCentered from "@/components/navbar/NavbarStyleCentered/NavbarStyleCentered";
|
||||
import ContactCTA from "@/components/sections/contact/ContactCTA";
|
||||
import SplitAbout from "@/components/sections/about/SplitAbout";
|
||||
import FooterBaseCard from "@/components/sections/footer/FooterBaseCard";
|
||||
import { MapPin, Phone, Mail, Clock } from "lucide-react";
|
||||
import Link from "next/link";
|
||||
|
||||
export default function ContactPage() {
|
||||
const navItems = [
|
||||
{ name: "Startseite", id: "/" },
|
||||
{ name: "Dienstleistungen", id: "/dienstleistungen" },
|
||||
{ name: "Über uns", id: "/uber-uns" },
|
||||
{ name: "FAQ", id: "/faq" },
|
||||
{ name: "Kontakt", id: "/kontakt" },
|
||||
];
|
||||
|
||||
const footerColumns = [
|
||||
{
|
||||
title: "Dienstleistungen",
|
||||
items: [
|
||||
{ label: "Unfallgutachten", href: "/dienstleistungen" },
|
||||
{ label: "Wertermittlung", href: "/dienstleistungen" },
|
||||
{ label: "Oldtimer-Gutachten", href: "/dienstleistungen" },
|
||||
{ label: "Flotten-Gutachten", href: "/dienstleistungen" },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Unternehmen",
|
||||
items: [
|
||||
{ label: "Über uns", href: "/uber-uns" },
|
||||
{ label: "Unser Team", href: "/uber-uns" },
|
||||
{ label: "Blog", href: "#" },
|
||||
{ label: "Karriere", href: "#" },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Kontakt",
|
||||
items: [
|
||||
{ label: "Kontaktformular", href: "/kontakt" },
|
||||
{ label: "Tel: 030 - 123 456 789", href: "tel:+493012345789" },
|
||||
{ label: "Email: info@kfz-gutachter-berlin.de", href: "mailto:info@kfz-gutachter-berlin.de" },
|
||||
{ label: "Adresse", href: "#" },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Rechtliches",
|
||||
items: [
|
||||
{ label: "Impressum", href: "#" },
|
||||
{ label: "Datenschutz", href: "#" },
|
||||
{ label: "AGB", href: "#" },
|
||||
{ label: "Disclaimer", href: "#" },
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
const CustomNavbarWrapper = () => (
|
||||
<div id="nav" data-section="nav">
|
||||
<NavbarStyleCentered
|
||||
navItems={navItems.map((item) => ({
|
||||
name: item.name,
|
||||
id: item.id,
|
||||
}))}
|
||||
button={{
|
||||
text: "Jetzt anfragen",
|
||||
href: "/kontakt",
|
||||
}}
|
||||
brandName="KFZ Gutachter Berlin"
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
|
||||
return (
|
||||
<ThemeProvider
|
||||
defaultButtonVariant="expand-hover"
|
||||
defaultTextAnimation="reveal-blur"
|
||||
borderRadius="rounded"
|
||||
contentWidth="medium"
|
||||
sizing="mediumLargeSizeLargeTitles"
|
||||
background="circleGradient"
|
||||
cardStyle="outline"
|
||||
primaryButtonStyle="flat"
|
||||
secondaryButtonStyle="solid"
|
||||
headingFontWeight="normal"
|
||||
>
|
||||
<CustomNavbarWrapper />
|
||||
|
||||
<div id="contact-info" data-section="contact-info">
|
||||
<SplitAbout
|
||||
title="Kontaktieren Sie uns"
|
||||
description="Wir sind gerne für Sie da und beantworten Ihre Fragen schnell und unkompliziert. Erreichen Sie uns über mehrere Kanäle."
|
||||
tag="Wir freuen uns auf Sie"
|
||||
tagAnimation="slide-up"
|
||||
bulletPoints={[
|
||||
{
|
||||
icon: Phone,
|
||||
title: "Telefonisch",
|
||||
description: "Tel: 030 - 123 456 789 | Montag-Freitag, 9:00-18:00 Uhr | Samstag nach Vereinbarung",
|
||||
},
|
||||
{
|
||||
icon: Mail,
|
||||
title: "Per E-Mail",
|
||||
description: "Email: info@kfz-gutachter-berlin.de | Wir antworten in der Regel innerhalb von 24 Stunden",
|
||||
},
|
||||
{
|
||||
icon: MapPin,
|
||||
title: "Persönlich",
|
||||
description: "Besuchen Sie unser Büro in Berlin-Mitte. Termine nach Vereinbarung.",
|
||||
},
|
||||
{
|
||||
icon: Clock,
|
||||
title: "Schnelle Verfügbarkeit",
|
||||
description: "Notfälle und Eilaufträge können auch außerhalb der regulären Geschäftszeiten bearbeitet werden.",
|
||||
},
|
||||
]}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/confident-smiling-businesspeople-sitting-together-business-meeting_23-2147923338.jpg"
|
||||
imageAlt="Kontaktinformationen"
|
||||
imagePosition="right"
|
||||
textboxLayout="default"
|
||||
mediaAnimation="slide-up"
|
||||
useInvertedBackground={false}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="contact-cta" data-section="contact-cta">
|
||||
<ContactCTA
|
||||
tag="Jetzt anfragen"
|
||||
title="Gutachten direkt anfordern"
|
||||
description="Füllen Sie unser Anforderungsformular aus oder rufen Sie uns direkt an. Wir kümmern uns um den Rest und vereinbaren einen passenden Termin für Sie."
|
||||
buttons={[
|
||||
{ text: "Online-Anfrage stellen", href: "#" },
|
||||
{ text: "Tel: 030 - 123 456 789", href: "tel:+493012345789" },
|
||||
]}
|
||||
buttonAnimation="slide-up"
|
||||
background={{ variant: "plain" }}
|
||||
useInvertedBackground={false}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="footer" data-section="footer">
|
||||
<FooterBaseCard
|
||||
logoText="KFZ Gutachter Berlin"
|
||||
columns={footerColumns}
|
||||
copyrightText="© 2025 KFZ Gutachter Berlin. Alle Rechte vorbehalten."
|
||||
/>
|
||||
</div>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
1427
src/app/layout.tsx
Normal file
1427
src/app/layout.tsx
Normal file
File diff suppressed because it is too large
Load Diff
284
src/app/page.tsx
Normal file
284
src/app/page.tsx
Normal file
@@ -0,0 +1,284 @@
|
||||
"use client";
|
||||
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import NavbarStyleCentered from "@/components/navbar/NavbarStyleCentered/NavbarStyleCentered";
|
||||
import HeroSplitTestimonial from "@/components/sections/hero/HeroSplitTestimonial";
|
||||
import FeatureBorderGlow from "@/components/sections/feature/featureBorderGlow/FeatureBorderGlow";
|
||||
import MetricCardTwo from "@/components/sections/metrics/MetricCardTwo";
|
||||
import TestimonialCardSix from "@/components/sections/testimonial/TestimonialCardSix";
|
||||
import ContactCTA from "@/components/sections/contact/ContactCTA";
|
||||
import FooterBaseCard from "@/components/sections/footer/FooterBaseCard";
|
||||
import { Award, CheckCircle, Clock, Shield, MapPin, Zap, Users, MessageCircle } from "lucide-react";
|
||||
import Link from "next/link";
|
||||
|
||||
export default function HomePage() {
|
||||
const navItems = [
|
||||
{ name: "Startseite", id: "/" },
|
||||
{ name: "Dienstleistungen", id: "/dienstleistungen" },
|
||||
{ name: "Über uns", id: "/uber-uns" },
|
||||
{ name: "FAQ", id: "/faq" },
|
||||
{ name: "Kontakt", id: "/kontakt" },
|
||||
];
|
||||
|
||||
const footerColumns = [
|
||||
{
|
||||
title: "Dienstleistungen",
|
||||
items: [
|
||||
{ label: "Unfallgutachten", href: "/dienstleistungen" },
|
||||
{ label: "Wertermittlung", href: "/dienstleistungen" },
|
||||
{ label: "Oldtimer-Gutachten", href: "/dienstleistungen" },
|
||||
{ label: "Flotten-Gutachten", href: "/dienstleistungen" },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Unternehmen",
|
||||
items: [
|
||||
{ label: "Über uns", href: "/uber-uns" },
|
||||
{ label: "Unser Team", href: "/uber-uns" },
|
||||
{ label: "Blog", href: "#" },
|
||||
{ label: "Karriere", href: "#" },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Kontakt",
|
||||
items: [
|
||||
{ label: "Kontaktformular", href: "/kontakt" },
|
||||
{ label: "Tel: 030 - 123 456 789", href: "tel:+493012345789" },
|
||||
{ label: "Email: info@kfz-gutachter-berlin.de", href: "mailto:info@kfz-gutachter-berlin.de" },
|
||||
{ label: "Adresse", href: "#" },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Rechtliches",
|
||||
items: [
|
||||
{ label: "Impressum", href: "#" },
|
||||
{ label: "Datenschutz", href: "#" },
|
||||
{ label: "AGB", href: "#" },
|
||||
{ label: "Disclaimer", href: "#" },
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
const CustomNavbarWrapper = () => (
|
||||
<div id="nav" data-section="nav">
|
||||
<NavbarStyleCentered
|
||||
navItems={navItems.map((item) => ({
|
||||
name: item.name,
|
||||
id: item.id,
|
||||
}))}
|
||||
button={{
|
||||
text: "Jetzt anfragen",
|
||||
href: "/kontakt",
|
||||
}}
|
||||
brandName="KFZ Gutachter Berlin"
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
|
||||
return (
|
||||
<ThemeProvider
|
||||
defaultButtonVariant="expand-hover"
|
||||
defaultTextAnimation="reveal-blur"
|
||||
borderRadius="rounded"
|
||||
contentWidth="medium"
|
||||
sizing="mediumLargeSizeLargeTitles"
|
||||
background="circleGradient"
|
||||
cardStyle="outline"
|
||||
primaryButtonStyle="flat"
|
||||
secondaryButtonStyle="solid"
|
||||
headingFontWeight="normal"
|
||||
>
|
||||
<CustomNavbarWrapper />
|
||||
|
||||
<div id="hero" data-section="hero">
|
||||
<HeroSplitTestimonial
|
||||
title="Professionelle KFZ Gutachten in Berlin"
|
||||
description="Zertifizierte Sachverständige für unabhängige Fahrzeugbegutachtung. Schnell, zuverlässig und gerichtsfest – für Versicherungen, Privatpersonen und Rechtsanwälte."
|
||||
tag="Expertise seit 15 Jahren"
|
||||
tagIcon={Award}
|
||||
tagAnimation="slide-up"
|
||||
background={{ variant: "circleGradient" }}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/young-happy-couple-signing-documents-while-being-with-car-mechanic-repair-shop_637285-4257.jpg"
|
||||
imageAlt="Professionelle KFZ Begutachtung in Berlin"
|
||||
imagePosition="right"
|
||||
mediaAnimation="slide-up"
|
||||
testimonials={[
|
||||
{
|
||||
name: "Thomas M.",
|
||||
handle: "Versicherungsmakler",
|
||||
testimonial: "Hervorragende Arbeit. Schnelle Bearbeitung und präzise Gutachten. Gerne jederzeit wieder!",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-portrait-young-handsome-successful-man_1163-5475.jpg",
|
||||
imageAlt: "Thomas M.",
|
||||
},
|
||||
{
|
||||
name: "Julia K.",
|
||||
handle: "Privatperson",
|
||||
testimonial: "Sehr kompetent und freundlich. Das Gutachten war gerichtsfest und hat mir bei meinem Fall geholfen.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-business-woman-office_1398-6.jpg",
|
||||
imageAlt: "Julia K.",
|
||||
},
|
||||
{
|
||||
name: "Michael R.",
|
||||
handle: "Anwalt",
|
||||
testimonial: "Zuverlässige Partner für komplexe Sachverständigengutachten. Hochprofessionell.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-man-listening-music-headphones-using-smartphone-outdoor-hipster-portrait_1296-728.jpg",
|
||||
imageAlt: "Michael R.",
|
||||
},
|
||||
]}
|
||||
buttons={[
|
||||
{ text: "Gutachten anfordern", href: "/kontakt" },
|
||||
{ text: "Unsere Leistungen", href: "/dienstleistungen" },
|
||||
]}
|
||||
buttonAnimation="slide-up"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="features" data-section="features">
|
||||
<FeatureBorderGlow
|
||||
title="Warum KFZ Gutachter Berlin?"
|
||||
description="Umfassende Expertise in allen Gutachtenarten – von Unfallschäden bis Wertermittlung."
|
||||
features={[
|
||||
{
|
||||
icon: CheckCircle,
|
||||
title: "Zertifiziert & Unabhängig",
|
||||
description: "Durch TÜV und VDSI anerkannt. Völlig unabhängig von Versicherungen und Werkstätten.",
|
||||
},
|
||||
{
|
||||
icon: Clock,
|
||||
title: "Schnelle Bearbeitung",
|
||||
description: "In der Regel innerhalb von 48 Stunden vor Ort oder im Büro verfügbar.",
|
||||
},
|
||||
{
|
||||
icon: Shield,
|
||||
title: "Gerichtsfeste Gutachten",
|
||||
description: "Alle Gutachten sind für Gerichtsverfahren anerkannt und vollständig dokumentiert.",
|
||||
},
|
||||
{
|
||||
icon: MapPin,
|
||||
title: "Ganz Berlin & Umland",
|
||||
description: "Wir kommen zu Ihnen – kostenlos in ganz Berlin und Umgebung.",
|
||||
},
|
||||
{
|
||||
icon: Zap,
|
||||
title: "Transparente Preise",
|
||||
description: "Keine versteckten Kosten. Alle Gebühren sind vorher bekannt und orientieren sich an der BEMA.",
|
||||
},
|
||||
{
|
||||
icon: Users,
|
||||
title: "Persönliche Beratung",
|
||||
description: "Erfahrene Sachverständige, die Ihre Fragen kompetent und freundlich beantworten.",
|
||||
},
|
||||
]}
|
||||
animationType="slide-up"
|
||||
textboxLayout="default"
|
||||
useInvertedBackground={false}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="metrics" data-section="metrics">
|
||||
<MetricCardTwo
|
||||
title="Unsere Erfolgsstatistik"
|
||||
description="Zahlen, die für unseren Erfolg und die Zufriedenheit unserer Kunden sprechen."
|
||||
metrics={[
|
||||
{ id: "1", value: "2.500+", description: "Gutachten pro Jahr" },
|
||||
{ id: "2", value: "98%", description: "Kundenzufriedenheit" },
|
||||
{ id: "3", value: "24-48h", description: "Durchschnittliche Bearbeitungsdauer" },
|
||||
{ id: "4", value: "100%", description: "Gerichtsfeste Gutachten" },
|
||||
]}
|
||||
gridVariant="uniform-all-items-equal"
|
||||
animationType="slide-up"
|
||||
textboxLayout="default"
|
||||
useInvertedBackground={false}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<TestimonialCardSix
|
||||
title="Was unsere Kunden sagen"
|
||||
description="Authentische Bewertungen von Versicherungen, Anwälten und Privatpersonen."
|
||||
testimonials={[
|
||||
{
|
||||
id: "1",
|
||||
name: "Thomas M.",
|
||||
handle: "Versicherungsmakler, Berlin",
|
||||
testimonial: "Hervorragende Zusammenarbeit über viele Jahre. Die Gutachten sind immer präzise, pünktlich und gerichtsfest. Absolute Empfehlung!",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-portrait-young-handsome-successful-man_1163-5475.jpg",
|
||||
imageAlt: "Thomas M.",
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
name: "Julia K.",
|
||||
handle: "Anwältin für Verkehrsrecht",
|
||||
testimonial: "Sehr kompetent und zuverlässig. Die Gutachten halten auch vor Gericht stand. Gerne arbeite ich mit diesem Team zusammen.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-business-woman-office_1398-6.jpg",
|
||||
imageAlt: "Julia K.",
|
||||
},
|
||||
{
|
||||
id: "3",
|
||||
name: "Michael R.",
|
||||
handle: "Privatperson, Unfallgeschädigt",
|
||||
testimonial: "Schnell, professionell und unkompliziert. Das Gutachten hat mir viel geholfen. Top Service!",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-man-listening-music-headphones-using-smartphone-outdoor-hipster-portrait_1296-728.jpg",
|
||||
imageAlt: "Michael R.",
|
||||
},
|
||||
{
|
||||
id: "4",
|
||||
name: "Sandra B.",
|
||||
handle: "Flottenmanagerin, Berlin",
|
||||
testimonial: "Zuverlässig für unsere gewerbliche Flotte. Schnelle Termine, faire Preise. Sehr zufrieden!",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/happy-professional_1098-12931.jpg",
|
||||
imageAlt: "Sandra B.",
|
||||
},
|
||||
{
|
||||
id: "5",
|
||||
name: "Peter L.",
|
||||
handle: "Versicherung, Nord-Deutschland",
|
||||
testimonial: "Perfekte Dokumentation und schnelle Abläufe. Wir vertrauen auf diese Sachverständigen vollständig.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-portrait-young-handsome-successful-man_1163-5475.jpg",
|
||||
imageAlt: "Peter L.",
|
||||
},
|
||||
{
|
||||
id: "6",
|
||||
name: "Karin H.",
|
||||
handle: "Privatperson, Mitte",
|
||||
testimonial: "Freundlich, kompetent und fair. Auch bei Streitfällen objektiv. Kann ich nur weiterempfehlen!",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-young-smiling-pretty-girl-plaid-shirt-posing_114579-70643.jpg",
|
||||
imageAlt: "Karin H.",
|
||||
},
|
||||
]}
|
||||
animationType="slide-up"
|
||||
textboxLayout="default"
|
||||
useInvertedBackground={false}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="contact-cta" data-section="contact-cta">
|
||||
<ContactCTA
|
||||
tag="Noch Fragen?"
|
||||
tagIcon={MessageCircle}
|
||||
tagAnimation="slide-up"
|
||||
title="Jetzt kostenlos Gutachten anfragen"
|
||||
description="Kontaktieren Sie uns noch heute. Wir sind schnell, zuverlässig und kompetent. Ihre zufriedene Anfrage ist unser Erfolg."
|
||||
buttons={[
|
||||
{ text: "Zum Kontaktformular", href: "/kontakt" },
|
||||
{ text: "Tel: 030 - 123 456 789", href: "tel:+493012345789" },
|
||||
]}
|
||||
buttonAnimation="slide-up"
|
||||
background={{ variant: "plain" }}
|
||||
useInvertedBackground={false}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="footer" data-section="footer">
|
||||
<FooterBaseCard
|
||||
logoText="KFZ Gutachter Berlin"
|
||||
columns={footerColumns}
|
||||
copyrightText="© 2025 KFZ Gutachter Berlin. Alle Rechte vorbehalten."
|
||||
/>
|
||||
</div>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
161
src/app/preise/page.tsx
Normal file
161
src/app/preise/page.tsx
Normal file
@@ -0,0 +1,161 @@
|
||||
"use client";
|
||||
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import NavbarStyleCentered from "@/components/navbar/NavbarStyleCentered/NavbarStyleCentered";
|
||||
import MetricCardTwo from "@/components/sections/metrics/MetricCardTwo";
|
||||
import FeatureBorderGlow from "@/components/sections/feature/featureBorderGlow/FeatureBorderGlow";
|
||||
import ContactCTA from "@/components/sections/contact/ContactCTA";
|
||||
import FooterBaseCard from "@/components/sections/footer/FooterBaseCard";
|
||||
import { MessageCircle, DollarSign, Clock, FileCheck } from "lucide-react";
|
||||
import Link from "next/link";
|
||||
|
||||
export default function PricingPage() {
|
||||
const navItems = [
|
||||
{ name: "Startseite", id: "/" },
|
||||
{ name: "Dienstleistungen", id: "/dienstleistungen" },
|
||||
{ name: "Über uns", id: "/uber-uns" },
|
||||
{ name: "FAQ", id: "/faq" },
|
||||
{ name: "Kontakt", id: "/kontakt" },
|
||||
];
|
||||
|
||||
const footerColumns = [
|
||||
{
|
||||
title: "Dienstleistungen",
|
||||
items: [
|
||||
{ label: "Unfallgutachten", href: "/dienstleistungen" },
|
||||
{ label: "Wertermittlung", href: "/dienstleistungen" },
|
||||
{ label: "Oldtimer-Gutachten", href: "/dienstleistungen" },
|
||||
{ label: "Flotten-Gutachten", href: "/dienstleistungen" },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Unternehmen",
|
||||
items: [
|
||||
{ label: "Über uns", href: "/uber-uns" },
|
||||
{ label: "Unser Team", href: "/uber-uns" },
|
||||
{ label: "Blog", href: "#" },
|
||||
{ label: "Karriere", href: "#" },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Kontakt",
|
||||
items: [
|
||||
{ label: "Kontaktformular", href: "/kontakt" },
|
||||
{ label: "Tel: 030 - 123 456 789", href: "tel:+493012345789" },
|
||||
{ label: "Email: info@kfz-gutachter-berlin.de", href: "mailto:info@kfz-gutachter-berlin.de" },
|
||||
{ label: "Adresse", href: "#" },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Rechtliches",
|
||||
items: [
|
||||
{ label: "Impressum", href: "#" },
|
||||
{ label: "Datenschutz", href: "#" },
|
||||
{ label: "AGB", href: "#" },
|
||||
{ label: "Disclaimer", href: "#" },
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
const CustomNavbarWrapper = () => (
|
||||
<div id="nav" data-section="nav">
|
||||
<NavbarStyleCentered
|
||||
navItems={navItems.map((item) => ({
|
||||
name: item.name,
|
||||
id: item.id,
|
||||
}))}
|
||||
button={{
|
||||
text: "Jetzt anfragen",
|
||||
href: "/kontakt",
|
||||
}}
|
||||
brandName="KFZ Gutachter Berlin"
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
|
||||
return (
|
||||
<ThemeProvider
|
||||
defaultButtonVariant="expand-hover"
|
||||
defaultTextAnimation="reveal-blur"
|
||||
borderRadius="rounded"
|
||||
contentWidth="medium"
|
||||
sizing="mediumLargeSizeLargeTitles"
|
||||
background="circleGradient"
|
||||
cardStyle="outline"
|
||||
primaryButtonStyle="flat"
|
||||
secondaryButtonStyle="solid"
|
||||
headingFontWeight="normal"
|
||||
>
|
||||
<CustomNavbarWrapper />
|
||||
|
||||
<div id="pricing-intro" data-section="pricing-intro">
|
||||
<MetricCardTwo
|
||||
title="Transparente Gebührenordnung"
|
||||
description="Alle unsere Preise basieren auf der BEMA-Gebührenordnung. Keine versteckten Kosten, keine Überraschungen."
|
||||
metrics={[
|
||||
{ id: "1", value: "ab 150€", description: "Unfallgutachten" },
|
||||
{ id: "2", value: "ab 120€", description: "Wertermittlung" },
|
||||
{ id: "3", value: "ab 180€", description: "Oldtimer-Gutachten" },
|
||||
{ id: "4", value: "Individuell", description: "Flottengutachten" },
|
||||
]}
|
||||
gridVariant="uniform-all-items-equal"
|
||||
animationType="slide-up"
|
||||
textboxLayout="default"
|
||||
useInvertedBackground={false}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="pricing-features" data-section="pricing-features">
|
||||
<FeatureBorderGlow
|
||||
title="Was ist in unseren Preisen enthalten"
|
||||
description="Vollständige Leistungen ohne versteckte Gebühren – alles, was Sie benötigen."
|
||||
features={[
|
||||
{
|
||||
icon: DollarSign,
|
||||
title: "BEMA-konforme Gebühren",
|
||||
description: "Alle Gebühren nach der anerkannten Gebührenordnung für Sachverständige kalkuliert.",
|
||||
},
|
||||
{
|
||||
icon: Clock,
|
||||
title: "Kostenlose Anfahrt",
|
||||
description: "Fahrtkosten sind kostenlos in Berlin und Umland. Nur bei Außenaufträgen zusätzlich berechnet.",
|
||||
},
|
||||
{
|
||||
icon: FileCheck,
|
||||
title: "Vollständige Dokumentation",
|
||||
description: "Alle Berichte enthalten detaillierte Fotos, Messungen und offizielle Beurteilung.",
|
||||
},
|
||||
]}
|
||||
animationType="slide-up"
|
||||
textboxLayout="default"
|
||||
useInvertedBackground={false}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="contact-cta" data-section="contact-cta">
|
||||
<ContactCTA
|
||||
tag="Preisanfrage"
|
||||
tagIcon={MessageCircle}
|
||||
tagAnimation="slide-up"
|
||||
title="Kostenlos & Unverbindlich"
|
||||
description="Kontaktieren Sie uns für eine individuelle Preisauskunft. Wir erstellen Ihnen gerne ein maßgeschneidertes Angebot für Ihre Anforderungen."
|
||||
buttons={[
|
||||
{ text: "Angebot anfordern", href: "/kontakt" },
|
||||
{ text: "Fragen stellen", href: "/faq" },
|
||||
]}
|
||||
buttonAnimation="slide-up"
|
||||
background={{ variant: "plain" }}
|
||||
useInvertedBackground={false}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="footer" data-section="footer">
|
||||
<FooterBaseCard
|
||||
logoText="KFZ Gutachter Berlin"
|
||||
columns={footerColumns}
|
||||
copyrightText="© 2025 KFZ Gutachter Berlin. Alle Rechte vorbehalten."
|
||||
/>
|
||||
</div>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
28
src/app/styles/base.css
Normal file
28
src/app/styles/base.css
Normal file
@@ -0,0 +1,28 @@
|
||||
* {
|
||||
scrollbar-width: thin;
|
||||
scrollbar-color: rgba(255, 255, 255, 1) rgba(255, 255, 255, 0);
|
||||
}
|
||||
|
||||
html {
|
||||
overscroll-behavior: none;
|
||||
overscroll-behavior-y: none;
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: var(--background);
|
||||
color: var(--foreground);
|
||||
font-family: var(--font-nunito-sans), sans-serif;
|
||||
position: relative;
|
||||
min-height: 100vh;
|
||||
overscroll-behavior: none;
|
||||
overscroll-behavior-y: none;
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
font-family: var(--font-nunito-sans), sans-serif;
|
||||
}
|
||||
176
src/app/styles/theme.css
Normal file
176
src/app/styles/theme.css
Normal file
@@ -0,0 +1,176 @@
|
||||
@theme inline {
|
||||
--color-background: var(--background);
|
||||
--color-card: var(--card);
|
||||
--color-foreground: var(--foreground);
|
||||
--color-primary-cta: var(--primary-cta);
|
||||
--color-primary-cta-text: var(--primary-cta-text);
|
||||
--color-secondary-cta: var(--secondary-cta);
|
||||
--color-secondary-cta-text: var(--secondary-cta-text);
|
||||
--color-accent: var(--accent);
|
||||
--color-background-accent: var(--background-accent);
|
||||
|
||||
/* theme border radius */
|
||||
--radius-theme: var(--theme-border-radius);
|
||||
--radius-theme-capped: var(--theme-border-radius-capped);
|
||||
|
||||
/* text */
|
||||
--text-2xs: var(--text-2xs);
|
||||
--text-xs: var(--text-xs);
|
||||
--text-sm: var(--text-sm);
|
||||
--text-base: var(--text-base);
|
||||
--text-lg: var(--text-lg);
|
||||
--text-xl: var(--text-xl);
|
||||
--text-2xl: var(--text-2xl);
|
||||
--text-3xl: var(--text-3xl);
|
||||
--text-4xl: var(--text-4xl);
|
||||
--text-5xl: var(--text-5xl);
|
||||
--text-6xl: var(--text-6xl);
|
||||
--text-7xl: var(--text-7xl);
|
||||
--text-8xl: var(--text-8xl);
|
||||
--text-9xl: var(--text-9xl);
|
||||
|
||||
/* height */
|
||||
--height-4: var(--height-4);
|
||||
--height-5: var(--height-5);
|
||||
--height-6: var(--height-6);
|
||||
--height-7: var(--height-7);
|
||||
--height-8: var(--height-8);
|
||||
--height-9: var(--height-9);
|
||||
--height-11: var(--height-11);
|
||||
--height-12: var(--height-12);
|
||||
|
||||
--height-10: var(--height-10);
|
||||
--height-30: var(--height-30);
|
||||
--height-90: var(--height-90);
|
||||
--height-100: var(--height-100);
|
||||
--height-110: var(--height-110);
|
||||
--height-120: var(--height-120);
|
||||
--height-130: var(--height-130);
|
||||
--height-140: var(--height-140);
|
||||
--height-150: var(--height-150);
|
||||
|
||||
--height-page-padding: calc(2.25rem+var(--vw-1_5)+var(--vw-1_5));
|
||||
|
||||
/* width */
|
||||
--width-5: var(--width-5);
|
||||
--width-7_5: var(--width-7_5);
|
||||
--width-10: var(--width-10);
|
||||
--width-12_5: var(--width-12_5);
|
||||
--width-15: var(--width-15);
|
||||
--width-17: var(--width-17);
|
||||
--width-17_5: var(--width-17_5);
|
||||
--width-20: var(--width-20);
|
||||
--width-21: var(--width-21);
|
||||
--width-22_5: var(--width-22_5);
|
||||
--width-25: var(--width-25);
|
||||
--width-26: var(--width-26);
|
||||
--width-27_5: var(--width-27_5);
|
||||
--width-30: var(--width-30);
|
||||
--width-32_5: var(--width-32_5);
|
||||
--width-35: var(--width-35);
|
||||
--width-37_5: var(--width-37_5);
|
||||
--width-40: var(--width-40);
|
||||
--width-42_5: var(--width-42_5);
|
||||
--width-45: var(--width-45);
|
||||
--width-47_5: var(--width-47_5);
|
||||
--width-50: var(--width-50);
|
||||
--width-52_5: var(--width-52_5);
|
||||
--width-55: var(--width-55);
|
||||
--width-57_5: var(--width-57_5);
|
||||
--width-60: var(--width-60);
|
||||
--width-62_5: var(--width-62_5);
|
||||
--width-65: var(--width-65);
|
||||
--width-67_5: var(--width-67_5);
|
||||
--width-70: var(--width-70);
|
||||
--width-72_5: var(--width-72_5);
|
||||
--width-75: var(--width-75);
|
||||
--width-77_5: var(--width-77_5);
|
||||
--width-80: var(--width-80);
|
||||
--width-82_5: var(--width-82_5);
|
||||
--width-85: var(--width-85);
|
||||
--width-87_5: var(--width-87_5);
|
||||
--width-90: var(--width-90);
|
||||
--width-92_5: var(--width-92_5);
|
||||
--width-95: var(--width-95);
|
||||
--width-97_5: var(--width-97_5);
|
||||
--width-100: var(--width-100);
|
||||
--width-content-width: var(--width-content-width);
|
||||
--width-carousel-padding: var(--width-carousel-padding);
|
||||
--width-carousel-padding-controls: var(--width-carousel-padding-controls);
|
||||
--width-carousel-padding-expanded: var(--width-carousel-padding-expanded);
|
||||
--width-carousel-padding-controls-expanded: var(--width-carousel-padding-controls-expanded);
|
||||
--width-carousel-item-3: var(--width-carousel-item-3);
|
||||
--width-carousel-item-4: var(--width-carousel-item-4);
|
||||
--width-x-padding-mask-fade: var(--width-x-padding-mask-fade);
|
||||
--width-content-width-expanded: var(--width-content-width-expanded);
|
||||
|
||||
/* gap */
|
||||
--spacing-1: var(--vw-0_25);
|
||||
--spacing-2: var(--vw-0_5);
|
||||
--spacing-3: var(--vw-0_75);
|
||||
--spacing-4: var(--vw-1);
|
||||
--spacing-5: var(--vw-1_25);
|
||||
--spacing-6: var(--vw-1_5);
|
||||
--spacing-7: var(--vw-1_75);
|
||||
--spacing-8: var(--vw-2);
|
||||
|
||||
--spacing-x-1: var(--vw-0_25);
|
||||
--spacing-x-2: var(--vw-0_5);
|
||||
--spacing-x-3: var(--vw-0_75);
|
||||
--spacing-x-4: var(--vw-1);
|
||||
--spacing-x-5: var(--vw-1_25);
|
||||
--spacing-x-6: var(--vw-1_5);
|
||||
|
||||
/* border radius */
|
||||
--radius-none: 0;
|
||||
--radius-sm: var(--vw-0_5);
|
||||
--radius: var(--vw-0_75);
|
||||
--radius-md: var(--vw-1);
|
||||
--radius-lg: var(--vw-1_25);
|
||||
--radius-xl: var(--vw-1_75);
|
||||
--radius-full: 999px;
|
||||
|
||||
/* padding */
|
||||
--padding-1: var(--vw-0_25);
|
||||
--padding-2: var(--vw-0_5);
|
||||
--padding-2.5: var(--vw-0_625);
|
||||
--padding-3: var(--vw-0_75);
|
||||
--padding-4: var(--vw-1);
|
||||
--padding-5: var(--vw-1_25);
|
||||
--padding-6: var(--vw-1_5);
|
||||
--padding-7: var(--vw-1_75);
|
||||
--padding-8: var(--vw-2);
|
||||
|
||||
--padding-x-1: var(--vw-0_25);
|
||||
--padding-x-2: var(--vw-0_5);
|
||||
--padding-x-3: var(--vw-0_75);
|
||||
--padding-x-4: var(--vw-1);
|
||||
--padding-x-5: var(--vw-1_25);
|
||||
--padding-x-6: var(--vw-1_5);
|
||||
--padding-x-7: var(--vw-1_75);
|
||||
--padding-x-8: var(--vw-2);
|
||||
|
||||
--padding-hero-page-padding-half: var(--padding-hero-page-padding-half);
|
||||
--padding-hero-page-padding: var(--padding-hero-page-padding);
|
||||
--padding-hero-page-padding-1_5: var(--padding-hero-page-padding-1_5);
|
||||
--padding-hero-page-padding-double: var(--padding-hero-page-padding-double);
|
||||
|
||||
/* margin */
|
||||
--margin-1: var(--vw-0_25);
|
||||
--margin-2: var(--vw-0_5);
|
||||
--margin-3: var(--vw-0_75);
|
||||
--margin-4: var(--vw-1);
|
||||
--margin-5: var(--vw-1_25);
|
||||
--margin-6: var(--vw-1_5);
|
||||
--margin-7: var(--vw-1_75);
|
||||
--margin-8: var(--vw-2);
|
||||
|
||||
--margin-x-1: var(--vw-0_25);
|
||||
--margin-x-2: var(--vw-0_5);
|
||||
--margin-x-3: var(--vw-0_75);
|
||||
--margin-x-4: var(--vw-1);
|
||||
--margin-x-5: var(--vw-1_25);
|
||||
--margin-x-6: var(--vw-1_5);
|
||||
--margin-x-7: var(--vw-1_75);
|
||||
--margin-x-8: var(--vw-2);
|
||||
}
|
||||
228
src/app/styles/utilities.css
Normal file
228
src/app/styles/utilities.css
Normal file
@@ -0,0 +1,228 @@
|
||||
@layer components {}
|
||||
|
||||
@layer utilities {
|
||||
|
||||
/* Card, primary-button, and secondary-button styles are now dynamically injected via ThemeProvider */
|
||||
|
||||
/* .card {
|
||||
@apply backdrop-blur-sm bg-gradient-to-br from-card/80 to-card/40 shadow-sm border border-card;
|
||||
}
|
||||
|
||||
.primary-button {
|
||||
@apply bg-gradient-to-b from-primary-cta/83 to-primary-cta;
|
||||
box-shadow:
|
||||
color-mix(in srgb, var(--color-background) 25%, transparent) 0px 1px 1px 0px inset,
|
||||
color-mix(in srgb, var(--color-primary-cta) 15%, transparent) 3px 3px 3px 0px;
|
||||
}
|
||||
|
||||
.secondary-button {
|
||||
@apply backdrop-blur-sm bg-gradient-to-br from-secondary-cta/80 to-secondary-cta shadow-sm border border-secondary-cta;
|
||||
} */
|
||||
|
||||
.tag-card {
|
||||
@apply backdrop-blur-sm bg-gradient-to-br from-card/80 to-card/40 shadow-sm border border-card;
|
||||
}
|
||||
|
||||
.inset-glow-border {
|
||||
@apply relative;
|
||||
}
|
||||
|
||||
.inset-glow-border::before {
|
||||
content: "";
|
||||
@apply absolute pointer-events-none inset-0 p-[1px];
|
||||
border-radius: inherit;
|
||||
background: linear-gradient(
|
||||
0deg,
|
||||
color-mix(in srgb, var(--color-primary-cta) 20%, var(--color-background)) 0%,
|
||||
color-mix(in srgb, var(--color-primary-cta) 40%, var(--color-background)) 27%,
|
||||
color-mix(in srgb, var(--color-primary-cta) 60%, var(--color-foreground)) 62%,
|
||||
color-mix(in srgb, var(--color-primary-cta) 80%, var(--color-foreground)) 100%
|
||||
);
|
||||
mask:
|
||||
linear-gradient(#000 0 0) content-box,
|
||||
linear-gradient(#000 0 0);
|
||||
mask-composite: exclude;
|
||||
}
|
||||
|
||||
.mask-fade-x {
|
||||
-webkit-mask-image: linear-gradient(to right, transparent 0%, transparent calc((100vw - var(--width-content-width)) / 4), black calc((100vw - var(--width-content-width)) / 2 + 5vw), black calc(100% - (100vw - var(--width-content-width)) / 2 - 5vw), transparent calc(100% - (100vw - var(--width-content-width)) / 4), transparent 100%);
|
||||
mask-image: linear-gradient(to right, transparent 0%, transparent calc((100vw - var(--width-content-width)) / 4), black calc((100vw - var(--width-content-width)) / 2 + 5vw), black calc(100% - (100vw - var(--width-content-width)) / 2 - 5vw), transparent calc(100% - (100vw - var(--width-content-width)) / 4), transparent 100%);
|
||||
}
|
||||
|
||||
.mask-padding-x {
|
||||
-webkit-mask-image: linear-gradient(to right, transparent 0%, black var(--width-x-padding-mask-fade), black calc(100% - var(--width-x-padding-mask-fade)), transparent 100%);
|
||||
mask-image: linear-gradient(to right, transparent 0%, black var(--width-x-padding-mask-fade), black calc(100% - var(--width-x-padding-mask-fade)), transparent 100%);
|
||||
}
|
||||
|
||||
.mask-fade-bottom {
|
||||
-webkit-mask-image: linear-gradient(to bottom, black 0%, black 50%, transparent 100%);
|
||||
mask-image: linear-gradient(to bottom, black 0%, black 50%, transparent 100%);
|
||||
}
|
||||
|
||||
.mask-fade-y {
|
||||
mask-image: linear-gradient(to bottom,
|
||||
transparent 0%,
|
||||
black var(--vw-1_5),
|
||||
black calc(100% - var(--vw-1_5)),
|
||||
transparent 100%);
|
||||
}
|
||||
|
||||
.mask-fade-y {
|
||||
mask-image: linear-gradient(to bottom,
|
||||
transparent 0%,
|
||||
black var(--vw-1_5),
|
||||
black calc(100% - var(--vw-1_5)),
|
||||
transparent 100%);
|
||||
}
|
||||
|
||||
.mask-fade-y-medium {
|
||||
mask-image: linear-gradient(to bottom,
|
||||
transparent 0%,
|
||||
black 20%,
|
||||
black 80%,
|
||||
transparent 100%);
|
||||
}
|
||||
|
||||
.mask-fade-bottom-large {
|
||||
-webkit-mask-image: linear-gradient(to bottom, black 0%, black 50%, transparent 75%, transparent 100%);
|
||||
mask-image: linear-gradient(to bottom, black 0%, black 50%, transparent 75%, transparent 100%);
|
||||
}
|
||||
|
||||
.mask-fade-bottom-long {
|
||||
-webkit-mask-image: linear-gradient(to bottom, black 0%, black 5%, transparent 100%);
|
||||
mask-image: linear-gradient(to bottom, black 0%, black 5%, transparent 100%);
|
||||
}
|
||||
|
||||
.mask-fade-top-long {
|
||||
-webkit-mask-image: linear-gradient(to top, black 0%, black 5%, transparent 100%);
|
||||
mask-image: linear-gradient(to top, black 0%, black 5%, transparent 100%);
|
||||
}
|
||||
|
||||
.mask-fade-xy {
|
||||
-webkit-mask-image:
|
||||
linear-gradient(to right, transparent 0%, black 20%, black 80%, transparent 100%),
|
||||
linear-gradient(to bottom, transparent 0%, black 20%, black 80%, transparent 100%);
|
||||
mask-image:
|
||||
linear-gradient(to right, transparent 0%, black 20%, black 80%, transparent 100%),
|
||||
linear-gradient(to bottom, transparent 0%, black 20%, black 80%, transparent 100%);
|
||||
-webkit-mask-composite: source-in;
|
||||
mask-composite: intersect;
|
||||
}
|
||||
|
||||
/* ANIMATION */
|
||||
|
||||
.animation-container {
|
||||
animation:
|
||||
fadeInOpacity 0.8s ease-in-out forwards,
|
||||
fadeInTranslate 0.6s forwards;
|
||||
}
|
||||
|
||||
.animation-container-fade {
|
||||
animation: fadeInOpacity 0.8s ease-in-out forwards;
|
||||
}
|
||||
|
||||
@keyframes fadeInOpacity {
|
||||
from {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
to {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes fadeInTranslate {
|
||||
from {
|
||||
transform: translateY(0.75vh);
|
||||
}
|
||||
|
||||
to {
|
||||
transform: translateY(0vh);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes aurora {
|
||||
from {
|
||||
background-position: 50% 50%, 50% 50%;
|
||||
}
|
||||
|
||||
to {
|
||||
background-position: 350% 50%, 350% 50%;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes spin-slow {
|
||||
from {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
to {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes spin-reverse {
|
||||
from {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
to {
|
||||
transform: rotate(-360deg);
|
||||
}
|
||||
}
|
||||
|
||||
.animate-spin-slow {
|
||||
animation: spin-slow 15s linear infinite;
|
||||
}
|
||||
|
||||
.animate-spin-reverse {
|
||||
animation: spin-reverse 10s linear infinite;
|
||||
}
|
||||
|
||||
@keyframes marquee-vertical {
|
||||
from {
|
||||
transform: translateY(0);
|
||||
}
|
||||
to {
|
||||
transform: translateY(-50%);
|
||||
}
|
||||
}
|
||||
|
||||
.animate-marquee-vertical {
|
||||
animation: marquee-vertical 40s linear infinite;
|
||||
}
|
||||
|
||||
@keyframes marquee-vertical-reverse {
|
||||
from {
|
||||
transform: translateY(-50%);
|
||||
}
|
||||
to {
|
||||
transform: translateY(0);
|
||||
}
|
||||
}
|
||||
|
||||
.animate-marquee-vertical-reverse {
|
||||
animation: marquee-vertical-reverse 40s linear infinite;
|
||||
}
|
||||
|
||||
@keyframes orbit {
|
||||
from {
|
||||
transform: rotate(var(--initial-position, 0deg)) translateX(var(--translate-position, 120px)) rotate(calc(-1 * var(--initial-position, 0deg)));
|
||||
}
|
||||
to {
|
||||
transform: rotate(calc(var(--initial-position, 0deg) + 360deg)) translateX(var(--translate-position, 120px)) rotate(calc(-1 * (var(--initial-position, 0deg) + 360deg)));
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes map-dot-pulse {
|
||||
0%, 100% {
|
||||
transform: scale(0.4);
|
||||
opacity: 0.6;
|
||||
}
|
||||
50% {
|
||||
transform: scale(1.4);
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
217
src/app/styles/variables.css
Normal file
217
src/app/styles/variables.css
Normal file
@@ -0,0 +1,217 @@
|
||||
:root {
|
||||
/* Base units */
|
||||
/* --vw is set by ThemeProvider */
|
||||
|
||||
/* --background: #f7f6f7;;
|
||||
--card: #ffffff;;
|
||||
--foreground: #1b0c25;;
|
||||
--primary-cta: #1b0c25;;
|
||||
--secondary-cta: #ffffff;;
|
||||
--accent: #ff93e4;;
|
||||
--background-accent: #e8a8c3;; */
|
||||
|
||||
--background: #f7f6f7;;
|
||||
--card: #ffffff;;
|
||||
--foreground: #1b0c25;;
|
||||
--primary-cta: #1b0c25;;
|
||||
--primary-cta-text: #f7f6f7;;
|
||||
--secondary-cta: #ffffff;;
|
||||
--secondary-cta-text: #1b0c25;;
|
||||
--accent: #ff93e4;;
|
||||
--background-accent: #e8a8c3;;
|
||||
|
||||
/* text sizing - set by ThemeProvider */
|
||||
/* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem);
|
||||
--text-xs: clamp(0.54rem, 0.72vw, 0.72rem);
|
||||
--text-sm: clamp(0.615rem, 0.82vw, 0.82rem);
|
||||
--text-base: clamp(0.69rem, 0.92vw, 0.92rem);
|
||||
--text-lg: clamp(0.75rem, 1vw, 1rem);
|
||||
--text-xl: clamp(0.825rem, 1.1vw, 1.1rem);
|
||||
--text-2xl: clamp(0.975rem, 1.3vw, 1.3rem);
|
||||
--text-3xl: clamp(1.2rem, 1.6vw, 1.6rem);
|
||||
--text-4xl: clamp(1.5rem, 2vw, 2rem);
|
||||
--text-5xl: clamp(2.025rem, 2.75vw, 2.75rem);
|
||||
--text-6xl: clamp(2.475rem, 3.3vw, 3.3rem);
|
||||
--text-7xl: clamp(3rem, 4vw, 4rem);
|
||||
--text-8xl: clamp(3.5rem, 4.5vw, 4.5rem);
|
||||
--text-9xl: clamp(5.25rem, 7vw, 7rem); */
|
||||
|
||||
/* Base spacing units */
|
||||
--vw-0_25: calc(var(--vw) * 0.25);
|
||||
--vw-0_5: calc(var(--vw) * 0.5);
|
||||
--vw-0_625: calc(var(--vw) * 0.625);
|
||||
--vw-0_75: calc(var(--vw) * 0.75);
|
||||
--vw-1: calc(var(--vw) * 1);
|
||||
--vw-1_25: calc(var(--vw) * 1.25);
|
||||
--vw-1_5: calc(var(--vw) * 1.5);
|
||||
--vw-1_75: calc(var(--vw) * 1.75);
|
||||
--vw-2: calc(var(--vw) * 2);
|
||||
--vw-2_25: calc(var(--vw) * 2.25);
|
||||
--vw-2_5: calc(var(--vw) * 2.5);
|
||||
--vw-2_75: calc(var(--vw) * 2.75);
|
||||
--vw-3: calc(var(--vw) * 3);
|
||||
|
||||
/* width */
|
||||
--width-5: clamp(4rem, 5vw, 6rem);
|
||||
--width-7_5: clamp(5.625rem, 7.5vw, 7.5rem);
|
||||
--width-10: clamp(7.5rem, 10vw, 10rem);
|
||||
--width-12_5: clamp(9.375rem, 12.5vw, 12.5rem);
|
||||
--width-15: clamp(11.25rem, 15vw, 15rem);
|
||||
--width-17: clamp(12.75rem, 17vw, 17rem);
|
||||
--width-17_5: clamp(13.125rem, 17.5vw, 17.5rem);
|
||||
--width-20: clamp(15rem, 20vw, 20rem);
|
||||
--width-21: clamp(15.75rem, 21vw, 21rem);
|
||||
--width-22_5: clamp(16.875rem, 22.5vw, 22.5rem);
|
||||
--width-25: clamp(18.75rem, 25vw, 25rem);
|
||||
--width-26: clamp(19.5rem, 26vw, 26rem);
|
||||
--width-27_5: clamp(20.625rem, 27.5vw, 27.5rem);
|
||||
--width-30: clamp(22.5rem, 30vw, 30rem);
|
||||
--width-32_5: clamp(24.375rem, 32.5vw, 32.5rem);
|
||||
--width-35: clamp(26.25rem, 35vw, 35rem);
|
||||
--width-37_5: clamp(28.125rem, 37.5vw, 37.5rem);
|
||||
--width-40: clamp(30rem, 40vw, 40rem);
|
||||
--width-42_5: clamp(31.875rem, 42.5vw, 42.5rem);
|
||||
--width-45: clamp(33.75rem, 45vw, 45rem);
|
||||
--width-47_5: clamp(35.625rem, 47.5vw, 47.5rem);
|
||||
--width-50: clamp(37.5rem, 50vw, 50rem);
|
||||
--width-52_5: clamp(39.375rem, 52.5vw, 52.5rem);
|
||||
--width-55: clamp(41.25rem, 55vw, 55rem);
|
||||
--width-57_5: clamp(43.125rem, 57.5vw, 57.5rem);
|
||||
--width-60: clamp(45rem, 60vw, 60rem);
|
||||
--width-62_5: clamp(46.875rem, 62.5vw, 62.5rem);
|
||||
--width-65: clamp(48.75rem, 65vw, 65rem);
|
||||
--width-67_5: clamp(50.625rem, 67.5vw, 67.5rem);
|
||||
--width-70: clamp(52.5rem, 70vw, 70rem);
|
||||
--width-72_5: clamp(54.375rem, 72.5vw, 72.5rem);
|
||||
--width-75: clamp(56.25rem, 75vw, 75rem);
|
||||
--width-77_5: clamp(58.125rem, 77.5vw, 77.5rem);
|
||||
--width-80: clamp(60rem, 80vw, 80rem);
|
||||
--width-82_5: clamp(61.875rem, 82.5vw, 82.5rem);
|
||||
--width-85: clamp(63.75rem, 85vw, 85rem);
|
||||
--width-87_5: clamp(65.625rem, 87.5vw, 87.5rem);
|
||||
--width-90: clamp(67.5rem, 90vw, 90rem);
|
||||
--width-92_5: clamp(69.375rem, 92.5vw, 92.5rem);
|
||||
--width-95: clamp(71.25rem, 95vw, 95rem);
|
||||
--width-97_5: clamp(73.125rem, 97.5vw, 97.5rem);
|
||||
--width-100: clamp(75rem, 100vw, 100rem);
|
||||
/* --width-content-width and --width-content-width-expanded are set by ThemeProvider */
|
||||
--width-carousel-padding: calc((100vw - var(--width-content-width)) / 2 + 1px - var(--vw-1_5));
|
||||
--width-carousel-padding-controls: calc((100vw - var(--width-content-width)) / 2 + 1px);
|
||||
--width-carousel-padding-expanded: calc((var(--width-content-width-expanded) - var(--width-content-width)) / 2 + 1px - var(--vw-1_5));
|
||||
--width-carousel-padding-controls-expanded: calc((var(--width-content-width-expanded) - var(--width-content-width)) / 2 + 1px);
|
||||
--width-carousel-item-3: calc(var(--width-content-width) / 3 - var(--vw-1_5) / 3 * 2);
|
||||
--width-carousel-item-4: calc(var(--width-content-width) / 4 - var(--vw-1_5) / 4 * 3);
|
||||
--width-x-padding-mask-fade: clamp(1.5rem, 4vw, 4rem);
|
||||
|
||||
--height-4: 1rem;
|
||||
--height-5: 1.25rem;
|
||||
--height-6: 1.5rem;
|
||||
--height-7: 1.75rem;
|
||||
--height-8: 2rem;
|
||||
--height-9: 2.25rem;
|
||||
--height-10: 2.5rem;
|
||||
--height-11: 2.75rem;
|
||||
--height-12: 3rem;
|
||||
--height-30: 7.5rem;
|
||||
--height-90: 22.5rem;
|
||||
--height-100: 25rem;
|
||||
--height-110: 27.5rem;
|
||||
--height-120: 30rem;
|
||||
--height-130: 32.5rem;
|
||||
--height-140: 35rem;
|
||||
--height-150: 37.5rem;
|
||||
|
||||
/* hero page padding */
|
||||
--padding-hero-page-padding-half: calc((var(--height-10) + var(--vw-1_5) + var(--vw-1_5) + var(--height-10)) / 2);
|
||||
--padding-hero-page-padding: calc(var(--height-10) + var(--vw-1_5) + var(--vw-1_5) + var(--height-10));
|
||||
--padding-hero-page-padding-1_5: calc(1.5 * (var(--height-10) + var(--vw-1_5) + var(--vw-1_5) + var(--height-10)));
|
||||
--padding-hero-page-padding-double: calc(2 * (var(--height-10) + var(--vw-1_5) + var(--vw-1_5) + var(--height-10)));
|
||||
}
|
||||
|
||||
@media (max-width: 767px) {
|
||||
:root {
|
||||
/* --vw and text sizing are set by ThemeProvider */
|
||||
/* --vw: 3vw;
|
||||
|
||||
--text-2xs: 2.5vw;
|
||||
--text-xs: 2.75vw;
|
||||
--text-sm: 3vw;
|
||||
--text-base: 3.25vw;
|
||||
--text-lg: 3.5vw;
|
||||
--text-xl: 4.25vw;
|
||||
--text-2xl: 5vw;
|
||||
--text-3xl: 6vw;
|
||||
--text-4xl: 7vw;
|
||||
--text-5xl: 7.5vw;
|
||||
--text-6xl: 8.5vw;
|
||||
--text-7xl: 10vw;
|
||||
--text-8xl: 12vw;
|
||||
--text-9xl: 14vw; */
|
||||
|
||||
--width-5: 5vw;
|
||||
--width-7_5: 7.5vw;
|
||||
--width-10: 10vw;
|
||||
--width-12_5: 12.5vw;
|
||||
--width-15: 15vw;
|
||||
--width-17_5: 17.5vw;
|
||||
--width-20: 20vw;
|
||||
--width-22_5: 22.5vw;
|
||||
--width-25: 25vw;
|
||||
--width-27_5: 27.5vw;
|
||||
--width-30: 30vw;
|
||||
--width-32_5: 32.5vw;
|
||||
--width-35: 35vw;
|
||||
--width-37_5: 37.5vw;
|
||||
--width-40: 40vw;
|
||||
--width-42_5: 42.5vw;
|
||||
--width-45: 45vw;
|
||||
--width-47_5: 47.5vw;
|
||||
--width-50: 50vw;
|
||||
--width-52_5: 52.5vw;
|
||||
--width-55: 55vw;
|
||||
--width-57_5: 57.5vw;
|
||||
--width-60: 60vw;
|
||||
--width-62_5: 62.5vw;
|
||||
--width-65: 65vw;
|
||||
--width-67_5: 67.5vw;
|
||||
--width-70: 70vw;
|
||||
--width-72_5: 72.5vw;
|
||||
--width-75: 75vw;
|
||||
--width-77_5: 77.5vw;
|
||||
--width-80: 80vw;
|
||||
--width-82_5: 82.5vw;
|
||||
--width-85: 85vw;
|
||||
--width-87_5: 87.5vw;
|
||||
--width-90: 90vw;
|
||||
--width-92_5: 92.5vw;
|
||||
--width-95: 95vw;
|
||||
--width-97_5: 97.5vw;
|
||||
--width-100: 100vw;
|
||||
/* --width-content-width and --width-content-width-expanded are set by ThemeProvider */
|
||||
--width-carousel-padding: calc((100vw - var(--width-content-width)) / 2 + 1px - var(--vw-1_5));
|
||||
--width-carousel-padding-controls: calc((100vw - var(--width-content-width)) / 2 + 1px);
|
||||
--width-carousel-padding-expanded: calc((var(--width-content-width-expanded) - var(--width-content-width)) / 2 + 1px - var(--vw-1_5));
|
||||
--width-carousel-padding-controls-expanded: calc((var(--width-content-width-expanded) - var(--width-content-width)) / 2 + 1px);
|
||||
--width-carousel-item-3: var(--width-content-width);
|
||||
--width-carousel-item-4: var(--width-content-width);
|
||||
--width-x-padding-mask-fade: 10vw;
|
||||
|
||||
--height-4: 3.5vw;
|
||||
--height-5: 4.5vw;
|
||||
--height-6: 5.5vw;
|
||||
--height-7: 6.5vw;
|
||||
--height-8: 7.5vw;
|
||||
--height-9: 8.5vw;
|
||||
--height-10: 9vw;
|
||||
--height-11: 10vw;
|
||||
--height-12: 11vw;
|
||||
--height-30: 25vw;
|
||||
--height-90: 81vw;
|
||||
--height-100: 90vw;
|
||||
--height-110: 99vw;
|
||||
--height-120: 108vw;
|
||||
--height-130: 117vw;
|
||||
--height-140: 126vw;
|
||||
--height-150: 135vw;
|
||||
}
|
||||
}
|
||||
171
src/app/uber-uns/page.tsx
Normal file
171
src/app/uber-uns/page.tsx
Normal file
@@ -0,0 +1,171 @@
|
||||
"use client";
|
||||
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import NavbarStyleCentered from "@/components/navbar/NavbarStyleCentered/NavbarStyleCentered";
|
||||
import SplitAbout from "@/components/sections/about/SplitAbout";
|
||||
import MetricCardTwo from "@/components/sections/metrics/MetricCardTwo";
|
||||
import ContactCTA from "@/components/sections/contact/ContactCTA";
|
||||
import FooterBaseCard from "@/components/sections/footer/FooterBaseCard";
|
||||
import { Briefcase, Award, Users, TrendingUp, MessageCircle } from "lucide-react";
|
||||
import Link from "next/link";
|
||||
|
||||
export default function AboutPage() {
|
||||
const navItems = [
|
||||
{ name: "Startseite", id: "/" },
|
||||
{ name: "Dienstleistungen", id: "/dienstleistungen" },
|
||||
{ name: "Über uns", id: "/uber-uns" },
|
||||
{ name: "FAQ", id: "/faq" },
|
||||
{ name: "Kontakt", id: "/kontakt" },
|
||||
];
|
||||
|
||||
const footerColumns = [
|
||||
{
|
||||
title: "Dienstleistungen",
|
||||
items: [
|
||||
{ label: "Unfallgutachten", href: "/dienstleistungen" },
|
||||
{ label: "Wertermittlung", href: "/dienstleistungen" },
|
||||
{ label: "Oldtimer-Gutachten", href: "/dienstleistungen" },
|
||||
{ label: "Flotten-Gutachten", href: "/dienstleistungen" },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Unternehmen",
|
||||
items: [
|
||||
{ label: "Über uns", href: "/uber-uns" },
|
||||
{ label: "Unser Team", href: "/uber-uns" },
|
||||
{ label: "Blog", href: "#" },
|
||||
{ label: "Karriere", href: "#" },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Kontakt",
|
||||
items: [
|
||||
{ label: "Kontaktformular", href: "/kontakt" },
|
||||
{ label: "Tel: 030 - 123 456 789", href: "tel:+493012345789" },
|
||||
{ label: "Email: info@kfz-gutachter-berlin.de", href: "mailto:info@kfz-gutachter-berlin.de" },
|
||||
{ label: "Adresse", href: "#" },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Rechtliches",
|
||||
items: [
|
||||
{ label: "Impressum", href: "#" },
|
||||
{ label: "Datenschutz", href: "#" },
|
||||
{ label: "AGB", href: "#" },
|
||||
{ label: "Disclaimer", href: "#" },
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
const CustomNavbarWrapper = () => (
|
||||
<div id="nav" data-section="nav">
|
||||
<NavbarStyleCentered
|
||||
navItems={navItems.map((item) => ({
|
||||
name: item.name,
|
||||
id: item.id,
|
||||
}))}
|
||||
button={{
|
||||
text: "Jetzt anfragen",
|
||||
href: "/kontakt",
|
||||
}}
|
||||
brandName="KFZ Gutachter Berlin"
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
|
||||
return (
|
||||
<ThemeProvider
|
||||
defaultButtonVariant="expand-hover"
|
||||
defaultTextAnimation="reveal-blur"
|
||||
borderRadius="rounded"
|
||||
contentWidth="medium"
|
||||
sizing="mediumLargeSizeLargeTitles"
|
||||
background="circleGradient"
|
||||
cardStyle="outline"
|
||||
primaryButtonStyle="flat"
|
||||
secondaryButtonStyle="solid"
|
||||
headingFontWeight="normal"
|
||||
>
|
||||
<CustomNavbarWrapper />
|
||||
|
||||
<div id="about-intro" data-section="about-intro">
|
||||
<SplitAbout
|
||||
title="Über KFZ Gutachter Berlin"
|
||||
description="Mit über 15 Jahren Erfahrung in der Fahrzeugbegutachtung haben wir uns als vertrauenswürdiger Partner für Versicherungen, Privatpersonen und Rechtsanwälte etabliert."
|
||||
tag="Unser Profil"
|
||||
tagAnimation="slide-up"
|
||||
bulletPoints={[
|
||||
{
|
||||
icon: Briefcase,
|
||||
title: "Umfassende Expertise",
|
||||
description: "Spezialisiert auf Unfallgutachten, Wertermittlungen, Oldtimer und Klassiker sowie Gewerbliche Flotten.",
|
||||
},
|
||||
{
|
||||
icon: Award,
|
||||
title: "Zertifizierungen",
|
||||
description: "TÜV-zertifiziert, VDSI-anerkannt und regelmäßig fortgebildet nach den neuesten Standards.",
|
||||
},
|
||||
{
|
||||
icon: Users,
|
||||
title: "Vertrauensvolle Zusammenarbeit",
|
||||
description: "Langfristige Partnerschaften mit Versicherungsgesellschaften, Anwaltskanzleien und privaten Kunden.",
|
||||
},
|
||||
{
|
||||
icon: TrendingUp,
|
||||
title: "Digitale Effizienz",
|
||||
description: "Moderne Dokumentation und schnelle Berichterstellung durch aktuelle Technologie.",
|
||||
},
|
||||
]}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/confident-smiling-businesspeople-sitting-together-business-meeting_23-2147923338.jpg"
|
||||
imageAlt="Unser Team von erfahrenen Sachverständigen"
|
||||
imagePosition="right"
|
||||
textboxLayout="default"
|
||||
mediaAnimation="slide-up"
|
||||
useInvertedBackground={false}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="about-stats" data-section="about-stats">
|
||||
<MetricCardTwo
|
||||
title="Unsere Erfolgsstatistik"
|
||||
description="Zahlen, die für unseren Erfolg und die Zufriedenheit unserer Kunden sprechen."
|
||||
metrics={[
|
||||
{ id: "1", value: "15+", description: "Jahre Erfahrung" },
|
||||
{ id: "2", value: "2.500+", description: "Gutachten pro Jahr" },
|
||||
{ id: "3", value: "98%", description: "Kundenzufriedenheit" },
|
||||
{ id: "4", value: "100%", description: "Gerichtsfeste Gutachten" },
|
||||
]}
|
||||
gridVariant="uniform-all-items-equal"
|
||||
animationType="slide-up"
|
||||
textboxLayout="default"
|
||||
useInvertedBackground={false}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="contact-cta" data-section="contact-cta">
|
||||
<ContactCTA
|
||||
tag="Kontakt"
|
||||
tagIcon={MessageCircle}
|
||||
tagAnimation="slide-up"
|
||||
title="Lernen Sie uns kennen"
|
||||
description="Haben Sie Fragen zu unserer Arbeit oder möchten Sie mehr über unser Team erfahren? Kontaktieren Sie uns gerne – wir freuen uns auf ein Gespräch mit Ihnen."
|
||||
buttons={[
|
||||
{ text: "Zum Kontaktformular", href: "/kontakt" },
|
||||
{ text: "Tel: 030 - 123 456 789", href: "tel:+493012345789" },
|
||||
]}
|
||||
buttonAnimation="slide-up"
|
||||
background={{ variant: "plain" }}
|
||||
useInvertedBackground={false}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="footer" data-section="footer">
|
||||
<FooterBaseCard
|
||||
logoText="KFZ Gutachter Berlin"
|
||||
columns={footerColumns}
|
||||
copyrightText="© 2025 KFZ Gutachter Berlin. Alle Rechte vorbehalten."
|
||||
/>
|
||||
</div>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user