diff --git a/addons/Dine360_Chennora/hooks.py b/addons/Dine360_Chennora/hooks.py
index 28311b4..fd48152 100644
--- a/addons/Dine360_Chennora/hooks.py
+++ b/addons/Dine360_Chennora/hooks.py
@@ -1,11 +1,10 @@
from odoo import api, SUPERUSER_ID
-def uninstall_hook(cr, registry):
+def uninstall_hook(env):
"""
Synchronized uninstallation: When Dine360 Restaurant Suite is uninstalled,
automatically trigger uninstallation for all its core sub-modules.
"""
- env = api.Environment(cr, SUPERUSER_ID, {})
modules_to_uninstall = [
'dine360_dashboard',
'dine360_restaurant',
@@ -22,5 +21,4 @@ def uninstall_hook(cr, registry):
if modules:
# Mark modules for uninstallation
- # button_immediate_uninstall will trigger the full process including registry reload
- modules.button_immediate_uninstall()
+ modules.button_uninstall()
diff --git a/addons/Dine360_Shivasakthi/__init__.py b/addons/Dine360_Shivasakthi/__init__.py
new file mode 100644
index 0000000..4c62977
--- /dev/null
+++ b/addons/Dine360_Shivasakthi/__init__.py
@@ -0,0 +1,2 @@
+# Meta module for Dine360 Shivasakthi
+from .hooks import uninstall_hook
diff --git a/addons/Dine360_Shivasakthi/__manifest__.py b/addons/Dine360_Shivasakthi/__manifest__.py
new file mode 100644
index 0000000..224f026
--- /dev/null
+++ b/addons/Dine360_Shivasakthi/__manifest__.py
@@ -0,0 +1,44 @@
+{
+ 'name': 'Dine360 Shivasakthi Restaurant Suite',
+ 'version': '1.0.0',
+ 'license': 'LGPL-3',
+ 'category': 'Website',
+ 'summary': 'Installs all Dine360 Shivasakthi Restaurant modules',
+ 'author': 'Dine360',
+ 'depends': [
+ 'dine360_restaurant',
+ 'dine360_order_channels',
+ 'dine360_dashboard',
+ 'dine360_theme_shivasakthi',
+ 'dine360_kds',
+ 'dine360_reservation',
+ 'dine360_uber',
+ 'dine360_recipe',
+ 'dine360_self_order',
+ 'dine360_online_orders',
+ 'dine360_pos_navbar',
+ 'mail',
+ 'calendar',
+ 'contacts',
+ 'crm',
+ 'sale_management',
+ 'board',
+ 'point_of_sale',
+ 'account',
+ 'website',
+ 'purchase',
+ 'stock',
+ 'hr',
+ ],
+ 'uninstall_hook': 'uninstall_hook',
+ 'data': [
+ 'views/apps_kanban_menu.xml',
+ ],
+ 'assets': {
+ 'web.assets_backend': [
+ 'Dine360_Shivasakthi/static/src/css/apps_kanban_fix.css',
+ ],
+ },
+ 'installable': True,
+ 'application': True,
+}
diff --git a/addons/Dine360_Shivasakthi/hooks.py b/addons/Dine360_Shivasakthi/hooks.py
new file mode 100644
index 0000000..d4f9da2
--- /dev/null
+++ b/addons/Dine360_Shivasakthi/hooks.py
@@ -0,0 +1,24 @@
+from odoo import api, SUPERUSER_ID
+
+def uninstall_hook(env):
+ """
+ Synchronized uninstallation: When Dine360 Shivasakthi Restaurant Suite is uninstalled,
+ automatically trigger uninstallation for all its core sub-modules.
+ """
+ modules_to_uninstall = [
+ 'dine360_dashboard',
+ 'dine360_restaurant',
+ 'dine360_theme_shivasakthi',
+ 'dine360_kds',
+ 'dine360_reservation'
+ ]
+
+ # Search for these modules if they are installed
+ modules = env['ir.module.module'].search([
+ ('name', 'in', modules_to_uninstall),
+ ('state', '=', 'installed')
+ ])
+
+ if modules:
+ # Mark modules for uninstallation
+ modules.button_uninstall()
diff --git a/addons/Dine360_Shivasakthi/static/src/css/apps_kanban_fix.css b/addons/Dine360_Shivasakthi/static/src/css/apps_kanban_fix.css
new file mode 100644
index 0000000..7418207
--- /dev/null
+++ b/addons/Dine360_Shivasakthi/static/src/css/apps_kanban_fix.css
@@ -0,0 +1,31 @@
+/* Fix Apps kanban icon sizing and dropdown overlap */
+.o_modules_kanban .oe_module_vignette,
+.o_modules_kanban .o_kanban_record {
+ overflow: visible;
+}
+
+.o_modules_kanban .o_kanban_record {
+ position: relative;
+ z-index: 1;
+}
+
+.o_modules_kanban .oe_module_icon {
+ width: 64px;
+ height: 64px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+.o_modules_kanban .oe_module_icon img {
+ width: 64px;
+ height: 64px;
+ object-fit: contain;
+}
+
+.o_modules_kanban .oe_module_vignette .dropdown-menu {
+ right: 0;
+ left: auto;
+ min-width: 160px;
+ z-index: 1060;
+}
diff --git a/addons/Dine360_Shivasakthi/views/apps_kanban_menu.xml b/addons/Dine360_Shivasakthi/views/apps_kanban_menu.xml
new file mode 100644
index 0000000..49eb1ab
--- /dev/null
+++ b/addons/Dine360_Shivasakthi/views/apps_kanban_menu.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
diff --git a/addons/dine360_theme_shivasakthi/__init__.py b/addons/dine360_theme_shivasakthi/__init__.py
new file mode 100644
index 0000000..9e5827f
--- /dev/null
+++ b/addons/dine360_theme_shivasakthi/__init__.py
@@ -0,0 +1,3 @@
+# -*- coding: utf-8 -*-
+from . import controllers
+from . import models
diff --git a/addons/dine360_theme_shivasakthi/__manifest__.py b/addons/dine360_theme_shivasakthi/__manifest__.py
new file mode 100644
index 0000000..c14e410
--- /dev/null
+++ b/addons/dine360_theme_shivasakthi/__manifest__.py
@@ -0,0 +1,41 @@
+# -*- coding: utf-8 -*-
+{
+ 'name': 'Dine360 Theme Shivasakthi',
+ 'description': 'Custom theme for Dine360 Shivasakthi website',
+ 'category': 'Theme/Website',
+ 'version': '1.0',
+ 'author': 'Dine360',
+ 'depends': ['website', 'website_sale', 'website_crm'],
+ 'data': [
+ 'views/layout.xml', # Header, Footer, and Global Layout changes
+ 'views/pages.xml', # specific page content (Home, About, etc.)
+ 'views/about_page.xml', # About Page
+ 'views/contact_page.xml',# Contact Page
+ 'views/faq_page.xml', # FAQ Page
+ 'views/blog_page.xml', # Blog Page
+ 'views/blog_detail_page.xml', # Blog Detail Page
+ 'views/shop_page.xml', # Shop Page
+ 'views/checkout_address.xml', # Checkout Address page (remove Company/VAT)
+ 'views/product_details_page.xml', # Customized Product Details Page
+ 'views/product_views.xml', # Product Form custom fields
+ 'views/snippets.xml', # Custom Building Blocks
+ 'views/options.xml', # Options for snippets (if any)
+ 'views/res_config_settings_views.xml', # Backend Settings
+ 'data/website_data.xml', # Data for creating pages
+ ],
+ 'assets': {
+ 'web.assets_frontend': [
+ 'dine360_theme_shivasakthi/static/src/scss/primary_variables.scss',
+ 'dine360_theme_shivasakthi/static/src/scss/theme.scss',
+ 'dine360_theme_shivasakthi/static/src/scss/shop.scss',
+ 'dine360_theme_shivasakthi/static/src/js/deal_switcher.js',
+ 'dine360_theme_shivasakthi/static/src/js/category_slider.js',
+ ],
+ },
+ 'images': [
+ 'static/description/cover.png',
+ ],
+ 'installable': True,
+ 'application': True,
+ 'license': 'LGPL-3',
+}
diff --git a/addons/dine360_theme_shivasakthi/controllers/__init__.py b/addons/dine360_theme_shivasakthi/controllers/__init__.py
new file mode 100644
index 0000000..757b12a
--- /dev/null
+++ b/addons/dine360_theme_shivasakthi/controllers/__init__.py
@@ -0,0 +1,2 @@
+# -*- coding: utf-8 -*-
+from . import main
diff --git a/addons/dine360_theme_shivasakthi/controllers/main.py b/addons/dine360_theme_shivasakthi/controllers/main.py
new file mode 100644
index 0000000..191a318
--- /dev/null
+++ b/addons/dine360_theme_shivasakthi/controllers/main.py
@@ -0,0 +1,131 @@
+from markupsafe import Markup
+import json
+import os
+from odoo import http
+from odoo.http import request
+
+# Helper to load blogs from JSON
+def get_blogs():
+ json_path = os.path.join(os.path.dirname(__file__), '../data/blogs.json')
+ if os.path.exists(json_path):
+ with open(json_path, 'r', encoding='utf-8-sig') as f:
+ blogs = json.load(f)
+ # Reversing so the last added blog appears first
+ return blogs[::-1] if isinstance(blogs, list) else blogs
+ return []
+
+class ContactController(http.Controller):
+ @http.route('/contactus/submit', type='http', auth="public", website=True, csrf=True)
+ def contact_submit(self, **post):
+ import logging
+ _logger = logging.getLogger(__name__)
+
+ name = post.get('name')
+ email = post.get('email_from')
+ phone = post.get('phone')
+ subject = post.get('subject')
+ message = post.get('description')
+
+ # Format the email content
+ email_content = f"""
+
+
New Contact Form Submission - Shiva Sakthi
+
+
+ Full Name:
+ {name}
+
+
+ Email:
+ {email}
+
+
+ Phone:
+ {phone}
+
+
+ Subject:
+ {subject}
+
+
+
+
+ """
+
+ company_email = request.env['res.company'].sudo().search([], limit=1).email or 'info@shivasakthi.ca'
+
+ mail_values = {
+ 'subject': f"Contact Form: {subject or 'Inquiry'} from {name}",
+ 'body_html': email_content,
+ 'email_to': 'info@shivasakthi.ca',
+ 'email_from': company_email,
+ 'reply_to': email,
+ }
+
+ # Create and send the mail
+ try:
+ mail = request.env['mail.mail'].sudo().create(mail_values)
+ mail.send()
+ _logger.info("Contact form email sent successfully to %s", mail_values['email_to'])
+ except Exception as e:
+ _logger.error("Failed to send contact form email: %s", str(e))
+
+ return request.render('dine360_theme_shivasakthi.contact_thank_you')
+
+class BlogController(http.Controller):
+ @http.route(['/blog', '/blog/page/'], type='http', auth='public', website=True)
+ def blog_list(self, page=1, **post):
+ all_blogs = get_blogs()
+
+ # Pagination Settings
+ per_page = 12
+ total = len(all_blogs)
+
+ # Odoo's built-in pager
+ pager = request.website.pager(
+ url='/blog',
+ total=total,
+ page=page,
+ step=per_page,
+ scope=5,
+ url_args=post,
+ )
+
+ # Extract blogs for current page
+ start = (page - 1) * per_page
+ end = start + per_page
+ blogs_paged = all_blogs[start:end]
+
+ return request.render('dine360_theme_shivasakthi.blog_page', {
+ 'blog_posts': blogs_paged,
+ 'pager': pager,
+ })
+
+ @http.route(['/blog/'], type='http', auth='public', website=True)
+ def blog_detail(self, slug, **post):
+ all_blogs = get_blogs()
+ blog_post = next((b for b in all_blogs if b['slug'] == slug), None)
+
+ if not blog_post:
+ return request.not_found()
+
+ recent_posts = [b for b in all_blogs if b['slug'] != slug][:3]
+
+ # Get categories and counts
+ categories = {}
+ for b in all_blogs:
+ cat = b.get('category', 'Restaurant')
+ categories[cat] = categories.get(cat, 0) + 1
+
+ return request.render('dine360_theme_shivasakthi.blog_detail_layout', {
+ 'blog_title': blog_post.get('title'),
+ 'blog_img': blog_post.get('image'),
+ 'blog_date': blog_post.get('date'),
+ 'blog_category': blog_post.get('category'),
+ 'blog_content': Markup(blog_post.get('content') or ''),
+ 'recent_posts': recent_posts,
+ 'categories': categories,
+ })
diff --git a/addons/dine360_theme_shivasakthi/data/blogs.json b/addons/dine360_theme_shivasakthi/data/blogs.json
new file mode 100644
index 0000000..ee49b13
--- /dev/null
+++ b/addons/dine360_theme_shivasakthi/data/blogs.json
@@ -0,0 +1,38 @@
+[
+ {
+ "id": 1,
+ "title": "The Secrets of Crafting the Perfect Crispy Dosa",
+ "slug": "secrets-perfect-crispy-dosa",
+ "image": "/dine360_theme_shivasakthi/static/src/img/assets/images/blog/blog_dosa_making.jpg",
+ "category": "Recipe",
+ "date": "May 15, 2026",
+ "day": "15",
+ "month": "May",
+ "excerpt": "Discover the culinary art behind Shiva Sakthi's signature dosas. Learn how our chefs achieve the perfect crispiness using age-old fermentation techniques and spices.",
+ "content": "At Shiva Sakthi Restaurant, the dosa isn't just a dish; it's a craft perfected over decades. The secret to our golden, paper-thin crispy dosas lies in the fermentation process. Our chefs soak premium quality parboiled rice and urad dal, grinding them to a silky batter that is fermented for exactly 12 hours at a precise temperature.
Cooked on a heavy iron griddle seasoned with sesame oil, each dosa is hand-spread in quick circular motions. Whether you enjoy the classic Masala Dosa or our fiery Mysore Dosa, every bite delivers the authentic taste of South India.
"
+ },
+ {
+ "id": 2,
+ "title": "Why Our Unlimited Thali is Mississauga's Favorite Lunch Choice",
+ "slug": "unlimited-thali-mississauga-favorite",
+ "image": "/dine360_theme_shivasakthi/static/src/img/assets/images/blog/blog_thali_experience.jpg",
+ "category": "Dining",
+ "date": "June 1, 2026",
+ "day": "01",
+ "month": "Jun",
+ "excerpt": "A feast fit for royalty! Read about the journey of our Unlimited South Indian Thali, featuring a harmonious blend of curries, rasam, and fresh payasam.",
+ "content": "For anyone craving a comprehensive South Indian feast, the Shiva Sakthi Unlimited Thali is the ultimate experience. Served on a traditional banana leaf, it offers a rotating menu of up to 10 authentic items, including Sambar, Rasam, Kara Kuzhambu, Poriyal, Kootu, and crunchy appalams, ending with a sweet, rich Payasam.
We believe in hospitality that makes you feel at home. That's why our thali is served with unlimited refills of rice and curries, cooked fresh every day with locally sourced ingredients and spices imported from South India.
"
+ },
+ {
+ "id": 3,
+ "title": "A Guide to South Indian Spices and Their Health Benefits",
+ "slug": "guide-south-indian-spices-benefits",
+ "image": "/dine360_theme_shivasakthi/static/src/img/assets/images/blog/blog_south_indian_spices.jpg",
+ "category": "Health",
+ "date": "June 7, 2026",
+ "day": "07",
+ "month": "Jun",
+ "excerpt": "Explore the medicinal and culinary secrets of mustard seeds, curry leaves, and asafoetida that give our dishes their rich flavor profile.",
+ "content": "South Indian cuisine is celebrated not just for its rich aromas but also for its digestive and therapeutic benefits. Key spices such as turmeric, mustard seeds, fenugreek, and curry leaves are rich in antioxidants and aid digestion.
At Shiva Sakthi, we use these spices mindfully. Tempered in hot oil at the end of cooking (a process called *tadka*), they release essential oils that enhance the taste and wellness of our sambars, curries, and chutneys.
"
+ }
+]
diff --git a/addons/dine360_theme_shivasakthi/data/website_data.xml b/addons/dine360_theme_shivasakthi/data/website_data.xml
new file mode 100644
index 0000000..7c1eb2a
--- /dev/null
+++ b/addons/dine360_theme_shivasakthi/data/website_data.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+ /about
+ True
+
+ About Us
+
+
+
+
+ /faq
+ True
+
+ FAQ
+
+
+
+
+ /blog
+ True
+
+ Blog
+
+
+
+
diff --git a/addons/dine360_theme_shivasakthi/models/__init__.py b/addons/dine360_theme_shivasakthi/models/__init__.py
new file mode 100644
index 0000000..debd3da
--- /dev/null
+++ b/addons/dine360_theme_shivasakthi/models/__init__.py
@@ -0,0 +1,4 @@
+# -*- coding: utf-8 -*-
+from . import product_template
+from . import res_config_settings
+from . import website
diff --git a/addons/dine360_theme_shivasakthi/models/product_template.py b/addons/dine360_theme_shivasakthi/models/product_template.py
new file mode 100644
index 0000000..f8eaf94
--- /dev/null
+++ b/addons/dine360_theme_shivasakthi/models/product_template.py
@@ -0,0 +1,11 @@
+# -*- coding: utf-8 -*-
+from odoo import models, fields
+
+class ProductTemplate(models.Model):
+ _inherit = 'product.template'
+
+ is_popular_deal = fields.Boolean(
+ string='Is Popular Deal',
+ default=False,
+ help='Check this to show this product in Popular Deals section on Homepage'
+ )
diff --git a/addons/dine360_theme_shivasakthi/models/res_config_settings.py b/addons/dine360_theme_shivasakthi/models/res_config_settings.py
new file mode 100644
index 0000000..b8f4c57
--- /dev/null
+++ b/addons/dine360_theme_shivasakthi/models/res_config_settings.py
@@ -0,0 +1,11 @@
+# -*- coding: utf-8 -*-
+from odoo import models, fields
+
+class ResConfigSettings(models.TransientModel):
+ _inherit = 'res.config.settings'
+
+ enable_delivery_option = fields.Boolean(
+ related='website_id.enable_delivery_option',
+ readonly=False,
+ string='Enable Delivery Option'
+ )
diff --git a/addons/dine360_theme_shivasakthi/models/website.py b/addons/dine360_theme_shivasakthi/models/website.py
new file mode 100644
index 0000000..b27f1df
--- /dev/null
+++ b/addons/dine360_theme_shivasakthi/models/website.py
@@ -0,0 +1,29 @@
+# -*- coding: utf-8 -*-
+import json
+import os
+from odoo import models, fields, modules
+
+class Website(models.Model):
+ _inherit = 'website'
+
+ enable_delivery_option = fields.Boolean(
+ string='Enable Delivery Option',
+ default=True,
+ help='If disabled, customers will not see the Delivery option on the checkout page.'
+ )
+
+ def get_recent_blogs(self, limit=3):
+ """Reads blog posts from blogs.json and returns the latest slice."""
+ addon_path = modules.get_module_path('dine360_theme_shivasakthi')
+ json_path = os.path.join(addon_path, 'data', 'blogs.json')
+
+ if os.path.exists(json_path):
+ try:
+ with open(json_path, 'r', encoding='utf-8-sig') as f:
+ blogs = json.load(f)
+ if isinstance(blogs, list):
+ return blogs[::-1][:limit]
+ return blogs[:limit] if isinstance(blogs, list) else []
+ except Exception:
+ return []
+ return []
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/1-big-img.webp b/addons/dine360_theme_shivasakthi/static/src/img/1-big-img.webp
new file mode 100644
index 0000000..aee2e25
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/1-big-img.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/1-card.webp b/addons/dine360_theme_shivasakthi/static/src/img/1-card.webp
new file mode 100644
index 0000000..608e7d5
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/1-card.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/2-big-img.webp b/addons/dine360_theme_shivasakthi/static/src/img/2-big-img.webp
new file mode 100644
index 0000000..4756541
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/2-big-img.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/2-card.webp b/addons/dine360_theme_shivasakthi/static/src/img/2-card.webp
new file mode 100644
index 0000000..9165b7a
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/2-card.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/about-banner-bg.png b/addons/dine360_theme_shivasakthi/static/src/img/about-banner-bg.png
new file mode 100644
index 0000000..8d212de
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/about-banner-bg.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/about-banner-new.png b/addons/dine360_theme_shivasakthi/static/src/img/about-banner-new.png
new file mode 100644
index 0000000..8d212de
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/about-banner-new.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/about-basil-float.png b/addons/dine360_theme_shivasakthi/static/src/img/about-basil-float.png
new file mode 100644
index 0000000..fbe9f4b
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/about-basil-float.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/about-bellpepper.png b/addons/dine360_theme_shivasakthi/static/src/img/about-bellpepper.png
new file mode 100644
index 0000000..8daade1
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/about-bellpepper.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/about-leaves.png b/addons/dine360_theme_shivasakthi/static/src/img/about-leaves.png
new file mode 100644
index 0000000..fbe9f4b
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/about-leaves.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/about-lemon-float.png b/addons/dine360_theme_shivasakthi/static/src/img/about-lemon-float.png
new file mode 100644
index 0000000..fd3454f
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/about-lemon-float.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/about-lemon.png b/addons/dine360_theme_shivasakthi/static/src/img/about-lemon.png
new file mode 100644
index 0000000..fd3454f
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/about-lemon.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/about-main-dish.png b/addons/dine360_theme_shivasakthi/static/src/img/about-main-dish.png
new file mode 100644
index 0000000..497c8c2
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/about-main-dish.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/about-new-basil.png b/addons/dine360_theme_shivasakthi/static/src/img/about-new-basil.png
new file mode 100644
index 0000000..fbe9f4b
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/about-new-basil.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/about-new-lemon.png b/addons/dine360_theme_shivasakthi/static/src/img/about-new-lemon.png
new file mode 100644
index 0000000..fd3454f
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/about-new-lemon.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/about-new-main.png b/addons/dine360_theme_shivasakthi/static/src/img/about-new-main.png
new file mode 100644
index 0000000..497c8c2
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/about-new-main.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/about-new-pepper.png b/addons/dine360_theme_shivasakthi/static/src/img/about-new-pepper.png
new file mode 100644
index 0000000..21ffbed
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/about-new-pepper.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/about-pepper-float.png b/addons/dine360_theme_shivasakthi/static/src/img/about-pepper-float.png
new file mode 100644
index 0000000..21ffbed
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/about-pepper-float.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/about-platter.png b/addons/dine360_theme_shivasakthi/static/src/img/about-platter.png
new file mode 100644
index 0000000..1304ac6
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/about-platter.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/assets/images/home/about-platter.png b/addons/dine360_theme_shivasakthi/static/src/img/assets/images/home/about-platter.png
new file mode 100644
index 0000000..1304ac6
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/assets/images/home/about-platter.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/assets/images/home/testimonial-main.jpg b/addons/dine360_theme_shivasakthi/static/src/img/assets/images/home/testimonial-main.jpg
new file mode 100644
index 0000000..518ccfa
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/assets/images/home/testimonial-main.jpg differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/assets/images/home/unlimited-thali/thali.png b/addons/dine360_theme_shivasakthi/static/src/img/assets/images/home/unlimited-thali/thali.png
new file mode 100644
index 0000000..e49281f
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/assets/images/home/unlimited-thali/thali.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/assets/images/logos/logo.png b/addons/dine360_theme_shivasakthi/static/src/img/assets/images/logos/logo.png
new file mode 100644
index 0000000..a923ab6
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/assets/images/logos/logo.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/assets/images/shapes/bannerShape2_1.svg b/addons/dine360_theme_shivasakthi/static/src/img/assets/images/shapes/bannerShape2_1.svg
new file mode 100644
index 0000000..e8109ca
--- /dev/null
+++ b/addons/dine360_theme_shivasakthi/static/src/img/assets/images/shapes/bannerShape2_1.svg
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/assets/images/shapes/bannerShape2_2.svg b/addons/dine360_theme_shivasakthi/static/src/img/assets/images/shapes/bannerShape2_2.svg
new file mode 100644
index 0000000..5870931
--- /dev/null
+++ b/addons/dine360_theme_shivasakthi/static/src/img/assets/images/shapes/bannerShape2_2.svg
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/assets/images/shapes/bannerShape2_3.svg b/addons/dine360_theme_shivasakthi/static/src/img/assets/images/shapes/bannerShape2_3.svg
new file mode 100644
index 0000000..ed6bcf9
--- /dev/null
+++ b/addons/dine360_theme_shivasakthi/static/src/img/assets/images/shapes/bannerShape2_3.svg
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/assets/images/shapes/bannerShape2_4.svg b/addons/dine360_theme_shivasakthi/static/src/img/assets/images/shapes/bannerShape2_4.svg
new file mode 100644
index 0000000..da85676
--- /dev/null
+++ b/addons/dine360_theme_shivasakthi/static/src/img/assets/images/shapes/bannerShape2_4.svg
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/assets/images/shapes/bannerShape2_5.svg b/addons/dine360_theme_shivasakthi/static/src/img/assets/images/shapes/bannerShape2_5.svg
new file mode 100644
index 0000000..d759b02
--- /dev/null
+++ b/addons/dine360_theme_shivasakthi/static/src/img/assets/images/shapes/bannerShape2_5.svg
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/best-big-img.webp b/addons/dine360_theme_shivasakthi/static/src/img/best-big-img.webp
new file mode 100644
index 0000000..bbc686b
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/best-big-img.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/best-card.webp b/addons/dine360_theme_shivasakthi/static/src/img/best-card.webp
new file mode 100644
index 0000000..206286e
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/best-card.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/bg-image.jpg b/addons/dine360_theme_shivasakthi/static/src/img/bg-image.jpg
new file mode 100644
index 0000000..f70f905
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/bg-image.jpg differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/blog-1.png b/addons/dine360_theme_shivasakthi/static/src/img/blog-1.png
new file mode 100644
index 0000000..a71222f
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/blog-1.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/blog-1.webp b/addons/dine360_theme_shivasakthi/static/src/img/blog-1.webp
new file mode 100644
index 0000000..e28f2ad
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/blog-1.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/blog-2.png b/addons/dine360_theme_shivasakthi/static/src/img/blog-2.png
new file mode 100644
index 0000000..d8af39d
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/blog-2.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/blog-2.webp b/addons/dine360_theme_shivasakthi/static/src/img/blog-2.webp
new file mode 100644
index 0000000..3407806
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/blog-2.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/blog-3.png b/addons/dine360_theme_shivasakthi/static/src/img/blog-3.png
new file mode 100644
index 0000000..4cb2245
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/blog-3.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/blog-3.webp b/addons/dine360_theme_shivasakthi/static/src/img/blog-3.webp
new file mode 100644
index 0000000..c6a5f32
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/blog-3.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/blog-banner.webp b/addons/dine360_theme_shivasakthi/static/src/img/blog-banner.webp
new file mode 100644
index 0000000..407101e
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/blog-banner.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/blog-detail-1.webp b/addons/dine360_theme_shivasakthi/static/src/img/blog-detail-1.webp
new file mode 100644
index 0000000..c3a45be
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/blog-detail-1.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/blog-detail-2.webp b/addons/dine360_theme_shivasakthi/static/src/img/blog-detail-2.webp
new file mode 100644
index 0000000..1318f36
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/blog-detail-2.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/blog-detail-3.webp b/addons/dine360_theme_shivasakthi/static/src/img/blog-detail-3.webp
new file mode 100644
index 0000000..9862744
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/blog-detail-3.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/blog-detail-banner.webp b/addons/dine360_theme_shivasakthi/static/src/img/blog-detail-banner.webp
new file mode 100644
index 0000000..e8a014e
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/blog-detail-banner.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/blog1-big-img.webp b/addons/dine360_theme_shivasakthi/static/src/img/blog1-big-img.webp
new file mode 100644
index 0000000..0e96637
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/blog1-big-img.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/blog1-card.webp b/addons/dine360_theme_shivasakthi/static/src/img/blog1-card.webp
new file mode 100644
index 0000000..ec29150
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/blog1-card.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/blog2-big-img.webp b/addons/dine360_theme_shivasakthi/static/src/img/blog2-big-img.webp
new file mode 100644
index 0000000..8370c01
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/blog2-big-img.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/blog2-card.webp b/addons/dine360_theme_shivasakthi/static/src/img/blog2-card.webp
new file mode 100644
index 0000000..6fc09b7
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/blog2-card.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/burger-shape.png b/addons/dine360_theme_shivasakthi/static/src/img/burger-shape.png
new file mode 100644
index 0000000..ee44290
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/burger-shape.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/c1-big-img.webp b/addons/dine360_theme_shivasakthi/static/src/img/c1-big-img.webp
new file mode 100644
index 0000000..036c20f
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/c1-big-img.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/c1-card.webp b/addons/dine360_theme_shivasakthi/static/src/img/c1-card.webp
new file mode 100644
index 0000000..32aea09
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/c1-card.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/c2-big-img.webp b/addons/dine360_theme_shivasakthi/static/src/img/c2-big-img.webp
new file mode 100644
index 0000000..51d2665
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/c2-big-img.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/c2-card.webp b/addons/dine360_theme_shivasakthi/static/src/img/c2-card.webp
new file mode 100644
index 0000000..d81ac19
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/c2-card.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/canadian-big-img.webp b/addons/dine360_theme_shivasakthi/static/src/img/canadian-big-img.webp
new file mode 100644
index 0000000..bf7aae2
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/canadian-big-img.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/canadian-card.webp b/addons/dine360_theme_shivasakthi/static/src/img/canadian-card.webp
new file mode 100644
index 0000000..7d38824
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/canadian-card.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/cat-beverages.png b/addons/dine360_theme_shivasakthi/static/src/img/cat-beverages.png
new file mode 100644
index 0000000..812ef22
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/cat-beverages.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/cat-biryani.png b/addons/dine360_theme_shivasakthi/static/src/img/cat-biryani.png
new file mode 100644
index 0000000..f21df78
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/cat-biryani.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/cat-curries.png b/addons/dine360_theme_shivasakthi/static/src/img/cat-curries.png
new file mode 100644
index 0000000..d6ae501
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/cat-curries.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/cat-desserts.png b/addons/dine360_theme_shivasakthi/static/src/img/cat-desserts.png
new file mode 100644
index 0000000..8675583
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/cat-desserts.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/cat-dosa.png b/addons/dine360_theme_shivasakthi/static/src/img/cat-dosa.png
new file mode 100644
index 0000000..794df1a
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/cat-dosa.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/chen-banner-1.webp b/addons/dine360_theme_shivasakthi/static/src/img/chen-banner-1.webp
new file mode 100644
index 0000000..7228c13
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/chen-banner-1.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/chen-banner-2.webp b/addons/dine360_theme_shivasakthi/static/src/img/chen-banner-2.webp
new file mode 100644
index 0000000..6d579d8
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/chen-banner-2.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/chen-banner-3.webp b/addons/dine360_theme_shivasakthi/static/src/img/chen-banner-3.webp
new file mode 100644
index 0000000..a415ae2
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/chen-banner-3.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/choose-left-accent.png b/addons/dine360_theme_shivasakthi/static/src/img/choose-left-accent.png
new file mode 100644
index 0000000..b62564f
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/choose-left-accent.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/choose-main-dish.png b/addons/dine360_theme_shivasakthi/static/src/img/choose-main-dish.png
new file mode 100644
index 0000000..378e9ab
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/choose-main-dish.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/choose-pepper-float.png b/addons/dine360_theme_shivasakthi/static/src/img/choose-pepper-float.png
new file mode 100644
index 0000000..0e3200f
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/choose-pepper-float.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/choose-right-accent.png b/addons/dine360_theme_shivasakthi/static/src/img/choose-right-accent.png
new file mode 100644
index 0000000..0fda454
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/choose-right-accent.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/contact-banner-bg.png b/addons/dine360_theme_shivasakthi/static/src/img/contact-banner-bg.png
new file mode 100644
index 0000000..609837e
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/contact-banner-bg.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/contact-side-img-new.png b/addons/dine360_theme_shivasakthi/static/src/img/contact-side-img-new.png
new file mode 100644
index 0000000..fdad080
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/contact-side-img-new.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/contact-side-img.png b/addons/dine360_theme_shivasakthi/static/src/img/contact-side-img.png
new file mode 100644
index 0000000..fdad080
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/contact-side-img.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/crispy-gobi-65.png b/addons/dine360_theme_shivasakthi/static/src/img/crispy-gobi-65.png
new file mode 100644
index 0000000..517d4aa
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/crispy-gobi-65.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/cuisine-big-img.webp b/addons/dine360_theme_shivasakthi/static/src/img/cuisine-big-img.webp
new file mode 100644
index 0000000..f9f13eb
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/cuisine-big-img.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/cuisine-card.webp b/addons/dine360_theme_shivasakthi/static/src/img/cuisine-card.webp
new file mode 100644
index 0000000..783c89e
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/cuisine-card.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/deal-coffee.png b/addons/dine360_theme_shivasakthi/static/src/img/deal-coffee.png
new file mode 100644
index 0000000..d91b777
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/deal-coffee.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/deal-dosa.png b/addons/dine360_theme_shivasakthi/static/src/img/deal-dosa.png
new file mode 100644
index 0000000..a15ed6e
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/deal-dosa.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/deal-kothu.png b/addons/dine360_theme_shivasakthi/static/src/img/deal-kothu.png
new file mode 100644
index 0000000..7f0310a
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/deal-kothu.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/deal-nuggets.png b/addons/dine360_theme_shivasakthi/static/src/img/deal-nuggets.png
new file mode 100644
index 0000000..88c0b4e
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/deal-nuggets.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/dining-big-img.webp b/addons/dine360_theme_shivasakthi/static/src/img/dining-big-img.webp
new file mode 100644
index 0000000..fc25298
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/dining-big-img.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/dining-card.webp b/addons/dine360_theme_shivasakthi/static/src/img/dining-card.webp
new file mode 100644
index 0000000..7ec00e7
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/dining-card.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/dosa-big-img.webp b/addons/dine360_theme_shivasakthi/static/src/img/dosa-big-img.webp
new file mode 100644
index 0000000..9b4d334
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/dosa-big-img.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/dosa-card.webp b/addons/dine360_theme_shivasakthi/static/src/img/dosa-card.webp
new file mode 100644
index 0000000..47436d8
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/dosa-card.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/faq-banner-bg.png b/addons/dine360_theme_shivasakthi/static/src/img/faq-banner-bg.png
new file mode 100644
index 0000000..1ac99e8
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/faq-banner-bg.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/faq-new-1.png b/addons/dine360_theme_shivasakthi/static/src/img/faq-new-1.png
new file mode 100644
index 0000000..6c63edd
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/faq-new-1.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/faq-new-2.png b/addons/dine360_theme_shivasakthi/static/src/img/faq-new-2.png
new file mode 100644
index 0000000..e618b1a
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/faq-new-2.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/faq-new-3.png b/addons/dine360_theme_shivasakthi/static/src/img/faq-new-3.png
new file mode 100644
index 0000000..6c63edd
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/faq-new-3.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/faq-slide-1.png b/addons/dine360_theme_shivasakthi/static/src/img/faq-slide-1.png
new file mode 100644
index 0000000..b0c560d
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/faq-slide-1.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/faq-slide-2.png b/addons/dine360_theme_shivasakthi/static/src/img/faq-slide-2.png
new file mode 100644
index 0000000..f464034
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/faq-slide-2.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/faq-slide-3.png b/addons/dine360_theme_shivasakthi/static/src/img/faq-slide-3.png
new file mode 100644
index 0000000..7a69370
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/faq-slide-3.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/fav-big-img.webp b/addons/dine360_theme_shivasakthi/static/src/img/fav-big-img.webp
new file mode 100644
index 0000000..34d3094
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/fav-big-img.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/fav-card.webp b/addons/dine360_theme_shivasakthi/static/src/img/fav-card.webp
new file mode 100644
index 0000000..1a3fe61
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/fav-card.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/feb-4-1-big-img.webp b/addons/dine360_theme_shivasakthi/static/src/img/feb-4-1-big-img.webp
new file mode 100644
index 0000000..a66dfed
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/feb-4-1-big-img.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/feb-4-1-card.webp b/addons/dine360_theme_shivasakthi/static/src/img/feb-4-1-card.webp
new file mode 100644
index 0000000..5ac07af
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/feb-4-1-card.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/feb-4-2-big-img.webp b/addons/dine360_theme_shivasakthi/static/src/img/feb-4-2-big-img.webp
new file mode 100644
index 0000000..eff0ab7
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/feb-4-2-big-img.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/feb-4-2-card.webp b/addons/dine360_theme_shivasakthi/static/src/img/feb-4-2-card.webp
new file mode 100644
index 0000000..804c9a5
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/feb-4-2-card.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/feb11-1-big-img.webp b/addons/dine360_theme_shivasakthi/static/src/img/feb11-1-big-img.webp
new file mode 100644
index 0000000..3103729
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/feb11-1-big-img.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/feb11-1-card.webp b/addons/dine360_theme_shivasakthi/static/src/img/feb11-1-card.webp
new file mode 100644
index 0000000..bb28c80
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/feb11-1-card.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/feb11-2-big-img.webp b/addons/dine360_theme_shivasakthi/static/src/img/feb11-2-big-img.webp
new file mode 100644
index 0000000..7bb4a0f
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/feb11-2-big-img.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/feb11-2-card.webp b/addons/dine360_theme_shivasakthi/static/src/img/feb11-2-card.webp
new file mode 100644
index 0000000..ae96531
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/feb11-2-card.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/fiery-fish-curry.png b/addons/dine360_theme_shivasakthi/static/src/img/fiery-fish-curry.png
new file mode 100644
index 0000000..0352bd0
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/fiery-fish-curry.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/french-fries-accent.png b/addons/dine360_theme_shivasakthi/static/src/img/french-fries-accent.png
new file mode 100644
index 0000000..278142f
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/french-fries-accent.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/gallery-1.png b/addons/dine360_theme_shivasakthi/static/src/img/gallery-1.png
new file mode 100644
index 0000000..16d0f70
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/gallery-1.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/gallery-2.png b/addons/dine360_theme_shivasakthi/static/src/img/gallery-2.png
new file mode 100644
index 0000000..982fead
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/gallery-2.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/gallery-3.png b/addons/dine360_theme_shivasakthi/static/src/img/gallery-3.png
new file mode 100644
index 0000000..edb03fe
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/gallery-3.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/good-big-img.webp b/addons/dine360_theme_shivasakthi/static/src/img/good-big-img.webp
new file mode 100644
index 0000000..121215c
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/good-big-img.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/good-card.webp b/addons/dine360_theme_shivasakthi/static/src/img/good-card.webp
new file mode 100644
index 0000000..9747623
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/good-card.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/healthier-big-img.webp b/addons/dine360_theme_shivasakthi/static/src/img/healthier-big-img.webp
new file mode 100644
index 0000000..d40f372
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/healthier-big-img.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/healthier-card.webp b/addons/dine360_theme_shivasakthi/static/src/img/healthier-card.webp
new file mode 100644
index 0000000..40328cf
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/healthier-card.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/hero-bg.jpg b/addons/dine360_theme_shivasakthi/static/src/img/hero-bg.jpg
new file mode 100644
index 0000000..2a27d99
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/hero-bg.jpg differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/hero-dark-texture.png b/addons/dine360_theme_shivasakthi/static/src/img/hero-dark-texture.png
new file mode 100644
index 0000000..7b0ce51
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/hero-dark-texture.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/hero-left-biryani.png b/addons/dine360_theme_shivasakthi/static/src/img/hero-left-biryani.png
new file mode 100644
index 0000000..990914d
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/hero-left-biryani.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/hero-mushroom.png b/addons/dine360_theme_shivasakthi/static/src/img/hero-mushroom.png
new file mode 100644
index 0000000..193b8e7
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/hero-mushroom.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/hero-onion-ring.png b/addons/dine360_theme_shivasakthi/static/src/img/hero-onion-ring.png
new file mode 100644
index 0000000..59aace4
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/hero-onion-ring.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/hero-right-biryani.png b/addons/dine360_theme_shivasakthi/static/src/img/hero-right-biryani.png
new file mode 100644
index 0000000..75caca5
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/hero-right-biryani.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/hero-shape2.png b/addons/dine360_theme_shivasakthi/static/src/img/hero-shape2.png
new file mode 100644
index 0000000..31c795e
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/hero-shape2.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/hero-shape5.png b/addons/dine360_theme_shivasakthi/static/src/img/hero-shape5.png
new file mode 100644
index 0000000..f4c8af6
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/hero-shape5.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/home-testi.webp b/addons/dine360_theme_shivasakthi/static/src/img/home-testi.webp
new file mode 100644
index 0000000..7933aa1
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/home-testi.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/indian-big-img.webp b/addons/dine360_theme_shivasakthi/static/src/img/indian-big-img.webp
new file mode 100644
index 0000000..fca13f8
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/indian-big-img.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/indian-card.webp b/addons/dine360_theme_shivasakthi/static/src/img/indian-card.webp
new file mode 100644
index 0000000..75085d2
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/indian-card.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/indian-veg-big-img.webp b/addons/dine360_theme_shivasakthi/static/src/img/indian-veg-big-img.webp
new file mode 100644
index 0000000..e2fada5
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/indian-veg-big-img.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/indian-veg-card.webp b/addons/dine360_theme_shivasakthi/static/src/img/indian-veg-card.webp
new file mode 100644
index 0000000..7532a50
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/indian-veg-card.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/left-side-image.webp b/addons/dine360_theme_shivasakthi/static/src/img/left-side-image.webp
new file mode 100644
index 0000000..a7e89f1
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/left-side-image.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/logo.png b/addons/dine360_theme_shivasakthi/static/src/img/logo.png
new file mode 100644
index 0000000..f992d54
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/logo.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/offer-dosa-left.webp b/addons/dine360_theme_shivasakthi/static/src/img/offer-dosa-left.webp
new file mode 100644
index 0000000..0cc58d3
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/offer-dosa-left.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/offer-dosa-right.webp b/addons/dine360_theme_shivasakthi/static/src/img/offer-dosa-right.webp
new file mode 100644
index 0000000..e2be5e7
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/offer-dosa-right.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/pizza-shape.png b/addons/dine360_theme_shivasakthi/static/src/img/pizza-shape.png
new file mode 100644
index 0000000..8698673
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/pizza-shape.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/rise-big-img.webp b/addons/dine360_theme_shivasakthi/static/src/img/rise-big-img.webp
new file mode 100644
index 0000000..8604b4e
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/rise-big-img.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/rise-card.webp b/addons/dine360_theme_shivasakthi/static/src/img/rise-card.webp
new file mode 100644
index 0000000..3926da3
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/rise-card.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/science-big-img.webp b/addons/dine360_theme_shivasakthi/static/src/img/science-big-img.webp
new file mode 100644
index 0000000..bbef1fb
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/science-big-img.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/science-card.webp b/addons/dine360_theme_shivasakthi/static/src/img/science-card.webp
new file mode 100644
index 0000000..0a59060
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/science-card.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/serve-big-img.webp b/addons/dine360_theme_shivasakthi/static/src/img/serve-big-img.webp
new file mode 100644
index 0000000..fbb4224
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/serve-big-img.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/serve-card.webp b/addons/dine360_theme_shivasakthi/static/src/img/serve-card.webp
new file mode 100644
index 0000000..33cfd3e
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/serve-card.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/shiva-sakthi-web-banner.webp b/addons/dine360_theme_shivasakthi/static/src/img/shiva-sakthi-web-banner.webp
new file mode 100644
index 0000000..716cc7a
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/shiva-sakthi-web-banner.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/south-big-img.webp b/addons/dine360_theme_shivasakthi/static/src/img/south-big-img.webp
new file mode 100644
index 0000000..8f4794c
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/south-big-img.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/south-card.webp b/addons/dine360_theme_shivasakthi/static/src/img/south-card.webp
new file mode 100644
index 0000000..96dea79
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/south-card.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/southIn-big-img.webp b/addons/dine360_theme_shivasakthi/static/src/img/southIn-big-img.webp
new file mode 100644
index 0000000..33247af
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/southIn-big-img.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/southIn-card.webp b/addons/dine360_theme_shivasakthi/static/src/img/southIn-card.webp
new file mode 100644
index 0000000..952674a
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/southIn-card.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/subtitle-icon.png b/addons/dine360_theme_shivasakthi/static/src/img/subtitle-icon.png
new file mode 100644
index 0000000..b552c8c
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/subtitle-icon.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/testimonial-accent-right.png b/addons/dine360_theme_shivasakthi/static/src/img/testimonial-accent-right.png
new file mode 100644
index 0000000..93b5ce3
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/testimonial-accent-right.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/testimonial-main.jpg b/addons/dine360_theme_shivasakthi/static/src/img/testimonial-main.jpg
new file mode 100644
index 0000000..518ccfa
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/testimonial-main.jpg differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/tomato.png b/addons/dine360_theme_shivasakthi/static/src/img/tomato.png
new file mode 100644
index 0000000..d50959a
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/tomato.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/top-big-img.webp b/addons/dine360_theme_shivasakthi/static/src/img/top-big-img.webp
new file mode 100644
index 0000000..1277707
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/top-big-img.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/top-card.webp b/addons/dine360_theme_shivasakthi/static/src/img/top-card.webp
new file mode 100644
index 0000000..fab7725
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/top-card.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/top5-big-img.webp b/addons/dine360_theme_shivasakthi/static/src/img/top5-big-img.webp
new file mode 100644
index 0000000..b1cc38b
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/top5-big-img.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/top5-card.webp b/addons/dine360_theme_shivasakthi/static/src/img/top5-card.webp
new file mode 100644
index 0000000..406125f
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/top5-card.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/unlimited-thali-left.webp b/addons/dine360_theme_shivasakthi/static/src/img/unlimited-thali-left.webp
new file mode 100644
index 0000000..86733e8
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/unlimited-thali-left.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/unlimited-thali-right.webp b/addons/dine360_theme_shivasakthi/static/src/img/unlimited-thali-right.webp
new file mode 100644
index 0000000..38710d1
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/unlimited-thali-right.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/unlimited-thali.png b/addons/dine360_theme_shivasakthi/static/src/img/unlimited-thali.png
new file mode 100644
index 0000000..e49281f
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/unlimited-thali.png differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/veg-big-img.webp b/addons/dine360_theme_shivasakthi/static/src/img/veg-big-img.webp
new file mode 100644
index 0000000..9e49473
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/veg-big-img.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/img/veg-card.webp b/addons/dine360_theme_shivasakthi/static/src/img/veg-card.webp
new file mode 100644
index 0000000..97d5521
Binary files /dev/null and b/addons/dine360_theme_shivasakthi/static/src/img/veg-card.webp differ
diff --git a/addons/dine360_theme_shivasakthi/static/src/js/category_slider.js b/addons/dine360_theme_shivasakthi/static/src/js/category_slider.js
new file mode 100644
index 0000000..7a5bdc4
--- /dev/null
+++ b/addons/dine360_theme_shivasakthi/static/src/js/category_slider.js
@@ -0,0 +1,89 @@
+/** @odoo-module **/
+
+import publicWidget from "@web/legacy/js/public/public_widget";
+
+publicWidget.registry.CategoryCarousel = publicWidget.Widget.extend({
+ selector: '.s_category_slider',
+ start: function () {
+ this.$track = this.$('.category-track');
+ this.$items = this.$('.category-item');
+
+ if (!this.$track.length || !this.$items.length) {
+ return;
+ }
+
+ this.currentIndex = 0;
+ this.totalOriginal = this.$items.length;
+
+ // Clone all items and append for seamless loop
+ // We ensure we have enough content to scroll endlessly
+ const itemsToClone = this.$items.clone();
+ this.$track.append(itemsToClone);
+
+ // Update items list
+ this.$newItems = this.$('.category-item');
+
+ // 3 seconds interval
+ this._startAutoSlide();
+
+ // Pause on hover
+ this.$el.on('mouseenter', () => this._stopAutoSlide());
+ this.$el.on('mouseleave', () => this._startAutoSlide());
+
+ // Handle window resize to reset alignment
+ $(window).on('resize', () => {
+ this._slide(true);
+ });
+
+ return this._super.apply(this, arguments);
+ },
+
+ _startAutoSlide: function () {
+ if (this.interval) clearInterval(this.interval);
+ this.interval = setInterval(this._slide.bind(this), 3000); // 3 seconds
+ },
+
+ _stopAutoSlide: function () {
+ if (this.interval) clearInterval(this.interval);
+ },
+
+ _slide: function (resize = false) {
+ if (resize) {
+ // Just reset position on resize to avoid misalignment
+ const itemWidth = this.$newItems.first().outerWidth(true);
+ this.$track.css({
+ 'transition': 'none',
+ 'transform': `translateX(-${this.currentIndex * itemWidth}px)`
+ });
+ return;
+ }
+
+ // Get current item width (responsive)
+ const itemWidth = this.$newItems.first().outerWidth(true);
+
+ this.currentIndex++;
+
+ this.$track.css({
+ 'transition': 'transform 0.5s ease-in-out',
+ 'transform': `translateX(-${this.currentIndex * itemWidth}px)`
+ });
+
+ // Loop check
+ // If we have moved past the original set
+ if (this.currentIndex >= this.totalOriginal) {
+ setTimeout(() => {
+ // Snap back to 0 (visually identical position)
+ // We use 0 because 0 is the start of Original Set
+ // When currentIndex == totalOriginal, we are at the start of Cloned Set
+ // Cloned Set is identical to Original Set.
+ this.$track.css({
+ 'transition': 'none',
+ 'transform': 'translateX(0)'
+ });
+ this.currentIndex = 0;
+ }, 500); // Wait for transition to finish
+ }
+ }
+});
+
+export default publicWidget.registry.CategoryCarousel;
diff --git a/addons/dine360_theme_shivasakthi/static/src/js/deal_switcher.js b/addons/dine360_theme_shivasakthi/static/src/js/deal_switcher.js
new file mode 100644
index 0000000..6cd623d
--- /dev/null
+++ b/addons/dine360_theme_shivasakthi/static/src/js/deal_switcher.js
@@ -0,0 +1,98 @@
+/** @odoo-module **/
+
+import publicWidget from "@web/legacy/js/public/public_widget";
+
+publicWidget.registry.DealSwitcher = publicWidget.Widget.extend({
+ selector: '.s_popular_deals_premium',
+ events: {
+ 'mouseenter .deal-item': '_onDealHover',
+ },
+
+ /**
+ * @override
+ */
+ start: function () {
+ this.$centerImg = this.$('#dealCenterImg');
+ return this._super.apply(this, arguments);
+ },
+
+ //--------------------------------------------------------------------------
+ // Handlers
+ //--------------------------------------------------------------------------
+
+ /**
+ * @private
+ * @param {Event} ev
+ */
+ _onDealHover: function (ev) {
+ const $item = $(ev.currentTarget);
+ const newImg = $item.data('deal-img');
+
+ if (newImg && this.$centerImg.length) {
+ // Remove active class from others
+ this.$('.deal-item').removeClass('active');
+ // Add active to current
+ $item.addClass('active');
+
+ // Fade out, change src, fade in
+ this.$centerImg.css('opacity', '0');
+ setTimeout(() => {
+ this.$centerImg.attr('src', newImg);
+ this.$centerImg.css('opacity', '1');
+ }, 300);
+ }
+ },
+});
+
+
+publicWidget.registry.GallerySlider = publicWidget.Widget.extend({
+ selector: '.s_gallery_slider_premium',
+
+ start: function () {
+ this.$track = this.$('.gallery-track');
+ this.slideWidth = 315; // 300px width + 15px gap
+ this.currentIndex = 0;
+ this.totalOriginal = 6;
+
+ // Start auto-slide
+ this._startAutoSlide();
+
+ // Pause on hover
+ this.$el.on('mouseenter', () => this._stopAutoSlide());
+ this.$el.on('mouseleave', () => this._startAutoSlide());
+
+ return this._super.apply(this, arguments);
+ },
+
+ _startAutoSlide: function () {
+ this.interval = setInterval(this._slide.bind(this), 2000);
+ },
+
+ _stopAutoSlide: function () {
+ clearInterval(this.interval);
+ },
+
+ _slide: function () {
+ this.currentIndex++;
+ this.$track.css({
+ 'transition': 'transform 0.8s cubic-bezier(0.165, 0.84, 0.44, 1)',
+ 'transform': `translateX(-${this.currentIndex * this.slideWidth}px)`
+ });
+
+ // Seamless loop reset
+ if (this.currentIndex >= this.totalOriginal) {
+ setTimeout(() => {
+ this.$track.css({
+ 'transition': 'none',
+ 'transform': 'translateX(0)'
+ });
+ this.currentIndex = 0;
+ }, 800); // Match transition duration
+ }
+ }
+});
+
+export default {
+ DealSwitcher: publicWidget.registry.DealSwitcher,
+ GallerySlider: publicWidget.registry.GallerySlider,
+};
diff --git a/addons/dine360_theme_shivasakthi/static/src/scss/primary_variables.scss b/addons/dine360_theme_shivasakthi/static/src/scss/primary_variables.scss
new file mode 100644
index 0000000..e702972
--- /dev/null
+++ b/addons/dine360_theme_shivasakthi/static/src/scss/primary_variables.scss
@@ -0,0 +1,12 @@
+$o-color-palettes: (
+ 'shivasakthi-palette': (
+ 'o-color-1': #ffb800, // Golden-Yellow (Primary)
+ 'o-color-2': #0e1317, // Deep Dark Theme Base (Secondary)
+ 'o-color-3': #FFFFFF, // White text/highlights
+ 'o-color-4': #151a1e, // Lighter Charcoal for section contrast
+ 'o-color-5': #F7F5F0, // Off-white contrast backgrounds
+ ),
+);
+
+// Map the newly created palette to the primary one
+$o-selected-color-palette: 'shivasakthi-palette';
diff --git a/addons/dine360_theme_shivasakthi/static/src/scss/shop.scss b/addons/dine360_theme_shivasakthi/static/src/scss/shop.scss
new file mode 100644
index 0000000..dbbba44
--- /dev/null
+++ b/addons/dine360_theme_shivasakthi/static/src/scss/shop.scss
@@ -0,0 +1,657 @@
+/* Shivasakthi Shop Page - Exact Clone of the Classic Food Theme UI */
+
+:root {
+ --food-green: #ffb800;
+ --food-yellow: #ffb800;
+ --food-text: #333333;
+ --food-light-grey: #f1f1f1;
+ --food-border: #e6e6e6;
+ --food-shadow: 0 10px 25px rgba(0, 0, 0, 0.06);
+}
+
+.form-control,
+.form-select {
+ background-color: #f8f9fa !important;
+ border: 1px solid #ffb800 !important;
+ border-radius: 10px !important;
+ padding: 14px 18px !important;
+ font-size: 15px !important;
+ color: #0e1317 !important;
+ transition: all 0.3s ease;
+}
+
+.oe_website_sale {
+ background-color: #ffffff !important;
+ padding-top: 40px;
+ padding-bottom: 80px;
+
+ /* Sidebar Navigation */
+ #products_grid_before {
+ background: transparent !important;
+ padding-right: 30px !important;
+
+ .food-sidebar-section {
+ margin-bottom: 40px;
+
+ .section-title {
+ display: flex;
+ align-items: center;
+ font-size: 1.1rem;
+ font-weight: 800;
+ color: var(--food-text);
+ text-transform: uppercase;
+ margin-bottom: 25px;
+ letter-spacing: 1px;
+
+ &::before {
+ content: '';
+ display: inline-block;
+ width: 3px;
+ height: 18px;
+ background: var(--food-green);
+ margin-right: 10px;
+ }
+ }
+
+ /* Categories List */
+ .category-list {
+ list-style: none;
+ padding: 0;
+
+ .category-item {
+ margin-bottom: 15px;
+
+ a {
+ display: flex;
+ align-items: center;
+ text-decoration: none;
+ color: #666;
+ font-weight: 600;
+ font-size: 0.9rem;
+ text-transform: uppercase;
+ transition: color 0.3s ease;
+
+ img {
+ width: 20px;
+ margin-right: 15px;
+ opacity: 0.7;
+ }
+
+ &.active,
+ &:hover {
+ color: var(--food-green);
+ background-color: transparent !important;
+
+ img {
+ opacity: 1;
+ }
+ }
+
+ &.active,
+ &.nav-link.active {
+ color: #000000 !important;
+ background-color: transparent !important;
+ border: none !important;
+ box-shadow: none !important;
+
+ span {
+ color: #000000 !important;
+ }
+
+ img {
+ filter: none !important;
+ opacity: 1 !important;
+ }
+ }
+ }
+ }
+ }
+
+ /* Price Filter */
+ .price-slider-wrapper {
+ .slider-rail {
+ height: 4px;
+ background: #eee;
+ position: relative;
+ margin: 20px 0;
+
+ .slider-track {
+ position: absolute;
+ height: 100%;
+ background: var(--food-green);
+ }
+
+ .slider-handle {
+ width: 14px;
+ height: 14px;
+ background: var(--food-green);
+ border-radius: 50%;
+ position: absolute;
+ top: -5px;
+ }
+ }
+
+ .price-label-row {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+
+ .price-text {
+ font-size: 0.85rem;
+ color: #666;
+
+ span {
+ font-weight: 700;
+ color: #333;
+ }
+ }
+
+ .btn-filter {
+ background: var(--food-green);
+ color: white !important;
+ border: none;
+ padding: 6px 18px;
+ border-radius: 4px;
+ font-weight: 700;
+ font-size: 0.8rem;
+ text-transform: uppercase;
+ }
+ }
+ }
+
+ /* New Arrivals */
+ .arrival-list {
+ .arrival-item {
+ display: flex;
+ gap: 15px;
+ margin-bottom: 20px;
+
+ .arrival-img {
+ width: 60px;
+ height: 60px;
+ background: #f9f9f9;
+ border-radius: 50%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ padding: 5px;
+
+ img {
+ width: 100%;
+ }
+ }
+
+ .arrival-info {
+ .rating {
+ color: var(--food-yellow);
+ font-size: 0.7rem;
+ margin-bottom: 4px;
+ }
+
+ .name {
+ font-weight: 700;
+ color: #333;
+ font-size: 0.85rem;
+ line-height: 1.2;
+ margin-bottom: 4px;
+ }
+
+ .price {
+ font-size: 0.8rem;
+
+ del {
+ color: #aaa;
+ margin-right: 6px;
+ }
+
+ span {
+ color: var(--food-green);
+ font-weight: 800;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ /* Top Bar Control */
+ .food-top-bar {
+ background: white;
+ padding: 15px 25px;
+ border-radius: 8px;
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03);
+ margin-bottom: 30px;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ border: 1px solid #f5f5f5;
+
+ .control-left {
+ display: flex;
+ align-items: center;
+ gap: 20px;
+
+ .btn-filtering {
+ background: transparent;
+ border: 1px solid #eee;
+ padding: 8px 15px;
+ border-radius: 4px;
+ color: #333;
+ font-size: 0.85rem;
+ font-weight: 700;
+
+ i {
+ color: var(--food-green);
+ margin-right: 8px;
+ }
+ }
+
+ .result-count {
+ font-size: 0.85rem;
+ color: #888;
+
+ span {
+ font-weight: 700;
+ color: var(--food-green);
+ }
+ }
+ }
+
+ .control-right {
+ display: flex;
+ align-items: center;
+ gap: 25px;
+
+ .sort-by-wrapper {
+ font-size: 0.85rem;
+ color: #888;
+
+ span {
+ color: #333;
+ font-weight: 700;
+ margin-left: 8px;
+ }
+ }
+
+ .view-switcher {
+ display: flex;
+ gap: 5px;
+
+ .view-btn {
+ width: 32px;
+ height: 32px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ border: 1px solid #eee;
+ border-radius: 4px;
+ color: #aaa;
+
+ &.active {
+ background: #f5f5f5;
+ color: var(--food-green);
+ border-color: #ddd;
+ }
+ }
+ }
+ }
+ }
+
+ /* Product Cards Grid */
+ #products_grid {
+ .oe_product {
+ padding: 15px !important;
+
+ .oe_product_cart {
+ border: none !important;
+ background: white !important;
+ border-radius: 12px !important;
+ box-shadow: var(--food-shadow) !important;
+ overflow: hidden !important;
+ transition: transform 0.4s ease !important;
+ position: relative !important;
+
+ &:hover {
+ transform: translateY(-10px) !important;
+
+ .btn-add-to-cart-overlay {
+ opacity: 1;
+ transform: translateY(0);
+ }
+ }
+
+ /* Highlighted Cards (Yellow BG) */
+ &.card-highlighted {
+ background: var(--food-yellow) !important;
+
+ .o_wsale_product_information {
+ background: var(--food-yellow) !important;
+ }
+
+ .btn-add-to-cart-overlay {
+ background: var(--food-text) !important;
+ color: white !important;
+ }
+ }
+
+ .oe_product_image {
+ height: 240px !important;
+ position: relative !important;
+ background: transparent !important;
+ padding: 0 !important;
+
+ img {
+ object-fit: contain !important;
+ height: 100% !important;
+ width: 100% !important;
+ transition: transform 0.5s ease;
+ }
+
+ .wishlist-btn {
+ position: absolute;
+ top: 15px;
+ left: 15px;
+ width: 36px;
+ height: 36px;
+ background: #333;
+ color: white !important;
+ border-radius: 6px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ font-size: 0.9rem;
+ z-index: 10;
+ }
+
+ .discount-badge {
+ position: absolute;
+ top: 15px;
+ right: 15px;
+ background: var(--food-yellow);
+ color: #333;
+ font-weight: 800;
+ padding: 4px 8px;
+ border-radius: 4px;
+ font-size: 0.75rem;
+ z-index: 10;
+ }
+ }
+
+ .o_wsale_product_information {
+ padding: 15px 20px 25px !important;
+ text-align: center !important;
+ background: white !important;
+
+ .btn-add-to-cart-overlay {
+ background: #ffb800 !important;
+ color: #000000 !important;
+ padding: 10px;
+ border-radius: 6px;
+ font-weight: 700;
+ font-size: 0.85rem;
+ text-transform: uppercase;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ gap: 10px;
+ margin-bottom: 15px;
+ opacity: 0;
+ transform: translateY(10px);
+ transition: all 0.3s ease;
+ text-decoration: none;
+
+ i {
+ font-size: 1rem;
+ }
+ }
+
+ .price-row {
+ margin-bottom: 8px;
+
+ del {
+ color: #aaa;
+ margin-right: 8px;
+ font-size: 0.8rem;
+ }
+
+ span {
+ color: #333;
+ font-weight: 800;
+ font-size: 1rem;
+ }
+ }
+
+ .o_wsale_products_item_title {
+ margin-bottom: 10px !important;
+
+ a {
+ font-size: 0.95rem !important;
+ font-weight: 800 !important;
+ color: var(--food-text) !important;
+ text-transform: uppercase;
+ letter-spacing: 0.5px;
+ }
+ }
+
+ .star-rating {
+ color: var(--food-yellow);
+ font-size: 0.75rem;
+ display: flex;
+ justify-content: center;
+ gap: 2px;
+ }
+ }
+ }
+ }
+ }
+
+ /* Custom Pagination */
+ .products_pager {
+ margin-top: 60px;
+
+ ul.pagination {
+ justify-content: center !important;
+ gap: 10px;
+
+ li.page-item {
+ .page-link {
+ width: 40px;
+ height: 40px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ border: 1px solid #eee;
+ border-radius: 50% !important;
+ color: #666;
+ font-weight: 700;
+ font-size: 0.9rem;
+ background: white;
+
+ &:hover {
+ background: #f5f5f5;
+ border-color: #ddd;
+ }
+ }
+
+ &.active .page-link {
+ background: var(--food-green) !important;
+ color: white !important;
+ border-color: var(--food-green) !important;
+ box-shadow: 0 5px 15px rgba(0, 104, 55, 0.2);
+ }
+ }
+ }
+ }
+}
+
+/* Product Details Page Styling */
+#product_detail {
+ padding-top: 50px;
+
+ /* Breadcrumb Color */
+ .breadcrumb-item a {
+ color: #ffb800 !important;
+ font-weight: 700 !important;
+ }
+
+ .product-details-wrapper {
+ .display-5 {
+ font-weight: 800;
+ color: var(--food-text);
+ letter-spacing: -0.5px;
+ }
+
+ .product-price {
+ h2 {
+ color: var(--food-green);
+ font-family: inherit;
+ }
+ }
+
+ .css_quantity {
+ border: 2px solid #eee !important;
+ border-radius: 50px !important;
+ overflow: visible !important;
+ display: inline-flex;
+ margin-right: 15px;
+ background: white !important;
+ height: 45px !important;
+ align-items: center;
+
+
+ .btn {
+ border: none !important;
+ background: transparent !important;
+ padding: 0 15px !important;
+ color: #333 !important;
+
+ &:hover {
+ background: #f9f9f9 !important;
+ }
+ }
+
+ .quantity {
+ border: none !important;
+ width: 80px !important;
+ max-width: 80px !important;
+ text-align: center !important;
+ font-weight: 900 !important;
+ font-size: 20px !important;
+ background: #ffffff !important;
+ color: #000000 !important;
+ padding: 0 !important;
+ margin: 0 !important;
+ height: 45px !important;
+ display: inline-block !important;
+ vertical-align: middle !important;
+ line-height: 45px !important;
+ box-shadow: none !important;
+ outline: none !important;
+ appearance: none !important;
+ -webkit-appearance: none !important;
+ }
+
+
+ }
+
+ #add_to_cart {
+ background: #ffb800 !important;
+ color: #000000 !important;
+ border: none !important;
+ border-radius: 50px !important;
+ padding: 12px 40px !important;
+ font-weight: 800 !important;
+ text-transform: uppercase !important;
+ letter-spacing: 1px !important;
+ transition: all 0.3s !important;
+ box-shadow: 0 10px 20px rgba(254, 205, 79, 0.2) !important;
+
+ &:hover {
+ background: #e5b945 !important;
+ transform: translateY(-2px) !important;
+ }
+ }
+ }
+}
+
+/* Hide Duplicate Odoo Elements on Product Page */
+#product_details {
+ display: flex !important;
+ flex-direction: column !important;
+
+ /* Hide ANY title, price, or description that is NOT inside our custom wrapper */
+ >h1:not(.display-5),
+ >.product_price,
+ >#product_attributes_simple,
+ >.text-muted:not(.Shivasakthi-premium-content *),
+ >div[data-name="description_sale"] {
+ display: none !important;
+ }
+
+ /* Target the Terms and Conditions block */
+
+ /* Dedicated hide for Odoo's extra info */
+ hr+div,
+ a[href*="terms-and-conditions"] {
+ display: none !important;
+ }
+
+ /* Force Add to Cart to theme yellow everywhere in shop */
+ #add_to_cart,
+ .a-submit,
+ .btn-add-to-cart-overlay {
+ background: #ffb800 !important;
+ color: #000000 !important;
+ border: none !important;
+ }
+}
+
+/* Update "View cart" button color in toast notification */
+.o_wsale_toast .btn-primary,
+.o_wsale_add_to_cart_message a.btn-primary,
+#wsale_ajax_cart_msg a.btn-primary {
+ background-color: #ffb800 !important;
+ color: #000000 !important;
+ border-color: #ffb800 !important;
+ font-weight: 700 !important;
+ box-shadow: 0 4px 12px rgba(254, 205, 79, 0.2) !important;
+ transition: all 0.3s ease !important;
+}
+
+.o_wsale_toast .btn-primary:hover,
+.o_wsale_add_to_cart_message a.btn-primary:hover,
+#wsale_ajax_cart_msg a.btn-primary:hover {
+ background-color: #e5b945 !important;
+ border-color: #e5b945 !important;
+ transform: translateY(-1px) !important;
+}
+
+/* Update Checkout button on cart page */
+#o_cart_summary .btn-primary,
+.oe_website_sale .btn-primary[href='/shop/checkout'],
+.oe_website_sale .btn-primary.a-submit,
+.oe_website_sale a.btn-primary,
+.oe_cart .btn-primary {
+ background-color: #ffb800 !important;
+ color: #0e1317 !important;
+ border-color: #ffb800 !important;
+ font-weight: 800 !important;
+ text-transform: uppercase !important;
+ padding: 12px 30px !important;
+ border-radius: 8px !important;
+ transition: all 0.3s ease !important;
+ box-shadow: 0 4px 15px rgba(254, 205, 79, 0.2) !important;
+}
+
+#o_cart_summary .btn-primary:hover,
+.oe_website_sale .btn-primary[href='/shop/checkout']:hover,
+.oe_website_sale .btn-primary.a-submit:hover,
+.oe_website_sale a.btn-primary:hover,
+.oe_cart .btn-primary:hover {
+ background-color: #e5b945 !important;
+ border-color: #e5b945 !important;
+ transform: translateY(-2px) !important;
+ color: #000000 !important;
+ box-shadow: 0 6px 20px rgba(254, 205, 79, 0.4) !important;
+}
diff --git a/addons/dine360_theme_shivasakthi/static/src/scss/theme.scss b/addons/dine360_theme_shivasakthi/static/src/scss/theme.scss
new file mode 100644
index 0000000..dead622
--- /dev/null
+++ b/addons/dine360_theme_shivasakthi/static/src/scss/theme.scss
@@ -0,0 +1,2230 @@
+/* Global Font Family Overrides */
+h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
+ font-family: 'Bebas Neue', sans-serif !important;
+}
+p, li, .lead, .hero-desc, .blog-excerpt {
+ font-family: 'Roboto', sans-serif !important;
+}
+
+/* Shivasakthi Theme Custom Styles */
+
+/* Header Navigation Styles */
+header {
+ border: none !important;
+
+ /* Main Nav (Black/Charcoal by default, absolute transparent on homepage) */
+ .o_header_main_nav {
+ background-color: #0c0f12 !important; /* Sleek dark header base */
+ box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);
+ transition: all 0.3s ease;
+
+ .navbar-nav {
+ .nav-link {
+ color: white !important;
+ font-family: 'Bebas Neue', sans-serif !important;
+ font-size: 16px;
+ font-weight: 400;
+ text-transform: uppercase;
+ letter-spacing: 1.5px;
+ padding: 12px 18px !important;
+ transition: color 0.3s ease;
+
+ &:hover, &.active {
+ color: #ffb800 !important;
+ }
+ }
+ }
+
+ .navbar-brand img {
+ transition: transform 0.3s ease;
+
+ &:hover {
+ transform: scale(1.05);
+ }
+ }
+
+ /* Order Now Button */
+ .btn-order-now {
+ background-color: #ffb800 !important;
+ color: white !important;
+ border: none;
+ border-radius: 4px;
+ font-family: 'Bebas Neue', sans-serif !important;
+ font-weight: 400;
+ font-size: 15px;
+ letter-spacing: 1px;
+ padding: 10px 24px !important;
+ transition: all 0.3s ease;
+ text-transform: uppercase;
+
+ &:hover {
+ background-color: white !important;
+ color: #ffb800 !important;
+ transform: translateY(-2px);
+ box-shadow: 0 5px 15px rgba(254, 205, 79, 0.4);
+ }
+ }
+
+ /* Cart Icon and Badge Styling */
+ .o_wsale_shopping_cart {
+ padding: 10px !important;
+ transition: all 0.3s ease;
+
+ &:hover {
+ transform: translateY(-2px);
+
+ .fa-shopping-cart {
+ color: #ffb800 !important;
+ }
+
+ .cart-badge {
+ color: white !important;
+ background-color: #ffb800 !important;
+ opacity: 1 !important;
+ }
+ }
+
+ .cart-badge {
+ color: white !important;
+ background-color: #ffb800 !important;
+ font-weight: 800 !important;
+ z-index: 10;
+ border: 2px solid #0c0f12 !important;
+ transition: all 0.3s ease;
+ }
+ }
+
+ /* Mobile Icon (Hamburger) Fix */
+ .navbar-toggler {
+ border: 1px solid rgba(255, 255, 255, 0.2) !important;
+ padding: 8px !important;
+ margin: 10px 0;
+ display: inline-flex !important;
+ align-items: center;
+ justify-content: center;
+
+ .navbar-toggler-icon {
+ filter: none !important;
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='white' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") !important;
+ }
+
+ &:focus {
+ box-shadow: none !important;
+ }
+ }
+ }
+}
+
+/* Absolute transparent header overlay on Homepage only */
+@media (min-width: 992px) {
+ body.homepage {
+ header.header_transparent_overlay {
+ position: absolute !important;
+ width: 100%;
+ top: 0;
+ left: 0;
+ z-index: 1000;
+ background-color: transparent !important;
+ border: none !important;
+
+ .o_header_main_nav {
+ background-color: transparent !important;
+ box-shadow: none !important;
+ }
+ }
+ }
+}
+
+// Hero Button Hover
+.btn-lg.flat:hover,
+.btn-custom:hover {
+ background-color: #ffb800 !important;
+ color: white !important;
+ transform: translateY(-3px);
+ transition: all 0.3s ease;
+}
+
+// Category Card Hover
+.category-item {
+ transition: all 0.3s ease;
+ cursor: pointer;
+
+ &:hover {
+ transform: translateY(-10px);
+
+ .category-img {
+ border-color: #ffb800 !important;
+ box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
+ }
+ }
+}
+
+// Background Text Overlay
+.bg-text-overlay {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ width: 100%;
+ text-align: center;
+ z-index: 0;
+ pointer-events: none;
+
+ h1 {
+ font-size: 8rem;
+ font-weight: 900;
+ color: rgba(0, 0, 0, 0.03); // Very subtle
+ white-space: nowrap;
+ text-transform: uppercase;
+ margin: 0;
+ }
+}
+
+// Hero Shape Animation
+.hero-half-tomato-left {
+ position: absolute;
+ top: 50%;
+ left: -40%;
+ width: clamp(120px, 15vw, 250px);
+ z-index: 2;
+ pointer-events: none;
+ filter: drop-shadow(5px 5px 15px rgba(0, 0, 0, 0.3));
+ animation: floatSlight 15s ease-in-out infinite;
+}
+
+@keyframes shapeFloat {
+
+ 0%,
+ 100% {
+ transform: translateY(0) rotate(0deg) scale(1);
+ }
+
+ 33% {
+ transform: translateY(-20px) rotate(3deg) scale(1.02);
+ }
+
+ 66% {
+ transform: translateY(10px) rotate(-2deg) scale(0.98);
+ }
+}
+
+@keyframes floatSlight {
+
+ 0%,
+ 100% {
+ transform: translate(0, 0) rotate(0deg);
+ }
+
+ 50% {
+ transform: translate(15px, -15px) rotate(5deg);
+ }
+}
+
+@keyframes floatRotate {
+ 0% {
+ transform: translateY(0) rotate(0deg);
+ }
+
+ 50% {
+ transform: translateY(-30px) rotate(180deg);
+ }
+
+ 100% {
+ transform: translateY(0) rotate(360deg);
+ }
+}
+
+@keyframes pulseSubtle {
+
+ 0%,
+ 100% {
+ transform: scale(1);
+ opacity: 0.8;
+ }
+
+ 50% {
+ transform: scale(1.05);
+ opacity: 1;
+ }
+}
+
+// Hero Floating Elements
+.hero-tomato-right {
+ position: absolute;
+ top: 5%;
+ right: 2%;
+ width: clamp(100px, 15vw, 220px);
+ z-index: 2;
+ pointer-events: none;
+ filter: drop-shadow(10px 10px 20px rgba(0, 0, 0, 0.3));
+ animation: shapeFloat 8s ease-in-out infinite;
+}
+
+.hero-leaf-right {
+ position: absolute;
+ top: 25%;
+ right: 8%;
+ width: 60px;
+ z-index: 1;
+ pointer-events: none;
+ animation: floatSlight 10s ease-in-out infinite reverse;
+}
+
+.hero-lettuce-left {
+ position: absolute;
+ bottom: -40%;
+ left: -40%;
+ width: clamp(150px, 20vw, 350px);
+ z-index: 3;
+ pointer-events: none;
+ filter: drop-shadow(-10px 10px 25px rgba(0, 0, 0, 0.4));
+ animation: shapeFloat 12s ease-in-out infinite;
+}
+
+.hero-sketches-left {
+ position: absolute;
+ top: 10%;
+ left: 4%;
+ width: clamp(200px, 25vw, 400px);
+ z-index: 1;
+ pointer-events: none;
+ opacity: 0.25;
+ animation: floatSlight 20s linear infinite;
+}
+
+// Section Headers
+section h2.display-3,
+section h2.display-4 {
+ font-size: 40px !important;
+ font-weight: 900 !important;
+ line-height: 50px !important;
+ text-transform: uppercase;
+ letter-spacing: -0.5px;
+
+ @media (max-width: 991px) {
+ font-size: 32px !important;
+ line-height: 42px !important;
+ }
+
+ @media (max-width: 767px) {
+ font-size: 28px !important;
+ line-height: 38px !important;
+ }
+}
+
+.section-title-wrapper {
+ position: relative;
+ z-index: 1;
+ text-align: center;
+ margin-bottom: 50px;
+
+ .title-icon {
+ width: 40px;
+ margin: 0 10px;
+ filter: brightness(0.8);
+ }
+}
+
+// Marquee Animation
+.quee-container {
+ overflow: hidden;
+ position: relative;
+ background: #f4f1ea;
+ padding: 40px 0;
+
+ .quee-content {
+ display: flex;
+ width: 200%;
+ animation: marquee 30s linear infinite;
+
+ h1 {
+ font-size: 6rem;
+ font-weight: 900;
+ color: rgba(0, 0, 0, 0.05);
+ white-space: nowrap;
+ text-transform: uppercase;
+ margin: 0;
+ padding-right: 100px;
+ letter-spacing: 5px;
+ }
+ }
+}
+
+@keyframes marquee {
+ 0% {
+ transform: translateX(0);
+ }
+
+ 100% {
+ transform: translateX(-50%);
+ }
+}
+
+// Slider Adjustments
+#categoryCarousel {
+ .carousel-inner {
+ padding-bottom: 20px;
+ }
+}
+
+// About Section Styles
+.s_about_premium {
+ position: relative;
+ overflow: hidden;
+ background-color: #F4F1EA !important;
+ padding: 100px 0;
+
+ .floating-lemon {
+ position: absolute;
+ left: -40px;
+ top: 35%;
+ width: 150px;
+ z-index: 10;
+ animation: float 6s ease-in-out infinite;
+ }
+
+ .floating-leaves {
+ position: absolute;
+ left: 80px;
+ bottom: 8%;
+ width: 180px;
+ z-index: 10;
+ animation: float 8s ease-in-out infinite;
+ }
+
+ .floating-bellpepper {
+ position: absolute;
+ right: -30px;
+ top: 80px;
+ width: 140px;
+ z-index: 10;
+ animation: float 7s ease-in-out infinite;
+ }
+
+ .about-image-wrapper {
+ position: relative;
+ display: inline-block;
+
+ &::before {
+ content: "";
+ position: absolute;
+ left: -15px;
+ top: -15px;
+ width: 100%;
+ height: 100%;
+ z-index: 0;
+ pointer-events: none;
+ }
+
+ img {
+ position: relative;
+ z-index: 5;
+ max-width: 100%;
+ height: auto;
+ display: block;
+ }
+ }
+
+ .about-content {
+ h2 {
+ font-size: 2.8rem;
+ font-weight: 900;
+ color: #0e1317;
+ line-height: 1.2;
+ margin-bottom: 25px;
+ }
+
+ h5 {
+ font-size: 1.2rem;
+ font-weight: 700;
+ color: #0e1317;
+ margin-bottom: 20px;
+ }
+
+ p {
+ font-size: 15px;
+ color: rgba(4, 18, 29, 0.7);
+ line-height: 1.8;
+ margin-bottom: 20px;
+ }
+ }
+}
+
+@keyframes float {
+ 0% {
+ transform: translateY(0px) rotate(0deg);
+ }
+
+ 50% {
+ transform: translateY(-20px) rotate(5deg);
+ }
+
+ 100% {
+ transform: translateY(0px) rotate(0deg);
+ }
+}
+
+/* Contact Section Premium */
+.s_contact_premium {
+ background-color: #F4F1EA !important;
+ padding: 100px 0;
+ position: relative;
+ overflow: hidden;
+
+ .contact-image-wrapper {
+ position: relative;
+ display: inline-block;
+
+ &::before {
+ content: "";
+ position: absolute;
+ left: -15px;
+ top: -15px;
+ width: 100%;
+ height: 100%;
+ z-index: 0;
+ pointer-events: none;
+ }
+
+ img {
+ position: relative;
+ z-index: 5;
+ max-width: 100%;
+ height: auto;
+ display: block;
+ }
+ }
+
+ .contact-form-card {
+ background: white;
+ padding: 50px;
+ border-radius: 15px;
+ box-shadow: 0 15px 40px rgba(0, 0, 0, 0.05);
+
+ h2 {
+ font-size: 2.2rem;
+ font-weight: 800;
+ color: #0e1317;
+ line-height: 1.3;
+ margin-bottom: 35px;
+ }
+
+ .s_website_form_label {
+ font-size: 14px;
+ font-weight: 500;
+ color: #666;
+ margin-bottom: 8px;
+ display: block;
+ text-align: left !important;
+ width: auto !important;
+ padding: 0 !important;
+
+ .s_website_form_mark {
+ color: #ffb800;
+ margin-left: 3px;
+ }
+ }
+
+ .form-control,
+ .form-select {
+ background-color: #f8f9fa !important;
+ border: 1px solid #ffb800 !important;
+ border-radius: 10px !important;
+ padding: 14px 18px !important;
+ font-size: 15px !important;
+ color: #0e1317 !important;
+ transition: all 0.3s ease;
+
+ &::placeholder {
+ color: #adb5bd;
+ }
+
+ &:focus {
+ border-color: rgba(43, 177, 165, 0.3) !important;
+ background-color: white !important;
+ box-shadow: 0 5px 15px rgba(43, 177, 165, 0.1) !important;
+ }
+ }
+
+ .s_website_form_send {
+ background-color: #ffb800 !important;
+ color: #0e1317 !important;
+ border: none !important;
+ border-radius: 10px !important;
+ padding: 16px !important;
+ font-weight: 800 !important;
+ font-size: 15px !important;
+ text-transform: uppercase !important;
+ letter-spacing: 1px !important;
+ width: 100% !important;
+ margin-top: 15px !important;
+ display: flex !important;
+ align-items: center !important;
+ justify-content: center !important;
+ gap: 10px;
+ transition: all 0.3s ease !important;
+ box-shadow: 0 4px 10px rgba(254, 205, 79, 0.2) !important;
+
+ &:hover {
+ background-color: #0e1317 !important;
+ color: #ffb800 !important;
+ transform: translateY(-2px) !important;
+ box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2) !important;
+ }
+
+ &::after {
+ content: "\2192";
+ font-size: 18px;
+ }
+ }
+ }
+}
+
+// Why Choose Section
+.s_why_choose_premium {
+ background-color: #0e1317;
+ position: relative;
+ overflow: hidden;
+
+ .choose-left-accent {
+ position: absolute;
+ left: 0;
+ bottom: -20px;
+ width: 180px;
+ z-index: 1;
+ opacity: 0.9;
+ }
+
+ .choose-right-accent {
+ position: absolute;
+ right: 0;
+ top: 10%;
+ width: 250px;
+ z-index: 1;
+ opacity: 0.9;
+ }
+
+ .choose-pepper-float {
+ position: absolute;
+ left: 5%;
+ top: 10%;
+ width: 80px;
+ z-index: 2;
+ animation: float 5s ease-in-out infinite;
+ }
+
+ .choose-main-dish-wrapper {
+ position: relative;
+ z-index: 5;
+
+ &::after {
+ content: "";
+ position: absolute;
+ top: -20px;
+ right: 20%;
+ width: 300px;
+ height: 200px;
+ background: radial-gradient(circle, rgba(255, 255, 255, 0.05) 0%, transparent 70%);
+ z-index: -1;
+ }
+
+ img {
+ filter: drop-shadow(0 30px 50px rgba(0, 0, 0, 0.5));
+ }
+ }
+
+ .choose-content {
+ position: relative;
+ z-index: 10;
+
+ h6 {
+ font-weight: 800;
+ letter-spacing: 1px;
+ }
+
+ h2 {
+ letter-spacing: -1px;
+ margin-bottom: 25px;
+ }
+
+ p {
+ line-height: 1.8;
+ opacity: 0.8;
+ }
+ }
+}
+
+// Popular Deals Section
+.s_popular_deals_premium {
+ background-color: white;
+
+ .deal-item {
+ display: flex;
+ align-items: center;
+ margin-bottom: 10px;
+ transition: all 0.3s ease;
+ padding: 10px;
+ border-radius: 8px;
+ cursor: pointer;
+
+ &:hover,
+ &.active {
+ background-color: #f8f9fa;
+ box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
+
+ h6 {
+ color: #ffb800 !important;
+ }
+ }
+
+ .deal-img-wrapper {
+ width: 80px;
+ height: 80px;
+ flex-shrink: 0;
+ background: #f8f9fa;
+ border-radius: 4px;
+ overflow: hidden;
+ margin-right: 15px;
+
+ img {
+ width: 100%;
+ height: 100%;
+ object-fit: cover;
+ }
+ }
+
+ .deal-details {
+ flex-grow: 1;
+
+ h6 {
+ font-size: 18px;
+ font-weight: 800;
+ color: #0e1317;
+ margin-bottom: 2px;
+ }
+
+ p {
+ font-size: 12px;
+ color: #888;
+ margin: 0;
+ }
+ }
+
+ .deal-price {
+ font-size: 16px;
+ font-weight: 800;
+ color: #0e1317;
+ white-space: nowrap;
+ }
+ }
+
+ .deal-center-image {
+ position: relative;
+ padding: 20px;
+
+ &::before {
+ content: "";
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background: #ffb800d4;
+ z-index: 0;
+ border-radius: 4px;
+ }
+
+ img {
+ position: relative;
+ z-index: 1;
+ width: 100%;
+ // border-radius: 50%;
+ box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
+ }
+ }
+}
+
+// Testimonials Section
+.s_testimonials_premium {
+ background-color: #0e1317;
+ position: relative;
+ overflow: hidden;
+
+ .testimonial-main-image-wrapper {
+ position: relative;
+ border-radius: 0 400px 400px 0;
+ overflow: hidden;
+ border-right: 15px solid #ffb800;
+
+ img {
+ width: 100%;
+ height: 100%;
+ object-fit: cover;
+ }
+
+ .video-btn-wrapper {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ z-index: 20;
+
+ .play-btn {
+ width: 150px;
+ height: 150px;
+ background: transparent;
+ border: none;
+ position: relative;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ cursor: pointer;
+
+ .play-icon {
+ width: 70px;
+ height: 70px;
+ background: white;
+ border-radius: 50%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ color: #0e1317;
+ font-size: 24px;
+ box-shadow: 0 0 20px rgba(0, 0, 0, 0.3);
+ z-index: 5;
+ }
+
+ .rotating-text {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ animation: rotate 15s linear infinite;
+
+ img {
+ width: 100%;
+ height: 100%;
+ object-fit: contain;
+ }
+ }
+ }
+ }
+ }
+
+ .testimonial-content-side {
+ padding: 80px 40px;
+ position: relative;
+ z-index: 10;
+ color: white;
+
+ .google-reviews-logo {
+ width: 180px;
+ margin-bottom: 25px;
+ }
+
+ .testimonial-carousel {
+ .carousel-item {
+ p {
+ font-size: 18px;
+ line-height: 1.8;
+ font-style: italic;
+ color: rgba(255, 255, 255, 0.8);
+ }
+ }
+ }
+
+ .testimonial-controls {
+ display: flex;
+ gap: 15px;
+ margin-top: 40px;
+
+ .control-btn {
+ width: 50px;
+ height: 50px;
+ border: 1px solid rgba(255, 255, 255, 0.3);
+ border-radius: 50%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ color: white;
+ background: transparent;
+ transition: all 0.3s ease;
+
+ &:hover {
+ background: #ffb800;
+ border-color: #ffb800;
+ color: #0e1317;
+ }
+
+ &.next-btn {
+ background: #ffb800;
+ border-color: #ffb800;
+ color: #0e1317;
+ }
+ }
+ }
+ }
+
+ .testimonial-accent-right {
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ width: 150px;
+ z-index: 5;
+ }
+}
+
+@keyframes rotate {
+ from {
+ transform: rotate(0deg);
+ }
+
+ to {
+ transform: rotate(360deg);
+ }
+}
+
+// FAQ Section
+.s_faq_premium {
+ background-color: #F4F1EA;
+
+ .faq-accordion {
+ .accordion-item {
+ background-color: white;
+ border: none;
+ border-radius: 12px !important;
+ margin-bottom: 20px;
+ box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
+ overflow: hidden;
+
+ .accordion-button {
+ background-color: white;
+ color: #0e1317;
+ font-weight: 700;
+ padding: 20px 25px;
+ border: none;
+ box-shadow: none;
+ position: relative;
+ font-size: 18px;
+
+ &:not(.collapsed) {
+ color: #ffb800;
+
+ &::after {
+ content: "-";
+ transform: none;
+ background-image: none;
+ color: #ffb800;
+ font-size: 30px;
+ line-height: 1;
+ }
+ }
+
+ &::after {
+ content: "+";
+ background-image: none;
+ color: #ffb800;
+ font-size: 24px;
+ font-weight: 300;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+ }
+
+ .accordion-body {
+ padding: 0 25px 25px;
+ color: #555;
+ font-size: 15px;
+ line-height: 1.6;
+ }
+ }
+ }
+
+ .faq-carousel-wrapper {
+ border-radius: 15px;
+ overflow: hidden;
+ box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
+
+ .carousel-control-prev,
+ .carousel-control-next {
+ width: 40px;
+ height: 40px;
+ background: #ffb800;
+ border-radius: 50%;
+ top: 50%;
+ transform: translateY(-50%);
+ opacity: 0.9;
+
+ span {
+ color: #0e1317;
+ font-size: 12px;
+ }
+ }
+
+ .carousel-control-prev {
+ left: 15px;
+ }
+
+ .carousel-control-next {
+ right: 15px;
+ }
+ }
+
+}
+
+// Global button class for multiple sections
+.know-more-btn {
+ background-color: #ffb800;
+ color: #0e1317 !important;
+ font-weight: 700;
+ padding: 12px 30px;
+ border-radius: 4px;
+ text-transform: uppercase;
+ display: inline-flex;
+ align-items: center;
+ gap: 10px;
+ margin-top: 30px;
+ text-decoration: none;
+ transition: all 0.3s ease;
+
+ span {
+ background: black;
+ color: white !important;
+ width: 24px;
+ height: 24px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ border-radius: 2px;
+ font-size: 12px;
+ transition: all 0.3s ease;
+
+ i {
+ color: white !important;
+ }
+ }
+
+ &:hover {
+ background-color: #ffb800 !important;
+ color: white !important;
+ transform: translateY(-3px);
+
+ span {
+ background-color: white !important;
+ color: #ffb800 !important;
+
+ i {
+ color: #ffb800 !important;
+ }
+ }
+ }
+}
+
+// Blog Detail Page - ensure content is not hidden by floating footer CTA bar
+// The footer's .footer-cta-bar-wrapper uses margin-top: -140px to float up into page content
+.s_blog_detail_section {
+ padding-bottom: 100px !important;
+}
+
+// Also ensure the oe_structure wrap div doesn't clip content
+#wrap>.s_blog_detail_section:last-child {
+ padding-bottom: 100px !important;
+}
+
+// Blog Section
+.s_blog_premium {
+ background-color: #F4F1EA;
+ position: relative;
+ overflow: hidden;
+
+ .blog-card {
+ background: white;
+ border-radius: 12px;
+ overflow: hidden;
+ height: 100%;
+ box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
+ transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
+ position: relative;
+ color: #0e1317;
+
+ .blog-img-wrapper {
+ position: relative;
+ height: 280px;
+ overflow: hidden;
+
+ img {
+ width: 100%;
+ height: 100%;
+ object-fit: cover;
+ transition: transform 0.6s cubic-bezier(0.165, 0.84, 0.44, 1);
+ }
+
+ .date-badge {
+ position: absolute;
+ bottom: -20px;
+ left: 20px;
+ width: 60px;
+ height: 60px;
+ background: white;
+ border: 2px solid #ffb800;
+ border-radius: 8px;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ font-weight: 700;
+ z-index: 5;
+ box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
+ transition: all 0.3s ease;
+
+ span {
+ display: block;
+ line-height: 1;
+
+ &:first-child {
+ font-size: 20px;
+ color: #0e1317;
+ transition: color 0.3s;
+ }
+
+ &:last-child {
+ font-size: 10px;
+ color: #ffb800;
+ text-transform: uppercase;
+ transition: color 0.3s;
+ }
+ }
+ }
+ }
+
+ .blog-body {
+ padding: 40px 25px 30px;
+ transition: all 0.3s ease;
+
+ .category-line {
+ font-size: 11px;
+ text-transform: uppercase;
+ letter-spacing: 1px;
+ color: #888;
+ margin-bottom: 20px;
+ display: inline-block;
+ padding: 4px 12px;
+ background: #f8f9fa;
+ border-radius: 4px;
+ transition: all 0.3s ease;
+ }
+
+ h4 {
+ font-size: 20px;
+ font-weight: 800;
+ margin-bottom: 15px;
+ line-height: 1.4;
+ transition: color 0.3s ease;
+ }
+
+ .blog-excerpt {
+ font-size: 14px;
+ line-height: 1.6;
+ color: #666;
+ transition: color 0.3s ease;
+ }
+ }
+
+ &:hover {
+ transform: translateY(-10px);
+ box-shadow: 0 15px 35px rgba(0, 0, 0, 0.15);
+
+ .blog-img-wrapper {
+ img {
+ transform: scale(1.1);
+ }
+
+ .date-badge {
+ border: 2px dashed #ffb800;
+ }
+ }
+
+ .blog-body {
+ h4 {
+ color: #ffb800;
+ }
+ }
+ }
+ }
+
+ .fries-accent {
+ position: absolute;
+ bottom: -20px;
+ left: -30px;
+ width: 250px;
+ z-index: 10;
+ pointer-events: none;
+ }
+}
+
+// Gallery Slider Section
+.s_gallery_slider_premium {
+ background-color: #F4F1EA;
+ padding: 30px 0;
+ overflow: hidden;
+ position: relative;
+ border-top: 1px solid rgba(0, 0, 0, 0.05);
+
+ .gallery-container {
+ display: flex;
+ align-items: center;
+ }
+
+ .gallery-track {
+ display: flex;
+ gap: 15px;
+ transition: transform 0.8s cubic-bezier(0.165, 0.84, 0.44, 1);
+ }
+
+ .gallery-item {
+ width: 300px;
+ height: 300px;
+ flex-shrink: 0;
+ overflow: hidden;
+ border-radius: 8px;
+ box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
+
+ img {
+ width: 100%;
+ height: 100%;
+ object-fit: cover;
+ transition: transform 0.5s ease;
+ }
+
+ &:hover img {
+ transform: scale(1.1);
+ }
+ }
+}
+
+// Footer
+// Footer Refinement
+footer#bottom {
+ background-color: #0e1317 !important;
+ color: white;
+ position: relative;
+ padding-top: 200px; // Space for the floating bar
+ overflow: visible;
+
+ // Floating Teal Bar
+ .footer-cta-bar-wrapper {
+ position: absolute;
+ top: -60px;
+ left: 0;
+ right: 0;
+ z-index: 20;
+
+ .footer-cta-bar {
+ background-color: #ffb800;
+ border-radius: 20px;
+ padding: 30px 50px;
+ box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+
+ .cta-item {
+ display: flex;
+ align-items: center;
+ gap: 20px;
+ color: white;
+
+ .icon-circle {
+ width: 50px;
+ height: 50px;
+ background: white;
+ border-radius: 50%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ color: #ffb800;
+ font-size: 20px;
+ }
+
+ strong {
+ display: block;
+ font-size: 14px;
+ opacity: 0.8;
+ }
+
+ p {
+ margin: 0;
+ font-weight: 700;
+ font-size: 16px;
+ }
+ }
+ }
+ }
+
+ .footer-title {
+ font-size: 24px;
+ font-weight: 800;
+ margin-bottom: 30px;
+ position: relative;
+ padding-bottom: 10px;
+
+ &::after {
+ content: '';
+ position: absolute;
+ left: 0;
+ bottom: 0;
+ width: 50px;
+ height: 3px;
+ background: #ffb800;
+ }
+ }
+
+ .footer-logo {
+ max-width: 180px;
+ }
+
+ .social-links {
+ display: flex;
+ gap: 10px;
+
+ a {
+ width: 35px;
+ height: 35px;
+ border: 1px solid rgba(255, 255, 255, 0.2);
+ border-radius: 4px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ color: white !important;
+ transition: all 0.3s;
+
+ &:hover {
+ background: #ffb800;
+ border-color: #ffb800;
+ color: #0e1317;
+ }
+ }
+ }
+
+ .footer-list {
+ list-style: none;
+ padding: 0;
+ margin: 0;
+
+ li {
+ margin-bottom: 15px;
+ display: flex;
+ align-items: flex-start;
+ gap: 10px;
+
+ i {
+ color: #ffb800;
+ font-size: 12px;
+ margin-top: 5px;
+ }
+
+ a {
+ color: white !important;
+ text-decoration: none;
+ transition: color 0.3s;
+
+ &:hover {
+ color: #ffb800;
+ }
+ }
+ }
+ }
+
+ .footer-accent-left {
+ position: absolute;
+ left: 0;
+ bottom: 100px;
+ width: 200px;
+ opacity: 0.8;
+ pointer-events: none;
+ }
+
+ .footer-accent-right {
+ position: absolute;
+ right: 40px;
+ top: 40%;
+ transform: translateY(-50%);
+ width: 250px;
+ opacity: 0.8;
+ pointer-events: none;
+ border-radius: 50%;
+ }
+
+ .footer-copyright-bar {
+ background-color: #ffb800;
+ color: #0e1317;
+ text-align: center;
+ padding: 15px;
+ font-weight: 700;
+ margin-top: 80px;
+ }
+}
+
+// Mobile Responsive Footer
+@media (max-width: 991px) {
+ footer#bottom {
+ padding-top: 200px;
+
+ .footer-cta-bar-wrapper {
+ top: -150px;
+
+ .footer-cta-bar {
+ flex-direction: column;
+ gap: 20px;
+ padding: 30px;
+ }
+ }
+
+ .footer-accent-left,
+ .footer-accent-right {
+ display: none;
+ }
+ }
+}
+
+/* About Us Hero Banner */
+.about-hero-banner {
+ background: linear-gradient(rgba(4, 18, 29, 0.4), rgba(4, 18, 29, 0.4)), url('/dine360_theme_shivasakthi/static/src/img/about-banner-bg.png') no-repeat center center !important;
+ background-size: cover !important;
+ min-height: 450px !important;
+ display: flex !important;
+ align-items: center !important;
+ justify-content: center !important;
+ text-align: center;
+ position: relative;
+ padding: 100px 0 !important;
+
+ h1 {
+ font-size: 5rem !important;
+ font-weight: 900 !important;
+ color: white !important;
+ text-transform: uppercase;
+ margin-bottom: 5px !important;
+ letter-spacing: 2px;
+ }
+
+ .breadcrumb-container {
+ font-size: 1.1rem;
+ font-weight: 600;
+ color: white;
+
+ a {
+ color: white;
+ text-decoration: none;
+ transition: color 0.3s;
+
+ &:hover {
+ color: #ffb800;
+ }
+ }
+
+ .separator {
+ margin: 0 10px;
+ opacity: 0.7;
+ }
+
+ .active-item {
+ color: #ffb800;
+ }
+ }
+}
+
+/* Global Red Color Removal & Theme Alignment */
+.text-danger {
+ color: #ffb800 !important; // Replace red text with theme teal
+}
+
+.bg-danger,
+.btn-danger {
+ background-color: #ffb800 !important;
+ border-color: #ffb800 !important;
+ color: white !important;
+}
+
+.badge-danger {
+ background-color: #ffb800 !important;
+ color: #0e1317 !important;
+}
+
+// Force Shop category sidebar active item to NOT be red and ensure visibility
+#products_grid_before {
+ .nav-link {
+ transition: all 0.2s ease;
+
+ &:hover {
+ background-color: rgba(43, 177, 165, 0.1) !important;
+ color: #ffb800 !important;
+ }
+
+ &.active {
+ background-color: #ffb800 !important;
+ color: white !important;
+ border-radius: 8px;
+
+ span,
+ i,
+ b,
+ strong {
+ color: white !important;
+ }
+
+ &:hover {
+ color: white !important;
+ background-color: #259a8f !important;
+ }
+ }
+ }
+}
+
+// Global Link Hover & Active Color Fix
+// Only apply global overrides to frontend/website elements to avoid breaking backend UI
+/* Link hover color */
+body:not(.editor_enable):not(.o_edit_mode) a:hover,
+body:not(.editor_enable):not(.o_edit_mode) a:hover * {
+ color: #529791 !important;
+}
+
+/* Button hover color */
+body:not(.editor_enable):not(.o_edit_mode) .btn:hover,
+body:not(.editor_enable):not(.o_edit_mode) .btn:hover * {
+ color: #fff !important;
+ background-color: #ffb800 !important;
+}
+
+.active,
+.nav-link.active,
+.nav-pills .nav-link.active {
+ color: #ffb800 !important;
+}
+
+
+// Fix for Odoo Backend Editor Menu overlap
+body.o_edit_mode {
+ #top {
+ margin-top: 0px !important;
+ position: relative !important; // Some editor modes hate fixed headers
+ }
+}
+
+// Global Primary Button Color Fix (including Checkout)
+.btn-primary,
+.btn-primary:not(:disabled):not(.disabled):active,
+.btn-primary:not(:disabled):not(.disabled).active,
+.show>.btn-primary.dropdown-toggle {
+ background-color: #ffb800 !important;
+ color: #0e1317 !important;
+ border-color: #ffb800 !important;
+}
+
+.btn-primary:hover {
+ background-color: #e5b945 !important;
+ border-color: #e5b945 !important;
+ color: #000000 !important;
+}
+
+// Special case for buttons or text that should be white on teal background
+// Special case for buttons or text that should be white on teal background
+.nav-pills .nav-link.active,
+.category-list .active,
+.category-list .active span {
+ color: white !important;
+}
+
+/* Footer Section Premium Style */
+.s_footer_premium {
+ background-color: #0e1317 !important;
+ color: white !important;
+ position: relative;
+ // padding-top: 80px;
+ /* overflow: hidden is usually on but here we want to see the overlap if any */
+
+ .footer-cta-bar-wrapper {
+ position: relative;
+ z-index: 1000;
+ margin-top: -140px;
+ /* Pull up to overlap significantly */
+ margin-bottom: 40px;
+ }
+
+ .footer-cta-bar {
+ background-color: #ffb800 !important;
+ border-radius: 15px;
+
+ .icon-circle {
+ width: 50px;
+ height: 50px;
+ background: white !important;
+ border-radius: 50%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+
+ i {
+ color: #ffb800 !important;
+ font-size: 20px;
+ }
+ }
+
+ .cta-label {
+ font-size: 13px;
+ text-transform: uppercase;
+ letter-spacing: 1px;
+ color: rgba(255, 255, 255, 1);
+ font-weight: 700;
+ }
+
+ p {
+ font-size: 14px;
+ font-weight: 600;
+ margin: 0;
+ color: white !important;
+ }
+ }
+
+ .main-footer-content {
+ // padding-top: 30px;
+ padding-bottom: 50px;
+
+ .footer-brand-title {
+ color: #ffb800 !important;
+ font-size: 32px;
+ text-transform: capitalize;
+ }
+
+ .footer-column-title {
+ color: white !important;
+ font-size: 20px;
+ position: relative;
+ padding-bottom: 12px;
+ margin-bottom: 25px;
+
+ &::after {
+ content: "";
+ position: absolute;
+ left: 0;
+ bottom: 0;
+ width: 35px;
+ height: 2px;
+ background-color: #ffb800;
+ }
+ }
+
+ .footer-desc {
+ color: rgba(255, 255, 255, 0.9) !important;
+ line-height: 1.8;
+ font-size: 15px;
+ }
+
+ .hours-list {
+ .hour-row {
+ font-size: 15px;
+ color: white;
+
+ .day {
+ opacity: 0.9;
+ }
+ }
+ }
+
+ .footer-links-list {
+ li {
+ color: white !important;
+ font-size: 15px;
+
+ i {
+ color: #ffb800 !important;
+ font-size: 12px;
+ }
+
+ a {
+ color: white !important;
+ text-decoration: none !important;
+ transition: all 0.3s ease;
+
+ &:hover {
+ color: #ffb800 !important;
+ padding-left: 5px;
+ }
+ }
+ }
+ }
+
+ .highlight-text {
+ color: #ffb800 !important;
+ }
+
+ .footer-social-boxes {
+ .social-box {
+ width: 38px;
+ height: 38px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ border: 1px solid rgba(255, 255, 255, 0.2);
+ border-radius: 4px;
+ color: white !important;
+ text-decoration: none;
+ transition: all 0.3s ease;
+
+ i {
+ color: white !important;
+ font-size: 16px;
+ }
+
+ &:hover {
+ background-color: #ffb800;
+ border-color: #ffb800;
+ transform: translateY(-3px);
+
+ i {
+ color: #0e1317 !important;
+ }
+ }
+ }
+ }
+
+ .contact-col-content {
+ position: relative;
+ z-index: 5;
+ }
+
+ .footer-social-boxes {
+ position: relative;
+ z-index: 10;
+ }
+ }
+
+ .footer-accent-leaf {
+ position: absolute;
+ left: -80px;
+ /* Move further left */
+ bottom: 50px;
+ width: 140px;
+ opacity: 0.9;
+ z-index: 0;
+ /* Move behind social icons */
+ }
+
+ .footer-food-plate-wrapper {
+ position: absolute;
+ right: -180px;
+ /* Move further right */
+ top: -40px;
+ z-index: 0;
+ /* Move behind text */
+
+ .footer-food-plate {
+ width: 380px;
+ /* Slightly larger as per "exact design" request */
+ height: 380px;
+ border: 12px solid rgba(255, 255, 255, 0.05);
+ border-radius: 50%;
+ object-fit: cover;
+ box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4);
+ opacity: 0.8;
+ /* Slight transparency to help text if they still overlap */
+ }
+ }
+
+ .footer-copyright-bar-new {
+ background-color: #ffb800 !important;
+ color: #0e1317 !important;
+ margin-top: 20px;
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+
+ p {
+ font-size: 14px;
+ font-weight: 700;
+ }
+
+ a {
+ color: #0e1317 !important;
+ font-weight: 800;
+ text-decoration: none;
+
+ &:hover {
+ text-decoration: underline !important;
+ }
+ }
+ }
+}
+
+.s_map {
+ position: relative;
+ min-height: 500px !important;
+ max-height: 500px !important;
+ overflow: hidden;
+
+ .map_container {
+ height: 500px !important;
+ position: relative;
+ }
+
+ iframe {
+ height: 500px !important;
+ width: 100%;
+ border: 0;
+ }
+}
+
+// Custom Pagination Styling
+.pagination {
+ .page-item {
+ margin: 0 4px;
+
+ .page-link {
+ border-radius: 50% !important;
+ width: 40px;
+ height: 40px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ border: 1px solid #ddd;
+ color: #0e1317;
+ background-color: #fff;
+ transition: all 0.3s ease;
+ font-weight: 600;
+
+ &:hover,
+ &:focus {
+ background-color: #ffb800;
+ border-color: #ffb800;
+ color: #0e1317;
+ box-shadow: none;
+ }
+ }
+
+ &.active .page-link {
+ background-color: #0e1317 !important;
+ border-color: #0e1317 !important;
+ color: #FFFFFF !important;
+ }
+
+ &.disabled .page-link {
+ background-color: #f8f9fa;
+ border-color: #ddd;
+ color: #999;
+ }
+ }
+}
+
+/* Shivasakthi Hero Banner & Side Dishes & Spices */
+.shivasakthi-hero-slide {
+ background-color: #080808 !important;
+ background-image: url('/dine360_theme_shivasakthi/static/src/img/hero-bg.jpg') !important;
+ background-size: cover !important;
+ background-position: center !important;
+ min-height: 95vh;
+ position: relative;
+ overflow: hidden;
+ display: none;
+
+ &.active,
+ &.carousel-item-next,
+ &.carousel-item-prev {
+ display: flex !important;
+ align-items: center;
+ }
+
+ // Add dark subtle overlay to make background even richer and help text contrast
+ &::before {
+ content: "";
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background: radial-gradient(circle, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0.7) 100%);
+ z-index: 1;
+ pointer-events: none;
+ }
+
+ .hero-content-container {
+ position: relative;
+ z-index: 10;
+ padding-top: 80px; /* Offset for header */
+ }
+
+ .hero-subtitle {
+ color: #ffb800;
+ font-family: 'Bebas Neue', sans-serif !important;
+ font-weight: 400;
+ letter-spacing: 2.5px;
+ text-transform: uppercase;
+ font-size: clamp(14px, 2vw, 18px);
+ margin-bottom: 25px;
+ }
+
+ .hero-title {
+ color: white;
+ font-family: 'Bebas Neue', sans-serif !important;
+ font-weight: 400;
+ font-size: clamp(2.2rem, 6.5vw, 5.2rem);
+ line-height: 1.05;
+ margin-bottom: 30px;
+ text-transform: uppercase;
+ letter-spacing: 1.5px;
+ }
+
+ .hero-desc {
+ color: rgba(255, 255, 255, 0.85);
+ font-family: 'Roboto', sans-serif !important;
+ font-size: clamp(14px, 2vw, 18px);
+ max-width: 650px;
+ margin: 0 auto 40px auto;
+ line-height: 1.7;
+ }
+
+ .btn-hero-cta {
+ background-color: #ffb800 !important;
+ color: white !important;
+ border: none;
+ border-radius: 4px;
+ font-family: 'Bebas Neue', sans-serif !important;
+ font-weight: 400;
+ font-size: 16px;
+ letter-spacing: 1px;
+ padding: 15px 42px !important;
+ transition: all 0.3s ease;
+ text-transform: uppercase;
+ display: inline-flex;
+ align-items: center;
+
+ i {
+ transition: transform 0.3s ease;
+ }
+
+ &:hover {
+ background-color: white !important;
+ color: #ffb800 !important;
+ transform: translateY(-3px);
+ box-shadow: 0 5px 15px rgba(254, 205, 79, 0.4);
+
+ i {
+ transform: translateX(5px);
+ }
+ }
+ }
+
+ /* Side Dishes Positioning */
+ .hero-left-dish {
+ position: absolute;
+ left: -10vw;
+ top: 50%;
+ width: clamp(300px, 36vw, 550px);
+ z-index: 5;
+ pointer-events: none;
+ filter: drop-shadow(0 25px 50px rgba(0, 0, 0, 0.7));
+ animation: floatSlightLeft 10s ease-in-out infinite;
+
+ @media (max-width: 1200px) {
+ left: -12vw;
+ }
+ }
+
+ .hero-right-dish {
+ position: absolute;
+ right: -8vw;
+ top: 50%;
+ width: clamp(320px, 38vw, 580px);
+ z-index: 5;
+ pointer-events: none;
+ filter: drop-shadow(0 25px 50px rgba(0, 0, 0, 0.7));
+ animation: floatSlightRight 10s ease-in-out infinite;
+
+ @media (max-width: 1200px) {
+ right: -10vw;
+ }
+ }
+
+ /* Floating Spices Positioning & Wobbles */
+ .hero-spice-chili-left {
+ position: absolute;
+ left: 5%;
+ top: 18%;
+ width: clamp(40px, 6vw, 75px);
+ z-index: 6;
+ pointer-events: none;
+ filter: drop-shadow(5px 5px 10px rgba(0, 0, 0, 0.4));
+ animation: floatWobbleChiliLeft 10s ease-in-out infinite;
+ }
+
+ .hero-spice-tomato-left {
+ position: absolute;
+ left: 24%;
+ top: 48%;
+ width: clamp(30px, 4vw, 50px);
+ z-index: 6;
+ pointer-events: none;
+ filter: drop-shadow(5px 5px 10px rgba(0, 0, 0, 0.4));
+ animation: floatWobbleTomato 8s ease-in-out infinite;
+ }
+
+ .hero-spice-leaf-left {
+ position: absolute;
+ left: 5%;
+ bottom: 12%;
+ width: clamp(40px, 6vw, 75px);
+ z-index: 6;
+ pointer-events: none;
+ filter: drop-shadow(3px 3px 8px rgba(0, 0, 0, 0.3));
+ animation: floatWobbleLeafLeft 12s ease-in-out infinite;
+ }
+
+ .hero-spice-leaf-right {
+ position: absolute;
+ right: 8%;
+ top: 15%;
+ width: clamp(40px, 6vw, 70px);
+ z-index: 6;
+ pointer-events: none;
+ filter: drop-shadow(3px 3px 8px rgba(0, 0, 0, 0.3));
+ animation: floatWobbleLeafRight 12s ease-in-out infinite;
+ }
+
+ .hero-spice-chili-right {
+ position: absolute;
+ right: 10%;
+ bottom: 10%;
+ width: clamp(40px, 6vw, 75px);
+ z-index: 6;
+ pointer-events: none;
+ filter: drop-shadow(5px 5px 10px rgba(0, 0, 0, 0.4));
+ animation: floatWobbleChiliRight 10s ease-in-out infinite;
+ }
+}
+
+/* Page title spacer adjustment for transparent header */
+.s_page_title {
+ padding-top: 160px !important;
+ padding-bottom: 100px !important;
+}
+
+/* Indicators Custom Layout */
+#myCarouselShivasakthi {
+ .carousel-indicators {
+ bottom: 40px;
+ z-index: 15;
+
+ li {
+ width: 10px !important;
+ height: 10px !important;
+ border-radius: 50% !important;
+ background-color: #ffb800 !important;
+ opacity: 0.5;
+ border: none !important;
+ margin: 0 6px !important;
+ transition: all 0.3s ease !important;
+
+ &.active {
+ width: 35px !important;
+ height: 10px !important;
+ border-radius: 5px !important;
+ opacity: 1;
+ }
+ }
+ }
+}
+
+/* Animations Keyframes */
+@keyframes floatSlightLeft {
+ 0%, 100% {
+ transform: translateY(-50%) rotate(0deg) scale(1);
+ }
+ 50% {
+ transform: translateY(-52%) rotate(2deg) scale(1.02);
+ }
+}
+
+@keyframes floatSlightRight {
+ 0%, 100% {
+ transform: translateY(-50%) rotate(0deg) scale(1);
+ }
+ 50% {
+ transform: translateY(-48%) rotate(-2deg) scale(1.02);
+ }
+}
+
+@keyframes floatWobbleChiliLeft {
+ 0%, 100% {
+ transform: translate(0, 0) rotate(-45deg);
+ }
+ 50% {
+ transform: translate(10px, -15px) rotate(-35deg);
+ }
+}
+
+@keyframes floatWobbleChiliRight {
+ 0%, 100% {
+ transform: translate(0, 0) rotate(135deg);
+ }
+ 50% {
+ transform: translate(-10px, -15px) rotate(145deg);
+ }
+}
+
+@keyframes floatWobbleTomato {
+ 0%, 100% {
+ transform: translate(0, 0) rotate(0deg);
+ }
+ 50% {
+ transform: translate(5px, 12px) rotate(15deg);
+ }
+}
+
+@keyframes floatWobbleLeafLeft {
+ 0%, 100% {
+ transform: translate(0, 0) rotate(10deg);
+ }
+ 50% {
+ transform: translate(-8px, -10px) rotate(-10deg);
+ }
+}
+
+@keyframes floatWobbleLeafRight {
+ 0%, 100% {
+ transform: translate(0, 0) rotate(-20deg);
+ }
+ 50% {
+ transform: translate(8px, -10px) rotate(0deg);
+ }
+}
+
+/* Custom Homepage Sections Addition */
+.feature-item {
+ display: flex;
+ align-items: flex-start;
+ gap: 20px;
+ margin-bottom: 25px;
+
+ .feature-icon-wrapper {
+ width: 70px;
+ height: 70px;
+ background-color: #ffb800;
+ border-radius: 50%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex-shrink: 0;
+ padding: 15px;
+ box-shadow: 0 8px 16px rgba(255, 184, 0, 0.2);
+ transition: all 0.3s ease;
+
+ img {
+ max-width: 100%;
+ height: auto;
+ }
+ }
+
+ &:hover {
+ .feature-icon-wrapper {
+ transform: scale(1.1) rotate(10deg);
+ box-shadow: 0 12px 24px rgba(255, 184, 0, 0.4);
+ }
+ }
+
+ .feature-text {
+ h5 {
+ font-size: 20px;
+ font-weight: 400;
+ color: #04121D;
+ margin-bottom: 8px;
+ font-family: 'Bebas Neue', sans-serif !important;
+ }
+
+ p {
+ font-size: 14px;
+ color: #666;
+ line-height: 1.6;
+ margin-bottom: 0;
+ font-family: 'Roboto', sans-serif !important;
+ }
+ }
+}
+
+.menu-list-item {
+ display: flex;
+ align-items: center;
+ transition: all 0.3s ease;
+ padding: 15px;
+ border-radius: 12px;
+ background: transparent;
+ border: 1px solid transparent;
+
+ img {
+ transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
+ border: 2px solid #ffb800 !important;
+ box-shadow: 0 4px 10px rgba(0,0,0,0.05);
+ }
+
+ &:hover {
+ background-color: #ffffff;
+ border-color: rgba(255, 184, 0, 0.15);
+ box-shadow: 0 10px 30px rgba(0, 0, 0, 0.04);
+ transform: translateY(-2px);
+
+ img {
+ transform: scale(1.1) rotate(5deg);
+ border-color: #04121D !important;
+ }
+ }
+
+ .border-bottom {
+ border-bottom: 2px dotted #ccc !important;
+ opacity: 0.5;
+ }
+}
+
+/* Stats Section Styles */
+.s_stats_section {
+ background-size: cover;
+ background-position: center;
+ position: relative;
+ overflow: hidden;
+ min-height: 380px;
+ display: flex;
+ align-items: center;
+
+ .row.g-0 {
+ border-radius: 12px;
+ overflow: hidden;
+ }
+}
+
+/* Thali and Deal Sections */
+.s_unlimited_thali_section,
+.s_enjoy_flavors_section {
+ background-size: cover;
+ background-position: center;
+ position: relative;
+ min-height: 500px;
+ display: flex;
+ align-items: center;
+
+ .lead {
+ font-family: 'Roboto', sans-serif !important;
+ }
+
+ img {
+ transition: transform 0.5s ease;
+ &:hover {
+ transform: scale(1.03) translateY(-5px);
+ }
+ }
+}
+
+.s_testimonials_premium {
+ .testimonial-carousel {
+ .carousel-item {
+ display: none;
+ &.active {
+ display: block !important;
+ }
+ }
+ }
+}
diff --git a/addons/dine360_theme_shivasakthi/views/about_page.xml b/addons/dine360_theme_shivasakthi/views/about_page.xml
new file mode 100644
index 0000000..051ad11
--- /dev/null
+++ b/addons/dine360_theme_shivasakthi/views/about_page.xml
@@ -0,0 +1,97 @@
+
+
+
+
+
+
+
+
+
+
+
+
ABOUT US
+
+
+ Home
+ About Us
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ABOUT US
+
+
+
+
+
Bringing Authentic South Indian Cuisine To Mississauga
+
+
+
Our Story, Our Passion For Freshness And Flavor
+
+
+
+
+ At Shivasakthi, we believe that every meal should be a celebration of authentic Indian flavors. As one of the top Indian restaurants in Mississauga, we take pride in serving dishes that capture the rich traditions of South India. Whether you're visiting for a casual lunch, a family dinner, or a special event, our team is committed to delivering the best Indian food experience in Mississauga.
+
+
+ Our chefs bring generations of expertise to every dish — from the famous Hyderabadi biryani to the crispy masala dosas. Visit Shivasakthi today and find out why we are a top-rated South Indian restaurant in Mississauga.
+
+
+ Shivasakthi stands out for its dedication to freshness, authenticity, and variety. Our menu features iconic Tamil Nadu specialties like Madurai Mutton Bone Soup, Seeraga Samba Mutton Dum Biryani, and classic dosas, idlis, and uttapams. For something different, try our Indo-Chinese dishes or indulge in our exclusive weekend specials for a unique culinary experience.
+
+
+ Whether you're stopping by for a quick bite, a hearty meal, or a special celebration, our team ensures a warm welcome and an unforgettable dining experience. Blending tradition with modern flair, Shivasakthi isn't just a restaurant—it's a tribute to Chennai's rich and vibrant culinary heritage
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/dine360_theme_shivasakthi/views/blog_detail_page.xml b/addons/dine360_theme_shivasakthi/views/blog_detail_page.xml
new file mode 100644
index 0000000..fb3efc5
--- /dev/null
+++ b/addons/dine360_theme_shivasakthi/views/blog_detail_page.xml
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
BLOG DETAILS
+
+
+ Home
+ Blog
+ Blog Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/dine360_theme_shivasakthi/views/blog_page.xml b/addons/dine360_theme_shivasakthi/views/blog_page.xml
new file mode 100644
index 0000000..953d786
--- /dev/null
+++ b/addons/dine360_theme_shivasakthi/views/blog_page.xml
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+
+
+
+
+
+
BLOG
+
+
+ Home
+ Blog
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BLOG
+
+
+
News & Articles
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/dine360_theme_shivasakthi/views/checkout_address.xml b/addons/dine360_theme_shivasakthi/views/checkout_address.xml
new file mode 100644
index 0000000..90c4642
--- /dev/null
+++ b/addons/dine360_theme_shivasakthi/views/checkout_address.xml
@@ -0,0 +1,491 @@
+
+
+
+
+
+
+ display: none !important;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Delivery Fee
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ line.product_id.name != 'Uber Delivery Fee'
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ display: none !important;
+
+
+
+
+
+ display: none !important;
+
+
+
+ display: none !important;
+
+
+
+
+
+
+
+
+
+
+
+
Delivery
+
Deliver to my address
+
+
+
+
+
+
+
Store Pickup
+
Pick up at the restaurant
+
+
+
+
+
+
+
+
+
+
+
+
+ display: none !important;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/dine360_theme_shivasakthi/views/contact_page.xml b/addons/dine360_theme_shivasakthi/views/contact_page.xml
new file mode 100644
index 0000000..ce9fc59
--- /dev/null
+++ b/addons/dine360_theme_shivasakthi/views/contact_page.xml
@@ -0,0 +1,230 @@
+
+
+
+
+
+
+
+
+
+
+
+
Contact Us
+
+
+ Home
+ Contact Us
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Thank You!
+
Your message has been successfully sent to us. We will get back to you as soon as possible.
+
Back to Home
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/dine360_theme_shivasakthi/views/faq_page.xml b/addons/dine360_theme_shivasakthi/views/faq_page.xml
new file mode 100644
index 0000000..21153d9
--- /dev/null
+++ b/addons/dine360_theme_shivasakthi/views/faq_page.xml
@@ -0,0 +1,216 @@
+
+
+
+
+
+
+
+
+
+
+
+
FAQ
+
+
+ Home
+
+ FAQ
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Shivasakthi
+
+
+
Frequently Asked Questions
+
+
+
+
+
+
+
+
+
+ Shivasakthi is ranked among the best Indian restaurants in Mississauga, offering authentic South Indian flavors with a modern twist. Use quality ingredients and traditional recipes.
+
+
+
+
+
+
+
+
+
+ Yes! Shivasakthi specializes in South Indian delicacies like dosas, idlis, and biryanis, served fresh daily.
+
+
+
+
+
+
+
+
+
+ Shivasakthi is rated among the best Indian restaurants in Mississauga, offering authentic South Indian flavors, traditional curries, biryanis, and a warm dining atmosphere. Whether you are looking for fine dining or a casual meal, we are a top choice in Mississauga.
+
+
+
+
+
+
+
+
+
+ At Shivasakthi, we serve a diverse Indian buffet in Mississauga, featuring a wide variety of South Indian and North Indian dishes made fresh daily. It’s the perfect place if you’re craving authentic Indian flavors and endless variety.
+
+
+
+
+
+
+
+
+
+ Shivasakthi specializes in authentic South Indian food in Mississauga, from crispy dosas to spicy curries and flavorful biryanis. Experience the traditional taste of South India right here in Mississauga.
+
+
+
+
+
+
+
+
+
+ If you’re searching for good restaurants in Mississauga, Shivasakthi is a must-visit. We offer a wide range of traditional Indian dishes, combining quality ingredients with authentic recipes for an unforgettable dining experience.
+
+
+
+
+
+
+
+
+
+
+ Yes! Shivasakthi offers a fine dining experience in Mississauga, perfect for special occasions, family dinners, and romantic evenings. Our curated menu and inviting atmosphere make us one of the top fine dining Indian restaurants in Mississauga.
+
+
+
+
+
+
+
+
+
+ A: Shivasakthi serves the best dosa in Mississauga! From plain dosa to masala dosa, each dish is crafted with authentic flavors and served with traditional chutneys and sambar.
+
+
+
+
+
+
+
+
+
+ Shivasakthi offers a rich variety of vegetarian Indian dishes, from delicious vegetable curries to crispy dosas, making us a top choice for vegetarian dining in Mississauga.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/dine360_theme_shivasakthi/views/layout.xml b/addons/dine360_theme_shivasakthi/views/layout.xml
new file mode 100644
index 0000000..2a769f3
--- /dev/null
+++ b/addons/dine360_theme_shivasakthi/views/layout.xml
@@ -0,0 +1,235 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/dine360_theme_shivasakthi/views/options.xml b/addons/dine360_theme_shivasakthi/views/options.xml
new file mode 100644
index 0000000..d61c3a7
--- /dev/null
+++ b/addons/dine360_theme_shivasakthi/views/options.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
diff --git a/addons/dine360_theme_shivasakthi/views/pages.xml b/addons/dine360_theme_shivasakthi/views/pages.xml
new file mode 100644
index 0000000..04c9fcd
--- /dev/null
+++ b/addons/dine360_theme_shivasakthi/views/pages.xml
@@ -0,0 +1,609 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
AUTHENTIC FLAVORS. TIMELESS TRADITIONS.
+
SOUTH INDIAN SOUL ON EVERY PLATE
+
At Shiva Sakthi, we serve more than just food — we serve memories. Taste the heritage of South India in every bite, lovingly prepared with spices that tell a story.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
WELCOME TO SHIVA SAKTHI RESTAURANT
+
TASTE OF HERITAGE & TRADITION
+
At Shiva Sakthi, we serve more than just food — we serve memories. Taste the heritage of South India in every bite, lovingly prepared with spices that tell a story.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
WELCOME TO SHIVA SAKTHI RESTAURANT
+
UNLIMITED THALI ON WEEKENDS
+
Enjoy the comfort of home-style cooking blended with restaurant excellence. At Shiva Sakthi, every weekend meal is crafted with love and served by reservation only.
+
+
+
+
+
+
+
+
+
+ Previous
+
+
+
+ Next
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Real . authentic . South Indian
+
+
+
Welcome to Shiva Sakthi Restaurant
+
+ Your new favorite destination for authentic South Indian cuisine, now in the Greater Toronto Area (GTA). Enjoy dine-in, take-out, and full-service catering tailored to your needs. We also offer a spacious party hall for your special occasions.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SPECIAL CATEGORY
+
+
+
Popular Items
+
+
+
+
+
+
+
+
+
+
+
+
+
+
SPECIAL DEAL
+
UNLIMITED THALI
+
FOR RESERVATION
+
+ Enjoy the comfort of home-style cooking blended with restaurant excellence. At Shiva Sakthi, every weekend meal is crafted with love and served by reservation only.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CHINESE DISH
+
+
+
Popular Exquisite Dishes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
SPECIAL DEAL
+
ENJOY THE FLAVORS
+
SOUTH INDIAN FOOD HERITAGE
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ TESTIMONIALS
+
+
+
What Our Clients Say
+
+
+
+
+
+
+ (4.8 / 5.0)
+
+
+
+
+
+
+
+
"Authentic South Indian flavor right here in Mississauga! The biryani was fragrant and the dosa was perfectly crispy. Definitely our new favorite spot for Indian food."
+
+
+
Arun Kumar
+ Local Guide
+
+
+
+
+
"Amazing hospitality and even better food. The Chicken Kothu is a must-try. The staff is very friendly and the atmosphere is vibrant and welcoming."
+
+
+
Sarah Thompson
+ Regular Customer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OUR LATEST FOOD NEWS
+
+
+
Latest News & Articles
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/dine360_theme_shivasakthi/views/product_details_page.xml b/addons/dine360_theme_shivasakthi/views/product_details_page.xml
new file mode 100644
index 0000000..6bde2f6
--- /dev/null
+++ b/addons/dine360_theme_shivasakthi/views/product_details_page.xml
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ In Stock
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/dine360_theme_shivasakthi/views/product_views.xml b/addons/dine360_theme_shivasakthi/views/product_views.xml
new file mode 100644
index 0000000..ee5b97a
--- /dev/null
+++ b/addons/dine360_theme_shivasakthi/views/product_views.xml
@@ -0,0 +1,21 @@
+
+
+
+
+ product.template.form.inherit.deals
+ product.template
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/dine360_theme_shivasakthi/views/res_config_settings_views.xml b/addons/dine360_theme_shivasakthi/views/res_config_settings_views.xml
new file mode 100644
index 0000000..7a1f127
--- /dev/null
+++ b/addons/dine360_theme_shivasakthi/views/res_config_settings_views.xml
@@ -0,0 +1,18 @@
+
+
+
+ res.config.settings.view.form.inherit.Shivasakthi
+ res.config.settings
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/dine360_theme_shivasakthi/views/shop_page.xml b/addons/dine360_theme_shivasakthi/views/shop_page.xml
new file mode 100644
index 0000000..22a56dd
--- /dev/null
+++ b/addons/dine360_theme_shivasakthi/views/shop_page.xml
@@ -0,0 +1,125 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ - %
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/dine360_theme_shivasakthi/views/snippets.xml b/addons/dine360_theme_shivasakthi/views/snippets.xml
new file mode 100644
index 0000000..ffdf7a2
--- /dev/null
+++ b/addons/dine360_theme_shivasakthi/views/snippets.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/scratch/parse_content.py b/scratch/parse_content.py
new file mode 100644
index 0000000..50656f8
--- /dev/null
+++ b/scratch/parse_content.py
@@ -0,0 +1,13 @@
+with open(r"C:\Users\LENOVO\.gemini\antigravity\brain\ce256ea1-56f2-43c9-bbf4-7f33e9a804a9\.system_generated\steps\564\content.md", "r", encoding="utf-8") as f:
+ text = f.read()
+
+import re
+
+# Let's search for "Welcome to" or "Shiva Sakthi Restaurant"
+matches = [m.start() for m in re.finditer("Welcome to", text, re.IGNORECASE)]
+for idx, pos in enumerate(matches):
+ start = max(0, pos - 200)
+ end = min(len(text), pos + 1000)
+ print(f"MATCH {idx}:")
+ print(text[start:end])
+ print("-" * 50)