Merge version_2_1781435861825 into main #1
@@ -1,195 +1,35 @@
|
||||
import AboutText from '@/components/sections/about/AboutText';
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import FaqSimple from '@/components/sections/faq/FaqSimple';
|
||||
import FeaturesComparison from '@/components/sections/features/FeaturesComparison';
|
||||
import HeroSplitVerticalMarquee from '@/components/sections/hero/HeroSplitVerticalMarquee';
|
||||
import MetricsMediaCards from '@/components/sections/metrics/MetricsMediaCards';
|
||||
import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
// AUTO-GENERATED shell by per-section-migrate.
|
||||
// Section bodies live in ./<PageBase>/sections/<X>.tsx. Edit the section
|
||||
// files directly. Non-block content (wrappers, non-inlinable sections) is
|
||||
// preserved inline; extracted section blocks become <XSection/> refs.
|
||||
|
||||
export default function HomePage() {
|
||||
import React from 'react';
|
||||
import HeroSection from './HomePage/sections/Hero';
|
||||
import AboutSection from './HomePage/sections/About';
|
||||
import FeaturesSection from './HomePage/sections/Features';
|
||||
import MetricsSection from './HomePage/sections/Metrics';
|
||||
import SocialSection from './HomePage/sections/Social';
|
||||
import FaqSection from './HomePage/sections/Faq';
|
||||
import ContactSection from './HomePage/sections/Contact';
|
||||
|
||||
|
||||
import TestimonialSection from './HomePage/sections/Testimonial';export default function HomePage(): React.JSX.Element {
|
||||
return (
|
||||
<>
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroSplitVerticalMarquee
|
||||
tag="Soluzioni Professionali"
|
||||
title="Recupero Crediti su Misura per la tua Azienda"
|
||||
description="Service Lines S.R.L. offre assistenza esperta nel recupero crediti di modesta entità a Bergamo e provincia. Efficacia, serietà e risultati garantiti."
|
||||
primaryButton={{
|
||||
text: "Contattaci ora",
|
||||
href: "#contact",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Chiama: 035 226070",
|
||||
href: "tel:035226070",
|
||||
}}
|
||||
leftItems={[
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/group-businesspeople-working-together-office_23-2147923325.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/smiling-financial-advisor-establishing-emergency-fund-clients-using-laptop_482257-115629.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/business-leader-professional-office-strategizing-development-success_482257-124038.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/mid-adult-businessman-going-through-paperwork-reading-project-statistics-while-working-office_637285-275.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/diverse-advisory-board-meeting-boardroom-review-financial-projections_482257-106764.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/desktop-pc-monitor-office-with-trading-indexes-showing-latest-prices_482257-83060.jpg",
|
||||
},
|
||||
]}
|
||||
rightItems={[
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/happy-african-american-businesswoman-talking-female-colleagues-while-working-office_637285-9843.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/executive-joking-meeting_1098-1814.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-managers-discussing-business-affairs-two-confident-men-woman-workflow-looking-computer-with-financial-data-analyzing-profit-growth-business-growth-financial-analytics-concept_74855-24606.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-businessmen-shaking-hands_23-2148308618.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-young-colleagues-having-meeting_23-2149060245.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/businessmen-shaking-hands-close-up_23-2148308619.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<>
|
||||
<HeroSection />
|
||||
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<AboutText
|
||||
title="Chi siamo: Serietà e Risultati a Bergamo"
|
||||
primaryButton={{
|
||||
text: "Scopri i nostri servizi",
|
||||
href: "#features",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<AboutSection />
|
||||
|
||||
<div id="features" data-section="features">
|
||||
<SectionErrorBoundary name="features">
|
||||
<FeaturesComparison
|
||||
tag="Il Nostro Metodo"
|
||||
title="Perché scegliere Service Lines S.R.L."
|
||||
description="Ottimizziamo il recupero dei tuoi crediti con un approccio mirato e professionale."
|
||||
negativeItems={[
|
||||
"Procedimenti legali lunghi e costosi",
|
||||
"Mancanza di comunicazione col debitore",
|
||||
"Attese indefinite per il recupero",
|
||||
]}
|
||||
positiveItems={[
|
||||
"Soluzioni stragiudiziali rapide",
|
||||
"Gestione dedicata del rapporto",
|
||||
"Trasparenza totale sui risultati",
|
||||
"Esperti in crediti di modesta entità",
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<FeaturesSection />
|
||||
|
||||
<div id="metrics" data-section="metrics">
|
||||
<SectionErrorBoundary name="metrics">
|
||||
<MetricsMediaCards
|
||||
tag="Risultati Certi"
|
||||
title="I nostri numeri al tuo servizio"
|
||||
description="La nostra esperienza ci permette di massimizzare il recupero del tuo capitale."
|
||||
metrics={[
|
||||
{
|
||||
value: "95%",
|
||||
title: "Tasso di Successo",
|
||||
description: "Precisione nel recupero di crediti commerciali.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/dynamic-data-visualization-3d_23-2151904311.jpg",
|
||||
},
|
||||
{
|
||||
value: "24h",
|
||||
title: "Risposta Rapida",
|
||||
description: "Presa in carico immediata della tua pratica.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/executive-holding-digital-tablet-with-diagrams_1098-488.jpg",
|
||||
},
|
||||
{
|
||||
value: "1500+",
|
||||
title: "Pratiche gestite",
|
||||
description: "Esperienza consolidata nel settore locale.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/detailed-analysis-very-important-document_329181-15310.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<MetricsSection />
|
||||
|
||||
<div id="social" data-section="social">
|
||||
<SectionErrorBoundary name="social">
|
||||
<SocialProofMarquee
|
||||
tag="Partner e Clienti"
|
||||
title="Affidabilità confermata dal mercato"
|
||||
description="Lavoriamo con aziende del territorio bergamasco da oltre un decennio."
|
||||
names={[
|
||||
"Bergamo Business",
|
||||
"Confesercenti",
|
||||
"Lombardia Imprese",
|
||||
"Artigianato BG",
|
||||
"Logistica Nord",
|
||||
"Commercio Locale",
|
||||
"Servizi Finanziari BG",
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<SocialSection />
|
||||
<TestimonialSection />
|
||||
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqSimple
|
||||
tag="Domande Frequenti"
|
||||
title="Hai dubbi sulle nostre procedure?"
|
||||
description="Trova risposte rapide alle domande più comuni sul recupero crediti."
|
||||
items={[
|
||||
{
|
||||
question: "Cosa si intende per credito di modesta entità?",
|
||||
answer: "Si tratta di piccoli crediti derivanti da forniture o prestazioni professionali, spesso sottovalutati ma cruciali per il flusso di cassa.",
|
||||
},
|
||||
{
|
||||
question: "Come avviene il primo contatto?",
|
||||
answer: "Puoi chiamarci o scriverci per una valutazione preliminare gratuita del tuo caso.",
|
||||
},
|
||||
{
|
||||
question: "Quali sono i vostri tempi?",
|
||||
answer: "Ci impegniamo a prendere in carico la pratica entro 24 ore dal conferimento del mandato.",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<FaqSection />
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<SectionErrorBoundary name="contact">
|
||||
<ContactCta
|
||||
tag="Contattaci"
|
||||
text="Pronto a recuperare i tuoi crediti in modo rapido e professionale? Siamo a Bergamo in Via Vittore Ghislandi, 24."
|
||||
primaryButton={{
|
||||
text: "Chiama: 035 226070",
|
||||
href: "tel:035226070",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Email: info@servicelines.it",
|
||||
href: "mailto:info@servicelines.it",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ContactSection />
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
22
src/pages/HomePage/sections/About.tsx
Normal file
22
src/pages/HomePage/sections/About.tsx
Normal file
@@ -0,0 +1,22 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "about" section.
|
||||
|
||||
import React from 'react';
|
||||
import AboutText from '@/components/sections/about/AboutText';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function AboutSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<AboutText
|
||||
title="Chi siamo: Serietà e Risultati a Bergamo"
|
||||
primaryButton={{
|
||||
text: "Scopri i nostri servizi",
|
||||
href: "#features",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
27
src/pages/HomePage/sections/Contact.tsx
Normal file
27
src/pages/HomePage/sections/Contact.tsx
Normal file
@@ -0,0 +1,27 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "contact" section.
|
||||
|
||||
import React from 'react';
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function ContactSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="contact" data-section="contact">
|
||||
<SectionErrorBoundary name="contact">
|
||||
<ContactCta
|
||||
tag="Contattaci"
|
||||
text="Pronto a recuperare i tuoi crediti in modo rapido e professionale? Siamo a Bergamo in Via Vittore Ghislandi, 24."
|
||||
primaryButton={{
|
||||
text: "Chiama: 035 226070",
|
||||
href: "tel:035226070",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Email: info@servicelines.it",
|
||||
href: "mailto:info@servicelines.it",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
34
src/pages/HomePage/sections/Faq.tsx
Normal file
34
src/pages/HomePage/sections/Faq.tsx
Normal file
@@ -0,0 +1,34 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "faq" section.
|
||||
|
||||
import React from 'react';
|
||||
import FaqSimple from '@/components/sections/faq/FaqSimple';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function FaqSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqSimple
|
||||
tag="Domande Frequenti"
|
||||
title="Hai dubbi sulle nostre procedure?"
|
||||
description="Trova risposte rapide alle domande più comuni sul recupero crediti."
|
||||
items={[
|
||||
{
|
||||
question: "Cosa si intende per credito di modesta entità?",
|
||||
answer: "Si tratta di piccoli crediti derivanti da forniture o prestazioni professionali, spesso sottovalutati ma cruciali per il flusso di cassa.",
|
||||
},
|
||||
{
|
||||
question: "Come avviene il primo contatto?",
|
||||
answer: "Puoi chiamarci o scriverci per una valutazione preliminare gratuita del tuo caso.",
|
||||
},
|
||||
{
|
||||
question: "Quali sono i vostri tempi?",
|
||||
answer: "Ci impegniamo a prendere in carico la pratica entro 24 ore dal conferimento del mandato.",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
31
src/pages/HomePage/sections/Features.tsx
Normal file
31
src/pages/HomePage/sections/Features.tsx
Normal file
@@ -0,0 +1,31 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "features" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesComparison from '@/components/sections/features/FeaturesComparison';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function FeaturesSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="features" data-section="features">
|
||||
<SectionErrorBoundary name="features">
|
||||
<FeaturesComparison
|
||||
tag="Il Nostro Metodo"
|
||||
title="Perché scegliere Service Lines S.R.L."
|
||||
description="Ottimizziamo il recupero dei tuoi crediti con un approccio mirato e professionale."
|
||||
negativeItems={[
|
||||
"Procedimenti legali lunghi e costosi",
|
||||
"Mancanza di comunicazione col debitore",
|
||||
"Attese indefinite per il recupero",
|
||||
]}
|
||||
positiveItems={[
|
||||
"Soluzioni stragiudiziali rapide",
|
||||
"Gestione dedicata del rapporto",
|
||||
"Trasparenza totale sui risultati",
|
||||
"Esperti in crediti di modesta entità",
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
68
src/pages/HomePage/sections/Hero.tsx
Normal file
68
src/pages/HomePage/sections/Hero.tsx
Normal file
@@ -0,0 +1,68 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "hero" section.
|
||||
|
||||
import React from 'react';
|
||||
import HeroSplitVerticalMarquee from '@/components/sections/hero/HeroSplitVerticalMarquee';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function HeroSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroSplitVerticalMarquee
|
||||
tag="Soluzioni Professionali"
|
||||
title="Recupero Crediti su Misura per la tua Azienda"
|
||||
description="Service Lines S.R.L. offre assistenza esperta nel recupero crediti di modesta entità a Bergamo e provincia. Efficacia, serietà e risultati garantiti."
|
||||
primaryButton={{
|
||||
text: "Contattaci ora",
|
||||
href: "#contact",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Chiama: 035 226070",
|
||||
href: "tel:035226070",
|
||||
}}
|
||||
leftItems={[
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/group-businesspeople-working-together-office_23-2147923325.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/smiling-financial-advisor-establishing-emergency-fund-clients-using-laptop_482257-115629.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/business-leader-professional-office-strategizing-development-success_482257-124038.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/mid-adult-businessman-going-through-paperwork-reading-project-statistics-while-working-office_637285-275.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/diverse-advisory-board-meeting-boardroom-review-financial-projections_482257-106764.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/desktop-pc-monitor-office-with-trading-indexes-showing-latest-prices_482257-83060.jpg",
|
||||
},
|
||||
]}
|
||||
rightItems={[
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/happy-african-american-businesswoman-talking-female-colleagues-while-working-office_637285-9843.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/executive-joking-meeting_1098-1814.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-managers-discussing-business-affairs-two-confident-men-woman-workflow-looking-computer-with-financial-data-analyzing-profit-growth-business-growth-financial-analytics-concept_74855-24606.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-businessmen-shaking-hands_23-2148308618.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-young-colleagues-having-meeting_23-2149060245.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/businessmen-shaking-hands-close-up_23-2148308619.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
40
src/pages/HomePage/sections/Metrics.tsx
Normal file
40
src/pages/HomePage/sections/Metrics.tsx
Normal file
@@ -0,0 +1,40 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "metrics" section.
|
||||
|
||||
import React from 'react';
|
||||
import MetricsMediaCards from '@/components/sections/metrics/MetricsMediaCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function MetricsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="metrics" data-section="metrics">
|
||||
<SectionErrorBoundary name="metrics">
|
||||
<MetricsMediaCards
|
||||
tag="Risultati Certi"
|
||||
title="I nostri numeri al tuo servizio"
|
||||
description="La nostra esperienza ci permette di massimizzare il recupero del tuo capitale."
|
||||
metrics={[
|
||||
{
|
||||
value: "95%",
|
||||
title: "Tasso di Successo",
|
||||
description: "Precisione nel recupero di crediti commerciali.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/dynamic-data-visualization-3d_23-2151904311.jpg",
|
||||
},
|
||||
{
|
||||
value: "24h",
|
||||
title: "Risposta Rapida",
|
||||
description: "Presa in carico immediata della tua pratica.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/executive-holding-digital-tablet-with-diagrams_1098-488.jpg",
|
||||
},
|
||||
{
|
||||
value: "1500+",
|
||||
title: "Pratiche gestite",
|
||||
description: "Esperienza consolidata nel settore locale.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/detailed-analysis-very-important-document_329181-15310.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
29
src/pages/HomePage/sections/Social.tsx
Normal file
29
src/pages/HomePage/sections/Social.tsx
Normal file
@@ -0,0 +1,29 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "social" section.
|
||||
|
||||
import React from 'react';
|
||||
import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function SocialSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="social" data-section="social">
|
||||
<SectionErrorBoundary name="social">
|
||||
<SocialProofMarquee
|
||||
tag="Partner e Clienti"
|
||||
title="Affidabilità confermata dal mercato"
|
||||
description="Lavoriamo con aziende del territorio bergamasco da oltre un decennio."
|
||||
names={[
|
||||
"Bergamo Business",
|
||||
"Confesercenti",
|
||||
"Lombardia Imprese",
|
||||
"Artigianato BG",
|
||||
"Logistica Nord",
|
||||
"Commercio Locale",
|
||||
"Servizi Finanziari BG",
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
75
src/pages/HomePage/sections/Testimonial.tsx
Normal file
75
src/pages/HomePage/sections/Testimonial.tsx
Normal file
@@ -0,0 +1,75 @@
|
||||
import ScrollReveal from "@/components/ui/ScrollReveal";
|
||||
import TextAnimation from "@/components/ui/TextAnimation";
|
||||
import Card from "@/components/ui/Card";
|
||||
import RatingStars from "@/components/ui/RatingStars";
|
||||
import AvatarAuthor from "@/components/ui/AvatarAuthor";
|
||||
|
||||
export default function TestimonialSection() {
|
||||
const testimonials = [
|
||||
{
|
||||
name: "Marco R.",
|
||||
role: "Imprenditore Edile",
|
||||
quote: "Service Lines ci ha aiutato a recuperare crediti che consideravamo ormai persi. Professionali, veloci e sempre disponibili a chiarire ogni dubbio.",
|
||||
rating: 5,
|
||||
imageSrc: "https://images.unsplash.com/photo-1560250097-0b93528c311a?auto=format&fit=crop&w=800&q=80"
|
||||
},
|
||||
{
|
||||
name: "Laura B.",
|
||||
role: "Titolare Agenzia di Servizi",
|
||||
quote: "Un partner affidabile per la gestione degli insoluti. Hanno gestito le pratiche con grande delicatezza ma con estrema efficacia.",
|
||||
rating: 5,
|
||||
imageSrc: "https://images.unsplash.com/photo-1573496359142-b8d87734a5a2?auto=format&fit=crop&w=800&q=80"
|
||||
},
|
||||
{
|
||||
name: "Giovanni T.",
|
||||
role: "Amministratore di Condominio",
|
||||
quote: "Ottimo servizio per il recupero delle quote condominiali non pagate. Risultati concreti in tempi molto più brevi rispetto alle vie legali tradizionali.",
|
||||
rating: 4,
|
||||
imageSrc: "https://images.unsplash.com/photo-1519085360753-af0119f7cbe7?auto=format&fit=crop&w=800&q=80"
|
||||
}
|
||||
];
|
||||
|
||||
return (
|
||||
<div data-webild-section="testimonial" className="relative w-full py-24 bg-background">
|
||||
<div className="w-content-width mx-auto px-6">
|
||||
<div className="text-center mb-16 max-w-3xl mx-auto">
|
||||
<ScrollReveal variant="fade">
|
||||
<span className="inline-block py-1 px-3 rounded-full bg-accent/20 text-primary-cta text-sm font-medium mb-4">
|
||||
Testimonianze
|
||||
</span>
|
||||
</ScrollReveal>
|
||||
<TextAnimation
|
||||
text="Cosa dicono le aziende di Bergamo"
|
||||
variant="fade-blur"
|
||||
tag="h2"
|
||||
gradientText={false}
|
||||
className="text-4xl md:text-5xl font-bold text-foreground mb-6"
|
||||
/>
|
||||
<ScrollReveal variant="fade" delay={0.1}>
|
||||
<p className="text-lg text-muted-foreground">
|
||||
La nostra esperienza sul territorio ci ha permesso di aiutare numerose realtà locali a recuperare i propri crediti con successo e professionalità.
|
||||
</p>
|
||||
</ScrollReveal>
|
||||
</div>
|
||||
|
||||
<div className="grid grid-cols-1 md:grid-cols-3 gap-8">
|
||||
{testimonials.map((testimonial, index) => (
|
||||
<ScrollReveal variant="fade" key={index} delay={0.2 + index * 0.1}>
|
||||
<Card className="h-full p-8 flex flex-col">
|
||||
<RatingStars rating={testimonial.rating} className="mb-6" />
|
||||
<p className="text-foreground text-lg mb-8 flex-grow italic">
|
||||
"{testimonial.quote}"
|
||||
</p>
|
||||
<AvatarAuthor
|
||||
name={testimonial.name}
|
||||
role={testimonial.role}
|
||||
imageSrc={testimonial.imageSrc}
|
||||
/>
|
||||
</Card>
|
||||
</ScrollReveal>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user