/* ==========================================================
   PAGE FORMATIONS
   ========================================================== */

.formations-home {
    background: #020202;
    color: #fff;

    width: 100%;
    max-width: none !important;

    margin: 0 !important;

    /* Remplace la marge inférieure de la mosaïque */
    padding: 0 0 70px !important;

    /* Empêche les marges des enfants de sortir du conteneur */
    display: flow-root;
}


/* ==========================================================
   INTRODUCTION
   ========================================================== */

.formations-home .formation-intro {
    width: calc(100% - 84px);
    max-width: 1480px !important;

    margin: 0 auto !important;
    padding: 55px 0 20px !important;

    background: #020202;
    color: #fff;
}

/*
 * Gutenberg utilise "is-layout-constrained".
 * On retire donc la contrainte sur les éléments de l'intro.
 */
.formations-home .formation-intro > * {
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.formations-home .formation-intro h1 {
    color: #fff;
    margin-top: 0;
}

.formations-home .formation-intro p {
    color: #d1d1d8;
}


/* ==========================================================
   MOSAÏQUE
   ========================================================== */

.formations-home .formation-mosaic {
    display: grid !important;

    grid-template-columns: 1.15fr .85fr;
    grid-template-rows: 300px 300px;

    gap: 14px;

    width: calc(100% - 84px);
    max-width: 1480px !important;

    /*
     * Plus de margin-bottom:70px.
     * L'espace inférieur est maintenant créé
     * par le padding de .formations-home.
     */
    margin: 25px auto 0 !important;
    padding: 0 !important;

    background: #020202;
}


/* ==========================================================
   CARTES
   ========================================================== */

.formations-home .formation-card {
    position: relative;
    overflow: hidden;

    min-height: 0;

    margin: 0 !important;
    padding: 0 !important;

    border: 1px solid #222228;
    background: #111;
}


/* Grande carte de gauche */

.formations-home .formation-card-masterclass {
    grid-row: 1 / 3;
}


/* ==========================================================
   IMAGES
   ========================================================== */

.formations-home .formation-card > figure {
    position: absolute;
    inset: 0;

    width: 100%;
    height: 100%;

    margin: 0 !important;
    max-width: none !important;
}

.formations-home .formation-card > figure img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;

    transition: transform .4s ease;
}


/* Overlay noir */

.formations-home .formation-card::after {
    content: "";

    position: absolute;
    inset: 0;

    background: linear-gradient(
        180deg,
        transparent 25%,
        rgba(0, 0, 0, .92) 100%
    );

    pointer-events: none;
}


/* Zoom au survol */

.formations-home .formation-card:hover > figure img {
    transform: scale(1.03);
}


/* ==========================================================
   CONTENU DES CARTES
   ========================================================== */

.formations-home .formation-card-copy {
    position: absolute;
    z-index: 2;

    left: 28px;
    right: 28px;
    bottom: 26px;

    margin: 0 !important;
    padding: 0 !important;

    text-align: left;
}

/*
 * Important :
 * retire le centrage automatique causé par
 * is-layout-constrained de Gutenberg.
 */
.formations-home .formation-card-copy > * {
    max-width: none !important;

    margin-left: 0 !important;
    margin-right: 0 !important;
}


/* Petit titre rose */

.formations-home .formation-card-copy h5 {
    margin-top: 0;
    margin-bottom: 6px;

    color: #ff2b92;

    font-size: 12px;
    font-weight: 800;
    letter-spacing: .22em;
    text-transform: uppercase;
}


/* Titres */

.formations-home .formation-card-copy h2 {
    margin-top: 0;
    margin-bottom: 0;

    color: #fff;

    font-size: 32px;
    font-weight: 300;
    line-height: 1.05;
}

.formations-home
.formation-card-masterclass
.formation-card-copy h2 {
    font-size: 40px;
}


/* Paragraphes */

.formations-home .formation-card-copy p {
    max-width: 500px !important;

    margin: 8px 0 18px !important;

    color: #c6c6ce;

    text-align: left;
}


/* ==========================================================
   BOUTONS
   ========================================================== */

