document.addEventListener('DOMContentLoaded', () => {
  const revealElements = document.querySelectorAll('.reveal');

  const observer = new IntersectionObserver((entries) => {
    entries.forEach((entry) => {
      if (entry.isIntersecting) {
        entry.target.classList.add('visible');
        observer.unobserve(entry.target);
      }
    });
  }, { threshold: 0.12 });

  revealElements.forEach((el) => observer.observe(el));

  document.querySelectorAll('.faq-question').forEach((button) => {
    button.addEventListener('click', () => {
      const item = button.closest('.faq-item');
      const isActive = item.classList.contains('active');
      document.querySelectorAll('.faq-item').forEach((faq) => faq.classList.remove('active'));
      if (!isActive) item.classList.add('active');
    });
  });

  const form = document.getElementById('leadForm');
  const message = document.getElementById('formMessage');

  if (form) {
    form.addEventListener('submit', async (e) => {
      e.preventDefault();

      const button = form.querySelector('button[type="submit"]');
      const defaultText = button.textContent;
      button.textContent = 'Отправка...';
      button.disabled = true;
      message.textContent = '';

      try {
        const response = await fetch('send.php', {
          method: 'POST',
          body: new FormData(form)
        });

        const result = await response.json();

        if (result.success) {
          message.textContent = 'Спасибо! Мы свяжемся с вами в ближайшее время.';
          form.reset();
        } else {
          message.textContent = result.message || 'Не удалось отправить заявку. Проверьте поля.';
        }
      } catch (error) {
        message.textContent = 'Ошибка соединения. Попробуйте позже или позвоните нам.';
      } finally {
        button.textContent = defaultText;
        button.disabled = false;
      }
    });
  }
});
