Historical Site
About This Attraction
The Castle of Guzmán, located in Tarifa, Spain, dates back to the 10th century and is a notable historical site. Originally constructed by Abd-ar-Rahman III, it served as a fortress to protect the region from invasions. Over time, the castle was expanded and modified by various rulers, including Alfonso XI of Castile. Visitors can enjoy exploring its well-preserved walls and towers, which offer panoramic views of the surrounding area.
For those planning a visit, its essential to know about the Castle of Guzmán opening hours, which typically vary depending on the season. The site provides insight into the strategic importance of Tarifa throughout history. Educational plaques and guided tours are available to enhance your experience and understanding of the castles past. It remains a significant cultural monument in southern Spain today.
Location Details
Address
Calle Guzmán el Bueno, s/n, 11380 Tarifa, Cádiz, Spain
Visitor Information
Pricing & Ratings
Ticket Prices
Adult
4 EUR
Child
2 EUR
Student
3 EUR
Senior
3 EUR
Opening Hours & Booking
Open
Days
Tuesday to Sunday
Hours
10:00 AM to 6:00 PM
Seasonality
Closed on Mondays
Booking
Booking Required?
No
Nearby Attractions
Porta da Vila is the main entrance to the medieval town of Óbidos in Portugal,…
Learn More
Albayzín is a historic neighborhood in Granada, Spain, known for its narrow winding streets and…
Learn More
The Generalife in Granada is a historic garden and summer palace that once served as…
Learn More
The Alhambra in Granada, Spain, is a historic palace and fortress complex that attracts millions…
Learn More
Granada Cathedral, known as the Cathedral of the Incarnation, is located in the heart of…
Learn More
Seville Cathedral, officially known as the Cathedral of Saint Mary of the See, is located…
Learn More
The Alcázar of Seville is a stunning example of Mudejar architecture, showcasing the cultural history…
Learn More
Plaza de España in Seville is a notable landmark and a prime example of the…
Learn More
Igreja de Santa Maria, located in the historic town of Óbidos, Portugal, is a beautiful…
Learn More
The Christopher Columbus House Museum in Porto Santo offers visitors a chance to learn about…
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';
}
});
});
}
});