.formations-home .formation-card-copy .wp-block-buttons {
    justify-content: flex-start;

    margin-left: 0 !important;
    margin-right: 0 !important;
}

.formations-home
.formation-card-copy
.wp-block-button__link {
    padding: 13px 20px;

    border: 1px solid rgba(255,255,255,.35);
    border-radius: 3px;

    background: rgba(0,0,0,.25);
    color: #fff;

    font-size: 12px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;

    transition: .25s ease;
}

.formations-home
.formation-card-copy
.wp-block-button__link:hover {
    border-color: #ff2b92;

    box-shadow: 0 0 18px rgba(255,43,146,.35);

    transform: translateY(-2px);
}

.formations-home .formation-highlight {
    color: #ff2b92 !important;
}

/* ==========================================================
   APPROCHE LAKADEMIE
   ========================================================== */

.formations-home .formation-approach {
    width: 100%;
    max-width: none !important;

    margin: 0 !important;
    margin-top: 70px !important;
    padding: 80px 0 !important;

    border-top: 1px solid #242429;
    border-bottom: 1px solid #242429;

    background:
        radial-gradient(
            circle at 10% 50%,
            rgba(255, 43, 146, .10),
            transparent 25%
        ),
        #070709;
}

.formations-home .formation-approach-inner {
    display: grid !important;
    grid-template-columns: .8fr 1.2fr;
    gap: 55px;

    width: calc(100% - 84px);
    max-width: 1480px !important;

    margin: 0 auto !important;
    padding: 0 !important;
}

