.services-text .lf-bloc{
    width: 85%;
}

.services-text.phases > .lf-bloc:first-child .lf-bloc-text{
    margin-bottom: 40px;
}

.services-text .lf-bloc-text span{
    margin-left: 40px;
    display: block;
}

/* La hauteur de chaque ligne est définie par le texte du bloc (services-text).
   L'image en face sort du flux pour ne pas imposer sa hauteur naturelle :
   elle s'étire à la hauteur du texte et se recadre. */
.services-bloc-img{
    align-self: stretch;
    position: relative;
    overflow: hidden;
}

.services-bloc-img img{
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.services-contact{
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 15px 0;
}

.services-contact a{
    text-decoration: none;
}

h2.lf-page-title{
    margin-top: 40px;
    margin-bottom: 0;
}


/* ===== RESPONSIVE MOBILE ===== */

@media (max-width: 768px){

    .services-text .lf-bloc{
        width: 100%;
    }

    .services-text.phases > .lf-bloc:first-child .lf-bloc-text{
        margin-bottom: 20px;
    }

    .services-text .lf-bloc-text span{
        margin-left: 20px;
    }

    /* La ligne passe en colonne (règle globale .lf-section-3-2) : l'image revient
       dans le flux, reprend sa hauteur naturelle (pas de recadrage) et passe sous le texte. */
    .services-bloc-img{
        align-self: auto;
        position: static;
    }

    .services-bloc-img img{
        position: static;
        width: 100%;
        height: auto;
        display: block;
    }

    h2.lf-page-title{
        margin-top: 0;
        margin-bottom: 20px;
    }
}