/**
 * Bannière Promotionnelle Responsive - VERSION RENFORCÉE
 */

/* Variables */
:root {
    --promo-banner-default-color: #456754;
    --promo-banner-text-color: #ffffff;
    --promo-banner-border-radius: 0px;
}

/* Reset complet pour éviter les conflits */
.promo-banner-wrapper * {
    box-sizing: border-box !important;
}

/* Conteneur principal - PLEINE LARGEUR (VERSION FINALE) */
.promo-banner-wrapper {
    position: relative !important;
    width: 100% !important;
    max-width: 100% !important;
    left: 0 !important;
    right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    overflow: hidden !important;
    border-radius: 0 !important;
    display: block !important;
}

/* Alternative pour forcer la pleine largeur si dans un conteneur */
.promo-banner-wrapper {
    box-sizing: border-box !important;
}

/* Si la bannière est dans un conteneur avec max-width */
body .promo-banner-wrapper,
.site-main .promo-banner-wrapper,
.content-area .promo-banner-wrapper,
main .promo-banner-wrapper {
    width: calc(100vw - (100vw - 100%)) !important;
    max-width: calc(100vw - (100vw - 100%)) !important;
    position: relative !important;
    left: 50% !important;
    right: 50% !important;
    margin-left: calc(-50vw + (100vw - 100%) / 2) !important;
    margin-right: calc(-50vw + (100vw - 100%) / 2) !important;
}

/* Lien principal - FORCE FLEX */
.promo-banner-wrapper .promo-banner-link,
.promo-banner-link {
    display: flex !important;
    text-decoration: none !important;
    color: inherit !important;
    position: relative !important;
    width: 100% !important;
    height: auto !important;
    max-height: 450px !important;
}

.promo-banner-link:hover {
    /* Pas d'effet sur le lien global */
}

.promo-banner-link:focus {
    outline: 3px solid var(--promo-banner-default-color) !important;
    outline-offset: 4px !important;
}

/* Force l'affichage des éléments */
.promo-banner-image,
.promo-banner-content {
    display: block !important;
    position: relative !important;
}

/* ===============================================
   MOBILE (≤ 639px) - VERTICAL
   =============================================== */

@media (max-width: 639px) {
    .promo-banner-link {
        flex-direction: column !important;
        align-items: stretch !important;
    }

    /* Ordre par défaut : Image en haut */
    .promo-banner-wrapper.mobile-text-bottom .promo-banner-image {
        order: 1 !important;
    }

    .promo-banner-wrapper.mobile-text-bottom .promo-banner-content {
        order: 2 !important;
    }

    /* Ordre alternatif : Texte en haut */
    .promo-banner-wrapper.mobile-text-top .promo-banner-content {
        order: 1 !important;
    }

    .promo-banner-wrapper.mobile-text-top .promo-banner-image {
        order: 2 !important;
    }

    .promo-banner-image {
        width: 100% !important;
        height: 250px !important;
        min-height: 250px !important;
        max-height: 250px !important;
        overflow: hidden !important;
        flex-shrink: 0 !important;
        position: relative !important;
    }

    .promo-banner-picture {
        width: 100% !important;
        height: 100% !important;
        display: block !important;
        position: relative !important;
    }

    .promo-banner-picture img {
        width: 100% !important;
        height: 100% !important;
        max-width: 100% !important;
        object-fit: cover !important;
        object-position: center !important;
        display: block !important;
    }

    .promo-banner-content {
        width: 100% !important;
        padding: 32px 24px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        min-height: 180px !important;
        flex-shrink: 0 !important;
        position: relative !important;
    }

    .promo-banner-info {
        width: 100% !important;
        text-align: center !important;
    }

    .promo-banner-title {
        font-family: "Heldane Display", serif !important;
        font-size: 28px !important;
        font-weight: 700 !important;
        line-height: 1.2 !important;
        color: var(--promo-banner-text-color) !important;
        margin: 0 0 12px 0 !important;
    }

    .promo-banner-subtitle {
        font-family: "Sofia Pro", sans-serif !important;
        font-size: 16px !important;
        font-weight: 400 !important;
        line-height: 1.4 !important;
        color: var(--promo-banner-text-color) !important;
        margin: 0 0 24px 0 !important;
    }

    /* Bouton mobile : icône flèche uniquement */
    .promo-banner-button-desktop {
        display: none !important;
    }

    .promo-banner-button-mobile {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 48px !important;
        height: 48px !important;
        background-color: var(--promo-banner-text-color) !important;
        border-radius: 50% !important;
        transition: transform 0.3s ease !important;
    }

    .promo-banner-button-mobile .promo-banner-arrow {
        width: 24px !important;
        height: 24px !important;
        color: var(--promo-banner-default-color) !important;
    }

    .promo-banner-link:hover .promo-banner-button-mobile {
        transform: translateX(5px) !important;
    }

    /* Classe pour lecteur d'écran */
    .sr-only {
        position: absolute !important;
        width: 1px !important;
        height: 1px !important;
        padding: 0 !important;
        margin: -1px !important;
        overflow: hidden !important;
        clip: rect(0, 0, 0, 0) !important;
        white-space: nowrap !important;
        border-width: 0 !important;
    }
}

