class CustomFooter extends HTMLElement { connectedCallback() { this.attachShadow({ mode: 'open' }); this.shadowRoot.innerHTML = ` `; } } customElements.define('custom-footer', CustomFooter); function handleNewsletterSubmit(event) { event.preventDefault(); const input = event.target.querySelector('.newsletter-input'); const button = event.target.querySelector('.newsletter-btn'); button.textContent = 'Subscribing...'; button.disabled = true; setTimeout(() => { button.textContent = '✓ Subscribed!'; input.value = ''; setTimeout(() => { button.textContent = 'Subscribe'; button.disabled = false; }, 2000); }, 1000); }