/* ============================================================
   Layout basic_2cols — Media + Texte 2 colonnes
   CSS plat uniquement — pas de syntaxe &__ / &--
   ============================================================ */

.basic_2cols {
    overflow: hidden;
}

.basic_2cols__content {
    display: flex;
    position: relative;
    gap: 60px;
    flex-direction: column;
    align-items: stretch;
}

.basic_2cols__content + .basic_2cols__content {
    margin-top: 80px;
}

@media (min-width: 992px) {
    .basic_2cols__content {
        flex-direction: row;
    }

    .basic_2cols__content.reverse {
        flex-direction: row-reverse;
    }
}

/* ---- Colonne texte ---- */
.basic_2cols__para {
    position: relative;
    z-index: 3;
    flex: 1;
}

.basic_2cols__para > *:first-child {
    margin-top: 0;
}

.basic_2cols__para h2,
.basic_2cols__para h3,
.basic_2cols__para h4 {
    margin: 16px 0 10px 0;
}

.basic_2cols__para p:last-child {
    margin-bottom: 0;
}

.basic_2cols__para .section__btn {
    margin: 0;
}

.basic_2cols__para .cta {
    margin-top: 0 !important;
}

/* Mot accentué doré dans un titre (classe appliquée dans le WYSIWYG) */
.basic_2cols__para h2 .text-gold,
.basic_2cols__para h3 .text-gold {
    color: var(--color-gold);
}

/* Sous-titre uppercase (classe optionnelle dans le WYSIWYG) */
.basic_2cols__para .rct-subtitle {
    font-family: var(--main-font);
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: 0.16em;
    color: var(--color-navy);
    font-size: 13px;
    line-height: 20px;
    margin: 0 0 24px 0;
}

@media (min-width: 576px) {
    .basic_2cols__para .rct-subtitle {
        font-size: 15px;
        line-height: 22px;
    }
}

@media (min-width: 992px) {
    .basic_2cols__para .rct-subtitle {
        font-size: 16px;
        line-height: 24px;
        margin-bottom: 32px;
    }
}

/* Corps texte (classe optionnelle dans le WYSIWYG) */
.basic_2cols__para .rct-body {
    font-family: var(--main-font);
    font-weight: 300;
    font-size: 15px;
    line-height: 24px;
    color: var(--color-navy);
    margin: 24px 0 0 0;
}

@media (min-width: 576px) {
    .basic_2cols__para .rct-body {
        font-size: 16px;
        line-height: 26px;
        margin-top: 32px;
    }
}

@media (min-width: 992px) {
    .basic_2cols__para .rct-body {
        font-size: 17px;
        line-height: 28px;
    }
}

.basic_2cols__para .rct-body strong {
    font-weight: 700;
}

/* Espacement du bouton doré (.btn-gold) dans la colonne texte */
.basic_2cols__para .btn-gold {
    margin-top: 32px;
}

/* ---- Colonne media ---- */
.basic_2cols__media {
    position: relative;
    margin-top: 16px;
    flex: 1;
    display: flex;
}

@media (min-width: 768px) {
    .basic_2cols__media {
        margin-top: 0;
    }
}

.basic_2cols__media.cover img {
    -o-object-fit: cover;
    object-fit: cover;
}

.basic_2cols__media:not(.cover) {
    height: 100%;
}

.basic_2cols__media img {
    display: block;
    height: 100%;
    -o-object-fit: contain;
    object-fit: contain;
    -o-object-position: center;
    object-position: center;
    width: 100%;
    border-radius: var(--border-radius);
}

@media (max-width: 991px) {
    .basic_2cols__media img {
        max-height: 400px;
    }
}

/* Page rigid-chain (ID 3555) : image en carte arrondie 24px, ratio 4/3,
   cover — calqué sur le SectionTwoCol Lovable, sans rectangles décoratifs.
   Scopé à la page pour ne pas modifier les autres basic_2cols du site. */
.page-id-3555 .basic_2cols__media img {
    border-radius: var(--border-radius-card);
    aspect-ratio: 4 / 3;
    object-fit: cover;
    height: auto;
    max-height: none;
}

.basic_2cols__media p {
    position: absolute;
    bottom: 0;
    background: var(--grey);
    left: 50%;
    transform: translate(-50%);
    font-family: var(--title-font);
    color: var(--light-blue);
    min-width: 80%;
    border-radius: var(--border-radius) var(--border-radius) 0 0;
    margin: 0;
    font-size: 16px;
    line-height: normal;
    padding: 20px 20px 0 20px;
}

@media (min-width: 992px) {
    .basic_2cols__media p {
        font-size: 24px;
        line-height: 32px;
        padding: 40px 40px 0 40px;
    }
}

/* ============================================================
   Rectangles décoratifs — pilotés par ACF (toggle + couleur)
   Actifs uniquement si basic_twocols_show_decorations = true.
   La couleur est injectée via --deco-color sur l'élément inline.
   ============================================================ */

.basic_2cols__decoration {
    position: absolute;
    display: none;
    width: 110px;
    height: 110px;
    border-radius: 20px;
    /* Position par défaut : déborde à droite de l'image
       (layout normal, image à droite) */
    right: -32px;
    left: auto;
    pointer-events: none;
}

@media (min-width: 576px) {
    .basic_2cols__decoration {
        display: block;
    }
}

.basic_2cols__decoration--1 {
    top: 12%;
    background: linear-gradient(0deg, var(--color-dark-gold) 0%, var(--color-gold) 100%);
    border: 3px solid var(--color-gold);
}

.basic_2cols__decoration--2 {
    top: calc(12% + 130px);
    background: linear-gradient(0deg, var(--color-navy-deep) 0%, var(--color-navy) 100%);
    border: 3px solid var(--color-navy);
}

/* Version reverse (image à gauche) : déborde à gauche */
.basic_2cols__content.reverse .basic_2cols__decoration {
    right: auto;
    left: -32px;
}

/* En version reverse, marge latérale de la colonne image */
@media (min-width: 992px) {
    .basic_2cols__content.reverse .basic_2cols__media {
        margin-right: 0;
        margin-left: 40px;
    }
}

@media (min-width: 992px) {
    .basic_2cols__content.reverse .basic_2cols__media {
        margin-right: 0;
        margin-left: 24px;
    }
}

/* Marge latérale côté décorations — version normale */
@media (min-width: 992px) {
    .basic_2cols__media:has(.basic_2cols__decoration) {
        margin-right: 40px;
    }
}

@media (min-width: 992px) {
    .basic_2cols__media:has(.basic_2cols__decoration) {
        margin-right: 0;
    }
}

/* Image avec border-radius card quand décorations actives */
.basic_2cols__media:has(.basic_2cols__decoration) img {
    border-radius: var(--border-radius-card);
    object-fit: cover;
    aspect-ratio: 4 / 3;
    height: auto;
}

/* ============================================================
   Embed vidéo (YouTube / Vimeo via oEmbed)
   ============================================================ */

.basic_2cols__media--video-embed {
    width: 100%;
}

@media (min-width: 992px) {
    .basic_2cols__media--video-embed {
        align-self: center;
    }
}

.basic_2cols__video-wrapper {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    border-radius: var(--border-radius);
    overflow: hidden;
}

.basic_2cols__video-wrapper iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: none;
}
