const revealItems = document.querySelectorAll('.reveal');
const revealObserver = new IntersectionObserver((entries) => {
  entries.forEach((entry) => {
    if (entry.isIntersecting) {
      entry.target.classList.add('visible');
      revealObserver.unobserve(entry.target);
    }
  });
}, { threshold: 0.14 });
revealItems.forEach((item) => revealObserver.observe(item));

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

const form = document.querySelector('#leadForm');
if (form) {
  form.addEventListener('submit', async (e) => {
    e.preventDefault();
    const button = form.querySelector('button[type="submit"]');
    const message = form.querySelector('.form-message');
    const initialText = 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 (!response.ok || !result.success) throw new Error(result.message || 'Ошибка отправки');
      message.textContent = 'Спасибо! Мы свяжемся с вами в ближайшее время.';
      form.reset();
    } catch (error) {
      message.textContent = 'Не удалось отправить заявку. Попробуйте еще раз или позвоните нам.';
    } finally {
      button.textContent = initialText;
      button.disabled = false;
    }
  });
}
