Fix JavaScript conflicts and optimize typewriter effect
- Removed 15+ redundant JavaScript files causing conflicts - Optimized typewriter-effect.js with smoother animations - Consolidated hamburger menu implementations - Cleaned up duplicate inline scripts across all pages - Enhanced main.js with consolidated scroll effects - Improved page loading performance by eliminating conflicts - Fixed lagging/vibrating typewriter effect in hero section - Updated all HTML pages to use only 4 core JavaScript files
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
@@ -32,7 +32,7 @@
|
|||||||
</button>
|
</button>
|
||||||
|
|
||||||
<ul class="nav-links">
|
<ul class="nav-links">
|
||||||
<li class="dropdown"><a href="#" class="nav-link">Services ▾</a>
|
<li class="dropdown"><a href="#" class="nav-link">Services ?</a>
|
||||||
<ul class="dropdown-menu services-dropdown">
|
<ul class="dropdown-menu services-dropdown">
|
||||||
<li><a href="../Services/machine-learning.html"><div class="dropdown-item-content"><img src="../assets/mlng.png" alt="Machine Learning Icon" class="dropdown-icon" class="gn-responsive-image"><div class="text-content"><span class="item-title">Machine Learning</span><span class="item-description">We build intelligent systems that learn from data to predict outcomes and automate decisions.</span></div></div></a></li>
|
<li><a href="../Services/machine-learning.html"><div class="dropdown-item-content"><img src="../assets/mlng.png" alt="Machine Learning Icon" class="dropdown-icon" class="gn-responsive-image"><div class="text-content"><span class="item-title">Machine Learning</span><span class="item-description">We build intelligent systems that learn from data to predict outcomes and automate decisions.</span></div></div></a></li>
|
||||||
<li><a href="../Services/data-analysis.html"><div class="dropdown-item-content"><img src="../assets/data analytics.png" alt="Data Analysis Icon" class="dropdown-icon" class="gn-responsive-image"><div class="text-content"><span class="item-title">Data Analytics</span><span class="item-description">We transform raw data into actionable insights, helping you understand trends and optimize performance.</span></div></div></a></li>
|
<li><a href="../Services/data-analysis.html"><div class="dropdown-item-content"><img src="../assets/data analytics.png" alt="Data Analysis Icon" class="dropdown-icon" class="gn-responsive-image"><div class="text-content"><span class="item-title">Data Analytics</span><span class="item-description">We transform raw data into actionable insights, helping you understand trends and optimize performance.</span></div></div></a></li>
|
||||||
@@ -41,7 +41,7 @@
|
|||||||
<li><a href="../Services/automation-flows.html"><div class="dropdown-item-content"><img src="../assets/automation flows.png" alt="Automation Flows Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Automation Flows</span><span class="item-description">We design and implement intelligent automation solutions to streamline your workflows and boost productivity.</span></div></div></a></li>
|
<li><a href="../Services/automation-flows.html"><div class="dropdown-item-content"><img src="../assets/automation flows.png" alt="Automation Flows Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Automation Flows</span><span class="item-description">We design and implement intelligent automation solutions to streamline your workflows and boost productivity.</span></div></div></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown"><a href="#" class="nav-link">Industries ▾</a>
|
<li class="dropdown"><a href="#" class="nav-link">Industries ?</a>
|
||||||
<ul class="dropdown-menu industries-dropdown">
|
<ul class="dropdown-menu industries-dropdown">
|
||||||
<li><a href="../Industries/finance.html"><div class="dropdown-item-content"><img src="../assets/Finance Ind.png" alt="Finance Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Finance</span><span class="item-description">Applying AI to enhance fraud detection, risk management, and customer experience.</span></div></div></a></li>
|
<li><a href="../Industries/finance.html"><div class="dropdown-item-content"><img src="../assets/Finance Ind.png" alt="Finance Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Finance</span><span class="item-description">Applying AI to enhance fraud detection, risk management, and customer experience.</span></div></div></a></li>
|
||||||
<li><a href="../Industries/healthcare.html"><div class="dropdown-item-content"><img src="../assets/healthcare ind.png" alt="Healthcare Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Healthcare</span><span class="item-description">Leveraging AI for faster diagnoses, personalized treatments, and improved patient care.</span></div></div></a></li>
|
<li><a href="../Industries/healthcare.html"><div class="dropdown-item-content"><img src="../assets/healthcare ind.png" alt="Healthcare Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Healthcare</span><span class="item-description">Leveraging AI for faster diagnoses, personalized treatments, and improved patient care.</span></div></div></a></li>
|
||||||
@@ -55,7 +55,7 @@
|
|||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown"><a href="#" class="nav-link active">Education ▾</a>
|
<li class="dropdown"><a href="#" class="nav-link active">Education ?</a>
|
||||||
<ul class="dropdown-menu education-dropdown">
|
<ul class="dropdown-menu education-dropdown">
|
||||||
<li><a href="./workshops.html"><div class="dropdown-item-content"><img src="../assets/workshops.png" alt="Webinars Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Webinars</span><span class="item-description">Engaging and interactive sessions designed to introduce key AI concepts and practical skills.</span></div></div></a></li>
|
<li><a href="./workshops.html"><div class="dropdown-item-content"><img src="../assets/workshops.png" alt="Webinars Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Webinars</span><span class="item-description">Engaging and interactive sessions designed to introduce key AI concepts and practical skills.</span></div></div></a></li>
|
||||||
<li><a href="./individual-trainings.html"><div class="dropdown-item-content"><img src="../assets/indi training.png" alt="Individual Training Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Individual Trainings</span><span class="item-description">Personalized learning programs tailored to your specific needs and learning pace.</span></div></div></a></li>
|
<li><a href="./individual-trainings.html"><div class="dropdown-item-content"><img src="../assets/indi training.png" alt="Individual Training Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Individual Trainings</span><span class="item-description">Personalized learning programs tailored to your specific needs and learning pace.</span></div></div></a></li>
|
||||||
@@ -182,9 +182,9 @@
|
|||||||
<h4>Needs Assessment</h4>
|
<h4>Needs Assessment</h4>
|
||||||
<p>We conduct comprehensive analysis of your current workflows, team capabilities, and business objectives to identify specific training requirements and learning gaps.</p>
|
<p>We conduct comprehensive analysis of your current workflows, team capabilities, and business objectives to identify specific training requirements and learning gaps.</p>
|
||||||
<div class="step-details">
|
<div class="step-details">
|
||||||
<span>• Workflow mapping sessions</span>
|
<span><EFBFBD> Workflow mapping sessions</span>
|
||||||
<span>• Skill gap analysis</span>
|
<span><EFBFBD> Skill gap analysis</span>
|
||||||
<span>• Stakeholder interviews</span>
|
<span><EFBFBD> Stakeholder interviews</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="step-connector"></div>
|
<div class="step-connector"></div>
|
||||||
@@ -198,9 +198,9 @@
|
|||||||
<h4>Content Curation & Customization</h4>
|
<h4>Content Curation & Customization</h4>
|
||||||
<p>Our experts develop bespoke curriculum, real-world case studies, and practical examples directly relevant to your industry and operational context.</p>
|
<p>Our experts develop bespoke curriculum, real-world case studies, and practical examples directly relevant to your industry and operational context.</p>
|
||||||
<div class="step-details">
|
<div class="step-details">
|
||||||
<span>• Industry-specific content</span>
|
<span><EFBFBD> Industry-specific content</span>
|
||||||
<span>• Custom case studies</span>
|
<span><EFBFBD> Custom case studies</span>
|
||||||
<span>• Relevant datasets</span>
|
<span><EFBFBD> Relevant datasets</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="step-connector"></div>
|
<div class="step-connector"></div>
|
||||||
@@ -214,9 +214,9 @@
|
|||||||
<h4>Module Development</h4>
|
<h4>Module Development</h4>
|
||||||
<p>We build comprehensive training materials including interactive presentations, hands-on exercises, and practical simulations that mirror your actual work environment.</p>
|
<p>We build comprehensive training materials including interactive presentations, hands-on exercises, and practical simulations that mirror your actual work environment.</p>
|
||||||
<div class="step-details">
|
<div class="step-details">
|
||||||
<span>• Interactive presentations</span>
|
<span><EFBFBD> Interactive presentations</span>
|
||||||
<span>• Practical exercises</span>
|
<span><EFBFBD> Practical exercises</span>
|
||||||
<span>• Simulation environments</span>
|
<span><EFBFBD> Simulation environments</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="step-connector"></div>
|
<div class="step-connector"></div>
|
||||||
@@ -230,9 +230,9 @@
|
|||||||
<h4>Delivery & Feedback</h4>
|
<h4>Delivery & Feedback</h4>
|
||||||
<p>Expert instructors deliver the training with continuous feedback collection and real-time adjustments to ensure maximum learning effectiveness and engagement.</p>
|
<p>Expert instructors deliver the training with continuous feedback collection and real-time adjustments to ensure maximum learning effectiveness and engagement.</p>
|
||||||
<div class="step-details">
|
<div class="step-details">
|
||||||
<span>• Expert-led sessions</span>
|
<span><EFBFBD> Expert-led sessions</span>
|
||||||
<span>• Real-time feedback</span>
|
<span><EFBFBD> Real-time feedback</span>
|
||||||
<span>• Continuous optimization</span>
|
<span><EFBFBD> Continuous optimization</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="step-connector"></div>
|
<div class="step-connector"></div>
|
||||||
@@ -246,9 +246,9 @@
|
|||||||
<h4>Post-Training Support</h4>
|
<h4>Post-Training Support</h4>
|
||||||
<p>We provide ongoing support including implementation guidance, troubleshooting assistance, and additional resources to ensure sustained learning impact.</p>
|
<p>We provide ongoing support including implementation guidance, troubleshooting assistance, and additional resources to ensure sustained learning impact.</p>
|
||||||
<div class="step-details">
|
<div class="step-details">
|
||||||
<span>• Implementation support</span>
|
<span><EFBFBD> Implementation support</span>
|
||||||
<span>• Follow-up sessions</span>
|
<span><EFBFBD> Follow-up sessions</span>
|
||||||
<span>• Resource library access</span>
|
<span><EFBFBD> Resource library access</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -432,47 +432,17 @@
|
|||||||
</script>
|
</script>
|
||||||
<script src="../js/main.js" defer></script>
|
<script src="../js/main.js" defer></script>
|
||||||
<script src="../js/menu-dropdown.js" defer></script>
|
<script src="../js/menu-dropdown.js" defer></script>
|
||||||
<script src="js/gn-mobile-navigation.js" defer></script>
|
<script </script>
|
||||||
<script src="../js/form-subscribe.js" defer></script>
|
<script </script>
|
||||||
<script src="../js/unified-neural-interactions.js" defer></script>
|
<script </script>
|
||||||
<script src="../js/tech-marquee.js" defer></script>
|
<script src="../js/tech-marquee.js" defer></script>
|
||||||
<script src="../js/data-node-interactions.js" defer></script>
|
<script </script>
|
||||||
|
|
||||||
<!-- Navbar scroll effect script -->
|
|
||||||
<script>
|
|
||||||
document.addEventListener('DOMContentLoaded', function() {
|
|
||||||
const header = document.querySelector('.site-header');
|
|
||||||
|
|
||||||
function handleScroll() {
|
|
||||||
const currentScrollY = window.scrollY;
|
|
||||||
|
|
||||||
if (currentScrollY > 30) {
|
|
||||||
header.classList.add('scrolled');
|
|
||||||
} else {
|
|
||||||
header.classList.remove('scrolled');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Throttle scroll events for better performance
|
|
||||||
let ticking = false;
|
|
||||||
function onScroll() {
|
|
||||||
if (!ticking) {
|
|
||||||
requestAnimationFrame(function() {
|
|
||||||
handleScroll();
|
|
||||||
ticking = false;
|
|
||||||
});
|
|
||||||
ticking = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
window.addEventListener('scroll', onScroll, { passive: true });
|
|
||||||
|
|
||||||
// Initial check
|
|
||||||
handleScroll();
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
</html>
|
</html>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
@@ -29,7 +29,7 @@
|
|||||||
</button>
|
</button>
|
||||||
|
|
||||||
<ul class="nav-links">
|
<ul class="nav-links">
|
||||||
<li class="dropdown"><a href="#" class="nav-link">Services ▾</a>
|
<li class="dropdown"><a href="#" class="nav-link">Services ?</a>
|
||||||
<ul class="dropdown-menu services-dropdown">
|
<ul class="dropdown-menu services-dropdown">
|
||||||
<li><a href="../Services/machine-learning.html"><div class="dropdown-item-content"><img src="../assets/mlng.png" alt="Machine Learning Icon" class="dropdown-icon" class="gn-responsive-image"><div class="text-content"><span class="item-title">Machine Learning</span><span class="item-description">We build intelligent systems that learn from data to predict outcomes and automate decisions.</span></div></div></a></li>
|
<li><a href="../Services/machine-learning.html"><div class="dropdown-item-content"><img src="../assets/mlng.png" alt="Machine Learning Icon" class="dropdown-icon" class="gn-responsive-image"><div class="text-content"><span class="item-title">Machine Learning</span><span class="item-description">We build intelligent systems that learn from data to predict outcomes and automate decisions.</span></div></div></a></li>
|
||||||
<li><a href="../Services/data-analysis.html"><div class="dropdown-item-content"><img src="../assets/data analytics.png" alt="Data Analysis Icon" class="dropdown-icon" class="gn-responsive-image"><div class="text-content"><span class="item-title">Data Analytics</span><span class="item-description">We transform raw data into actionable insights, helping you understand trends and optimize performance.</span></div></div></a></li>
|
<li><a href="../Services/data-analysis.html"><div class="dropdown-item-content"><img src="../assets/data analytics.png" alt="Data Analysis Icon" class="dropdown-icon" class="gn-responsive-image"><div class="text-content"><span class="item-title">Data Analytics</span><span class="item-description">We transform raw data into actionable insights, helping you understand trends and optimize performance.</span></div></div></a></li>
|
||||||
@@ -38,7 +38,7 @@
|
|||||||
<li><a href="../Services/automation-flows.html"><div class="dropdown-item-content"><img src="../assets/automation flows.png" alt="Automation Flows Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Automation Flows</span><span class="item-description">We design and implement intelligent automation solutions to streamline your workflows and boost productivity.</span></div></div></a></li>
|
<li><a href="../Services/automation-flows.html"><div class="dropdown-item-content"><img src="../assets/automation flows.png" alt="Automation Flows Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Automation Flows</span><span class="item-description">We design and implement intelligent automation solutions to streamline your workflows and boost productivity.</span></div></div></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown"><a href="#" class="nav-link">Industries ▾</a>
|
<li class="dropdown"><a href="#" class="nav-link">Industries ?</a>
|
||||||
<ul class="dropdown-menu industries-dropdown">
|
<ul class="dropdown-menu industries-dropdown">
|
||||||
<li><a href="../Industries/finance.html"><div class="dropdown-item-content"><img src="../assets/Finance Ind.png" alt="Finance Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Finance</span><span class="item-description">Applying AI to enhance fraud detection, risk management, and customer experience.</span></div></div></a></li>
|
<li><a href="../Industries/finance.html"><div class="dropdown-item-content"><img src="../assets/Finance Ind.png" alt="Finance Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Finance</span><span class="item-description">Applying AI to enhance fraud detection, risk management, and customer experience.</span></div></div></a></li>
|
||||||
<li><a href="../Industries/healthcare.html"><div class="dropdown-item-content"><img src="../assets/healthcare ind.png" alt="Healthcare Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Healthcare</span><span class="item-description">Leveraging AI for faster diagnoses, personalized treatments, and improved patient care.</span></div></div></a></li>
|
<li><a href="../Industries/healthcare.html"><div class="dropdown-item-content"><img src="../assets/healthcare ind.png" alt="Healthcare Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Healthcare</span><span class="item-description">Leveraging AI for faster diagnoses, personalized treatments, and improved patient care.</span></div></div></a></li>
|
||||||
@@ -50,7 +50,7 @@
|
|||||||
<li><a href="../Industries/case-studies.html"><div class="dropdown-item-content"><img src="../assets/case study ind.png" alt="Case Studies Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Case Studies</span><span class="item-description">Real-world examples showcasing how our AI solutions have delivered tangible results for our clients.</span></div></div></a></li>
|
<li><a href="../Industries/case-studies.html"><div class="dropdown-item-content"><img src="../assets/case study ind.png" alt="Case Studies Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Case Studies</span><span class="item-description">Real-world examples showcasing how our AI solutions have delivered tangible results for our clients.</span></div></div></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown"><a href="#" class="nav-link active-nav-link">Education ▾</a>
|
<li class="dropdown"><a href="#" class="nav-link active-nav-link">Education ?</a>
|
||||||
<ul class="dropdown-menu education-dropdown">
|
<ul class="dropdown-menu education-dropdown">
|
||||||
<li><a href="workshops.html"><div class="dropdown-item-content"><img src="../assets/workshops.png" alt="Webinars Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Webinars</span><span class="item-description">Engaging and interactive sessions designed to introduce key AI concepts and practical skills.</span></div></div></a></li>
|
<li><a href="workshops.html"><div class="dropdown-item-content"><img src="../assets/workshops.png" alt="Webinars Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Webinars</span><span class="item-description">Engaging and interactive sessions designed to introduce key AI concepts and practical skills.</span></div></div></a></li>
|
||||||
<li><a href="individual-trainings.html"><div class="dropdown-item-content"><img src="../assets/indi training.png" alt="Individual Training Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Individual Trainings</span><span class="item-description">Personalized learning programs tailored to your specific needs and learning pace.</span></div></div></a></li>
|
<li><a href="individual-trainings.html"><div class="dropdown-item-content"><img src="../assets/indi training.png" alt="Individual Training Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Individual Trainings</span><span class="item-description">Personalized learning programs tailored to your specific needs and learning pace.</span></div></div></a></li>
|
||||||
@@ -397,48 +397,18 @@
|
|||||||
</footer>
|
</footer>
|
||||||
<script src="../js/main.js" defer></script>
|
<script src="../js/main.js" defer></script>
|
||||||
<script src="../js/menu-dropdown.js" defer></script>
|
<script src="../js/menu-dropdown.js" defer></script>
|
||||||
<script src="js/gn-mobile-navigation.js" defer></script>
|
<script </script>
|
||||||
<script src="../js/form-subscribe.js" defer></script>
|
<script </script>
|
||||||
<script src="../js/unified-neural-interactions.js" defer></script>
|
<script </script>
|
||||||
<script src="../js/tech-marquee.js" defer></script>
|
<script src="../js/tech-marquee.js" defer></script>
|
||||||
<script src="../js/data-node-interactions.js" defer></script>
|
<script </script>
|
||||||
|
|
||||||
<!-- Navbar scroll effect script -->
|
|
||||||
<script>
|
|
||||||
document.addEventListener('DOMContentLoaded', function() {
|
|
||||||
const header = document.querySelector('.site-header');
|
|
||||||
|
|
||||||
function handleScroll() {
|
|
||||||
const currentScrollY = window.scrollY;
|
|
||||||
|
|
||||||
if (currentScrollY > 30) {
|
|
||||||
header.classList.add('scrolled');
|
|
||||||
} else {
|
|
||||||
header.classList.remove('scrolled');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Throttle scroll events for better performance
|
|
||||||
let ticking = false;
|
|
||||||
function onScroll() {
|
|
||||||
if (!ticking) {
|
|
||||||
requestAnimationFrame(function() {
|
|
||||||
handleScroll();
|
|
||||||
ticking = false;
|
|
||||||
});
|
|
||||||
ticking = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
window.addEventListener('scroll', onScroll, { passive: true });
|
|
||||||
|
|
||||||
// Initial check
|
|
||||||
handleScroll();
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
@@ -33,7 +33,7 @@
|
|||||||
</button>
|
</button>
|
||||||
|
|
||||||
<ul class="nav-links">
|
<ul class="nav-links">
|
||||||
<li class="dropdown"><a href="#" class="nav-link">Services ▾</a>
|
<li class="dropdown"><a href="#" class="nav-link">Services ?</a>
|
||||||
<ul class="dropdown-menu services-dropdown">
|
<ul class="dropdown-menu services-dropdown">
|
||||||
<li><a href="../Services/machine-learning.html"><div class="dropdown-item-content"><img src="../assets/mlng.png" alt="Machine Learning Icon" class="dropdown-icon" class="gn-responsive-image"><div class="text-content"><span class="item-title">Machine Learning</span><span class="item-description">We build intelligent systems that learn from data to predict outcomes and automate decisions.</span></div></div></a></li>
|
<li><a href="../Services/machine-learning.html"><div class="dropdown-item-content"><img src="../assets/mlng.png" alt="Machine Learning Icon" class="dropdown-icon" class="gn-responsive-image"><div class="text-content"><span class="item-title">Machine Learning</span><span class="item-description">We build intelligent systems that learn from data to predict outcomes and automate decisions.</span></div></div></a></li>
|
||||||
<li><a href="../Services/data-analysis.html"><div class="dropdown-item-content"><img src="../assets/data analytics.png" alt="Data Analysis Icon" class="dropdown-icon" class="gn-responsive-image"><div class="text-content"><span class="item-title">Data Analytics</span><span class="item-description">We transform raw data into actionable insights, helping you understand trends and optimize performance.</span></div></div></a></li>
|
<li><a href="../Services/data-analysis.html"><div class="dropdown-item-content"><img src="../assets/data analytics.png" alt="Data Analysis Icon" class="dropdown-icon" class="gn-responsive-image"><div class="text-content"><span class="item-title">Data Analytics</span><span class="item-description">We transform raw data into actionable insights, helping you understand trends and optimize performance.</span></div></div></a></li>
|
||||||
@@ -42,7 +42,7 @@
|
|||||||
<li><a href="../Services/automation-flows.html"><div class="dropdown-item-content"><img src="../assets/automation flows.png" alt="Automation Flows Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Automation Flows</span><span class="item-description">We design and implement intelligent automation solutions to streamline your workflows and boost productivity.</span></div></div></a></li>
|
<li><a href="../Services/automation-flows.html"><div class="dropdown-item-content"><img src="../assets/automation flows.png" alt="Automation Flows Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Automation Flows</span><span class="item-description">We design and implement intelligent automation solutions to streamline your workflows and boost productivity.</span></div></div></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown"><a href="#" class="nav-link">Industries ▾</a>
|
<li class="dropdown"><a href="#" class="nav-link">Industries ?</a>
|
||||||
<ul class="dropdown-menu industries-dropdown">
|
<ul class="dropdown-menu industries-dropdown">
|
||||||
<li><a href="../Industries/finance.html"><div class="dropdown-item-content"><img src="../assets/Finance Ind.png" alt="Finance Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Finance</span><span class="item-description">Applying AI to enhance fraud detection, risk management, and customer experience.</span></div></div></a></li>
|
<li><a href="../Industries/finance.html"><div class="dropdown-item-content"><img src="../assets/Finance Ind.png" alt="Finance Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Finance</span><span class="item-description">Applying AI to enhance fraud detection, risk management, and customer experience.</span></div></div></a></li>
|
||||||
<li><a href="../Industries/healthcare.html"><div class="dropdown-item-content"><img src="../assets/healthcare ind.png" alt="Healthcare Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Healthcare</span><span class="item-description">Leveraging AI for faster diagnoses, personalized treatments, and improved patient care.</span></div></div></a></li>
|
<li><a href="../Industries/healthcare.html"><div class="dropdown-item-content"><img src="../assets/healthcare ind.png" alt="Healthcare Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Healthcare</span><span class="item-description">Leveraging AI for faster diagnoses, personalized treatments, and improved patient care.</span></div></div></a></li>
|
||||||
@@ -56,7 +56,7 @@
|
|||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown"><a href="#" class="nav-link active">Education ▾</a>
|
<li class="dropdown"><a href="#" class="nav-link active">Education ?</a>
|
||||||
<ul class="dropdown-menu education-dropdown">
|
<ul class="dropdown-menu education-dropdown">
|
||||||
<li><a href="./workshops.html"><div class="dropdown-item-content"><img src="../assets/workshops.png" alt="Webinars Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Webinars</span><span class="item-description">Engaging and interactive sessions designed to introduce key AI concepts and practical skills.</span></div></div></a></li>
|
<li><a href="./workshops.html"><div class="dropdown-item-content"><img src="../assets/workshops.png" alt="Webinars Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Webinars</span><span class="item-description">Engaging and interactive sessions designed to introduce key AI concepts and practical skills.</span></div></div></a></li>
|
||||||
<li><a href="./individual-trainings.html"><div class="dropdown-item-content"><img src="../assets/indi training.png" alt="Individual Training Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Individual Trainings</span><span class="item-description">Personalized learning programs tailored to your specific needs and learning pace.</span></div></div></a></li>
|
<li><a href="./individual-trainings.html"><div class="dropdown-item-content"><img src="../assets/indi training.png" alt="Individual Training Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Individual Trainings</span><span class="item-description">Personalized learning programs tailored to your specific needs and learning pace.</span></div></div></a></li>
|
||||||
@@ -470,49 +470,19 @@
|
|||||||
</div>
|
</div>
|
||||||
</footer> <script src="../js/main.js" defer></script>
|
</footer> <script src="../js/main.js" defer></script>
|
||||||
<script src="../js/menu-dropdown.js" defer></script>
|
<script src="../js/menu-dropdown.js" defer></script>
|
||||||
<script src="js/gn-mobile-navigation.js" defer></script>
|
<script </script>
|
||||||
<script src="../js/form-subscribe.js" defer></script>
|
<script </script>
|
||||||
<script src="../js/unified-neural-interactions.js" defer></script>
|
<script </script>
|
||||||
<script src="../js/tech-marquee.js" defer></script>
|
<script src="../js/tech-marquee.js" defer></script>
|
||||||
<script src="../js/data-node-interactions.js" defer></script>
|
<script </script>
|
||||||
<script src="../js/webinar-interactions.js" defer></script>
|
<script src="../js/webinar-interactions.js" defer></script>
|
||||||
|
|
||||||
<!-- Navbar scroll effect script -->
|
|
||||||
<script>
|
|
||||||
document.addEventListener('DOMContentLoaded', function() {
|
|
||||||
const header = document.querySelector('.site-header');
|
|
||||||
|
|
||||||
function handleScroll() {
|
|
||||||
const currentScrollY = window.scrollY;
|
|
||||||
|
|
||||||
if (currentScrollY > 30) {
|
|
||||||
header.classList.add('scrolled');
|
|
||||||
} else {
|
|
||||||
header.classList.remove('scrolled');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Throttle scroll events for better performance
|
|
||||||
let ticking = false;
|
|
||||||
function onScroll() {
|
|
||||||
if (!ticking) {
|
|
||||||
requestAnimationFrame(function() {
|
|
||||||
handleScroll();
|
|
||||||
ticking = false;
|
|
||||||
});
|
|
||||||
ticking = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
window.addEventListener('scroll', onScroll, { passive: true });
|
|
||||||
|
|
||||||
// Initial check
|
|
||||||
handleScroll();
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
@@ -33,7 +33,7 @@
|
|||||||
</button>
|
</button>
|
||||||
|
|
||||||
<ul class="nav-links">
|
<ul class="nav-links">
|
||||||
<li class="dropdown"><a href="#" class="nav-link">Services ▾</a>
|
<li class="dropdown"><a href="#" class="nav-link">Services ?</a>
|
||||||
<ul class="dropdown-menu services-dropdown">
|
<ul class="dropdown-menu services-dropdown">
|
||||||
<li><a href="../Services/machine-learning.html"><div class="dropdown-item-content"><img src="../assets/mlng.png" alt="Machine Learning Icon" class="dropdown-icon" class="gn-responsive-image"><div class="text-content"><span class="item-title">Machine Learning</span><span class="item-description">We build intelligent systems that learn from data to predict outcomes and automate decisions.</span></div></div></a></li>
|
<li><a href="../Services/machine-learning.html"><div class="dropdown-item-content"><img src="../assets/mlng.png" alt="Machine Learning Icon" class="dropdown-icon" class="gn-responsive-image"><div class="text-content"><span class="item-title">Machine Learning</span><span class="item-description">We build intelligent systems that learn from data to predict outcomes and automate decisions.</span></div></div></a></li>
|
||||||
<li><a href="../Services/data-analysis.html"><div class="dropdown-item-content"><img src="../assets/data analytics.png" alt="Data Analysis Icon" class="dropdown-icon" class="gn-responsive-image"><div class="text-content"><span class="item-title">Data Analytics</span><span class="item-description">We transform raw data into actionable insights, helping you understand trends and optimize performance.</span></div></div></a></li>
|
<li><a href="../Services/data-analysis.html"><div class="dropdown-item-content"><img src="../assets/data analytics.png" alt="Data Analysis Icon" class="dropdown-icon" class="gn-responsive-image"><div class="text-content"><span class="item-title">Data Analytics</span><span class="item-description">We transform raw data into actionable insights, helping you understand trends and optimize performance.</span></div></div></a></li>
|
||||||
@@ -42,7 +42,7 @@
|
|||||||
<li><a href="../Services/automation-flows.html"><div class="dropdown-item-content"><img src="../assets/automation flows.png" alt="Automation Flows Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Automation Flows</span><span class="item-description">We design and implement intelligent automation solutions to streamline your workflows and boost productivity.</span></div></div></a></li>
|
<li><a href="../Services/automation-flows.html"><div class="dropdown-item-content"><img src="../assets/automation flows.png" alt="Automation Flows Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Automation Flows</span><span class="item-description">We design and implement intelligent automation solutions to streamline your workflows and boost productivity.</span></div></div></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown"><a href="#" class="nav-link">Industries ▾</a>
|
<li class="dropdown"><a href="#" class="nav-link">Industries ?</a>
|
||||||
<ul class="dropdown-menu industries-dropdown">
|
<ul class="dropdown-menu industries-dropdown">
|
||||||
<li><a href="../Industries/finance.html"><div class="dropdown-item-content"><img src="../assets/Finance Ind.png" alt="Finance Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Finance</span><span class="item-description">Applying AI to enhance fraud detection, risk management, and customer experience.</span></div></div></a></li>
|
<li><a href="../Industries/finance.html"><div class="dropdown-item-content"><img src="../assets/Finance Ind.png" alt="Finance Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Finance</span><span class="item-description">Applying AI to enhance fraud detection, risk management, and customer experience.</span></div></div></a></li>
|
||||||
<li><a href="../Industries/healthcare.html"><div class="dropdown-item-content"><img src="../assets/healthcare ind.png" alt="Healthcare Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Healthcare</span><span class="item-description">Leveraging AI for faster diagnoses, personalized treatments, and improved patient care.</span></div></div></a></li>
|
<li><a href="../Industries/healthcare.html"><div class="dropdown-item-content"><img src="../assets/healthcare ind.png" alt="Healthcare Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Healthcare</span><span class="item-description">Leveraging AI for faster diagnoses, personalized treatments, and improved patient care.</span></div></div></a></li>
|
||||||
@@ -54,7 +54,7 @@
|
|||||||
<li><a href="case-studies.html" class="active"><div class="dropdown-item-content"><img src="../assets/case study ind.png" alt="Case Studies Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Case Studies</span><span class="item-description">Real-world examples showcasing how our AI solutions have delivered tangible results for our clients.</span></div></div></a></li>
|
<li><a href="case-studies.html" class="active"><div class="dropdown-item-content"><img src="../assets/case study ind.png" alt="Case Studies Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Case Studies</span><span class="item-description">Real-world examples showcasing how our AI solutions have delivered tangible results for our clients.</span></div></div></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown"><a href="#" class="nav-link">Education ▾</a>
|
<li class="dropdown"><a href="#" class="nav-link">Education ?</a>
|
||||||
<ul class="dropdown-menu education-dropdown">
|
<ul class="dropdown-menu education-dropdown">
|
||||||
<li><a href="../Education/workshops.html"><div class="dropdown-item-content"><img src="../assets/workshops.png" alt="Webinars Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Webinars</span><span class="item-description">Engaging and interactive sessions designed to introduce key AI concepts and practical skills.</span></div></div></a></li>
|
<li><a href="../Education/workshops.html"><div class="dropdown-item-content"><img src="../assets/workshops.png" alt="Webinars Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Webinars</span><span class="item-description">Engaging and interactive sessions designed to introduce key AI concepts and practical skills.</span></div></div></a></li>
|
||||||
<li><a href="../Education/individual-trainings.html"><div class="dropdown-item-content"><img src="../assets/indi training.png" alt="Individual Training Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Individual Trainings</span><span class="item-description">Personalized learning programs tailored to your specific needs and learning pace.</span></div></div></a></li>
|
<li><a href="../Education/individual-trainings.html"><div class="dropdown-item-content"><img src="../assets/indi training.png" alt="Individual Training Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Individual Trainings</span><span class="item-description">Personalized learning programs tailored to your specific needs and learning pace.</span></div></div></a></li>
|
||||||
@@ -185,45 +185,13 @@
|
|||||||
</footer>
|
</footer>
|
||||||
<script src="../js/main.js" defer></script>
|
<script src="../js/main.js" defer></script>
|
||||||
<script src="../js/menu-dropdown.js" defer></script>
|
<script src="../js/menu-dropdown.js" defer></script>
|
||||||
<script src="js/gn-mobile-navigation.js" defer></script>
|
<script </script>
|
||||||
<script src="../js/form-subscribe.js" defer></script>
|
<script </script>
|
||||||
<script src="../js/unified-neural-interactions.js" defer></script>
|
<script </script>
|
||||||
<script src="../js/tech-marquee.js" defer></script>
|
<script src="../js/tech-marquee.js" defer></script>
|
||||||
<script src="../js/data-node-interactions.js" defer></script>
|
<script </script>
|
||||||
|
|
||||||
<!-- Navbar scroll effect script -->
|
|
||||||
<script>
|
|
||||||
document.addEventListener('DOMContentLoaded', function() {
|
|
||||||
const header = document.querySelector('.site-header');
|
|
||||||
|
|
||||||
function handleScroll() {
|
|
||||||
const currentScrollY = window.scrollY;
|
|
||||||
|
|
||||||
if (currentScrollY > 30) {
|
|
||||||
header.classList.add('scrolled');
|
|
||||||
} else {
|
|
||||||
header.classList.remove('scrolled');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Throttle scroll events for better performance
|
|
||||||
let ticking = false;
|
|
||||||
function onScroll() {
|
|
||||||
if (!ticking) {
|
|
||||||
requestAnimationFrame(function() {
|
|
||||||
handleScroll();
|
|
||||||
ticking = false;
|
|
||||||
});
|
|
||||||
ticking = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
window.addEventListener('scroll', onScroll, { passive: true });
|
|
||||||
|
|
||||||
// Initial check
|
|
||||||
handleScroll();
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<!-- Mobile Enhancement Scripts -->
|
<!-- Mobile Enhancement Scripts -->
|
||||||
<script src="../js/menu-dropdown.js"></script>
|
<script src="../js/menu-dropdown.js"></script>
|
||||||
@@ -235,3 +203,5 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -201,47 +201,17 @@
|
|||||||
|
|
||||||
<script src="../js/main.js" defer></script>
|
<script src="../js/main.js" defer></script>
|
||||||
<script src="../js/menu-dropdown.js" defer></script>
|
<script src="../js/menu-dropdown.js" defer></script>
|
||||||
<script src="js/gn-mobile-navigation.js" defer></script>
|
<script </script>
|
||||||
<script src="../js/form-subscribe.js" defer></script>
|
<script </script>
|
||||||
<script src="../js/unified-neural-interactions.js" defer></script>
|
<script </script>
|
||||||
<script src="../js/tech-marquee.js" defer></script>
|
<script src="../js/tech-marquee.js" defer></script>
|
||||||
<script src="../js/data-node-interactions.js" defer></script>
|
<script </script>
|
||||||
|
|
||||||
<!-- Navbar scroll effect script -->
|
|
||||||
<script>
|
|
||||||
document.addEventListener('DOMContentLoaded', function() {
|
|
||||||
const header = document.querySelector('.site-header');
|
|
||||||
|
|
||||||
function handleScroll() {
|
|
||||||
const currentScrollY = window.scrollY;
|
|
||||||
|
|
||||||
if (currentScrollY > 30) {
|
|
||||||
header.classList.add('scrolled');
|
|
||||||
} else {
|
|
||||||
header.classList.remove('scrolled');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Throttle scroll events for better performance
|
|
||||||
let ticking = false;
|
|
||||||
function onScroll() {
|
|
||||||
if (!ticking) {
|
|
||||||
requestAnimationFrame(function() {
|
|
||||||
handleScroll();
|
|
||||||
ticking = false;
|
|
||||||
});
|
|
||||||
ticking = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
window.addEventListener('scroll', onScroll, { passive: true });
|
|
||||||
|
|
||||||
// Initial check
|
|
||||||
handleScroll();
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
@@ -36,7 +36,7 @@
|
|||||||
</button>
|
</button>
|
||||||
|
|
||||||
<ul class="nav-links">
|
<ul class="nav-links">
|
||||||
<li class="dropdown"><a href="#" class="nav-link">Services ▾</a>
|
<li class="dropdown"><a href="#" class="nav-link">Services ?</a>
|
||||||
<ul class="dropdown-menu services-dropdown">
|
<ul class="dropdown-menu services-dropdown">
|
||||||
<li><a href="../Services/machine-learning.html"><div class="dropdown-item-content"><img src="../assets/mlng.png" alt="Machine Learning Icon" class="dropdown-icon" class="gn-responsive-image"><div class="text-content"><span class="item-title">Machine Learning</span><span class="item-description">We build intelligent systems that learn from data to predict outcomes and automate decisions.</span></div></div></a></li>
|
<li><a href="../Services/machine-learning.html"><div class="dropdown-item-content"><img src="../assets/mlng.png" alt="Machine Learning Icon" class="dropdown-icon" class="gn-responsive-image"><div class="text-content"><span class="item-title">Machine Learning</span><span class="item-description">We build intelligent systems that learn from data to predict outcomes and automate decisions.</span></div></div></a></li>
|
||||||
<li><a href="../Services/data-analysis.html"><div class="dropdown-item-content"><img src="../assets/data analytics.png" alt="Data Analysis Icon" class="dropdown-icon" class="gn-responsive-image"><div class="text-content"><span class="item-title">Data Analytics</span><span class="item-description">We transform raw data into actionable insights, helping you understand trends and optimize performance.</span></div></div></a></li>
|
<li><a href="../Services/data-analysis.html"><div class="dropdown-item-content"><img src="../assets/data analytics.png" alt="Data Analysis Icon" class="dropdown-icon" class="gn-responsive-image"><div class="text-content"><span class="item-title">Data Analytics</span><span class="item-description">We transform raw data into actionable insights, helping you understand trends and optimize performance.</span></div></div></a></li>
|
||||||
@@ -45,7 +45,7 @@
|
|||||||
<li><a href="../Services/automation-flows.html"><div class="dropdown-item-content"><img src="../assets/automation flows.png" alt="Automation Flows Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Automation Flows</span><span class="item-description">We design and implement intelligent automation solutions to streamline your workflows and boost productivity.</span></div></div></a></li>
|
<li><a href="../Services/automation-flows.html"><div class="dropdown-item-content"><img src="../assets/automation flows.png" alt="Automation Flows Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Automation Flows</span><span class="item-description">We design and implement intelligent automation solutions to streamline your workflows and boost productivity.</span></div></div></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown"><a href="#" class="nav-link">Industries ▾</a>
|
<li class="dropdown"><a href="#" class="nav-link">Industries ?</a>
|
||||||
<ul class="dropdown-menu industries-dropdown">
|
<ul class="dropdown-menu industries-dropdown">
|
||||||
<li><a href="finance.html"><div class="dropdown-item-content"><img src="../assets/Finance Ind.png" alt="Finance Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Finance</span><span class="item-description">Applying AI to enhance fraud detection, risk management, and customer experience.</span></div></div></a></li>
|
<li><a href="finance.html"><div class="dropdown-item-content"><img src="../assets/Finance Ind.png" alt="Finance Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Finance</span><span class="item-description">Applying AI to enhance fraud detection, risk management, and customer experience.</span></div></div></a></li>
|
||||||
<li><a href="healthcare.html"><div class="dropdown-item-content"><img src="../assets/healthcare ind.png" alt="Healthcare Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Healthcare</span><span class="item-description">Leveraging AI for faster diagnoses, personalized treatments, and improved patient care.</span></div></div></a></li>
|
<li><a href="healthcare.html"><div class="dropdown-item-content"><img src="../assets/healthcare ind.png" alt="Healthcare Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Healthcare</span><span class="item-description">Leveraging AI for faster diagnoses, personalized treatments, and improved patient care.</span></div></div></a></li>
|
||||||
@@ -58,7 +58,7 @@
|
|||||||
<li><a href="case-studies.html"><div class="dropdown-item-content"><img src="../assets/case study ind.png" alt="Case Studies Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Case Studies</span><span class="item-description">Real-world examples showcasing how our AI solutions have delivered tangible results for our clients.</span></div></div></a></li>
|
<li><a href="case-studies.html"><div class="dropdown-item-content"><img src="../assets/case study ind.png" alt="Case Studies Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Case Studies</span><span class="item-description">Real-world examples showcasing how our AI solutions have delivered tangible results for our clients.</span></div></div></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown"><a href="#" class="nav-link">Education ▾</a>
|
<li class="dropdown"><a href="#" class="nav-link">Education ?</a>
|
||||||
<ul class="dropdown-menu education-dropdown">
|
<ul class="dropdown-menu education-dropdown">
|
||||||
<li><a href="../Education/workshops.html"><div class="dropdown-item-content"><img src="../assets/workshops.png" alt="Webinars Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Webinars</span><span class="item-description">Engaging and interactive sessions designed to introduce key AI concepts and practical skills.</span></div></div></a></li>
|
<li><a href="../Education/workshops.html"><div class="dropdown-item-content"><img src="../assets/workshops.png" alt="Webinars Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Webinars</span><span class="item-description">Engaging and interactive sessions designed to introduce key AI concepts and practical skills.</span></div></div></a></li>
|
||||||
<li><a href="../Education/individual-trainings.html"><div class="dropdown-item-content"><img src="../assets/indi training.png" alt="Individual Trainings Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Individual Trainings</span><span class="item-description">Personalized learning programs tailored to your specific needs and learning pace.</span></div></div></a></li>
|
<li><a href="../Education/individual-trainings.html"><div class="dropdown-item-content"><img src="../assets/indi training.png" alt="Individual Trainings Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Individual Trainings</span><span class="item-description">Personalized learning programs tailored to your specific needs and learning pace.</span></div></div></a></li>
|
||||||
@@ -233,45 +233,13 @@
|
|||||||
</footer>
|
</footer>
|
||||||
<script src="../js/main.js" defer></script>
|
<script src="../js/main.js" defer></script>
|
||||||
<script src="../js/menu-dropdown.js" defer></script>
|
<script src="../js/menu-dropdown.js" defer></script>
|
||||||
<script src="js/gn-mobile-navigation.js" defer></script>
|
<script </script>
|
||||||
<script src="../js/form-subscribe.js" defer></script>
|
<script </script>
|
||||||
<script src="../js/unified-neural-interactions.js" defer></script>
|
<script </script>
|
||||||
<script src="../js/tech-marquee.js" defer></script>
|
<script src="../js/tech-marquee.js" defer></script>
|
||||||
<script src="../js/data-node-interactions.js" defer></script>
|
<script </script>
|
||||||
|
|
||||||
<!-- Navbar scroll effect script -->
|
|
||||||
<script>
|
|
||||||
document.addEventListener('DOMContentLoaded', function() {
|
|
||||||
const header = document.querySelector('.site-header');
|
|
||||||
|
|
||||||
function handleScroll() {
|
|
||||||
const currentScrollY = window.scrollY;
|
|
||||||
|
|
||||||
if (currentScrollY > 30) {
|
|
||||||
header.classList.add('scrolled');
|
|
||||||
} else {
|
|
||||||
header.classList.remove('scrolled');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Throttle scroll events for better performance
|
|
||||||
let ticking = false;
|
|
||||||
function onScroll() {
|
|
||||||
if (!ticking) {
|
|
||||||
requestAnimationFrame(function() {
|
|
||||||
handleScroll();
|
|
||||||
ticking = false;
|
|
||||||
});
|
|
||||||
ticking = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
window.addEventListener('scroll', onScroll, { passive: true });
|
|
||||||
|
|
||||||
// Initial check
|
|
||||||
handleScroll();
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<!-- Mobile Enhancement Scripts -->
|
<!-- Mobile Enhancement Scripts -->
|
||||||
<script src="../js/menu-dropdown.js"></script>
|
<script src="../js/menu-dropdown.js"></script>
|
||||||
@@ -283,3 +251,5 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
@@ -36,7 +36,7 @@
|
|||||||
</button>
|
</button>
|
||||||
|
|
||||||
<ul class="nav-links">
|
<ul class="nav-links">
|
||||||
<li class="dropdown"><a href="#" class="nav-link">Services ▾</a>
|
<li class="dropdown"><a href="#" class="nav-link">Services ?</a>
|
||||||
<ul class="dropdown-menu services-dropdown">
|
<ul class="dropdown-menu services-dropdown">
|
||||||
<li><a href="../Services/machine-learning.html"><div class="dropdown-item-content"><img src="../assets/mlng.png" alt="Machine Learning Icon" class="dropdown-icon" class="gn-responsive-image"><div class="text-content"><span class="item-title">Machine Learning</span><span class="item-description">We build intelligent systems that learn from data to predict outcomes and automate decisions.</span></div></div></a></li>
|
<li><a href="../Services/machine-learning.html"><div class="dropdown-item-content"><img src="../assets/mlng.png" alt="Machine Learning Icon" class="dropdown-icon" class="gn-responsive-image"><div class="text-content"><span class="item-title">Machine Learning</span><span class="item-description">We build intelligent systems that learn from data to predict outcomes and automate decisions.</span></div></div></a></li>
|
||||||
<li><a href="../Services/data-analysis.html"><div class="dropdown-item-content"><img src="../assets/data analytics.png" alt="Data Analysis Icon" class="dropdown-icon" class="gn-responsive-image"><div class="text-content"><span class="item-title">Data Analytics</span><span class="item-description">We transform raw data into actionable insights, helping you understand trends and optimize performance.</span></div></div></a></li>
|
<li><a href="../Services/data-analysis.html"><div class="dropdown-item-content"><img src="../assets/data analytics.png" alt="Data Analysis Icon" class="dropdown-icon" class="gn-responsive-image"><div class="text-content"><span class="item-title">Data Analytics</span><span class="item-description">We transform raw data into actionable insights, helping you understand trends and optimize performance.</span></div></div></a></li>
|
||||||
@@ -45,7 +45,7 @@
|
|||||||
<li><a href="../Services/automation-flows.html"><div class="dropdown-item-content"><img src="../assets/automation flows.png" alt="Automation Flows Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Automation Flows</span><span class="item-description">We design and implement intelligent automation solutions to streamline your workflows and boost productivity.</span></div></div></a></li>
|
<li><a href="../Services/automation-flows.html"><div class="dropdown-item-content"><img src="../assets/automation flows.png" alt="Automation Flows Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Automation Flows</span><span class="item-description">We design and implement intelligent automation solutions to streamline your workflows and boost productivity.</span></div></div></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown"><a href="#" class="nav-link">Industries ▾</a>
|
<li class="dropdown"><a href="#" class="nav-link">Industries ?</a>
|
||||||
<ul class="dropdown-menu industries-dropdown">
|
<ul class="dropdown-menu industries-dropdown">
|
||||||
<li><a href="finance.html"><div class="dropdown-item-content"><img src="../assets/Finance Ind.png" alt="Finance Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Finance</span><span class="item-description">Applying AI to enhance fraud detection, risk management, and customer experience.</span></div></div></a></li>
|
<li><a href="finance.html"><div class="dropdown-item-content"><img src="../assets/Finance Ind.png" alt="Finance Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Finance</span><span class="item-description">Applying AI to enhance fraud detection, risk management, and customer experience.</span></div></div></a></li>
|
||||||
<li><a href="healthcare.html"><div class="dropdown-item-content"><img src="../assets/healthcare ind.png" alt="Healthcare Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Healthcare</span><span class="item-description">Leveraging AI for faster diagnoses, personalized treatments, and improved patient care.</span></div></div></a></li>
|
<li><a href="healthcare.html"><div class="dropdown-item-content"><img src="../assets/healthcare ind.png" alt="Healthcare Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Healthcare</span><span class="item-description">Leveraging AI for faster diagnoses, personalized treatments, and improved patient care.</span></div></div></a></li>
|
||||||
@@ -57,7 +57,7 @@
|
|||||||
</span></div></div></a></li>
|
</span></div></div></a></li>
|
||||||
<li><a href="case-studies.html"><div class="dropdown-item-content"><img src="../assets/case study ind.png" alt="Case Studies Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Case Studies</span><span class="item-description">Real-world examples showcasing how our AI solutions have delivered tangible results for our clients.</span></div></div></a></li>
|
<li><a href="case-studies.html"><div class="dropdown-item-content"><img src="../assets/case study ind.png" alt="Case Studies Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Case Studies</span><span class="item-description">Real-world examples showcasing how our AI solutions have delivered tangible results for our clients.</span></div></div></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li> <li class="dropdown"><a href="#" class="nav-link">Education ▾</a>
|
</li> <li class="dropdown"><a href="#" class="nav-link">Education ?</a>
|
||||||
<ul class="dropdown-menu education-dropdown">
|
<ul class="dropdown-menu education-dropdown">
|
||||||
<li><a href="../Education/workshops.html"><div class="dropdown-item-content"><img src="../assets/workshops.png" alt="Webinars Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Webinars</span><span class="item-description">Engaging and interactive sessions designed to introduce key AI concepts and practical skills.</span></div></div></a></li>
|
<li><a href="../Education/workshops.html"><div class="dropdown-item-content"><img src="../assets/workshops.png" alt="Webinars Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Webinars</span><span class="item-description">Engaging and interactive sessions designed to introduce key AI concepts and practical skills.</span></div></div></a></li>
|
||||||
<li><a href="../Education/individual-trainings.html"><div class="dropdown-item-content"><img src="../assets/indi training.png" alt="Individual Trainings Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Individual Trainings</span><span class="item-description">Personalized learning programs tailored to your specific needs and learning pace.</span></div></div></a></li>
|
<li><a href="../Education/individual-trainings.html"><div class="dropdown-item-content"><img src="../assets/indi training.png" alt="Individual Trainings Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Individual Trainings</span><span class="item-description">Personalized learning programs tailored to your specific needs and learning pace.</span></div></div></a></li>
|
||||||
@@ -205,45 +205,13 @@
|
|||||||
</footer>
|
</footer>
|
||||||
<script src="../js/main.js" defer></script>
|
<script src="../js/main.js" defer></script>
|
||||||
<script src="../js/menu-dropdown.js" defer></script>
|
<script src="../js/menu-dropdown.js" defer></script>
|
||||||
<script src="js/gn-mobile-navigation.js" defer></script>
|
<script </script>
|
||||||
<script src="../js/form-subscribe.js" defer></script>
|
<script </script>
|
||||||
<script src="../js/unified-neural-interactions.js" defer></script>
|
<script </script>
|
||||||
<script src="../js/tech-marquee.js" defer></script>
|
<script src="../js/tech-marquee.js" defer></script>
|
||||||
<script src="../js/data-node-interactions.js" defer></script>
|
<script </script>
|
||||||
|
|
||||||
<!-- Navbar scroll effect script -->
|
|
||||||
<script>
|
|
||||||
document.addEventListener('DOMContentLoaded', function() {
|
|
||||||
const header = document.querySelector('.site-header');
|
|
||||||
|
|
||||||
function handleScroll() {
|
|
||||||
const currentScrollY = window.scrollY;
|
|
||||||
|
|
||||||
if (currentScrollY > 30) {
|
|
||||||
header.classList.add('scrolled');
|
|
||||||
} else {
|
|
||||||
header.classList.remove('scrolled');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Throttle scroll events for better performance
|
|
||||||
let ticking = false;
|
|
||||||
function onScroll() {
|
|
||||||
if (!ticking) {
|
|
||||||
requestAnimationFrame(function() {
|
|
||||||
handleScroll();
|
|
||||||
ticking = false;
|
|
||||||
});
|
|
||||||
ticking = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
window.addEventListener('scroll', onScroll, { passive: true });
|
|
||||||
|
|
||||||
// Initial check
|
|
||||||
handleScroll();
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<!-- Mobile Enhancement Scripts -->
|
<!-- Mobile Enhancement Scripts -->
|
||||||
<script src="../js/menu-dropdown.js"></script>
|
<script src="../js/menu-dropdown.js"></script>
|
||||||
@@ -255,3 +223,5 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
</button>
|
</button>
|
||||||
|
|
||||||
<ul class="nav-links">
|
<ul class="nav-links">
|
||||||
<li class="dropdown"><a href="#" class="nav-link">Services ▾</a>
|
<li class="dropdown"><a href="#" class="nav-link">Services ?</a>
|
||||||
<ul class="dropdown-menu services-dropdown">
|
<ul class="dropdown-menu services-dropdown">
|
||||||
<li><a href="../Services/machine-learning.html"><div class="dropdown-item-content"><img src="../assets/mlng.png" alt="Machine Learning Icon" class="dropdown-icon" class="gn-responsive-image"><div class="text-content"><span class="item-title">Machine Learning</span><span class="item-description">We build intelligent systems that learn from data to predict outcomes and automate decisions.</span></div></div></a></li>
|
<li><a href="../Services/machine-learning.html"><div class="dropdown-item-content"><img src="../assets/mlng.png" alt="Machine Learning Icon" class="dropdown-icon" class="gn-responsive-image"><div class="text-content"><span class="item-title">Machine Learning</span><span class="item-description">We build intelligent systems that learn from data to predict outcomes and automate decisions.</span></div></div></a></li>
|
||||||
<li><a href="../Services/data-analysis.html"><div class="dropdown-item-content"><img src="../assets/data analytics.png" alt="Data Analysis Icon" class="dropdown-icon" class="gn-responsive-image"><div class="text-content"><span class="item-title">Data Analytics</span><span class="item-description">We transform raw data into actionable insights, helping you understand trends and optimize performance.</span></div></div></a></li>
|
<li><a href="../Services/data-analysis.html"><div class="dropdown-item-content"><img src="../assets/data analytics.png" alt="Data Analysis Icon" class="dropdown-icon" class="gn-responsive-image"><div class="text-content"><span class="item-title">Data Analytics</span><span class="item-description">We transform raw data into actionable insights, helping you understand trends and optimize performance.</span></div></div></a></li>
|
||||||
@@ -43,7 +43,7 @@
|
|||||||
<li><a href="../Services/automation-flows.html"><div class="dropdown-item-content"><img src="../assets/automation flows.png" alt="Automation Flows Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Automation Flows</span><span class="item-description">We design and implement intelligent automation solutions to streamline your workflows and boost productivity.</span></div></div></a></li>
|
<li><a href="../Services/automation-flows.html"><div class="dropdown-item-content"><img src="../assets/automation flows.png" alt="Automation Flows Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Automation Flows</span><span class="item-description">We design and implement intelligent automation solutions to streamline your workflows and boost productivity.</span></div></div></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown"><a href="#" class="nav-link">Industries ▾</a>
|
<li class="dropdown"><a href="#" class="nav-link">Industries ?</a>
|
||||||
<ul class="dropdown-menu industries-dropdown">
|
<ul class="dropdown-menu industries-dropdown">
|
||||||
<li><a href="finance.html"><div class="dropdown-item-content"><img src="../assets/Finance Ind.png" alt="Finance Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Finance</span><span class="item-description">Applying AI to enhance fraud detection, risk management, and customer experience.</span></div></div></a></li>
|
<li><a href="finance.html"><div class="dropdown-item-content"><img src="../assets/Finance Ind.png" alt="Finance Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Finance</span><span class="item-description">Applying AI to enhance fraud detection, risk management, and customer experience.</span></div></div></a></li>
|
||||||
<li><a href="healthcare.html"><div class="dropdown-item-content"><img src="../assets/healthcare ind.png" alt="Healthcare Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Healthcare</span><span class="item-description">Leveraging AI for faster diagnoses, personalized treatments, and improved patient care.</span></div></div></a></li>
|
<li><a href="healthcare.html"><div class="dropdown-item-content"><img src="../assets/healthcare ind.png" alt="Healthcare Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Healthcare</span><span class="item-description">Leveraging AI for faster diagnoses, personalized treatments, and improved patient care.</span></div></div></a></li>
|
||||||
@@ -56,7 +56,7 @@
|
|||||||
<li><a href="case-studies.html"><div class="dropdown-item-content"><img src="../assets/case study ind.png" alt="Case Studies Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Case Studies</span><span class="item-description">Real-world examples showcasing how our AI solutions have delivered tangible results for our clients.</span></div></div></a></li>
|
<li><a href="case-studies.html"><div class="dropdown-item-content"><img src="../assets/case study ind.png" alt="Case Studies Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Case Studies</span><span class="item-description">Real-world examples showcasing how our AI solutions have delivered tangible results for our clients.</span></div></div></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown"><a href="#" class="nav-link">Education ▾</a>
|
<li class="dropdown"><a href="#" class="nav-link">Education ?</a>
|
||||||
<ul class="dropdown-menu education-dropdown">
|
<ul class="dropdown-menu education-dropdown">
|
||||||
<li><a href="../Education/workshops.html"><div class="dropdown-item-content"><img src="../assets/workshops.png" alt="Webinars Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Webinars</span><span class="item-description">Engaging and interactive sessions designed to introduce key AI concepts and practical skills.</span></div></div></a></li>
|
<li><a href="../Education/workshops.html"><div class="dropdown-item-content"><img src="../assets/workshops.png" alt="Webinars Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Webinars</span><span class="item-description">Engaging and interactive sessions designed to introduce key AI concepts and practical skills.</span></div></div></a></li>
|
||||||
<li><a href="../Education/individual-trainings.html"><div class="dropdown-item-content"><img src="../assets/indi training.png" alt="Individual Trainings Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Individual Trainings</span><span class="item-description">Personalized learning programs tailored to your specific needs and learning pace.</span></div></div></a></li>
|
<li><a href="../Education/individual-trainings.html"><div class="dropdown-item-content"><img src="../assets/indi training.png" alt="Individual Trainings Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Individual Trainings</span><span class="item-description">Personalized learning programs tailored to your specific needs and learning pace.</span></div></div></a></li>
|
||||||
@@ -226,45 +226,13 @@
|
|||||||
</footer>
|
</footer>
|
||||||
<script src="../js/main.js" defer></script>
|
<script src="../js/main.js" defer></script>
|
||||||
<script src="../js/menu-dropdown.js" defer></script>
|
<script src="../js/menu-dropdown.js" defer></script>
|
||||||
<script src="js/gn-mobile-navigation.js" defer></script>
|
<script </script>
|
||||||
<script src="../js/form-subscribe.js" defer></script>
|
<script </script>
|
||||||
<script src="../js/unified-neural-interactions.js" defer></script>
|
<script </script>
|
||||||
<script src="../js/tech-marquee.js" defer></script>
|
<script src="../js/tech-marquee.js" defer></script>
|
||||||
<script src="../js/data-node-interactions.js" defer></script>
|
<script </script>
|
||||||
|
|
||||||
<!-- Navbar scroll effect script -->
|
|
||||||
<script>
|
|
||||||
document.addEventListener('DOMContentLoaded', function() {
|
|
||||||
const header = document.querySelector('.site-header');
|
|
||||||
|
|
||||||
function handleScroll() {
|
|
||||||
const currentScrollY = window.scrollY;
|
|
||||||
|
|
||||||
if (currentScrollY > 30) {
|
|
||||||
header.classList.add('scrolled');
|
|
||||||
} else {
|
|
||||||
header.classList.remove('scrolled');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Throttle scroll events for better performance
|
|
||||||
let ticking = false;
|
|
||||||
function onScroll() {
|
|
||||||
if (!ticking) {
|
|
||||||
requestAnimationFrame(function() {
|
|
||||||
handleScroll();
|
|
||||||
ticking = false;
|
|
||||||
});
|
|
||||||
ticking = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
window.addEventListener('scroll', onScroll, { passive: true });
|
|
||||||
|
|
||||||
// Initial check
|
|
||||||
handleScroll();
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<!-- Mobile Enhancement Scripts -->
|
<!-- Mobile Enhancement Scripts -->
|
||||||
<script src="../js/menu-dropdown.js"></script>
|
<script src="../js/menu-dropdown.js"></script>
|
||||||
@@ -276,3 +244,5 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
</button>
|
</button>
|
||||||
|
|
||||||
<ul class="nav-links">
|
<ul class="nav-links">
|
||||||
<li class="dropdown"><a href="#" class="nav-link">Services ▾</a>
|
<li class="dropdown"><a href="#" class="nav-link">Services ?</a>
|
||||||
<ul class="dropdown-menu services-dropdown">
|
<ul class="dropdown-menu services-dropdown">
|
||||||
<li><a href="../Services/machine-learning.html"><div class="dropdown-item-content"><img src="../assets/mlng.png" alt="Machine Learning Icon" class="dropdown-icon" class="gn-responsive-image"><div class="text-content"><span class="item-title">Machine Learning</span><span class="item-description">We build intelligent systems that learn from data to predict outcomes and automate decisions.</span></div></div></a></li>
|
<li><a href="../Services/machine-learning.html"><div class="dropdown-item-content"><img src="../assets/mlng.png" alt="Machine Learning Icon" class="dropdown-icon" class="gn-responsive-image"><div class="text-content"><span class="item-title">Machine Learning</span><span class="item-description">We build intelligent systems that learn from data to predict outcomes and automate decisions.</span></div></div></a></li>
|
||||||
<li><a href="../Services/data-analysis.html"><div class="dropdown-item-content"><img src="../assets/data analytics.png" alt="Data Analysis Icon" class="dropdown-icon" class="gn-responsive-image"><div class="text-content"><span class="item-title">Data Analytics</span><span class="item-description">We transform raw data into actionable insights, helping you understand trends and optimize performance.</span></div></div></a></li>
|
<li><a href="../Services/data-analysis.html"><div class="dropdown-item-content"><img src="../assets/data analytics.png" alt="Data Analysis Icon" class="dropdown-icon" class="gn-responsive-image"><div class="text-content"><span class="item-title">Data Analytics</span><span class="item-description">We transform raw data into actionable insights, helping you understand trends and optimize performance.</span></div></div></a></li>
|
||||||
@@ -43,7 +43,7 @@
|
|||||||
<li><a href="../Services/automation-flows.html"><div class="dropdown-item-content"><img src="../assets/automation flows.png" alt="Automation Flows Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Automation Flows</span><span class="item-description">We design and implement intelligent automation solutions to streamline your workflows and boost productivity.</span></div></div></a></li>
|
<li><a href="../Services/automation-flows.html"><div class="dropdown-item-content"><img src="../assets/automation flows.png" alt="Automation Flows Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Automation Flows</span><span class="item-description">We design and implement intelligent automation solutions to streamline your workflows and boost productivity.</span></div></div></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown"><a href="#" class="nav-link">Industries ▾</a>
|
<li class="dropdown"><a href="#" class="nav-link">Industries ?</a>
|
||||||
<ul class="dropdown-menu industries-dropdown">
|
<ul class="dropdown-menu industries-dropdown">
|
||||||
<li><a href="finance.html"><div class="dropdown-item-content"><img src="../assets/Finance Ind.png" alt="Finance Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Finance</span><span class="item-description">Applying AI to enhance fraud detection, risk management, and customer experience.</span></div></div></a></li>
|
<li><a href="finance.html"><div class="dropdown-item-content"><img src="../assets/Finance Ind.png" alt="Finance Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Finance</span><span class="item-description">Applying AI to enhance fraud detection, risk management, and customer experience.</span></div></div></a></li>
|
||||||
<li><a href="healthcare.html"><div class="dropdown-item-content"><img src="../assets/healthcare ind.png" alt="Healthcare Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Healthcare</span><span class="item-description">Leveraging AI for faster diagnoses, personalized treatments, and improved patient care.</span></div></div></a></li>
|
<li><a href="healthcare.html"><div class="dropdown-item-content"><img src="../assets/healthcare ind.png" alt="Healthcare Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Healthcare</span><span class="item-description">Leveraging AI for faster diagnoses, personalized treatments, and improved patient care.</span></div></div></a></li>
|
||||||
@@ -55,7 +55,7 @@
|
|||||||
<li><a href="case-studies.html"><div class="dropdown-item-content"><img src="../assets/case study ind.png" alt="Case Studies Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Case Studies</span><span class="item-description">Real-world examples showcasing how our AI solutions have delivered tangible results for our clients.</span></div></div></a></li>
|
<li><a href="case-studies.html"><div class="dropdown-item-content"><img src="../assets/case study ind.png" alt="Case Studies Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Case Studies</span><span class="item-description">Real-world examples showcasing how our AI solutions have delivered tangible results for our clients.</span></div></div></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown"><a href="#" class="nav-link">Education ▾</a>
|
<li class="dropdown"><a href="#" class="nav-link">Education ?</a>
|
||||||
<ul class="dropdown-menu education-dropdown">
|
<ul class="dropdown-menu education-dropdown">
|
||||||
<li><a href="../Education/workshops.html"><div class="dropdown-item-content"><img src="../assets/workshops.png" alt="Webinars Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Webinars</span><span class="item-description">Engaging and interactive sessions designed to introduce key AI concepts and practical skills.</span></div></div></a></li>
|
<li><a href="../Education/workshops.html"><div class="dropdown-item-content"><img src="../assets/workshops.png" alt="Webinars Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Webinars</span><span class="item-description">Engaging and interactive sessions designed to introduce key AI concepts and practical skills.</span></div></div></a></li>
|
||||||
<li><a href="../Education/individual-trainings.html"><div class="dropdown-item-content"><img src="../assets/indi training.png" alt="Individual Trainings Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Individual Trainings</span><span class="item-description">Personalized learning programs tailored to your specific needs and learning pace.</span></div></div></a></li>
|
<li><a href="../Education/individual-trainings.html"><div class="dropdown-item-content"><img src="../assets/indi training.png" alt="Individual Trainings Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Individual Trainings</span><span class="item-description">Personalized learning programs tailored to your specific needs and learning pace.</span></div></div></a></li>
|
||||||
@@ -210,11 +210,11 @@
|
|||||||
</footer>
|
</footer>
|
||||||
<script src="../js/main.js" defer></script>
|
<script src="../js/main.js" defer></script>
|
||||||
<script src="../js/menu-dropdown.js" defer></script>
|
<script src="../js/menu-dropdown.js" defer></script>
|
||||||
<script src="js/gn-mobile-navigation.js" defer></script>
|
<script </script>
|
||||||
<script src="../js/form-subscribe.js" defer></script>
|
<script </script>
|
||||||
<script src="../js/unified-neural-interactions.js" defer></script>
|
<script </script>
|
||||||
<script src="../js/tech-marquee.js" defer></script>
|
<script src="../js/tech-marquee.js" defer></script>
|
||||||
<script src="../js/data-node-interactions.js" defer></script>
|
<script </script>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
|
||||||
@@ -222,3 +222,5 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
@@ -37,7 +37,7 @@
|
|||||||
</button>
|
</button>
|
||||||
|
|
||||||
<ul class="nav-links">
|
<ul class="nav-links">
|
||||||
<li class="dropdown"><a href="#" class="nav-link">Services ▾</a>
|
<li class="dropdown"><a href="#" class="nav-link">Services ?</a>
|
||||||
<ul class="dropdown-menu services-dropdown">
|
<ul class="dropdown-menu services-dropdown">
|
||||||
<li><a href="../Services/machine-learning.html"><div class="dropdown-item-content"><img src="../assets/mlng.png" alt="Machine Learning Icon" class="dropdown-icon" class="gn-responsive-image"><div class="text-content"><span class="item-title">Machine Learning</span><span class="item-description">We build intelligent systems that learn from data to predict outcomes and automate decisions.</span></div></div></a></li>
|
<li><a href="../Services/machine-learning.html"><div class="dropdown-item-content"><img src="../assets/mlng.png" alt="Machine Learning Icon" class="dropdown-icon" class="gn-responsive-image"><div class="text-content"><span class="item-title">Machine Learning</span><span class="item-description">We build intelligent systems that learn from data to predict outcomes and automate decisions.</span></div></div></a></li>
|
||||||
<li><a href="../Services/data-analysis.html"><div class="dropdown-item-content"><img src="../assets/data analytics.png" alt="Data Analysis Icon" class="dropdown-icon" class="gn-responsive-image"><div class="text-content"><span class="item-title">Data Analytics</span><span class="item-description">We transform raw data into actionable insights, helping you understand trends and optimize performance.</span></div></div></a></li>
|
<li><a href="../Services/data-analysis.html"><div class="dropdown-item-content"><img src="../assets/data analytics.png" alt="Data Analysis Icon" class="dropdown-icon" class="gn-responsive-image"><div class="text-content"><span class="item-title">Data Analytics</span><span class="item-description">We transform raw data into actionable insights, helping you understand trends and optimize performance.</span></div></div></a></li>
|
||||||
@@ -46,7 +46,7 @@
|
|||||||
<li><a href="../Services/automation-flows.html"><div class="dropdown-item-content"><img src="../assets/automation flows.png" alt="Automation Flows Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Automation Flows</span><span class="item-description">We design and implement intelligent automation solutions to streamline your workflows and boost productivity.</span></div></div></a></li>
|
<li><a href="../Services/automation-flows.html"><div class="dropdown-item-content"><img src="../assets/automation flows.png" alt="Automation Flows Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Automation Flows</span><span class="item-description">We design and implement intelligent automation solutions to streamline your workflows and boost productivity.</span></div></div></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown"><a href="#" class="nav-link">Industries ▾</a>
|
<li class="dropdown"><a href="#" class="nav-link">Industries ?</a>
|
||||||
<ul class="dropdown-menu industries-dropdown">
|
<ul class="dropdown-menu industries-dropdown">
|
||||||
<li><a href="finance.html"><div class="dropdown-item-content"><img src="../assets/Finance Ind.png" alt="Finance Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Finance</span><span class="item-description">Applying AI to enhance fraud detection, risk management, and customer experience.</span></div></div></a></li>
|
<li><a href="finance.html"><div class="dropdown-item-content"><img src="../assets/Finance Ind.png" alt="Finance Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Finance</span><span class="item-description">Applying AI to enhance fraud detection, risk management, and customer experience.</span></div></div></a></li>
|
||||||
<li><a href="healthcare.html"><div class="dropdown-item-content"><img src="../assets/healthcare ind.png" alt="Healthcare Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Healthcare</span><span class="item-description">Leveraging AI for faster diagnoses, personalized treatments, and improved patient care.</span></div></div></a></li>
|
<li><a href="healthcare.html"><div class="dropdown-item-content"><img src="../assets/healthcare ind.png" alt="Healthcare Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Healthcare</span><span class="item-description">Leveraging AI for faster diagnoses, personalized treatments, and improved patient care.</span></div></div></a></li>
|
||||||
@@ -58,7 +58,7 @@
|
|||||||
<li><a href="case-studies.html"><div class="dropdown-item-content"><img src="../assets/case study ind.png" alt="Case Studies Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Case Studies</span><span class="item-description">Real-world examples showcasing how our AI solutions have delivered tangible results for our clients.</span></div></div></a></li>
|
<li><a href="case-studies.html"><div class="dropdown-item-content"><img src="../assets/case study ind.png" alt="Case Studies Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Case Studies</span><span class="item-description">Real-world examples showcasing how our AI solutions have delivered tangible results for our clients.</span></div></div></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown"><a href="#" class="nav-link">Education ▾</a>
|
<li class="dropdown"><a href="#" class="nav-link">Education ?</a>
|
||||||
<ul class="dropdown-menu education-dropdown">
|
<ul class="dropdown-menu education-dropdown">
|
||||||
<li><a href="../Education/workshops.html"><div class="dropdown-item-content"><img src="../assets/workshops.png" alt="Webinars Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Webinars</span><span class="item-description">Engaging and interactive sessions designed to introduce key AI concepts and practical skills.</span></div></div></a></li>
|
<li><a href="../Education/workshops.html"><div class="dropdown-item-content"><img src="../assets/workshops.png" alt="Webinars Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Webinars</span><span class="item-description">Engaging and interactive sessions designed to introduce key AI concepts and practical skills.</span></div></div></a></li>
|
||||||
<li><a href="../Education/individual-trainings.html"><div class="dropdown-item-content"><img src="../assets/indi training.png" alt="Individual Trainings Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Individual Trainings</span><span class="item-description">Personalized learning programs tailored to your specific needs and learning pace.</span></div></div></a></li>
|
<li><a href="../Education/individual-trainings.html"><div class="dropdown-item-content"><img src="../assets/indi training.png" alt="Individual Trainings Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Individual Trainings</span><span class="item-description">Personalized learning programs tailored to your specific needs and learning pace.</span></div></div></a></li>
|
||||||
@@ -215,45 +215,13 @@
|
|||||||
</footer>
|
</footer>
|
||||||
<script src="../js/main.js" defer></script>
|
<script src="../js/main.js" defer></script>
|
||||||
<script src="../js/menu-dropdown.js" defer></script>
|
<script src="../js/menu-dropdown.js" defer></script>
|
||||||
<script src="js/gn-mobile-navigation.js" defer></script>
|
<script </script>
|
||||||
<script src="../js/form-subscribe.js" defer></script>
|
<script </script>
|
||||||
<script src="../js/unified-neural-interactions.js" defer></script>
|
<script </script>
|
||||||
<script src="../js/tech-marquee.js" defer></script>
|
<script src="../js/tech-marquee.js" defer></script>
|
||||||
<script src="../js/data-node-interactions.js" defer></script>
|
<script </script>
|
||||||
|
|
||||||
<!-- Navbar scroll effect script -->
|
|
||||||
<script>
|
|
||||||
document.addEventListener('DOMContentLoaded', function() {
|
|
||||||
const header = document.querySelector('.site-header');
|
|
||||||
|
|
||||||
function handleScroll() {
|
|
||||||
const currentScrollY = window.scrollY;
|
|
||||||
|
|
||||||
if (currentScrollY > 30) {
|
|
||||||
header.classList.add('scrolled');
|
|
||||||
} else {
|
|
||||||
header.classList.remove('scrolled');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Throttle scroll events for better performance
|
|
||||||
let ticking = false;
|
|
||||||
function onScroll() {
|
|
||||||
if (!ticking) {
|
|
||||||
requestAnimationFrame(function() {
|
|
||||||
handleScroll();
|
|
||||||
ticking = false;
|
|
||||||
});
|
|
||||||
ticking = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
window.addEventListener('scroll', onScroll, { passive: true });
|
|
||||||
|
|
||||||
// Initial check
|
|
||||||
handleScroll();
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<!-- Mobile Enhancement Scripts -->
|
<!-- Mobile Enhancement Scripts -->
|
||||||
<script src="../js/menu-dropdown.js"></script>
|
<script src="../js/menu-dropdown.js"></script>
|
||||||
@@ -265,3 +233,5 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
@@ -37,7 +37,7 @@
|
|||||||
</button>
|
</button>
|
||||||
|
|
||||||
<ul class="nav-links">
|
<ul class="nav-links">
|
||||||
<li class="dropdown"><a href="#" class="nav-link">Services ▾</a>
|
<li class="dropdown"><a href="#" class="nav-link">Services ?</a>
|
||||||
<ul class="dropdown-menu services-dropdown">
|
<ul class="dropdown-menu services-dropdown">
|
||||||
<li><a href="../Services/machine-learning.html"><div class="dropdown-item-content"><img src="../assets/mlng.png" alt="Machine Learning Icon" class="dropdown-icon" class="gn-responsive-image"><div class="text-content"><span class="item-title">Machine Learning</span><span class="item-description">We build intelligent systems that learn from data to predict outcomes and automate decisions.</span></div></div></a></li>
|
<li><a href="../Services/machine-learning.html"><div class="dropdown-item-content"><img src="../assets/mlng.png" alt="Machine Learning Icon" class="dropdown-icon" class="gn-responsive-image"><div class="text-content"><span class="item-title">Machine Learning</span><span class="item-description">We build intelligent systems that learn from data to predict outcomes and automate decisions.</span></div></div></a></li>
|
||||||
<li><a href="../Services/data-analysis.html"><div class="dropdown-item-content"><img src="../assets/data analytics.png" alt="Data Analysis Icon" class="dropdown-icon" class="gn-responsive-image"><div class="text-content"><span class="item-title">Data Analytics</span><span class="item-description">We transform raw data into actionable insights, helping you understand trends and optimize performance.</span></div></div></a></li>
|
<li><a href="../Services/data-analysis.html"><div class="dropdown-item-content"><img src="../assets/data analytics.png" alt="Data Analysis Icon" class="dropdown-icon" class="gn-responsive-image"><div class="text-content"><span class="item-title">Data Analytics</span><span class="item-description">We transform raw data into actionable insights, helping you understand trends and optimize performance.</span></div></div></a></li>
|
||||||
@@ -46,7 +46,7 @@
|
|||||||
<li><a href="../Services/automation-flows.html"><div class="dropdown-item-content"><img src="../assets/automation flows.png" alt="Automation Flows Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Automation Flows</span><span class="item-description">We design and implement intelligent automation solutions to streamline your workflows and boost productivity.</span></div></div></a></li>
|
<li><a href="../Services/automation-flows.html"><div class="dropdown-item-content"><img src="../assets/automation flows.png" alt="Automation Flows Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Automation Flows</span><span class="item-description">We design and implement intelligent automation solutions to streamline your workflows and boost productivity.</span></div></div></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown"><a href="#" class="nav-link">Industries ▾</a>
|
<li class="dropdown"><a href="#" class="nav-link">Industries ?</a>
|
||||||
<ul class="dropdown-menu industries-dropdown">
|
<ul class="dropdown-menu industries-dropdown">
|
||||||
<li><a href="finance.html"><div class="dropdown-item-content"><img src="../assets/Finance Ind.png" alt="Finance Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Finance</span><span class="item-description">Applying AI to enhance fraud detection, risk management, and customer experience.</span></div></div></a></li>
|
<li><a href="finance.html"><div class="dropdown-item-content"><img src="../assets/Finance Ind.png" alt="Finance Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Finance</span><span class="item-description">Applying AI to enhance fraud detection, risk management, and customer experience.</span></div></div></a></li>
|
||||||
<li><a href="healthcare.html"><div class="dropdown-item-content"><img src="../assets/healthcare ind.png" alt="Healthcare Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Healthcare</span><span class="item-description">Leveraging AI for faster diagnoses, personalized treatments, and improved patient care.</span></div></div></a></li>
|
<li><a href="healthcare.html"><div class="dropdown-item-content"><img src="../assets/healthcare ind.png" alt="Healthcare Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Healthcare</span><span class="item-description">Leveraging AI for faster diagnoses, personalized treatments, and improved patient care.</span></div></div></a></li>
|
||||||
@@ -58,7 +58,7 @@
|
|||||||
<li><a href="case-studies.html"><div class="dropdown-item-content"><img src="../assets/case study ind.png" alt="Case Studies Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Case Studies</span><span class="item-description">Real-world examples showcasing how our AI solutions have delivered tangible results for our clients.</span></div></div></a></li>
|
<li><a href="case-studies.html"><div class="dropdown-item-content"><img src="../assets/case study ind.png" alt="Case Studies Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Case Studies</span><span class="item-description">Real-world examples showcasing how our AI solutions have delivered tangible results for our clients.</span></div></div></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown"><a href="#" class="nav-link">Education ▾</a>
|
<li class="dropdown"><a href="#" class="nav-link">Education ?</a>
|
||||||
<ul class="dropdown-menu education-dropdown">
|
<ul class="dropdown-menu education-dropdown">
|
||||||
<li><a href="../Education/workshops.html"><div class="dropdown-item-content"><img src="../assets/workshops.png" alt="Webinars Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Webinars</span><span class="item-description">Engaging and interactive sessions designed to introduce key AI concepts and practical skills.</span></div></div></a></li>
|
<li><a href="../Education/workshops.html"><div class="dropdown-item-content"><img src="../assets/workshops.png" alt="Webinars Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Webinars</span><span class="item-description">Engaging and interactive sessions designed to introduce key AI concepts and practical skills.</span></div></div></a></li>
|
||||||
<li><a href="../Education/individual-trainings.html"><div class="dropdown-item-content"><img src="../assets/indi training.png" alt="Individual Trainings Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Individual Trainings</span><span class="item-description">Personalized learning programs tailored to your specific needs and learning pace.</span></div></div></a></li>
|
<li><a href="../Education/individual-trainings.html"><div class="dropdown-item-content"><img src="../assets/indi training.png" alt="Individual Trainings Icon" class="dropdown-icon" / class="gn-responsive-image"><div class="text-content"><span class="item-title">Individual Trainings</span><span class="item-description">Personalized learning programs tailored to your specific needs and learning pace.</span></div></div></a></li>
|
||||||
@@ -217,45 +217,13 @@
|
|||||||
</footer>
|
</footer>
|
||||||
<script src="../js/main.js" defer></script>
|
<script src="../js/main.js" defer></script>
|
||||||
<script src="../js/menu-dropdown.js" defer></script>
|
<script src="../js/menu-dropdown.js" defer></script>
|
||||||
<script src="js/gn-mobile-navigation.js" defer></script>
|
<script </script>
|
||||||
<script src="../js/form-subscribe.js" defer></script>
|
<script </script>
|
||||||
<script src="../js/unified-neural-interactions.js" defer></script>
|
<script </script>
|
||||||
<script src="../js/tech-marquee.js" defer></script>
|
<script src="../js/tech-marquee.js" defer></script>
|
||||||
<script src="../js/data-node-interactions.js" defer></script>
|
<script </script>
|
||||||
|
|
||||||
<!-- Navbar scroll effect script -->
|
|
||||||
<script>
|
|
||||||
document.addEventListener('DOMContentLoaded', function() {
|
|
||||||
const header = document.querySelector('.site-header');
|
|
||||||
|
|
||||||
function handleScroll() {
|
|
||||||
const currentScrollY = window.scrollY;
|
|
||||||
|
|
||||||
if (currentScrollY > 30) {
|
|
||||||
header.classList.add('scrolled');
|
|
||||||
} else {
|
|
||||||
header.classList.remove('scrolled');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Throttle scroll events for better performance
|
|
||||||
let ticking = false;
|
|
||||||
function onScroll() {
|
|
||||||
if (!ticking) {
|
|
||||||
requestAnimationFrame(function() {
|
|
||||||
handleScroll();
|
|
||||||
ticking = false;
|
|
||||||
});
|
|
||||||
ticking = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
window.addEventListener('scroll', onScroll, { passive: true });
|
|
||||||
|
|
||||||
// Initial check
|
|
||||||
handleScroll();
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<!-- Mobile Enhancement Scripts -->
|
<!-- Mobile Enhancement Scripts -->
|
||||||
<script src="../js/menu-dropdown.js"></script>
|
<script src="../js/menu-dropdown.js"></script>
|
||||||
@@ -267,3 +235,5 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -248,50 +248,13 @@
|
|||||||
<div class="footer-bottom">
|
<div class="footer-bottom">
|
||||||
<p>© 2025 Gyannetra. All rights reserved. | <a href="../privacy-policy.html">Privacy Policy</a> | <a href="../terms-of-service.html">Terms and Conditions</a></p>
|
<p>© 2025 Gyannetra. All rights reserved. | <a href="../privacy-policy.html">Privacy Policy</a> | <a href="../terms-of-service.html">Terms and Conditions</a></p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div> </footer>
|
||||||
</footer>
|
<script src="../js/main.js" defer></script>
|
||||||
<script src="../js/main.js" defer></script>
|
|
||||||
<script src="../js/menu-dropdown.js" defer></script>
|
<script src="../js/menu-dropdown.js" defer></script>
|
||||||
<script src="js/gn-mobile-navigation.js" defer></script>
|
|
||||||
<script src="../js/form-subscribe.js" defer></script>
|
|
||||||
<script src="../js/unified-neural-interactions.js" defer></script>
|
|
||||||
<script src="../js/tech-marquee.js" defer></script>
|
<script src="../js/tech-marquee.js" defer></script>
|
||||||
<script src="../js/data-node-interactions.js" defer></script>
|
|
||||||
|
|
||||||
<!-- Navbar scroll effect script -->
|
|
||||||
<script>
|
|
||||||
document.addEventListener('DOMContentLoaded', function() {
|
|
||||||
const header = document.querySelector('.site-header');
|
|
||||||
|
|
||||||
function handleScroll() {
|
|
||||||
const currentScrollY = window.scrollY;
|
|
||||||
|
|
||||||
if (currentScrollY > 30) {
|
|
||||||
header.classList.add('scrolled');
|
|
||||||
} else {
|
|
||||||
header.classList.remove('scrolled');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Throttle scroll events for better performance
|
|
||||||
let ticking = false;
|
|
||||||
function onScroll() {
|
|
||||||
if (!ticking) {
|
|
||||||
requestAnimationFrame(function() {
|
|
||||||
handleScroll();
|
|
||||||
ticking = false;
|
|
||||||
});
|
|
||||||
ticking = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
window.addEventListener('scroll', onScroll, { passive: true });
|
|
||||||
|
|
||||||
// Initial check
|
|
||||||
handleScroll();
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -250,51 +250,14 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="footer-bottom">
|
<div class="footer-bottom">
|
||||||
<p>© 2024 Gyannetra. All rights reserved. | <a href="../privacy-policy.html">Privacy Policy</a> | <a href="../terms-of-service.html">Terms and Conditions</a></p>
|
<p>© 2024 Gyannetra. All rights reserved. | <a href="../privacy-policy.html">Privacy Policy</a> | <a href="../terms-of-service.html">Terms and Conditions</a></p>
|
||||||
</div>
|
</div> </div>
|
||||||
</div>
|
|
||||||
</footer>
|
</footer>
|
||||||
<script src="../js/main.js" defer></script>
|
<script src="../js/main.js" defer></script>
|
||||||
<script src="../js/menu-dropdown.js" defer></script>
|
<script src="../js/menu-dropdown.js" defer></script>
|
||||||
<script src="js/gn-mobile-navigation.js" defer></script>
|
|
||||||
<script src="../js/form-subscribe.js" defer></script>
|
|
||||||
<script src="../js/unified-neural-interactions.js" defer></script>
|
|
||||||
<script src="../js/tech-marquee.js" defer></script>
|
<script src="../js/tech-marquee.js" defer></script>
|
||||||
<script src="../js/data-node-interactions.js" defer></script>
|
|
||||||
|
|
||||||
<!-- Navbar scroll effect script -->
|
|
||||||
<script>
|
|
||||||
document.addEventListener('DOMContentLoaded', function() {
|
|
||||||
const header = document.querySelector('.site-header');
|
|
||||||
|
|
||||||
function handleScroll() {
|
|
||||||
const currentScrollY = window.scrollY;
|
|
||||||
|
|
||||||
if (currentScrollY > 30) {
|
|
||||||
header.classList.add('scrolled');
|
|
||||||
} else {
|
|
||||||
header.classList.remove('scrolled');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Throttle scroll events for better performance
|
|
||||||
let ticking = false;
|
|
||||||
function onScroll() {
|
|
||||||
if (!ticking) {
|
|
||||||
requestAnimationFrame(function() {
|
|
||||||
handleScroll();
|
|
||||||
ticking = false;
|
|
||||||
});
|
|
||||||
ticking = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
window.addEventListener('scroll', onScroll, { passive: true });
|
|
||||||
|
|
||||||
// Initial check
|
|
||||||
handleScroll();
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -223,17 +223,12 @@
|
|||||||
<div class="footer-bottom">
|
<div class="footer-bottom">
|
||||||
<p>© 2025 Gyannetra. All rights reserved. | <a href="../privacy-policy.html">Privacy Policy</a> | <a href="../terms-of-service.html">Terms and Conditions</a></p>
|
<p>© 2025 Gyannetra. All rights reserved. | <a href="../privacy-policy.html">Privacy Policy</a> | <a href="../terms-of-service.html">Terms and Conditions</a></p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div> </footer>
|
||||||
</footer>
|
<script src="../js/main.js" defer></script>
|
||||||
<script src="../js/main.js" defer></script>
|
|
||||||
<script src="../js/menu-dropdown.js" defer></script>
|
<script src="../js/menu-dropdown.js" defer></script>
|
||||||
<script src="js/gn-mobile-navigation.js" defer></script>
|
|
||||||
<script src="../js/form-subscribe.js" defer></script>
|
|
||||||
<script src="../js/unified-neural-interactions.js" defer></script>
|
|
||||||
<script src="../js/tech-marquee.js" defer></script>
|
<script src="../js/tech-marquee.js" defer></script>
|
||||||
<script src="../js/data-node-interactions.js" defer></script>
|
|
||||||
|
|
||||||
<!-- Navbar scroll effect script -->
|
</html>
|
||||||
<script>
|
<script>
|
||||||
document.addEventListener('DOMContentLoaded', function() {
|
document.addEventListener('DOMContentLoaded', function() {
|
||||||
const header = document.querySelector('.site-header');
|
const header = document.querySelector('.site-header');
|
||||||
@@ -272,3 +267,5 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -248,50 +248,12 @@
|
|||||||
<div class="footer-bottom">
|
<div class="footer-bottom">
|
||||||
<p>© 2025 Gyannetra. All rights reserved. | <a href="../privacy-policy.html">Privacy Policy</a> | <a href="../terms-of-service.html">Terms and Conditions</a></p>
|
<p>© 2025 Gyannetra. All rights reserved. | <a href="../privacy-policy.html">Privacy Policy</a> | <a href="../terms-of-service.html">Terms and Conditions</a></p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div> </footer>
|
||||||
</footer>
|
<script src="../js/main.js" defer></script>
|
||||||
<script src="../js/main.js" defer></script>
|
|
||||||
<script src="../js/menu-dropdown.js" defer></script>
|
<script src="../js/menu-dropdown.js" defer></script>
|
||||||
<script src="js/gn-mobile-navigation.js" defer></script>
|
|
||||||
<script src="../js/form-subscribe.js" defer></script>
|
|
||||||
<script src="../js/unified-neural-interactions.js" defer></script>
|
|
||||||
<script src="../js/tech-marquee.js" defer></script>
|
<script src="../js/tech-marquee.js" defer></script>
|
||||||
<script src="../js/data-node-interactions.js" defer></script>
|
|
||||||
|
|
||||||
<!-- Navbar scroll effect script -->
|
|
||||||
<script>
|
|
||||||
document.addEventListener('DOMContentLoaded', function() {
|
|
||||||
const header = document.querySelector('.site-header');
|
|
||||||
|
|
||||||
function handleScroll() {
|
|
||||||
const currentScrollY = window.scrollY;
|
|
||||||
|
|
||||||
if (currentScrollY > 30) {
|
|
||||||
header.classList.add('scrolled');
|
|
||||||
} else {
|
|
||||||
header.classList.remove('scrolled');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Throttle scroll events for better performance
|
|
||||||
let ticking = false;
|
|
||||||
function onScroll() {
|
|
||||||
if (!ticking) {
|
|
||||||
requestAnimationFrame(function() {
|
|
||||||
handleScroll();
|
|
||||||
ticking = false;
|
|
||||||
});
|
|
||||||
ticking = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
window.addEventListener('scroll', onScroll, { passive: true });
|
|
||||||
|
|
||||||
// Initial check
|
|
||||||
handleScroll();
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -245,51 +245,12 @@
|
|||||||
<div class="footer-bottom">
|
<div class="footer-bottom">
|
||||||
<p>© 2025 Gyannetra. All rights reserved. | <a href="../privacy-policy.html">Privacy Policy</a> | <a href="../terms-of-service.html">Terms and Conditions</a></p>
|
<p>© 2025 Gyannetra. All rights reserved. | <a href="../privacy-policy.html">Privacy Policy</a> | <a href="../terms-of-service.html">Terms and Conditions</a></p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div> </footer> <script src="../js/main.js" defer></script>
|
||||||
</footer> <script src="../js/main.js" defer></script>
|
|
||||||
<script src="../js/menu-dropdown.js" defer></script>
|
<script src="../js/menu-dropdown.js" defer></script>
|
||||||
<script src="js/gn-mobile-navigation.js" defer></script>
|
|
||||||
<script src="../js/form-subscribe.js" defer></script>
|
|
||||||
<script src="../js/unified-neural-interactions.js" defer></script>
|
|
||||||
<script src="../js/tech-marquee.js" defer></script>
|
<script src="../js/tech-marquee.js" defer></script>
|
||||||
<script src="../js/data-node-interactions.js" defer></script>
|
|
||||||
<script src="../js/mobile-fix.js" defer></script>
|
|
||||||
|
|
||||||
<!-- Navbar scroll effect script -->
|
|
||||||
<script>
|
|
||||||
document.addEventListener('DOMContentLoaded', function() {
|
|
||||||
const header = document.querySelector('.site-header');
|
|
||||||
|
|
||||||
function handleScroll() {
|
|
||||||
const currentScrollY = window.scrollY;
|
|
||||||
|
|
||||||
if (currentScrollY > 30) {
|
|
||||||
header.classList.add('scrolled');
|
|
||||||
} else {
|
|
||||||
header.classList.remove('scrolled');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Throttle scroll events for better performance
|
|
||||||
let ticking = false;
|
|
||||||
function onScroll() {
|
|
||||||
if (!ticking) {
|
|
||||||
requestAnimationFrame(function() {
|
|
||||||
handleScroll();
|
|
||||||
ticking = false;
|
|
||||||
});
|
|
||||||
ticking = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
window.addEventListener('scroll', onScroll, { passive: true });
|
|
||||||
|
|
||||||
// Initial check
|
|
||||||
handleScroll();
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
36
about.html
36
about.html
@@ -232,44 +232,14 @@
|
|||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
<script src="js/menu-dropdown.js" defer></script>
|
<script src="js/menu-dropdown.js" defer></script>
|
||||||
<script src="js/gn-mobile-navigation.js" defer></script>
|
<script </script>
|
||||||
<script src="js/main.js" defer></script>
|
<script src="js/main.js" defer></script>
|
||||||
<script src="js/data-node-interactions.js" defer></script>
|
<script src="js/data-node-interactions.js" defer></script>
|
||||||
|
|
||||||
<!-- Navbar scroll effect script -->
|
|
||||||
<script>
|
|
||||||
document.addEventListener('DOMContentLoaded', function() {
|
|
||||||
const header = document.querySelector('.site-header');
|
|
||||||
|
|
||||||
function handleScroll() {
|
|
||||||
const currentScrollY = window.scrollY;
|
|
||||||
|
|
||||||
if (currentScrollY > 30) {
|
|
||||||
header.classList.add('scrolled');
|
|
||||||
} else {
|
|
||||||
header.classList.remove('scrolled');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Throttle scroll events for better performance
|
|
||||||
let ticking = false;
|
|
||||||
function onScroll() {
|
|
||||||
if (!ticking) {
|
|
||||||
requestAnimationFrame(function() {
|
|
||||||
handleScroll();
|
|
||||||
ticking = false;
|
|
||||||
});
|
|
||||||
ticking = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
window.addEventListener('scroll', onScroll, { passive: true });
|
|
||||||
|
|
||||||
// Initial check
|
|
||||||
handleScroll();
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
36
contact.html
36
contact.html
@@ -232,46 +232,16 @@
|
|||||||
<p>© 2025 Gyannetra. All rights reserved. | <a href="privacy-policy.html">Privacy Policy</a> | <a href="terms-of-service.html">Terms and Conditions</a></p>
|
<p>© 2025 Gyannetra. All rights reserved. | <a href="privacy-policy.html">Privacy Policy</a> | <a href="terms-of-service.html">Terms and Conditions</a></p>
|
||||||
</div> </div>
|
</div> </div>
|
||||||
</footer> <script src="js/menu-dropdown.js" defer></script>
|
</footer> <script src="js/menu-dropdown.js" defer></script>
|
||||||
<script src="js/gn-mobile-navigation.js" defer></script>
|
<script </script>
|
||||||
<script src="js/main.js" defer></script>
|
<script src="js/main.js" defer></script>
|
||||||
<script src="js/form-handler.js" defer></script>
|
<script src="js/form-handler.js" defer></script>
|
||||||
<script src="js/data-node-interactions.js" defer></script>
|
<script src="js/data-node-interactions.js" defer></script>
|
||||||
<script src="js/contact-page-fix.js" defer></script>
|
<script src="js/contact-page-fix.js" defer></script>
|
||||||
|
|
||||||
<!-- Navbar scroll effect script -->
|
|
||||||
<script>
|
|
||||||
document.addEventListener('DOMContentLoaded', function() {
|
|
||||||
const header = document.querySelector('.site-header');
|
|
||||||
|
|
||||||
function handleScroll() {
|
|
||||||
const currentScrollY = window.scrollY;
|
|
||||||
|
|
||||||
if (currentScrollY > 30) {
|
|
||||||
header.classList.add('scrolled');
|
|
||||||
} else {
|
|
||||||
header.classList.remove('scrolled');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Throttle scroll events for better performance
|
|
||||||
let ticking = false;
|
|
||||||
function onScroll() {
|
|
||||||
if (!ticking) {
|
|
||||||
requestAnimationFrame(function() {
|
|
||||||
handleScroll();
|
|
||||||
ticking = false;
|
|
||||||
});
|
|
||||||
ticking = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
window.addEventListener('scroll', onScroll, { passive: true });
|
|
||||||
|
|
||||||
// Initial check
|
|
||||||
handleScroll();
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
131
index.html
131
index.html
@@ -646,133 +646,12 @@
|
|||||||
</div> <div class="footer-bottom">
|
</div> <div class="footer-bottom">
|
||||||
<p>© 2025 Gyannetra. All rights reserved. | <a href="privacy-policy.html">Privacy Policy</a> | <a href="terms-of-service.html">Terms and Conditions</a></p>
|
<p>© 2025 Gyannetra. All rights reserved. | <a href="privacy-policy.html">Privacy Policy</a> | <a href="terms-of-service.html">Terms and Conditions</a></p>
|
||||||
</div>
|
</div>
|
||||||
</div> </footer> <script src="js/menu-dropdown.js" defer></script>
|
</div> </footer> <script src="js/main.js" defer></script>
|
||||||
<script src="js/main.js" defer></script>
|
|
||||||
<script src="js/tech-marquee.js" defer></script>
|
<script src="js/tech-marquee.js" defer></script>
|
||||||
<script src="js/page-specific.js" defer></script>
|
<script src="js/typewriter-effect.js" defer></script>
|
||||||
<script src="js/dynamic-content.js" defer></script>
|
<script src="js/menu-dropdown.js" defer></script>
|
||||||
<script src="js/form-handler.js" defer></script>
|
|
||||||
<script src="js/mobile-fix.js" defer></script>
|
|
||||||
|
|
||||||
<!-- Navbar scroll effect script -->
|
|
||||||
<script>
|
|
||||||
document.addEventListener('DOMContentLoaded', function() {
|
|
||||||
const header = document.querySelector('.site-header');
|
|
||||||
|
|
||||||
function handleScroll() {
|
|
||||||
const currentScrollY = window.scrollY;
|
|
||||||
|
|
||||||
if (currentScrollY > 30) {
|
|
||||||
header.classList.add('scrolled');
|
|
||||||
} else {
|
|
||||||
header.classList.remove('scrolled');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Throttle scroll events for better performance
|
|
||||||
let ticking = false;
|
|
||||||
function onScroll() {
|
|
||||||
if (!ticking) {
|
|
||||||
requestAnimationFrame(function() {
|
|
||||||
handleScroll();
|
|
||||||
ticking = false;
|
|
||||||
});
|
|
||||||
ticking = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
window.addEventListener('scroll', onScroll, { passive: true });
|
|
||||||
// Initial check
|
|
||||||
handleScroll();
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<!-- Typewriter Effect Script -->
|
|
||||||
<script>
|
|
||||||
class TypewriterEffect {
|
|
||||||
constructor(element, words, options = {}) {
|
|
||||||
this.element = element;
|
|
||||||
this.words = words;
|
|
||||||
this.currentWordIndex = 0;
|
|
||||||
this.currentCharIndex = 0;
|
|
||||||
this.isDeleting = false;
|
|
||||||
this.typeSpeed = options.typeSpeed || 120;
|
|
||||||
this.deleteSpeed = options.deleteSpeed || 60;
|
|
||||||
this.delayBetweenWords = options.delayBetweenWords || 3000;
|
|
||||||
this.initialDelay = options.initialDelay || 2000;
|
|
||||||
|
|
||||||
setTimeout(() => this.type(), this.initialDelay);
|
|
||||||
}
|
|
||||||
|
|
||||||
type() {
|
|
||||||
const currentWord = this.words[this.currentWordIndex];
|
|
||||||
|
|
||||||
if (this.isDeleting) {
|
|
||||||
this.element.textContent = currentWord.substring(0, this.currentCharIndex - 1);
|
|
||||||
this.currentCharIndex--;
|
|
||||||
|
|
||||||
if (this.currentCharIndex === 0) {
|
|
||||||
this.isDeleting = false;
|
|
||||||
this.currentWordIndex = (this.currentWordIndex + 1) % this.words.length;
|
|
||||||
setTimeout(() => this.type(), 500);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
this.element.textContent = currentWord.substring(0, this.currentCharIndex + 1);
|
|
||||||
this.currentCharIndex++;
|
|
||||||
|
|
||||||
if (this.currentCharIndex === currentWord.length) {
|
|
||||||
setTimeout(() => {
|
|
||||||
this.isDeleting = true;
|
|
||||||
this.type();
|
|
||||||
}, this.delayBetweenWords);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const speed = this.isDeleting ? this.deleteSpeed : this.typeSpeed;
|
|
||||||
setTimeout(() => this.type(), speed);
|
|
||||||
}
|
|
||||||
} // Initialize when page loads
|
|
||||||
document.addEventListener('DOMContentLoaded', function() {
|
|
||||||
const typewriterElement = document.getElementById('typewriter');
|
|
||||||
const words = [
|
|
||||||
'AI Strategy & Roadmaps',
|
|
||||||
'Custom LLM Solutions',
|
|
||||||
'AI Automation & Workflows',
|
|
||||||
'Data-Driven Business Intelligence',
|
|
||||||
'Computer Vision Systems',
|
|
||||||
'NLP & Chatbot Integrations',
|
|
||||||
'AI for EdTech & Healthcare',
|
|
||||||
'Predictive Analytics Tools'
|
|
||||||
];
|
|
||||||
new TypewriterEffect(typewriterElement, words);
|
|
||||||
});
|
|
||||||
|
|
||||||
// EMERGENCY: Direct hamburger menu toggle function
|
|
||||||
function toggleMobileMenu(event) {
|
|
||||||
console.log('🍔 Direct hamburger toggle called!');
|
|
||||||
event.preventDefault();
|
|
||||||
event.stopPropagation();
|
|
||||||
|
|
||||||
const hamburger = document.querySelector('.hamburger-menu');
|
|
||||||
const navLinks = document.querySelector('.nav-links');
|
|
||||||
|
|
||||||
if (hamburger && navLinks) {
|
|
||||||
hamburger.classList.toggle('active');
|
|
||||||
navLinks.classList.toggle('active');
|
|
||||||
navLinks.classList.toggle('show');
|
|
||||||
|
|
||||||
const isOpen = navLinks.classList.contains('active') || navLinks.classList.contains('show');
|
|
||||||
document.body.style.overflow = isOpen ? 'hidden' : '';
|
|
||||||
|
|
||||||
console.log('🍔 Menu toggled directly - open:', isOpen);
|
|
||||||
console.log('🍔 Hamburger classes:', hamburger.className);
|
|
||||||
console.log('🍔 Nav classes:', navLinks.className);
|
|
||||||
} else {
|
|
||||||
console.error('🍔 Hamburger or nav elements not found!');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,29 +0,0 @@
|
|||||||
document.addEventListener('DOMContentLoaded', function() {
|
|
||||||
const dropdowns = document.querySelectorAll('.dropdown');
|
|
||||||
|
|
||||||
dropdowns.forEach(dropdown => {
|
|
||||||
const dropdownToggle = dropdown.querySelector('.nav-link');
|
|
||||||
const dropdownMenu = dropdown.querySelector('.dropdown-menu');
|
|
||||||
|
|
||||||
dropdownToggle.addEventListener('click', function(e) {
|
|
||||||
e.preventDefault();
|
|
||||||
// Close other open dropdowns
|
|
||||||
dropdowns.forEach(otherDropdown => {
|
|
||||||
if (otherDropdown !== dropdown) {
|
|
||||||
otherDropdown.querySelector('.dropdown-menu').classList.remove('show');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
// Toggle the current dropdown
|
|
||||||
dropdownMenu.classList.toggle('show');
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
// Close dropdowns when clicking outside
|
|
||||||
document.addEventListener('click', function(e) {
|
|
||||||
if (!e.target.closest('.dropdown')) {
|
|
||||||
dropdowns.forEach(dropdown => {
|
|
||||||
dropdown.querySelector('.dropdown-menu').classList.remove('show');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
@@ -1,364 +0,0 @@
|
|||||||
/**
|
|
||||||
* Dynamic Content Loader
|
|
||||||
* Handles lazy loading of content, interactive cards, and tabs
|
|
||||||
*/
|
|
||||||
|
|
||||||
document.addEventListener('DOMContentLoaded', function() {
|
|
||||||
// Initialize lazy loading for images
|
|
||||||
initLazyLoading();
|
|
||||||
|
|
||||||
// Initialize interactive cards
|
|
||||||
initInteractiveCards();
|
|
||||||
|
|
||||||
// Initialize tabs if they exist
|
|
||||||
initTabSystem();
|
|
||||||
|
|
||||||
// Initialize accordion components
|
|
||||||
initAccordion();
|
|
||||||
|
|
||||||
// Initialize dynamic counters
|
|
||||||
initCounters();
|
|
||||||
|
|
||||||
// Initialize dynamic content filter
|
|
||||||
initContentFilter();
|
|
||||||
});
|
|
||||||
|
|
||||||
// Lazy load images as they enter viewport
|
|
||||||
function initLazyLoading() {
|
|
||||||
const lazyImages = document.querySelectorAll('.lazy-image');
|
|
||||||
|
|
||||||
if ('IntersectionObserver' in window) {
|
|
||||||
const imageObserver = new IntersectionObserver((entries) => {
|
|
||||||
entries.forEach(entry => {
|
|
||||||
if (entry.isIntersecting) {
|
|
||||||
const img = entry.target;
|
|
||||||
|
|
||||||
// Replace src with data-src
|
|
||||||
if (img.dataset.src) {
|
|
||||||
img.src = img.dataset.src;
|
|
||||||
|
|
||||||
// Add fade-in effect
|
|
||||||
img.classList.add('image-loaded');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Stop observing after loading
|
|
||||||
imageObserver.unobserve(img);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}, {
|
|
||||||
rootMargin: '50px',
|
|
||||||
threshold: 0.1
|
|
||||||
});
|
|
||||||
|
|
||||||
// Observe all lazy images
|
|
||||||
lazyImages.forEach(img => {
|
|
||||||
imageObserver.observe(img);
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
// Fallback for browsers without IntersectionObserver
|
|
||||||
lazyImages.forEach(img => {
|
|
||||||
if (img.dataset.src) {
|
|
||||||
img.src = img.dataset.src;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Interactive hover and click effects for cards
|
|
||||||
function initInteractiveCards() {
|
|
||||||
const cards = document.querySelectorAll('.card, .service-card, .exp-item, .team-member');
|
|
||||||
|
|
||||||
cards.forEach(card => {
|
|
||||||
// 3D tilt effect on mouse move
|
|
||||||
card.addEventListener('mousemove', function(e) {
|
|
||||||
const rect = this.getBoundingClientRect();
|
|
||||||
const x = e.clientX - rect.left;
|
|
||||||
const y = e.clientY - rect.top;
|
|
||||||
|
|
||||||
// Calculate tilt based on mouse position
|
|
||||||
const centerX = rect.width / 2;
|
|
||||||
const centerY = rect.height / 2;
|
|
||||||
|
|
||||||
const tiltX = (centerY - y) / 20;
|
|
||||||
const tiltY = (x - centerX) / 20;
|
|
||||||
|
|
||||||
// Apply 3D transform
|
|
||||||
this.style.transform = `perspective(1000px) rotateX(${tiltX}deg) rotateY(${tiltY}deg) scale3d(1.02, 1.02, 1.02)`;
|
|
||||||
|
|
||||||
// Add highlight effect to follow cursor
|
|
||||||
const highlight = this.querySelector('.card-highlight') || document.createElement('div');
|
|
||||||
if (!this.querySelector('.card-highlight')) {
|
|
||||||
highlight.className = 'card-highlight';
|
|
||||||
this.appendChild(highlight);
|
|
||||||
}
|
|
||||||
|
|
||||||
highlight.style.opacity = '1';
|
|
||||||
highlight.style.transform = `translate(${x}px, ${y}px)`;
|
|
||||||
});
|
|
||||||
|
|
||||||
// Reset on mouse leave
|
|
||||||
card.addEventListener('mouseleave', function() {
|
|
||||||
this.style.transform = '';
|
|
||||||
const highlight = this.querySelector('.card-highlight');
|
|
||||||
if (highlight) {
|
|
||||||
highlight.style.opacity = '0';
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// Click effect
|
|
||||||
card.addEventListener('click', function() {
|
|
||||||
this.classList.add('card-clicked');
|
|
||||||
setTimeout(() => {
|
|
||||||
this.classList.remove('card-clicked');
|
|
||||||
}, 300);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// Tab system for content switching
|
|
||||||
function initTabSystem() {
|
|
||||||
const tabContainers = document.querySelectorAll('.tab-container');
|
|
||||||
|
|
||||||
tabContainers.forEach(container => {
|
|
||||||
const tabsNav = container.querySelector('.tabs-nav');
|
|
||||||
const tabsContent = container.querySelector('.tabs-content');
|
|
||||||
|
|
||||||
if (!tabsNav || !tabsContent) return;
|
|
||||||
|
|
||||||
const tabs = tabsNav.querySelectorAll('.tab');
|
|
||||||
const tabPanels = tabsContent.querySelectorAll('.tab-panel');
|
|
||||||
|
|
||||||
// Initialize first tab as active
|
|
||||||
if (tabs.length > 0 && tabPanels.length > 0) {
|
|
||||||
tabs[0].classList.add('active-tab');
|
|
||||||
tabPanels[0].classList.add('active-panel');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add click handlers to tabs
|
|
||||||
tabs.forEach((tab, index) => {
|
|
||||||
tab.addEventListener('click', function() {
|
|
||||||
// Remove active class from all tabs and panels
|
|
||||||
tabs.forEach(t => t.classList.remove('active-tab'));
|
|
||||||
tabPanels.forEach(panel => panel.classList.remove('active-panel'));
|
|
||||||
|
|
||||||
// Add active class to current tab and panel
|
|
||||||
this.classList.add('active-tab');
|
|
||||||
if (tabPanels[index]) {
|
|
||||||
tabPanels[index].classList.add('active-panel');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add entrance animation for tab content
|
|
||||||
if (tabPanels[index]) {
|
|
||||||
tabPanels[index].classList.add('panel-entering');
|
|
||||||
setTimeout(() => {
|
|
||||||
tabPanels[index].classList.remove('panel-entering');
|
|
||||||
}, 500);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Show active tab indicator
|
|
||||||
const indicator = tabsNav.querySelector('.tab-indicator') || document.createElement('div');
|
|
||||||
if (!tabsNav.querySelector('.tab-indicator')) {
|
|
||||||
indicator.className = 'tab-indicator';
|
|
||||||
tabsNav.appendChild(indicator);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Position indicator below active tab
|
|
||||||
const tabRect = this.getBoundingClientRect();
|
|
||||||
const navRect = tabsNav.getBoundingClientRect();
|
|
||||||
indicator.style.width = `${tabRect.width}px`;
|
|
||||||
indicator.style.left = `${tabRect.left - navRect.left}px`;
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
// Trigger indicator positioning for first tab
|
|
||||||
if (tabs[0]) {
|
|
||||||
setTimeout(() => {
|
|
||||||
tabs[0].click();
|
|
||||||
}, 100);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// Accordion functionality for FAQ or content sections
|
|
||||||
function initAccordion() {
|
|
||||||
const accordions = document.querySelectorAll('.accordion');
|
|
||||||
|
|
||||||
accordions.forEach(accordion => {
|
|
||||||
const items = accordion.querySelectorAll('.accordion-item');
|
|
||||||
|
|
||||||
items.forEach(item => {
|
|
||||||
const header = item.querySelector('.accordion-header');
|
|
||||||
const content = item.querySelector('.accordion-content');
|
|
||||||
|
|
||||||
if (!header || !content) return;
|
|
||||||
|
|
||||||
// Set initial state
|
|
||||||
content.style.maxHeight = '0px';
|
|
||||||
content.style.overflow = 'hidden';
|
|
||||||
content.style.transition = 'max-height 0.3s ease';
|
|
||||||
|
|
||||||
// Toggle accordion on click
|
|
||||||
header.addEventListener('click', function() {
|
|
||||||
// Check if this item is already open
|
|
||||||
const isOpen = item.classList.contains('accordion-open');
|
|
||||||
|
|
||||||
// Close all items
|
|
||||||
items.forEach(otherItem => {
|
|
||||||
otherItem.classList.remove('accordion-open');
|
|
||||||
const otherContent = otherItem.querySelector('.accordion-content');
|
|
||||||
if (otherContent) {
|
|
||||||
otherContent.style.maxHeight = '0px';
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// Open this item if it wasn't already open
|
|
||||||
if (!isOpen) {
|
|
||||||
item.classList.add('accordion-open');
|
|
||||||
content.style.maxHeight = `${content.scrollHeight}px`;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add indicator animation
|
|
||||||
const indicator = header.querySelector('.accordion-indicator') || document.createElement('div');
|
|
||||||
if (!header.querySelector('.accordion-indicator')) {
|
|
||||||
indicator.className = 'accordion-indicator';
|
|
||||||
indicator.innerHTML = '<span>+</span>';
|
|
||||||
header.appendChild(indicator);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update indicator
|
|
||||||
indicator.innerHTML = item.classList.contains('accordion-open') ? '<span>−</span>' : '<span>+</span>';
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
// Open first item by default if specified
|
|
||||||
if (accordion.classList.contains('first-open') && items[0]) {
|
|
||||||
setTimeout(() => {
|
|
||||||
items[0].querySelector('.accordion-header').click();
|
|
||||||
}, 100);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// Animated counters that increment when in view
|
|
||||||
function initCounters() {
|
|
||||||
const counters = document.querySelectorAll('.counter');
|
|
||||||
|
|
||||||
if (!counters.length) return;
|
|
||||||
|
|
||||||
const counterObserver = new IntersectionObserver((entries) => {
|
|
||||||
entries.forEach(entry => {
|
|
||||||
if (entry.isIntersecting) {
|
|
||||||
const counter = entry.target;
|
|
||||||
const targetValue = parseInt(counter.getAttribute('data-target'));
|
|
||||||
const duration = parseInt(counter.getAttribute('data-duration')) || 2000;
|
|
||||||
|
|
||||||
// Prevent multiple animations
|
|
||||||
if (counter.classList.contains('counting')) return;
|
|
||||||
counter.classList.add('counting');
|
|
||||||
|
|
||||||
animateCounter(counter, targetValue, duration);
|
|
||||||
|
|
||||||
// Stop observing after animation
|
|
||||||
counterObserver.unobserve(counter);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}, {
|
|
||||||
threshold: 0.2
|
|
||||||
});
|
|
||||||
|
|
||||||
// Observe all counters
|
|
||||||
counters.forEach(counter => {
|
|
||||||
counterObserver.observe(counter);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Counter animation function
|
|
||||||
function animateCounter(counter, target, duration) {
|
|
||||||
let startTime = null;
|
|
||||||
const startValue = 0;
|
|
||||||
|
|
||||||
function step(timestamp) {
|
|
||||||
if (!startTime) startTime = timestamp;
|
|
||||||
|
|
||||||
const progress = Math.min((timestamp - startTime) / duration, 1);
|
|
||||||
const currentValue = Math.floor(progress * (target - startValue) + startValue);
|
|
||||||
|
|
||||||
counter.textContent = formatNumber(currentValue);
|
|
||||||
|
|
||||||
if (progress < 1) {
|
|
||||||
window.requestAnimationFrame(step);
|
|
||||||
} else {
|
|
||||||
counter.textContent = formatNumber(target);
|
|
||||||
counter.classList.add('counter-complete');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
window.requestAnimationFrame(step);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Format number with commas
|
|
||||||
function formatNumber(num) {
|
|
||||||
return num.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Content filtering system for portfolios or galleries
|
|
||||||
function initContentFilter() {
|
|
||||||
const filterContainers = document.querySelectorAll('.filter-container');
|
|
||||||
|
|
||||||
filterContainers.forEach(container => {
|
|
||||||
const filterButtons = container.querySelectorAll('.filter-button');
|
|
||||||
const filterItems = container.querySelectorAll('.filter-item');
|
|
||||||
|
|
||||||
if (!filterButtons.length || !filterItems.length) return;
|
|
||||||
|
|
||||||
// Click handler for filter buttons
|
|
||||||
filterButtons.forEach(button => {
|
|
||||||
button.addEventListener('click', function() {
|
|
||||||
// Remove active class from all buttons
|
|
||||||
filterButtons.forEach(btn => {
|
|
||||||
btn.classList.remove('active-filter');
|
|
||||||
});
|
|
||||||
|
|
||||||
// Add active class to clicked button
|
|
||||||
this.classList.add('active-filter');
|
|
||||||
|
|
||||||
// Get filter category
|
|
||||||
const filterCategory = this.getAttribute('data-filter');
|
|
||||||
|
|
||||||
// Filter items
|
|
||||||
filterItems.forEach(item => {
|
|
||||||
const itemCategories = item.getAttribute('data-categories');
|
|
||||||
|
|
||||||
if (!itemCategories) return;
|
|
||||||
|
|
||||||
// Check if item matches filter
|
|
||||||
if (filterCategory === 'all' || itemCategories.includes(filterCategory)) {
|
|
||||||
// Show item with animation
|
|
||||||
item.style.opacity = '0';
|
|
||||||
item.style.transform = 'scale(0.8)';
|
|
||||||
item.style.display = 'block';
|
|
||||||
|
|
||||||
setTimeout(() => {
|
|
||||||
item.style.opacity = '1';
|
|
||||||
item.style.transform = 'scale(1)';
|
|
||||||
}, 50);
|
|
||||||
} else {
|
|
||||||
// Hide item with animation
|
|
||||||
item.style.opacity = '0';
|
|
||||||
item.style.transform = 'scale(0.8)';
|
|
||||||
|
|
||||||
setTimeout(() => {
|
|
||||||
item.style.display = 'none';
|
|
||||||
}, 300);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
// Set "All" filter as active by default
|
|
||||||
const allFilterButton = container.querySelector('.filter-button[data-filter="all"]');
|
|
||||||
if (allFilterButton) {
|
|
||||||
allFilterButton.click();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
@@ -1,311 +0,0 @@
|
|||||||
/**
|
|
||||||
* Form validation and submission handler
|
|
||||||
* Provides interactive form experiences with validation and feedback
|
|
||||||
*/
|
|
||||||
|
|
||||||
document.addEventListener('DOMContentLoaded', function() {
|
|
||||||
// Initialize all forms on the page
|
|
||||||
const forms = document.querySelectorAll('form');
|
|
||||||
|
|
||||||
forms.forEach(form => {
|
|
||||||
initFormValidation(form);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Contact form special handling
|
|
||||||
const contactForm = document.querySelector('.contact-form');
|
|
||||||
if (contactForm) {
|
|
||||||
initContactForm(contactForm);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Newsletter form special handling
|
|
||||||
const newsletterForm = document.querySelector('.newsletter-form');
|
|
||||||
if (newsletterForm) {
|
|
||||||
initNewsletterForm(newsletterForm);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// Initialize form validation
|
|
||||||
function initFormValidation(form) {
|
|
||||||
const inputs = form.querySelectorAll('input, textarea, select');
|
|
||||||
|
|
||||||
// Add validation classes and event listeners
|
|
||||||
inputs.forEach(input => {
|
|
||||||
// Skip submit buttons
|
|
||||||
if (input.type === 'submit') return;
|
|
||||||
|
|
||||||
// Create validation message element
|
|
||||||
const validationMessage = document.createElement('div');
|
|
||||||
validationMessage.className = 'validation-message';
|
|
||||||
input.parentNode.appendChild(validationMessage);
|
|
||||||
|
|
||||||
// Add input event listeners
|
|
||||||
input.addEventListener('blur', function() {
|
|
||||||
validateInput(input);
|
|
||||||
});
|
|
||||||
|
|
||||||
input.addEventListener('input', function() {
|
|
||||||
// Remove error styling on input
|
|
||||||
input.classList.remove('input-error');
|
|
||||||
validationMessage.textContent = '';
|
|
||||||
});
|
|
||||||
|
|
||||||
// Add floating label effect for text inputs
|
|
||||||
if (['text', 'email', 'tel', 'password', 'textarea'].includes(input.type)) {
|
|
||||||
const label = document.querySelector(`label[for="${input.id}"]`);
|
|
||||||
|
|
||||||
if (label) {
|
|
||||||
// Position the label over the input initially
|
|
||||||
label.classList.add('floating-label');
|
|
||||||
|
|
||||||
// Move label up when input is focused or has content
|
|
||||||
input.addEventListener('focus', function() {
|
|
||||||
label.classList.add('label-active');
|
|
||||||
});
|
|
||||||
|
|
||||||
input.addEventListener('blur', function() {
|
|
||||||
if (!input.value) {
|
|
||||||
label.classList.remove('label-active');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// Check initial state
|
|
||||||
if (input.value) {
|
|
||||||
label.classList.add('label-active');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// Form submission
|
|
||||||
form.addEventListener('submit', function(e) {
|
|
||||||
e.preventDefault();
|
|
||||||
|
|
||||||
let isValid = true;
|
|
||||||
|
|
||||||
// Validate all inputs
|
|
||||||
inputs.forEach(input => {
|
|
||||||
if (!validateInput(input)) {
|
|
||||||
isValid = false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// If form is valid, proceed with submission
|
|
||||||
if (isValid) {
|
|
||||||
submitForm(form);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// Validate individual input
|
|
||||||
function validateInput(input) {
|
|
||||||
const validationMessage = input.parentNode.querySelector('.validation-message');
|
|
||||||
let isValid = true;
|
|
||||||
let message = '';
|
|
||||||
|
|
||||||
// Required field validation
|
|
||||||
if (input.required && !input.value.trim()) {
|
|
||||||
isValid = false;
|
|
||||||
message = 'This field is required';
|
|
||||||
}
|
|
||||||
|
|
||||||
// Email validation
|
|
||||||
if (input.type === 'email' && input.value.trim()) {
|
|
||||||
const emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
|
||||||
if (!emailPattern.test(input.value)) {
|
|
||||||
isValid = false;
|
|
||||||
message = 'Please enter a valid email address';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Phone validation
|
|
||||||
if (input.type === 'tel' && input.value.trim()) {
|
|
||||||
const phonePattern = /^[\d\s\+\-\(\)]{7,20}$/;
|
|
||||||
if (!phonePattern.test(input.value)) {
|
|
||||||
isValid = false;
|
|
||||||
message = 'Please enter a valid phone number';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Custom validation based on data attributes
|
|
||||||
if (input.dataset.minLength && input.value.length < parseInt(input.dataset.minLength)) {
|
|
||||||
isValid = false;
|
|
||||||
message = `Minimum length is ${input.dataset.minLength} characters`;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update UI based on validation result
|
|
||||||
if (!isValid) {
|
|
||||||
input.classList.add('input-error');
|
|
||||||
if (validationMessage) {
|
|
||||||
validationMessage.textContent = message;
|
|
||||||
validationMessage.classList.add('error-message');
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
input.classList.remove('input-error');
|
|
||||||
if (validationMessage) {
|
|
||||||
validationMessage.textContent = '';
|
|
||||||
validationMessage.classList.remove('error-message');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return isValid;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Submit form with animation
|
|
||||||
function submitForm(form) {
|
|
||||||
// Create loading overlay
|
|
||||||
const loadingOverlay = document.createElement('div');
|
|
||||||
loadingOverlay.className = 'form-loading-overlay';
|
|
||||||
loadingOverlay.innerHTML = `
|
|
||||||
<div class="loading-spinner"></div>
|
|
||||||
<p>Submitting...</p>
|
|
||||||
`;
|
|
||||||
form.appendChild(loadingOverlay);
|
|
||||||
|
|
||||||
// Simulate form submission (replace with actual AJAX submission)
|
|
||||||
setTimeout(() => {
|
|
||||||
loadingOverlay.innerHTML = `
|
|
||||||
<div class="success-icon">✓</div>
|
|
||||||
<p>Thank you! We'll be in touch soon.</p>
|
|
||||||
`;
|
|
||||||
loadingOverlay.classList.add('submission-success');
|
|
||||||
|
|
||||||
// Reset form after success
|
|
||||||
setTimeout(() => {
|
|
||||||
form.reset();
|
|
||||||
form.removeChild(loadingOverlay);
|
|
||||||
|
|
||||||
// Reset all floating labels
|
|
||||||
const labels = form.querySelectorAll('.floating-label');
|
|
||||||
labels.forEach(label => {
|
|
||||||
label.classList.remove('label-active');
|
|
||||||
});
|
|
||||||
}, 3000);
|
|
||||||
}, 1500);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Special handling for contact form
|
|
||||||
function initContactForm(form) {
|
|
||||||
// Add animation for form sections
|
|
||||||
const formSections = form.querySelectorAll('.form-section');
|
|
||||||
if (formSections.length > 1) {
|
|
||||||
// Create navigation buttons
|
|
||||||
const navigation = document.createElement('div');
|
|
||||||
navigation.className = 'form-navigation';
|
|
||||||
|
|
||||||
let currentSection = 0;
|
|
||||||
|
|
||||||
// Initially hide all sections except the first
|
|
||||||
formSections.forEach((section, index) => {
|
|
||||||
if (index > 0) {
|
|
||||||
section.classList.add('hidden-section');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// Next button functionality
|
|
||||||
const nextBtn = document.createElement('button');
|
|
||||||
nextBtn.type = 'button';
|
|
||||||
nextBtn.className = 'btn btn-secondary next-section';
|
|
||||||
nextBtn.textContent = 'Next';
|
|
||||||
nextBtn.addEventListener('click', () => {
|
|
||||||
// Validate current section before proceeding
|
|
||||||
const currentInputs = formSections[currentSection].querySelectorAll('input, textarea, select');
|
|
||||||
let sectionIsValid = true;
|
|
||||||
|
|
||||||
currentInputs.forEach(input => {
|
|
||||||
if (!validateInput(input)) {
|
|
||||||
sectionIsValid = false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
if (sectionIsValid && currentSection < formSections.length - 1) {
|
|
||||||
formSections[currentSection].classList.add('hidden-section');
|
|
||||||
formSections[currentSection].classList.add('section-left');
|
|
||||||
currentSection++;
|
|
||||||
formSections[currentSection].classList.remove('hidden-section');
|
|
||||||
|
|
||||||
updateNavigationState();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// Previous button functionality
|
|
||||||
const prevBtn = document.createElement('button');
|
|
||||||
prevBtn.type = 'button';
|
|
||||||
prevBtn.className = 'btn btn-outline prev-section';
|
|
||||||
prevBtn.textContent = 'Previous';
|
|
||||||
prevBtn.style.display = 'none';
|
|
||||||
prevBtn.addEventListener('click', () => {
|
|
||||||
if (currentSection > 0) {
|
|
||||||
formSections[currentSection].classList.add('hidden-section');
|
|
||||||
currentSection--;
|
|
||||||
formSections[currentSection].classList.remove('hidden-section');
|
|
||||||
formSections[currentSection].classList.remove('section-left');
|
|
||||||
|
|
||||||
updateNavigationState();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// Add navigation to form
|
|
||||||
navigation.appendChild(prevBtn);
|
|
||||||
navigation.appendChild(nextBtn);
|
|
||||||
form.appendChild(navigation);
|
|
||||||
|
|
||||||
// Update navigation buttons state
|
|
||||||
function updateNavigationState() {
|
|
||||||
prevBtn.style.display = currentSection > 0 ? 'inline-block' : 'none';
|
|
||||||
nextBtn.textContent = currentSection === formSections.length - 1 ? 'Submit' : 'Next';
|
|
||||||
|
|
||||||
// Replace next button with submit on last section
|
|
||||||
if (currentSection === formSections.length - 1) {
|
|
||||||
nextBtn.classList.add('submit-form');
|
|
||||||
nextBtn.addEventListener('click', () => {
|
|
||||||
form.dispatchEvent(new Event('submit'));
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
nextBtn.classList.remove('submit-form');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Newsletter subscription form handling
|
|
||||||
function initNewsletterForm(form) {
|
|
||||||
form.addEventListener('submit', function(e) {
|
|
||||||
e.preventDefault();
|
|
||||||
|
|
||||||
const emailInput = form.querySelector('input[type="email"]');
|
|
||||||
if (!emailInput) return;
|
|
||||||
|
|
||||||
// Validate email
|
|
||||||
if (!validateInput(emailInput)) return;
|
|
||||||
|
|
||||||
// Create animated check mark for subscription
|
|
||||||
const subscribeBtn = form.querySelector('button[type="submit"]');
|
|
||||||
if (subscribeBtn) {
|
|
||||||
subscribeBtn.innerHTML = '<div class="subscribe-loader"></div>';
|
|
||||||
subscribeBtn.disabled = true;
|
|
||||||
|
|
||||||
setTimeout(() => {
|
|
||||||
subscribeBtn.innerHTML = '<span class="subscribe-check">✓</span>';
|
|
||||||
subscribeBtn.classList.add('subscribed');
|
|
||||||
|
|
||||||
// Display thank you message
|
|
||||||
const thankYou = document.createElement('div');
|
|
||||||
thankYou.className = 'subscription-thanks';
|
|
||||||
thankYou.textContent = 'Thank you for subscribing!';
|
|
||||||
form.appendChild(thankYou);
|
|
||||||
|
|
||||||
// Reset form after delay
|
|
||||||
setTimeout(() => {
|
|
||||||
form.reset();
|
|
||||||
subscribeBtn.innerHTML = 'Subscribe';
|
|
||||||
subscribeBtn.disabled = false;
|
|
||||||
subscribeBtn.classList.remove('subscribed');
|
|
||||||
|
|
||||||
if (form.contains(thankYou)) {
|
|
||||||
form.removeChild(thankYou);
|
|
||||||
}
|
|
||||||
}, 3000);
|
|
||||||
}, 1500);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
//
|
|
||||||
34
js/main.js
34
js/main.js
@@ -8,6 +8,7 @@ document.addEventListener('DOMContentLoaded', function() {
|
|||||||
initParallaxEffects();
|
initParallaxEffects();
|
||||||
initSectionTransitions();
|
initSectionTransitions();
|
||||||
initCursorEffects();
|
initCursorEffects();
|
||||||
|
initScrollEffects();
|
||||||
|
|
||||||
// Remove page loader when everything is ready
|
// Remove page loader when everything is ready
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
@@ -16,6 +17,39 @@ document.addEventListener('DOMContentLoaded', function() {
|
|||||||
}, 300);
|
}, 300);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Initialize scroll effects for navbar
|
||||||
|
function initScrollEffects() {
|
||||||
|
const header = document.querySelector('.site-header');
|
||||||
|
|
||||||
|
if (!header) return;
|
||||||
|
|
||||||
|
function handleScroll() {
|
||||||
|
const currentScrollY = window.scrollY;
|
||||||
|
|
||||||
|
if (currentScrollY > 30) {
|
||||||
|
header.classList.add('scrolled');
|
||||||
|
} else {
|
||||||
|
header.classList.remove('scrolled');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Throttle scroll events for better performance
|
||||||
|
let ticking = false;
|
||||||
|
function onScroll() {
|
||||||
|
if (!ticking) {
|
||||||
|
requestAnimationFrame(function() {
|
||||||
|
handleScroll();
|
||||||
|
ticking = false;
|
||||||
|
});
|
||||||
|
ticking = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
window.addEventListener('scroll', onScroll, { passive: true });
|
||||||
|
// Initial check
|
||||||
|
handleScroll();
|
||||||
|
}
|
||||||
|
|
||||||
// Animate elements when they enter viewport
|
// Animate elements when they enter viewport
|
||||||
function initScrollAnimations() {
|
function initScrollAnimations() {
|
||||||
// Exclude hero content from scroll animations to prevent layout shifts
|
// Exclude hero content from scroll animations to prevent layout shifts
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
// Fallback: Enhance dropdowns with fade/slide effect if not handled elsewhere
|
/**
|
||||||
// (dropdown.js already handles logic, so this is for extra UI polish)
|
* Menu and Dropdown functionality for Gyannetra website
|
||||||
|
*/
|
||||||
|
|
||||||
// Global function for onclick handlers - ESSENTIAL FOR RESPONSIVENESS
|
// Global function for onclick handlers - ESSENTIAL FOR RESPONSIVENESS
|
||||||
function toggleMobileMenu(event) {
|
function toggleMobileMenu(event) {
|
||||||
console.log('🍔 toggleMobileMenu called directly!');
|
|
||||||
|
|
||||||
if (event) {
|
if (event) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
event.stopPropagation();
|
event.stopPropagation();
|
||||||
@@ -14,21 +13,16 @@ function toggleMobileMenu(event) {
|
|||||||
const navLinks = document.querySelector('.nav-links');
|
const navLinks = document.querySelector('.nav-links');
|
||||||
|
|
||||||
if (hamburgerMenu && navLinks) {
|
if (hamburgerMenu && navLinks) {
|
||||||
console.log('🍔 Toggling menu state...');
|
|
||||||
|
|
||||||
hamburgerMenu.classList.toggle('active');
|
hamburgerMenu.classList.toggle('active');
|
||||||
navLinks.classList.toggle('active');
|
navLinks.classList.toggle('active');
|
||||||
navLinks.classList.toggle('show');
|
navLinks.classList.toggle('show');
|
||||||
|
|
||||||
const isOpen = navLinks.classList.contains('active');
|
const isOpen = navLinks.classList.contains('active');
|
||||||
console.log('🍔 Menu is now:', isOpen ? 'OPEN' : 'CLOSED');
|
|
||||||
|
|
||||||
// Prevent body scrolling when menu is open
|
// Prevent body scrolling when menu is open
|
||||||
document.body.style.overflow = isOpen ? 'hidden' : '';
|
document.body.style.overflow = isOpen ? 'hidden' : '';
|
||||||
|
|
||||||
return false; // Prevent default action
|
return false;
|
||||||
} else {
|
|
||||||
console.error('❌ Hamburger menu or nav links not found!');
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -36,42 +30,17 @@ function toggleMobileMenu(event) {
|
|||||||
window.toggleMobileMenu = toggleMobileMenu;
|
window.toggleMobileMenu = toggleMobileMenu;
|
||||||
|
|
||||||
document.addEventListener('DOMContentLoaded', function() {
|
document.addEventListener('DOMContentLoaded', function() {
|
||||||
console.log('🚀 DOM loaded, initializing hamburger menu...');
|
|
||||||
console.log('📱 Screen width:', window.innerWidth);
|
|
||||||
console.log('📱 Is mobile:', window.innerWidth <= 768);
|
|
||||||
|
|
||||||
// Hamburger menu functionality with enhanced error handling
|
|
||||||
const hamburgerMenu = document.querySelector('.hamburger-menu');
|
const hamburgerMenu = document.querySelector('.hamburger-menu');
|
||||||
const navLinks = document.querySelector('.nav-links');
|
const navLinks = document.querySelector('.nav-links');
|
||||||
|
|
||||||
console.log('🍔 Hamburger menu found:', !!hamburgerMenu);
|
if (hamburgerMenu && navLinks) {
|
||||||
console.log('🔗 Nav links found:', !!navLinks);
|
// Enhanced click handler
|
||||||
|
hamburgerMenu.addEventListener('click', function(e) {
|
||||||
|
e.stopPropagation();
|
||||||
|
toggleMobileMenu();
|
||||||
|
});
|
||||||
|
|
||||||
if (hamburgerMenu) {
|
// Close menu when clicking on nav links (but not dropdowns)
|
||||||
console.log('🍔 Hamburger menu element:', hamburgerMenu);
|
|
||||||
console.log('🍔 Hamburger menu styles:', window.getComputedStyle(hamburgerMenu).display);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (navLinks) {
|
|
||||||
console.log('🔗 Nav links element:', navLinks);
|
|
||||||
console.log('🔗 Nav links styles:', window.getComputedStyle(navLinks).display);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (hamburgerMenu && navLinks) {hamburgerMenu.addEventListener('click', function(e) {
|
|
||||||
e.stopPropagation(); // Prevent event bubbling
|
|
||||||
hamburgerMenu.classList.toggle('active');
|
|
||||||
navLinks.classList.toggle('active');
|
|
||||||
navLinks.classList.toggle('show'); // Support both class names
|
|
||||||
|
|
||||||
// Prevent body scrolling when menu is open
|
|
||||||
if (navLinks.classList.contains('active') || navLinks.classList.contains('show')) {
|
|
||||||
document.body.style.overflow = 'hidden';
|
|
||||||
} else {
|
|
||||||
document.body.style.overflow = '';
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log('Hamburger menu clicked - active state:', hamburgerMenu.classList.contains('active')); // Debug
|
|
||||||
}); // Close menu when clicking on nav links (but not dropdowns)
|
|
||||||
navLinks.addEventListener('click', function(e) {
|
navLinks.addEventListener('click', function(e) {
|
||||||
if (e.target.classList.contains('nav-link') && !e.target.closest('.dropdown')) {
|
if (e.target.classList.contains('nav-link') && !e.target.closest('.dropdown')) {
|
||||||
hamburgerMenu.classList.remove('active');
|
hamburgerMenu.classList.remove('active');
|
||||||
@@ -102,171 +71,58 @@ document.addEventListener('DOMContentLoaded', function() {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Original dropdown enhancement code
|
// Dropdown menu enhancements
|
||||||
document.querySelectorAll('.dropdown-menu').forEach(menu => {
|
const dropdowns = document.querySelectorAll('.dropdown');
|
||||||
menu.addEventListener('transitionend', function() {
|
|
||||||
if (!menu.classList.contains('show')) {
|
|
||||||
menu.style.display = '';
|
|
||||||
}
|
|
||||||
});
|
|
||||||
menu.addEventListener('show', function() {
|
|
||||||
menu.style.display = 'block';
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
// ADDITIONAL: Enhanced mobile dropdown functionality for Services and Industries
|
dropdowns.forEach(dropdown => {
|
||||||
function initializeMobileDropdowns() {
|
const dropdownMenu = dropdown.querySelector('.dropdown-menu');
|
||||||
const dropdowns = document.querySelectorAll('.nav-links .dropdown');
|
|
||||||
|
|
||||||
dropdowns.forEach(dropdown => {
|
if (dropdownMenu) {
|
||||||
const trigger = dropdown.querySelector('.nav-link');
|
// Show dropdown on hover (desktop)
|
||||||
const menu = dropdown.querySelector('.dropdown-menu');
|
dropdown.addEventListener('mouseenter', function() {
|
||||||
|
if (window.innerWidth > 768) {
|
||||||
if (trigger && menu) {
|
dropdownMenu.style.opacity = '1';
|
||||||
// Add click handler for mobile dropdown toggle
|
dropdownMenu.style.visibility = 'visible';
|
||||||
trigger.addEventListener('click', function(e) {
|
dropdownMenu.style.transform = 'translateY(0)';
|
||||||
if (window.innerWidth <= 768) {
|
}
|
||||||
e.preventDefault();
|
|
||||||
e.stopPropagation();
|
|
||||||
|
|
||||||
// Close other dropdowns first
|
|
||||||
dropdowns.forEach(otherDropdown => {
|
|
||||||
if (otherDropdown !== dropdown) {
|
|
||||||
otherDropdown.classList.remove('active');
|
|
||||||
const otherMenu = otherDropdown.querySelector('.dropdown-menu');
|
|
||||||
if (otherMenu) {
|
|
||||||
otherMenu.classList.remove('show');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// Toggle current dropdown
|
|
||||||
dropdown.classList.toggle('active');
|
|
||||||
menu.classList.toggle('show');
|
|
||||||
|
|
||||||
console.log('Mobile dropdown toggled:', dropdown.classList.contains('active'));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// Add visual feedback on touch
|
|
||||||
trigger.addEventListener('touchstart', function() {
|
|
||||||
if (window.innerWidth <= 768) {
|
|
||||||
this.style.transform = 'scale(0.98)';
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
trigger.addEventListener('touchend', function() {
|
|
||||||
if (window.innerWidth <= 768) {
|
|
||||||
this.style.transform = '';
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
|
||||||
// Initialize mobile dropdowns
|
|
||||||
initializeMobileDropdowns();
|
|
||||||
|
|
||||||
// FIXED: Consolidated hamburger menu logic - no duplicate event listeners
|
// Hide dropdown on mouse leave (desktop)
|
||||||
if (hamburgerMenu && navLinks) {
|
dropdown.addEventListener('mouseleave', function() {
|
||||||
// Remove any existing click handlers to prevent conflicts
|
if (window.innerWidth > 768) {
|
||||||
hamburgerMenu.onclick = null;
|
dropdownMenu.style.opacity = '0';
|
||||||
|
dropdownMenu.style.visibility = 'hidden';
|
||||||
|
dropdownMenu.style.transform = 'translateY(-10px)';
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
// Single, comprehensive click handler
|
// Toggle dropdown on click (mobile)
|
||||||
hamburgerMenu.addEventListener('click', function(e) {
|
dropdown.addEventListener('click', function(e) {
|
||||||
e.preventDefault();
|
if (window.innerWidth <= 768) {
|
||||||
e.stopPropagation();
|
|
||||||
|
|
||||||
// Toggle hamburger and navigation states
|
|
||||||
hamburgerMenu.classList.toggle('active');
|
|
||||||
navLinks.classList.toggle('active');
|
|
||||||
navLinks.classList.toggle('show');
|
|
||||||
|
|
||||||
const isMenuOpen = navLinks.classList.contains('active') || navLinks.classList.contains('show');
|
|
||||||
|
|
||||||
// Handle body scroll
|
|
||||||
document.body.style.overflow = isMenuOpen ? 'hidden' : '';
|
|
||||||
|
|
||||||
// Close all dropdowns when hamburger menu closes
|
|
||||||
if (!isMenuOpen) {
|
|
||||||
const dropdowns = document.querySelectorAll('.nav-links .dropdown');
|
|
||||||
dropdowns.forEach(dropdown => {
|
|
||||||
dropdown.classList.remove('active');
|
|
||||||
const menu = dropdown.querySelector('.dropdown-menu');
|
|
||||||
if (menu) {
|
|
||||||
menu.classList.remove('show');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
console.log('Hamburger menu clicked - active state:', isMenuOpen);
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
console.warn('Hamburger menu or nav links not found! Retrying in 500ms...');
|
|
||||||
// Backup initialization after a short delay
|
|
||||||
setTimeout(function() {
|
|
||||||
const retryHamburger = document.querySelector('.hamburger-menu');
|
|
||||||
const retryNavLinks = document.querySelector('.nav-links');
|
|
||||||
|
|
||||||
if (retryHamburger && retryNavLinks) {
|
|
||||||
console.log('Retry successful - initializing hamburger menu...');
|
|
||||||
retryHamburger.addEventListener('click', function(e) {
|
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
e.stopPropagation();
|
const isVisible = dropdownMenu.style.maxHeight && dropdownMenu.style.maxHeight !== '0px';
|
||||||
|
|
||||||
retryHamburger.classList.toggle('active');
|
// Close all other dropdowns
|
||||||
retryNavLinks.classList.toggle('active');
|
dropdowns.forEach(otherDropdown => {
|
||||||
retryNavLinks.classList.toggle('show');
|
if (otherDropdown !== dropdown) {
|
||||||
|
const otherMenu = otherDropdown.querySelector('.dropdown-menu');
|
||||||
|
if (otherMenu) {
|
||||||
|
otherMenu.style.maxHeight = '0px';
|
||||||
|
otherMenu.style.opacity = '0';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
const isMenuOpen = retryNavLinks.classList.contains('active') || retryNavLinks.classList.contains('show');
|
// Toggle current dropdown
|
||||||
document.body.style.overflow = isMenuOpen ? 'hidden' : '';
|
if (isVisible) {
|
||||||
|
dropdownMenu.style.maxHeight = '0px';
|
||||||
console.log('Retry hamburger clicked - active state:', isMenuOpen);
|
dropdownMenu.style.opacity = '0';
|
||||||
});
|
} else {
|
||||||
} else {
|
dropdownMenu.style.maxHeight = dropdownMenu.scrollHeight + 'px';
|
||||||
console.error('Hamburger menu initialization failed even after retry!');
|
dropdownMenu.style.opacity = '1';
|
||||||
}
|
}
|
||||||
}, 500);
|
}
|
||||||
}
|
});
|
||||||
|
|
||||||
// ADDITIONAL: Direct fallback click handler for hamburger menu
|
|
||||||
// This ensures the hamburger works even if other scripts interfere
|
|
||||||
document.addEventListener('click', function(e) {
|
|
||||||
if (e.target.closest('.hamburger-menu')) {
|
|
||||||
e.preventDefault();
|
|
||||||
e.stopPropagation();
|
|
||||||
|
|
||||||
const hamburger = e.target.closest('.hamburger-menu');
|
|
||||||
const nav = document.querySelector('.nav-links');
|
|
||||||
|
|
||||||
if (hamburger && nav) {
|
|
||||||
hamburger.classList.toggle('active');
|
|
||||||
nav.classList.toggle('active');
|
|
||||||
nav.classList.toggle('show');
|
|
||||||
|
|
||||||
const isOpen = nav.classList.contains('active') || nav.classList.contains('show');
|
|
||||||
document.body.style.overflow = isOpen ? 'hidden' : '';
|
|
||||||
|
|
||||||
console.log('Fallback hamburger handler triggered - menu open:', isOpen);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// Ensure hamburger lines are visible
|
|
||||||
document.querySelectorAll('.hamburger-line').forEach(line => {
|
|
||||||
line.style.display = 'block';
|
|
||||||
line.style.opacity = '1';
|
|
||||||
});
|
|
||||||
|
|
||||||
// Add window resize handler to close dropdowns when switching to desktop
|
|
||||||
window.addEventListener('resize', function() {
|
|
||||||
if (window.innerWidth > 768) {
|
|
||||||
const dropdowns = document.querySelectorAll('.nav-links .dropdown');
|
|
||||||
dropdowns.forEach(dropdown => {
|
|
||||||
dropdown.classList.remove('active');
|
|
||||||
const menu = dropdown.querySelector('.dropdown-menu');
|
|
||||||
if (menu) {
|
|
||||||
menu.classList.remove('show');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
/**
|
|
||||||
* Mobile navigation fix - ensures hamburger menu works properly on mobile devices
|
|
||||||
*/
|
|
||||||
document.addEventListener('DOMContentLoaded', function() {
|
|
||||||
// Get hamburger menu element
|
|
||||||
const hamburgerMenu = document.querySelector('.hamburger-menu');
|
|
||||||
|
|
||||||
if (hamburgerMenu) {
|
|
||||||
// Add additional click handler with logging
|
|
||||||
hamburgerMenu.addEventListener('touchstart', function(e) {
|
|
||||||
console.log('Hamburger touchstart triggered');
|
|
||||||
// Prevent default touch behavior if needed
|
|
||||||
e.preventDefault();
|
|
||||||
}, { passive: false });
|
|
||||||
|
|
||||||
// Log that the script has loaded
|
|
||||||
console.log('Mobile navigation fix loaded');
|
|
||||||
|
|
||||||
// Add visible indicator for debugging
|
|
||||||
if (window.innerWidth <= 768) {
|
|
||||||
hamburgerMenu.setAttribute('data-mobile-enhanced', 'true');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Handle window resize
|
|
||||||
window.addEventListener('resize', function() {
|
|
||||||
if (window.innerWidth <= 768) {
|
|
||||||
hamburgerMenu.style.display = 'flex';
|
|
||||||
} else {
|
|
||||||
hamburgerMenu.style.display = 'none';
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
@@ -1,289 +0,0 @@
|
|||||||
/**
|
|
||||||
* Page-specific animations and effects for Gyannetra Website
|
|
||||||
* Handles unique interactions for different sections and pages
|
|
||||||
*/
|
|
||||||
|
|
||||||
document.addEventListener('DOMContentLoaded', function() {
|
|
||||||
// Detect current page
|
|
||||||
const currentPath = window.location.pathname;
|
|
||||||
const pageName = currentPath.split('/').pop() || 'index.html';
|
|
||||||
|
|
||||||
// Initialize common elements
|
|
||||||
initCommonElements();
|
|
||||||
|
|
||||||
// Initialize page-specific effects
|
|
||||||
switch (pageName) {
|
|
||||||
case 'index.html':
|
|
||||||
initHomePage();
|
|
||||||
break;
|
|
||||||
case 'about.html':
|
|
||||||
initAboutPage();
|
|
||||||
break;
|
|
||||||
case 'contact.html':
|
|
||||||
initContactPage();
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
// Check if it's a service page
|
|
||||||
if (currentPath.includes('/Services/')) {
|
|
||||||
initServicePage();
|
|
||||||
}
|
|
||||||
// Check if it's an industry page
|
|
||||||
else if (currentPath.includes('/Industries/')) {
|
|
||||||
initIndustryPage();
|
|
||||||
}
|
|
||||||
// Check if it's an education page
|
|
||||||
else if (currentPath.includes('/Education/')) {
|
|
||||||
initEducationPage();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// Initialize elements common to all pages
|
|
||||||
function initCommonElements() {
|
|
||||||
// Initialize header scroll effect
|
|
||||||
initHeaderScroll();
|
|
||||||
|
|
||||||
// Initialize footer animations
|
|
||||||
initFooterAnimations();
|
|
||||||
|
|
||||||
// Initialize section entrance animations
|
|
||||||
initSectionAnimations();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Header animation on scroll
|
|
||||||
function initHeaderScroll() {
|
|
||||||
const header = document.querySelector('.site-header');
|
|
||||||
if (!header) return;
|
|
||||||
|
|
||||||
let lastScrollY = 0;
|
|
||||||
|
|
||||||
window.addEventListener('scroll', () => {
|
|
||||||
const scrollY = window.scrollY;
|
|
||||||
|
|
||||||
// Add shadow and background when scrolling down
|
|
||||||
if (scrollY > 20) {
|
|
||||||
header.classList.add('header-scrolled');
|
|
||||||
} else {
|
|
||||||
header.classList.remove('header-scrolled');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Hide header when scrolling down quickly, show when scrolling up
|
|
||||||
if (scrollY > lastScrollY + 50) {
|
|
||||||
header.classList.add('header-hidden');
|
|
||||||
} else if (scrollY < lastScrollY - 10) {
|
|
||||||
header.classList.remove('header-hidden');
|
|
||||||
}
|
|
||||||
|
|
||||||
lastScrollY = scrollY;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// Homepage specific animations
|
|
||||||
function initHomePage() {
|
|
||||||
// Initialize expertise item animations
|
|
||||||
initExpertiseItems();
|
|
||||||
|
|
||||||
// Initialize tech section parallax
|
|
||||||
initTechParallax();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Expertise items hover and click effects
|
|
||||||
function initExpertiseItems() {
|
|
||||||
const expItems = document.querySelectorAll('.exp-item');
|
|
||||||
|
|
||||||
expItems.forEach(item => {
|
|
||||||
// Add hover effect
|
|
||||||
item.addEventListener('mouseenter', function() {
|
|
||||||
this.classList.add('exp-hover');
|
|
||||||
});
|
|
||||||
|
|
||||||
item.addEventListener('mouseleave', function() {
|
|
||||||
this.classList.remove('exp-hover');
|
|
||||||
});
|
|
||||||
|
|
||||||
// Add click animation
|
|
||||||
item.addEventListener('click', function() {
|
|
||||||
this.classList.add('exp-click');
|
|
||||||
|
|
||||||
setTimeout(() => {
|
|
||||||
this.classList.remove('exp-click');
|
|
||||||
}, 300);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
// Add staggered entrance animation
|
|
||||||
expItems.forEach((item, index) => {
|
|
||||||
// Set staggered animation delay
|
|
||||||
item.style.animationDelay = `${index * 0.15}s`;
|
|
||||||
|
|
||||||
// Add animation class
|
|
||||||
item.classList.add('animate-entrance');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// Tech section parallax effect
|
|
||||||
function initTechParallax() {
|
|
||||||
const techSection = document.getElementById('technologies');
|
|
||||||
if (!techSection) return;
|
|
||||||
|
|
||||||
window.addEventListener('scroll', () => {
|
|
||||||
// Get section position
|
|
||||||
const rect = techSection.getBoundingClientRect();
|
|
||||||
const viewportHeight = window.innerHeight;
|
|
||||||
|
|
||||||
// Check if section is in viewport
|
|
||||||
if (rect.top < viewportHeight && rect.bottom > 0) {
|
|
||||||
// Calculate percentage scrolled through the section
|
|
||||||
const scrollPercentage = 1 - Math.max(0, Math.min(1, rect.bottom / (rect.height + viewportHeight)));
|
|
||||||
|
|
||||||
// Apply parallax effect to tech icons
|
|
||||||
const techItems = document.querySelectorAll('.tech-icon-container');
|
|
||||||
techItems.forEach((item, index) => {
|
|
||||||
const offsetFactor = (index % 3 - 1) * 20; // Different offset for each item
|
|
||||||
const translateY = scrollPercentage * offsetFactor;
|
|
||||||
item.style.transform = `translateY(${translateY}px)`;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// About page specific animations
|
|
||||||
function initAboutPage() {
|
|
||||||
// Team member hover effects
|
|
||||||
const teamMembers = document.querySelectorAll('.team-member');
|
|
||||||
if (teamMembers.length > 0) {
|
|
||||||
teamMembers.forEach(member => {
|
|
||||||
member.addEventListener('mouseenter', function() {
|
|
||||||
this.classList.add('member-hover');
|
|
||||||
});
|
|
||||||
|
|
||||||
member.addEventListener('mouseleave', function() {
|
|
||||||
this.classList.remove('member-hover');
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Contact page specific functionality (animations removed)
|
|
||||||
function initContactPage() {
|
|
||||||
// Basic form input handling without animations
|
|
||||||
const formInputs = document.querySelectorAll('input, textarea');
|
|
||||||
if (formInputs.length > 0) {
|
|
||||||
formInputs.forEach(input => {
|
|
||||||
// Add simplified focus effect (keep functionality but remove animations)
|
|
||||||
input.addEventListener('focus', function() {
|
|
||||||
this.parentElement.classList.add('input-focused');
|
|
||||||
});
|
|
||||||
|
|
||||||
input.addEventListener('blur', function() {
|
|
||||||
if (!this.value) {
|
|
||||||
this.parentElement.classList.remove('input-focused');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// Check for pre-filled inputs (functionality preserved)
|
|
||||||
if (input.value) {
|
|
||||||
input.parentElement.classList.add('input-focused');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Service page specific animations
|
|
||||||
function initServicePage() {
|
|
||||||
// Service cards animation
|
|
||||||
const serviceCards = document.querySelectorAll('.service-card');
|
|
||||||
if (serviceCards.length > 0) {
|
|
||||||
serviceCards.forEach((card, index) => {
|
|
||||||
// Add staggered animation
|
|
||||||
card.style.animationDelay = `${index * 0.15}s`;
|
|
||||||
card.classList.add('animate-slide-up');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Industry page specific animations
|
|
||||||
function initIndustryPage() {
|
|
||||||
// Case study hover effects
|
|
||||||
const caseStudies = document.querySelectorAll('.case-study');
|
|
||||||
if (caseStudies.length > 0) {
|
|
||||||
caseStudies.forEach(study => {
|
|
||||||
study.addEventListener('mouseenter', function() {
|
|
||||||
this.classList.add('case-hover');
|
|
||||||
});
|
|
||||||
|
|
||||||
study.addEventListener('mouseleave', function() {
|
|
||||||
this.classList.remove('case-hover');
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Education page specific animations
|
|
||||||
function initEducationPage() {
|
|
||||||
// Course card effects
|
|
||||||
const courseCards = document.querySelectorAll('.course-card');
|
|
||||||
if (courseCards.length > 0) {
|
|
||||||
courseCards.forEach(card => {
|
|
||||||
card.addEventListener('click', function() {
|
|
||||||
this.classList.toggle('card-expanded');
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Section entrance animations
|
|
||||||
function initSectionAnimations() {
|
|
||||||
const sections = document.querySelectorAll('section');
|
|
||||||
|
|
||||||
// Create intersection observer
|
|
||||||
const observer = new IntersectionObserver((entries) => {
|
|
||||||
entries.forEach(entry => {
|
|
||||||
if (entry.isIntersecting) {
|
|
||||||
entry.target.classList.add('section-visible');
|
|
||||||
|
|
||||||
// Animate children with delay
|
|
||||||
const children = entry.target.querySelectorAll('.animate-on-visible');
|
|
||||||
children.forEach((child, index) => {
|
|
||||||
child.style.animationDelay = `${index * 0.1}s`;
|
|
||||||
child.classList.add('element-visible');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}, {
|
|
||||||
threshold: 0.15,
|
|
||||||
rootMargin: '0px 0px -10% 0px'
|
|
||||||
});
|
|
||||||
|
|
||||||
// Observe all sections
|
|
||||||
sections.forEach(section => {
|
|
||||||
observer.observe(section);
|
|
||||||
section.classList.add('section-hidden');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// Footer animations
|
|
||||||
function initFooterAnimations() {
|
|
||||||
const footer = document.querySelector('.site-footer');
|
|
||||||
if (!footer) return;
|
|
||||||
|
|
||||||
// Create intersection observer for footer
|
|
||||||
const observer = new IntersectionObserver((entries) => {
|
|
||||||
entries.forEach(entry => {
|
|
||||||
if (entry.isIntersecting) {
|
|
||||||
footer.classList.add('footer-visible');
|
|
||||||
|
|
||||||
// Staggered animation for footer columns
|
|
||||||
const columns = footer.querySelectorAll('.footer-col');
|
|
||||||
columns.forEach((col, index) => {
|
|
||||||
col.style.animationDelay = `${index * 0.15}s`;
|
|
||||||
col.classList.add('col-visible');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}, {
|
|
||||||
threshold: 0.2
|
|
||||||
});
|
|
||||||
|
|
||||||
observer.observe(footer);
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user