/**
 * Fiche formation — feuille de style du composant .lyc-fp-*
 *
 * Chargée uniquement sur les pages single formation (voir condorcet_fp_assets()).
 * Charte : bleu nuit, rouge bordeaux, rose très clair, blanc. Cartes à bordures
 * fines, rayons modérés, aucune ombre, aucune illustration en dehors du hero.
 *
 * Le hero est la seule zone travaillée visuellement : l'illustration y est
 * placée à fleur du bord droit, sa réserve bleu nuit se fondant dans le fond
 * de la bannière. Toutes les sections suivantes sont sur fond blanc, à
 * l'exception de la carte « Qui peut préparer ce diplôme ? » (rose très clair)
 * et du bloc de candidature (rouge bordeaux).
 */

.lyc-fp-page{
    --fp-navy:      #0E1330;
    --fp-navy-2:    #16163C;

    /*
     * Hero : réglages propres à chaque illustration. Une illustration détourée
     * laisse voir --fp-navy ; une illustration à fond bleu nuit intégré exige
     * que --fp-hero-bg reproduise sa teinte exacte, sinon une couture verticale
     * apparaît là où l'image commence. --fp-hero-pos cale le rognage horizontal
     * du remplissage en hauteur selon la composition de chaque dessin.
     */
    --fp-hero-bg:   var(--fp-navy);
    --fp-hero-pos:  22% center;
    --fp-red:       #C72C48;
    --fp-red-dark:  #A81F38;
    --fp-rose:      #F2748B;   /* surtitre + pictos du hero, sur bleu nuit */
    --fp-pink:      #FFF4F6;
    --fp-pink-2:    #FBE3E8;
    --fp-border:    #E8DCE0;
    --fp-border-2:  #F0E5E8;
    --fp-text:      #464657;
    --fp-muted:     #6B6B7B;
    --fp-radius:    12px;
    --fp-radius-lg: 16px;
    --fp-wrap:      1160px;
    --fp-gutter:    clamp(20px, 5vw, 40px);

    /*
     * Débord négatif permettant à un élément placé dans .lyc-fp-wrap de
     * rejoindre exactement le bord de la fenêtre : la gouttière du conteneur,
     * plus la marge de centrage quand la fenêtre dépasse --fp-wrap. Exprimé
     * en vw et non en %, car un pourcentage sur un élément de grille se
     * résoudrait sur sa zone de grille et non sur le conteneur.
     */
    --fp-bleed:     calc(-1 * var(--fp-gutter) - max(0px, (100vw - var(--fp-wrap)) / 2));

    /*
     * Le header du thème n'est pas fixe : nisarg-child/style.css ramène
     * .navbar-fixed-top à position:relative, et se charge après le style du
     * parent. Il défile donc avec la page, et la navigation interne peut se
     * coller au bord haut de la fenêtre (top: 0).
     *
     * Les ancres ne doivent dégager que cette barre : 58px en desktop, jusqu'à
     * 68px en tablette (barre de défilement horizontale du sommaire), plus une
     * marge de confort.
     */
    --fp-anchor:    84px;

    background-color: #FFF;
    color: var(--fp-text);
    font-family: 'Lato', sans-serif;
    font-size: 16.5px;
    line-height: 1.6;
    /* « clip » et non « hidden » : hidden ferait de .lyc-fp-page un conteneur
       de défilement, ce qui neutraliserait le position:sticky de la nav. */
    overflow-x: clip;
}

.lyc-fp-wrap{
    max-width: var(--fp-wrap);
    margin: 0 auto;
    padding: 0 var(--fp-gutter);
}

/* --- Typographie commune ------------------------------------------------ */
.lyc-fp-h2{
    color: var(--fp-navy);
    font-family: 'Lato', sans-serif;
    font-size: clamp(23px, 2.7vw, 29px);
    font-weight: 800;
    line-height: 1.2;
    text-align: center;
    margin: 0 0 clamp(28px, 4vw, 44px);
}
/* Titre de section aligné à gauche, quand il vit à l'intérieur d'une carte. */
.lyc-fp-h2--inline{
    text-align: left;
    font-size: clamp(20px, 2.2vw, 24px);
    margin: 0 0 14px;
}

