National Park
About This Attraction
Pirin National Park, located in Bansko, Bulgaria, is a UNESCO World Heritage site known for its remarkable natural beauty and biodiversity. The park covers an area of about 403 square kilometers and is home to more than 1,300 plant species, including the rare edelweiss and Macedonian pine trees. It also provides habitat for various wildlife such as brown bears, wolves, and over 200 bird species. These features make it a prime destination for nature enthusiasts and hikers alike.
For those interested in Pirin National Park travel information, the park offers numerous marked trails that vary in difficulty and length, catering to both beginners and experienced hikers. Popular trails lead to scenic spots like Vihren Peak, the second highest mountain in Bulgaria, standing at 2,914 meters. Additionally, the parks glacial lakes provide stunning views and peaceful resting points for visitors. With well-maintained facilities and clear signage, Pirin National Park ensures a safe and enjoyable experience for all visitors.
Location Details
Address
Pirin National Park, 2770 Bansko, Bulgaria
Visitor Information
Pricing & Ratings
Ticket Prices
Adult
Free
Child
Free
Student
Free
Senior
Free
Opening Hours & Booking
Open
Days
Monday to Sunday
Hours
24 hours
Seasonality
Open all year round
Booking
Booking Required?
No
Advance Booking
Not Required days recommended
Nearby Attractions
Bansko Ski Resort, located in Bulgaria, is a popular destination for winter sports enthusiasts. The…
Learn More
The National Palace of Culture in Sofia, Bulgaria, is a multifunctional conference and exhibition center.…
Learn More
Vitosha Boulevard is a major shopping street in Sofia, Bulgaria, known for its array of…
Learn More
Alexander Nevsky Cathedral in Sofia, Bulgaria, is one of the largest Eastern Orthodox cathedrals in…
Learn More
Ano Poli, the Upper Town of Thessaloniki, is known for its historical significance and scenic…
Learn More
Aristotelous Square is a central landmark in Thessaloniki, Greece, known for its impressive architecture and…
Learn More
The Archaeological Museum of Thessaloniki is a prominent cultural institution located in Greece. It houses…
Learn More
The White Tower in Thessaloniki is a prominent historical monument and museum located on the…
Learn More
Holy Trinity Church in Bansko is one of the towns most significant landmarks, known for…
Learn More
The Rotunda in Thessaloniki, Greece, is an impressive architectural structure with a fascinating history. Constructed…
Learn More
";
}
// Initialize modal controls
const initModalControls = function() {
console.log('Initializing modal controls');
const modal = document.getElementById('attraction-modal');
const closeBtn = document.querySelector('.attraction-modal-close');
if (closeBtn) {
closeBtn.addEventListener('click', function() {
modal.style.display = 'none';
document.body.style.overflow = '';
});
}
window.addEventListener('click', function(event) {
if (event.target === modal) {
modal.style.display = 'none';
document.body.style.overflow = '';
}
});
// Make attraction cards clickable
const attractionCards = document.querySelectorAll('.attraction-card');
console.log('Found ' + attractionCards.length + ' attraction cards');
attractionCards.forEach(card => {
card.addEventListener('click', function(e) {
openModalWithCardData(this);
});
});
};
// Function to open modal with card data
const openModalWithCardData = function(card) {
// Get data from hidden div
const data = card.querySelector('.attraction-full-data');
if (!data) {
console.error('No attraction data found in card');
return;
}
const modal = document.getElementById('attraction-modal');
if (!modal) {
console.error('Modal element still not found after creation attempt');
return;
}
// Helper function to safely get element text
function getElementText(selector) {
const element = data.querySelector(selector);
return element ? element.textContent : '';
}
try {
// Basic Info
document.getElementById('attraction-modal-title').textContent = getElementText('.attraction-name');
document.getElementById('attraction-modal-type').textContent = getElementText('.attraction-type-full');
document.getElementById('attraction-modal-description').textContent = getElementText('.attraction-description-full');
// Reset all containers to hidden
['attraction-modal-hours-container', 'attraction-modal-price-container',
'attraction-modal-address-container', 'attraction-modal-image-container'].forEach(id => {
const container = document.getElementById(id);
if (container) container.style.display = 'none';
});
// Rating
const ratingText = getElementText('.attraction-rating-full');
if (ratingText) {
const ratingValue = parseFloat(ratingText);
if (!isNaN(ratingValue)) {
const ratingValueEl = document.getElementById('attraction-modal-rating-value');
const ratingFillEl = document.getElementById('attraction-modal-rating-fill');
if (ratingValueEl) ratingValueEl.textContent = ratingValue.toFixed(1) + '/10';
if (ratingFillEl) ratingFillEl.style.width = (ratingValue * 10) + '%';
}
}
// Show the modal
modal.style.display = 'block';
document.body.style.overflow = 'hidden'; // Prevent background scrolling
console.log('Modal opened successfully');
} catch (error) {
console.error('Error opening modal:', error);
}
};
// Try to create the modal
const created = createModal();
console.log('Modal created:', created);
// If not created (already exists), initialize the controls
if (!created) {
initModalControls();
}
// Also initialize distance toggle
const distanceToggle = document.getElementById('distance-unit-toggle');
if (distanceToggle) {
distanceToggle.addEventListener('change', function() {
const showKm = this.checked;
// Update toggle labels
const labels = document.querySelectorAll('.toggle-label');
if (labels.length >= 2) {
labels[0].style.opacity = showKm ? '0.5' : '1';
labels[1].style.opacity = showKm ? '1' : '0.5';
}
// Update all distance displays
document.querySelectorAll('.nearby-attraction-card').forEach(card => {
const kmEl = card.querySelector('.distance-km');
const miEl = card.querySelector('.distance-mi');
if (kmEl && miEl) {
kmEl.style.display = showKm ? 'inline' : 'none';
miEl.style.display = showKm ? 'none' : 'inline';
}
});
});
}
});