/*
 * Cogsonomy Formations — Frontend CSS
 * Compatible Elementor / thèmes standards
 * Utilise CSS custom properties pour la couleur d'accent par formation.
 */

/* ═══════════════════════════════════════════════════════════
   Variables globales
═══════════════════════════════════════════════════════════ */
:root {
    --cogso-accent:        #3a5a8c;
    --cogso-accent-light:  #eef2f8;
    --cogso-text:          #1a1a2e;
    --cogso-text-light:    #5a5a7a;
    --cogso-border:        #e2e8f0;
    --cogso-bg:            #ffffff;
    --cogso-bg-alt:        #f8fafc;
    --cogso-radius:        12px;
    --cogso-radius-sm:     6px;
    --cogso-shadow:        0 2px 12px rgba(0,0,0,.08);
    --cogso-shadow-hover:  0 8px 30px rgba(0,0,0,.14);
    --cogso-font:          inherit;
    --cogso-transition:    .22s ease;
}

/* ═══════════════════════════════════════════════════════════
   Badges niveau & type
═══════════════════════════════════════════════════════════ */
.cogso-badge {
    display: inline-flex;
    align-items: center;
    gap: .3em;
    padding: .25em .75em;
    border-radius: 50px;
    font-size: .75rem;
    font-weight: 600;
    letter-spacing: .03em;
    line-height: 1.4;
}

