/*
 * LMK — Longonya Mokili Koyekola
 *
 * Charte IDENTIQUE à Longonya : les jetons et composants ci-dessous reprennent
 * à l'identique ceux de brand.css (application : bleu marine, survols or,
 * cartes .hk-panel / .hk-kpi, tableaux .ln-table) et de portail.css /
 * accueil.css (pages publiques : en-tête marine, bouton or, pied de page).
 * Les classes lmk-* ne font qu'appliquer ces mêmes valeurs aux écrans LMK.
 *
 * Usage des couleurs, comme dans Longonya :
 *   marine  = structure, actions principales, titres ;
 *   or      = accent (survol, action mise en avant) ;
 *   vert    = réussite / état positif ;  rouge = erreur / alerte.
 */
:root {
    --ln-navy: #0B1F3C;
    --ln-navy-dark: #071426;
    --ln-navy-light: #16305A;
    --ln-green: #208040;
    --ln-red: #D3191A;
    --ln-gold: #F7C210;

    /* Alias LMK → charte Longonya (aucune couleur propre à LMK). */
    --lmk-primaire: var(--ln-navy);
    --lmk-primaire-fonce: var(--ln-navy-dark);
    --lmk-primaire-moyen: var(--ln-navy-light);
    --lmk-primaire-clair: #e7ecf5;
    --lmk-vert: var(--ln-green);
    --lmk-vert-clair: #e6f4ea;
    --lmk-jaune: var(--ln-gold);
    --lmk-jaune-texte: #b8890a;
    --lmk-jaune-clair: #fef4d3;
    --lmk-rouge: var(--ln-red);
    --lmk-rouge-clair: #fbe6e6;
    --lmk-encre: #1c2333;
    --lmk-gris-fonce: #4a5468;
    --lmk-gris: #8a94a6;
    --lmk-gris-clair: #f4f6fb;
    --lmk-bordure: #eef1f8;
    --lmk-ombre: 0 .5rem 1.5rem rgba(11, 31, 60, .07);
    --lmk-rayon: 1rem;

    --bs-primary: #0B1F3C;
    --bs-primary-rgb: 11, 31, 60;
    --bs-link-color: #16305A;
    --bs-link-color-rgb: 22, 48, 90;
    --bs-link-hover-color: #D3191A;
    --bs-link-hover-color-rgb: 211, 25, 26;
    --bs-body-color: #1c2333;
    --bs-body-font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --bs-border-color: #e5e9f2;
}

body.lmk {
    font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    color: var(--lmk-encre);
}

