/* ===== Média + Texte — image gauche/droite (migration fidèle) ===== */
.texte-image { position: relative; background-color: var(--blanc-ivoire); padding: 8rem 6rem; overflow: hidden; }
.texte-image__inner { position: relative; max-width: var(--max-width); margin: 0 auto; display: grid; grid-template-columns: 1.1fr 1fr; gap: 5rem; align-items: center; z-index: 1; }
.texte-image--image-right .texte-image__inner { grid-template-columns: 1fr 1.1fr; }

.texte-image__content { display: flex; flex-direction: column; gap: 1.5rem; max-width: 560px; }
.texte-image--image-right .texte-image__content { margin-left: auto; }
.texte-image__title { font-family: var(--font-titre); color: var(--noir-onyx); font-size: clamp(2rem, 4vw, 3rem); line-height: 1; font-weight: 400; margin-top: 0; }
.texte-image__title-mark { color: var(--bleu-cobalt); font-weight: 400; }
.texte-image__desc { color: var(--noir-onyx); max-width: 520px; }
.texte-image__content .btn { align-self: flex-start; }

.texte-image__visual { position: relative; height: 60vh; width: 100%; }
.texte-image__visual::before { content: ''; position: absolute; inset: 0; border-radius: 32px; border: 2px solid var(--jaune-safran); transform: translate(1.5rem, 1.5rem); z-index: 1; transition: transform 0.5s cubic-bezier(0.22,1,0.36,1); }
.texte-image--image-right .texte-image__visual::before { border-color: var(--orange-sanguine); transform: translate(-1.5rem, 1.5rem); }
.texte-image__visual:hover::before { transform: translate(0.75rem, 0.75rem); }
.texte-image--image-right .texte-image__visual:hover::before { transform: translate(-0.75rem, 0.75rem); }
.texte-image__image-wrapper { position: relative; width: 100%; height: 100%; border-radius: 32px; overflow: hidden; z-index: 2; }
.texte-image__image-wrapper img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1.2s cubic-bezier(0.22,1,0.36,1); }
.texte-image__visual:hover .texte-image__image-wrapper img { transform: scale(1.05); }

@media (max-width: 1024px) {
    .texte-image { padding: 6rem 2rem; }
    .texte-image__inner, .texte-image--image-right .texte-image__inner { grid-template-columns: 1fr; gap: 4rem; }
    .texte-image--image-right .texte-image__visual { order: -1; }
    .texte-image__visual { max-width: 500px; margin: 0 auto; height: 60vh; min-height: 420px; }
    .texte-image__content, .texte-image--image-right .texte-image__content { max-width: 100%; margin-left: 0; }
}
@media (max-width: 640px) {
    .texte-image { padding: 4rem 1.25rem; }
    .texte-image__visual { height: 50vh; min-height: 380px; }
}
