Initial commit

This commit is contained in:
DK
2026-01-06 12:57:21 +00:00
commit 3a28d586ec
308 changed files with 62701 additions and 0 deletions

BIN
src/app/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

512
src/app/globals.css Normal file
View File

@@ -0,0 +1,512 @@
@import "tailwindcss";
:root {
/* Base units */
/* --vw is set by ThemeProvider */
--background: #ffffff;;
--card: #fcfcfc;;
--foreground: #000f0fe6;;
--primary-cta: #00c9e8;;
--secondary-cta: #ffffff;;
--accent: #e2e2e2;;
--background-accent: #c4c4c4;;
/* 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-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-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;
}
}
@theme inline {
--color-background: var(--background);
--color-card: var(--card);
--color-foreground: var(--foreground);
--color-primary-cta: var(--primary-cta);
--color-secondary-cta: var(--secondary-cta);
--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-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);
}
@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;
}
.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-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%;
}
}
}
* {
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-lato), sans-serif;
position: relative;
min-height: 100vh;
overscroll-behavior: none;
overscroll-behavior-y: none;
}
h1,
h2,
h3,
h4,
h5,
h6 {
font-family: var(--font-lato), sans-serif;
}

1281
src/app/layout.tsx Normal file

File diff suppressed because it is too large Load Diff

480
src/app/page.tsx Normal file
View File

@@ -0,0 +1,480 @@
"use client"
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarStyleMinimal from '@/components/navbar/NavbarStyleMinimal';
import HeroBillboardRotatedCarousel from '@/components/sections/hero/HeroBillboardRotatedCarousel';
import MetricCardTen from '@/components/sections/metrics/MetricCardTen';
import ProductCardTwo from '@/components/sections/product/ProductCardTwo';
import FeatureCardOne from '@/components/sections/feature/FeatureCardOne';
import TestimonialCardEight from '@/components/sections/testimonial/TestimonialCardEight';
import PricingCardOne from '@/components/sections/pricing/PricingCardOne';
import FaqDouble from '@/components/sections/faq/FaqDouble';
import ContactCenter from '@/components/sections/contact/ContactCenter';
import FooterBaseCard from '@/components/sections/footer/FooterBaseCard';
import { Sparkles, Home, CheckCircle, Award, TrendingUp, Building2, Shield, HelpCircle, Zap } from "lucide-react";
export default function LandingPage() {
return (
<ThemeProvider
defaultButtonVariant="elastic-effect"
defaultTextAnimation="background-highlight"
borderRadius="rounded"
contentWidth="small"
sizing="largeSizeMediumTitles"
background="aurora"
cardStyle="solid-accent"
primaryButtonStyle="outline"
secondaryButtonStyle="layered"
headingFontWeight="light"
>
<div id="nav" data-section="nav">
<NavbarStyleMinimal
brandName="PrimeProperties"
button={{
text: "View Properties",
href: "#properties"
}}
buttonClassName="font-semibold tracking-wide"
/>
</div>
<div id="hero" data-section="hero">
<HeroBillboardRotatedCarousel
title="Premium Properties in Prime Locations"
description="Carefully selected investment opportunities with verified documentation, legal support, and transparent pricing. Start your real estate journey with confidence."
tag="NEW LISTINGS ADDED THIS WEEK"
tagIcon={Sparkles}
buttons={[
{
text: "View Properties",
href: "#properties"
},
{
text: "Schedule Viewing",
href: "#contact"
}
]}
carouselItems={[
{
id: "1",
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/gallery/uploaded-1767704134924-wdmxpe16.jpg",
imageAlt: "Modern luxury apartment with panoramic city views"
},
{
id: "2",
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/gallery/uploaded-1767704135333-c3df8jx8.jpg",
imageAlt: "Downtown city skyline with premium properties"
},
{
id: "3",
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/gallery/uploaded-1767704135718-8g8rx0nb.jpg",
imageAlt: "Contemporary villa with modern architecture"
},
{
id: "4",
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/gallery/uploaded-1767704136085-kq3gu5kt.jpg",
imageAlt: "Residential apartment complex with premium finishes"
},
{
id: "5",
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/gallery/uploaded-1767704136339-3ekq45tc.jpg",
imageAlt: "Beachfront luxury property with ocean views"
},
{
id: "6",
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/gallery/uploaded-1767704136789-zfri50hh.jpg",
imageAlt: "Downtown commercial office space"
}
]}
autoPlay={true}
autoPlayInterval={4000}
containerClassName="py-12"
titleClassName="font-light text-4xl md:text-5xl tracking-tight"
descriptionClassName="text-base md:text-lg font-light opacity-90"
/>
</div>
<div id="announcement" data-section="announcement">
<MetricCardTen
title="Limited Time Offer"
description="Only 3 premium units remaining in our flagship development. Secure your investment today."
textboxLayout="default"
animationType="slide-up"
useInvertedBackground="noInvert"
metrics={[
{
id: "1",
title: "ONLY 3 UNITS LEFT",
subtitle: "Flagship Downtown Development - Closing Soon",
category: "Exclusive",
value: "75% Sold",
buttons: [
{
text: "Claim Yours Now",
href: "#contact"
}
]
}
]}
/>
</div>
<div id="properties" data-section="properties">
<ProductCardTwo
title="Featured Properties"
description="Handpicked investments in the most desirable locations with strong market fundamentals and growth potential."
tag="Prime Investments"
tagIcon={Home}
textboxLayout="default"
animationType="slide-up"
useInvertedBackground="noInvert"
gridVariant="two-columns-alternating-heights"
products={[
{
id: "1",
brand: "Downtown Central",
name: "Luxury Penthouse - City Center",
price: "From €850,000",
rating: 5,
reviewCount: "127",
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/gallery/uploaded-1767704137950-gpm17uc8.jpg",
imageAlt: "Luxury penthouse apartment with panoramic city views"
},
{
id: "2",
brand: "Prestige Residences",
name: "Modern Villa - Prime Location",
price: "From €1,200,000",
rating: 5,
reviewCount: "89",
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/gallery/uploaded-1767704138490-zunpo9uk.jpg",
imageAlt: "Contemporary villa with private courtyard"
},
{
id: "3",
brand: "Coastal Living",
name: "Beachfront Apartment - Resort Style",
price: "From €650,000",
rating: 5,
reviewCount: "156",
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/gallery/uploaded-1767704138951-siri0kwa.jpg",
imageAlt: "Beachfront apartment with ocean views and resort amenities"
},
{
id: "4",
brand: "Elite Properties",
name: "Exclusive Beach Villa - Waterfront",
price: "From €1,500,000",
rating: 5,
reviewCount: "92",
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/gallery/uploaded-1767704139380-u1v84ehm.jpg",
imageAlt: "Exclusive beachfront villa with private beach access"
}
]}
/>
</div>
<div id="why-invest" data-section="why-invest">
<FeatureCardOne
title="Why Invest With Us"
description="We handle every step of your real estate investment journey with transparency, expertise, and legal certainty."
tag="Trusted Platform"
tagIcon={CheckCircle}
textboxLayout="default"
animationType="slide-up"
useInvertedBackground="noInvert"
gridVariant="three-columns-all-equal-width"
features={[
{
title: "Verified Listings Only",
description: "Every property undergoes thorough legal, financial, and structural verification. No hidden issues, complete transparency.",
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/gallery/uploaded-1767704140913-oyt6yxf0.jpg",
imageAlt: "Verified property documentation"
},
{
title: "Legal Support Included",
description: "Our legal experts handle all documentation, contracts, and compliance requirements. You invest with confidence.",
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/gallery/uploaded-1767704141241-sqojnv8e.jpg",
imageAlt: "Legal document review and support"
},
{
title: "End-to-End Guidance",
description: "From initial viewing through closing and post-purchase support. Dedicated property advisor for your complete journey.",
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/gallery/uploaded-1767704141538-9f4jdfla.jpg",
imageAlt: "Three-step property investment process"
}
]}
/>
</div>
<div id="testimonials" data-section="testimonials">
<TestimonialCardEight
title="Trusted by 1,500+ Investors & Families"
description="Real results from real clients who found their perfect property and secured smart investments."
tag="Client Success Stories"
tagIcon={Award}
textboxLayout="default"
useInvertedBackground="noInvert"
testimonials={[
{
id: "1",
name: "Sarah Johnson",
role: "Real Estate Investor",
company: "Property Portfolio Group",
rating: 5,
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/gallery/uploaded-1767391971396-8z0vqol9.jpg",
imageAlt: "Sarah Johnson investor testimonial"
},
{
id: "2",
name: "Michael Chen",
role: "First-Time Buyer",
company: "Tech Professional",
rating: 5,
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/gallery/uploaded-1767391971052-5paod60c.jpg",
imageAlt: "Michael Chen buyer testimonial"
},
{
id: "3",
name: "Emma Rodriguez",
role: "Family Relocation",
company: "Executive Family",
rating: 5,
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/gallery/uploaded-1767391971803-ej8f6jxf.jpg",
imageAlt: "Emma Rodriguez family testimonial"
},
{
id: "4",
name: "David Kim",
role: "Portfolio Manager",
company: "Investment Firm",
rating: 5,
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/gallery/uploaded-1767704140274-m18m7f2i.jpg",
imageAlt: "David Kim portfolio manager testimonial"
},
{
id: "5",
name: "Lisa Thompson",
role: "Business Owner",
company: "Entrepreneur",
rating: 5,
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/gallery/uploaded-1767548603379-gni6b4vr.jpg",
imageAlt: "Lisa Thompson business owner testimonial"
},
{
id: "6",
name: "James Wilson",
role: "Wealth Manager",
company: "Financial Advisory",
rating: 5,
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/gallery/uploaded-1767448343297-4asr5tm3.jpg",
imageAlt: "James Wilson wealth manager testimonial"
}
]}
/>
</div>
<div id="social-proof" data-section="social-proof">
<PricingCardOne
title="Trusted by Industry Leaders"
description="Partnered with top financial institutions, developers, and legal authorities for verified, secure transactions."
textboxLayout="default"
animationType="slide-up"
useInvertedBackground="noInvert"
plans={[
{
id: "bank1",
badge: "Premium Financing",
badgeIcon: TrendingUp,
price: "Partnership",
subtitle: "Leading mortgage providers offer competitive rates for verified properties",
features: [
"Competitive interest rates",
"Fast pre-approval process",
"Flexible payment terms",
"Dedicated financing support"
]
},
{
id: "developer1",
badge: "Verified Developer",
badgeIcon: Building2,
price: "Alliance",
subtitle: "Award-winning developers with proven track record in premium developments",
features: [
"Quality construction standards",
"On-time project delivery",
"Warranty & guarantees",
"Post-sale support"
]
},
{
id: "legal1",
badge: "Legal Certified",
badgeIcon: Shield,
price: "Certified",
subtitle: "Licensed legal experts ensure complete compliance and documentation",
features: [
"Full legal review",
"Contract expertise",
"Regulatory compliance",
"Title verification"
]
}
]}
/>
</div>
<div id="faq" data-section="faq">
<FaqDouble
title="Common Questions"
description="Find answers to questions about investing, financing, process, and legal requirements."
tag="Help & Support"
tagIcon={HelpCircle}
textboxLayout="default"
useInvertedBackground="noInvert"
animationType="smooth"
faqs={[
{
id: "1",
title: "How long does the entire process take?",
content: "On average, the process takes 14-30 days from first viewing to closing. Our dedicated advisors work to streamline documentation and legal requirements. For international buyers, timeline may extend to 4-6 weeks depending on additional verification requirements."
},
{
id: "2",
title: "What are the typical investment returns?",
content: "Historical data shows 6-12% annual returns through appreciation and rental income. Returns vary by location, property type, and market conditions. We provide detailed ROI analysis and market comparisons for each property to help you make informed decisions."
},
{
id: "3",
title: "Are there hidden fees?",
content: "No. All fees are transparent and disclosed upfront. Typical costs include transaction fees (2-3%), legal fees (€500-1,500), and registration fees. We provide a complete cost breakdown before any commitment."
},
{
id: "4",
title: "What documentation do I need?",
content: "For EU residents: valid ID, proof of funds, and basic financial information. For international buyers: passport, proof of income, and source of funds documentation. Our legal team provides a complete checklist tailored to your situation."
},
{
id: "5",
title: "Can I get financing assistance?",
content: "Yes. We partner with leading banks and mortgage providers offering 60-90% LTV financing for qualified buyers. Our financing team helps with pre-approval, documentation, and negotiating competitive rates."
},
{
id: "6",
title: "Is my investment protected?",
content: "All properties undergo full legal verification. Funds are held in escrow by licensed attorneys. Title insurance and property registration ensure your ownership is protected. We're regulated and maintain E&O insurance for all transactions."
}
]}
/>
</div>
<div id="contact" data-section="contact">
<ContactCenter
tag="Ready to Invest?"
tagIcon={Zap}
title="Schedule Your Private Property Viewing"
description="Get personalized recommendations, detailed property analysis, and ROI projections from our investment specialists. No obligation."
inputPlaceholder="Enter your email address"
buttonText="Request Viewing"
termsText="We respect your privacy. Your information is secure and never shared. Expect contact within 24 hours."
useInvertedBackground="noInvert"
/>
</div>
<div id="footer" data-section="footer">
<FooterBaseCard
logoText="PrimeProperties"
columns={[
{
title: "Properties",
items: [
{
label: "Featured Listings",
href: "#properties"
},
{
label: "Buy",
href: "#buy"
},
{
label: "Rent",
href: "#rent"
},
{
label: "Investment Opportunities",
href: "#invest"
}
]
},
{
title: "Company",
items: [
{
label: "About Us",
href: "/about"
},
{
label: "Our Process",
href: "/process"
},
{
label: "Why Choose Us",
href: "/why-us"
},
{
label: "Careers",
href: "/careers"
}
]
},
{
title: "Support",
items: [
{
label: "Help Center",
href: "/help"
},
{
label: "Contact Us",
href: "/contact"
},
{
label: "FAQs",
href: "#faq"
},
{
label: "Schedule Viewing",
href: "/schedule"
}
]
},
{
title: "Legal",
items: [
{
label: "Privacy Policy",
href: "/privacy"
},
{
label: "Terms & Conditions",
href: "/terms"
},
{
label: "Compliance",
href: "/compliance"
},
{
label: "Disclaimer",
href: "/disclaimer"
}
]
}
]}
copyrightText="© 2025 PrimeProperties. All rights reserved. Licensed & Regulated Real Estate Broker."
logoTextClassName="text-2xl font-light tracking-wide"
/>
</div>
</ThemeProvider>
);
}