document.addEventListener('DOMContentLoaded', function () { const navbar = document.querySelector('.navbar'); const contactForm = document.getElementById('contactForm'); // Navbar shrink on scroll window.addEventListener('scroll', () => { if (window.scrollY > 50) { navbar.classList.add('navbar-scrolled'); } else { navbar.classList.remove('navbar-scrolled'); } }); // Smooth scrolling for anchor links document.querySelectorAll('a[href^="#"]').forEach(anchor => { anchor.addEventListener('click', function (e) { e.preventDefault(); document.querySelector(this.getAttribute('href')).scrollIntoView({ behavior: 'smooth' }); }); }); // Basic client-side form validation if (contactForm) { contactForm.addEventListener('submit', function(e) { e.preventDefault(); let isValid = true; const name = document.getElementById('name'); const email = document.getElementById('email'); const message = document.getElementById('message'); // Reset states [name, email, message].forEach(f => { f.classList.remove('is-invalid'); }); if (name.value.trim() === '') { name.classList.add('is-invalid'); isValid = false; } if (email.value.trim() === '' || !/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/.test(email.value)) { email.classList.add('is-invalid'); isValid = false; } if (message.value.trim() === '') { message.classList.add('is-invalid'); isValid = false; } if (isValid) { // On a real site, you'd submit this via AJAX. // For this demo, we'll just show an alert. alert('Thank you for your message! We will get back to you soon.'); contactForm.reset(); } }); } });