Hole website corrections updated
Some checks failed
Build and Deploy Build Output / build (push) Has been cancelled

This commit is contained in:
akashluca-l 2025-07-19 17:48:03 +05:30
parent 272035e69a
commit 50bca1a5de
20 changed files with 976 additions and 564 deletions

View File

@ -33,7 +33,7 @@ export default function BlogPage({ params }) {
data-aos-duration={1500}
data-aos-offset={50}
>
<img src={blog.image} alt="Blog Standard" />
<img src={blog.imageLarge} alt="Blog Standard" />
</div>
<div
className="content"

View File

@ -1,213 +1,191 @@
import PageBanner from "@/components/PageBanner";
import WellFoodLayout from "@/layout/WellFoodLayout";
'use client';
export const metadata = {
title: "Contact Shivas Dosa | Indian Restaurant Near Me Ontario",
description:
"Contact Shivas Dosa for the best Indian restaurant near me in Ontario. Order online or visit us for Indian buffet near me.",
};
const page = () => {
import React, { useState, useEffect } from 'react';
import WellFoodLayout from "@/layout/WellFoodLayout";
import PageBanner from "@/components/PageBanner";
import ReCAPTCHA from 'react-google-recaptcha';
import axios from 'axios';
export default function ContactPage() {
const [formData, setFormData] = useState({
name: '',
email: '',
phone: '',
subject: '',
message: '',
});
const [captchaToken, setCaptchaToken] = useState(null);
const [formErrors, setFormErrors] = useState({});
const [alert, setAlert] = useState({ show: false, type: '', message: '' });
const handleChange = (e) => {
const { name, value } = e.target;
setFormData(prev => ({ ...prev, [name]: value }));
};
const handleCaptchaChange = (token) => {
setCaptchaToken(token);
};
const handleSubmit = async (e) => {
e.preventDefault();
const errors = {};
if (!formData.name.trim()) errors.name = 'Name is required.';
if (!formData.email.trim()) errors.email = 'Email is required.';
if (!formData.phone.trim()) errors.phone = 'Phone is required.';
if (!formData.subject.trim()) errors.subject = 'Subject is required.';
if (!formData.message.trim()) errors.message = 'Message is required.';
if (!captchaToken) errors.captcha = 'Please verify the CAPTCHA.';
setFormErrors(errors);
if (Object.keys(errors).length > 0) return;
const payload = {
...formData,
to: 'info@shivasdosa.com',
senderName: 'Shivas Dosa Contact Form',
recaptchaToken: captchaToken,
};
try {
const res = await axios.post('https://mailserver.metatronnest.com/send', payload, {
headers: { 'Content-Type': 'application/json' },
});
setAlert({ show: true, type: 'success', message: res.data.message || 'Message sent successfully!' });
setFormData({ name: '', email: '', phone: '', subject: '', message: '' });
setCaptchaToken(null);
} catch (error) {
console.error('API Error:', error);
setAlert({ show: true, type: 'danger', message: 'Something went wrong. Try again later.' });
}
};
useEffect(() => {
if (alert.show) {
const timer = setTimeout(() => setAlert({ show: false, type: '', message: '' }), 5000);
return () => clearTimeout(timer);
}
}, [alert]);
return (
<WellFoodLayout>
<PageBanner bgImg="/assets/images/inner-banner/6.webp" pageTitle={"Contact us"} />
<section
className="contact-page-area pt-130 rpt-100 pb-115 rpb-85 rel z-1"
>
<PageBanner bgImg="/assets/images/inner-banner/6.webp" pageTitle="Contact us" />
<section className="contact-page-area pt-130 rpt-100 pb-115 rpb-85 rel z-1">
<div className="container">
<div className="row mb-130 rmb-100 align-items-center">
<div className="col-lg-5">
<div
className="contact-page-content rmb-55"
data-aos="fade-left"
data-aos-duration={1500}
data-aos-offset={50}
>
<div className="contact-page-content rmb-55" data-aos="fade-left" data-aos-duration={1500}>
<div className="section-title mb-35">
<span className="sub-title mb-10">contact us</span>
<h2 >Get In Touch</h2>
<span className="sub-title mb-10">Contact Us</span>
<h2>Get In Touch</h2>
</div>
<div className="contact-info-wrap" >
<div className="contact-info-wrap">
<div className="contact-info-item bgc-black">
<div className="icon">
<i className="fal fa-map-marker-alt" />
</div>
<div className="icon"><i className="fal fa-map-marker-alt" /></div>
<div className="content">
<span className="title" style={{ fontWeight: "bold" }}>Location:</span>
<p className="text-white">
1187 Fischer Hallman Rd, Unit 430, Kitchner, Ontario N2E 4H9.
</p>
<span className="title fw-bold">Location:</span>
<p className="text-white">1187 Fischer Hallman Rd, Unit 430, Kitchner, Ontario N2E 4H9.</p>
</div>
</div>
<div className="contact-info-item bgc-black">
<div className="icon">
<i className="fal fa-envelope-open" />
</div>
<div className="icon"><i className="fal fa-envelope-open" /></div>
<div className="content">
<span className="title" style={{ fontWeight: "bold" }}>Email Address</span>
<p className="text-white">
<a href="mailto:info@shivasdosa.com">
info@shivasdosa.com
</a>
{/* <br />{" "}
<a href="mailto:finslaninfo.com">finslaninfo.com</a> */}
</p>
<span className="title fw-bold">Email Address</span>
<p className="text-white"><a href="mailto:info@shivasdosa.com">info@shivasdosa.com</a></p>
</div>
</div>
<div className="contact-info-item bgc-black">
<div className="icon">
<i className="fal fa-phone" />
</div>
<div className="icon"><i className="fal fa-phone" /></div>
<div className="content">
<span className="title" style={{ fontWeight: "bold" }}>Phone No</span>
<p className="text-white">
<a href="callto:+5197441444">(519) 744-1444</a>
{/* <br />{" "}
<a href="callto:+00045685999">+000 (456) 859 99</a> */}
</p>
<span className="title fw-bold">Phone No</span>
<p className="text-white"><a href="tel:+5197441444">(519) 744-1444</a></p>
</div>
</div>
</div>
</div>
</div>
<div
className="col-lg-7"
data-aos="fade-right"
data-aos-duration={1500}
data-aos-offset={50}
>
<div className="col-lg-7" data-aos="fade-right" data-aos-duration={1500}>
<div className="contact-page-form bgc-black">
<h3>Send Us Message</h3>
<p style={{ color: "#fff" }}>
Comments, Questions or any feedback will be pleased to hear from you. Please leave us the message in this contact form or Call us.
</p>
<form
id="contactForm"
className="contactForm"
name="contactForm"
action="assets/php/form-process.php"
method="post"
>
<div className="row mt-30 gap-20">
<div className="col-sm-6">
<p className="text-white">Comments, Questions or any feedback? Leave us a message or call us.</p>
{alert.show && (
<div className={`alert alert-${alert.type} mt-3`}>{alert.message}</div>
)}
<form onSubmit={handleSubmit} className="row mt-30 gap-20">
{['name', 'email', 'phone', 'subject'].map((field, i) => (
<div className="col-sm-6" key={i}>
<div className="form-group">
<input
type="text"
id="name"
name="name"
type={field === 'email' ? 'email' : 'text'}
name={field}
className="form-control"
defaultValue=""
placeholder="Full Name"
required=""
data-error="Please enter your Name"
placeholder={field.charAt(0).toUpperCase() + field.slice(1)}
value={formData[field]}
onChange={handleChange}
/>
<div className="help-block with-errors" />
{formErrors[field] && (
<div className="text-danger">{formErrors[field]}</div>
)}
</div>
</div>
<div className="col-sm-6">
<div className="form-group">
<input
type="email"
id="email"
name="email"
className="form-control"
defaultValue=""
placeholder="Email Address"
required=""
data-error="Please enter your Email"
/>
<div className="help-block with-errors" />
</div>
</div>
<div className="col-sm-6">
<div className="form-group">
<input
type="text"
id="phone_number"
name="phone_number"
className="form-control"
defaultValue=""
placeholder="Phone"
required=""
data-error="Please enter your Phone No"
/>
<div className="help-block with-errors" />
</div>
</div>
<div className="col-sm-6">
<div className="form-group">
<input
type="text"
id="subject"
name="subject"
className="form-control"
defaultValue=""
placeholder="Subject"
required=""
data-error="Please enter your Subject"
/>
<div className="help-block with-errors" />
</div>
</div>
<div className="col-sm-12">
<div className="form-group">
<textarea
name="message"
id="message"
className="form-control"
rows={4}
placeholder="Write Message"
required=""
data-error="Please enter your Message"
defaultValue={""}
/>
<div className="help-block with-errors" />
</div>
</div>
<div className="col-sm-12">
<div className="form-group mb-0">
<button type="submit" className="theme-btn">
Send Message Us{" "}
<i className="far fa-arrow-alt-right" />
</button>
<div id="msgSubmit" className="hidden" />
</div>
))}
<div className="col-sm-12">
<div className="form-group">
<textarea
name="message"
className="form-control"
rows={4}
placeholder="Write Message"
value={formData.message}
onChange={handleChange}
/>
{formErrors.message && (
<div className="text-danger">{formErrors.message}</div>
)}
</div>
</div>
<div className="col-sm-12 mt-2">
<ReCAPTCHA
sitekey="6Ldtl20rAAAAAONa5g1txlhj8XqhLIX5SaKgFATk"
onChange={handleCaptchaChange}
/>
{formErrors.captcha && (
<div className="text-danger mt-2">{formErrors.captcha}</div>
)}
</div>
<div className="col-sm-12">
<button type="submit" className="theme-btn mt-3">
Send Message <i className="far fa-arrow-alt-right" />
</button>
</div>
</form>
</div>
</div>
</div>
<div
className="our-location"
data-aos="fade-up"
data-aos-duration={1500}
data-aos-offset={50}
>
{/* <iframe
src="https://www.google.com/maps/embed?pb=!1m10!1m8!1m3!1d96777.16150026117!2d-74.00840582560909!3d40.71171357405996!3m2!1i1024!2i768!4f13.1!5e0!3m2!1sen!2sbd!4v1706508986625!5m2!1sen!2sbd"
style={{ border: 0, width: "100%" }}
<div className="our-location mt-5" data-aos="fade-up" data-aos-duration={1500}>
<iframe
src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d2898.628851016394!2d-80.50359972490557!3d43.405686368405746!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x882bf579045db13b%3A0x258e9b3ccf2549d4!2sShivas%20Dosa%20Restaurant!5e0!3m2!1sen!2sin!4v1747979520603!5m2!1sen!2sin"
width="100%"
height="400"
style={{ border: 0 }}
allowFullScreen=""
loading="lazy"
referrerPolicy="no-referrer-when-downgrade"
/> */}
<iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d2898.628851016394!2d-80.50359972490557!3d43.405686368405746!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x882bf579045db13b%3A0x258e9b3ccf2549d4!2sShivas%20Dosa%20Restaurant!5e0!3m2!1sen!2sin!4v1747979520603!5m2!1sen!2sin"
style={{ border: 0, width: "100%" }}
allowFullScreen=""
loading="lazy"
referrerPolicy="no-referrer-when-downgrade" />
/>
</div>
</div>
<div className="bg-lines">
<span />
<span />
<span />
<span />
</div>
</section>
</WellFoodLayout>
);
};
export default page;
}

View File

@ -75,3 +75,59 @@
.tab-style-one .nav-link:hover {
color: var(--heading-color);
}
.about-shape-img {
opacity: 1;
}
@media (max-width: 768px) {
.about-shape-img {
opacity: 0.3;
}
}
@media (max-width: 768px) {
.shape.one img,
.shape.two img {
opacity: 0.2;
}
}
@media (max-width: 1440px) {
.shape.one img,
.shape.two img {
opacity: 0.2;
}
}
@media (max-width: 1024px) {
.section-title.mb-50 {
margin-bottom: 0 !important;
}
}
@media (max-width: 1024px) {
.testimonials-shapes .shape.one img,
.testimonials-shapes .shape.two img {
opacity: 0.3;
}
}
.custom-responsive-order {
display: flex;
flex-wrap: wrap;
}
@media (max-width: 768px) {
.custom-responsive-order {
flex-direction: column-reverse !important;
}
.custom-responsive-order > .col-lg-6 {
width: 100% !important;
}
}

View File

@ -18,109 +18,85 @@ const page = () => {
{/* Hero Area End */}
{/* About Us Area start */}
<section className="about-us-area pt-130 rpt-85 pb-100 rpb-70 rel z-1">
<div className="container">
<div className="row align-items-center">
<div className="col-lg-6">
<div
className="about-image-part mb-30 rmb-55"
data-aos="fade-right"
data-aos-duration={1500}
>
<div className="food-review">
<div className="author">
<img
src="/assets/images/home/about.webp"
alt="Author" loading="lazy"
/>
</div>
<span className="text">Very good food</span>
{/* <div className="ratting">
<i className="fas fa-star" />
<i className="fas fa-star" />
</div> */}
</div>
<img src="/assets/images/home/about.webp" alt="About" loading="lazy" />
<div
className="quality-food"
style={{
backgroundImage: "url(/assets/images/shapes/about-star.webp)",
}}
>
<span className="for-border" />
<span className="text">
quality <br />
food
</span>
</div>
</div>
</div>
<div className="col-lg-6">
<div
className="about-us-content"
data-aos="fade-left"
data-aos-duration={1500}
>
<div className="section-title mb-25">
<span className="sub-title mb-5">Introduction</span>
<h2>Our Promise and Moto</h2>
</div>
<p>
We are first generation entrepreneurs and we are establishing this restaurant with the passion and wealth of experience in recreating the delicious foods from our ancestral region in Tamil Nadu.
</p>
<p>
Our Promise and motto is and shall always be to serve fresh and Authentic Quality Food at Reasonable Prices. We shall always be driven by the privilege of what we serve on your plate rather than anything else.
</p>
<div className="about-btn-author pt-5 mb-45">
<Link href="/about" className="theme-btn style-two">
learn more us <i className="far fa-arrow-alt-right" />
</Link>
{/* <Link href="about" className="read-more">
Explore popular menu{" "}
<i className="far fa-arrow-alt-right" />
</Link> */}
</div>
{/* <div className="row">
<div className="col-sm-6">
<div className="service-item style-two">
<div className="icon">
<i className="flaticon-high-quality" />
</div>
<h5>
<Link href="menu-burger">Best Quality Food</Link>
</h5>
<p>
Our talented chefs craft each dish precision sourcing
</p>
</div>
</div>
<div className="col-sm-6">
<div className="service-item style-two">
<div className="icon">
<i className="flaticon-chef" />
</div>
<h5>
<Link href="menu-burger">Experience our Chefs</Link>
</h5>
<p>
Our talented chefs craft each dish precision sourcing
</p>
</div>
</div>
</div> */}
</div>
</div>
<section className="about-us-area pt-130 rpt-85 pb-100 rpb-70 rel z-1">
<div className="container">
<div className="row flex-column flex-lg-row align-items-center">
<div className="col-lg-6">
<div
className="about-us-content"
data-aos="fade-left"
data-aos-duration={1500}
>
<div className="section-title mb-25">
<span className="sub-title mb-5">Introduction</span>
<h2>Our Promise and Moto</h2>
</div>
<p>
We are first generation entrepreneurs and we are establishing this restaurant with the passion and wealth of experience in recreating the delicious foods from our ancestral region in Tamil Nadu.
</p>
<p>
Our Promise and motto is and shall always be to serve fresh and Authentic Quality Food at Reasonable Prices. We shall always be driven by the privilege of what we serve on your plate rather than anything else.
</p>
<div className="about-btn-author pt-5 mb-45">
<Link href="/about" className="theme-btn style-two">
learn more us <i className="far fa-arrow-alt-right" />
</Link>
</div>
</div>
<div className="about-shapes">
<div className="shape one">
<img src="/assets/images/home/about-element.webp" alt="Shape" loading="lazy" />
</div>
</div>
</section>
{/* About Us Area end */}
</div>
<section className="offer-area rpt-100 pb-100 rpb-120 rel z-1">
<div className="col-lg-6">
<div
className="about-image-part mb-30 rmb-55"
data-aos="fade-right"
data-aos-duration={1500}
>
<div className="food-review">
<div className="author">
<img
src="/assets/images/home/about.webp"
alt="Author"
loading="lazy"
/>
</div>
<span className="text">Very good food</span>
</div>
<img
src="/assets/images/home/about.webp"
alt="About"
loading="lazy"
/>
<div
className="quality-food"
style={{
backgroundImage: "url(/assets/images/shapes/about-star.webp)",
}}
>
<span className="for-border" />
<span className="text">
quality <br />
food
</span>
</div>
</div>
</div>
</div>
</div>
<div className="about-shapes">
<div className="shape one">
<img
src="/assets/images/home/about-element.webp"
alt="Shape"
loading="lazy"
className="about-shape-img"
/>
</div>
</div>
</section>
<section className="offer-area pb-100 rpb-120 rel z-1">
<div className="category-banner-area">
<div className="container">
<div className="row">

View File

@ -83,39 +83,44 @@ const AboutUs = ({
product = "Dosa",
}) => {
return (
<section className="about-us-area bgc-black pt-60 pb-150 rpb-60 rel z-1" style={{
backgroundImage: "url(/assets/images/background/offer-dot-bg.png)",
}}>
<div className="container">
<div className="row align-items-end">
<div className="col-lg-6">
<div
className="about-image-part style-two mb-30 rmb-55"
data-aos="fade-left"
data-aos-duration={1500}
data-aos-offset={50}
>
<img src={productImage} alt={`About ${product}`} loading="lazy" />
<div
className="quality-food"
style={{
backgroundImage:
"url(/assets/images/shapes/about-star-yellow.png)",
}}
>
<span className="for-border" />
<span className="text">
quality <br />
food
</span>
</div>
</div>
<section
className="about-us-area bgc-black pt-60 pb-150 rpb-60 rel z-1"
style={{
backgroundImage: "url(/assets/images/background/offer-dot-bg.png)",
}}
>
<div className="container">
{/* Add a custom class for flexbox layout */}
<div className="about-row row align-items-end custom-responsive-order">
<div className="col-lg-6 image-part">
<div
className="about-image-part style-two mb-30 rmb-55"
data-aos="fade-left"
data-aos-duration={1500}
data-aos-offset={50}
>
<img src={productImage} alt={`About ${product}`} loading="lazy" />
<div
className="quality-food"
style={{
backgroundImage:
"url(/assets/images/shapes/about-star-yellow.png)",
}}
>
<span className="for-border" />
<span className="text">
quality <br />
food
</span>
</div>
<AboutRight />
</div>
</div>
<span className="about-bg-text">{title}</span>
</section>
<AboutRight />
</div>
</div>
</section>
);
};
export default AboutUs;

View File

@ -1120,7 +1120,7 @@ const RestaurantMenu = ({ menus }) => {
];
return (
<section className="restaurant-menu-area pb-100 pt-100 rpb-70 rel z-1">
<section className="restaurant-menu-area pt-130 rpt-85 pb-100 rpb-70 rel z-1">
<div className="container container-1050">
<div className="row justify-content-center">
<div className="col-xl-8 col-lg-9">
@ -1142,7 +1142,7 @@ const RestaurantMenu = ({ menus }) => {
<Nav.Item as="li">
<Nav.Link as="button" className="nav-link" eventKey={menu.event}>
<div className=" d-flex align-items-center">
<img src={menu.icon} className={`me-2`} style={{width:"50%"}} loading="lazy" /> {/* margin-end to add space */}
<img src={menu.icon} className={`me-2`} style={{ width: "50%" }} loading="lazy" /> {/* margin-end to add space */}
<span>{menu.title}</span>
</div>
</Nav.Link>
@ -1193,12 +1193,13 @@ const RestaurantMenu = ({ menus }) => {
</div>
<div className="testimonials-shapes">
<div className="shape one">
<img style={{marginRight: "35px"}} src="/assets/images/shapes/left-vada.webp" alt="Shape" loading="lazy" />
<img style={{ marginRight: "35px" }} src="/assets/images/shapes/left-vada.webp" alt="Shape" loading="lazy" />
</div>
<div className="shape two">
<img style={{marginLeft: "35px"}} src="/assets/images/shapes/right-dosa.webp" alt="Shape" loading="lazy" />
<img style={{ marginLeft: "35px" }} src="/assets/images/shapes/right-dosa.webp" alt="Shape" loading="lazy" />
</div>
</div>
</section>
);
};

View File

@ -159,7 +159,7 @@ function TestimonialAbout() {
</div>
</div>
<div className="testimonials-shapes">
<div className="shape one">
<div className="shape one-1">
<img
src="/assets/images/about/fourth-section/bottom.webp"
alt="Shape" loading="lazy"

View File

@ -194,14 +194,14 @@ const DefaultFooter = () => {
>
<div className="footer-widget opening-hour">
<div className="footer-title">
<h5>opening hour</h5>
<h5>opening hours</h5>
</div>
<ul>
<li>
Sunday Thursday: <span>11:30am 9:00pm</span>
Sunday Thursday: <span>11:30am 9:30pm</span>
</li>
<li>
Friday, Saturday: <span>11:30am 9:30am</span>
Friday, Saturday: <span>11:30am 10:30pm</span>
</li>
</ul>
{/* <div className="any-question mt-20">
@ -386,7 +386,7 @@ const Footer2 = () => {
data-aos-offset={50}
>
<div className="footer-title">
<h5>opening hour</h5>
<h5>opening hours</h5>
</div>
<ul>
<li>
@ -496,7 +496,7 @@ const Footer3 = () => {
>
<div className="footer-widget opening-hour">
<div className="footer-title">
<h5>opening hour</h5>
<h5>opening hours</h5>
</div>
<ul>
<li>
@ -649,7 +649,7 @@ const Footer5 = () => {
data-aos-offset={50}
>
<div className="footer-title">
<h5>opening hour</h5>
<h5>opening hours</h5>
</div>
<ul>
<li>
@ -788,7 +788,7 @@ const Footer6 = () => {
<div className="col-xl-3 col-lg-4 col-sm-6">
<div className="footer-widget opening-hour">
<div className="footer-title">
<h5>opening hour</h5>
<h5>opening hours</h5>
</div>
<ul>
<li>

View File

@ -141,7 +141,7 @@ const MobileMenu = () => {
<div className="logo">
<Link href="/">
<img
src="assets/images/logos/logo.png"
src="/assets/images/logo.webp"
alt="Logo"
title="Logo"
/>
@ -530,7 +530,7 @@ const Header = () => {
<div className="mobile-logo">
<Link href="/">
<img
src="assets/images/logos/logo.png"
src="/assets/images/logo.webp"
alt="Logo"
title="Logo"
/>

316
package-lock.json generated
View File

@ -9,6 +9,7 @@
"version": "0.1.0",
"dependencies": {
"aos": "^2.3.4",
"axios": "^1.10.0",
"isotope-layout": "^3.0.6",
"next": "14.2.4",
"react": "^18",
@ -16,6 +17,7 @@
"react-circular-progressbar": "^2.1.0",
"react-countup": "^6.5.3",
"react-dom": "^18",
"react-google-recaptcha": "^3.1.0",
"react-nice-select": "^1.0.6",
"react-player": "^2.16.0",
"react-slick": "^0.30.2",
@ -297,6 +299,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.10.0",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.10.0.tgz",
"integrity": "sha512-/1xYAC4MP/HEG+3duIhFr4ZQXR4sQXOIe+o6sdqzeykGLx6Upp/1p8MHqhINOvGeP7xyNHe7tsiJByc4SSVUxw==",
"license": "MIT",
"dependencies": {
"follow-redirects": "^1.15.6",
"form-data": "^4.0.0",
"proxy-from-env": "^1.1.0"
}
},
"node_modules/busboy": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
@ -308,6 +327,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.30001718",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001718.tgz",
@ -346,6 +378,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/countup.js": {
"version": "2.8.2",
"resolved": "https://registry.npmjs.org/countup.js/-/countup.js-2.8.2.tgz",
@ -367,6 +411,15 @@
"node": ">=0.10.0"
}
},
"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/dequal": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
@ -392,12 +445,71 @@
"csstype": "^3.0.2"
}
},
"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/enquire.js": {
"version": "2.1.6",
"resolved": "https://registry.npmjs.org/enquire.js/-/enquire.js-2.1.6.tgz",
"integrity": "sha512-/KujNpO+PT63F7Hlpu4h3pE3TokKRHN26JYmQpPyjkRD/N57R7bPDNojMXdi7uveAKjYB7yQnartCxZnFWr0Xw==",
"license": "MIT"
},
"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",
@ -413,18 +525,160 @@
"desandro-matches-selector": "^2.0.0"
}
},
"node_modules/follow-redirects": {
"version": "1.15.9",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz",
"integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==",
"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",
"integrity": "sha512-lXNzT/h/dTjTxRbm9BXb+SGxxzkm97h/PCIKtlN/CBCxxmkkIVV21udumMS93MuVTDX583gqc94v3RjuHmI+2Q==",
"license": "MIT"
},
"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/invariant": {
"version": "2.2.4",
"resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
@ -502,12 +756,42 @@
"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/memoize-one": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz",
"integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==",
"license": "MIT"
},
"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",
@ -654,6 +938,12 @@
"react": ">=0.14.0"
}
},
"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.3.1",
"resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
@ -666,6 +956,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-bootstrap": {
"version": "1.6.8",
"resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-1.6.8.tgz",
@ -735,6 +1038,19 @@
"integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==",
"license": "MIT"
},
"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-is": {
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",

View File

@ -10,6 +10,7 @@
},
"dependencies": {
"aos": "^2.3.4",
"axios": "^1.10.0",
"isotope-layout": "^3.0.6",
"next": "14.2.4",
"react": "^18",
@ -17,6 +18,7 @@
"react-circular-progressbar": "^2.1.0",
"react-countup": "^6.5.3",
"react-dom": "^18",
"react-google-recaptcha": "^3.1.0",
"react-nice-select": "^1.0.6",
"react-player": "^2.16.0",
"react-slick": "^0.30.2",

View File

@ -441,9 +441,6 @@ input[type="radio"] {
font-family: var(--heading-font);
}
.section-title h2 {
/* text-transform: capitalize; */
}
@media only screen and (max-width: 991px) {
.section-title h2 {
@ -2925,7 +2922,7 @@ h6,
.rpt-70,
.rpy-70 {
padding-top: 70px;
padding-top: 60px;
}
.rpt-75,
@ -2940,7 +2937,7 @@ h6,
.rpt-85,
.rpy-85 {
padding-top: 85px;
padding-top: 60px;
}
.rpt-90,
@ -2955,7 +2952,7 @@ h6,
.rpt-100,
.rpy-100 {
padding-top: 100px;
padding-top: 60px;
}
.rpt-105,
@ -3066,7 +3063,7 @@ h6,
.rpb-55,
.rpy-55 {
padding-bottom: 55px;
padding-bottom: 60px;
}
.rpb-60,
@ -3081,7 +3078,7 @@ h6,
.rpb-70,
.rpy-70 {
padding-bottom: 70px;
padding-bottom: 60px;
}
.rpb-75,
@ -3096,7 +3093,7 @@ h6,
.rpb-85,
.rpy-85 {
padding-bottom: 85px;
padding-bottom: 60px;
}
.rpb-90,
@ -3111,7 +3108,7 @@ h6,
.rpb-100,
.rpy-100 {
padding-bottom: 100px;
padding-bottom: 60px;
}
.rpb-105,
@ -3131,7 +3128,7 @@ h6,
.rpb-120,
.rpy-120 {
padding-bottom: 120px;
padding-bottom: 60px;
}
.rpb-125,
@ -6746,7 +6743,7 @@ h6,
}
.category-banner-item.style-five.height-100 {
padding-top: 150px;
padding-top: 40px;
height: calc(100% - 30px);
}
@ -6887,6 +6884,13 @@ h6,
max-width: 510px;
}
@media (max-width: 768px) {
.about-us-content {
max-width: 100% !important;
}
}
@media only screen and (min-width: 1200px) {
.about-us-content {
margin-left: auto;
@ -9502,7 +9506,7 @@ h6,
position: absolute;
}
.testimonials-shapes .shape.one {
.testimonials-shapes .shape.one-1 {
left: 5%;
bottom: 15%;
}
@ -9861,10 +9865,6 @@ h6,
max-width: 27%;
}
/* Testimonials Six */
.testimonials-six {
/* margin-top: -170px; */
}
.testimonials-six .slick-dots {
-webkit-box-pack: start;
@ -10694,9 +10694,9 @@ h6,
color: var(--heading-color);
}
.blog-item.style-two .content h3 {
/* .blog-item.style-two .content h3 {
max-width: 650px;
}
} */
@media only screen and (min-width: 768px) {
.blog-item.style-two .content h3 {
@ -12141,6 +12141,12 @@ blockquote .blockquote-footer:before {
}
.slick-next {
right: -3% !important;
right: -2% !important;
top:25%
}
.testimonials-shapes .shape.one {
left: 5%;
bottom: 15%;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 175 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 KiB

View File

@ -1,315 +1,387 @@
export const Blog = [
{
id: 1,
slug: "the-flavors-of-north-india-more-than-just-curries",
image: "/assets/images/home/blog/blog-1.webp",
title: "The Flavors of North India: More Than Just Curries",
slug: "the-crispy-world-of-dosa-from-masala-classics-to-modern-twists-in-kitchener",
image: "/assets/images/blog/blog-1.webp",
imageLarge: "/assets/images/blog/blog-large-1.webp",
title: "The Crispy World of Dosa: From Masala Classics to Modern Twists in Kitchener",
user: "Admin",
date: "05 Dec 2024",
short_des: "Exploring the Bread, Tandoor, and Delights of North Indian Cuisine 'North Indian cuisine is not only about rich curries but also a vibrant array of breads, tandoor-cooked",
short_des: "Discover how a 2,000yearold SouthIndian crêpe has become KitchenerWaterloos newest breakfasttodinner obsession and learn to spot a truly great dosa.",
description: `<div>
<div class="mb-3">
<h5>Exploring the Bread, Tandoor, and Delights of North Indian Cuisine</h5>
<p class="mb-0">
North Indian cuisine is not only about rich curries but also a vibrant array of breads, tandoor-cooked delicacies,
and wholesome side dishes that complete the dining experience. At Shiva Shakthi, we celebrate the diversity of
North
Indian flavors by offering a menu filled with timeless classics that capture the essence of this culinary
tradition.
<b>Think dosa is just a thin pancake?</b> Fermented science, glutenfree power, and endless fillings prove its a culinary marvel ready to conquer every meal in Kitchener,ON.
</p>
</div>
<div class="mb-3">
<h5>The Tandoor: A Culinary Masterpiece</h5>
<p class="mb-0">The tandoor, a traditional clay oven, is the backbone of North Indian cooking. Its where magic
happens, infusing
dishes with smoky flavors and perfect char. From marinated meats to soft, pillowy bread, the tandoor brings a
unique
touch to every dish.</p>
<h5>Why Dosa Deserves a Spot on Your AllDay Menu</h5>
<p class="mb-0"> Locals googling best dosa in Kitchener arent just hungry at 9a.m. - theyre craving comfort at 9p.m. too. Because dosa batter ferments overnight, its light yet satisfying, making it an ideal anytime dish for students, families, and latenight foodies.</p>
<div class="mt-2">
<p class="mb-0"><b>Tandoori Chicken:</b> Marinated in yogurt and a blend of spices, this dish is roasted to
perfection in the
tandoor, delivering tender, flavorful meat with a signature smoky taste.</p>
<p class="mb-0"><b>Paneer Tikka:</b> Cubes of cottage cheese marinated in spices and grilled, creating a crisp,
flavorful outer
layer with a soft, creamy interior.</p>
<p class="mb-0"><b>Seekh Kebab:</b> Skewered minced meat seasoned with aromatic spices and herbs, cooked over an
open flame
for
a succulent bite.</p>
</div>
</div>
<div class="mb-3">
<h5>North Indian Breads: The Perfect Companions</h5>
<p class="mb-0">No North Indian meal is complete without its iconic breads, each bringing a unique texture and
flavor to the
table.
<h5>The Science of Crunch: Fermentation & Technique</h5>
<p class="mb-0"> A perfect crispy dosa Kitchenerstyle starts with highquality rice and urad dal, soaked, stoneground, and left to ferment. The lactic acid bacteria that develop not only create the signature tang and laceedged crispness but also boost gut health and Bvitamin levels - value your body will thank you for.</p>
</div>
<div class="mb-3">
<h5>Filling Choices That Speak Your Language</h5>
<div class="mt-2">
<p class="mb-0"><b>Masala dosa near me:</b> classic potatoonion masala.</p>
<p class="mb-0"><b>Mysore butter dosa:</b> chiligarlic smear for spice lovers.</p>
<p class="mb-0"><b>Paneer bhurji dosa:</b> highprotein vegetarian power.</p>
<p class="mb-0"><b>Chocolate & banana dosa:</b> for brunch daredevils.</p>
</div>
</div>
<div class="mb-3">
<h5>Chutney & Sambar - Not Just Sidekicks</h5>
<p class="mb-0"> A balanced plate includes fiberrich lentil sambar and mineralrich coconut chutney. Adding these sides turns a dosa into a complete macrobalanced meal - perfect for diners seeking hearty yet healthy <b>South Indian food near KitchenerWaterloo</b>.
</p>
<div class="mt-2">
<p class="mb-0"><b>Tandoori Naan:</b> Soft, fluffy, and slightly charred, naan is the quintessential Indian bread.
At Shiva
Shakthi, we offer variations like garlic naan and butter naan for extra indulgence.</p>
<p class="mb-0"><b>Roti:</b> Whole wheat flatbread that pairs beautifully with rich curries. Its simplicity allows
the bold
flavors of the dishes to shine.</p>
<p class="mb-0"><b>Paratha:</b> Layered and flaky, parathas are often stuffed with spiced potatoes, paneer, or
vegetables for
a
hearty meal.</p>
<p class="mb-0"><b>Kulcha:</b> A stuffed bread baked in the tandoor, often filled with spiced potatoes or onions,
and served
hot
with butter melting on top.</p>
</div>
</div>
<div class="mb-3">
<h5>Beyond the Bread: Rice and Sides</h5>
<p class="mb-0">North Indian cuisine also shines in its rice-based dishes and flavorful accompaniments.</p>
<h5>Dietary Wins: Naturally GlutenFree & VeganFriendly</h5>
<p class="mb-0"> Ricelentil batter contains zero wheat. Request oil instead of ghee for a fully vegan dosa that still crisps beautifully. For athletes watching macros, a proteinboost (paneer or tofu) fits seamlessly.</p>
<div class="mt-2">
<p class="mb-0"><b>Pulao:</b> Fragrant basmati rice cooked with aromatic spices, vegetables, and sometimes dried fruits for a
subtly sweet and savory dish.</p>
<p class="mb-0"><b>Jeera Rice:</b> A simple yet flavorful dish of rice tempered with cumin seeds, making it the perfect side
for
any curry.</p>
<p class="mb-0"><b>Raita:</b> A cooling yogurt-based side dish often mixed with cucumber, onions, or boondi, balancing the
heat
of spicy mains.</p>
</div>
</div>
<div class="mb-3">
<h5>Vegetarian Delights</h5>
<p class="mb-0">Vegetarian dishes are a cornerstone of North Indian cuisine, and our menu at Shiva Shakthi ensures theres
something for everyone.</p>
<h5>Local Provenance, Global Flavor</h5>
<p class="mb-0"> Our chefs layer Ontario potatoes, Waterloogrown cilantro, and Tamil Nadu spices. Supporting local farms while preserving SouthIndian authenticity keeps your food miles low and flavor miles high - something the authentic dosa in Ontario crowd truly appreciates.</p>
</div>
<div class="mb-3">
<h5>Make Dosa at Home: Quick Starter Tips</h5>
<div class="mt-2">
<p class="mb-0"><b>Chole Bhature:</b> A combination of spicy chickpea curry served with deep-fried, fluffy bread.</p>
<p class="mb-0"><b>Baingan Bharta:</b> Smoky mashed eggplant cooked with onions, tomatoes, and spices, offering a bold and
earthy
flavor.</p>
<p class="mb-0"><b>Palak Paneer:</b> Spinach puree cooked with Indian spices and cubes of paneer, delivering a creamy,
nutrient-packed dish.</p>
<p class="mb-0">Use a castiron skillet for even browning.</p>
<p class="mb-0">Ferment batter in the oven with the light on during Canadian winters.</p>
<p class="mb-0">Spread batter outward in one continuous spiral for paperthin results.
Practice these, and your DIY crispy dosa recipe will outshine takeout.</p>
</div>
</div>
<div class="mb-3">
<h5>Why North Indian Food Stands Out</h5>
<p class="mb-0">What makes North Indian cuisine so special is its variety and depth of flavors. Whether its the char of a
tandoori
dish, the richness of a butter-laden curry, or the simplicity of fresh naan, each bite reflects the love and care
that goes into the cooking. The use of dairy, nuts, and bold spices creates a cuisine that is hearty, satisfying,
and unforgettable.</p>
<h5>Wrapup</h5>
<p class="mb-0"> Whether youre new to South Indian cuisine or a lifelong fan, dosas blend of nutrition, versatility, and sheer crunch makes it a plate youll revisit. When the craving hits, skip the guesswork - visit our South Indian restaurant in Kitchener for the best dosa in Ontario, or take our freshly fermented batter home for your own tawa experiments.</p>
<p class="mb-0"> Swing by for a tasting flight of mini dosas and discover your favorite - no reservation needed, just your appetite.</p>
</div>
<div class="mt-2">
<h5>A Taste of North India Awaits You</h5>
<p class="mb-0">At Shiva Shakthi, we take pride in offering an authentic North Indian dining experience. From our tandoor
creations
to our freshly baked breads and aromatic rice dishes, every item on our menu is crafted to perfection. Come and
discover why North Indian cuisine is a global favorite.</p>
<p class="mb-0">Visit us today and let the flavors of North India transport you to a world of culinary delight. Would you like
naan
with that?</p>
</div>
</div>`
},
{
id: 2,
slug: "the-secret-to-perfect-north-indian-curries",
image: "/assets/images/home/blog/blog-2.webp",
title: "The Secret to Perfect North Indian Curries",
slug: "dindigul-thalappakatti-biryani-in-kitchener-a-deep-dive-into-a-tamil-nadu-treasure",
image: "/assets/images/blog/blog-2.webp",
imageLarge: "/assets/images/blog/blog-large-2.webp",
title: "Dindigul Thalappakatti Biryani in Kitchener: A Deep Dive into a Tamil Nadu Treasure",
user: "Admin",
date: "05 Dec 2024",
short_des: "Unlocking the Flavors of Authentic North Indian CuisineNorth Indian curries are the heart and soul of Indian cuisine, known for their rich textures, deep flavors, and",
short_des: "What makes Dindigul Thalappakatti biryani stand apart? It's not just the spice its history, technique, and the humble grain at its heart.",
description: `<div>
<div class="mb-3">
<h5>Unlocking the Flavors of Authentic North Indian Cuisine</h5>
<p class="mb-0">
North Indian curries are the heart and soul of Indian cuisine, known for their rich textures, deep flavors, and aromatic spices.
At Shiva Shakthi, we take pride in crafting these curries to perfection, ensuring every dish delivers an authentic taste of North India.
But what exactly makes these curries so special? Let us take you behind the scenes to uncover the secrets.
</p>
<h5>A Biryani Born in a Small Town</h5>
<p class="mb-0">Unlike other famous Indian biryanis - Hyderabadi, Lucknowi, Kolkata - the Dindigul Thalappakatti biryani doesnt trace its roots to royal kitchens. It originated in the small town of Dindigul, Tamil Nadu, where a man named Nagasamy Naidu began serving a peppery, deeply spiced biryani from a roadside eatery in 1957.</p>
<p class="mb-0">His signature headwear, the thalappakatti (turban), became the symbol of the brand and of a biryani that doesnt fit typical expectations.</p>
</div>
<div class="mb-3">
<h5>The Base: Where the Magic Begins</h5>
<p class="mb-0">The foundation of any North Indian curry lies in its base, usually a blend of onions, tomatoes, garlic, and ginger.
At Shiva Shakthi, we slow-cook these ingredients to bring out their natural sweetness and depth of flavor. This process forms the base for iconic dishes like Butter Chicken, Paneer Butter Masala, and Rogan Josh.
The key is patienceletting the ingredients caramelize and blend seamlessly to create a smooth and flavorful gravy.
</p>
<h5>The Grain That Tells the Story: Seeraga Samba Rice</h5>
<p class="mb-0"> One of the biggest differences between Dindigul biryani and the biryanis most Canadians may have tried lies in the grain.
</p>
<p class="mb-0"> While Hyderabadi biryani is known for fragrant long-grain basmati, Dindigul biryani uses seeraga samba a short-grain rice with a popcorn-like aroma and the ability to absorb flavors without becoming mushy. Its name comes from the Tamil word seeragam, meaning cumin, because of its small, rounded shape.
</p>
<p class="mb-0"> If youre tasting this biryani in Kitchener for the first time, this grain will likely surprise you. It doesnt fluff like basmati it clings, holds sauce, and gives the dish its character.
</p>
</div>
<div class="mb-3">
<h5>The Spice Symphony</h5>
<p class="mb-0">
Spices are the soul of North Indian curries.
At Shiva Shakthi, we use a carefully curated mix of whole and ground spices, including cumin, coriander, turmeric, and garam masala.
Each spice is toasted before being added to the curry, a technique that enhances their aroma and flavor.
We also use region-specific spice blends like Kasuri Methi (dried fenugreek leaves) and Amchur (dried mango powder) to give our curries an authentic touch.
</p>
</div>
<h5>Not Just Spicy - Layered and Bold</h5>
<div class="mb-3">
<h5>The Dairy Touch: Creamy and Comforting</h5>
<p class="mb-0">
North Indian curries are celebrated for their creamy textures, achieved by adding ingredients like yogurt, cream, or cashew paste.
For dishes like Butter Chicken and Korma, we simmer the curry with a generous dollop of cream, giving it a luxurious and velvety finish.
This dairy element not only balances the spices but also adds richness, making the curry indulgent and satisfying.
</p>
</div>
<div>
<p class="mb-0"> The spice profile of Thalappakatti biryani is complex and assertive. While it certainly brings heat - thanks to green chilies and black pepper - it doesnt rely solely on that.</p>
<div class="mb-3">
<h5>Cooking Techniques: Slow and Steady Wins the Race</h5>
<p class="mb-0">
At Shiva Shakthi, we believe in the age-old saying: Good things take time.
North Indian curries are often cooked over a low flame for hours, allowing the spices to infuse and the flavors to deepen.
This slow-cooking process is what gives our curries their layered and complex taste.
For example, our Dal Makhani is simmered overnight to achieve its signature creamy texture and smoky flavor.
</p>
</div>
<div class="mb-3">
<h5>Fresh Ingredients: Quality Makes the Difference</h5>
<p class="mb-0">
We source the freshest ingredients to ensure our curries stand out.
From handpicked tomatoes to freshly ground spices, every component plays a crucial role in the final dish.
We also prioritize seasonal vegetables and ethically sourced meats, ensuring that every bite is as wholesome as it is flavorful.
</p>
</div>
<div class="mb-3">
<h5>The Art of Balancing Flavors</h5>
<p class="mb-0">
What sets a great curry apart is its balance of flavorsspicy, tangy, sweet, and savory.
At Shiva Shakthi, we achieve this by tasting and adjusting each curry as it cooks.
A splash of lime juice, a pinch of sugar, or a sprinkle of freshly chopped cilantro can make all the difference in bringing out the best in the dish.
</p>
</div>
<div class="mb-3">
<h5>Our Signature North Indian Curries</h5>
<p class="mb-0">
Some of the must-try North Indian curries at Shiva Shakthi include:
</p>
<div class="mt-2">
<p class="mb-0"><b>Butter Chicken:</b> Tender chicken pieces cooked in a creamy tomato-based gravy,
infused with butter and spices.
</p>
<p class="mb-0"><b>Paneer Tikka Masala:</b> Grilled paneer cubes simmered
in a spiced onion and tomato curry.</p>
<p class="mb-0"><b>Rogan Josh:</b> A flavorful lamb curry slow-cooked
with Kashmiri red chilies and
aromatic spices.</p>
<p class="mb-0"><b>Dal Makhani:</b> Black lentils cooked overnight with
butter and cream for a rich, velvety texture.</p>
<p class="mb-0"><b>Kalpasi (stone flower):</b> An earthy spice rarely used outside South India.</p>
<p class="mb-0"><b>Star anise, bay leaf, mace, and fennel:</b> Which create a warming aroma.</p>
<p class="mb-0"><b>Fresh ground ginger-garlic paste:</b> For depth and sharpness.</p>
<p class="mb-0">These arent just ingredients - theyre decisions. The combination of whole spices and freshly made pastes creates a flavor thats bold, yet clean. It's the kind of biryani where the spices dont hide - they lead.</p>
</div>
</div>
<div class="mt-2">
<h5>A Curry Lovers Paradise</h5>
<p class="mb-0">At Shiva Shakthi, we dont just make currieswe craft experiences.
Every dish is a testament to our dedication to authentic preparation and bold flavors.
Whether youre new to Indian cuisine or a lifelong fan,
our North Indian curries are sure to leave you craving more.</p>
<p class="mb-0">Come taste the magic for yourself and discover why
Shiva Shakthi is the go-to destination for North Indian food lovers.</p>
<div class="mb-3">
<h5>Goat, Chicken, or Veg: What's Traditional?</h5>
<p class="mb-0"> In its purest form, Dindigul biryani is made with goat meat - not lamb, not beef, and definitely not boneless cubes.
</p>
</div>
</div>
`
<div class="mb-3">
<h5>Dietary Wins: Naturally GlutenFree & VeganFriendly</h5>
<p class="mb-0"> Ricelentil batter contains zero wheat. Request oil instead of ghee for a fully vegan dosa that still crisps beautifully. For athletes watching macros, a proteinboost (paneer or tofu) fits seamlessly.</p>
<p class="mb-0"> Goat is leaner, slightly gamey, and traditionally cooked on the bone. But youll now find:</p>
<div class="mt-2">
<p class="mb-0"><b>Chicken Thalappakatti biryani:</b> Easier on newcomers and still flavorful.</p>
<p class="mb-0"><b>Vegetarian version:</b> Made with mushrooms, soy chunks, or mixed vegetables - great for those seeking authentic Indian biryani in Kitchener without meat.</p>
<p class="mb-0">If you're adventurous, try the mutton (goat) version. The fat from the bone subtly infuses the rice, giving it that lingering richness.</p>
</div>
</div>
<div class="mb-3">
<h5>A Different Kind of Experience in Kitchener</h5>
<p class="mb-0"> If youre searching for Thalappakatti biryani near me in Kitchener, chances are youve either heard of it from a Tamil friend or stumbled across the name while looking for South Indian food that goes beyond dosa and idli.</p>
<p class="mb-0">While Ontario has many Indian restaurants, few offer this specific Dindigul biryani experience - with seeraga samba rice and traditional spice balance. Thats part of why its becoming a hidden gem among Kitchener foodies who are curious enough to venture off the well-worn butter chicken path.
</p>
</div>
<div class="mb-3">
<h5> How Its Served And What Comes With It</h5>
<div class="mt-2">
<p class="mb-0"><b>Brinjal gravy (ennai kathirikai):</b> A thick, tangy eggplant curry that cuts through the rices richness.</p>
<p class="mb-0"><b>Onion raita:</b> Yogurt with red onion, green chili, and coriander for cooling contrast.</p>
<p class="mb-0"><b>Optional:</b> boiled egg or crispy fried shallots.</p>
<p class="mb-0">These arent just sides - theyre balancing tools. Tamil Nadus culinary wisdom has always prioritized heat + tang + cool in one meal.</p>
</div>
</div>
<div class="mb-3">
<h5>A Dish That Connects Tamil Diaspora</h5>
<p class="mb-0"> For many Tamils in Kitchener, this isnt just a meal - its a link to home. Its the aroma of family gatherings, Sunday lunches, weddings, and railway station takeout. Bringing Dindigul Thalappakatti biryani to Kitchener isnt just about offering another variety - its about preserving food memory for a community that often goes unseen in mainstream Indian menus.</p>
<p class="mb-0"> And for non-Tamil diners? Its a chance to explore Indian cuisine beyond the stereotypes - to see the diversity within India itself.</p>
</div>
<div class="mb-3">
<h5>Final Thoughts</h5>
<p class="mb-0"> Dindigul Thalappakatti biryani is a biryani that breaks rules. Short-grain rice instead of long. Black pepper instead of red chili. Goat meat instead of chicken tikka. But in those differences lies the dishs true brilliance.</p>
<p class="mb-0"> If youre exploring South Indian cuisine in Kitchener, or simply want a biryani that tells a story, this is a dish worth seeking out - not just for the flavor, but for what it represents.</p>
</div>
<div class="mb-3">
<h5>Looking to try it for yourself?</h5>
<p class="mb-0"> Come by and ask for our seeraga samba biryani - served traditionally, with all the layers of history and spice that make it unforgettable.</p>
</div>
</div>`
},
{
id: 3,
slug: "the-rich-history-of-south-indian-cuisine",
image: "/assets/images/home/blog/blog-3.webp",
title: "The Rich History of South Indian Cuisine",
slug: "kothu-parotta-in-kitchener-the-sound-soul-and-spice-of-tamil-street-food",
image: "/assets/images/blog/blog-3.webp",
imageLarge: "/assets/images/blog/blog-large-3.webp",
title: "Kothu Parotta in Kitchener: The Sound, Soul, and Spice of Tamil Street Food",
user: "Admin",
date: "05 Dec 2024",
short_des: "A Journey Through Time: The Story of South Indian Cuisine",
description: `<div>
short_des: "Behind the clang of spatulas and the smell of sizzling masala lies a dish thats more than just stir-fried flatbread - its a story of hustle, heat, and heritage.",
description: `<div>
<div class="mb-3">
<h5>Introduction: More Than Just Food</h5>
<p class="mb-0">
South Indian cuisine is a celebration of flavors, history, and tradition. Its not merely about satisfying hungerits
about connecting with a legacy that dates back thousands of years.
From the fragrant spices of Kerala to the tangy tamarind of Tamil Nadu, every dish has a story to tell.
<h5>Why Dosa Deserves a Spot on Your AllDay Menu</h5>
<p class="mb-0"> Locals googling best dosa in Kitchener arent just hungry at 9a.m. - theyre craving comfort at 9p.m. too. Because dosa batter ferments overnight, its light yet satisfying, making it an ideal anytime dish for students, families, and latenight foodies.</p>
</div>
<div class="mb-3">
<h5> The Music of the Streets: Where Kothu Parotta Begins</h5>
<p class="mb-0"> If youve ever walked down a street in Tamil Nadu after sunset, youve probably heard it: the unmistakable chop-chop-clang of metal spatulas on a hot griddle.</p>
<p class="mb-0">Thats kothu parotta - a stir-fried mix of flaky layered parotta bread, eggs (or meat or veggies), curry, and spices, all chopped and tossed over high heat. Its not just dinner - its a performance.</p>
<p class="mb-0"> And now, that same sound and soul have found their way to downtown Kitchener.</p>
</div>
<div class="mb-3">
<h5>What Exactly Is Kothu Parotta?</h5>
<p class="mb-0"> Kothu parotta (sometimes spelled "koththu" or "kothu paratha") literally means "minced or shredded parotta." The base is parotta, a soft, layered flatbread made with flour and oil, kneaded and folded repeatedly to get its signature flaky texture.
</p>
</div>
<div class="mb-3">
<h5>The Origins: A Culinary Legacy</h5>
<p class="mb-0">The roots of South Indian cuisine can be traced to ancient Tamil literature and temple traditions.
Meals were often prepared with locally sourced ingredients like rice, lentils, and fresh spices, ensuring both nutrition and taste.</p>
<p> One of the earliest recorded dishes is the humble dosa, which dates back over 1,500 years.
This iconic rice-lentil crepe was first mentioned in Sangam literature and was traditionally served as a breakfast staple.
It has since evolved into a global favorite, with variations like masala dosa and neer dosa.</p>
<p>Similarly, idli, the soft, steamed rice cakes, were initially made using fermented batter to ensure health benefits. This technique highlights how South Indian cuisine has always valued both flavor and wellness.</p>
<p class="mb-0"> Once cooked, the parotta is shredded on a hot iron tawa (griddle), tossed with eggs or meat, onions, chilies, tomato, curry, and a spice blend that hits salty, spicy, and tangy all at once.
</p>
<p class="mb-0"> Its warm, messy, satisfying, and - for many, deeply nostalgic.
</p>
</div>
<div class="mb-3">
<h5>Sambar: The Tangy Stew with a Story</h5>
<h5>Why It Was Invented and Why It Works So Well</h5>
<p class="mb-0">Sambar, a tangy lentil stew, is one of South Indias most beloved dishes.
Legend has it that this dish was created accidentally in the royal kitchens of the Marathas when tamarind was used instead of kokum.
What began as an experiment turned into a culinary masterpiece.</p>
<p> At Shiva Shakthi, our sambar stays true to its roots, using freshly ground spices, handpicked vegetables, and tamarind sourced from the best farms.
Its a taste that transcends time and tradition.</p>
</div>
<div class="mb-3">
<h5>Regional Diversity: A Flavorful Spectrum</h5>
<p class="mb-0">South India is a diverse region, and its cuisines reflect this.</p>
<p class="mb-0"> The origins of kothu parotta are practical. Late-night eaters often laborers, students, or travelers wanted something fast, hot, cheap, and filling. Vendors began repurposing leftover parottas and curry into a stir-fry that was both comforting and full of punch.
</p>
<div class="mt-2">
<p class="mb-0"><b>Tamil Nadu:</b> Known for bold flavors and hearty dishes like biryani and chettinad chicken.</p>
<p class="mb-0"><b>Kerala:</b> Famous for its use of coconut, seafood, and fragrant spices like cardamom.</p>
<p class="mb-0"><b>Andhra Pradesh and Telangana:</b>Celebrated for fiery dishes like gongura chicken and spicy biryani.</p>
<p class="mb-0"><b>Karnataka:</b> Home to milder yet flavorful dishes like bisibele bath and mysore pak.</p>
</div>
<p>At Shiva Shakthi, weve taken inspiration from all these regions to offer you a menu that represents the best of South India.</p>
</div>
<p class="mb-0">Its <b>zero-waste</b> cooking at its best.</p>
<div class="mb-3">
<h5>Our Commitment to Authenticity</h5>
<p>At Shiva Shakthi, we believe in preserving the authenticity of South Indian cuisine.
Our chefs use time-honored methods, such as grinding spices on traditional stone grinders and slow-cooking dishes to perfection.
The result? Meals that taste like home.</p>
<p> For example, our dosa batter is fermented for hours to achieve the perfect texture and flavor.
Our rasam is made with fresh tamarind and a special blend of spices that bring out its signature tangy, peppery taste.</p>
<p class="mb-0">Its easily <b>customizable</b> (egg, chicken, veg, mutton).</p>
<p class="mb-0"><b>Paneer bhurji dosa:</b> highprotein vegetarian power.</p>
<p class="mb-0">And its <b>deeply craveable</b> especially when you're tired, hungry, or hungover.</p>
<p class="mb-0">So when people in Ontario Google "egg kothu parotta near me", theyre really asking: Where can I get that warm, spicy, satisfying reset?</p>
</div>
</div>
<div class="mb-3">
<h5>Why South Indian Cuisine Is Special</h5>
<p class="mb-0">South Indian dishes are known for their balance of flavorsspicy, tangy, sweet, and savory.
Each meal is often complemented by a variety of accompaniments like chutneys, pickles, and papad, ensuring a wholesome experience.</p>
<h5> Variations Worth Exploring
</h5>
<p class="mb-0"> In Kitchener, we offer kothu parotta in three popular forms:
</p>
<div class="mt-2">
<p class="mb-0"><b>Egg Kothu Parotta:</b> The original. Simple, rich, and perfect with a side of raita.</p>
<p class="mb-0"><b>Chicken Kothu Parotta:</b> Juicy chicken bits marinated in curry and folded into the mix. Popular for first-timers.</p>
<p class="mb-0"><b>Veg or Paneer Kothu Parotta:</b> Stir-fried with cabbage, carrot, and masala or tossed with cubes of golden paneer for a protein-rich vegetarian option.
</p>
<p class="mb-0">Each variation is spicy, textural, and served with salna (a thin Tamil gravy) or onion raita to cool things down.
</p>
</div>
<p>Moreover, the emphasis on fresh ingredients, minimal oil, and natural spices makes South Indian food not just delicious but also healthy.</p>
</div>
<div class="mt-2">
<h5>Conclusion: Taste the Legacy at Shiva Shakthi</h5>
<p class="mb-0">Every dish at Shiva Shakthi is a tribute to the rich history of South Indian cuisine.
By combining traditional recipes with fresh, high-quality ingredients, we bring you the authentic taste of South India right here in Canada.</p>
<p>So, whether youre enjoying a crispy dosa or a bowl of aromatic biryani, know that youre part of a journey through timea journey that celebrates the art of South Indian cooking.</p>
<div class="mb-3">
<h5> Heat and Flavor: Not One-Size-Fits-All
</h5>
<p class="mb-0"> Unlike other street foods that hit you with a one-note chili bomb, kothu parottas heat is layered and can be adjusted to your liking. Here's how it works:
</p>
<div class="mt-2">
<p class="mb-0">The <b>base masala</b> gives warmth.</p>
<p class="mb-0"><b>Fresh green chilies</b> add bite.</p>
<p class="mb-0"><b>Black pepper</b> contributes aromatic heat.</p>
</div>
<p class="mb-0"> If you're new to Tamil street food in Kitchener, start with mild. Love the fire? Ask for spicy and request extra salna on the side. Either way, the result is more complex than most North Indian curries or stir-fries.
</p>
</div>
<div class="mb-3">
<h5> Street Food, Global Story</h5>
<p class="mb-0"> Across the Tamil diaspora from Chennai to Kuala Lumpur, from London to Scarborough, kothu parotta travels well. Why?</p>
<div class="mt-2">
<p class="mb-0">Quick to make.</p>
<p class="mb-0">High in flavor.</p>
<p class="mb-0">Familiar in its format (like fried rice or shawarma but Tamil).</p>
</div>
<p class="mb-0"> For South Indian immigrants in Kitchener, it brings a taste of home. For others, it's a window into a street culture thats loud, lively, and built around the joy of communal food.</p>
<p class="mb-0"> And in a city thats embracing international flavors, kothu parotta in Kitchener fits right in somewhere between fusion and tradition.</p>
</div>
<div class="mb-3">
<h5> What Makes a Great Kothu Parotta? (Even If Youve Never Had One)
</h5>
<p class="mb-0"> Heres what to look for:</p>
<div class="mt-2">
<p class="mb-0"><b>Soft, torn bread</b> with slight crisp on the edges.</p>
<p class="mb-0"><b>Even distribution</b> of meat or egg nothing clumpy or dry.</p>
<p class="mb-0"><b>Balanced spice</b> - heat, salt, and tang all present.</p>
<p class="mb-0">A spoonful of <b>salna or raita</b> with every bite.</p>
<p class="mb-0"><b>Steam and sound</b> - if it was chopped quietly, its not the real thing.</p>
</div>
<p class="mb-0"> And heres a tip: try it fresh, right off the tawa. Reheated kothu isnt the same - it loses the sizzling edge that makes it special.</p>
</div>
<div class="mb-3">
<h5>Final Thoughts</h5>
<p class="mb-0"> <b>Kothu parotta isnt fancy. Its not plated with garnish or served in silence</b>. But it has what great food should always have: soul, story, and surprise.</p>
<p class="mb-0"> If youve never tried it, it might remind you of your favorite takeout but louder, spicier, and layered with a kind of energy that feels alive.</p>
<p class="mb-0"> If you grew up with it, its home on a plate.</p>
</div>
<div class="mb-3">
<h5>Curious about Tamil street food in Kitchener?</h5>
<p class="mb-0"> Come by, bring a friend, and let the clang of spatulas and cloud of spices welcome you in.</p>
</div>
</div>`
}
]

View File

@ -1,7 +1,7 @@
const PrevArrow = ({ className, style, onClick }) => (
<div
className={className}
style={{ ...style, left: "-40px", zIndex: 1 }}
style={{ ...style, left: "-16px", zIndex: 1 }}
onClick={onClick}
>
<i className="fas fa-arrow-left"></i>