.basicoprincipal {
    display: flex;
    flex: 1;
    width: 100%;
}

.titulo {
    text-align: center;
    line-height: 1;
    color: white;
}

.sideA {
    display: flex;
    flex-direction: column;
    width: 60vw;
    align-items: center;
}

.banner {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 90px;
}

.img-banner {
    width: 800px;
    height: 45vh;
    object-fit: cover;
}

.logo-perfil {
    position: absolute;
    bottom: -80px;
    left: 50%;
    transform: translateX(-50%);
    width: 180px;
    height: 180px;
    border-radius: 50%;
    border: 4px solid white;
    background-color: white;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
    overflow: hidden;
}

.logo-perfil img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
}

.sideA .titulo {
    display: flex;
    justify-content: center;
}

.descrip p {
    text-align: center;
    width: 400px;
    margin-bottom: 60px;
    margin-top: 15px;
    color: white;
}

.map {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.map .titulo {
    margin-bottom: 15px;
}

.direc {
    text-align: center;
    color: white;
}

.mapframe iframe {
    width: 300px;
    height: 300px;
}

.pie p {
    width: 300px;
    text-align: center;
    color: white;
}

.sideC {
    position: sticky;
    top: 20px;
    align-self: flex-start;
    height: fit-content;
    display: flex;
    align-items: center;

    flex-direction: column;
    width: 20vw;
    color: white;
}

.redes {
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    padding: 10px;
    margin: 5px;
    gap: 15px;
    width: 25vw;
}

.redesT {
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    padding: 10px;
    margin: 5px;
    gap: 15px;
    width: 25vw;
}


.redes img {
    width: 70px;
    height: auto;
    border-radius: 50%;
    aspect-ratio: 1;
    object-fit: cover;
}

.redes img:hover {
    transform: rotate(15deg) scale(1.1);
    transition: all 0.4s cubic-bezier(0.25, 0.1, 0.25, 1);
}


.otrared {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 180px;
    height: 90px;
    cursor: pointer;
    background-size: 100% 100%;
    object-fit: cover;

}

.otrared a {
    text-decoration: none;
}



@media (max-width: 768px) {
    .basicoprincipal {
        display: flex;
        flex-direction: column;
        align-items: center;
        flex: 1;
        width: 100vw;
    }

    .banner {
        display: flex;
        width: 100vw;
        justify-content: center;
        align-items: center;
        margin-bottom: 60px;
    }

    .img-banner {
        width: 100%;
        height: 35vh;
        object-fit: cover;
    }

    .logo-perfil {
        width: 180px;
        height: 180px;
        bottom: -40px;
    }

    .descrip p {
        text-align: center;
        width: 250px;
        margin-bottom: 28px;
        margin-top: 15px;
    }

    .sideC {
        display: flex;
        align-items: center;
        flex-direction: column;
        width: 100vw;
    }

    .red {
        display: flex;
        flex-direction: column;
        justify-content: center;
        flex-wrap: wrap;

        align-items: center;
    }

    .redes {
        display: flex;
        flex-direction: row;
        width: 80px;
        justify-content: center;
        align-items: center;

    }

    .redesT {
        display: flex;
        flex-direction: row;
        width: 180px;
        justify-content: center;
        align-items: center;
    }

    .redes img {
        width: 60px;
        height: auto;
        border-radius: 50%;
        aspect-ratio: 1;
        object-fit: cover;
    }

    .sociales {
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
    }

    .redS,
    .ored {
        display: flex;
        width: 300px;
        flex-direction: column;
        flex-wrap: wrap;
        justify-content: center;
        align-items: center;
    }

}