.route-map-section, .route-stops-section { margin-bottom: 3.5rem; }
.route-map-section h2, .route-stops-section h2 { font-size: clamp(1.6rem, 3vw, 2rem); font-weight: 700; color: var(--dark-blue); margin: 0 0 1.5rem; }
.route-map { height: clamp(300px, 48vw, 440px); border-radius: 16px; border: 1px solid #dedede; overflow: hidden; z-index: 0; }
.route-stops { display: grid; gap: 1.2rem; padding: 0; list-style: none; margin: 0; }
.route-stop-card { display: grid; grid-template-columns: 44px 180px minmax(0,1fr); gap: 1.5rem; align-items: center; padding: 1.25rem; border: 1px solid #dedede; border-radius: 16px; color: var(--ink); text-decoration: none; background: white; box-shadow: 0 3px 12px #3434340d; }
.route-stop-card:hover { border-color: var(--blue); box-shadow: 0 8px 24px #34343418; }
.route-stop-card.without-image { grid-template-columns: 44px minmax(0,1fr); }
.route-stop-number { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; color: white; background: #c41646; font-size: 1.2rem; font-weight: 700; }
.route-stop-image { width: 180px; height: 130px; object-fit: cover; border-radius: 10px; }
.route-stop-copy h3 { font-weight: 700; font-size: 1.35rem; margin: 0 0 .5rem; }
.route-stop-summary { color: var(--muted); margin-bottom: .75rem; }
.route-stop-link { color: var(--blue); font-weight: 700; text-decoration: underline; }
.galera-route-marker { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; border: 3px solid white; background: #c41646; color: white; font-weight: 700; box-shadow: 0 0 0 1px #76102d, 0 3px 9px #23121c88; }
@media(max-width: 600px) {
  .route-stop-card { grid-template-columns: 30px 80px minmax(0,1fr); gap: .75rem; padding: .9rem; }
  .route-stop-card.without-image { grid-template-columns: 30px minmax(0,1fr); }
  .route-stop-number { width: 30px; height: 30px; font-size: 1rem; }
  .route-stop-image { width: 80px; height: 100px; }
  .route-stop-copy h3 { font-size: 1.1rem; }
  .route-stop-summary { font-size: .9rem; }
}