/* ===============================================
   TABLET & DESKTOP (≥ 640px) - HORIZONTAL
   =============================================== */

@media (min-width: 640px) {
    .promo-banner-link {
        flex-direction: row !important;
        align-items: stretch !important;
        min-height: 450px !important;
        max-height: 450px !important;
    }

    /* Ordre par défaut : Texte à droite */
    .promo-banner-wrapper.desktop-text-right .promo-banner-image {
        order: 1 !important;
    }

    .promo-banner-wrapper.desktop-text-right .promo-banner-content {
        order: 2 !important;
    }

    /* Ordre alternatif : Texte à gauche */
    .promo-banner-wrapper.desktop-text-left .promo-banner-content {
        order: 1 !important;
    }

    .promo-banner-wrapper.desktop-text-left .promo-banner-image {
        order: 2 !important;
    }

    .promo-banner-image {
        flex: 0 0 60% !important;
        width: 60% !important;
        overflow: hidden !important;
        position: relative !important;
        height: 450px !important;
        min-height: 450px !important;
        max-height: 450px !important;
    }

    .promo-banner-picture {
        width: 100% !important;
        height: 100% !important;
        display: block !important;
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
    }

    .promo-banner-picture img {
        width: 100% !important;
        height: 100% !important;
        max-width: 100% !important;
        object-fit: cover !important;
        object-position: center !important;
        display: block !important;
    }

    .promo-banner-content {
        flex: 0 0 40% !important;
        width: 40% !important;
        padding: 40px 50px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        position: relative !important;
        margin: 0 !important;
        border-radius: 0 !important;
        clip-path: none !important;
    }

    .promo-banner-info {
        width: 100% !important;
        max-width: 100% !important;
        text-align: center !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
    }

    .promo-banner-title {
        font-family: "Heldane Display", serif !important;
        font-size: 36px !important;
        font-weight: 700 !important;
        line-height: 1.2 !important;
        color: var(--promo-banner-text-color) !important;
        margin: 0 0 12px 0 !important;
    }

    .promo-banner-subtitle {
        font-family: "Sofia Pro", sans-serif !important;
        font-size: 18px !important;
        font-weight: 400 !important;
        line-height: 1.4 !important;
        color: var(--promo-banner-text-color) !important;
        margin: 0 0 24px 0 !important;
    }

    /* Bouton desktop : texte visible */
    .promo-banner-button-mobile {
        display: none !important;
    }

    .promo-banner-button-desktop {
        display: inline-block !important;
        padding: 14px 32px !important;
        background-color: var(--promo-banner-text-color) !important;
        color: var(--promo-banner-default-color) !important;
        font-family: "Sofia Pro", sans-serif !important;
        font-size: 16px !important;
        font-weight: 600 !important;
        border-radius: 50px !important;
        transition: background-color 0.3s ease, color 0.3s ease !important;
        border: 2px solid var(--promo-banner-text-color) !important;
    }

    .promo-banner-link:hover .promo-banner-button-desktop {
        background-color: transparent !important;
        color: var(--promo-banner-text-color) !important;
        border-color: var(--promo-banner-text-color) !important;
    }
}

/* ===============================================
   DESKTOP LARGE (≥ 960px)
   =============================================== */

@media (min-width: 960px) {
    .promo-banner-link {
        min-height: 450px !important;
        max-height: 450px !important;
    }

    .promo-banner-image {
        height: 450px !important;
        min-height: 450px !important;
        max-height: 450px !important;
    }

    .promo-banner-content {
        padding: 50px 60px !important;
    }

    .promo-banner-title {
        font-size: 40px !important;
        margin-bottom: 12px !important;
    }

    .promo-banner-subtitle {
        font-size: 19px !important;
        margin-bottom: 24px !important;
    }

    .promo-banner-button-desktop {
        font-size: 17px !important;
        padding: 14px 36px !important;
    }
}

/* ===============================================
   DESKTOP XL (≥ 1280px)
   =============================================== */

@media (min-width: 1280px) {
    .promo-banner-link {
        min-height: 450px !important;
        max-height: 450px !important;
    }

    .promo-banner-image {
        height: 450px !important;
        min-height: 450px !important;
        max-height: 450px !important;
    }

    .promo-banner-content {
        padding: 60px 70px !important;
    }

    .promo-banner-title {
        font-size: 44px !important;
        margin-bottom: 14px !important;
    }

    .promo-banner-subtitle {
        font-size: 20px !important;
        margin-bottom: 28px !important;
    }

    .promo-banner-button-desktop {
        font-size: 18px !important;
        padding: 15px 38px !important;
    }
}

/* ===============================================
   ACCESSIBILITÉ
   =============================================== */

.promo-banner-link:focus-visible {
    outline: 3px solid var(--promo-banner-default-color) !important;
    outline-offset: 4px !important;
}

/* Animation au chargement (optionnel) */
@media (prefers-reduced-motion: no-preference) {
    .promo-banner-wrapper {
        animation: fadeInUp 0.6s ease-out;
    }

    @keyframes fadeInUp {
        from {
            opacity: 0;
            transform: translateY(30px);
        }
        to {
            opacity: 1;
            transform: translateY(0);
        }
    }
}