/* Evita que el navbar tape el contenido */
body {
    padding-top: 90px;
}

.navbar {
    min-height: 80px;
}

.navbar-brand {
    padding: 5px 15px;
    height: auto;
}

.navbar-brand img {
    max-height: 70px;
    width: auto;
}

.navbar-toggle {
    margin-top: 22px;
    margin-right: 15px;
}

.map-wrapper {
    position: relative;
    width: 100%;
    max-width: 1400px;
    margin: 20px auto 40px auto;
    padding: 0 15px;
}

/* Mapa */
#googleMap {
    width: 100%;
    height: 85vh;
    min-height: 650px;
    border: none;
    border-radius: 10px;
    display: none; /* Oculto mientras carga */
}

/* Loader */
.map-loader {
    height: 85vh;
    min-height: 650px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    background: #f8f9fa;
    border-radius: 10px;
}

.spinner {
    width: 60px;
    height: 60px;
    border: 6px solid #ddd;
    border-top: 6px solid #007bff;
    border-radius: 50%;
    animation: spin 1s linear infinite;
}

.map-loader p {
    margin-top: 20px;
    font-size: 18px;
    color: #555;
}

@keyframes spin {
    100% {
        transform: rotate(360deg);
    }
}

/* Tablets */
@media (max-width: 992px) {
    #googleMap,
    .map-loader {
        height: 70vh;
        min-height: 500px;
    }
}

/* Móviles */
@media (max-width: 768px) {

    body {
        padding-top: 70px;
    }

    #googleMap,
    .map-loader {
        height: 60vh;
        min-height: 350px;
    }
}

@media (max-width: 767px) {

    .navbar {
        min-height: 70px;
    }

    .navbar-brand img {
        max-height: 50px;
    }

    .navbar-toggle {
        margin-top: 15px;
    }
}

.magazine-section {
    padding-top: 40px;
    padding-bottom: 40px;
}