.sub-page {
    margin-top: 50px;
}

.py-top {
    padding-top: 9rem;
}

.card.highlighted {
    border: 2px solid #007bff;
    background-color: #f0f8ff;
    transition: background-color 0.3s, border 0.3s;
}

#results-container {
    max-height: calc(100vh - 160px); /* adjust for navbar/margin if needed */
    overflow-y: auto;
    padding-right: 10px;
}

#map {
    height: calc(100vh - 160px); /* Match height with results */
    width: 100%;
}

.results-scroll {
    max-height: calc(100vh - 150px); /* Adjust based on header/footer */
    overflow-y: auto;
    padding-right: 10px;
}

@media (max-width: 768px) {
    #map {
        height: auto;
        aspect-ratio: 1 / 1;
    }
}

.responsive-map {
    height: 80vh;
    width: 100%;
}

/* On mobile: make it square */
@media (max-width: 768px) {
    .responsive-map {
        height: auto;
        aspect-ratio: 1 / 1;
    }
}

.form-control::placeholder {
    color: #d1d1d1; 
}

.page-content p {
    margin-bottom: 1rem;
    line-height: 1.6;
}

.page-content h2, .page-content h3 {
    margin-top: 2rem;
    margin-bottom: 1rem;
}

.hover-shadow:hover {
    box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.15) !important;
    transform: translateY(-2px);
    transition: box-shadow 0.3s ease, transform 0.3s ease;
}