body.lmk-public { background: #fff; overflow-x: hidden; }
body.lmk-public h1, body.lmk-public h2, body.lmk-public h3, body.lmk-public h4 { color: var(--ln-navy); }

.lmk :focus-visible { outline: 3px solid var(--ln-gold); outline-offset: 2px; }
.form-control:focus, .form-select:focus {
    border-color: var(--ln-navy-light);
    box-shadow: 0 0 0 .25rem rgba(11, 31, 60, .15);
}
.form-check-input:checked { background-color: var(--ln-navy); border-color: var(--ln-navy); }

.lmk-lien-evitement {
    position: absolute;
    left: -9999px;
    top: 0;
    z-index: 2000;
    background: var(--ln-navy);
    color: #fff;
    padding: .5rem 1rem;
}
.lmk-lien-evitement:focus { left: 1rem; top: 1rem; }

/* ---------------------------------------------------------------- Boutons
   .btn-primary = .btn-ln-primary de Longonya ; .btn-accent = .pt-btn-reserver. */
.lmk .btn-primary {
    --bs-btn-bg: var(--ln-navy);
    --bs-btn-border-color: var(--ln-navy);
    --bs-btn-color: #fff;
    --bs-btn-hover-bg: var(--ln-navy-dark);
    --bs-btn-hover-border-color: var(--ln-navy-dark);
    --bs-btn-hover-color: #fff;
    --bs-btn-active-bg: var(--ln-navy-dark);
    --bs-btn-active-border-color: var(--ln-navy-dark);
    --bs-btn-disabled-bg: var(--ln-navy);
    --bs-btn-disabled-border-color: var(--ln-navy);
    font-weight: 600;
    letter-spacing: .02em;
}
.lmk .btn-outline-primary {
    --bs-btn-color: var(--ln-navy);
    --bs-btn-border-color: var(--ln-navy);
    --bs-btn-hover-bg: var(--ln-navy);
    --bs-btn-hover-border-color: var(--ln-navy);
    --bs-btn-hover-color: #fff;
    --bs-btn-active-bg: var(--ln-navy-dark);
    --bs-btn-active-border-color: var(--ln-navy-dark);
    font-weight: 600;
}
.lmk .btn-accent {
    --bs-btn-bg: var(--ln-gold);
    --bs-btn-border-color: var(--ln-gold);
    --bs-btn-color: var(--ln-navy);
    --bs-btn-hover-bg: #ffd23f;
    --bs-btn-hover-border-color: #ffd23f;
    --bs-btn-hover-color: var(--ln-navy);
    --bs-btn-active-bg: #ffd23f;
    --bs-btn-active-color: var(--ln-navy);
    font-weight: 700;
    box-shadow: 0 4px 14px rgba(247, 194, 16, .25);
}
.lmk .btn-link { --bs-btn-color: var(--ln-navy-light); --bs-btn-hover-color: var(--ln-red); }
/* Bouton avec icône : icône et libellé centrés sur la même ligne. */
.lmk .btn:has(> .bi) { display: inline-flex; align-items: center; justify-content: center; gap: .1rem; }
.lmk .btn.w-100:has(> .bi), .lmk .d-grid > .btn:has(> .bi) { display: flex; }
.lmk .nav-pills { --bs-nav-pills-link-active-bg: var(--ln-navy); --bs-nav-link-color: var(--ln-navy-light); --bs-nav-link-hover-color: var(--ln-navy); }
.lmk .page-link { color: var(--ln-navy-light); }
.lmk .active > .page-link, .lmk .page-link.active { background-color: var(--ln-navy); border-color: var(--ln-navy); }

/* ---------------------------------------------------- Couleurs utilitaires */
.text-lmk-vert { color: var(--ln-green) !important; }
.text-lmk-rouge { color: var(--ln-red) !important; }
.text-lmk-gris { color: var(--lmk-gris) !important; }
.bg-lmk-vert { background: var(--ln-navy) !important; color: #fff; }
.bg-lmk-vert-clair { background: var(--lmk-gris-clair) !important; }
.bg-lmk-jaune-clair { background: var(--lmk-jaune-clair) !important; }

/* Badges : mêmes couples fond/texte que les icônes .hk-ic de Longonya. */
.lmk-badge {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    padding: .25rem .65rem;
    border-radius: 999px;
    font-size: .75rem;
    font-weight: 600;
    background: #f0f3f8;
    color: var(--ln-navy-light);
    white-space: nowrap;
}
.lmk-badge-vert { background: #e6f4ea; color: var(--ln-green); }
.lmk-badge-jaune { background: #fef4d3; color: #b8890a; }
.lmk-badge-rouge { background: #fbe6e6; color: var(--ln-red); }
.lmk-badge-sombre { background: var(--ln-navy); color: #fff; }

/* Bande tricolore Longonya (.ln-brand-bar / .pt-brand-bar). */
.lmk-filet {
    height: 4px;
    background: linear-gradient(to right, var(--ln-green) 0%, var(--ln-green) 30%, var(--ln-gold) 45%, var(--ln-gold) 55%, var(--ln-red) 70%, var(--ln-red) 100%);
}

/* ------------------------------------------------------------------ Cartes
   .lmk-carte = .hk-panel ; .lmk-kpi = .hk-kpi. */
.lmk-carte {
    background: #fff;
    border: none;
    border-radius: 1rem;
    box-shadow: var(--lmk-ombre);
}
.lmk-carte-corps { padding: 1.15rem 1.25rem; }
.lmk-carte-titre { font-weight: 700; font-size: .95rem; color: var(--ln-navy); margin: 0; }

.lmk-kpi { padding: 1rem 1.1rem; }
.lmk-kpi-valeur { color: var(--ln-navy); font-size: 1.5rem; font-weight: 700; line-height: 1.1; }
.lmk-kpi-libelle { color: var(--lmk-gris); font-size: .7rem; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; }
.lmk-kpi-icone {
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    border-radius: .7rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    background: #e7ecf5;
    color: var(--ln-navy-light);
}

.lmk-formation {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
    position: relative;
    border: 1px solid #edf0f6;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.lmk-formation:hover, .lmk-formation:focus-within {
    transform: translateY(-4px);
    border-color: rgba(247, 194, 16, .55);
    box-shadow: 0 1.25rem 2.5rem rgba(11, 31, 60, .14);
}
.lmk-formation-visuel {
    aspect-ratio: 16 / 9;
    background: linear-gradient(135deg, var(--ln-navy) 0%, var(--ln-navy-light) 100%);
    position: relative;
    overflow: hidden;
}
.lmk-formation-visuel img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.lmk-formation:hover .lmk-formation-visuel img { transform: scale(1.05); }

/* Quatre ambiances de la charte pour les formations sans image. */
.lmk-ambiance-0 { background: radial-gradient(circle at 85% 15%, rgba(247, 194, 16, .28), transparent 55%), linear-gradient(135deg, #0B1F3C 0%, #16305A 100%); }
.lmk-ambiance-1 { background: radial-gradient(circle at 15% 85%, rgba(247, 194, 16, .25), transparent 55%), linear-gradient(135deg, #0d3b2a 0%, #1d6b3f 100%); }
.lmk-ambiance-2 { background: radial-gradient(circle at 80% 80%, rgba(255, 255, 255, .18), transparent 55%), linear-gradient(135deg, #16305A 0%, #2b5aa0 100%); }
.lmk-ambiance-3 { background: radial-gradient(circle at 20% 20%, rgba(247, 194, 16, .3), transparent 55%), linear-gradient(135deg, #071426 0%, #3a2a0a 100%); }

/* Route du logo : chaussée en perspective, bordée vert / or / rouge. */
.lmk-visuel-route {
    position: absolute;
    right: -6%;
    bottom: -12%;
    width: 62%;
    height: 125%;
    background: linear-gradient(90deg, var(--ln-green) 0 7%, transparent 7% 12%, rgba(255, 255, 255, .1) 12% 88%, transparent 88% 93%, var(--ln-red) 93% 100%);
    clip-path: polygon(38% 0, 62% 0, 100% 100%, 0 100%);
    opacity: .55;
    transform: skewX(-16deg);
}
.lmk-visuel-route::after {
    content: "";
    position: absolute;
    left: 49%;
    top: 0;
    bottom: 0;
    width: 3%;
    background: repeating-linear-gradient(180deg, var(--ln-gold) 0 9%, transparent 9% 17%);
}
.lmk-formation-visuel .lmk-visuel-icone {
    position: absolute;
    left: 1.1rem;
    bottom: 1rem;
    width: 3.4rem;
    height: 3.4rem;
    border-radius: 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.7rem;
    color: var(--ln-navy);
    background: var(--ln-gold);
    box-shadow: 0 .6rem 1.4rem rgba(0, 0, 0, .25);
    transition: transform .25s ease;
}
.lmk-formation:hover .lmk-visuel-icone { transform: rotate(-6deg) scale(1.06); }
.lmk-formation-prix {
    position: absolute;
    top: .8rem;
    right: .8rem;
    padding: .3rem .75rem;
    border-radius: 999px;
    font-size: .78rem;
    font-weight: 700;
    color: var(--ln-navy);
    background: #fff;
    box-shadow: 0 .4rem 1rem rgba(0, 0, 0, .18);
}
.lmk-formation-prix.gratuit { background: var(--ln-green); color: #fff; }
.lmk-formation-demo { position: absolute; top: .8rem; left: .8rem; }

.lmk-formation-corps { padding: 1.1rem 1.2rem 1.15rem; display: flex; flex-direction: column; flex: 1; }
.lmk-formation-categorie {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    align-self: flex-start;
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .03em;
    text-transform: uppercase;
    color: #a07708;
}
.lmk-formation-titre { font-size: 1.04rem; font-weight: 700; line-height: 1.35; margin: .45rem 0 .4rem; }
.lmk-formation-titre a { color: var(--ln-navy); text-decoration: none; }
.lmk-formation-titre a::after { content: ''; position: absolute; inset: 0; z-index: 1; }
.lmk-formation:hover .lmk-formation-titre a { color: var(--ln-navy-light); }
.lmk-formation-resume { color: var(--lmk-gris-fonce); font-size: .85rem; line-height: 1.55; margin-bottom: .2rem; }
.lmk-formation-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem .9rem;
    color: var(--lmk-gris-fonce);
    font-size: .78rem;
    margin-top: auto;
    padding-top: .85rem;
    border-top: 1px dashed #e3e8f1;
}
.lmk-formation-meta > span { display: inline-flex; align-items: center; gap: .3rem; }
.lmk-formation-meta .bi { color: var(--ln-navy-light); }
.lmk-niveau-barres { display: inline-flex; align-items: flex-end; gap: 2px; height: 12px; margin-right: .1rem; }
.lmk-niveau-barres i { display: block; width: 4px; border-radius: 1px; background: #d8deea; }
.lmk-niveau-barres i:nth-child(1) { height: 5px; }
.lmk-niveau-barres i:nth-child(2) { height: 8px; }
.lmk-niveau-barres i:nth-child(3) { height: 12px; }
.lmk-niveau-barres i.plein { background: var(--ln-gold); }
.lmk-formation-lien {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    margin-top: .85rem;
    font-size: .85rem;
    font-weight: 600;
    color: var(--ln-navy);
}
.lmk-formation-lien .bi { transition: transform .2s ease; }
.lmk-formation:hover .lmk-formation-lien { color: #a07708; }
.lmk-formation:hover .lmk-formation-lien .bi { transform: translateX(4px); }

/* -------------------------------------------------------------- Progression */
.lmk-progress { height: 8px; background: #eef1f8; border-radius: 3px; overflow: hidden; }
.lmk-progress > span { display: block; height: 100%; background: var(--ln-green); border-radius: 3px; transition: width .5s ease; }
.lmk-progress-jaune > span { background: var(--ln-gold); }

/* ------------------------------------------- En-tête public (= .ac-entete) */
.lmk-entete { position: sticky; top: 0; z-index: 1030; background: var(--ln-navy); }
.lmk-entete-inner {
    max-width: 1320px;
    margin: 0 auto;
    padding: .9rem 1.5rem;
    display: flex;
    align-items: center;
    gap: 2rem;
    flex-wrap: wrap;
}
.lmk-marque { display: inline-flex; align-items: center; gap: .85rem; text-decoration: none; }
.lmk-marque img { height: 52px; width: auto; display: block; }
.lmk-marque-texte { line-height: 1.15; border-left: 1px solid rgba(255, 255, 255, .25); padding-left: .85rem; }
.lmk-marque-texte strong { display: block; color: #fff; font-size: .95rem; font-weight: 700; }
.lmk-marque-texte small { color: var(--ln-gold); font-size: .7rem; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; }
.lmk-nav-publique { flex: 1; display: flex; gap: 1.75rem; }
.lmk-nav-publique a {
    color: #e7ecf5;
    text-decoration: none;
    font-size: .92rem;
    font-weight: 500;
    opacity: .9;
    transition: opacity .2s ease;
}
.lmk-nav-publique a:hover, .lmk-nav-publique a.active { opacity: 1; text-decoration: underline; text-underline-offset: 4px; color: #fff; }
.lmk-nav-publique a, .lmk-btn-or, .lmk-lien-pro { white-space: nowrap; }
/* Écrans moyens : liens resserrés, ancres « Parcours » et « Compagnies » masquées. */
@media (min-width: 992px) and (max-width: 1279.98px) {
    .lmk-entete-inner { gap: 1.25rem; }
    .lmk-nav-publique { gap: 1.1rem; }
    .lmk-nav-publique a { font-size: .85rem; }
    .lmk-nav-secondaire { display: none; }
}
.lmk-actions { display: flex; align-items: center; gap: 12px; margin-left: auto; flex-shrink: 0; }
/* = .pt-btn-reserver */
.lmk-btn-or {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 11px 22px;
    border-radius: 10px;
    background: var(--ln-gold);
    color: var(--ln-navy);
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
    box-shadow: 0 4px 14px rgba(247, 194, 16, .25);
    transition: .15s;
    border: 0;
}
.lmk-btn-or:hover { background: #ffd23f; color: var(--ln-navy); transform: translateY(-1px); box-shadow: 0 6px 18px rgba(247, 194, 16, .35); }
/* = .pt-lien-pro */
.lmk-lien-pro {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 18px;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 10px;
    color: #e8eefb;
    font-size: 13.5px;
    font-weight: 600;
    text-decoration: none;
    transition: .15s;
}
.lmk-lien-pro:hover { border-color: var(--ln-gold); color: var(--ln-gold); }
.lmk-burger { color: #e8eefb; border: 1px solid rgba(255, 255, 255, .2); border-radius: 10px; }
.lmk-burger:hover { color: var(--ln-gold); border-color: var(--ln-gold); }
@media (max-width: 991.98px) {
    .lmk-entete-inner { gap: 1rem; }
    .lmk-nav-publique { flex-basis: 100%; flex-direction: column; gap: .75rem; order: 3; }
    .lmk-actions { flex-basis: 100%; order: 4; }
    .lmk-actions a { flex: 1; justify-content: center; }
    .lmk-marque img { height: 40px; }
}
@media (max-width: 575.98px) {
    .lmk-entete-inner { padding: .75rem 1rem; gap: .75rem; }
    .lmk-marque { gap: .6rem; }
    .lmk-marque img { height: 34px; }
    .lmk-marque-texte { padding-left: .6rem; }
    .lmk-marque-texte strong { font-size: .85rem; }
}

/* ------------------------------------------------- Héros (= .ac-hero) */
.lmk-heros {
    position: relative;
    color: #fff;
    overflow: hidden;
    background:
        radial-gradient(900px 420px at 85% 0%, rgba(247, 194, 16, .14), transparent 60%),
        linear-gradient(180deg, var(--ln-navy) 0%, var(--ln-navy-dark) 100%);
}
.lmk-heros h1, .lmk-heros h2 { color: #fff !important; font-weight: 700; line-height: 1.15; }
.lmk-heros .lead { color: #dbe2f0; }
.lmk-heros .lmk-badge-jaune { background: rgba(247, 194, 16, .16); border: 1px solid rgba(247, 194, 16, .4); color: var(--ln-gold); text-transform: uppercase; letter-spacing: .08em; }
.lmk-heros .lmk-badge { background: rgba(255, 255, 255, .1); color: #e7ecf5; }
.lmk-heros-recherche {
    background: #fff;
    border-radius: .7rem;
    padding: .4rem;
    display: flex;
    gap: .4rem;
    box-shadow: 0 1rem 3rem rgba(0, 0, 0, .25);
}
.lmk-heros-recherche input { border: 0; box-shadow: none !important; font-size: 1rem; min-width: 0; }
/* Icône et libellé sur une seule ligne, sans que le champ ne l'écrase. */
.lmk-heros-recherche .btn { flex-shrink: 0; white-space: nowrap; }
@media (max-width: 575.98px) {
    .lmk-heros-recherche { flex-wrap: wrap; }
    .lmk-heros-recherche input { flex-basis: 100%; }
    .lmk-heros-recherche .btn { width: 100%; }
}
.lmk-chiffre strong { display: block; font-size: 1.6rem; font-weight: 800; color: var(--ln-gold); }
.lmk-chiffre span { color: #dbe2f0; font-size: .85rem; }

.lmk-section { padding: 4rem 0; }
.lmk-section-titre { font-weight: 700; color: var(--ln-navy); }
/* = .ln-tagline */
.lmk-surtitre { color: var(--ln-navy-light); letter-spacing: .06em; font-size: .8rem; font-weight: 600; text-transform: uppercase; }

.lmk-domaine {
    display: flex;
    gap: .9rem;
    align-items: flex-start;
    padding: 1.1rem;
    text-decoration: none;
    color: var(--lmk-encre);
    height: 100%;
    transition: transform .15s ease, box-shadow .15s ease;
}
.lmk-domaine:hover { transform: translateY(-2px); box-shadow: 0 1rem 3rem rgba(11, 31, 60, .15); color: var(--lmk-encre); }
.lmk-domaine strong { color: var(--ln-navy); }
/* = .ln-icon-badge */
.lmk-domaine-icone {
    flex: 0 0 2.5rem;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: .75rem;
    background: linear-gradient(135deg, var(--ln-navy) 0%, var(--ln-navy-light) 100%);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
    box-shadow: 0 .4rem 1rem rgba(11, 31, 60, .25);
}

/* ------------------------------------------------- Pied (= .ac-footer) */
.lmk-pied { background: var(--ln-navy-dark); color: #b7c0d4; padding: 4.5rem 0 0; }
.lmk-pied-logo { height: 46px; margin-bottom: 1rem; }
.lmk-pied h2 { color: #fff !important; font-size: .82rem; text-transform: uppercase; letter-spacing: .06em; margin-bottom: 1.1rem; font-weight: 700; }
.lmk-pied ul { list-style: none; padding: 0; margin: 0; }
.lmk-pied ul li { margin-bottom: .65rem; }
.lmk-pied a { color: #b7c0d4; text-decoration: none; font-size: .9rem; transition: color .2s ease; }
.lmk-pied a:hover { color: var(--ln-gold); }
.lmk-pied-bas { margin-top: 3rem; padding: 1.5rem 0; border-top: 1px solid rgba(255, 255, 255, .08); font-size: .82rem; text-align: center; }

/* ------------------------------------- Application connectée (brand.css)
   La structure reprend .ln-shell / .ln-sidebar / .ln-topbar / .ln-main de
   brand.css ; seules les nouveautés LMK sont décrites ici. */
.lmk-nav-titre {
    font-size: .68rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: rgba(255, 255, 255, .45);
    font-weight: 600;
    padding: 1rem 1.25rem .35rem;
}
.ln-sidebar-nav .nav-link .badge { margin-left: auto; }
.ln-sidebar-nav > .nav-item > .nav-link { display: flex; align-items: center; gap: .55rem; }
.lmk-contenu { padding: 2rem 1.5rem; flex: 1; }
.lmk-page-titre { font-size: 1.45rem; font-weight: 700; color: var(--ln-navy); margin: 0; }
.lmk-fil { font-size: .82rem; color: var(--lmk-gris); }
.lmk-fil a { color: var(--lmk-gris); text-decoration: none; }
.lmk-fil a:hover { color: var(--ln-navy); }
.lmk-topbar-recherche .form-control { border-radius: 2rem; padding-left: 1.1rem; }

/* = .ln-table */
.lmk-table { margin: 0; }
.lmk-table thead th {
    background: #f7f9fc;
    color: var(--ln-navy);
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    border-bottom: 2px solid #eef1f8;
    white-space: nowrap;
}
.lmk-table tbody td { border-color: #eef1f8; vertical-align: middle; }

.lmk-vide { text-align: center; padding: 2.5rem 1rem; color: var(--lmk-gris); }
.lmk-vide i { font-size: 2.2rem; color: var(--ln-navy-light); opacity: .35; display: block; margin-bottom: .6rem; }

/* Barre d'onglets mobile : marine, actif en or (comme la barre latérale). */
.lmk-onglets-mobile {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: var(--ln-navy);
    display: flex;
    z-index: 1030;
    padding-bottom: env(safe-area-inset-bottom);
}
.lmk-onglets-mobile a { flex: 1; text-align: center; padding: .45rem 0 .5rem; color: rgba(255, 255, 255, .75); font-size: .7rem; text-decoration: none; }
.lmk-onglets-mobile a i { display: block; font-size: 1.2rem; }
.lmk-onglets-mobile a.active { color: var(--ln-gold); }

@media (max-width: 991.98px) {
    .lmk-contenu { padding: 1.25rem 1rem 5.5rem; }
}

/* ------------------------------------------------ Lecteur de formation */
.lmk-lecteur { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 1.25rem; align-items: start; }
.lmk-programme { position: sticky; top: 1rem; max-height: calc(100vh - 2rem); overflow-y: auto; }
.lmk-programme-module { font-weight: 700; font-size: .8rem; color: var(--ln-navy); padding: .75rem 1rem; background: #f7f9fc; border-top: 1px solid #eef1f8; }
.lmk-programme-lecon {
    display: flex;
    gap: .6rem;
    align-items: flex-start;
    padding: .6rem 1rem;
    color: var(--lmk-encre);
    text-decoration: none;
    font-size: .88rem;
    border-left: 3px solid transparent;
}
.lmk-programme-lecon:hover { background: var(--lmk-gris-clair); color: var(--ln-navy); }
.lmk-programme-lecon.active { border-left-color: var(--ln-gold); background: #e7ecf5; color: var(--ln-navy); font-weight: 600; }
.lmk-programme-lecon.verrouillee { color: var(--lmk-gris); }
.lmk-etat { flex: 0 0 18px; font-size: 1rem; line-height: 1.3; color: #b7bfcf; }
.lmk-etat.fait { color: var(--ln-green); }

.lmk-video { position: relative; aspect-ratio: 16 / 9; background: #000; border-radius: 1rem 1rem 0 0; overflow: hidden; }
.lmk-video video, .lmk-video iframe, .lmk-video > div { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

.lmk-prose { font-size: 1rem; line-height: 1.75; max-width: 78ch; }
.lmk-prose h1, .lmk-prose h2, .lmk-prose h3 { font-weight: 700; color: var(--ln-navy); margin-top: 1.6rem; }
.lmk-prose h2 { font-size: 1.3rem; }
.lmk-prose h3 { font-size: 1.1rem; }
.lmk-prose strong { color: var(--ln-navy); }
.lmk-prose blockquote { border-left: 4px solid var(--ln-gold); background: #fef4d3; padding: .75rem 1rem; border-radius: 0 .7rem .7rem 0; }
.lmk-prose table { width: 100%; border-collapse: collapse; margin: 1rem 0; font-size: .92rem; }
.lmk-prose th, .lmk-prose td { border: 1px solid #eef1f8; padding: .45rem .6rem; }
.lmk-prose th { background: #f7f9fc; color: var(--ln-navy); }
.lmk-prose img { max-width: 100%; height: auto; border-radius: .7rem; }
.lmk-prose code { background: #f0f3f8; padding: .1rem .35rem; border-radius: 4px; color: var(--ln-navy-light); }
/* Contenu de l'éditeur WYSIWYG */
.lmk-prose h4 { font-size: 1rem; font-weight: 700; color: var(--ln-navy); margin-top: 1.2rem; }
.lmk-prose pre { background: #f0f3f8; padding: .8rem 1rem; border-radius: .7rem; overflow-x: auto; }
.lmk-prose pre code { background: none; padding: 0; }
.lmk-prose figure { margin: 1rem 0; }
.lmk-prose figure.image { display: table; }
.lmk-prose figcaption { font-size: .85rem; color: #6b7590; text-align: center; margin-top: .35rem; }
.lmk-prose iframe { display: block; width: 100%; max-width: 100%; aspect-ratio: 16 / 9; height: auto; border: 0; border-radius: .7rem; margin: 1rem 0; }
.lmk-prose details { border: 1px solid #eef1f8; border-radius: .7rem; padding: .6rem 1rem; margin: .8rem 0; }
.lmk-prose summary { font-weight: 600; color: var(--ln-navy); cursor: pointer; }
.lmk-prose table { display: block; overflow-x: auto; }
.lmk-prose hr { margin: 1.5rem 0; }
.lmk-prose .mce-pagebreak, .lmk-prose img.mce-pagebreak { display: none; }

@media (max-width: 991.98px) {
    .lmk-lecteur { grid-template-columns: 1fr; }
    .lmk-programme { position: static; max-height: none; }
}

/* ------------------------------------------------------------- Quiz */
.lmk-question { scroll-margin-top: 90px; }
.lmk-choix {
    display: flex;
    gap: .7rem;
    align-items: flex-start;
    padding: .75rem .9rem;
    border: 1px solid #e5e9f2;
    border-radius: .7rem;
    cursor: pointer;
    margin-bottom: .5rem;
    background: #f8f9fc;
}
.lmk-choix:hover { border-color: var(--ln-navy-light); background: #fff; }
.lmk-choix input { margin-top: .2rem; accent-color: var(--ln-navy); }
.lmk-choix:has(input:checked) { border-color: var(--ln-navy); background: #e7ecf5; }
.lmk-choix.correct { border-color: var(--ln-green); background: #e6f4ea; }
.lmk-choix.incorrect { border-color: var(--ln-red); background: #fbe6e6; }
.lmk-chrono {
    position: sticky;
    top: 1rem;
    z-index: 10;
    display: inline-flex;
    gap: .4rem;
    align-items: center;
    padding: .4rem .9rem;
    border-radius: 999px;
    background: var(--ln-navy);
    color: var(--ln-gold);
    font-variant-numeric: tabular-nums;
    font-weight: 700;
}
.lmk-chrono.urgent { background: var(--ln-red); color: #fff; }

/* ------------------------------------------------------- Simulateurs */
.lmk-bandeau-formation {
    background: repeating-linear-gradient(-45deg, #fef4d3 0 14px, #fff 14px 28px);
    border: 1px dashed #b8890a;
    color: #7a5c00;
    border-radius: .7rem;
    padding: .6rem 1rem;
    font-weight: 600;
    font-size: .85rem;
}
.lmk-plan-sieges { display: grid; grid-template-columns: repeat(5, 1fr); gap: .4rem; max-width: 300px; }
/* = .bus-schema-seat */
.lmk-siege {
    aspect-ratio: 1;
    border-radius: 8px;
    border: 1.5px solid #cfd6e4;
    background: #fff;
    color: var(--ln-navy);
    font-size: .75rem;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: center;
}
.lmk-siege.occupe { background: #eef1f8; color: #b7bfcf; text-decoration: line-through; }
label.lmk-siege { cursor: pointer; }
label.lmk-siege:hover { border-color: var(--ln-navy-light); }
.lmk-siege-radio:checked + label.lmk-siege { background: var(--ln-gold); border-color: var(--ln-gold); color: var(--ln-navy); }
.lmk-siege-radio:focus-visible + label.lmk-siege { outline: 3px solid var(--ln-navy-light); }

/* ------------------------------------------------------------- Divers */
.lmk-etoiles { color: var(--ln-gold); letter-spacing: 1px; }
.lmk-avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--ln-navy);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: .8rem;
    flex: 0 0 36px;
}
.lmk-alerte-demo { font-size: .75rem; background: #fef4d3; color: #b8890a; border-radius: 999px; padding: .15rem .55rem; font-weight: 700; }

@media print {
    .ln-sidebar, .ln-topbar, .ln-brand-bar, .lmk-onglets-mobile, .lmk-print-masquer, .btn { display: none !important; }
}

@media (prefers-reduced-motion: reduce) {
    .lmk-formation, .lmk-domaine { transition: none; }
    .lmk-formation:hover, .lmk-domaine:hover { transform: none; }
}

/* États pleins (bandeau de vérification de certificat). */
.bg-lmk-succes { background: var(--ln-green) !important; color: #fff; }
.bg-lmk-alerte { background: var(--ln-red) !important; color: #fff; }

/* Présentation d'un module : vidéo d'accueil et support PDF */
.lmk-module-presentation { padding: 1rem 1.25rem; border-top: 1px solid #eef1f8; background: #fbfcfe; }
.lmk-module-video { border-radius: .8rem; overflow: hidden; background: var(--ln-navy); }
.lmk-module-video iframe { border: 0; }
.lmk-module-video-lancer { position: absolute; inset: 0; width: 100%; border: 0; padding: 0; cursor: pointer; background: var(--ln-navy) center / cover no-repeat; display: flex; align-items: center; justify-content: center; }
.lmk-module-video-lancer::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(11, 31, 60, .1), rgba(11, 31, 60, .65)); }
.lmk-module-video-lecture { position: relative; z-index: 1; width: 64px; height: 64px; border-radius: 50%; background: var(--ln-gold); color: var(--ln-navy); display: flex; align-items: center; justify-content: center; font-size: 2rem; box-shadow: 0 6px 20px rgba(0, 0, 0, .3); transition: transform .15s ease; }
.lmk-module-video-lancer:hover .lmk-module-video-lecture, .lmk-module-video-lancer:focus-visible .lmk-module-video-lecture { transform: scale(1.08); }
.lmk-module-video-libelle { position: absolute; z-index: 1; left: .9rem; bottom: .7rem; color: #fff; font-weight: 600; font-size: .9rem; }
.lmk-module-document { border: 1px solid #eef1f8; border-radius: .8rem; background: #fff; padding: 1rem; display: flex; flex-direction: column; justify-content: space-between; }
.lmk-module-document-icone { width: 44px; height: 44px; flex: 0 0 44px; border-radius: .6rem; background: #fdecec; color: #d63c3c; display: flex; align-items: center; justify-content: center; font-size: 1.4rem; }

/* ============================================================ Catalogue */
.lmk-cat-heros {
    position: relative;
    overflow: hidden;
    color: #fff;
    padding: 2.25rem 0 0;
    background:
        radial-gradient(700px 360px at 90% -10%, rgba(247, 194, 16, .22), transparent 60%),
        radial-gradient(600px 300px at -5% 110%, rgba(32, 128, 64, .25), transparent 60%),
        linear-gradient(180deg, var(--ln-navy) 0%, var(--ln-navy-dark) 100%);
}
/* Route du logo, en grand, qui file vers l'horizon à droite. */
.lmk-cat-route {
    position: absolute;
    right: 4%;
    bottom: -10px;
    width: 420px;
    height: 360px;
    background: linear-gradient(90deg, var(--ln-green) 0 6%, transparent 6% 10%, rgba(255, 255, 255, .07) 10% 90%, transparent 90% 94%, var(--ln-red) 94% 100%);
    clip-path: polygon(44% 0, 56% 0, 100% 100%, 0 100%);
    opacity: .45;
    transform: skewX(-20deg);
    pointer-events: none;
}
.lmk-cat-route::after {
    content: "";
    position: absolute;
    left: 49.2%;
    top: 0;
    bottom: 0;
    width: 1.6%;
    background: repeating-linear-gradient(180deg, var(--ln-gold) 0 22px, transparent 22px 40px);
}
.lmk-cat-fil { display: flex; align-items: center; gap: .45rem; font-size: .8rem; color: #b7c3da; margin-bottom: 1.4rem; }
.lmk-cat-fil a { color: #dbe2f0; text-decoration: none; }
.lmk-cat-fil a:hover { color: var(--ln-gold); }
.lmk-cat-fil .bi { font-size: .65rem; opacity: .6; }
.lmk-cat-surtitre {
    display: inline-flex;
    align-items: center;
    padding: .3rem .8rem;
    border-radius: 999px;
    font-size: .78rem;
    font-weight: 600;
    color: var(--ln-gold);
    background: rgba(247, 194, 16, .12);
    border: 1px solid rgba(247, 194, 16, .35);
}
body.lmk-public .lmk-cat-titre { color: #fff; font-size: clamp(1.8rem, 3.6vw, 2.7rem); font-weight: 800; line-height: 1.12; margin: .9rem 0 .7rem; }
.lmk-cat-titre span { color: var(--ln-gold); }
.lmk-cat-intro { color: #c9d3e6; max-width: 34rem; margin: 0; }
.lmk-cat-recherche {
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: .45rem .45rem .45rem 1.1rem;
    background: #fff;
    border-radius: 1rem;
    box-shadow: 0 1.2rem 3rem rgba(0, 0, 0, .3);
}
.lmk-cat-recherche > .bi { color: var(--lmk-gris); font-size: 1.1rem; }
.lmk-cat-recherche input { flex: 1; min-width: 0; border: 0; outline: 0; font-size: 1rem; color: var(--lmk-encre); background: transparent; padding: .55rem 0; }
.lmk-cat-recherche .btn { flex-shrink: 0; white-space: nowrap; border-radius: .7rem; padding: .6rem 1.2rem; }
.lmk-cat-recherche:focus-within { box-shadow: 0 0 0 4px rgba(247, 194, 16, .45), 0 1.2rem 3rem rgba(0, 0, 0, .3); }

.lmk-cat-domaines {
    display: flex;
    gap: .55rem;
    margin-top: 2rem;
    padding-bottom: 1.6rem;
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-mask-image: linear-gradient(90deg, #000 92%, transparent);
    mask-image: linear-gradient(90deg, #000 92%, transparent);
}
.lmk-cat-domaines::-webkit-scrollbar { display: none; }
.lmk-cat-puce {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    flex-shrink: 0;
    padding: .55rem 1rem;
    border-radius: 999px;
    font-size: .86rem;
    font-weight: 500;
    color: #e7ecf5;
    text-decoration: none;
    background: rgba(255, 255, 255, .07);
    border: 1px solid rgba(255, 255, 255, .14);
    transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.lmk-cat-puce:hover { color: #fff; background: rgba(255, 255, 255, .14); border-color: rgba(247, 194, 16, .5); }
.lmk-cat-puce.active { color: var(--ln-navy); background: var(--ln-gold); border-color: var(--ln-gold); font-weight: 600; }

.lmk-cat-corps {
    padding: 2.25rem 0 3.5rem;
    background:
        radial-gradient(circle at 1px 1px, rgba(11, 31, 60, .06) 1px, transparent 0) 0 0 / 22px 22px,
        linear-gradient(180deg, #f3f6fb 0%, #fbfcfe 60%, #fff 100%);
}

.lmk-cat-bouton-filtres {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: .8rem 1.1rem;
    background: #fff;
    border: 1px solid #e3e8f1;
    border-radius: .9rem;
    font-weight: 600;
    color: var(--ln-navy);
    box-shadow: var(--lmk-ombre);
}
.lmk-cat-compteur { display: inline-flex; align-items: center; justify-content: center; min-width: 1.5rem; height: 1.5rem; border-radius: 999px; font-size: .75rem; background: var(--ln-gold); color: var(--ln-navy); }
@media (max-width: 991.98px) { #lmkFiltresZone { margin-top: .75rem; } }

.lmk-cat-filtres {
    position: relative;
    padding: 1.25rem 1.2rem 1.3rem;
    background: #fff;
    border-radius: 1.1rem;
    border: 1px solid #edf0f6;
    box-shadow: var(--lmk-ombre);
    overflow: hidden;
}
.lmk-cat-filtres::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 4px;
    background: linear-gradient(to right, var(--ln-green) 0 30%, var(--ln-gold) 30% 60%, var(--ln-red) 60% 100%);
}
@media (min-width: 992px) { .lmk-cat-filtres { position: sticky; top: 96px; } }
.lmk-cat-filtres-tete { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1rem; }
body.lmk-public .lmk-cat-filtres-tete h2 { font-size: 1rem; font-weight: 700; margin: 0; display: flex; align-items: center; gap: .5rem; }
.lmk-cat-filtres-tete a { font-size: .8rem; color: var(--ln-red); text-decoration: none; }
.lmk-cat-groupe { margin-bottom: 1.15rem; border: 0; padding: 0; min-width: 0; }
.lmk-cat-legende { display: block; float: none; width: auto; font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--lmk-gris); margin-bottom: .45rem; padding: 0; }
.lmk-cat-filtres .form-select { border-radius: .7rem; border-color: #e3e8f1; font-size: .9rem; padding-top: .55rem; padding-bottom: .55rem; }
.lmk-cat-filtres .form-select:focus { border-color: var(--ln-gold); box-shadow: 0 0 0 .2rem rgba(247, 194, 16, .25); }
.lmk-cat-choix { display: flex; flex-wrap: wrap; gap: .4rem; }
.lmk-cat-choix label {
    display: inline-flex;
    align-items: center;
    padding: .4rem .8rem;
    border-radius: 999px;
    font-size: .82rem;
    font-weight: 500;
    color: var(--lmk-gris-fonce);
    background: #f4f6fb;
    border: 1px solid transparent;
    cursor: pointer;
    transition: all .15s ease;
}
.lmk-cat-choix label:hover { background: #fff; border-color: #d6dded; color: var(--ln-navy); }
.lmk-cat-choix .btn-check:checked + label { background: var(--ln-navy); color: #fff; border-color: var(--ln-navy); }
.lmk-cat-choix .btn-check:focus-visible + label { box-shadow: 0 0 0 .2rem rgba(247, 194, 16, .45); }

.lmk-cat-certif {
    margin-top: 1rem;
    padding: 1.1rem 1.15rem;
    border-radius: 1.1rem;
    color: #fff;
    background: radial-gradient(circle at 100% 0, rgba(247, 194, 16, .3), transparent 60%), linear-gradient(135deg, var(--ln-navy), var(--ln-navy-light));
}
.lmk-cat-certif .bi { font-size: 1.6rem; color: var(--ln-gold); display: block; margin-bottom: .35rem; }
.lmk-cat-certif strong { display: block; font-size: .95rem; }
.lmk-cat-certif p { font-size: .8rem; color: #c9d3e6; margin: .3rem 0 0; }

.lmk-cat-barre { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: 1.25rem; }
.lmk-cat-barre strong { color: var(--ln-navy); font-size: 1.05rem; }
.lmk-cat-actifs { display: flex; flex-wrap: wrap; gap: .4rem; list-style: none; margin: 0; padding: 0; }
.lmk-cat-actifs a {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    padding: .3rem .45rem .3rem .8rem;
    border-radius: 999px;
    font-size: .8rem;
    font-weight: 500;
    text-decoration: none;
    color: var(--ln-navy);
    background: #fef4d3;
    border: 1px solid #f6dd85;
}
.lmk-cat-actifs a:hover { background: #fde9a6; }
.lmk-cat-actifs .bi { font-size: 1rem; }

.lmk-cat-vide { text-align: center; padding: 3rem 1.5rem; background: #fff; border-radius: 1.2rem; border: 1px dashed #d6dded; }
.lmk-cat-vide-icone { display: inline-flex; align-items: center; justify-content: center; width: 4.5rem; height: 4.5rem; border-radius: 50%; font-size: 2rem; color: var(--ln-navy); background: #fef4d3; margin-bottom: 1rem; }
body.lmk-public .lmk-cat-vide h2 { font-size: 1.2rem; font-weight: 700; }
.lmk-cat-vide p { color: var(--lmk-gris-fonce); max-width: 28rem; margin: .5rem auto 1.25rem; }

.lmk-cat-appel {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
    margin-top: 3.5rem;
    padding: 1.8rem 2rem;
    border-radius: 1.3rem;
    color: #fff;
    background: radial-gradient(500px 200px at 100% 0, rgba(247, 194, 16, .25), transparent 60%), linear-gradient(135deg, var(--ln-navy) 0%, var(--ln-navy-light) 100%);
    box-shadow: 0 1.2rem 3rem rgba(11, 31, 60, .2);
}
body.lmk-public .lmk-cat-appel h2 { color: #fff; font-size: 1.35rem; font-weight: 700; margin: 0 0 .3rem; }
.lmk-cat-appel p { color: #c9d3e6; margin: 0; }

.lmk .pagination { gap: .35rem; }
.lmk .pagination .page-link { border-radius: .6rem !important; border: 1px solid #e3e8f1; min-width: 2.4rem; text-align: center; }

@media (max-width: 575.98px) {
    .lmk-cat-heros { padding-top: 1.5rem; }
    .lmk-cat-route { width: 240px; height: 220px; right: -60px; opacity: .3; }
    .lmk-cat-recherche { padding-left: .9rem; }
    .lmk-cat-recherche .btn { padding: .55rem .8rem; }
    .lmk-cat-appel { padding: 1.4rem 1.25rem; }
    .lmk-cat-appel .btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    .lmk-formation, .lmk-formation-visuel img, .lmk-visuel-icone, .lmk-formation-lien .bi { transition: none; }
}

/* Pagination LMK */
.lmk-pagination { display: flex; flex-direction: column; align-items: center; gap: .8rem; }
.lmk-pagination-resume { margin: 0; font-size: .85rem; color: var(--lmk-gris-fonce); }
.lmk-pagination-resume strong { color: var(--ln-navy); }
.lmk-pagination ul { display: flex; flex-wrap: wrap; justify-content: center; gap: .4rem; list-style: none; margin: 0; padding: 0; }
.lmk-page {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    min-width: 2.6rem;
    height: 2.6rem;
    padding: 0 .8rem;
    border-radius: .8rem;
    font-weight: 600;
    font-size: .9rem;
    color: var(--ln-navy);
    text-decoration: none;
    background: #fff;
    border: 1px solid #e3e8f1;
    box-shadow: 0 .25rem .6rem rgba(11, 31, 60, .05);
    transition: all .15s ease;
}
a.lmk-page:hover { border-color: var(--ln-gold); color: var(--ln-navy); background: #fef4d3; transform: translateY(-1px); }
.lmk-page.active { background: var(--ln-navy); border-color: var(--ln-navy); color: #fff; box-shadow: 0 .5rem 1rem rgba(11, 31, 60, .25); }
.lmk-page.desactive { color: #b5bdcc; background: transparent; box-shadow: none; border-color: transparent; }
.lmk-page-fleche.desactive { border-color: #eef1f6; }

/* ============================================ Connexion / inscription apprenant */
.lmk-auth {
    padding: 2.5rem 0 3rem;
    background:
        radial-gradient(circle at 1px 1px, rgba(11, 31, 60, .06) 1px, transparent 0) 0 0 / 22px 22px,
        linear-gradient(180deg, #eef2f9 0%, #f8fafd 100%);
}
.lmk-auth-cadre {
    display: grid;
    grid-template-columns: 5fr 6fr;
    max-width: 1080px;
    margin: 0 auto;
    background: #fff;
    border-radius: 1.6rem;
    overflow: hidden;
    box-shadow: 0 2rem 4rem rgba(11, 31, 60, .14);
}
.lmk-auth-panneau {
    position: relative;
    overflow: hidden;
    color: #fff;
    padding: 2.6rem 2.4rem;
    background:
        radial-gradient(520px 320px at 100% 0, rgba(247, 194, 16, .22), transparent 60%),
        radial-gradient(420px 280px at 0 100%, rgba(32, 128, 64, .28), transparent 60%),
        linear-gradient(160deg, var(--ln-navy) 0%, var(--ln-navy-dark) 100%);
}
.lmk-auth-route {
    position: absolute;
    right: -70px;
    bottom: -20px;
    width: 300px;
    height: 330px;
    background: linear-gradient(90deg, var(--ln-green) 0 6%, transparent 6% 10%, rgba(255, 255, 255, .07) 10% 90%, transparent 90% 94%, var(--ln-red) 94% 100%);
    clip-path: polygon(44% 0, 56% 0, 100% 100%, 0 100%);
    transform: skewX(-18deg);
    opacity: .4;
    pointer-events: none;
}
.lmk-auth-route::after {
    content: "";
    position: absolute;
    left: 49.2%;
    top: 0;
    bottom: 0;
    width: 1.6%;
    background: repeating-linear-gradient(180deg, var(--ln-gold) 0 18px, transparent 18px 34px);
}
.lmk-auth-panneau-contenu { position: relative; display: flex; flex-direction: column; height: 100%; }
.lmk-auth-marque { display: inline-flex; flex-direction: column; gap: .35rem; text-decoration: none; align-self: flex-start; }
.lmk-auth-marque img { width: 150px; height: auto; }
.lmk-auth-marque span { font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--ln-gold); font-weight: 600; }
body.lmk-public .lmk-auth-accroche { color: #fff; font-size: 1.85rem; font-weight: 800; line-height: 1.2; margin: 2.2rem 0 .8rem; }
.lmk-auth-accroche span { color: var(--ln-gold); }
.lmk-auth-texte { color: #c9d3e6; font-size: .95rem; margin-bottom: 1.8rem; }
.lmk-auth-atouts { list-style: none; padding: 0; margin: auto 0 0; display: grid; gap: 1rem; }
.lmk-auth-atouts li { display: flex; gap: .85rem; align-items: flex-start; font-size: .84rem; color: #c9d3e6; }
.lmk-auth-atouts li > span {
    flex: 0 0 2.5rem;
    height: 2.5rem;
    border-radius: .8rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.15rem;
    color: var(--ln-gold);
    background: rgba(247, 194, 16, .12);
    border: 1px solid rgba(247, 194, 16, .3);
}
.lmk-auth-atouts strong { display: block; color: #fff; font-size: .92rem; margin-bottom: .1rem; }

.lmk-auth-formulaire { padding: 2.6rem 2.8rem; }
.lmk-auth-pastille {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .3rem .8rem;
    border-radius: 999px;
    font-size: .75rem;
    font-weight: 600;
    color: #8a6a06;
    background: #fef4d3;
}
body.lmk-public .lmk-auth-titre { font-size: 1.9rem; font-weight: 800; margin: .9rem 0 .3rem; }
.lmk-auth-sous-titre { color: var(--lmk-gris-fonce); margin-bottom: 1.8rem; }
.lmk-auth-formulaire a:not(.lmk-auth-compagnie) { color: var(--ln-navy); font-weight: 600; text-decoration-color: var(--ln-gold); text-underline-offset: 3px; }

.lmk-auth-champ { margin-bottom: 1.1rem; }
.lmk-auth-champ > label { display: block; font-size: .84rem; font-weight: 600; color: var(--ln-navy); margin-bottom: .4rem; }
.lmk-auth-saisie {
    display: flex;
    align-items: center;
    gap: .6rem;
    padding: 0 .9rem;
    background: #f7f9fc;
    border: 1.5px solid #e3e8f1;
    border-radius: .9rem;
    transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.lmk-auth-saisie > .bi { color: var(--lmk-gris); font-size: 1.05rem; }
.lmk-auth-saisie input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; padding: .8rem 0; font-size: .95rem; color: var(--lmk-encre); }
.lmk-auth-saisie input::placeholder { color: #a7b0c0; }
.lmk-auth-saisie:focus-within { background: #fff; border-color: var(--ln-navy); box-shadow: 0 0 0 4px rgba(247, 194, 16, .25); }
.lmk-auth-saisie:focus-within > .bi { color: var(--ln-navy); }
.lmk-auth-saisie.invalide { border-color: var(--ln-red); background: #fff7f7; }
.lmk-auth-erreur { color: var(--ln-red); font-size: .8rem; margin-top: .35rem; }
.lmk-auth-oeil { border: 0; background: transparent; color: var(--lmk-gris); padding: .4rem; border-radius: .5rem; line-height: 1; }
.lmk-auth-oeil:hover, .lmk-auth-oeil:focus-visible { color: var(--ln-navy); background: #eef1f8; }

.lmk-auth-force { display: grid; grid-template-columns: repeat(4, 1fr); gap: .3rem; margin-top: -.3rem; }
.lmk-auth-force span { height: 4px; border-radius: 2px; background: #e6eaf2; transition: background .2s ease; }
.lmk-auth-force[data-niveau="1"] span:nth-child(-n+1) { background: var(--ln-red); }
.lmk-auth-force[data-niveau="2"] span:nth-child(-n+2) { background: var(--ln-gold); }
.lmk-auth-force[data-niveau="3"] span:nth-child(-n+3) { background: #7cb342; }
.lmk-auth-force[data-niveau="4"] span { background: var(--ln-green); }
.lmk-auth-aide { font-size: .78rem; color: var(--lmk-gris-fonce); margin: .4rem 0 1.1rem; }

.lmk-auth-consentement { font-size: .8rem; color: var(--lmk-gris-fonce); margin-bottom: 1.4rem; padding: .85rem 1rem .85rem 2.4rem; background: #f7f9fc; border-radius: .8rem; }
.lmk-auth .form-check-input:checked { background-color: var(--ln-navy); border-color: var(--ln-navy); }
.lmk-auth .form-check-input:focus { box-shadow: 0 0 0 .2rem rgba(247, 194, 16, .35); border-color: var(--ln-navy); }

.lmk-auth-bouton { width: 100%; padding: .85rem 1rem; font-size: 1rem; font-weight: 600; border-radius: .9rem; display: inline-flex; align-items: center; justify-content: center; box-shadow: 0 .8rem 1.6rem rgba(11, 31, 60, .2); }
.lmk-auth-bouton .bi { transition: transform .2s ease; }
.lmk-auth-bouton:hover .bi { transform: translateX(4px); }

.lmk-auth-separateur { display: flex; align-items: center; gap: .8rem; margin: 1.6rem 0; color: var(--lmk-gris); font-size: .8rem; text-transform: uppercase; letter-spacing: .1em; }
.lmk-auth-separateur::before, .lmk-auth-separateur::after { content: ""; flex: 1; height: 1px; background: #e6eaf2; }
.lmk-auth-compagnie {
    display: flex;
    align-items: center;
    gap: .9rem;
    padding: 1rem 1.1rem;
    border-radius: 1rem;
    border: 1.5px solid #e3e8f1;
    color: var(--lmk-gris-fonce);
    font-size: .82rem;
    text-decoration: none;
    transition: border-color .15s ease, background .15s ease, transform .15s ease;
}
.lmk-auth-compagnie strong { display: block; color: var(--ln-navy); font-size: .92rem; margin-bottom: .1rem; }
.lmk-auth-compagnie:hover { border-color: var(--ln-gold); background: #fffbeb; transform: translateY(-1px); color: var(--lmk-gris-fonce); }
.lmk-auth-compagnie > .bi { color: var(--ln-navy); }
.lmk-auth-compagnie-icone { flex: 0 0 2.6rem; height: 2.6rem; border-radius: .8rem; display: flex; align-items: center; justify-content: center; font-size: 1.2rem; color: var(--ln-navy); background: #e7ecf5; }

@media (max-width: 991.98px) {
    .lmk-auth-cadre { grid-template-columns: 1fr; max-width: 620px; }
    .lmk-auth-panneau { padding: 1.8rem 1.6rem; }
    .lmk-auth-atouts, .lmk-auth-route { display: none; }
    body.lmk-public .lmk-auth-accroche { font-size: 1.45rem; margin-top: 1.4rem; }
    .lmk-auth-texte { margin-bottom: 0; }
}
@media (max-width: 575.98px) {
    .lmk-auth { padding: 1rem 0 2rem; }
    .lmk-auth-cadre { border-radius: 1.2rem; }
    .lmk-auth-formulaire { padding: 1.8rem 1.25rem; }
    body.lmk-public .lmk-auth-titre { font-size: 1.6rem; }
}
@media (prefers-reduced-motion: reduce) {
    .lmk-auth-bouton .bi, .lmk-auth-compagnie { transition: none; }
}

/* Fiche formation : en-tête de module (nombre de leçons calé à droite) */
.lmk-module-entete { gap: .75rem; }
.lmk-module-entete-titre { flex: 1 1 auto; min-width: 0; }
.lmk-module-entete-nombre {
    flex: 0 0 auto;
    margin-left: auto;
    margin-right: .75rem;
    padding: .2rem .65rem;
    border-radius: 999px;
    font-size: .78rem;
    font-weight: 600;
    white-space: nowrap;
    color: var(--ln-navy-light);
    background: #eef1f8;
}

/* Fiche formation : blocs Prérequis / Public visé, même typographie */
.lmk-bloc-info { padding: 1.15rem 1.25rem; border-radius: 1rem; background: #f7f9fc; border: 1px solid #edf0f6; }
body.lmk-public .lmk-bloc-info-titre { display: flex; align-items: center; gap: .5rem; font-size: 1.05rem; font-weight: 700; margin: 0 0 .6rem; }
.lmk-bloc-info-titre .bi { color: #a07708; }
.lmk-prose.lmk-bloc-info-texte { font-size: .92rem; line-height: 1.65; color: var(--lmk-gris-fonce); max-width: none; }
.lmk-bloc-info-texte > :last-child { margin-bottom: 0; }
.lmk-bloc-info-texte ul, .lmk-bloc-info-texte ol { padding-left: 1.15rem; margin-bottom: 0; }

/* Alertes de notification en bas à droite (layouts/app). */
.lmk-alertes { z-index: 1090; }
.lmk-alerte { border-left: 4px solid var(--ln-green, #208040); }
.lmk-alerte .toast-header .bi { color: var(--ln-green, #208040); }
.lmk-alerte .toast-body:hover { background: rgba(32, 128, 64, .06); }
@media (max-width: 991.98px) {
    /* Au-dessus de la barre de navigation du bas. */
    .lmk-alertes { bottom: 64px !important; }
}
