Загрузка данных


document.addEventListener('DOMContentLoaded', () => {
    // 1. Находим все кнопки открытия
    const openButtons = document.querySelectorAll('[data-modal-target]');
    // 2. Находим все кнопки закрытия (внутри модалок)
    const closeButtons = document.querySelectorAll('.close-btn');

    // Функция открытия
    const openModal = (modal) => {
        if (!modal) return;
        modal.classList.add('open');
        document.body.style.overflow = 'hidden'; // Отключаем скролл сайта
    };

    // Функция закрытия
    const closeModal = (modal) => {
        modal.classList.remove('open');
        document.body.style.overflow = ''; // Возвращаем скролл
    };

    // Слушатель на кнопки открытия
    openButtons.forEach(btn => {
        btn.addEventListener('click', (e) => {
            e.preventDefault();
            const targetId = btn.getAttribute('data-modal-target');
            const modal = document.querySelector(targetId);
            openModal(modal);
        });
    });

    // Слушатель на кнопки закрытия
    closeButtons.forEach(btn => {
        btn.addEventListener('click', () => {
            const modal = btn.closest('.modal');
            closeModal(modal);
        });
    });

    // Закрытие по клику на фон (overlay)
    window.addEventListener('click', (e) => {
        if (e.target.classList.contains('modal')) {
            closeModal(e.target);
        }
    });

    // Закрытие по кнопке Escape
    document.addEventListener('keydown', (e) => {
        if (e.key === 'Escape') {
            const openModalElement = document.querySelector('.modal.open');
            if (openModalElement) closeModal(openModalElement);
        }
    });
});