Merge version_2_1781533380359 into main #2

Merged
bender merged 1 commits from version_2_1781533380359 into main 2026-06-15 14:24:38 +00:00
12 changed files with 473 additions and 316 deletions

View File

@@ -1,330 +1,44 @@
import AboutTestimonial from '@/components/sections/about/AboutTestimonial';
import ContactCta from '@/components/sections/contact/ContactCta';
import FaqTwoColumn from '@/components/sections/faq/FaqTwoColumn';
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
import FeaturesMediaCarousel from '@/components/sections/features/FeaturesMediaCarousel';
import HeroSplit from '@/components/sections/hero/HeroSplit';
import MetricsMediaCards from '@/components/sections/metrics/MetricsMediaCards';
import PricingSimpleCards from '@/components/sections/pricing/PricingSimpleCards';
import TestimonialColumnMarqueeCards from '@/components/sections/testimonial/TestimonialColumnMarqueeCards';
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 TrustSection from './HomePage/sections/Trust';
import AboutSection from './HomePage/sections/About';
import RoomsSection from './HomePage/sections/Rooms';
import WhySection from './HomePage/sections/Why';
import DestinationsSection from './HomePage/sections/Destinations';
import TestimonialsSection from './HomePage/sections/Testimonials';
import GallerySection from './HomePage/sections/Gallery';
import BookingSection from './HomePage/sections/Booking';
import ContactSection from './HomePage/sections/Contact';
import TrustBadgesSection from './HomePage/sections/TrustBadges';export default function HomePage(): React.JSX.Element {
return (
<>
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroSplit
tag="Welcome to Demnate"
title="Comfortable & Affordable Stay in the Heart of Demnate"
description="Experience clean rooms, welcoming hospitality, and excellent value while exploring the beauty of Demnate and the Atlas Mountains."
primaryButton={{
text: "Book Your Stay",
href: "#booking",
}}
secondaryButton={{
text: "Contact Us",
href: "#contact",
}}
imageSrc="http://img.b2bpic.net/free-photo/luxury-villa-with-infinity-pool-sunset-coastal-view_23-2151986080.jpg"
/>
</SectionErrorBoundary>
</div>
<>
<HeroSection />
<div id="trust" data-section="trust">
<SectionErrorBoundary name="trust">
<MetricsMediaCards
tag="Why Guests Choose Us"
title="Clean, Comfortable, Affordable"
description="A practical and comfortable choice for travelers, families, and visitors exploring Demnate."
metrics={[
{
value: "✓",
title: "Clean Rooms",
description: "Daily maintained for hygiene.",
imageSrc: "http://img.b2bpic.net/free-photo/pillow-bed_1203-3751.jpg",
},
{
value: "✓",
title: "Location",
description: "Central Demnate access.",
imageSrc: "http://img.b2bpic.net/free-photo/aerial-view-warrumbungle-national-park-mountains-blue-sky_1308-189549.jpg",
},
{
value: "✓",
title: "Service",
description: "Friendly hospitality.",
imageSrc: "http://img.b2bpic.net/free-photo/old-tourist-using-mobile-nfc-technology_482257-76765.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<TrustSection />
<TrustBadgesSection />
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutTestimonial
tag="Our Story"
quote="Located in the heart of Demnate, Hôtel Résidence Marrakech offers guests a comfortable, clean, and affordable place to stay."
author="Management Team"
role="Hôtel Résidence Marrakech"
imageSrc="http://img.b2bpic.net/free-photo/facade-old-architectural-building_169016-22403.jpg?_wi=1"
/>
</SectionErrorBoundary>
</div>
<AboutSection />
<div id="rooms" data-section="rooms">
<SectionErrorBoundary name="rooms">
<FeaturesMediaCarousel
tag="Our Accommodations"
title="Comfortable Rooms for Every Traveler"
description="A variety of room options tailored to your needs."
items={[
{
title: "Standard Room",
description: "Comfortable Bed, Private Bathroom, WiFi, Daily Cleaning",
buttonIcon: "Bed",
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-luxury-comfortable-white-pillow-blanket-decoration-interior-bedroom_74190-12647.jpg",
},
{
title: "Double Room",
description: "Double Bed, Private Bathroom, Spacious Layout, Natural Lighting",
buttonIcon: "Bed",
imageSrc: "http://img.b2bpic.net/free-photo/double-bed-with-four-pillows_1203-1107.jpg",
},
{
title: "Family Room",
description: "Larger Space, Family Friendly, Comfortable Bedding, Great Value",
buttonIcon: "Bed",
imageSrc: "http://img.b2bpic.net/free-photo/long-shot-family-looking-through-map-caravan_23-2148659492.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<RoomsSection />
<div id="why" data-section="why">
<SectionErrorBoundary name="why">
<PricingSimpleCards
tag="Why Choose Us"
title="Affordable Quality"
description="We believe in transparency and value."
plans={[
{
tag: "Value",
price: "Affordable",
description: "Rates for all budgets",
features: [
"Budget-friendly",
"Direct booking perks",
"No hidden fees",
],
},
{
tag: "Location",
price: "Convenient",
description: "Heart of Demnate",
features: [
"Central location",
"Near shops",
"Easy access",
],
},
{
tag: "Clean",
price: "Sanitary",
description: "Hygiene standards",
features: [
"Daily cleaning",
"Fresh linens",
"Safe common areas",
],
},
]}
/>
</SectionErrorBoundary>
</div>
<WhySection />
<div id="destinations" data-section="destinations">
<SectionErrorBoundary name="destinations">
<FeaturesImageBento
tag="Explore"
title="Discover the Beauty of Demnate"
description="Breathtaking landscapes and culture."
items={[
{
title: "Atlas Mountains",
description: "Stunning vistas",
imageSrc: "http://img.b2bpic.net/free-photo/ksar-ait-ben-haddou-surrounded-by-greenery-sunlight-blue-sky-morocco_181624-14248.jpg",
},
{
title: "Natural Bridge",
description: "Imi N'Ifri landmark",
imageSrc: "http://img.b2bpic.net/free-photo/bear-mountain-foliage_649448-4505.jpg",
},
{
title: "Culture",
description: "Traditional streets",
imageSrc: "http://img.b2bpic.net/free-photo/spices-market-morocco_23-2148129918.jpg",
},
{
title: "Exterior",
description: "Hotel views",
imageSrc: "http://img.b2bpic.net/free-photo/modern-building-with-windows-blue-sky-sunlight-evening_181624-14350.jpg",
},
{
title: "Reception",
description: "Warm welcome",
imageSrc: "http://img.b2bpic.net/free-photo/beauty-slim-african-american-model-wear-black-blouse-green-long-legs-pants-posed-chinese-cafe_627829-5911.jpg",
},
{
title: "Comfort",
description: "Clean space",
imageSrc: "http://img.b2bpic.net/free-photo/sofa-pillow_74190-1207.jpg",
},
{
title: "Amenities",
description: "Quality service",
imageSrc: "http://img.b2bpic.net/free-photo/hallway-building_23-2149397562.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<DestinationsSection />
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialColumnMarqueeCards
tag="Guest Voices"
title="What Guests Say"
description="We are proud of our hospitality."
testimonials={[
{
name: "Ahmed M.",
role: "Traveler",
quote: "Comfortable and safe stay. I really enjoyed my visit.",
imageSrc: "http://img.b2bpic.net/free-photo/white-towel-bed_74190-4536.jpg",
},
{
name: "Sarah L.",
role: "Guest",
quote: "Simple, clean, and good value for money.",
imageSrc: "http://img.b2bpic.net/free-photo/luxury-hotel-room-with-modern-design-elegance-generated-by-ai_188544-17094.jpg",
},
{
name: "David K.",
role: "Traveler",
quote: "Friendly atmosphere and convenient location.",
imageSrc: "http://img.b2bpic.net/free-photo/mother-daughter-using-digital-tablet-bedroom_1170-2786.jpg",
},
{
name: "Elena R.",
role: "Guest",
quote: "A practical choice for travelers on a budget.",
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-shot-yellow-trees-mountains-with-blue-sky_181624-4178.jpg",
},
{
name: "Youssef T.",
role: "Traveler",
quote: "Wonderful hospitality and clean amenities.",
imageSrc: "http://img.b2bpic.net/free-photo/bellboy-helping-woman-guest-carry-baggage-her-room-traveller-with-trolley-bags-waiting-lounge-area-professional-bellhop-provising-luxury-service-hotel-customers-handheld-shot_482257-65357.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<TestimonialsSection />
<div id="gallery" data-section="gallery">
<SectionErrorBoundary name="gallery">
<FeaturesImageBento
tag="Gallery"
title="Our Hotel"
description="Visual tour of your home away from home."
items={[
{
title: "Reception",
description: "Arrival area",
imageSrc: "http://img.b2bpic.net/free-photo/friendly-afro-man-traditional-yellow-clothes-restaurant_627829-1132.jpg",
},
{
title: "Exterior",
description: "Main View",
imageSrc: "http://img.b2bpic.net/free-photo/luxury-villa-with-outdoor-patio-ocean-view_23-2151986058.jpg",
},
{
title: "Standard Room",
description: "Comfort",
imageSrc: "http://img.b2bpic.net/free-photo/contemporary-house-interior-design_23-2151050935.jpg",
},
{
title: "Family Suite",
description: "Spacious",
imageSrc: "http://img.b2bpic.net/free-photo/smiling-young-couple-lying-bed-playing-with-their-baby_23-2147923029.jpg",
},
{
title: "Hallway",
description: "Entryway",
imageSrc: "http://img.b2bpic.net/free-photo/abstract-blur-defocused-hotel-lobby-lounge_74190-6102.jpg",
},
{
title: "Mountain View",
description: "Scenery",
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-shot-canyon-mountains-cloudy-sky_181624-7807.jpg",
},
{
title: "Natural Beauty",
description: "Local landscape",
imageSrc: "http://img.b2bpic.net/free-photo/wave-sandstone-rock-formations-arizona-united-states_181624-29498.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<GallerySection />
<div id="booking" data-section="booking">
<SectionErrorBoundary name="booking">
<ContactCta
tag="Reserve Now"
text="Ready for your stay? Book directly and save."
primaryButton={{
text: "Book Now",
href: "#contact",
}}
secondaryButton={{
text: "Call Us",
href: "tel:+212000000000",
}}
/>
</SectionErrorBoundary>
</div>
<BookingSection />
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<FaqTwoColumn
tag="Support"
title="Frequently Asked Questions"
description="Need to contact us directly?"
items={[
{
question: "Where are you located?",
answer: "PXMW+532, Demnate, Morocco",
},
{
question: "Do you offer WiFi?",
answer: "Yes, high-speed WiFi is included.",
},
{
question: "Is parking available?",
answer: "Yes, free parking is available.",
},
{
question: "Can I cancel?",
answer: "Check our flexible booking policy.",
},
]}
/>
</SectionErrorBoundary>
</div>
<ContactSection />
</>
);
}

View 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 AboutTestimonial from '@/components/sections/about/AboutTestimonial';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function AboutSection(): React.JSX.Element {
return (
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutTestimonial
tag="Our Story"
quote="Located in the heart of Demnate, Hôtel Résidence Marrakech offers guests a comfortable, clean, and affordable place to stay."
author="Management Team"
role="Hôtel Résidence Marrakech"
imageSrc="http://img.b2bpic.net/free-photo/facade-old-architectural-building_169016-22403.jpg?_wi=1"
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,27 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "booking" section.
import React from 'react';
import ContactCta from '@/components/sections/contact/ContactCta';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function BookingSection(): React.JSX.Element {
return (
<div id="booking" data-section="booking">
<SectionErrorBoundary name="booking">
<ContactCta
tag="Reserve Now"
text="Ready for your stay? Book directly and save."
primaryButton={{
text: "Book Now",
href: "#contact",
}}
secondaryButton={{
text: "Call Us",
href: "tel:+212000000000",
}}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,38 @@
// 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 FaqTwoColumn from '@/components/sections/faq/FaqTwoColumn';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function ContactSection(): React.JSX.Element {
return (
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<FaqTwoColumn
tag="Support"
title="Frequently Asked Questions"
description="Need to contact us directly?"
items={[
{
question: "Where are you located?",
answer: "PXMW+532, Demnate, Morocco",
},
{
question: "Do you offer WiFi?",
answer: "Yes, high-speed WiFi is included.",
},
{
question: "Is parking available?",
answer: "Yes, free parking is available.",
},
{
question: "Can I cancel?",
answer: "Check our flexible booking policy.",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,57 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "destinations" section.
import React from 'react';
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function DestinationsSection(): React.JSX.Element {
return (
<div id="destinations" data-section="destinations">
<SectionErrorBoundary name="destinations">
<FeaturesImageBento
tag="Explore"
title="Discover the Beauty of Demnate"
description="Breathtaking landscapes and culture."
items={[
{
title: "Atlas Mountains",
description: "Stunning vistas",
imageSrc: "http://img.b2bpic.net/free-photo/ksar-ait-ben-haddou-surrounded-by-greenery-sunlight-blue-sky-morocco_181624-14248.jpg",
},
{
title: "Natural Bridge",
description: "Imi N'Ifri landmark",
imageSrc: "http://img.b2bpic.net/free-photo/bear-mountain-foliage_649448-4505.jpg",
},
{
title: "Culture",
description: "Traditional streets",
imageSrc: "http://img.b2bpic.net/free-photo/spices-market-morocco_23-2148129918.jpg",
},
{
title: "Exterior",
description: "Hotel views",
imageSrc: "http://img.b2bpic.net/free-photo/modern-building-with-windows-blue-sky-sunlight-evening_181624-14350.jpg",
},
{
title: "Reception",
description: "Warm welcome",
imageSrc: "http://img.b2bpic.net/free-photo/beauty-slim-african-american-model-wear-black-blouse-green-long-legs-pants-posed-chinese-cafe_627829-5911.jpg",
},
{
title: "Comfort",
description: "Clean space",
imageSrc: "http://img.b2bpic.net/free-photo/sofa-pillow_74190-1207.jpg",
},
{
title: "Amenities",
description: "Quality service",
imageSrc: "http://img.b2bpic.net/free-photo/hallway-building_23-2149397562.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,57 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "gallery" section.
import React from 'react';
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function GallerySection(): React.JSX.Element {
return (
<div id="gallery" data-section="gallery">
<SectionErrorBoundary name="gallery">
<FeaturesImageBento
tag="Gallery"
title="Our Hotel"
description="Visual tour of your home away from home."
items={[
{
title: "Reception",
description: "Arrival area",
imageSrc: "http://img.b2bpic.net/free-photo/friendly-afro-man-traditional-yellow-clothes-restaurant_627829-1132.jpg",
},
{
title: "Exterior",
description: "Main View",
imageSrc: "http://img.b2bpic.net/free-photo/luxury-villa-with-outdoor-patio-ocean-view_23-2151986058.jpg",
},
{
title: "Standard Room",
description: "Comfort",
imageSrc: "http://img.b2bpic.net/free-photo/contemporary-house-interior-design_23-2151050935.jpg",
},
{
title: "Family Suite",
description: "Spacious",
imageSrc: "http://img.b2bpic.net/free-photo/smiling-young-couple-lying-bed-playing-with-their-baby_23-2147923029.jpg",
},
{
title: "Hallway",
description: "Entryway",
imageSrc: "http://img.b2bpic.net/free-photo/abstract-blur-defocused-hotel-lobby-lounge_74190-6102.jpg",
},
{
title: "Mountain View",
description: "Scenery",
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-shot-canyon-mountains-cloudy-sky_181624-7807.jpg",
},
{
title: "Natural Beauty",
description: "Local landscape",
imageSrc: "http://img.b2bpic.net/free-photo/wave-sandstone-rock-formations-arizona-united-states_181624-29498.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,29 @@
// 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 HeroSplit from '@/components/sections/hero/HeroSplit';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function HeroSection(): React.JSX.Element {
return (
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroSplit
tag="Welcome to Demnate"
title="Comfortable & Affordable Stay in the Heart of Demnate"
description="Experience clean rooms, welcoming hospitality, and excellent value while exploring the beauty of Demnate and the Atlas Mountains."
primaryButton={{
text: "Book Your Stay",
href: "#booking",
}}
secondaryButton={{
text: "Contact Us",
href: "#contact",
}}
imageSrc="http://img.b2bpic.net/free-photo/luxury-villa-with-infinity-pool-sunset-coastal-view_23-2151986080.jpg"
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,40 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "rooms" section.
import React from 'react';
import FeaturesMediaCarousel from '@/components/sections/features/FeaturesMediaCarousel';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function RoomsSection(): React.JSX.Element {
return (
<div id="rooms" data-section="rooms">
<SectionErrorBoundary name="rooms">
<FeaturesMediaCarousel
tag="Our Accommodations"
title="Comfortable Rooms for Every Traveler"
description="A variety of room options tailored to your needs."
items={[
{
title: "Standard Room",
description: "Comfortable Bed, Private Bathroom, WiFi, Daily Cleaning",
buttonIcon: "Bed",
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-luxury-comfortable-white-pillow-blanket-decoration-interior-bedroom_74190-12647.jpg",
},
{
title: "Double Room",
description: "Double Bed, Private Bathroom, Spacious Layout, Natural Lighting",
buttonIcon: "Bed",
imageSrc: "http://img.b2bpic.net/free-photo/double-bed-with-four-pillows_1203-1107.jpg",
},
{
title: "Family Room",
description: "Larger Space, Family Friendly, Comfortable Bedding, Great Value",
buttonIcon: "Bed",
imageSrc: "http://img.b2bpic.net/free-photo/long-shot-family-looking-through-map-caravan_23-2148659492.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,52 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "testimonials" section.
import React from 'react';
import TestimonialColumnMarqueeCards from '@/components/sections/testimonial/TestimonialColumnMarqueeCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function TestimonialsSection(): React.JSX.Element {
return (
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialColumnMarqueeCards
tag="Guest Voices"
title="What Guests Say"
description="We are proud of our hospitality."
testimonials={[
{
name: "Ahmed M.",
role: "Traveler",
quote: "Comfortable and safe stay. I really enjoyed my visit.",
imageSrc: "http://img.b2bpic.net/free-photo/white-towel-bed_74190-4536.jpg",
},
{
name: "Sarah L.",
role: "Guest",
quote: "Simple, clean, and good value for money.",
imageSrc: "http://img.b2bpic.net/free-photo/luxury-hotel-room-with-modern-design-elegance-generated-by-ai_188544-17094.jpg",
},
{
name: "David K.",
role: "Traveler",
quote: "Friendly atmosphere and convenient location.",
imageSrc: "http://img.b2bpic.net/free-photo/mother-daughter-using-digital-tablet-bedroom_1170-2786.jpg",
},
{
name: "Elena R.",
role: "Guest",
quote: "A practical choice for travelers on a budget.",
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-shot-yellow-trees-mountains-with-blue-sky_181624-4178.jpg",
},
{
name: "Youssef T.",
role: "Traveler",
quote: "Wonderful hospitality and clean amenities.",
imageSrc: "http://img.b2bpic.net/free-photo/bellboy-helping-woman-guest-carry-baggage-her-room-traveller-with-trolley-bags-waiting-lounge-area-professional-bellhop-provising-luxury-service-hotel-customers-handheld-shot_482257-65357.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,40 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "trust" section.
import React from 'react';
import MetricsMediaCards from '@/components/sections/metrics/MetricsMediaCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function TrustSection(): React.JSX.Element {
return (
<div id="trust" data-section="trust">
<SectionErrorBoundary name="trust">
<MetricsMediaCards
tag="Why Guests Choose Us"
title="Clean, Comfortable, Affordable"
description="A practical and comfortable choice for travelers, families, and visitors exploring Demnate."
metrics={[
{
value: "✓",
title: "Clean Rooms",
description: "Daily maintained for hygiene.",
imageSrc: "http://img.b2bpic.net/free-photo/pillow-bed_1203-3751.jpg",
},
{
value: "✓",
title: "Location",
description: "Central Demnate access.",
imageSrc: "http://img.b2bpic.net/free-photo/aerial-view-warrumbungle-national-park-mountains-blue-sky_1308-189549.jpg",
},
{
value: "✓",
title: "Service",
description: "Friendly hospitality.",
imageSrc: "http://img.b2bpic.net/free-photo/old-tourist-using-mobile-nfc-technology_482257-76765.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,29 @@
import { motion } from "motion/react"
import ScrollReveal from "@/components/ui/ScrollReveal"
export default function TrustBadgesSection() {
return (
<section data-webild-section="trust-badges" id="trust-badges" className="py-12 bg-background-accent/20 border-y border-border/50">
<div className="w-content-width mx-auto px-4 md:px-6">
<ScrollReveal variant="fade">
<div className="flex flex-col items-center justify-center space-y-6">
<p className="text-sm font-medium text-muted-foreground uppercase tracking-wider text-center">
Trusted by guests worldwide
</p>
<div className="flex flex-wrap justify-center items-center gap-8 md:gap-16 opacity-80 grayscale hover:grayscale-0 transition-all duration-500">
<div className="flex items-center gap-2">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/b/be/Booking.com_logo.svg/2560px-Booking.com_logo.svg.png" alt="Booking.com" className="h-8 md:h-10 object-contain" />
</div>
<div className="flex items-center gap-2">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/0/02/TripAdvisor_Logo.svg/1024px-TripAdvisor_Logo.svg.png" alt="TripAdvisor" className="h-8 md:h-10 object-contain" />
</div>
<div className="flex items-center gap-2">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/2/2f/Google_2015_logo.svg/2560px-Google_2015_logo.svg.png" alt="Google Reviews" className="h-8 md:h-10 object-contain" />
</div>
</div>
</div>
</ScrollReveal>
</div>
</section>
);
}

View File

@@ -0,0 +1,52 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "why" section.
import React from 'react';
import PricingSimpleCards from '@/components/sections/pricing/PricingSimpleCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function WhySection(): React.JSX.Element {
return (
<div id="why" data-section="why">
<SectionErrorBoundary name="why">
<PricingSimpleCards
tag="Why Choose Us"
title="Affordable Quality"
description="We believe in transparency and value."
plans={[
{
tag: "Value",
price: "Affordable",
description: "Rates for all budgets",
features: [
"Budget-friendly",
"Direct booking perks",
"No hidden fees",
],
},
{
tag: "Location",
price: "Convenient",
description: "Heart of Demnate",
features: [
"Central location",
"Near shops",
"Easy access",
],
},
{
tag: "Clean",
price: "Sanitary",
description: "Hygiene standards",
features: [
"Daily cleaning",
"Fresh linens",
"Safe common areas",
],
},
]}
/>
</SectionErrorBoundary>
</div>
);
}