Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 83fb4b8c1e |
@@ -22,19 +22,19 @@ export default function Footer() {
|
|||||||
{/* Main footer */}
|
{/* Main footer */}
|
||||||
<div className="container py-16">
|
<div className="container py-16">
|
||||||
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-10">
|
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-10">
|
||||||
{/* Brand */}
|
{/* Brand
|
||||||
<div className="lg:col-span-1">
|
<div className="lg:col-span-1">
|
||||||
<div className="mb-4">
|
<div className="mb-4">
|
||||||
<div
|
<div
|
||||||
className="font-bold text-white leading-tight"
|
className="font-bold text-white leading-tight"
|
||||||
style={{ fontFamily: "'Cormorant Garamond', serif", fontSize: "1rem" }}
|
style={{ fontFamily: "'Cormorant Garamond', serif", fontSize: "1rem" }}
|
||||||
>
|
>
|
||||||
Clinica Veterinaria
|
Clinica Veterinaria
|
||||||
</div>
|
</div>
|
||||||
<div className="text-[#4ECDC4] text-xs font-semibold tracking-widest uppercase">
|
<div className="text-[#4ECDC4] text-xs font-semibold tracking-widest uppercase">
|
||||||
Formiginese
|
Formiginese
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<p className="text-white/60 text-sm leading-relaxed mb-4">
|
<p className="text-white/60 text-sm leading-relaxed mb-4">
|
||||||
Cura specialistica per cani e gatti a Formigine.
|
Cura specialistica per cani e gatti a Formigine.
|
||||||
Un team di professionisti al servizio della salute dei tuoi animali.
|
Un team di professionisti al servizio della salute dei tuoi animali.
|
||||||
@@ -48,7 +48,7 @@ export default function Footer() {
|
|||||||
<Facebook size={16} />
|
<Facebook size={16} />
|
||||||
Seguici su Facebook
|
Seguici su Facebook
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>*/}
|
||||||
|
|
||||||
{/* Link rapidi */}
|
{/* Link rapidi */}
|
||||||
<div>
|
<div>
|
||||||
@@ -120,9 +120,11 @@ export default function Footer() {
|
|||||||
</h4>
|
</h4>
|
||||||
<div className="space-y-2">
|
<div className="space-y-2">
|
||||||
{[
|
{[
|
||||||
{ days: "Lunedì — Venerdì", hours: "09:00 — 12:30\n14:30 — 19:00" },
|
{ days: "Visite: Lunedì — Venerdì", hours: "09:00 — 19:30" },
|
||||||
{ days: "Sabato", hours: "09:00 — 12:30" },
|
{ days: "Visite: Sabato", hours: "09:00 — 17:00" },
|
||||||
{ days: "Domenica", hours: "Solo urgenze" },
|
{ days: "Urgenze: Lunedì — Venerdì", hours: "08:00 — 22:30" },
|
||||||
|
{ days: "Urgenze: Sabato e Festivi", hours: "09:00 — 20:00" },
|
||||||
|
|
||||||
].map((slot) => (
|
].map((slot) => (
|
||||||
<div key={slot.days} className="flex items-start gap-2">
|
<div key={slot.days} className="flex items-start gap-2">
|
||||||
<Clock size={13} className="text-[#4ECDC4] flex-shrink-0 mt-0.5" />
|
<Clock size={13} className="text-[#4ECDC4] flex-shrink-0 mt-0.5" />
|
||||||
@@ -135,12 +137,7 @@ export default function Footer() {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Badge reperibilità */}
|
{/* Badge reperibilità */}
|
||||||
<div className="mt-4 bg-[#4ECDC4]/15 border border-[#4ECDC4]/30 rounded-lg p-3">
|
|
||||||
<p className="text-[#4ECDC4] text-xs font-semibold uppercase tracking-wide">
|
|
||||||
Reperibilità 24h
|
|
||||||
</p>
|
|
||||||
<p className="text-white/60 text-xs mt-0.5">7 giorni su 7</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
*/
|
*/
|
||||||
import { useState, useEffect } from "react";
|
import { useState, useEffect } from "react";
|
||||||
import { Button } from "@/components/ui/button";
|
import { Button } from "@/components/ui/button";
|
||||||
import { ChevronDown, Calendar, Phone } from "lucide-react";
|
import { ChevronDown, Calendar, Phone, Clock } from "lucide-react";
|
||||||
import { motion } from "framer-motion";
|
import { motion } from "framer-motion";
|
||||||
|
|
||||||
const heroImages = [
|
const heroImages = [
|
||||||
@@ -86,15 +86,7 @@ export default function HeroSection() {
|
|||||||
<div className="container">
|
<div className="container">
|
||||||
<div className="max-w-2xl">
|
<div className="max-w-2xl">
|
||||||
{/* Badge */}
|
{/* Badge */}
|
||||||
<motion.div
|
|
||||||
initial={{ opacity: 0, y: 20 }}
|
|
||||||
animate={{ opacity: 1, y: 0 }}
|
|
||||||
transition={{ duration: 0.6, delay: 0.2 }}
|
|
||||||
className="inline-flex items-center gap-2 bg-[#4ECDC4]/20 border border-[#4ECDC4]/40 text-[#4ECDC4] text-sm font-semibold px-4 py-1.5 rounded-full mb-6 backdrop-blur-sm"
|
|
||||||
>
|
|
||||||
<span className="w-2 h-2 rounded-full bg-[#4ECDC4] animate-pulse" />
|
|
||||||
Reperibilità 24h · 7 giorni su 7
|
|
||||||
</motion.div>
|
|
||||||
|
|
||||||
{/* Titolo principale */}
|
{/* Titolo principale */}
|
||||||
<motion.h1
|
<motion.h1
|
||||||
@@ -108,8 +100,8 @@ export default function HeroSection() {
|
|||||||
fontWeight: 600,
|
fontWeight: 600,
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
La salute del tuo animale,{" "}
|
CLINICA VETERINARIA FORMIGINESE{" "}
|
||||||
<span className="italic text-[#4ECDC4]">la nostra missione</span>
|
|
||||||
</motion.h1>
|
</motion.h1>
|
||||||
|
|
||||||
{/* Sottotitolo */}
|
{/* Sottotitolo */}
|
||||||
@@ -120,9 +112,43 @@ export default function HeroSection() {
|
|||||||
className="text-white/85 text-lg mb-8 leading-relaxed max-w-xl"
|
className="text-white/85 text-lg mb-8 leading-relaxed max-w-xl"
|
||||||
style={{ fontFamily: "'Nunito Sans', sans-serif" }}
|
style={{ fontFamily: "'Nunito Sans', sans-serif" }}
|
||||||
>
|
>
|
||||||
Clinica veterinaria specialistica a Formigine. Un team di 6 professionisti
|
|
||||||
dedicati alla cura di cani e gatti, con tecnologie diagnostiche avanzate.
|
|
||||||
</motion.p>
|
</motion.p>
|
||||||
|
<motion.div
|
||||||
|
initial={{ opacity: 0, y: 20 }}
|
||||||
|
animate={{ opacity: 1, y: 0 }}
|
||||||
|
transition={{ duration: 0.7, delay: 0.7 }}
|
||||||
|
className="flex flex-col sm:flex-row gap-4"
|
||||||
|
>
|
||||||
|
<div>
|
||||||
|
<h4
|
||||||
|
className="text-white font-semibold mb-4 text-sm uppercase tracking-widest"
|
||||||
|
style={{ fontFamily: "'Nunito Sans', sans-serif" }}
|
||||||
|
>
|
||||||
|
Orari
|
||||||
|
</h4>
|
||||||
|
<div className="space-y-2">
|
||||||
|
{[
|
||||||
|
{ days: "Visite: Lunedì — Venerdì", hours: "09:00 — 19:30" },
|
||||||
|
{ days: "Visite: Sabato", hours: "09:00 — 17:00" },
|
||||||
|
{ days: "Urgenze: Lunedì — Venerdì", hours: "08:00 — 22:30" },
|
||||||
|
{ days: "Urgenze: Sabato e Festivi", hours: "09:00 — 20:00" },
|
||||||
|
|
||||||
|
].map((slot) => (
|
||||||
|
<div key={slot.days} className="flex items-start gap-2">
|
||||||
|
<Clock size={13} className="text-[#4ECDC4] flex-shrink-0 mt-0.5" />
|
||||||
|
<div>
|
||||||
|
<p className="text-white/70 text-xs">{slot.days}</p>
|
||||||
|
<p className="text-white/50 text-xs whitespace-pre-line">{slot.hours}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Badge reperibilità */}
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</motion.div>
|
||||||
|
|
||||||
{/* CTA buttons */}
|
{/* CTA buttons */}
|
||||||
<motion.div
|
<motion.div
|
||||||
@@ -153,30 +179,8 @@ export default function HeroSection() {
|
|||||||
</motion.div>
|
</motion.div>
|
||||||
|
|
||||||
{/* Stats */}
|
{/* Stats */}
|
||||||
<motion.div
|
{/* Orari */}
|
||||||
initial={{ opacity: 0 }}
|
|
||||||
animate={{ opacity: 1 }}
|
|
||||||
transition={{ duration: 0.8, delay: 1.0 }}
|
|
||||||
className="flex gap-8 mt-12 pt-8 border-t border-white/20"
|
|
||||||
>
|
|
||||||
{[
|
|
||||||
{ value: "6", label: "Specialisti" },
|
|
||||||
{ value: "15+", label: "Anni di esperienza" },
|
|
||||||
{ value: "24h", label: "Reperibilità" },
|
|
||||||
].map((stat) => (
|
|
||||||
<div key={stat.label} className="text-center">
|
|
||||||
<div
|
|
||||||
className="text-[#4ECDC4] font-bold"
|
|
||||||
style={{ fontFamily: "'Cormorant Garamond', serif", fontSize: "2rem" }}
|
|
||||||
>
|
|
||||||
{stat.value}
|
|
||||||
</div>
|
|
||||||
<div className="text-white/70 text-xs uppercase tracking-widest mt-0.5">
|
|
||||||
{stat.label}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
))}
|
|
||||||
</motion.div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -83,9 +83,7 @@ export default function Navbar() {
|
|||||||
059 839.62.63 | 320 532.24.39 (urgenze 24h)
|
059 839.62.63 | 320 532.24.39 (urgenze 24h)
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<span className="text-[#4ECDC4] font-semibold tracking-wide text-xs uppercase">
|
|
||||||
Reperibilità 24h · 7 giorni su 7
|
|
||||||
</span>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -277,11 +277,10 @@ export default function ServicesSection() {
|
|||||||
className="mb-4 text-[#1B4F72]"
|
className="mb-4 text-[#1B4F72]"
|
||||||
style={{ fontFamily: "'Cormorant Garamond', serif", fontSize: "clamp(2rem, 4vw, 3rem)", fontWeight: 600 }}
|
style={{ fontFamily: "'Cormorant Garamond', serif", fontSize: "clamp(2rem, 4vw, 3rem)", fontWeight: 600 }}
|
||||||
>
|
>
|
||||||
Servizi Clinici
|
Servizi
|
||||||
</h2>
|
</h2>
|
||||||
<p className="max-w-xl text-base leading-relaxed text-gray-600">
|
<p className="max-w-xl text-base leading-relaxed text-gray-600">
|
||||||
Sei aree di eccellenza clinica per accompagnare prevenzione, diagnosi e trattamento
|
|
||||||
dei tuoi animali domestici, con tecnologie avanzate e professionisti esperti.
|
|
||||||
</p>
|
</p>
|
||||||
</motion.div>
|
</motion.div>
|
||||||
|
|
||||||
|
|||||||
@@ -150,7 +150,15 @@ function vitePluginManusDebugCollector(): Plugin {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
const plugins = [react(), tailwindcss(), jsxLocPlugin(), vitePluginManusRuntime(), vitePluginManusDebugCollector()];
|
const isProductionBuild = process.env.NODE_ENV === "production";
|
||||||
|
|
||||||
|
const plugins = [
|
||||||
|
react(),
|
||||||
|
tailwindcss(),
|
||||||
|
jsxLocPlugin(),
|
||||||
|
!isProductionBuild && vitePluginManusRuntime(),
|
||||||
|
!isProductionBuild && vitePluginManusDebugCollector(),
|
||||||
|
].filter(Boolean);
|
||||||
|
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
plugins,
|
plugins,
|
||||||
|
|||||||
Reference in New Issue
Block a user