diff --git a/src/components/FeaturesStats.astro b/src/components/FeaturesStats.astro
new file mode 100644
index 0000000..89f3418
--- /dev/null
+++ b/src/components/FeaturesStats.astro
@@ -0,0 +1,72 @@
+---
+import StatsBig from "../components/ui/blocks/StatsBig.astro";
+import StatsSmall from "../components/ui/blocks/StatsSmall.astro";
+
+const { title, subTitle } = Astro.props;
+
+interface Props {
+ title: string;
+ subTitle: string;
+}
+
+/* TypeScript type for testimonials. */
+type Stat = {
+ stat: string;
+ description: string;
+};
+
+/* An array of testimonials, each being an object that conforms to the above `Testimonial` type. */
+const stats: Stat[] = [
+ {
+ stat: "99.8%",
+ description: "project completion rate",
+ },
+ {
+ stat: "5,000+",
+ description: "successful installations",
+ },
+ {
+ stat: "85%",
+ description: "client growth year-over-year",
+ },
+];
+---
+
+
+
+
+
+
+
+
+
+ {
+ stats.map((stat) => (
+
+ ))
+ }
+
+
+
+
+
diff --git a/src/components/ui/blocks/LeftSection.astro b/src/components/ui/blocks/LeftSection.astro
new file mode 100644
index 0000000..8749892
--- /dev/null
+++ b/src/components/ui/blocks/LeftSection.astro
@@ -0,0 +1,41 @@
+---
+import { Image } from "astro:assets";
+import PrimaryCTA from "../buttons/PrimaryCTA.astro";
+
+const { title, subTitle, btn, btnTitle, btnURL, img, imgAlt } =
+ Astro.props;
+
+interface Props {
+ title: string;
+ subTitle: string;
+ btn?: boolean;
+ btnTitle?: string;
+ btnURL?: string;
+ img: any;
+ imgAlt: any;
+}
+---
+
+
+
+
+
+
+ {subTitle}
+
+ {btn ?
: null}
+
+
diff --git a/src/components/ui/blocks/MainSection.astro b/src/components/ui/blocks/MainSection.astro
new file mode 100644
index 0000000..b971e1e
--- /dev/null
+++ b/src/components/ui/blocks/MainSection.astro
@@ -0,0 +1,37 @@
+---
+import PrimaryCTA from "../buttons/PrimaryCTA.astro";
+
+const { title, subTitle, btn, btnTitle, btnURL } = Astro.props;
+
+interface Props {
+ title: string;
+ subTitle: string;
+ btn?: boolean;
+ btnTitle?: string;
+ btnURL?: string;
+}
+---
+
+
+
+
+
+ {subTitle}
+
+ {
+ btn ? (
+
+ ) : null
+ }
+
+
diff --git a/src/components/ui/blocks/RightSection.astro b/src/components/ui/blocks/RightSection.astro
new file mode 100644
index 0000000..79774b8
--- /dev/null
+++ b/src/components/ui/blocks/RightSection.astro
@@ -0,0 +1,75 @@
+---
+import { Image } from "astro:assets";
+import PrimaryCTA from "../buttons/PrimaryCTA.astro";
+
+const {
+ title,
+ subTitle,
+ btn,
+ btnTitle,
+ btnURL,
+ single,
+ imgOne,
+ imgOneAlt,
+ imgTwo,
+ imgTwoAlt,
+} = Astro.props;
+
+interface Props {
+ title: string;
+ subTitle: string;
+ btn?: boolean;
+ btnTitle?: string;
+ btnURL?: string;
+ single?: boolean;
+ imgOne?: any;
+ imgOneAlt?: any;
+ imgTwo?: any;
+ imgTwoAlt?: any;
+}
+---
+
+
+
+
+
+ {subTitle}
+
+ {btn ?
: null}
+
+ {
+ single ? (
+
+
+
+ ) : (
+
+
+
+
+ )
+ }
+
diff --git a/src/components/ui/blocks/StatsBig.astro b/src/components/ui/blocks/StatsBig.astro
new file mode 100644
index 0000000..b6a7c5b
--- /dev/null
+++ b/src/components/ui/blocks/StatsBig.astro
@@ -0,0 +1,15 @@
+---
+const { title, subTitle } = Astro.props;
+
+interface Props {
+ title: string;
+ subTitle: string;
+}
+---
+
+
+ {title}
+
+
+
{subTitle}
+
\ No newline at end of file
diff --git a/src/components/ui/blocks/StatsSmall.astro b/src/components/ui/blocks/StatsSmall.astro
new file mode 100644
index 0000000..6c62e16
--- /dev/null
+++ b/src/components/ui/blocks/StatsSmall.astro
@@ -0,0 +1,13 @@
+---
+const { title, subTitle } = Astro.props;
+
+interface Props {
+ title: string;
+ subTitle: string;
+}
+---
+
+
diff --git a/src/components/ui/forms/input/Checkbox.astro b/src/components/ui/forms/input/Checkbox.astro
new file mode 100644
index 0000000..8c4aebb
--- /dev/null
+++ b/src/components/ui/forms/input/Checkbox.astro
@@ -0,0 +1,16 @@
+---
+const { label = "Remember me", id } = Astro.props;
+
+interface Props {
+ label?: string;
+ id?: string;
+}
+---
+
diff --git a/src/images/aerial-view.avif b/src/images/aerial-view.avif
new file mode 100644
index 0000000..cd1cbc7
Binary files /dev/null and b/src/images/aerial-view.avif differ
diff --git a/src/images/before-after-1.avif b/src/images/before-after-1.avif
new file mode 100644
index 0000000..9b5a2a8
Binary files /dev/null and b/src/images/before-after-1.avif differ
diff --git a/src/images/before-after.avif b/src/images/before-after.avif
new file mode 100644
index 0000000..b1ea2de
Binary files /dev/null and b/src/images/before-after.avif differ
diff --git a/src/images/blueprints-image.avif b/src/images/blueprints-image.avif
new file mode 100644
index 0000000..124de3b
Binary files /dev/null and b/src/images/blueprints-image.avif differ
diff --git a/src/images/construction-worker.avif b/src/images/construction-worker.avif
new file mode 100644
index 0000000..b128b1f
Binary files /dev/null and b/src/images/construction-worker.avif differ
diff --git a/src/images/construction-workers.avif b/src/images/construction-workers.avif
new file mode 100644
index 0000000..7fa569c
Binary files /dev/null and b/src/images/construction-workers.avif differ
diff --git a/src/images/person-working.avif b/src/images/person-working.avif
new file mode 100644
index 0000000..f4bf905
Binary files /dev/null and b/src/images/person-working.avif differ
diff --git a/src/images/progress-building.avif b/src/images/progress-building.avif
new file mode 100644
index 0000000..a448d16
Binary files /dev/null and b/src/images/progress-building.avif differ
diff --git a/src/images/under-construction.avif b/src/images/under-construction.avif
new file mode 100644
index 0000000..673d584
Binary files /dev/null and b/src/images/under-construction.avif differ
diff --git a/src/images/using-tools.avif b/src/images/using-tools.avif
new file mode 100644
index 0000000..c1b08f0
Binary files /dev/null and b/src/images/using-tools.avif differ