/* =====================================================================
   CARTES — un seul mécanisme générique piloté par le champ ACF
   "Cartes plein cadre avec survol" (activer_survol_reveal), plus de
   variante figée par identifiant_bloc. Par défaut (champ désactivé) :
   carte classique, image en haut + contenu toujours visible en dessous.
   Avec le champ activé (.carte--reveal) : image plein cadre, dégradé bas
   (couleur pilotée par carte_couleur_degrade -> --carte-gradient-color
   injecté en style inline, cf. builder/cartes.php) et texte révélé au
   survol -- calqué sur lovable/src/components/home/ProfileCards.tsx.
   ===================================================================== */

.cartes_wrapper,
.wrapper_slider {

    .carte {
        border-radius: var(--border-radius-lg);
        border: 6px solid var(--color-primary-tint);
        background: var(--white);
        margin: 0 auto;
        overflow: hidden;
        width: 100%;

        &:not(.carte--reveal) {
            height: stretch;

            img {
                max-height: 320px;
            }

            .carte_content {
                height: fit-content;

                h2,
                h3,
                h4,
                h5,
                h6 {
                    margin: 0;
                    font-weight: var(--medium);
                }
            }
        }

        img {
            width: 100%;
            object-fit: cover;
            border-radius: calc(var(--border-radius-lg) - 6px) calc(var(--border-radius-lg) - 6px) 0 0;
        }

        .carte_content {
            padding: 32px;
            display: flex;
            flex-direction: column;
            gap: 20px;
            height: fit-content;

            p {
                margin: 0;
                opacity: 0.5;
            }

            /* Contenu riche en mode carte classique (listes à puces, etc.) --
               cf. lovable/src/components/devenir-franchise/DevenirFranchiseCards.tsx. */
            ul {
                list-style: none;
                margin: 12px 0 0;
                padding: 0;
                display: flex;
                flex-direction: column;
                gap: 12px;
            }

            ul li {
                position: relative;
                padding-left: 20px;
                color: var(--color-secondary);
                opacity: .7;

                &::before {
                    content: '';
                    position: absolute;
                    left: 0;
                    top: 10px;
                    width: 6px;
                    height: 6px;
                    border-radius: 50%;
                    background: var(--color-primary);
                }
            }
        }

        .carte_cta {
            width: fit-content;
        }
    }
}

.cartes__wrapper {
    .carte {
        max-width: 360px;
    }
}

/* -------------------- Variante "plein cadre + survol" -------------------- */
.carte--reveal {
    position: relative;
    display: flex;
    align-items: flex-end;
    border: 0;
    border-radius: var(--border-radius);
    height: 480px;
    overflow: hidden;
    color: var(--white);

    img {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        max-height: none;
        border-radius: 0;
        object-fit: cover;
        transition: var(--transition-slow);
    }

    .carte_content {
        position: relative;
        z-index: 2;
        width: 100%;
        height: 100%;
        display: flex;
        flex-direction: column;
        justify-content: flex-end;
        padding: 32px;
        background: linear-gradient(to bottom, transparent 30%, var(--carte-gradient-color, var(--color-secondary)) 85%);

        h3 {
            color: var(--white);
            margin: 0;
            font-size: 24px;
            line-height: 28px;
            font-weight: var(--regular);
        }
    }

    .carte_content__reveal {
        display: grid;
        grid-template-rows: 0fr;
        transition: var(--transition-slow);
    }

    .carte_content__reveal_inner {
        overflow: hidden;

        p {
            color: rgba(255, 255, 255, .9);
            font-size: 14px;
            line-height: 20px;
            margin: 0;
            padding-top: 16px;
            opacity: 0;
            transition: var(--transition-slow);
        }
    }

    .carte_cta_wrap {
        padding-top: 20px;
        opacity: 0;
        transition: var(--transition-slow);
        margin-bottom: 20px;
    }

    /* .carte_cta reprend .bouton--alt tel quel (border-apricot + text-apricot,
       hover bg-apricot + text-white) -- exactement lovable/ProfileCards.tsx
       ("border-apricot text-apricot hover:bg-apricot hover:text-white"),
       aucune surcharge de couleur nécessaire ici. */
    .carte_cta {
        width: fit-content;
    }

    &:hover {
        img {
            transform: scale(1.05);
        }

        .carte_content {
            background: linear-gradient(to bottom, transparent 0%, var(--carte-gradient-color, var(--color-secondary)) 100%);
        }

        .carte_content__reveal {
            grid-template-rows: 1fr;
        }

        .carte_content__reveal_inner p,
        .carte_cta_wrap {
            opacity: 1;
        }
    }
}

.cartes_wrapper--reveal {
    display: grid;
    gap: 24px;
    grid-template-columns: repeat(2, 1fr);

    @media (min-width: 1200px) {
        grid-template-columns: repeat(4, 1fr);
    }
}
/* ---- Page "L'accompagnement" (/je-minstalle/laccompagnement/) : hauteur fixe
   pour les 3 photos du bloc "cartes" (formation initiale / parrainage /
   formation continue), afin d'eviter des hauteurs differentes selon le
   ratio d'origine de chaque image. ---- */
#cartes-accompagnement .carte img {
    height: 220px;
    max-height: 220px;
    object-fit: cover;
}
