/* ==============================
 * Block — Qui sommes-nous
 * Scope racine : .block-qsn
 * ============================== */

.block-qsn {
    padding: var(--section-py) 0;
    background: var(--color-bg);
}

@media (min-width: 1024px) {
    .block-qsn { padding: 65px 0 0; }
}

.block-qsn__container {
    display: flex;
    flex-direction: column;
    gap: clamp(24px, 4vw, 48px);
}
.block-qsn__text,
.block-qsn__media { width: 100%; }

@media (min-width: 1024px) {
    .block-qsn__container {
        flex-direction: row;
        align-items: stretch;
        gap: clamp(40px, 8vw, 100px);
    }
    .block-qsn__text  { flex: 1 1 auto; min-width: 0; }
    .block-qsn__media {
        flex: 0 0 auto;
        width: clamp(480px, 42vw, 611px);
        aspect-ratio: auto;
        height: auto;
        min-height: 0;
        align-self: stretch;
    }
    /* Variante carte : split 50/50 */
    .block-qsn__container:has(.block-qsn__media--map) .block-qsn__text,
    .block-qsn__container:has(.block-qsn__media--map) .block-qsn__media--map {
        flex: 1 1 50%;
        width: 50%;
        min-width: 0;
    }
    .block-qsn--image-left .block-qsn__media { order: 1; }
    .block-qsn--image-left .block-qsn__text  { order: 2; }
    .block-qsn--image-right .block-qsn__media { order: 2; }
    .block-qsn--image-right .block-qsn__text  { order: 1; }
}

@media (min-width: 1456px) {
    .block-qsn__media {
        width: 611px;
    }
    .block-qsn__container:has(.block-qsn__media--map) .block-qsn__media--map {
        width: 50%;
    }
}

.block-qsn__text { display: flex; flex-direction: column; padding: 20px 0; }
.block-qsn__text > * + * { margin-top: var(--text-stack-gap); }

@media (max-width: 1023px) {
    .block-qsn__text > * + * { margin-top: 20px; }
}

.block-qsn__title {
    font-family: var(--font-heading);
    font-weight: var(--weight-heading);
    font-size: var(--fs-h2);
    color: var(--color-primary);
    margin: 0;
    line-height: 1.15;
}

.block-qsn__intro {
    font-family: var(--font-body);
    font-weight: var(--weight-body);
    font-size: var(--fs-body);
    color: var(--color-text);
    line-height: 1.6;
}
.block-qsn__intro > * { margin: 0; }
.block-qsn__intro > * + * { margin-top: 12px; }

.block-qsn__cta { align-self: flex-start; }

.block-qsn__media {
    margin: 0;
    border-radius: var(--radius-lg);
    overflow: hidden;
    aspect-ratio: 4 / 3;
    background: var(--color-bg-alt);
    min-height: 280px; /* fallback si l'image/iframe n'a pas encore chargé */
}
.block-qsn__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}
.block-qsn__map {
    width: 100%;
    height: 100%;
    min-height: inherit;
    border: 0;
    display: block;
}

@media (max-width: 768px) {
    .block-qsn__media { aspect-ratio: 16 / 10; }
}