.lyc-fp-h3{
    color: var(--fp-navy);
    font-family: 'Lato', sans-serif;
    font-size: 17.5px;
    font-weight: 800;
    line-height: 1.3;
    margin: 0 0 14px;
}

.lyc-fp-p{ margin: 0 0 18px; max-width: 62ch; font-size: 15.5px; }
.lyc-fp-p:last-child{ margin-bottom: 0; }

.lyc-fp-ico{ width: 20px; height: 20px; flex: none; }

.lyc-fp-note{
    color: var(--fp-muted);
    font-size: 13px;
    font-style: italic;
    margin: 14px 0 0;
}

/* --- Sections ----------------------------------------------------------- */
.lyc-fp-section{
    padding: clamp(44px, 6vw, 72px) 0;
    scroll-margin-top: var(--fp-anchor);
}

/* --- Boutons ------------------------------------------------------------ */
.lyc-fp-btn{
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 13px 24px;
    border: 1px solid transparent;
    border-radius: 999px;
    font-size: 15px;
    font-weight: 800;
    line-height: 1.2;
    text-decoration: none;
    transition: background-color .18s ease, color .18s ease, border-color .18s ease;
}
.lyc-fp-btn .lyc-fp-ico{ width: 17px; height: 17px; }

.lyc-fp-btn--primary{ background-color: var(--fp-red); color: #FFF; }
.lyc-fp-btn--primary:hover,
.lyc-fp-btn--primary:focus{ background-color: var(--fp-red-dark); color: #FFF; }

.lyc-fp-btn--ghost{ border-color: rgba(255, 255, 255, .45); color: #FFF; }
.lyc-fp-btn--ghost:hover,
.lyc-fp-btn--ghost:focus{
    border-color: #FFF;
    background-color: rgba(255, 255, 255, .1);
    color: #FFF;
}

.lyc-fp-btn--light{ background-color: #FFF; color: var(--fp-red-dark); }
.lyc-fp-btn--light:hover,
.lyc-fp-btn--light:focus{ background-color: var(--fp-pink-2); color: var(--fp-red-dark); }

/* --- Hero --------------------------------------------------------------- */
.lyc-fp-hero{
    background-color: var(--fp-hero-bg);
    color: #FFF;
    /* Aucun padding haut : l'illustration affleure le bord supérieur, comme
       sa réserve rose l'exige. Le padding bas ménage un filet bleu nuit. */
    padding: 0 0 clamp(20px, 3vw, 34px);
    overflow-x: clip;
}
.lyc-fp-hero__grid{
    display: grid;
    /* La colonne de texte est légèrement la plus large : les trois repères
       rapides doivent tenir sur une seule ligne en desktop. */
    grid-template-columns: minmax(0, 1.06fr) minmax(0, 1fr);
    gap: clamp(24px, 4vw, 44px);
    align-items: center;
}
.lyc-fp-hero__content{ padding: clamp(36px, 5vw, 64px) 0 0; }

.lyc-fp-overline{
    color: var(--fp-rose);
    font-size: 13.5px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
    margin: 0 0 14px;
}

.lyc-fp-hero__title{
    color: #FFF;
    font-family: 'Lato', sans-serif;
    font-size: clamp(30px, 4.4vw, 44px);
    font-weight: 900;
    line-height: 1.1;
    margin: 0 0 18px;
}
.lyc-fp-hero__text{
    color: rgba(255, 255, 255, .88);
    font-size: 16px;
    line-height: 1.65;
    margin: 0 0 28px;
    max-width: 52ch;
}

.lyc-fp-hero__actions{
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-bottom: 30px;
}

/* Trois repères rapides, en cartes à bordure claire. */
.lyc-fp-hero__facts{
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
}
.lyc-fp-hero__facts li{
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 15px;
    border: 1px solid rgba(255, 255, 255, .28);
    border-radius: var(--fp-radius);
    background-color: rgba(255, 255, 255, .04);
}
.lyc-fp-hero__facts .lyc-fp-ico{ color: var(--fp-rose); width: 18px; height: 18px; }
.lyc-fp-fact__label{
    display: block;
    color: #FFF;
    font-size: 14.5px;
    font-weight: 800;
    line-height: 1.25;
    white-space: nowrap;
}
.lyc-fp-fact__sub{
    display: block;
    color: rgba(255, 255, 255, .72);
    font-size: 12px;
    line-height: 1.3;
    white-space: nowrap;
}

/* L'illustration déborde du conteneur centré jusqu'au bord droit de la
   fenêtre, pour que sa réserve rose atteigne l'angle du hero. */
.lyc-fp-hero__visual{
    align-self: start;
    min-width: 0;
    margin-right: var(--fp-bleed);
}
.lyc-fp-hero__visual img{
    display: block;
    width: 100%;
    height: auto;
    /* Ratio natif conservé : ni recadrage, ni déformation. */
    object-fit: contain;
}

/*
 * Desktop : l'illustration occupe toute la hauteur du hero, bord haut au bord
 * bas. L'illustration étant nettement plus large que haute (1436x858, ratio
 * 1,674) alors que la colonne de droite est plus haute que large, remplir la
 * hauteur impose un rognage horizontal — assuré par object-fit: cover, qui
 * préserve le ratio (aucune déformation).
 *
 * object-position à 22 % cale le rognage gauche sur la marge transparente de
 * l'illustration (71px, mesurés) : l'étiquette « FACTURES » et l'étudiant,
 * porteurs du sens, restent entiers jusqu'à 1265px de large. Le rognage est
 * donc pris côté droit, sur la plante et les pictogrammes € et document, qui
 * sont décoratifs.
 *
 * Sous 901px la mise en page s'empile : l'illustration reprend sa hauteur
 * automatique et son ratio intégral, sans aucun rognage.
 */
@media (min-width: 1201px){
    /* Le padding bas passe sur la colonne de texte, pour que la rangée de
       grille — et donc l'image — atteigne réellement le bas de la section. */
    .lyc-fp-hero{ padding-bottom: 0; }
    .lyc-fp-hero__content{ padding-bottom: clamp(36px, 5vw, 64px); }

    .lyc-fp-hero__visual{ align-self: stretch; }
    .lyc-fp-hero__visual img{
        height: 100%;
        object-fit: cover;
        object-position: var(--fp-hero-pos);
    }
}

/*
 * Le hero s'empile dès 1200px, et non 900px comme le reste de la page : en
 * deçà, la colonne de droite devient trop étroite au regard de la hauteur du
 * texte, et remplir la hauteur y coûterait plus de la moitié de la largeur de
 * l'illustration (52 % mesurés à 1024px, l'étudiant disparaissait du cadre).
 * Empilée, l'illustration occupe toute la largeur, sans aucun rognage.
 */
@media (max-width: 1200px){
    /* Le texte passe avant l'image : l'ordre du DOM est déjà le bon. */
    .lyc-fp-hero{ padding-top: clamp(30px, 5vw, 48px); }
    .lyc-fp-hero__grid{ grid-template-columns: 1fr; }
    .lyc-fp-hero__content{ padding-top: 0; }
    /* L'illustration s'étend d'un bord à l'autre de la fenêtre. */
    .lyc-fp-hero__visual{ margin-inline: var(--fp-bleed); }
}

/* --- Navigation interne ------------------------------------------------- */
.lyc-fp-nav{
    position: sticky;
    top: 0;      /* collée au bord haut : le header du thème n'est pas fixe */
    z-index: 20;
    background-color: rgba(255, 255, 255, .96);
    backdrop-filter: saturate(160%) blur(6px);
    border-bottom: 1px solid var(--fp-border);
}
.lyc-fp-nav ul{
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    justify-content: center;
    gap: 4px;
    overflow-x: auto;
    scrollbar-width: thin;
    -webkit-overflow-scrolling: touch;
}
.lyc-fp-nav li{ flex: none; }
.lyc-fp-nav a{
    display: block;
    padding: 16px 18px;
    color: var(--fp-navy-2);
    font-size: 14.5px;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
    border-bottom: 2px solid transparent;
    transition: color .18s ease, border-color .18s ease;
}
.lyc-fp-nav a:hover,
.lyc-fp-nav a:focus{ color: var(--fp-red); }
.lyc-fp-nav a.is-current{ color: var(--fp-red); border-bottom-color: var(--fp-red); }

/* --- Cartes (L'essentiel + Les atouts, même composant) ------------------ */
.lyc-fp-cards{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: 20px;
}
.lyc-fp-card{
    display: flex;
    flex-direction: column;
    background-color: #FFF;
    border: 1px solid var(--fp-border);
    border-radius: var(--fp-radius);
    padding: 22px 20px 24px;
}
.lyc-fp-card__ico{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    margin-bottom: 16px;
    border: 1px solid var(--fp-border);
    border-radius: 10px;
    color: var(--fp-red);
}
.lyc-fp-card__ico .lyc-fp-ico{ width: 19px; height: 19px; }
.lyc-fp-card__title{
    color: var(--fp-navy);
    font-family: 'Lato', sans-serif;
    font-size: 15.5px;
    font-weight: 800;
    line-height: 1.3;
    margin: 0 0 9px;
}
.lyc-fp-card__txt{
    color: var(--fp-muted);
    font-size: 14px;
    line-height: 1.55;
    margin: 0;
}

/* --- Deux colonnes : le métier & la formation --------------------------- */
.lyc-fp-duo{
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    gap: clamp(30px, 5vw, 56px);
    align-items: start;
}

/* Listes à puces rondes rouges. */
.lyc-fp-list{
    list-style: none;
    margin: 0;
    padding: 0;
}
.lyc-fp-list li{
    position: relative;
    padding-left: 18px;
    margin-bottom: 10px;
    font-size: 15.5px;
    line-height: 1.5;
}
.lyc-fp-list li:last-child{ margin-bottom: 0; }
.lyc-fp-list li::before{
    content: '';
    position: absolute;
    left: 0;
    top: .6em;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background-color: var(--fp-red);
}

/* Liste à l'intérieur d'une carte : échelle du texte de carte, et l'espace
   restant est absorbé en bas pour que les cartes gardent la même hauteur. */
.lyc-fp-list--card{ margin-top: 2px; }
.lyc-fp-list--card li{
    font-size: 14px;
    line-height: 1.5;
    margin-bottom: 8px;
    padding-left: 15px;
}
.lyc-fp-list--card li::before{ width: 5px; height: 5px; top: .58em; }

/* Compétences clés : petits blocs sobres, picto centré au-dessus du libellé. */
.lyc-fp-skills{
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 14px;
}
.lyc-fp-skills li{
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    padding: 18px 12px;
    text-align: center;
    border: 1px solid var(--fp-border);
    border-radius: var(--fp-radius);
}
.lyc-fp-skills .lyc-fp-ico{ color: var(--fp-red); width: 22px; height: 22px; }
.lyc-fp-skills span{
    color: var(--fp-navy);
    font-size: 13.5px;
    font-weight: 700;
    line-height: 1.35;
}

/* --- Programme et horaires ---------------------------------------------- */
.lyc-fp-tablewrap{
    border: 1px solid var(--fp-border);
    border-radius: var(--fp-radius);
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.lyc-fp-tablewrap:focus-visible{ outline: 2px solid var(--fp-red); outline-offset: 2px; }

.lyc-fp-table{
    width: 100%;
    min-width: 720px;   /* en deçà, le conteneur défile horizontalement */
    border-collapse: collapse;
    font-size: 14.5px;
}

/* Légende accessible, non affichée : le H2 de la section fait office de titre. */
.lyc-fp-caption{
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
}

.lyc-fp-table thead th{
    background-color: var(--fp-navy);
    color: #FFF;
    font-size: 14px;
    font-weight: 700;
    text-align: left;
    padding: 13px 14px;
    line-height: 1.3;
}
.lyc-fp-table thead th + th{ border-left: 1px solid rgba(255, 255, 255, .18); }

.lyc-fp-table tbody th{
    color: var(--fp-navy);
    font-weight: 600;
    text-align: left;
}
.lyc-fp-table tbody th,
.lyc-fp-table tbody td{ padding: 11px 14px; line-height: 1.45; }
.lyc-fp-table tbody tr + tr th,
.lyc-fp-table tbody tr + tr td{ border-top: 1px solid var(--fp-border-2); }
.lyc-fp-table tbody th + td,
.lyc-fp-table tbody td + td{ border-left: 1px solid var(--fp-border-2); }

.lyc-fp-table tfoot th,
.lyc-fp-table tfoot td{
    background-color: var(--fp-pink);
    color: var(--fp-navy);
    font-weight: 800;
    text-align: left;
    padding: 12px 14px;
    border-top: 1px solid var(--fp-border);
}
.lyc-fp-table tfoot th + td,
.lyc-fp-table tfoot td + td{ border-left: 1px solid var(--fp-border-2); }

/* Colonnes chiffrées centrées (spécificité > .lyc-fp-table thead th). */
.lyc-fp-table .lyc-fp-num{ text-align: center; white-space: nowrap; }

/* Indicateur de défilement, révélé par le script quand il y a matière. */
.lyc-fp-hint{
    display: none;
    color: var(--fp-muted);
    font-size: 13px;
    margin: 10px 0 0;
}
.lyc-fp-page.is-scrollable .lyc-fp-hint{ display: block; }

/* --- Qui peut préparer ce diplôme ? (carte rose très clair) ------------- */
.lyc-fp-profil{
    display: grid;
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
    gap: clamp(24px, 4vw, 44px);
    align-items: start;
    background-color: var(--fp-pink);
    border: 1px solid var(--fp-pink-2);
    border-radius: var(--fp-radius-lg);
    padding: clamp(26px, 4vw, 40px);
}
.lyc-fp-checks{
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 28px;
}
.lyc-fp-checks li{
    display: flex;
    align-items: flex-start;
    gap: 11px;
    font-size: 15px;
    line-height: 1.45;
}
.lyc-fp-checks .lyc-fp-ico{
    color: var(--fp-red);
    width: 20px;
    height: 20px;
    margin-top: 2px;
}

/* --- Débouchés et poursuite d'études ------------------------------------ */
.lyc-fp-split{
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: clamp(30px, 5vw, 56px);
    align-items: start;
}
.lyc-fp-split__col + .lyc-fp-split__col{
    border-left: 1px solid var(--fp-border);
    padding-left: clamp(30px, 5vw, 56px);
}

/* --- Témoignages -------------------------------------------------------- */
.lyc-fp-quotes{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 20px;
}
.lyc-fp-quote{
    display: flex;
    flex-direction: column;
    background-color: #FFF;
    border: 1px solid var(--fp-border);
    border-radius: var(--fp-radius);
    padding: 24px 22px;
    margin: 0;
}
.lyc-fp-quote blockquote{
    margin: 0 0 18px;
    padding: 0;
    border: 0;
    background: none;
}
.lyc-fp-quote blockquote p{
    margin: 0;
    color: var(--fp-text);
    font-size: 14.5px;
    font-style: italic;
    line-height: 1.6;
}
.lyc-fp-quote figcaption{ margin-top: auto; }
.lyc-fp-quote__name{
    display: block;
    color: var(--fp-navy);
    font-size: 14px;
    font-weight: 800;
}
.lyc-fp-quote__role{
    display: block;
    color: var(--fp-muted);
    font-size: 13px;
}

/* --- Candidature (carte rouge bordeaux) --------------------------------- */
.lyc-fp-cta{
    background-color: var(--fp-red-dark);
    color: #FFF;
    border-radius: var(--fp-radius-lg);
    padding: clamp(30px, 4.5vw, 48px) clamp(24px, 4vw, 44px);
}
/*
 * Sur-titre facultatif du bloc de candidature. Reprend .lyc-fp-overline, mais
 * centré et éclairci : la teinte rose du hero manquerait de contraste sur le
 * bordeaux. Blanc à 82 % sur --fp-red-dark : contraste 6,6:1.
 */
.lyc-fp-cta__eyebrow{
    color: rgba(255, 255, 255, .82);
    text-align: center;
    margin: 0 0 10px;
}
.lyc-fp-cta__title{
    color: #FFF;
    font-family: 'Lato', sans-serif;
    font-size: clamp(22px, 2.6vw, 28px);
    font-weight: 800;
    line-height: 1.2;
    text-align: center;
    margin: 0 0 clamp(26px, 3.5vw, 38px);
}
.lyc-fp-cta__grid{
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 300px);
    gap: clamp(28px, 4vw, 48px);
    align-items: start;
}
/* Fiches sans colonne de coordonnées : une seule colonne, pleine largeur. */
.lyc-fp-cta__grid--single{ grid-template-columns: minmax(0, 1fr); }

/* Encart de la démarche, à l'intérieur du bloc bordeaux. */
.lyc-fp-cta__panel{
    border: 1px solid rgba(255, 255, 255, .3);
    border-radius: var(--fp-radius);
    background-color: rgba(255, 255, 255, .06);
    padding: clamp(20px, 3vw, 28px);
    margin-bottom: 28px;
}
.lyc-fp-cta__panel-title{
    color: #FFF;
    font-family: 'Lato', sans-serif;
    font-size: 17px;
    font-weight: 800;
    line-height: 1.3;
    margin: 0 0 10px;
}
.lyc-fp-cta__panel-txt{
    color: rgba(255, 255, 255, .88);
    font-size: 14.5px;
    line-height: 1.6;
    margin: 0;
    max-width: 68ch;
}

.lyc-fp-steps{
    list-style: none;
    margin: 0 0 30px;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(22px, 3vw, 36px);
}
.lyc-fp-steps li{
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 12px;
}
/* Chevron de liaison entre deux étapes, purement décoratif (bordures CSS). */
.lyc-fp-steps li:not(:last-child)::after{
    content: '';
    position: absolute;
    top: 11px;
    right: calc(-1 * clamp(22px, 3vw, 36px) / 2 - 4px);
    width: 8px;
    height: 8px;
    border-top: 2px solid rgba(255, 255, 255, .55);
    border-right: 2px solid rgba(255, 255, 255, .55);
    transform: rotate(45deg);
}
.lyc-fp-steps__num{
    flex: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border: 1.5px solid rgba(255, 255, 255, .6);
    border-radius: 50%;
    color: #FFF;
    font-size: 14px;
    font-weight: 800;
}
.lyc-fp-steps__title{
    display: block;
    color: #FFF;
    font-size: 15px;
    font-weight: 800;
    line-height: 1.3;
    margin-bottom: 6px;
}
.lyc-fp-steps__txt{
    display: block;
    color: rgba(255, 255, 255, .82);
    font-size: 13.5px;
    line-height: 1.55;
}

.lyc-fp-cta__actions{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
}
.lyc-fp-cta__link{
    color: #FFF;
    font-size: 14.5px;
    font-weight: 700;
    text-decoration: underline;
}
.lyc-fp-cta__link:hover,
.lyc-fp-cta__link:focus{ color: var(--fp-pink-2); }

.lyc-fp-cta__contact{
    border-left: 1px solid rgba(255, 255, 255, .25);
    padding-left: clamp(24px, 3vw, 40px);
}
.lyc-fp-cta__contact .lyc-fp-h3{
    color: #FFF;
    font-size: 15.5px;
    margin: 0 0 16px;
}
.lyc-fp-contact{ font-style: normal; }
.lyc-fp-contact p{
    display: flex;
    align-items: flex-start;
    gap: 11px;
    margin: 0 0 12px;
    color: rgba(255, 255, 255, .9);
    font-size: 13.5px;
    line-height: 1.5;
}
.lyc-fp-contact p:last-child{ margin-bottom: 0; }
.lyc-fp-contact .lyc-fp-ico{
    color: rgba(255, 255, 255, .72);
    width: 17px;
    height: 17px;
    margin-top: 3px;
}
.lyc-fp-contact a{ color: #FFF; text-decoration: underline; }
.lyc-fp-contact a:hover,
.lyc-fp-contact a:focus{ color: var(--fp-pink-2); }

/* --- Autres formations -------------------------------------------------- */
.lyc-fp-more{ padding: 0 0 clamp(44px, 6vw, 72px); }
.lyc-fp-more a{
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background-color: #FFF;
    border: 1px solid var(--fp-border);
    border-radius: var(--fp-radius);
    padding: 18px 24px;
    color: var(--fp-navy);
    font-size: 15.5px;
    font-weight: 800;
    text-align: center;
    text-decoration: none;
    transition: border-color .18s ease, color .18s ease;
}
.lyc-fp-more a:hover,
.lyc-fp-more a:focus{ border-color: var(--fp-red); color: var(--fp-red); }
.lyc-fp-more .lyc-fp-ico{ width: 18px; height: 18px; }

/* Variante à plusieurs destinations : même rangée bordée, liens en ligne. */
.lyc-fp-more__row{
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 6px 10px;
    background-color: #FFF;
    border: 1px solid var(--fp-border);
    border-radius: var(--fp-radius);
    padding: 18px 24px;
    margin: 0;
    font-size: 15.5px;
    text-align: center;
}
.lyc-fp-more__label{ color: var(--fp-muted); }
.lyc-fp-more__sep{ color: var(--fp-muted); }
.lyc-fp-more__row a{
    display: inline;
    border: 0;
    padding: 0;
    background: none;
    color: var(--fp-navy);
    font-weight: 800;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}
.lyc-fp-more__row a:hover,
.lyc-fp-more__row a:focus{ color: var(--fp-red); }

/* --- Réglages propres à chaque fiche ------------------------------------ */

/*
 * BTS Commerce International. L'illustration porte son fond bleu nuit dans le
 * fichier (#0D1737, relevé sur son pourtour) : le hero s'y cale exactement.
 * Sa composition étant centrée, le rognage du remplissage en hauteur est
 * réparti symétriquement. Blanc sur ce fond : contraste 17,6:1.
 */
.bts-ci-page{
    --fp-hero-bg:  #0D1737;
    --fp-hero-pos: center;
}
/*
 * DCG. Illustration détourée : le bleu nuit de la charte se voit au travers,
 * aucune teinte à faire coïncider. Composition centrée, donc rognage réparti
 * symétriquement lors du remplissage en hauteur.
 */
.dcg-page{ --fp-hero-pos: center; }
/*
 * DSCG. Même cas de figure que le DCG, dont la fiche reprend la structure
 * section pour section : illustration détourée sur le bleu nuit de la charte,
 * composition centrée.
 */
.dscg-page{ --fp-hero-pos: center; }
/*
 * BTS Support à l'Action Managériale. Illustration détourée, comme celle du
 * DCG : le bleu nuit de la charte se voit au travers. Composition centrée,
 * donc rognage réparti symétriquement lors du remplissage en hauteur.
 */
.bts-sam-page{ --fp-hero-pos: center; }
/*
 * BTS Assurance. Illustration détourée sur tout son pourtour : le bleu nuit de
 * la charte se voit au travers. Composition centrée, donc rognage réparti
 * symétriquement lors du remplissage en hauteur.
 */
.bts-assurance-page{ --fp-hero-pos: center; }

/*
 * Fiches dont les repères du hero portent des libellés longs : les trois
 * cellules se partagent la largeur à parts égales et leurs sous-titres passent
 * à la ligne, au lieu de déborder sur une seconde rangée. La fiche BTS CG
 * garde ses libellés courts sur une seule ligne, sans ce réglage.
 */
.bts-ci-page .lyc-fp-hero__facts li,
.dcg-page .lyc-fp-hero__facts li,
.bts-sam-page .lyc-fp-hero__facts li,
.bts-assurance-page .lyc-fp-hero__facts li,
.dscg-page .lyc-fp-hero__facts li{ flex: 1 1 0; min-width: 0; }
.bts-ci-page .lyc-fp-fact__label,
.bts-ci-page .lyc-fp-fact__sub,
.dcg-page .lyc-fp-fact__label,
.dcg-page .lyc-fp-fact__sub,
.bts-sam-page .lyc-fp-fact__label,
.bts-sam-page .lyc-fp-fact__sub,
.bts-assurance-page .lyc-fp-fact__label,
.bts-assurance-page .lyc-fp-fact__sub,
.dscg-page .lyc-fp-fact__label,
.dscg-page .lyc-fp-fact__sub{ white-space: normal; }

/* --- Focus visible ------------------------------------------------------ */
.lyc-fp-page a:focus-visible,
.lyc-fp-page button:focus-visible{
    outline: 3px solid var(--fp-red);
    outline-offset: 3px;
    border-radius: 4px;
}
.lyc-fp-hero a:focus-visible,
.lyc-fp-cta a:focus-visible{ outline-color: #FFF; }

/* --- Responsive --------------------------------------------------------- */
@media (max-width: 900px){
    /* Le hero, lui, s'empile plus tôt : voir le bloc max-width: 1200px. */
    .lyc-fp-duo,
    .lyc-fp-split,
    .lyc-fp-profil,
    .lyc-fp-cta__grid{ grid-template-columns: 1fr; }

    /* Le filet vertical devient un filet horizontal. */
    .lyc-fp-split__col + .lyc-fp-split__col{
        border-left: 0;
        border-top: 1px solid var(--fp-border);
        padding-left: 0;
        padding-top: 28px;
    }
    .lyc-fp-cta__contact{
        border-left: 0;
        border-top: 1px solid rgba(255, 255, 255, .25);
        padding-left: 0;
        padding-top: 28px;
    }

    .lyc-fp-steps{ grid-template-columns: 1fr; gap: 20px; }
    .lyc-fp-steps li:not(:last-child)::after{ display: none; }
}

/* En deçà de 768px le sommaire ne tient plus sur la largeur : il s'aligne à
   gauche et se parcourt par défilement horizontal. Il reste collant. */
@media (max-width: 768px){
    .lyc-fp-nav ul{ justify-content: flex-start; }
}

@media (max-width: 620px){
    .lyc-fp-hero__actions{ flex-direction: column; align-items: stretch; }
    .lyc-fp-hero__actions .lyc-fp-btn{ width: 100%; justify-content: center; }
    .lyc-fp-hero__facts{ flex-direction: column; }
    .lyc-fp-hero__facts li{ width: 100%; }

    .lyc-fp-checks{ grid-template-columns: 1fr; }

    .lyc-fp-cta__actions .lyc-fp-btn{ width: 100%; justify-content: center; }
    .lyc-fp-nav a{ padding: 14px 13px; font-size: 14px; }
}

/* --- Préférence de mouvement réduit ------------------------------------- */
@media (prefers-reduced-motion: reduce){
    .lyc-fp-page,
    .lyc-fp-page *{
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
    }
}
