body {
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    margin: 0;
    padding: 0;
    line-height: 1.6;
    color: #333;
}

.hero {
    background: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('cycling/images/hero-bg.jpeg');
    background-size: cover;
    background-position: center;
    color: white;
    text-align: center;
    padding: 1rem 1rem;
}

.intro, .routes, .map-section, .gallery, .hotel {
    padding: 0.5rem 0.5rem;
    max-width: 1200px;
    margin: 0 auto;
}

table {
    width: 100%;
    border-collapse: collapse;
    margin: 1rem 0;
}

th, td {
    padding: 0.75rem;
    text-align: left;
    border-bottom: 1px solid #ddd;
}

th {
    background-color: #f4f4f4;
}

#map {
    height: 500px;
    width: 100%;
    margin-top: 1rem;
    border: 1px solid #ccc;
    border-radius: 5px;
}

.map-controls {
    margin-bottom: 1rem;
}

#route-selector {
    padding: 0.5rem;
}

.image-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: 1rem;
}

.image-grid img {
    width: 100%;
    height: 200px;
    object-fit: cover;
    border-radius: 5px;
}

footer {
    text-align: center;
    padding: 2rem 1rem;
    background-color: #f4f4f4;
    margin-top: 2rem;
}

.routes {
    overflow-x: auto; /* Allows horizontal scrolling on small screens */
}

.routes table {
    min-width: 800px; /* Forces the table to be wide, triggering scroll on small screens */
}

.routes th, .routes td {
    padding: 0.5rem;
    text-align: center;
}

/* Optional: Style the alternative routes */
.routes td em {
    color: #555;
    display: block;
    margin-bottom: 0.2rem;
}

/* Back navigation styles */
.back-button-hero.subtle {
    background-color: rgba(0, 0, 0, 0.5); /* Dark semi-transparent */
    color: white;
    border: 1px solid rgba(255, 255, 255, 0.3);
}

.back-button-hero.subtle:hover {
    background-color: rgba(0, 0, 0, 0.7);
    color: white;
}

/* Running-specific styles */
.schedule-day {
    background-color: #e8f5e9;
    padding: 1.5rem;
    border-radius: 10px;
    margin: 1.5rem 0;
    border-left: 4px solid #2196F3;
}

.schedule-time {
    font-weight: bold;
    color: #2e7d32;
    margin-right: 0.5rem;
    display: inline-block;
    min-width: 100px;
}

.event-item {
    margin: 0.8rem 0;
    padding: 0.5rem;
    background-color: rgba(255, 255, 255, 0.7);
    border-radius: 5px;
}

.event-highlight {
    background-color: #bbdefb;
    padding: 1rem;
    border-radius: 5px;
    margin: 1rem 0;
    font-weight: bold;
}