.navbar {
    border-radius: 14px;
    box-shadow: 0 2px 14px rgba(0, 93, 170, 0.16);
    border: 1px solid #DCEAF7;
    margin: 20px;
    background-color: white;
    padding: .65rem 1.5rem;
}

.sesion-btn {
    background: #005DAA;
    color: #fff;
    border-radius: 6px;
    min-width: 104px;
    padding: .5rem 1.6rem;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.2;
    text-align: center;
}

.sesion-btn:hover {
    background: #004a87;
    color: #fff;
}

.nav-link {
    font-size: 14px;
    color: #28282E;
    line-height: 1.2;
    padding-top: .5rem;
    padding-bottom: .5rem;
}

.nav-link:hover {
    color: #005DAA;
}

.navbar-nav .nav-item {
    margin-right: 1.5rem;
}

/* El último item no lleva margen, para que el centrado quede simétrico */
.navbar-nav .nav-item:last-child {
    margin-right: 0;
}

/* En escritorio, el menú se ancla al centro real de la navbar.
   Con flex quedaba centrado solo respecto al espacio sobrante tras el logo,
   por eso se veía corrido a la izquierda. */
@media (min-width: 768px) {
    .navbar .header-div {
        position: relative;
    }

    .navbar #navbar-center {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: auto;
        flex-grow: 0;
    }

    .navbar #navbar-center,
    .navbar #navbar-right,
    .navbar #navbar-center .navbar-nav,
    .navbar #navbar-right .navbar-nav {
        align-items: center;
    }
}

.contacto {
    margin-right: 18px;
    color: #005DAA;
}

.contacto:hover {
    color: #004a87;
}

.logo-header-custom {
    max-height: 32px;
    width: auto;
}

/* ===== Mobile ===== */
@media (max-width: 767.98px) {
    /* Recuperamos ancho: sin esto el logo + toggler no caben y el flex los parte en dos líneas */
    .navbar {
        margin: 12px;
        padding: .7rem 1rem;
    }

    .navbar .header-div {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: space-between;
        margin-left: 0;
        margin-right: 0;
        padding-left: 0;
        padding-right: 0;
    }

    /* Logo y botón hamburguesa en la misma línea */
    .navbar .header-div .logo-link {
        order: 1;
        flex: 0 1 auto;
        min-width: 0;
    }

    .navbar .header-div .logo-header-custom {
        max-height: 27px;
        max-width: 100%;
    }

    .navbar .header-div .navbar-toggler {
        order: 2;
        flex: 0 0 auto;
    }

    /* El menú desplegable ocupa su propia línea, debajo */
    .navbar .header-div .navbar-collapse {
        order: 3;
        flex-basis: 100%;
    }

    /* main.css fuerza font-size 24px y width 100% en móvil; lo devolvemos a un tamaño normal */
    .btn-inicia-mobile {
        font-size: 16px !important;
        width: auto;
        display: inline-block;
        padding: .55rem 1.5rem;
    }
}