.formations-home .formation-approach-inner > *,
.formations-home .formation-approach-title > *,
.formations-home .formation-approach-points > *,
.formations-home .formation-point > * {
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* Petit titre rose */

.formations-home .formation-approach-title h5 {
    margin: 0 0 14px;

    color: #ff2b92;
    
    max-width: 520px !important;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .26em;
    text-transform: uppercase;
}


/* Grand titre */

.formations-home .formation-approach-title h2 {
    margin: 0;

    color: #fff;

    font-size: 52px;
    font-weight: 200;
    line-height: 1.05;
}


/* Grille 2 × 2 */

.formations-home .formation-approach-points {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 28px;

    margin: 0 !important;
    padding: 0 !important;
}


/* Chaque élément */

.formations-home .formation-point {
    margin: 0 !important;
    padding: 18px 0 0 !important;

    border-top: 1px solid #333339;
}

.formations-home .formation-point h3 {
    margin: 0 0 6px;

    color: #fff;

    font-size: 18px;
    font-weight: 600;
}

.formations-home .formation-point p {
    margin: 0 !important;

    color: #aaaab3;

    line-height: 1.55;
}

/* ==========================================================
   CALENDRIER DES FORMATIONS
   ========================================================== */

.formations-home .formation-calendar {
    width: calc(100% - 84px);
    max-width: 1240px !important;

    margin: 70px auto 70px !important;
    padding: 0 !important;
}


/* Carte */

.formations-home .formation-calendar-card {
    display: grid !important;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: 40px;

    margin: 0 !important;
    padding: 38px !important;
    
    width: 100%;
    max-width: none !important;

    margin-left: auto !important;
    margin-right: auto !important;

    border: 1px solid rgba(255, 43, 146, .6);

    background:
        linear-gradient(
            120deg,
            #0e0e12,
            #08080b
        );

    box-shadow:
        inset 0 0 50px rgba(255, 43, 146, .04);
}


/* Retirer les contraintes Gutenberg */

.formations-home .formation-calendar-card > *,
.formations-home .formation-calendar-copy > * {
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}


/* Petit titre rose */

.formations-home .formation-calendar-copy h5 {
    margin: 0 0 10px;

    color: #ff2b92;

    font-size: 12px;
    font-weight: 800;
    letter-spacing: .26em;
    text-transform: uppercase;
}


/* Titre principal */

.formations-home .formation-calendar-copy h2 {
    margin: 0;

    color: #fff;

    font-size: 42px;
    font-weight: 300;
    line-height: 1.05;
}


/* Description */

.formations-home .formation-calendar-copy p {
    margin: 8px 0 0 !important;

    color: #aaaab3;
    line-height: 1.55;
}


/* Bouton */

.formations-home
.formation-calendar-card
.wp-block-button__link {
    padding: 14px 22px;

    border: 1px solid #ff2b92;
    border-radius: 3px;

    background: #ff2b92;
    color: #090909;

    font-size: 12px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;

    box-shadow: 0 0 18px rgba(255,43,146,.35);

    transition: .25s ease;
}

.formations-home
.formation-calendar-card
.wp-block-button__link:hover {
    background: #ff52a8;
    border-color: #ff52a8;

    box-shadow: 0 0 25px rgba(255,43,146,.55);

    transform: translateY(-2px);
}

.formations-home .formation-point .wp-block-buttons {
    margin-top: 14px !important;
    justify-content: flex-start;
}

.formations-home .formation-point .wp-block-button__link {
    padding: 10px 16px;

    border: 1px solid rgba(255,255,255,.35);
    border-radius: 3px;

    background: transparent;
    color: #fff;

    font-size: 11px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;

    transition: .25s ease;
}

.formations-home .formation-point .wp-block-button__link:hover {
    border-color: #ff2b92;
    color: #fff;

    box-shadow: 0 0 16px rgba(255,43,146,.30);

    transform: translateY(-1px);
}

/* ==========================================================
   TABLETTE
   Astra passe en mode tablette à 921px
   ========================================================== */

@media (max-width: 921px) {

    /* ---------- INTRO ---------- */

    .formations-home .formation-intro {
        width: calc(100% - 44px);
        padding-top: 45px !important;
        padding-bottom: 18px !important;
    }

    .formations-home .formation-intro h1 {
        font-size: 58px;
        line-height: 1.08;
    }

    .formations-home .formation-intro p {
        font-size: 15px;
        line-height: 1.6;
    }


    /* ---------- MOSAÏQUE ---------- */

    .formations-home .formation-mosaic {
        width: calc(100% - 44px);

        grid-template-columns: 1fr 1fr;
        grid-template-rows: 420px 300px;

        gap: 14px;
    }

    /* Masterclass : grande carte du haut */
    .formations-home .formation-card-masterclass {
        grid-column: 1 / 3;
        grid-row: 1;
    }

    /* Virtuel et présentiel occupent la deuxième ligne */
    .formations-home .formation-card-virtual,
    .formations-home .formation-card-presentiel {
        grid-column: auto;
        grid-row: 2;
    }

    .formations-home .formation-card-copy {
        left: 24px;
        right: 24px;
        bottom: 22px;
    }

    .formations-home .formation-card-copy h2,
    .formations-home
    .formation-card-masterclass
    .formation-card-copy h2 {
        font-size: 30px;
    }

    .formations-home .formation-card-copy p {
        font-size: 14px;
        line-height: 1.45;
    }


    /* ---------- CADRAGE DES IMAGES ---------- */

    .formations-home .formation-card-masterclass img {
        object-position: center center;
    }

    .formations-home .formation-card-virtual img {
        object-position: center center;
    }

    .formations-home .formation-card-presentiel img {
        object-position: center center;
    }


    /* ---------- RESSOURCES ---------- */

    .formations-home .formation-approach {
        margin-top: 60px !important;
        padding: 60px 0 !important;
    }

    .formations-home .formation-approach-inner {
        grid-template-columns: 1fr;
        gap: 40px;

        width: calc(100% - 44px);
    }

    .formations-home .formation-approach-title h2 {
        max-width: 620px !important;
        font-size: 48px;
    }

    .formations-home .formation-approach-points {
        grid-template-columns: 1fr 1fr;
        gap: 28px;
    }


    /* ---------- CALENDRIER ---------- */

    .formations-home .formation-calendar {
        width: calc(100% - 44px);
        max-width: 1100px !important;

        margin-top: 60px !important;
        margin-bottom: 60px !important;
    }

    .formations-home .formation-calendar-card {
        grid-template-columns: 1fr;
        gap: 25px;

        padding: 32px !important;
    }

    .formations-home .formation-calendar-card .wp-block-buttons {
        justify-content: flex-start;
    }

    .formations-home .formation-calendar-copy h2 {
        font-size: 38px;
    }
}


/* ==========================================================
   MOBILE
   ========================================================== */

@media (max-width: 600px) {

    /* ---------- GÉNÉRAL ---------- */

    .formations-home {
        overflow-x: clip;
    }


    /* ---------- INTRO ---------- */

    .formations-home .formation-intro {
        width: calc(100% - 32px);

        padding-top: 38px !important;
        padding-bottom: 15px !important;
    }

    .formations-home .formation-intro h1 {
        font-size: 44px;
        line-height: 1.08;
    }

    .formations-home .formation-intro p {
        font-size: 14px;
    }


    /* ---------- MOSAÏQUE ---------- */

    .formations-home .formation-mosaic {
        width: calc(100% - 32px);

        display: grid !important;

        grid-template-columns: 1fr;
        grid-template-rows: none;

        gap: 14px;

        margin-top: 25px !important;
    }

    .formations-home .formation-card-masterclass,
    .formations-home .formation-card-virtual,
    .formations-home .formation-card-presentiel {
        grid-column: auto;
        grid-row: auto;

        height: 360px;
    }

    /*
     * Masterclass peut rester légèrement plus grande
     * pour conserver la hiérarchie desktop.
     */
    .formations-home .formation-card-masterclass {
        height: 430px;
    }

    .formations-home .formation-card-copy {
        left: 20px;
        right: 20px;
        bottom: 20px;
    }

    .formations-home .formation-card-copy h5 {
        font-size: 10px;
    }

    .formations-home .formation-card-copy h2,
    .formations-home
    .formation-card-masterclass
    .formation-card-copy h2 {
        font-size: 29px;
    }

    .formations-home .formation-card-copy p {
        font-size: 13px;
        margin: 7px 0 14px !important;
    }

    .formations-home .formation-card-copy .wp-block-button__link {
        padding: 11px 15px;

        font-size: 10px;
        letter-spacing: .1em;
    }


    /* ---------- IMAGES MOBILE ---------- */

    .formations-home .formation-card > figure img {
        object-fit: cover;
    }

    /*
     * À ajuster ensuite selon le cadrage exact
     * de tes nouvelles images.
     */
    .formations-home .formation-card-masterclass img {
        object-position: center center;
    }

    .formations-home .formation-card-virtual img {
        object-position: center center;
    }

    .formations-home .formation-card-presentiel img {
        object-position: center center;
    }


    /* ---------- RESSOURCES ---------- */

    .formations-home .formation-approach {
        margin-top: 50px !important;
        padding: 50px 0 !important;
    }

    .formations-home .formation-approach-inner {
        width: calc(100% - 32px);
        gap: 35px;
    }

    .formations-home .formation-approach-title h2 {
        font-size: 40px;
        line-height: 1.07;
    }

    .formations-home .formation-approach-points {
        grid-template-columns: 1fr;
        gap: 22px;
    }

    .formations-home .formation-point {
        padding-top: 16px !important;
    }

    .formations-home .formation-point .wp-block-buttons {
        margin-top: 12px !important;
    }


    /* ---------- CALENDRIER ---------- */

    .formations-home .formation-calendar {
        width: calc(100% - 32px);

        margin-top: 50px !important;
        margin-bottom: 50px !important;
    }

    .formations-home .formation-calendar-card {
        padding: 25px !important;
        gap: 22px;
    }

    .formations-home .formation-calendar-copy h2 {
        font-size: 32px;
    }

    .formations-home .formation-calendar-copy p {
        font-size: 14px;
    }

    .formations-home
    .formation-calendar-card
    .wp-block-button__link {
        padding: 13px 17px;
        font-size: 10px;
    }
}

/* ==========================================================
   ÉVITER LE FLASH BLANC PENDANT LE PASSAGE EN HEADER STICKY
   ========================================================== */

.page-id-7525 #page,
.page-id-7525 #masthead,
.page-id-7525 #content,
.page-id-7525 .site-content {
    background-color: #020202 !important;
}