diff --git a/app/about/page.js b/app/about/page.js
new file mode 100644
index 0000000..e2a214b
--- /dev/null
+++ b/app/about/page.js
@@ -0,0 +1,284 @@
+'use client'
+import Link from "next/link"
+import Layout from "@/components/layout/Layout"
+import { Autoplay, Navigation, Pagination } from "swiper/modules"
+import { Swiper, SwiperSlide } from "swiper/react"
+import GallerySlider1 from '@/components/slider/GallerySlider1'
+
+const swiperOptions = {
+ modules: [Autoplay, Pagination, Navigation],
+ slidesPerView: 1,
+ spaceBetween: 30,
+ loop: true,
+
+ autoplay: {
+ delay: 3000,
+ disableOnInteraction: false,
+ },
+
+ navigation: {
+ nextEl: '.srn',
+ prevEl: '.srp',
+ },
+
+ pagination: {
+ el: '.swiper-pagination',
+ clickable: true,
+ },
+};
+
+export default function About() {
+
+ return (
+ <>
+
+ {/* History Section */}
+
+
+
+
+ {/* Image Column */}
+
+
+
+
+
+
+
+
+
+
+
+ {/* Content Column */}
+
+
+ {/* Sec Title */}
+
+
About Us
+
Street Fresh. Full of Flavour.
+
+
At Sixty5 Street, we believe great food starts with freshness and ends with bold, memorable flavour. Our menu is inspired by the vibrant energy of street-style eats, where every dish and every blend is crafted to feel lively, colourful, and satisfying. Whether it’s one of our refreshing fruit mixes or a flavour-packed bowl, everything we serve is designed to bring you real taste made from real ingredients.
+
+
+
+ Fresh fruits and ingredients in every blend
+ Street-inspired flavours prepared with care
+ A vibrant experience that keeps you feeling energized
+
+
+
+
+
+
+
+ {/* End History Section */}
+
+ {/* Menu Page Section */}
+
+
+
+
+ {/* Menu Block Two */}
+
+
+
+
+
+
Bold Flavours
+
Every item is created to deliver bright, bold flavour. From our signature blends to our colourful bowls, we make sure each serving tastes fresh, lively, and instantly enjoyable.
+
+
+
+ {/* Menu Block Two */}
+
+
+
+
+
+
Real Fruits
+
We use high-quality fruits chosen for their natural sweetness and freshness. This ensures every mix, topping, and serving brings out authentic, clean flavour.
+
+
+
+ {/* Menu Block Two */}
+
+
+
+
+
+
Healthy Blends
+
Our blends are crafted to be both nourishing and delicious. Light, refreshing, and made fresh to order — perfect for energizing your day without compromise.
+
+
+
+
+
+
+ {/* End Restaurant Section */}
+
+
+
+
+
+
+
+
+
+
Fresh Flavour Fusion
+
+
At Sixty5 Street, we are always creating something new, fresh, and full of flavour. Our upcoming beverage range is crafted with real fruits, clean ingredients, and creative blends that bring a refreshing twist to your day. These new additions are designed to energize, hydrate, and satisfy—all while staying true to our vibrant, street-style taste.
+
+
+
+ View Menu
+
+
+
+
+
+
+
+
+
+
+
+ {/* Testimonial Section Two */}
+
+
+
+
+ {/* Section Title */}
+
+
Google Reviews
+
Hear from our happy customers
+
+
+
+
+
+ {/* Testimonial Block Two */}
+
+
+
+
+
+
+
+
+
+
+
+ “Absolutely love this place! Every blend tastes fresh and natural. The flavors pop, and you can really tell they use quality ingredients. Sixty5 Street never disappoints.”
+
+
— Emily R.
+
+
+
+
+ {/* Testimonial Block Two */}
+
+
+
+
+
+
+
+
+
+
+
+ “The perfect spot when you need something refreshing. Their fruit mixes are vibrant, clean, and full of energy. I always leave feeling great.”
+
+
— Jason M.
+
+
+
+
+ {/* Testimonial Block Two */}
+
+
+
+
+
+
+
+
+
+
+
+ “Sixty5 Street has mastered the art of fresh flavor. The bowls are colorful, the drinks are delicious, and everything feels thoughtfully prepared. A must-try!”
+
+
— Sofia L.
+
+
+
+
+ {/* Testimonial Block Two */}
+
+
+
+
+
+
+
+
+
+
+
+ “Consistently amazing! The blends are smooth, balanced, and not overly sweet. You can taste the real fruit in every sip. Highly recommend for healthy cravings.”
+
+
— David P.
+
+
+
+
+ {/* Testimonial Block Two */}
+
+
+
+
+
+
+
+
+
+
+
+ “Super fresh, super tasty. The street-style vibe makes the whole experience fun and lively. Sixty5 Street has quickly become one of my favorite places to grab a flavorful drink.”
+
+
— Ava T.
+
+
+
+
+
+ {/* Google Review Button */}
+
+
+ Review us on Google
+
+
+
+
+
+ {/* End Testimonial Section Two */}
+
+ {/* Gallery Section */}
+
+ {/* End Gallery Section */}
+
+
+ >
+ )
+}
\ No newline at end of file
diff --git a/app/blog/[slug]/page.js b/app/blog/[slug]/page.js
new file mode 100644
index 0000000..bed815c
--- /dev/null
+++ b/app/blog/[slug]/page.js
@@ -0,0 +1,51 @@
+import Layout from "@/components/layout/Layout";
+import Link from "next/link";
+import Blogs from "@/utils/constant.utils";
+import { notFound } from "next/navigation";
+
+export async function generateStaticParams() {
+ return Blogs.map((item) => ({
+ slug: item.slug,
+ }));
+}
+
+export async function generateMetadata({ params }) {
+ const blog = Blogs.find((item) => item.slug === params.slug);
+
+}
+
+export default function BlogDetails({ params }) {
+ const blog = Blogs.find((item) => item.slug === params.slug);
+
+ if (!blog) return notFound();
+
+ return (
+
+
+
+
+ {/* Content Side */}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/app/blog/page.js b/app/blog/page.js
new file mode 100644
index 0000000..e1a488f
--- /dev/null
+++ b/app/blog/page.js
@@ -0,0 +1,71 @@
+'use client'
+import Link from "next/link";
+import Layout from "@/components/layout/Layout";
+import Blogs from "@/utils/constant.utils";
+
+const truncateWords = (text, limit) => {
+ const words = text.split(" ");
+ return words.length > limit ? words.slice(0, limit).join(" ") + " ..." : text;
+};
+
+const stripHtml = (html) => {
+ if (!html) return "";
+ return html.replace(/<[^>]*>/g, "");
+};
+
+export default function Blog() {
+ return (
+
+
+
+
+ {Blogs.map((blog) => (
+
+
+ {/* Blog Image */}
+
+
+
+
+ {/* Blog Title */}
+
+
+
+ {stripHtml(blog.title)}
+
+
+
+ {/* Blog Excerpt */}
+
+ {truncateWords(stripHtml(blog.para))}
+
+
+ {/* Read More Button */}
+
+ Read More
+
+
+
+
+ ))}
+
+
+
+
+ );
+}
diff --git a/app/contact/page.js b/app/contact/page.js
new file mode 100644
index 0000000..609492a
--- /dev/null
+++ b/app/contact/page.js
@@ -0,0 +1,207 @@
+'use client'
+import { useState, useEffect } from "react";
+import Layout from "@/components/layout/Layout";
+import ReCAPTCHA from "react-google-recaptcha";
+import axios from "axios";
+
+export default function Contact() {
+ const [formData, setFormData] = useState({
+ name: "",
+ email: "",
+ phone: "",
+ message: "",
+ });
+
+ const [alert, setAlert] = useState({
+ show: false,
+ type: "",
+ message: "",
+ });
+
+ const [captchaToken, setCaptchaToken] = useState(null);
+
+ const handleCaptchaChange = (token) => {
+ setCaptchaToken(token);
+ };
+
+ const handleChange = (e) => {
+ const { name, value } = e.target;
+ setFormData(prev => ({ ...prev, [name]: value }));
+ };
+
+ const handleSubmit = async (e) => {
+ e.preventDefault();
+
+ if (!formData.name || !formData.email || !formData.phone || !formData.message) {
+ setAlert({ show: true, type: "danger", message: "Please fill in all fields." });
+ return;
+ }
+
+ if (!captchaToken) {
+ setAlert({ show: true, type: "danger", message: "Please verify the CAPTCHA." });
+ return;
+ }
+
+ const emailData = {
+ ...formData,
+ recaptchaToken: captchaToken,
+ to: "info@metatroncubesolutions.com",
+ senderName: "Website Contact Form",
+ message: `
+ Name: ${formData.name}
+ Email: ${formData.email}
+ Phone: ${formData.phone}
+ Message: ${formData.message}
+ `,
+ };
+
+ try {
+ await axios.post("https://mailserver.metatronnest.com/send", emailData, {
+ headers: { "Content-Type": "application/json" },
+ });
+
+ setAlert({ show: true, type: "success", message: "Your message has been sent successfully!" });
+ setFormData({ name: "", email: "", phone: "", message: "" });
+ setCaptchaToken(null);
+ } catch {
+ setAlert({ show: true, type: "danger", message: "Failed to send your message. Try again later." });
+ }
+ };
+
+ useEffect(() => {
+ if (alert.show) {
+ const timer = setTimeout(() => setAlert({ show: false, type: "", message: "" }), 5000);
+ return () => clearTimeout(timer);
+ }
+ }, [alert.show]);
+
+ return (
+
+ {/* Contact Section */}
+
+
+ {/* Google Map */}
+
+
+ );
+}
diff --git a/app/gallery/page.js b/app/gallery/page.js
new file mode 100644
index 0000000..62b2caf
--- /dev/null
+++ b/app/gallery/page.js
@@ -0,0 +1,158 @@
+'use client';
+import { useState } from "react";
+import Layout from "@/components/layout/Layout";
+import 'react-image-lightbox/style.css';
+import Lightbox from 'react-image-lightbox';
+
+export default function GalleryPage() {
+ const images = [
+ "/assets/images/home/categories/combos.webp",
+ "/assets/images/home/categories/milkshakes.webp",
+ "/assets/images/home/categories/poutine.webp",
+ "/assets/images/home/categories/salads.webp",
+ "/assets/images/home/categories/shawarma.webp",
+ "/assets/images/home/categories/dosa.webp"
+ ];
+
+ const [isOpen, setIsOpen] = useState(false);
+ const [photoIndex, setPhotoIndex] = useState(0);
+
+ return (
+
+ {/* Gallery Section Two */}
+
+
+
+
+ {/* Column 1 */}
+
+
+
+
{ setPhotoIndex(0); setIsOpen(true); }}
+ style={{ cursor: "pointer" }}
+ >
+
+
+
Combos
+
+
+
+
+
+
+ {/* Column 2 */}
+
+
+
+
{ setPhotoIndex(1); setIsOpen(true); }}
+ style={{ cursor: "pointer" }}
+ >
+
+
+
Milk Shakes
+
+
+
+
+
+
+
{ setPhotoIndex(2); setIsOpen(true); }}
+ style={{ cursor: "pointer" }}
+ >
+
+
+
Poutine
+
+
+
+
+
+
+ {/* Column 3 */}
+
+
+
+
+
+
{ setPhotoIndex(3); setIsOpen(true); }}
+ style={{ cursor: "pointer" }}
+ >
+
+
+
Salads
+
+
+
+
+
+
+
+
+
{ setPhotoIndex(4); setIsOpen(true); }}
+ style={{ cursor: "pointer" }}
+ >
+
+
+
Shawarma Wraps
+
+
+
+
+
+
+
+
+
{ setPhotoIndex(5); setIsOpen(true); }}
+ style={{ cursor: "pointer" }}
+ >
+
+
+
Dosa
+
+
+
+
+
+
+
+
+
+
+
+ {/* End Gallery Section Two */}
+
+ {/* Lightbox */}
+ {isOpen && (
+ setIsOpen(false)}
+ onMovePrevRequest={() =>
+ setPhotoIndex((photoIndex + images.length - 1) % images.length)
+ }
+ onMoveNextRequest={() =>
+ setPhotoIndex((photoIndex + 1) % images.length)
+ }
+ />
+ )}
+
+ );
+}
diff --git a/app/menu/page.js b/app/menu/page.js
new file mode 100644
index 0000000..4cca857
--- /dev/null
+++ b/app/menu/page.js
@@ -0,0 +1,109 @@
+'use client'
+import { useState } from 'react'
+import Layout from "@/components/layout/Layout"
+import Link from 'next/link'
+import { menuData } from '@/utils/constant.utils'
+
+export default function Menus() {
+ const [activeTab, setActiveTab] = useState('Wings')
+ const tabs = Object.keys(menuData)
+ const menuItems = menuData[activeTab] || []
+
+ // Split items into two columns
+ const mid = Math.ceil(menuItems.length / 2)
+ const firstHalf = menuItems.slice(0, mid)
+ const secondHalf = menuItems.slice(mid)
+
+ return (
+ <>
+
+ {/* Menu Section */}
+
+
+ >
+ )
+}
diff --git a/app/page.js b/app/page.js
index 8b8c3e4..c8a1bde 100644
--- a/app/page.js
+++ b/app/page.js
@@ -8,7 +8,8 @@ import Juice from "@/components/sections/home1/Juice"
import Recipe from "@/components/sections/home3/Recipe"
import Fluid from "@/components/sections/home3/Fluid"
import Menu2 from "@/components/sections/home4/Menu2"
-
+import Testimonial from "@/components/sections/home1/client-review"
+import Blog from "@/components/sections/home2/blog"
export default function Home() {
@@ -24,6 +25,8 @@ export default function Home() {
{/* */}
+
+
>
)
diff --git a/components/layout/Breadcrumb.js b/components/layout/Breadcrumb.js
index ae280e7..b6736f4 100644
--- a/components/layout/Breadcrumb.js
+++ b/components/layout/Breadcrumb.js
@@ -1,22 +1,20 @@
import Link from "next/link"
-export default function Breadcrumb({ breadcrumbTitle }) {
+export default function Breadcrumb({ breadcrumbTitle, bgImage }) {
return (
<>
-
- {/* Page Title */}
-
-
-
-
{breadcrumbTitle}
-
- home
- {breadcrumbTitle}
-
-
-
- {/* End Page Title */}
-
+ {/* Page Title */}
+
+
+
+
{breadcrumbTitle}
+
+ home
+ {breadcrumbTitle}
+
+
+
+ {/* End Page Title */}
>
)
}
diff --git a/components/layout/Layout.js b/components/layout/Layout.js
index 6256afe..e0c8c02 100644
--- a/components/layout/Layout.js
+++ b/components/layout/Layout.js
@@ -17,7 +17,7 @@ import Footer3 from "./footer/Footer3"
import Footer4 from "./footer/Footer4"
-export default function Layout({ headerStyle, footerStyle, headTitle, breadcrumbTitle, children, wrapperCls }) {
+export default function Layout({ headerStyle, footerStyle, headTitle, breadcrumbTitle, bgImage, children, wrapperCls }) {
const [scroll, setScroll] = useState(0)
// Mobile Menu
const [isMobileMenu, setMobileMenu] = useState(false)
@@ -64,7 +64,7 @@ export default function Layout({ headerStyle, footerStyle, headTitle, breadcrumb
- {breadcrumbTitle && }
+ {breadcrumbTitle && }
{children}
diff --git a/components/layout/Menu2.js b/components/layout/Menu2.js
index 5060d35..dd1f9f8 100644
--- a/components/layout/Menu2.js
+++ b/components/layout/Menu2.js
@@ -11,7 +11,7 @@ export default function Menu() {
-
+
{/*
Home
@@ -22,11 +22,14 @@ export default function Menu() {
Home Four
*/}
-
- About
+
+ Home
-
- Popular Dishes
+
+ About
+
+
+ Gallery
{/*
Locations
diff --git a/components/layout/Menu3.js b/components/layout/Menu3.js
index 2aae9ae..e409b0a 100644
--- a/components/layout/Menu3.js
+++ b/components/layout/Menu3.js
@@ -7,16 +7,21 @@ export default function Menu() {
return (
<>
-
-
-
+ {/*
Sixty5 Street Specials
-
Menu
-
+ */}
+
+ Menu
+
+
+ Blog
+
+
+ Contact
{/*
Contact
diff --git a/components/layout/MobileMenu.js b/components/layout/MobileMenu.js
index e974274..9758278 100644
--- a/components/layout/MobileMenu.js
+++ b/components/layout/MobileMenu.js
@@ -54,7 +54,7 @@ const MobileMenu = ({ isSidebar, handleMobileMenu, handleSidebar }) => {
*/}
- About
+ Home
{/*
About
Team
@@ -63,11 +63,11 @@ const MobileMenu = ({ isSidebar, handleMobileMenu, handleSidebar }) => {
handleToggle(2)}>
*/}
- Popular Dishes
- Sixty5 Street Specials
+ About
+ Gallery
- Menu
+ Menu
{/*
Menu
Milk Shake
@@ -77,6 +77,8 @@ const MobileMenu = ({ isSidebar, handleMobileMenu, handleSidebar }) => {
handleToggle(3)}>
*/}
+ Blog
+ Contact
{/* Gallery
diff --git a/components/layout/footer/Footer2.js b/components/layout/footer/Footer2.js
index cba11ec..9585cf2 100644
--- a/components/layout/footer/Footer2.js
+++ b/components/layout/footer/Footer2.js
@@ -30,10 +30,11 @@ export default function Footer2() {
Useful Links
- About
- Popular Dishes
- Sixty5 Street Specials
- Menu
+ About
+ Gallery
+ Menu
+ Blog
+ Contact
{/* 289-498-6565 */}
diff --git a/components/sections/home1/client-review.js b/components/sections/home1/client-review.js
new file mode 100644
index 0000000..01186d6
--- /dev/null
+++ b/components/sections/home1/client-review.js
@@ -0,0 +1,163 @@
+'use client'
+import Link from "next/link"
+import { Autoplay, Navigation, Pagination } from "swiper/modules"
+import { Swiper, SwiperSlide } from "swiper/react"
+
+const swiperOptions = {
+ modules: [Autoplay, Pagination, Navigation],
+ slidesPerView: 1,
+ spaceBetween: 30,
+ loop: true,
+
+ autoplay: {
+ delay: 3000,
+ disableOnInteraction: false,
+ },
+
+ navigation: {
+ nextEl: '.srn',
+ prevEl: '.srp',
+ },
+
+ pagination: {
+ el: '.swiper-pagination',
+ clickable: true,
+ },
+};
+
+export default function Testimonial() {
+ return (
+ <>
+
+
+ {/* Testimonial Section Two */}
+
+
+
+
+ {/* Section Title */}
+
+
Google Reviews
+
Hear from our happy customers
+
+
+
+
+
+ {/* Testimonial Block Two */}
+
+
+
+
+
+
+
+
+
+
+
+ “Absolutely love this place! Every blend tastes fresh and natural. The flavors pop, and you can really tell they use quality ingredients. Sixty5 Street never disappoints.”
+
+
— Emily R.
+
+
+
+
+ {/* Testimonial Block Two */}
+
+
+
+
+
+
+
+
+
+
+
+ “The perfect spot when you need something refreshing. Their fruit mixes are vibrant, clean, and full of energy. I always leave feeling great.”
+
+
— Jason M.
+
+
+
+
+ {/* Testimonial Block Two */}
+
+
+
+
+
+
+
+
+
+
+
+ “Sixty5 Street has mastered the art of fresh flavor. The bowls are colorful, the drinks are delicious, and everything feels thoughtfully prepared. A must-try!”
+
+
— Sofia L.
+
+
+
+
+ {/* Testimonial Block Two */}
+
+
+
+
+
+
+
+
+
+
+
+ “Consistently amazing! The blends are smooth, balanced, and not overly sweet. You can taste the real fruit in every sip. Highly recommend for healthy cravings.”
+
+
— David P.
+
+
+
+
+ {/* Testimonial Block Two */}
+
+
+
+
+
+
+
+
+
+
+
+ “Super fresh, super tasty. The street-style vibe makes the whole experience fun and lively. Sixty5 Street has quickly become one of my favorite places to grab a flavorful drink.”
+
+
— Ava T.
+
+
+
+
+
+ {/* Google Review Button */}
+
+
+ Review us on Google
+
+
+
+
+
+ {/* End Testimonial Section Two */}
+
+ >
+ )
+}
diff --git a/components/sections/home2/Menus.js b/components/sections/home2/Menus.js
index f658bed..c2dddd4 100644
--- a/components/sections/home2/Menus.js
+++ b/components/sections/home2/Menus.js
@@ -8,17 +8,14 @@ export default function Menus() {
const tabs = Object.keys(menuData);
const menuItems = menuData[activeTab] || [];
- // Split the array into 2 halves
- const mid = Math.ceil(menuItems.length / 2);
- const firstHalf = menuItems.slice(0, mid);
- const secondHalf = menuItems.slice(mid);
+ const visibleItems = menuItems.slice(0, 6);
+
+ const mid = Math.ceil(visibleItems.length / 2);
+ const firstHalf = visibleItems.slice(0, mid);
+ const secondHalf = visibleItems.slice(mid);
return (
);
diff --git a/components/sections/home2/blog.js b/components/sections/home2/blog.js
new file mode 100644
index 0000000..994b305
--- /dev/null
+++ b/components/sections/home2/blog.js
@@ -0,0 +1,63 @@
+'use client'
+import Link from "next/link";
+import Blogs from "@/utils/constant.utils";
+
+const truncateWords = (text, limit) => {
+ const words = text.split(" ");
+ return words.length > limit ? words.slice(0, limit).join(" ") + " ..." : text;
+};
+
+const stripHtml = (html) => {
+ if (!html) return "";
+ return html.replace(/<[^>]*>/g, "");
+};
+
+export default function Blog() {
+ return (
+
+
+
+ {Blogs.map((blog) => (
+
+
+ {/* Blog Image */}
+
+
+
+
+ {/* Blog Title */}
+
+
+
+ {stripHtml(blog.title)}
+
+
+
+ {/* Blog Excerpt */}
+
+ {truncateWords(stripHtml(blog.para))}
+
+
+ {/* Read More Button */}
+
+ Read More
+
+
+
+
+ ))}
+
+
+
+ );
+}
diff --git a/package-lock.json b/package-lock.json
index 8398773..6367469 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -8,11 +8,14 @@
"name": "start-app-dir",
"version": "0.1.0",
"dependencies": {
+ "axios": "^1.13.2",
"isotope-layout": "^3.0.6",
"next": "13.4.19",
"react": "18.2.0",
"react-curved-text": "^2.0.2",
"react-dom": "18.2.0",
+ "react-google-recaptcha": "^3.1.0",
+ "react-image-lightbox": "^5.1.4",
"react-modal-video": "^2.0.1",
"sass": "^1.66.1",
"sitemap": "^8.0.0",
@@ -511,6 +514,23 @@
"integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
"license": "MIT"
},
+ "node_modules/asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
+ "license": "MIT"
+ },
+ "node_modules/axios": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.2.tgz",
+ "integrity": "sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==",
+ "license": "MIT",
+ "dependencies": {
+ "follow-redirects": "^1.15.6",
+ "form-data": "^4.0.4",
+ "proxy-from-env": "^1.1.0"
+ }
+ },
"node_modules/braces": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
@@ -535,6 +555,19 @@
"node": ">=10.16.0"
}
},
+ "node_modules/call-bind-apply-helpers": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
+ "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/caniuse-lite": {
"version": "1.0.30001727",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001727.tgz",
@@ -576,6 +609,18 @@
"integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==",
"license": "MIT"
},
+ "node_modules/combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "license": "MIT",
+ "dependencies": {
+ "delayed-stream": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
"node_modules/core-js": {
"version": "3.44.0",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.44.0.tgz",
@@ -593,6 +638,15 @@
"integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
"license": "MIT"
},
+ "node_modules/delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
"node_modules/desandro-matches-selector": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/desandro-matches-selector/-/desandro-matches-selector-2.0.2.tgz",
@@ -629,12 +683,77 @@
"deprecated": "dommatrix is no longer maintained. Please use @thednp/dommatrix.",
"license": "MIT"
},
+ "node_modules/dunder-proto": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
+ "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
+ "license": "MIT",
+ "dependencies": {
+ "call-bind-apply-helpers": "^1.0.1",
+ "es-errors": "^1.3.0",
+ "gopd": "^1.2.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-define-property": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
+ "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-errors": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-object-atoms": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
+ "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-set-tostringtag": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
+ "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.6",
+ "has-tostringtag": "^1.0.2",
+ "hasown": "^2.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/ev-emitter": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ev-emitter/-/ev-emitter-1.1.1.tgz",
"integrity": "sha512-ipiDYhdQSCZ4hSbX4rMW+XzNKMD1prg/sTvoVmSLkuQ1MVlwjJQQA+sW8tMYR3BLUr9KjodFV4pvzunvRhd33Q==",
"license": "MIT"
},
+ "node_modules/exenv": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz",
+ "integrity": "sha512-Z+ktTxTwv9ILfgKCk32OX3n/doe+OcLTRtqK9pcL+JsP3J1/VW8Uvl4ZjLlKqeW4rzK4oesDOGMEMRIZqtP4Iw==",
+ "license": "BSD-3-Clause"
+ },
"node_modules/fill-range": {
"version": "7.1.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
@@ -657,6 +776,88 @@
"desandro-matches-selector": "^2.0.0"
}
},
+ "node_modules/follow-redirects": {
+ "version": "1.15.11",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz",
+ "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/RubenVerborgh"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=4.0"
+ },
+ "peerDependenciesMeta": {
+ "debug": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/form-data": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz",
+ "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==",
+ "license": "MIT",
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "es-set-tostringtag": "^2.1.0",
+ "hasown": "^2.0.2",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/get-intrinsic": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
+ "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
+ "license": "MIT",
+ "dependencies": {
+ "call-bind-apply-helpers": "^1.0.2",
+ "es-define-property": "^1.0.1",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.1.1",
+ "function-bind": "^1.1.2",
+ "get-proto": "^1.0.1",
+ "gopd": "^1.2.0",
+ "has-symbols": "^1.1.0",
+ "hasown": "^2.0.2",
+ "math-intrinsics": "^1.1.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/get-proto": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
+ "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
+ "license": "MIT",
+ "dependencies": {
+ "dunder-proto": "^1.0.1",
+ "es-object-atoms": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/get-size": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/get-size/-/get-size-2.0.3.tgz",
@@ -669,12 +870,72 @@
"integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==",
"license": "BSD-2-Clause"
},
+ "node_modules/gopd": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
+ "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/graceful-fs": {
"version": "4.2.11",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
"integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
"license": "ISC"
},
+ "node_modules/has-symbols": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
+ "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-tostringtag": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
+ "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
+ "license": "MIT",
+ "dependencies": {
+ "has-symbols": "^1.0.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/hasown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "license": "MIT",
+ "dependencies": {
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/hoist-non-react-statics": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
+ "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "react-is": "^16.7.0"
+ }
+ },
"node_modules/immutable": {
"version": "5.1.3",
"resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.3.tgz",
@@ -755,6 +1016,15 @@
"outlayer": "^2.1.0"
}
},
+ "node_modules/math-intrinsics": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
+ "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/micromatch": {
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
@@ -769,6 +1039,27 @@
"node": ">=8.6"
}
},
+ "node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "license": "MIT",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
"node_modules/nanoid": {
"version": "3.3.11",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
@@ -915,6 +1206,12 @@
"react-is": "^16.13.1"
}
},
+ "node_modules/proxy-from-env": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
+ "license": "MIT"
+ },
"node_modules/react": {
"version": "18.2.0",
"resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz",
@@ -927,6 +1224,19 @@
"node": ">=0.10.0"
}
},
+ "node_modules/react-async-script": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/react-async-script/-/react-async-script-1.2.0.tgz",
+ "integrity": "sha512-bCpkbm9JiAuMGhkqoAiC0lLkb40DJ0HOEJIku+9JDjxX3Rcs+ztEOG13wbrOskt3n2DTrjshhaQ/iay+SnGg5Q==",
+ "license": "MIT",
+ "dependencies": {
+ "hoist-non-react-statics": "^3.3.0",
+ "prop-types": "^15.5.0"
+ },
+ "peerDependencies": {
+ "react": ">=16.4.1"
+ }
+ },
"node_modules/react-curved-text": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/react-curved-text/-/react-curved-text-2.0.2.tgz",
@@ -953,12 +1263,62 @@
"react": "^18.2.0"
}
},
+ "node_modules/react-google-recaptcha": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/react-google-recaptcha/-/react-google-recaptcha-3.1.0.tgz",
+ "integrity": "sha512-cYW2/DWas8nEKZGD7SCu9BSuVz8iOcOLHChHyi7upUuVhkpkhYG/6N3KDiTQ3XAiZ2UAZkfvYKMfAHOzBOcGEg==",
+ "license": "MIT",
+ "dependencies": {
+ "prop-types": "^15.5.0",
+ "react-async-script": "^1.2.0"
+ },
+ "peerDependencies": {
+ "react": ">=16.4.1"
+ }
+ },
+ "node_modules/react-image-lightbox": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/react-image-lightbox/-/react-image-lightbox-5.1.4.tgz",
+ "integrity": "sha512-kTiAODz091bgT7SlWNHab0LSMZAPJtlNWDGKv7pLlLY1krmf7FuG1zxE0wyPpeA8gPdwfr3cu6sPwZRqWsc3Eg==",
+ "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.",
+ "license": "MIT",
+ "dependencies": {
+ "prop-types": "^15.7.2",
+ "react-modal": "^3.11.1"
+ },
+ "peerDependencies": {
+ "react": "16.x || 17.x",
+ "react-dom": "16.x || 17.x"
+ }
+ },
"node_modules/react-is": {
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
"license": "MIT"
},
+ "node_modules/react-lifecycles-compat": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
+ "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==",
+ "license": "MIT"
+ },
+ "node_modules/react-modal": {
+ "version": "3.16.3",
+ "resolved": "https://registry.npmjs.org/react-modal/-/react-modal-3.16.3.tgz",
+ "integrity": "sha512-yCYRJB5YkeQDQlTt17WGAgFJ7jr2QYcWa1SHqZ3PluDmnKJ/7+tVU+E6uKyZ0nODaeEj+xCpK4LcSnKXLMC0Nw==",
+ "license": "MIT",
+ "dependencies": {
+ "exenv": "^1.2.0",
+ "prop-types": "^15.7.2",
+ "react-lifecycles-compat": "^3.0.0",
+ "warning": "^4.0.3"
+ },
+ "peerDependencies": {
+ "react": "^0.14.0 || ^15.0.0 || ^16 || ^17 || ^18 || ^19",
+ "react-dom": "^0.14.0 || ^15.0.0 || ^16 || ^17 || ^18 || ^19"
+ }
+ },
"node_modules/react-modal-video": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/react-modal-video/-/react-modal-video-2.0.2.tgz",
@@ -1143,6 +1503,15 @@
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
"license": "0BSD"
},
+ "node_modules/warning": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz",
+ "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==",
+ "license": "MIT",
+ "dependencies": {
+ "loose-envify": "^1.0.0"
+ }
+ },
"node_modules/watchpack": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz",
diff --git a/package.json b/package.json
index 7bfaec1..faa4e1f 100644
--- a/package.json
+++ b/package.json
@@ -11,11 +11,14 @@
"sitemap": "node scripts/generate-sitemap.js"
},
"dependencies": {
+ "axios": "^1.13.2",
"isotope-layout": "^3.0.6",
"next": "13.4.19",
"react": "18.2.0",
"react-curved-text": "^2.0.2",
"react-dom": "18.2.0",
+ "react-google-recaptcha": "^3.1.0",
+ "react-image-lightbox": "^5.1.4",
"react-modal-video": "^2.0.1",
"sass": "^1.66.1",
"sitemap": "^8.0.0",
diff --git a/public/assets/css/global.css b/public/assets/css/global.css
index 5e4a00c..1f73d11 100644
--- a/public/assets/css/global.css
+++ b/public/assets/css/global.css
@@ -454,7 +454,7 @@ img{
overflow:hidden;
overflow: hidden;
border-radius: 50px;
- background-color:#5dca89;
+ background-color:#cf2d1f;
padding:7px 35px 6px 7px;
text-transform: capitalize;
font-family: var(--poppins);
@@ -484,7 +484,7 @@ img{
.btn-style-four:hover{
color: #ffffff;
- background-color:#cf2d1f ;
+ background-color:#ed7129 ;
}
/* Social Icon One */
diff --git a/public/assets/css/responsive.css b/public/assets/css/responsive.css
index d82b170..5bb50b7 100644
--- a/public/assets/css/responsive.css
+++ b/public/assets/css/responsive.css
@@ -1158,9 +1158,9 @@
padding: 50px 0px;
}
- .gallery-section-two {
+ /* .gallery-section-two {
padding: 0px 0px;
- }
+ } */
.banner-section-two .content-column h1 {
font-size: 34px;
diff --git a/public/assets/css/style.css b/public/assets/css/style.css
index be1f8d3..7417003 100644
--- a/public/assets/css/style.css
+++ b/public/assets/css/style.css
@@ -2351,7 +2351,7 @@
position: relative;
padding-bottom: 0px;
background-color: #050505;
- /* background-color: #e0766d; */
+ /* background-color: #e0766d; */
}
@@ -2867,7 +2867,7 @@
.history-section {
position: relative;
- padding: 80px 0px 80px;
+ padding: 100px 0px 0px;
}
.history-section .pattern-layer {
@@ -3006,7 +3006,7 @@
.contact-section {
position: relative;
- padding: 80px 0px 60px;
+ padding: 100px 0px 100px;
}
.contact-section .title-column {
@@ -3387,7 +3387,7 @@
padding: 2px 18px;
border-radius: 8px;
display: inline-block;
- background-color: #CF2D10 ;
+ background-color: #CF2D10;
text-transform: uppercase;
}
@@ -4902,7 +4902,7 @@
.history-section-two {
position: relative;
- padding: 100px 0px 150px;
+ padding: 100px 0px 100px;
}
.history-section-two .image-column {
@@ -4941,7 +4941,7 @@
.history-section-two .content-column .inner-column {
position: relative;
padding-left: 20px;
- padding-top: 130px;
+ padding-top: 100px;
}
.history-section-two .content-column .sec-title {
@@ -5468,7 +5468,7 @@
}
.spec {
- color: #cf2d1f;
+ color: #cf2d1f;
}
/***
@@ -5715,7 +5715,7 @@
.sidebar-page-container {
position: relative;
overflow: hidden;
- padding: 110px 0px 80px;
+ padding: 100px 0px 100px;
}
.sidebar-page-container .section-text {
@@ -5733,7 +5733,7 @@
.sidebar-page-container .content-side,
.sidebar-page-container .sidebar-side {
- margin-bottom: 40px;
+ margin-bottom: 0px;
}
.sidebar-page-container .icon-layer-one {
@@ -7041,7 +7041,6 @@
.contact-map-section {
position: relative;
padding-top: 0px;
- padding-bottom: 100px;
}
.contact-map-section iframe {
@@ -7157,6 +7156,7 @@
.testimonial-section-two {
position: relative;
padding: 100px 0px 100px;
+ padding: 100px 0px 100px;
}
.testimonial-section-two .inner-container {
@@ -7194,7 +7194,7 @@
.testimonial-block-two .inner-box .rating {
position: relative;
text-align: center;
- color: #ba9232;
+ color: #ffdf00;
}
.testimonial-block-two .inner-box .text {
@@ -7504,4 +7504,45 @@
opacity: 0.5;
-webkit-filter: grayscale(100%);
filter: grayscale(100%);
-}
\ No newline at end of file
+}
+
+.sec-pad {
+ padding: 100px 0px;
+}
+
+.blog-title-link:hover {
+ color: #ed7129 !important;
+ transition: color 0.3s ease;
+}
+
+@media (max-width: 479px) {
+ .testimonial-section-two {
+ padding: 50px 0px 50px;
+ }
+
+ .sidebar-page-container {
+ padding: 50px 0px 50px;
+ }
+
+ .history-section-two {
+ padding: 50px 0px 100px;
+ }
+
+ .fluid-section-one .content-column .inner-column {
+ padding: 50px 20px;
+ }
+
+ .sec-pad {
+ padding: 50px 0px;
+ }
+
+ .contact-section {
+ padding: 50px 0px;
+ }
+}
+@media (max-width: 1023px) {
+ .nav-outer.clearfix .navbar-collapse {
+ justify-content: center !important;
+ display: flex !important;
+ }
+}
diff --git a/public/assets/images/about/about-banner.webp b/public/assets/images/about/about-banner.webp
new file mode 100644
index 0000000..6a78903
Binary files /dev/null and b/public/assets/images/about/about-banner.webp differ
diff --git a/public/assets/images/about/about-us-element.webp b/public/assets/images/about/about-us-element.webp
new file mode 100644
index 0000000..bfeec58
Binary files /dev/null and b/public/assets/images/about/about-us-element.webp differ
diff --git a/public/assets/images/about/about-us.webp b/public/assets/images/about/about-us.webp
new file mode 100644
index 0000000..7bd5503
Binary files /dev/null and b/public/assets/images/about/about-us.webp differ
diff --git a/public/assets/images/about/card-1.webp b/public/assets/images/about/card-1.webp
new file mode 100644
index 0000000..460367a
Binary files /dev/null and b/public/assets/images/about/card-1.webp differ
diff --git a/public/assets/images/about/card-2.webp b/public/assets/images/about/card-2.webp
new file mode 100644
index 0000000..9fb678b
Binary files /dev/null and b/public/assets/images/about/card-2.webp differ
diff --git a/public/assets/images/about/card-3.webp b/public/assets/images/about/card-3.webp
new file mode 100644
index 0000000..fa55785
Binary files /dev/null and b/public/assets/images/about/card-3.webp differ
diff --git a/public/assets/images/about/fresh-flavour-left-bottom-element.webp b/public/assets/images/about/fresh-flavour-left-bottom-element.webp
new file mode 100644
index 0000000..ccb335c
Binary files /dev/null and b/public/assets/images/about/fresh-flavour-left-bottom-element.webp differ
diff --git a/public/assets/images/about/fresh-flavour-right.webp b/public/assets/images/about/fresh-flavour-right.webp
new file mode 100644
index 0000000..10ce182
Binary files /dev/null and b/public/assets/images/about/fresh-flavour-right.webp differ
diff --git a/public/assets/images/about/review-right-bottom-element.webp b/public/assets/images/about/review-right-bottom-element.webp
new file mode 100644
index 0000000..07e69bc
Binary files /dev/null and b/public/assets/images/about/review-right-bottom-element.webp differ
diff --git a/public/assets/images/home/review-right-bottom-element-home.webp b/public/assets/images/home/review-right-bottom-element-home.webp
new file mode 100644
index 0000000..6a70593
Binary files /dev/null and b/public/assets/images/home/review-right-bottom-element-home.webp differ
diff --git a/public/assets/images/inner-banner/blog-banner.webp b/public/assets/images/inner-banner/blog-banner.webp
new file mode 100644
index 0000000..b81dbb3
Binary files /dev/null and b/public/assets/images/inner-banner/blog-banner.webp differ
diff --git a/public/assets/images/inner-banner/contact-us-banner.webp b/public/assets/images/inner-banner/contact-us-banner.webp
new file mode 100644
index 0000000..fb56a6e
Binary files /dev/null and b/public/assets/images/inner-banner/contact-us-banner.webp differ
diff --git a/public/assets/images/inner-banner/gallery-banner.webp b/public/assets/images/inner-banner/gallery-banner.webp
new file mode 100644
index 0000000..e7a1c47
Binary files /dev/null and b/public/assets/images/inner-banner/gallery-banner.webp differ
diff --git a/public/assets/images/inner-banner/menu-banner.webp b/public/assets/images/inner-banner/menu-banner.webp
new file mode 100644
index 0000000..4ade38e
Binary files /dev/null and b/public/assets/images/inner-banner/menu-banner.webp differ
diff --git a/utils/constant.utils.js b/utils/constant.utils.js
index 5c3c0a6..e310007 100644
--- a/utils/constant.utils.js
+++ b/utils/constant.utils.js
@@ -109,3 +109,120 @@ export const menuData = {
{ name: 'Filter Coffee', img: '/assets/images/menu/hot-drinks/filter-coffee.webp', desc: '', price: 3.49 },
],
};
+
+
+const Blogs = [
+ {
+ id: 1,
+ slug: "top-street-food-spots-in-waterloo",
+ title: "Top Street Food Spots in Waterloo You Must Try",
+ category: "Guides",
+ date: "NOV 8, 2025",
+ comments: "3 Comments",
+ para:"From sizzling hot dogs to gourmet tacos, Waterloo's street food scene is diverse and dynamic.",
+ imageDetail: "/assets/images/resource/news-4.jpg",
+ banner: "/assets/images/inner-banner/blog-banner.webp",
+ detailImage: "/assets/images/resource/news-4.jpg",
+ content: `
+
+
Waterloo Street Food Scene
+
+ From sizzling hot dogs to gourmet tacos, Waterloo's street food scene is diverse and dynamic. Local vendors bring creativity to every dish, offering unique flavors that can't be found in regular restaurants.
+ Markets, food trucks, and pop-up stalls provide convenient and affordable ways to sample the city’s best street food. Be sure to explore different neighborhoods to catch the full spectrum of tastes.
+
+
+ “Street food in Waterloo is more than just a snack; it’s a culinary adventure on every corner.”
+
+
+
+
Must-Try Dishes
+
+
+ Loaded fries with local sauces.
+ Gourmet tacos with fresh ingredients.
+ Artisan donuts and sweet treats.
+ Ethnic street food from around the globe.
+
+ `,
+ },
+ {
+ id: 2,
+ slug: "best-vegan-street-food-in-cambridge",
+ title: "Best Vegan Street Food in Cambridge You Can’t Miss",
+ disc: "Cambridge offers a surprising variety of vegan street food. From hearty wraps to flavorful desserts, plant-based options are now widely available. \n\nThese dishes are perfect for both vegans and food enthusiasts looking to explore healthy, ethical, and delicious street food.",
+ category: "Vegan & GF",
+ date: "NOV 5, 2025",
+ comments: "1 Comment",
+ para:"From sizzling hot dogs to gourmet tacos, Waterloo's street food scene is diverse and dynamic.",
+ alt: "Vegan street food wraps and tacos.",
+ imageDetail: "/assets/images/resource/news-4.jpg",
+ banner: "/assets/images/inner-banner/blog-banner.webp",
+ detailImage: "/assets/images/resource/news-4.jpg",
+ content: `
+
+
Vegan Street Food in Cambridge
+
+
+
+
Why Cambridge Vegan Street Food Rocks
+
+ Plant-based street food is no longer an afterthought in Cambridge. Vendors are crafting innovative vegan dishes that appeal to everyone, whether it’s a colorful Buddha bowl or a loaded vegan burger.
+ Using fresh, locally sourced ingredients, vegan street food here is as flavorful and satisfying as its non-vegan counterparts. From taste to presentation, it’s a feast for the senses.
+
+
+ “Vegan street food is proof that plant-based can be indulgent, creative, and full of flavor at the same time.”
+
+
+
+
Top Vegan Street Eats
+
+
+ Vegan tacos with cashew cheese.
+ Loaded veggie fries with homemade sauces.
+ Plant-based sliders with creative toppings.
+ Sweet treats like vegan ice cream sandwiches.
+
+ `,
+ },
+ {
+ id: 3,
+ slug: "gluten-free-street-food-near-waterloo",
+ title: "Gluten-Free Street Food Near Waterloo That Will Wow You",
+ disc: "Gluten-free street food can be exciting and delicious. Vendors are offering creative GF alternatives to classic favorites. \n\nFrom savory snacks to sweet indulgences, you can enjoy a safe and flavorful experience without missing out on street food fun.",
+ category: "Vegan & GF",
+ date: "NOV 2, 2025",
+ comments: "2 Comments",
+ para:"From sizzling hot dogs to gourmet tacos, Waterloo's street food scene is diverse and dynamic.",
+ alt: "Gluten-free street food dishes on a food truck.",
+ imageDetail: "/assets/images/resource/news-4.jpg",
+ banner: "/assets/images/inner-banner/blog-banner.webp",
+ detailImage: "/assets/images/resource/news-4.jpg",
+ content: `
+
+
Gluten-Free Street Food in Waterloo
+
+
+
+
GF Options You’ll Love
+
+ Gluten-free street food is growing in popularity in Waterloo. Vendors are ensuring that classic street eats like tacos, fries, and pastries have GF versions that are safe and delicious.
+ Attention to ingredient sourcing and preparation ensures that every dish is flavorful, safe, and satisfying for gluten-sensitive diners.
+
+
+ “Going gluten-free doesn’t mean missing out — Waterloo street food has you covered with safe, tasty alternatives.”
+
+
+
+
Must-Try GF Street Eats
+
+
+ GF loaded fries with savory toppings.
+ Gluten-free tacos and wraps.
+ Sweet GF pastries and donuts.
+ Fresh, local gluten-free snacks from markets.
+
+ `,
+ }
+];
+
+export default Blogs;