.cogso-badge--debutant      { background: #d1fae5; color: #065f46; }
.cogso-badge--intermediaire { background: #fef3c7; color: #92400e; }
.cogso-badge--avance        { background: #dbeafe; color: #1e40af; }
.cogso-badge--expert        { background: #ede9fe; color: #4c1d95; }
.cogso-badge--type          { background: #e0f2fe; color: #0369a1; }

/* ═══════════════════════════════════════════════════════════
   Chips d'info (durée, tarif…)
═══════════════════════════════════════════════════════════ */
.cogso-info-chip {
    display: inline-flex;
    align-items: center;
    gap: .3em;
    background: var(--cogso-bg-alt);
    border: 1px solid var(--cogso-border);
    border-radius: 50px;
    padding: .3em .85em;
    font-size: .8rem;
    color: var(--cogso-text);
    white-space: nowrap;
}

/* ═══════════════════════════════════════════════════════════
   HERO — bannière de présentation
═══════════════════════════════════════════════════════════ */
.cogso-hero {
    background: linear-gradient(135deg, var(--cogso-accent) 0%, color-mix(in srgb, var(--cogso-accent) 70%, #000) 100%);
    color: #fff;
    padding: 3.5rem 2rem 3rem;
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    gap: 2rem;
    border-radius: var(--cogso-radius);
    margin-bottom: 2.5rem;
}

.cogso-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 70% 50%, rgba(255,255,255,.07) 0%, transparent 70%);
    pointer-events: none;
}

.cogso-hero__inner { flex: 1; min-width: 0; }

.cogso-hero__domaine {
    font-size: .8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .1em;
    opacity: .75;
    margin-bottom: .6rem;
}

.cogso-hero__titre {
    font-size: clamp(1.5rem, 3vw, 2.4rem);
    font-weight: 800;
    line-height: 1.2;
    margin: 0 0 .8rem;
    color: #fff !important;
}

.cogso-hero__picto {
    display: inline-block;
    margin-right: .4em;
    font-size: 1em;
}

.cogso-hero__accroche {
    font-size: 1.05rem;
    opacity: .9;
    margin: 0 0 1.2rem;
    max-width: 60ch;
    line-height: 1.6;
}

.cogso-hero__badges {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-bottom: 1rem;
}

.cogso-hero__badges .cogso-badge {
    background: rgba(255,255,255,.18);
    color: #fff;
    border: 1px solid rgba(255,255,255,.3);
    backdrop-filter: blur(4px);
}

.cogso-hero__chips {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.cogso-hero__chips .cogso-info-chip {
    background: rgba(255,255,255,.15);
    border-color: rgba(255,255,255,.25);
    color: #fff;
}

.cogso-hero__visuel {
    flex: 0 0 260px;
    max-width: 260px;
}

.cogso-hero__img {
    width: 100%;
    height: 180px;
    object-fit: cover;
    border-radius: var(--cogso-radius-sm);
    box-shadow: 0 4px 20px rgba(0,0,0,.25);
}

/* ═══════════════════════════════════════════════════════════
   SECTIONS de contenu
═══════════════════════════════════════════════════════════ */
.cogso-detail,
.cogso-formation-corps {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.cogso-section {
    background: var(--cogso-bg);
    border: 1px solid var(--cogso-border);
    border-radius: var(--cogso-radius);
    padding: 2rem;
    box-shadow: var(--cogso-shadow);
    border-left: 4px solid #cbd5e1;
}

.cogso-section__titre {
    font-size: 1.2rem;
    font-weight: 700;
    margin: 0 0 1.25rem;
    color: var(--cogso-text) !important;
    display: flex;
    align-items: center;
    gap: .5em;
}

.cogso-section h3 {
    font-size: .95rem;
    font-weight: 700;
    color: var(--cogso-text);
    margin: 0 0 .5rem;
}

.cogso-subsection {
    background: var(--cogso-bg-alt);
    border-radius: var(--cogso-radius-sm);
    padding: 1rem 1.25rem;
    margin-top: 1rem;
}

/* Objectifs */
.cogso-objectifs-liste {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: .6rem;
}

.cogso-objectifs-liste li {
    padding: .55rem .75rem .55rem 2.2rem;
    position: relative;
    background: var(--cogso-bg-alt);
    border-radius: var(--cogso-radius-sm);
    font-size: .95rem;
    line-height: 1.5;
}

.cogso-objectifs-liste li::before {
    content: '✓';
    position: absolute;
    left: .7rem;
    color: #059669;
    font-weight: 700;
    font-size: .9em;
}

/* Programme */
.cogso-programme-contenu {
    line-height: 1.7;
    font-size: .93rem;   /* aligné sur le corps de texte, pas plus grand */
}

/* Titres dans l'éditeur wp_editor */
.cogso-programme-contenu h1 { font-size: 1.3rem; font-weight: 700; margin: 1.2em 0 .4em; color: var(--cogso-text); }
.cogso-programme-contenu h2 { font-size: 1.15rem; font-weight: 700; margin: 1.1em 0 .4em; color: var(--cogso-text); }
.cogso-programme-contenu h3 { font-size: 1rem;   font-weight: 700; margin: 1em 0 .35em;  color: var(--cogso-text); }
.cogso-programme-contenu h4 { font-size: .93rem; font-weight: 700; margin: .9em 0 .3em;  color: var(--cogso-text); }

/* Listes : préserver ce que l'éditeur génère */
.cogso-programme-contenu ul,
.cogso-programme-contenu ol  { padding-left: 1.6rem; margin: .5em 0 .75em; }
.cogso-programme-contenu ul  { list-style-type: disc; }
.cogso-programme-contenu ol  { list-style-type: decimal; }
.cogso-programme-contenu li  { margin-bottom: .3rem; display: list-item; }

/* Nested lists */
.cogso-programme-contenu ul ul,
.cogso-programme-contenu ol ul { list-style-type: circle; margin: .25em 0 .25em 1rem; }

/* Paragraphes */
.cogso-programme-contenu p   { margin: 0 0 .7em; }

/* Strong / em */
.cogso-programme-contenu strong { font-weight: 700; }
.cogso-programme-contenu em     { font-style: italic; }

/* Les trois sous-blocs de Programme partagent la même bordure verte */
.cogso-subsection--methodes,
.cogso-subsection--ressources,
.cogso-subsection--suivi {
    border-left: 3px solid #10b981;
}

/* Public */
.cogso-deux-cols {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 1rem;
}

.cogso-participants {
    margin-top: 1rem;
    font-size: .88rem;
    color: var(--cogso-text-light);
    background: #f1f5f9;
    padding: .5rem 1rem;
    border-radius: var(--cogso-radius-sm);
}

/* Modalités */
.cogso-modalites-grille {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 1rem;
    margin-bottom: 1rem;
}

.cogso-modalite-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    background: var(--cogso-bg-alt);
    border: 1px solid var(--cogso-border);
    border-radius: var(--cogso-radius-sm);
    padding: 1rem .75rem;
    gap: .3rem;
}

.cogso-modalite-icon { font-size: 1.6rem; }

.cogso-modalite-label {
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--cogso-text-light);
    font-weight: 600;
}

.cogso-modalite-value {
    font-weight: 700;
    font-size: .97rem;
    color: var(--cogso-text);
}

.cogso-tarif-mention {
    font-size: .85rem;
    color: var(--cogso-text-light);
    margin: .5rem 0 0;
    font-style: italic;
}

.cogso-financement {
    font-size: .9rem;
    background: #fef9c3;
    border-left: 3px solid #eab308;
    padding: .6rem 1rem;
    border-radius: 0 var(--cogso-radius-sm) var(--cogso-radius-sm) 0;
    margin-top: .75rem;
}

/* Évaluations */
.cogso-eval-grille {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 1rem;
}

.cogso-eval-item {
    background: var(--cogso-bg-alt);
    border-radius: var(--cogso-radius-sm);
    padding: 1rem 1.1rem;
    border-top: 3px solid transparent;
}

.cogso-eval-item--positionnement { border-top-color: #6366f1; }
.cogso-eval-item--formative       { border-top-color: #0ea5e9; }
.cogso-eval-item--finale          { border-top-color: #10b981; }
.cogso-eval-item--livrables       { border-top-color: #f59e0b; }

.cogso-eval-item h3 {
    font-size: .87rem;
    margin-bottom: .5rem;
}

.cogso-eval-item p {
    font-size: .88rem;
    color: var(--cogso-text-light);
    line-height: 1.55;
    margin: 0;
}

/* Formateur */
.cogso-formateur-card {
    display: flex;
    gap: 1.5rem;
    align-items: flex-start;
}

.cogso-formateur-photo {
    width: 90px;
    height: 90px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid var(--cogso-accent);
    flex-shrink: 0;
}

.cogso-formateur-infos {
    display: flex;
    flex-direction: column;
    gap: .3rem;
}

.cogso-formateur-nom {
    font-size: 1.05rem;
    color: var(--cogso-text);
}

.cogso-formateur-titre {
    font-size: .85rem;
    color: var(--cogso-accent);
    font-weight: 500;
}

.cogso-formateur-bio {
    font-size: .88rem;
    color: var(--cogso-text-light);
    line-height: 1.6;
    margin: .3rem 0 .5rem;
}

.cogso-linkedin-link {
    font-size: .83rem;
    color: #0077b5;
    text-decoration: none;
    font-weight: 600;
}

.cogso-linkedin-link:hover { text-decoration: underline; }

/* Qualiopi */
.cogso-section--qualiopi { border-left-color: #059669; }

.cogso-subsection--accessibilite {
    border-left: 3px solid #7c3aed;
}

.cogso-qualiopi-logo-mention {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin-top: 1.25rem;
    font-size: .85rem;
    color: var(--cogso-text-light);
    background: #f0fdf4;
    border-radius: var(--cogso-radius-sm);
    padding: .6rem 1rem;
}

.cogso-qualiopi-logo {
    height: 36px;
    width: auto;
    flex-shrink: 0;
}

/* ═══════════════════════════════════════════════════════════
   CATALOGUE — grille de cartes
═══════════════════════════════════════════════════════════ */
.cogso-catalogue { width: 100%; }

/* Filtres */
.cogso-catalogue__filtres {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-bottom: 2rem;
}

.cogso-filtre {
    padding: .4em 1.1em;
    border: 2px solid var(--cogso-border);
    border-radius: 50px;
    background: transparent;
    font-size: .85rem;
    font-weight: 600;
    cursor: pointer;
    color: var(--cogso-text);
    transition: all var(--cogso-transition);
    font-family: var(--cogso-font);
}

.cogso-filtre:hover,
.cogso-filtre--actif {
    border-color: var(--cogso-accent);
    background: var(--cogso-accent);
    color: #fff;
}

/* Grille */
.cogso-catalogue__grille {
    display: grid;
    gap: 1.75rem;
}

.cogso-grille--2col { grid-template-columns: repeat(2, 1fr); }
.cogso-grille--3col { grid-template-columns: repeat(3, 1fr); }
.cogso-grille--4col { grid-template-columns: repeat(4, 1fr); }

/* Carte */
.cogso-carte {
    background: var(--cogso-bg);
    border-radius: var(--cogso-radius);
    border: 1px solid var(--cogso-border);
    overflow: hidden;
    box-shadow: var(--cogso-shadow);
    transition: transform var(--cogso-transition), box-shadow var(--cogso-transition);
    display: flex;
    flex-direction: column;
    position: relative;
}

.cogso-carte:hover {
    transform: translateY(-4px);
    box-shadow: var(--cogso-shadow-hover);
}

/* Carte — visuel */
.cogso-carte__visuel {
    position: relative;
    height: 180px;
    overflow: hidden;
    background: linear-gradient(135deg, var(--cogso-accent) 0%, color-mix(in srgb, var(--cogso-accent) 60%, #000) 100%);
}

.cogso-carte__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .4s ease;
}

.cogso-carte:hover .cogso-carte__img { transform: scale(1.04); }

.cogso-carte__visuel--nophoto {
    display: flex;
    align-items: center;
    justify-content: center;
}

.cogso-carte__picto {
    font-size: 3.5rem;
    filter: drop-shadow(0 2px 8px rgba(0,0,0,.2));
    opacity: .85;
}

.cogso-carte__badges {
    position: absolute;
    top: .75rem;
    left: .75rem;
    display: flex;
    gap: .4rem;
    flex-wrap: wrap;
}

.cogso-carte__badges .cogso-badge {
    font-size: .68rem;
    padding: .2em .65em;
    background: rgba(0,0,0,.45);
    backdrop-filter: blur(6px);
    color: #fff;
    border: 1px solid rgba(255,255,255,.2);
}

/* Carte — corps */
.cogso-carte__corps {
    padding: 1.25rem;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: .6rem;
}

.cogso-carte__domaine {
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--cogso-accent);
}

.cogso-carte__titre {
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.3;
    margin: 0;
}

.cogso-carte__titre a {
    color: var(--cogso-text);
    text-decoration: none;
}

.cogso-carte__titre a:hover { color: var(--cogso-accent); }

.cogso-carte__accroche {
    font-size: .87rem;
    color: var(--cogso-text-light);
    line-height: 1.55;
    margin: 0;
    flex: 1;
}

.cogso-carte__infos {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin-top: auto;
}

.cogso-carte__infos .cogso-info-chip {
    font-size: .75rem;
    padding: .25em .7em;
}

.cogso-carte__cta {
    display: inline-block;
    margin-top: .5rem;
    font-size: .85rem;
    font-weight: 700;
    color: #3a5a8c;
    text-decoration: none;
    padding: .5rem 0;
    border-top: 1px solid var(--cogso-border);
    transition: gap var(--cogso-transition);
}

.cogso-carte__cta:hover { color: color-mix(in srgb, var(--cogso-accent) 80%, #000); }

/* Animation filtre */
.cogso-carte--masquee {
    display: none !important;
}

/* Catalogue vide */
.cogso-catalogue__empty {
    text-align: center;
    color: var(--cogso-text-light);
    padding: 3rem 1rem;
    font-style: italic;
}

/* ═══════════════════════════════════════════════════════════
   Responsive
═══════════════════════════════════════════════════════════ */
@media ( max-width: 1024px ) {
    .cogso-grille--4col { grid-template-columns: repeat(3, 1fr); }
    .cogso-grille--3col { grid-template-columns: repeat(2, 1fr); }
}

@media ( max-width: 768px ) {
    .cogso-hero {
        flex-direction: column;
        padding: 2rem 1.25rem;
    }

    .cogso-hero__visuel { display: none; }

    .cogso-grille--4col,
    .cogso-grille--3col,
    .cogso-grille--2col { grid-template-columns: 1fr; }

    .cogso-modalites-grille { grid-template-columns: repeat(2, 1fr); }
    .cogso-deux-cols         { grid-template-columns: 1fr; }
    .cogso-eval-grille       { grid-template-columns: 1fr; }

    .cogso-formateur-card { flex-direction: column; }
    .cogso-formateur-photo { width: 72px; height: 72px; }

    .cogso-section { padding: 1.25rem; }
}

@media ( max-width: 480px ) {
    .cogso-modalites-grille { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════════════════════
   Archive (page catalogue fallback)
═══════════════════════════════════════════════════════════ */
.cogso-page-catalogue { padding: 2rem 1rem; }

.cogso-catalogue-header {
    margin-bottom: 2.5rem;
    text-align: center;
}

.cogso-catalogue-titre {
    font-size: clamp(1.8rem, 4vw, 2.8rem);
    font-weight: 800;
    margin-bottom: .75rem;
}

.cogso-catalogue-description {
    color: var(--cogso-text-light);
    max-width: 60ch;
    margin: 0 auto;
    line-height: 1.65;
}


/* ═══════════════════════════════════════════════════════════
   SESSIONS
═══════════════════════════════════════════════════════════ */
.cogso-section--sessions { border-left-color: #7c3aed; }

.cogso-sessions-liste {
    display: flex;
    flex-direction: column;
    gap: .75rem;
}

.cogso-session {
    display: grid;
    grid-template-columns: minmax(140px, 1fr) 1fr auto;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.25rem;
    background: var(--cogso-bg-alt);
    border-radius: var(--cogso-radius-sm);
    border-left: 3px solid var(--cogso-border);
    transition: border-color var(--cogso-transition);
}

.cogso-session--ouvert      { border-left-color: #10b981; }
.cogso-session--complet     { border-left-color: #ef4444; }
.cogso-session--annule      { border-left-color: #9ca3af; opacity: .65; }
.cogso-session--sur_demande { border-left-color: #f59e0b; }

.cogso-session__date { display: flex; flex-direction: column; gap: .2rem; }

.cogso-session__date-val {
    font-weight: 700;
    font-size: .97rem;
    color: var(--cogso-text);
}

.cogso-session__horaire {
    font-size: .8rem;
    color: var(--cogso-text-light);
}

.cogso-session__meta {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    font-size: .85rem;
    color: var(--cogso-text-light);
}

.cogso-session__lieu,
.cogso-session__places {
    display: inline-flex;
    align-items: center;
    gap: .25em;
}

.cogso-session__actions {
    display: flex;
    align-items: center;
    gap: .75rem;
    flex-wrap: wrap;
    justify-content: flex-end;
}

/* Badges statut */
.cogso-session__statut {
    font-size: .75rem;
    font-weight: 700;
    padding: .25em .7em;
    border-radius: 50px;
    white-space: nowrap;
}

.cogso-session__statut--ouvert      { background: #d1fae5; color: #065f46; }
.cogso-session__statut--complet     { background: #fee2e2; color: #991b1b; }
.cogso-session__statut--annule      { background: #f3f4f6; color: #6b7280; }
.cogso-session__statut--sur_demande { background: #fef3c7; color: #92400e; }

/* Boutons CTA sessions */
.cogso-session__btn-inscription,
.cogso-session__btn-demande {
    display: inline-flex;
    align-items: center;
    padding: .4em 1em;
    border-radius: 50px;
    font-size: .82rem;
    font-weight: 700;
    text-decoration: none;
    transition: background var(--cogso-transition), color var(--cogso-transition);
    white-space: nowrap;
}

.cogso-session__btn-inscription {
    background: var(--cogso-accent);
    color: #fff;
}

.cogso-session__btn-inscription:hover {
    background: color-mix(in srgb, var(--cogso-accent) 80%, #000);
    color: #fff;
}

.cogso-session__btn-demande {
    background: #fef3c7;
    color: #92400e;
    border: 1px solid #fbbf24;
}

.cogso-session__btn-demande:hover {
    background: #fde68a;
}

/* Message contact */
.cogso-sessions__contact-mention {
    margin-top: 1.1rem;
    font-size: .87rem;
    color: var(--cogso-text-light);
    font-style: italic;
}

.cogso-sessions__contact-mention a {
    color: var(--cogso-accent);
    font-weight: 600;
}

/* Bloc sessions vide */
.cogso-section--sessions-vide {
    border-left-color: #d1d5db;
}

.cogso-sessions__vide {
    color: var(--cogso-text-light);
    font-size: .93rem;
    line-height: 1.65;
}

.cogso-sessions__vide a {
    color: var(--cogso-accent);
    font-weight: 600;
}

/* Responsive sessions */
@media ( max-width: 640px ) {
    .cogso-session {
        grid-template-columns: 1fr;
        gap: .6rem;
    }
    .cogso-session__actions { justify-content: flex-start; }
}

/* Mention Qualiopi sans logo */
.cogso-qualiopi-mention {
    margin-top: 1rem;
    font-size: .82rem;
    color: var(--cogso-text-light);
    background: #f0fdf4;
    border-radius: var(--cogso-radius-sm);
    padding: .5rem 1rem;
    border-left: 3px solid #059669;
}


/* ═══════════════════════════════════════════════════════════
   FORMATEURS — section dans une formation
═══════════════════════════════════════════════════════════ */
.cogso-section--formateurs { border-left-color: #0ea5e9; }

.cogso-formateurs-liste {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.cogso-formateurs-liste--multi {
    display: grid;
    grid-template-columns: repeat( auto-fill, minmax( 300px, 1fr ) );
    gap: 1.25rem;
}

.cogso-formateur-card {
    display: flex;
    gap: 1.25rem;
    align-items: flex-start;
    background: var(--cogso-bg-alt);
    border-radius: var(--cogso-radius-sm);
    padding: 1.1rem;
}

.cogso-formateur-card__visuel { flex-shrink: 0; }

.cogso-formateur-photo {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid var(--cogso-accent);
    display: block;
}

.cogso-formateur-photo--placeholder {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background: #f1f5f9;
    border: 3px solid var(--cogso-accent);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
}

.cogso-formateur-card__infos {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: .35rem;
}

.cogso-formateur-nom {
    font-size: 1rem;
    font-weight: 700;
}

.cogso-formateur-nom a {
    color: var(--cogso-text);
    text-decoration: none;
}

.cogso-formateur-nom a:hover { color: var(--cogso-accent); }

.cogso-formateur-titre {
    font-size: .84rem;
    color: var(--cogso-accent);
    font-weight: 500;
}

.cogso-formateur-specialites {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    margin: .2rem 0;
}

.cogso-specialite-tag {
    font-size: .72rem;
    background: #f1f5f9;
    color: var(--cogso-accent);
    padding: .2em .65em;
    border-radius: 50px;
    font-weight: 600;
    white-space: nowrap;
}

.cogso-specialite-tag--large {
    font-size: .82rem;
    padding: .3em .9em;
}

.cogso-formateur-bio {
    font-size: .86rem;
    color: var(--cogso-text-light);
    line-height: 1.55;
    margin: 0;
}

.cogso-formateur-links {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    margin-top: .4rem;
    align-items: center;
}

.cogso-formateur-profil-link {
    font-size: .82rem;
    font-weight: 700;
    color: var(--cogso-accent);
    text-decoration: none;
}

.cogso-formateur-profil-link:hover { text-decoration: underline; }

.cogso-linkedin-link {
    font-size: .8rem;
    color: #0077b5;
    font-weight: 600;
    text-decoration: none;
}

.cogso-linkedin-link:hover { text-decoration: underline; }

/* ═══════════════════════════════════════════════════════════
   PAGE PUBLIQUE FORMATEUR
═══════════════════════════════════════════════════════════ */
.cogso-page-formateur { padding: 0; }

/* Hero */
.cogso-formateur-hero {
    background: linear-gradient(135deg, #1e3a5f 0%, #2d5986 100%);
    color: #fff;
    padding: 3rem 2rem;
}

.cogso-formateur-hero__inner {
    max-width: 900px;
    margin: 0 auto;
    display: flex;
    gap: 2rem;
    align-items: center;
}

.cogso-formateur-hero__photo-wrap { flex-shrink: 0; }

.cogso-formateur-hero__photo {
    width: 160px;
    height: 160px;
    border-radius: 50%;
    object-fit: cover;
    border: 4px solid rgba(255,255,255,.3);
    box-shadow: 0 4px 20px rgba(0,0,0,.3);
}

.cogso-formateur-hero__content {
    flex: 1;
    min-width: 0;
}

.cogso-formateur-hero__nom {
    font-size: clamp(1.5rem, 3vw, 2.2rem);
    font-weight: 800;
    margin: 0 0 .4rem;
    color: #fff !important;
}

.cogso-formateur-hero__titre {
    font-size: 1.05rem;
    opacity: .85;
    margin: 0 0 1rem;
    color: #e0ecff;
}

.cogso-formateur-hero__chips {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-bottom: 1rem;
}

.cogso-formateur-hero__chips .cogso-info-chip {
    background: rgba(255,255,255,.15);
    border-color: rgba(255,255,255,.25);
    color: #fff;
}

.cogso-formateur-hero__social {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
}

.cogso-social-link {
    font-size: .85rem;
    font-weight: 600;
    padding: .35em .9em;
    border-radius: 50px;
    background: rgba(255,255,255,.15);
    color: #fff;
    text-decoration: none;
    border: 1px solid rgba(255,255,255,.25);
    transition: background var(--cogso-transition);
}

.cogso-social-link:hover { background: rgba(255,255,255,.28); color: #fff; }
.cogso-social-link--linkedin { background: rgba(0,119,181,.5); border-color: #0077b5; }
.cogso-social-link--linkedin:hover { background: #0077b5; }

/* Corps */
.cogso-formateur-corps {
    max-width: 900px;
    margin: 2rem auto;
    padding: 0 1rem;
    display: flex;
    flex-direction: column;
    gap: 1.75rem;
}

.cogso-formateur-bio-texte {
    font-size: 1rem;
    line-height: 1.75;
    color: var(--cogso-text);
}

.cogso-formateur-bio-detail {
    margin-top: .75rem;
    font-size: .95rem;
    line-height: 1.7;
    color: var(--cogso-text);
    border-top: 1px solid var(--cogso-border);
    padding-top: .75rem;
}

/* Spécialités */
.cogso-specialites-grille {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
}

/* Certifications */
.cogso-certifications {
    font-size: .93rem;
    line-height: 1.65;
    color: var(--cogso-text);
}

/* Grille des formations du formateur */
.cogso-section--formations-formateur { border-left-color: #7c3aed; }

.cogso-formations-formateur-grille {
    display: grid;
    grid-template-columns: repeat( auto-fill, minmax( 220px, 1fr ) );
    gap: 1rem;
}

.cogso-fmt-formation-card {
    display: flex;
    flex-direction: column;
    background: var(--cogso-bg);
    border: 1px solid var(--cogso-border);
    border-radius: var(--cogso-radius-sm);
    overflow: hidden;
    text-decoration: none;
    transition: transform var(--cogso-transition), box-shadow var(--cogso-transition);
    border-top: 3px solid var(--cogso-accent);
}

.cogso-fmt-formation-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--cogso-shadow-hover);
}

.cogso-fmt-formation-card__visuel {
    height: 100px;
    overflow: hidden;
    background: linear-gradient(135deg, var(--cogso-accent) 0%, color-mix(in srgb, var(--cogso-accent) 60%, #000) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
}

.cogso-fmt-formation-card__visuel img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.cogso-fmt-formation-card__picto { font-size: 2.5rem; opacity: .8; }

.cogso-fmt-formation-card__content {
    padding: .85rem;
    display: flex;
    flex-direction: column;
    gap: .35rem;
    flex: 1;
}

.cogso-fmt-formation-card__content strong {
    font-size: .93rem;
    color: var(--cogso-text);
    line-height: 1.3;
}

.cogso-fmt-formation-card__accroche {
    font-size: .8rem;
    color: var(--cogso-text-light);
    line-height: 1.45;
}

.cogso-fmt-formation-card__chips {
    display: flex;
    flex-wrap: wrap;
    gap: .3rem;
    margin-top: auto;
    padding-top: .35rem;
}

.cogso-fmt-formation-card__chips .cogso-info-chip {
    font-size: .72rem;
    padding: .2em .6em;
}

/* Carte formateur dans le catalogue */
.cogso-carte--formateur .cogso-carte__visuel--formateur img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
}

/* Admin — checkboxes formateurs */
.cogso-formateurs-checkboxes {
    display: flex;
    flex-direction: column;
    gap: 8px;
    max-height: 300px;
    overflow-y: auto;
    padding: 4px 2px;
}

.cogso-fmt-checkbox-label {
    display: flex !important;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    cursor: pointer;
    padding: 4px 6px;
    border-radius: 4px;
    transition: background .12s;
}

.cogso-fmt-checkbox-label:hover { background: #f0f0f1; }

.cogso-fmt-thumb {
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
    border: 2px solid #ddd;
}

/* Responsive formateur hero */
@media ( max-width: 640px ) {
    .cogso-formateur-hero__inner {
        flex-direction: column;
        text-align: center;
        gap: 1.25rem;
    }
    .cogso-formateur-hero__social { justify-content: center; }
    .cogso-formateur-hero__chips  { justify-content: center; }
    .cogso-formateurs-liste--multi { grid-template-columns: 1fr; }
    .cogso-formations-formateur-grille { grid-template-columns: 1fr; }
}


/* ═══════════════════════════════════════════════════════════
   DOCUMENTS PDF (règlement intérieur, CGV)
═══════════════════════════════════════════════════════════ */
.cogso-section--documents { border-left-color: #94a3b8; }

.cogso-documents-liste {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
}

.cogso-document-link {
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    padding: .7rem 1.1rem;
    background: var(--cogso-bg-alt);
    border: 1px solid var(--cogso-border);
    border-radius: var(--cogso-radius-sm);
    text-decoration: none;
    color: var(--cogso-text);
    font-size: .88rem;
    font-weight: 600;
    transition: background var(--cogso-transition), border-color var(--cogso-transition);
}

.cogso-document-link:hover {
    background: #f1f5f9;
    border-color: #94a3b8;
    color: var(--cogso-text);
}

.cogso-document-link__icon { font-size: 1.1rem; flex-shrink: 0; }

.cogso-document-link__tag {
    font-size: .68rem;
    font-weight: 700;
    background: #e2e8f0;
    color: #475569;
    padding: .15em .55em;
    border-radius: 3px;
    letter-spacing: .05em;
    margin-left: auto;
}

/* ═══════════════════════════════════════════════════════════
   SUIVI ET EXÉCUTION (sous-section de programme)
═══════════════════════════════════════════════════════════ */
.cogso-subsection--suivi {
    border-left: 3px solid #6366f1;
    margin-top: 1.5rem;
}

.cogso-suivi-contenu {
    font-size: .93rem;
    line-height: 1.7;
}

/* Mêmes règles que programme pour les listes */
.cogso-suivi-contenu ul,
.cogso-suivi-contenu ol  { padding-left: 1.6rem; margin: .5em 0 .75em; }
.cogso-suivi-contenu ul  { list-style-type: disc; }
.cogso-suivi-contenu ol  { list-style-type: decimal; }
.cogso-suivi-contenu li  { margin-bottom: .3rem; display: list-item; }
.cogso-suivi-contenu p   { margin: 0 0 .7em; }


/* ═══════════════════════════════════════════════════════════
   MODALITÉS RÉPÉTABLES
═══════════════════════════════════════════════════════════ */
.cogso-modalites-rep-liste {
    display: flex;
    flex-direction: column;
    gap: .75rem;
}

.cogso-modalite-rep {
    border-radius: var(--cogso-radius-sm);
    border: 1px solid var(--cogso-border);
    overflow: hidden;
}

.cogso-modalite-rep__header {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .6rem 1rem;
    background: var(--cogso-bg-alt);
    border-bottom: 1px solid var(--cogso-border);
}

.cogso-modalite-rep__format {
    font-size: .8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    padding: .2em .7em;
    border-radius: 50px;
}

/* Couleurs par format */
.cogso-modalite-rep--presentiel .cogso-modalite-rep__format { background: #d1fae5; color: #065f46; }
.cogso-modalite-rep--distanciel .cogso-modalite-rep__format { background: #dbeafe; color: #1e40af; }
.cogso-modalite-rep--hybride    .cogso-modalite-rep__format { background: #fef3c7; color: #92400e; }
.cogso-modalite-rep--elearning  .cogso-modalite-rep__format { background: #ede9fe; color: #4c1d95; }

.cogso-modalite-rep__label {
    font-size: .87rem;
    font-weight: 600;
    color: var(--cogso-text);
}

.cogso-modalite-rep__body {
    padding: .75rem 1rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
}

.cogso-modalite-rep__detail {
    width: 100%;
    margin: .35rem 0 0;
    font-size: .85rem;
    color: var(--cogso-text-light);
    font-style: italic;
}
