diff --git a/src/app/apartments/page.tsx b/src/app/apartments/page.tsx index f0ed111..ebddf9e 100644 --- a/src/app/apartments/page.tsx +++ b/src/app/apartments/page.tsx @@ -82,7 +82,7 @@ export default function ApartmentsPage() { description="Una selezione curata di eleganti appartamenti nei quartieri più autentici di Milano. Ogni spazio è stato scelto per offrire comfort, stile e un'esperienza autentica della vita milanese." tag="Alloggi di Lusso" useInvertedBackground={false} - imageSrc="http://img.b2bpic.net/free-photo/beautiful-composition-flowers-interior-room_169016-5468.jpg" + imageSrc="http://img.b2bpic.net/free-photo/beautiful-composition-flowers-interior-room_169016-5468.jpg?_wi=2" imageAlt="modern apartment interior minimalist design" buttons={[ { @@ -104,7 +104,7 @@ export default function ApartmentsPage() { name: "Loft Porta Romana", price: "€120/notte", variant: "2 ospiti • Moderno • Balcone", - imageSrc: "http://img.b2bpic.net/free-photo/serious-male-boss-instructing-female-assistant_1262-20385.jpg", + imageSrc: "http://img.b2bpic.net/free-photo/serious-male-boss-instructing-female-assistant_1262-20385.jpg?_wi=2", imageAlt: "loft apartment balcony modern design city view", isFavorited: false, }, @@ -113,7 +113,7 @@ export default function ApartmentsPage() { name: "Suite Brera Design", price: "€180/notte", variant: "4 ospiti • Elegante • Centro Storico", - imageSrc: "http://img.b2bpic.net/free-photo/sitting-room-with-old-furniture_116348-77.jpg", + imageSrc: "http://img.b2bpic.net/free-photo/sitting-room-with-old-furniture_116348-77.jpg?_wi=2", imageAlt: "elegant suite bedroom luxury design romantic", isFavorited: false, }, @@ -122,7 +122,7 @@ export default function ApartmentsPage() { name: "Navigli Canal Apartment", price: "€150/notte", variant: "3 ospiti • Vista Canale • Luminoso", - imageSrc: "http://img.b2bpic.net/free-photo/portrait-fashionable-well-dressed-man-with-beard-posing-outdoors_1328-3277.jpg", + imageSrc: "http://img.b2bpic.net/free-photo/portrait-fashionable-well-dressed-man-with-beard-posing-outdoors_1328-3277.jpg?_wi=2", imageAlt: "apartment canal view Venice Milan water", isFavorited: false, }, @@ -131,7 +131,7 @@ export default function ApartmentsPage() { name: "Isola Urban Flat", price: "€110/notte", variant: "2 ospiti • Moderno • Vicino Metro", - imageSrc: "http://img.b2bpic.net/free-photo/modern-tokyo-street-background_23-2149394880.jpg", + imageSrc: "http://img.b2bpic.net/free-photo/modern-tokyo-street-background_23-2149394880.jpg?_wi=2", imageAlt: "modern urban apartment skyline view metro", isFavorited: false, }, diff --git a/src/app/contact/page.tsx b/src/app/contact/page.tsx index b5299ed..bc242aa 100644 --- a/src/app/contact/page.tsx +++ b/src/app/contact/page.tsx @@ -81,7 +81,7 @@ export default function ContactPage() { description="Hai domande sui nostri appartamenti o desideri ricevere informazioni su disponibilità e prezzi? Il nostro team è sempre a tua disposizione per assisterti." tag="Supporto Disponibile" useInvertedBackground={false} - imageSrc="http://img.b2bpic.net/free-photo/beautiful-composition-flowers-interior-room_169016-5468.jpg" + imageSrc="http://img.b2bpic.net/free-photo/beautiful-composition-flowers-interior-room_169016-5468.jpg?_wi=3" imageAlt="modern apartment interior minimalist design" buttons={[ { @@ -99,7 +99,7 @@ export default function ContactPage() { description="Iscriviti alla nostra newsletter per ricevere offerte esclusive, consigli di viaggio a Milano e le ultime novità su Vivimilano BnB." background={{ variant: "sparkles-gradient" }} useInvertedBackground={false} - imageSrc="http://img.b2bpic.net/free-vector/flat-app-flyer-template_23-2148058342.jpg" + imageSrc="http://img.b2bpic.net/free-vector/flat-app-flyer-template_23-2148058342.jpg?_wi=2" imageAlt="modern newsletter signup form digital design" mediaAnimation="slide-up" mediaPosition="right" diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 32671a1..8bd5b12 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -1,24 +1,61 @@ import type { Metadata } from "next"; import { Halant } from "next/font/google"; import { Inter } from "next/font/google"; +import { Open_Sans } from "next/font/google"; import "./globals.css"; import { ServiceWrapper } from "@/components/ServiceWrapper"; import Tag from "@/tag/Tag"; import { getVisualEditScript } from "@/utils/visual-edit-script"; -import { Open_Sans } from "next/font/google"; +const halant = Halant({ + variable: "--font-halant", + subsets: ["latin"], + weight: ["300", "400", "500", "600", "700"], +}); - -export const metadata: Metadata = { - title: "Webild components 2", - description: "Generated by create next app", -}; +const inter = Inter({ + variable: "--font-inter", + subsets: ["latin"], +}); const openSans = Open_Sans({ variable: "--font-open-sans", subsets: ["latin"], }); +export const metadata: Metadata = { + title: "Vivimilano BnB - Appartamenti Eleganti a Milano", + description: "Scopri eleganti appartamenti nei quartieri più autentici di Milano. Vivimilano BnB offre alloggi premium con self check-in, assistenza 24/7 e WiFi veloce.", + keywords: "affitti brevi Milano, appartamenti Milano, Vivimilano BnB, alloggi turistici Milano, quartieri Milano", + metadataBase: new URL("https://www.vivimilano.com"), + alternates: { + canonical: "https://www.vivimilano.com", + }, + openGraph: { + title: "Vivimilano BnB - Appartamenti Eleganti a Milano", + description: "Vivi Milano come un vero milanese. Appartamenti eleganti nei quartieri più autentici di Milano con servizi premium.", + url: "https://www.vivimilano.com", + siteName: "Vivimilano BnB", + type: "website", + images: [ + { + url: "http://img.b2bpic.net/free-photo/bottom-arch-gothic-quarter-barcelona-bishops-bridge_1217-1736.jpg", + alt: "Vivimilano BnB Milan Duomo", + }, + ], + }, + twitter: { + card: "summary_large_image", + title: "Vivimilano BnB - Appartamenti Milano", + description: "Eleganti appartamenti nei quartieri più autentici di Milano", + images: ["http://img.b2bpic.net/free-photo/bottom-arch-gothic-quarter-barcelona-bishops-bridge_1217-1736.jpg"], + }, + robots: { + index: true, + follow: true, + }, +}; + export default function RootLayout({ children, }: Readonly<{ @@ -27,7 +64,9 @@ export default function RootLayout({ return ( - + {children}