/**
 * Catalogue Formation Pro - Styles Widgets Elementor v2
 * 
 * IMPORTANT : Les couleurs sont définies comme fallback UNIQUEMENT.
 * Les contrôles Elementor injectent des styles inline plus spécifiques
 * via {{WRAPPER}} qui overrident automatiquement ces valeurs.
 * Ne JAMAIS utiliser !important ici.
 *
 * Classes HTML du widget Catalogue Grid :
 *   .cfp-formations-grid-wrapper
 *   .cfp-formations-grid
 *   .cfp-formation-card
 *     .cfp-formation-card__image
 *       .cfp-badge-categorie
 *       .cfp-badge-cpf
 *     .cfp-formation-card__content
 *       .cfp-formation-card__title > a
 *       .cfp-formation-card__meta
 *         .cfp-meta-item (.cfp-meta-duree / .cfp-meta-modalite / .cfp-meta-niveau)
 *           .cfp-meta-icon
 *       .cfp-formation-card__excerpt
 *       .cfp-formation-card__footer
 *         .cfp-formation-card__price
 *         .cfp-formation-card__button
 */

/* ==========================================
   GRILLE
   ========================================== */
.cfp-formations-grid {
    display: grid;
    gap: 24px;
    grid-template-columns: repeat(var(--cfp-grid-columns, 3), minmax(0, 1fr));
}

/* ==========================================
   CARTE (conteneur)
   ========================================== */
.cfp-formation-card {
    background-color: #ffffff;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    transition: transform 0.25s ease, box-shadow 0.25s ease, background-color 0.25s ease;
    display: flex;
    flex-direction: column;
}

.cfp-formation-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.12);
}

/* ==========================================
   IMAGE
   ========================================== */
.cfp-formation-card__image {
    position: relative;
    overflow: hidden;
    height: 200px;
    background: linear-gradient(135deg, #5D2A61, #E36B24);
}

.cfp-formation-card__image::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    pointer-events: none;
}

.cfp-formation-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.3s ease;
}

.cfp-formation-card:hover .cfp-formation-card__image img {
    transform: scale(1.05);
}

.cfp-formation-card__image-placeholder {
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, #5D2A61, #E36B24);
}

/* ==========================================
   BADGE CATÉGORIE
   ========================================== */
.cfp-badge-categorie {
    position: absolute;
    top: 12px;
    left: 12px;
    background-color: #5D2A61;
    color: #ffffff;
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    z-index: 2;
    line-height: 1.4;
}

/* ==========================================
   BADGE CPF
   ========================================== */
.cfp-badge-cpf {
    position: absolute;
    top: 12px;
    right: 12px;
    background-color: #28a745;
    color: #ffffff;
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 10px;
    font-weight: 700;
    z-index: 2;
    line-height: 1.4;
}

/* ==========================================
   CONTENU
   ========================================== */
.cfp-formation-card__content {
    padding: 20px;
    flex: 1;
    display: flex;
    flex-direction: column;
}

/* ==========================================
   TITRE
   ========================================== */
.cfp-formation-card__title {
    font-size: 17px;
    font-weight: 700;
    line-height: 1.3;
    margin: 0 0 10px;
}

.cfp-formation-card__title a {
    color: inherit;
    text-decoration: none;
    transition: color 0.2s ease;
}

.cfp-formation-card__title a:hover {
    color: #5D2A61;
}

/* ==========================================
   MÉTAS (durée, modalité, niveau)
   ========================================== */
.cfp-formation-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    padding: 10px 0;
    margin-bottom: 10px;
    border-top: 1px solid #f0f0f0;
    border-bottom: 1px solid #f0f0f0;
}

.cfp-meta-item {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 13px;
    color: #666666;
    line-height: 1.2;
}

.cfp-meta-icon {
    font-size: 14px;
    color: #5D2A61;
    display: inline-flex;
    align-items: center;
}

.cfp-meta-item i {
    color: inherit;
    margin-right: 3px;
}

/* ==========================================
   EXTRAIT
   ========================================== */
.cfp-formation-card__excerpt {
    font-size: 14px;
    color: #666666;
    line-height: 1.5;
    margin-bottom: 16px;
    flex: 1;
}

/* ==========================================
   FOOTER (prix + bouton)
   ========================================== */
.cfp-formation-card__footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 16px;
    border-top: 1px solid #f0f0f0;
    margin-top: auto;
}

/* ==========================================
   PRIX
   ========================================== */
.cfp-formation-card__price {
    font-size: 20px;
    font-weight: 700;
    color: #E36B24;
    line-height: 1.2;
}

.cfp-formation-card__price.cfp-price-devis {
    font-size: 14px;
    font-weight: 600;
    font-style: italic;
}

/* ==========================================
   BOUTON
   ========================================== */
.cfp-formation-card__button {
    display: inline-block;
    background-color: #5D2A61;
    color: #ffffff;
    padding: 8px 18px;
    border-radius: 4px;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
    text-align: center;
    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
    border: 2px solid transparent;
    line-height: 1.4;
    cursor: pointer;
}

.cfp-formation-card__button:hover {
    opacity: 0.9;
}

/* ==========================================
   PAGINATION
   ========================================== */
.cfp-pagination {
    text-align: center;
    margin-top: 30px;
    padding-top: 20px;
}

.cfp-pagination .page-numbers {
    display: inline-block;
    padding: 8px 14px;
    margin: 0 3px;
    border-radius: 4px;
    text-decoration: none;
    color: #333;
    background: #f0f0f0;
    transition: all 0.2s;
}

.cfp-pagination .page-numbers.current,
.cfp-pagination .page-numbers:hover {
    background: #5D2A61;
    color: #fff;
}

.cfp-load-more {
    display: inline-block;
    background: #5D2A61;
    color: #fff;
    padding: 12px 28px;
    border: none;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.2s;
}

.cfp-load-more:hover {
    background: #4a2150;
}

.cfp-no-formations {
    text-align: center;
    padding: 40px;
    color: #888;
}

.cfp-no-results {
    grid-column: 1 / -1;
}

/* ==========================================
   HERO WIDGET
   ========================================== */
.cfp-hero {
    border-radius: 8px;
    overflow: hidden;
}

.cfp-hero-meta span {
    display: inline-flex;
    align-items: center;
}

/* ==========================================
   DETAILS WIDGET
   ========================================== */
.cfp-details-tabs {
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
}

.cfp-detail-tab:hover {
    background: #f8f9fa;
}

.cfp-detail-pane h3,
.cfp-detail-pane h4 {
    margin-top: 20px;
    margin-bottom: 8px;
}

.cfp-detail-pane ul {
    padding-left: 20px;
}

.cfp-detail-pane li {
    margin-bottom: 6px;
}

/* ==========================================
   SESSIONS WIDGET
   ========================================== */
.cfp-session-card:hover {
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

.cfp-session-cta:hover {
    opacity: 0.9;
}

/* ==========================================
   FILTRES CATALOGUE
   ========================================== */
.cfp-catalogue-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 24px;
    padding: 16px;
    background: #f8f9fa;
    border-radius: 8px;
}

.cfp-filter-group {
    flex: 1;
    min-width: 180px;
}

.cfp-filter-group label {
    display: block;
    font-size: 12px;
    font-weight: 600;
    color: #555;
    margin-bottom: 4px;
    text-transform: uppercase;
}

.cfp-filter-group select,
.cfp-filter-group input {
    width: 100%;
    padding: 8px 12px;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 14px;
}

.cfp-filter-search {
    min-width: 250px;
}

/* ==========================================
   FORMULAIRE INSCRIPTION
   ========================================== */
.cfp-inscription-form {
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    padding: 24px;
}

.cfp-inscription-form .form-group {
    margin-bottom: 16px;
}

.cfp-inscription-form label {
    display: block;
    font-weight: 600;
    margin-bottom: 4px;
    color: #333;
}

.cfp-inscription-form input,
.cfp-inscription-form select,
.cfp-inscription-form textarea {
    width: 100%;
    padding: 10px;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 14px;
}

.cfp-inscription-form input:focus,
.cfp-inscription-form select:focus,
.cfp-inscription-form textarea:focus {
    border-color: #5D2A61;
    box-shadow: 0 0 0 2px rgba(93,42,97,0.15);
    outline: none;
}

.cfp-inscription-submit {
    background: #E36B24;
    color: #fff;
    padding: 12px 28px;
    border: none;
    border-radius: 4px;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.2s;
    width: 100%;
}

.cfp-inscription-submit:hover {
    background: #c85a1d;
}

/* ==========================================
   ANIMATIONS SCROLL
   ========================================== */
.cfp-visible {
    opacity: 1;
    transform: translateY(0);
}

/* ==========================================
   RESPONSIVE
   ========================================== */
@media (max-width: 768px) {
    .cfp-formations-grid {
        grid-template-columns: 1fr;
    }

    .cfp-sessions-cards {
        grid-template-columns: 1fr;
    }

    .cfp-catalogue-filters {
        flex-direction: column;
    }

    .cfp-details-nav {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .cfp-detail-tab {
        min-width: 100px;
    }

    .cfp-formation-card__footer {
        flex-direction: column;
        gap: 10px;
        text-align: center;
    }

    .cfp-formation-card__button {
        width: 100%;
        text-align: center;
    }
}


/* ==========================================
   ÉTATS GÉNÉRIQUES / ACCESSIBILITÉ
   ========================================== */
.cfp-widget-placeholder,
.cfp-widget-empty-state,
.cfp-form-notice,
.cfp-no-results {
    padding: 24px;
    border-radius: 12px;
    background: #f8f9fa;
    border: 1px dashed #d0d7de;
}

.cfp-widget-placeholder,
.cfp-widget-empty-state,
.cfp-no-results {
    display: grid;
    gap: 10px;
    text-align: center;
    color: #4f5b66;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.04);
}

.cfp-widget-placeholder p,
.cfp-widget-empty-state p,
.cfp-no-results p {
    margin: 0;
    line-height: 1.65;
}

.cfp-form-notice {
    margin-bottom: 24px;
}

.cfp-form-notice--success {
    background: #e9f8ef;
    border: 1px solid #b7ebc6;
    color: #155724;
}

.cfp-form-notice--error {
    background: #fff0f1;
    border: 1px solid #f3c2c8;
    color: #7f1d1d;
}

.cfp-form-notice--info {
    background: #eef5ff;
    border: 1px solid #c7dbff;
    color: #1f3a5f;
}

/* ==========================================
   WIDGET SESSIONS
   ========================================== */
.cfp-sessions-widget {
    --cfp-session-accent: #5D2A61;
    --cfp-session-cta: #E36B24;
}

.cfp-sessions-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 16px;
}

.cfp-session-card {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-left: 4px solid var(--cfp-session-accent);
    border-radius: 12px;
    padding: 20px;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.06);
}

.cfp-session-card.is-past,
.cfp-session-timeline__item.is-past,
.cfp-sessions-table tbody tr.is-past {
    opacity: 0.65;
}

.cfp-session-card__header,
.cfp-session-timeline__header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 12px;
}

.cfp-session-card__date,
.cfp-session-timeline__title {
    margin: 0;
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--cfp-session-accent);
}

.cfp-session-card__date-end,
.cfp-sessions-table__subline {
    display: block;
    margin-top: 4px;
    color: #6b7280;
    font-size: 0.875rem;
}

.cfp-session-status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 4px 10px;
    border-radius: 999px;
    color: #fff;
    font-size: 0.75rem;
    font-weight: 700;
    white-space: nowrap;
}

.cfp-session-status.is-open { background: var(--cfp-session-accent); }
.cfp-session-status.is-guaranteed { background: #1f9d55; }
.cfp-session-status.is-full { background: #d63638; }
.cfp-session-status.is-past { background: #6b7280; }

.cfp-session-card__body {
    display: grid;
    gap: 10px;
}

.cfp-session-card__meta,
.cfp-session-timeline__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
    margin: 0;
    color: #4b5563;
    font-size: 0.95rem;
}

.cfp-session-card__meta-label {
    display: inline-block;
    min-width: 78px;
    font-weight: 600;
    color: #111827;
}

.cfp-session-card__capacity {
    margin-top: 2px;
}

.cfp-session-card__capacity-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    font-size: 0.875rem;
    margin-bottom: 6px;
}

.cfp-session-card__progress {
    height: 8px;
    border-radius: 999px;
    background: #e5e7eb;
    overflow: hidden;
}

.cfp-session-card__progress-bar {
    display: block;
    width: var(--cfp-fill-rate, 0%);
    height: 100%;
    border-radius: inherit;
    background: var(--cfp-session-cta);
}

.cfp-session-card__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 10px 18px;
    border-radius: 8px;
    background: var(--cfp-session-cta);
    color: #fff;
    text-decoration: none;
    font-weight: 700;
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.cfp-session-card__cta:hover,
.cfp-session-card__cta:focus-visible {
    opacity: 0.92;
    transform: translateY(-1px);
}

.cfp-session-card__cta--small {
    min-height: 36px;
    padding: 8px 12px;
    font-size: 0.875rem;
}

.cfp-sessions-timeline {
    position: relative;
    padding-left: 28px;
}

.cfp-sessions-timeline::before {
    content: '';
    position: absolute;
    left: 11px;
    top: 0;
    bottom: 0;
    width: 2px;
    background: var(--cfp-session-accent);
}

.cfp-session-timeline__item {
    position: relative;
    margin-bottom: 20px;
}

.cfp-session-timeline__dot {
    position: absolute;
    left: -28px;
    top: 6px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: var(--cfp-session-accent);
    box-shadow: 0 0 0 4px #fff;
}

.cfp-session-timeline__content {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 16px;
}

.cfp-session-timeline__actions {
    margin: 14px 0 0;
}

.cfp-sessions-table-wrap {
    overflow-x: auto;
}

.cfp-sessions-table {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
}

.cfp-sessions-table thead th {
    background: var(--cfp-session-accent);
    color: #fff;
    text-align: left;
    padding: 12px;
}

.cfp-sessions-table tbody td {
    padding: 12px;
    border-bottom: 1px solid #edf0f2;
}

.cfp-sessions-table tbody tr:nth-child(even) {
    background: #fafafa;
}

/* ==========================================
   WIDGET FORMULAIRE FORMATION
   ========================================== */
.cfp-formation-form {
    --cfp-form-primary: #5D2A61;
    max-width: 1200px;
    margin: 0 auto;
}

.cfp-form {
    background: #fff;
    padding: 40px;
    border-radius: 16px;
    box-shadow: 0 8px 30px rgba(15, 23, 42, 0.08);
}

.cfp-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}

.cfp-form-field {
    display: flex;
    flex-direction: column;
}

.cfp-form-field.cfp-field-full {
    grid-column: 1 / -1;
}

.cfp-form-field label {
    font-weight: 600;
    margin-bottom: 8px;
    color: #1f2937;
}

.cfp-form-field .required {
    color: #d63638;
}

.cfp-form-field input[type="text"],
.cfp-form-field input[type="number"],
.cfp-form-field select,
.cfp-form-field textarea {
    width: 100%;
    padding: 12px 16px;
    border: 2px solid #e5e7eb;
    border-radius: 10px;
    font-size: 15px;
    background: #fff;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.cfp-form-field input:focus,
.cfp-form-field select:focus,
.cfp-form-field textarea:focus {
    outline: none;
    border-color: var(--cfp-form-primary);
    box-shadow: 0 0 0 3px rgba(93, 42, 97, 0.12);
}

.cfp-form-field textarea {
    font-family: inherit;
    resize: vertical;
}

.cfp-form-actions {
    margin-top: 32px;
    text-align: center;
}

.cfp-submit-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 14px 28px;
    color: #fff;
    background: var(--cfp-form-primary);
    border: none;
    border-radius: 10px;
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.cfp-submit-button:hover,
.cfp-submit-button:focus-visible {
    opacity: 0.94;
    transform: translateY(-1px);
}

/* ==========================================
   ANIMATIONS FRONTEND
   ========================================== */
.cfp-animate-in {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.4s ease, transform 0.4s ease;
}

.cfp-animate-in.cfp-visible {
    opacity: 1;
    transform: translateY(0);
}

@media (max-width: 767px) {
    .cfp-form {
        padding: 24px;
    }

    .cfp-form-grid {
        grid-template-columns: 1fr;
    }

    .cfp-session-card__header,
    .cfp-session-timeline__header {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* ==========================================
   V4.2 — BASE COMMUNE WIDGETS
   ========================================== */
.cfp-widget {
    position: relative;
    width: 100%;
}

.cfp-widget + .cfp-widget {
    margin-top: 0;
}

.cfp-widget [hidden] {
    display: none !important;
}

.cfp-widget--formation-hero,
.cfp-widget--formation-details,
.cfp-widget--formation-card,
.cfp-widget--formation-form,
.cfp-widget--formation-sessions,
.cfp-widget--inscription-form,
.cfp-widget--formation-planning,
.cfp-widget--catalogue-grid {
    --cfp-surface-bg: #ffffff;
    --cfp-surface-border: #e5e7eb;
}

.cfp-widget-placeholder,
.cfp-widget-empty-state,
.cfp-no-results {
    box-shadow: none;
}

@media (max-width: 767px) {
    .cfp-widget-placeholder,
    .cfp-widget-empty-state,
    .cfp-no-results {
        padding: 18px;
        border-radius: 14px;
    }
}

/* ==========================================
   V4.2 — HERO
   ========================================== */
.cfp-hero-widget {
    --cfp-hero-bg: #1a1a2e;
    --cfp-hero-text: #ffffff;
    --cfp-hero-accent: #e36b24;
}

.cfp-hero-widget__surface {
    background: var(--cfp-hero-bg);
    color: var(--cfp-hero-text);
    border-radius: 18px;
    padding: clamp(28px, 5vw, 52px);
    box-shadow: 0 14px 34px rgba(15, 23, 42, 0.16);
}

.cfp-hero-widget__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 18px;
}

.cfp-hero-widget__chip {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    padding: 0 14px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.14);
    font-size: 0.8rem;
    font-weight: 600;
    line-height: 1;
}

.cfp-hero-widget__chip--accent {
    background: var(--cfp-hero-accent);
    color: #fff;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.cfp-hero-widget__chip--muted {
    background: rgba(255, 255, 255, 0.1);
    color: rgba(255, 255, 255, 0.82);
}

.cfp-hero-widget__title {
    margin: 0 0 14px;
    color: var(--cfp-hero-text);
    font-size: clamp(1.9rem, 4vw, 2.5rem);
    line-height: 1.15;
}

.cfp-hero-widget__excerpt {
    max-width: 52rem;
    margin-bottom: 24px;
    font-size: 1.03rem;
    line-height: 1.7;
    color: rgba(255, 255, 255, 0.88);
}

.cfp-hero-widget__stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 16px;
    margin-bottom: 28px;
}

.cfp-hero-widget__stat {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px 18px;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.08);
}

.cfp-hero-widget__stat-icon {
    font-size: 1.6rem;
    line-height: 1;
}

.cfp-hero-widget__stat-content {
    display: grid;
    gap: 4px;
}

.cfp-hero-widget__stat-value {
    font-size: 1.05rem;
}

.cfp-hero-widget__stat-meta {
    font-size: 0.84rem;
    color: rgba(255, 255, 255, 0.72);
}

.cfp-hero-widget__footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
}

.cfp-hero-widget__cta,
.cfp-hero-widget__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 0 22px;
    border-radius: 10px;
    font-weight: 700;
    text-decoration: none;
}

.cfp-hero-widget__cta {
    background: var(--cfp-hero-accent);
    color: #fff;
    transition: transform 0.2s ease, opacity 0.2s ease;
}

.cfp-hero-widget__cta:hover,
.cfp-hero-widget__cta:focus-visible {
    color: #fff;
    opacity: 0.95;
    transform: translateY(-1px);
}

.cfp-hero-widget__badge {
    background: #1f9d55;
    color: #fff;
}

/* ==========================================
   V4.2 — CARD UNITAIRE
   ========================================== */
.cfp-card-widget {
    --cfp-card-background: #ffffff;
    --cfp-card-title-color: #2d2456;
    --cfp-card-accent: #2d2456;
}

.cfp-card-widget__card {
    background: var(--cfp-card-background);
}

.cfp-card-widget__media img,
.cfp-card-widget__media .cfp-formation-card__image-placeholder {
    width: 100%;
    min-height: 220px;
    object-fit: cover;
}

.cfp-card-widget__content {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.cfp-card-widget__category {
    margin: 0 0 8px;
    color: var(--cfp-card-accent);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: 0.76rem;
    font-weight: 700;
}

.cfp-card-widget__title,
.cfp-card-widget__title a {
    color: var(--cfp-card-title-color);
}

.cfp-card-widget__meta-sub {
    color: #6b7280;
    font-size: 0.88em;
}

.cfp-card-widget__price {
    color: var(--cfp-card-accent);
    font-weight: 700;
}

.cfp-card-widget__footer {
    justify-content: flex-start;
}

.cfp-card-widget__button {
    background: var(--cfp-card-accent);
    color: #fff;
}

.cfp-card-widget__button:hover,
.cfp-card-widget__button:focus-visible {
    color: #fff;
    opacity: 0.94;
}

/* ==========================================
   V4.2 — DÉTAILS FORMATION
   ========================================== */
.cfp-details-widget {
    --cfp-details-accent: #5d2a61;
}

.cfp-details-tabs,
.cfp-details-accordion,
.cfp-details-stacked {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 8px 26px rgba(15, 23, 42, 0.06);
}

.cfp-details-nav {
    display: flex;
    flex-wrap: nowrap;
    gap: 6px;
    padding: 8px;
    border-bottom: 1px solid #e5e7eb;
    overflow-x: auto;
    scrollbar-width: thin;
}

.cfp-detail-tab {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 46px;
    padding: 0 16px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: #4b5563;
    font-size: 0.95rem;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

.cfp-detail-tab:hover,
.cfp-detail-tab:focus-visible,
.cfp-detail-tab.is-active {
    background: rgba(93, 42, 97, 0.08);
    color: var(--cfp-details-accent);
    box-shadow: inset 0 0 0 1px rgba(93, 42, 97, 0.14);
    outline: none;
}

.cfp-detail-tab__icon {
    font-size: 1rem;
}

.cfp-detail-pane,
.cfp-accordion-body,
.cfp-details-stacked__content {
    padding: 24px;
    line-height: 1.75;
    font-size: 0.98rem;
}

.cfp-detail-pane:focus {
    outline: none;
}

.cfp-detail-pane h3,
.cfp-detail-pane h4,
.cfp-accordion-body h3,
.cfp-accordion-body h4,
.cfp-details-stacked__content h3,
.cfp-details-stacked__content h4 {
    margin-top: 0;
    margin-bottom: 10px;
}

.cfp-detail-pane ul,
.cfp-accordion-body ul,
.cfp-details-stacked__content ul {
    padding-left: 20px;
}

.cfp-detail-pane li,
.cfp-accordion-body li,
.cfp-details-stacked__content li {
    margin-bottom: 6px;
}

.cfp-accordion-item + .cfp-accordion-item {
    border-top: 1px solid #edf0f2;
}

.cfp-accordion-item__title {
    margin: 0;
}

.cfp-accordion-header {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    min-height: 58px;
    padding: 0 20px;
    border: 0;
    background: #fff;
    color: #111827;
    font-size: 1rem;
    font-weight: 700;
    text-align: left;
    cursor: pointer;
}

.cfp-accordion-header__label {
    flex: 1;
}

.cfp-accordion-arrow {
    transition: transform 0.2s ease;
}

.cfp-accordion-item.is-open .cfp-accordion-arrow {
    transform: rotate(180deg);
}

.cfp-details-stacked__item + .cfp-details-stacked__item {
    border-top: 1px solid #edf0f2;
}

.cfp-details-stacked__title {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 22px 24px 0;
    color: var(--cfp-details-accent);
    font-size: 1.15rem;
}

.cfp-details-stacked__content {
    padding-top: 14px;
}

/* ==========================================
   V4.2 — FORMULAIRE FORMATION
   ========================================== */
.cfp-formation-form.cfp-widget,
.cfp-widget--formation-form .cfp-formation-form {
    max-width: 1200px;
    margin: 0 auto;
}

/* ==========================================
   V4.2 — RESPONSIVE GLOBALE
   ========================================== */
@media (max-width: 767px) {
    .cfp-hero-widget__surface {
        padding: 24px 20px;
    }

    .cfp-hero-widget__stats {
        grid-template-columns: 1fr;
    }

    .cfp-details-nav {
        padding-bottom: 10px;
    }

    .cfp-detail-tab {
        white-space: nowrap;
    }
}

/* ==========================================
   V5.4 - NOUVEAUX WIDGETS BUSINESS
   ========================================== */
.cfp-results-widget,
.cfp-financing-widget,
.cfp-program-widget,
.cfp-compare-widget,
.cfp-smart-sessions-widget,
.cfp-sticky-cta-widget {
    color: #2d2456;
}

.cfp-results-widget__header,
.cfp-financing-widget__header,
.cfp-program-widget__header,
.cfp-compare-widget__header,
.cfp-smart-sessions-widget__header {
    margin-bottom: 18px;
}

.cfp-results-widget__title,
.cfp-financing-widget__title,
.cfp-program-widget__title,
.cfp-compare-widget__title,
.cfp-smart-sessions-widget__title,
.cfp-sticky-cta-widget__title {
    margin: 0 0 8px;
    font-size: 1.35rem;
    line-height: 1.2;
}

.cfp-results-widget__intro,
.cfp-financing-widget__intro,
.cfp-program-widget__intro,
.cfp-compare-widget__intro,
.cfp-smart-sessions-widget__intro,
.cfp-results-widget__meta {
    margin: 0;
    color: #5f6175;
}

.cfp-results-widget__grid {
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.cfp-results-widget__item {
    background: var(--cfp-results-surface, #fff);
    border: 1px solid #ececf2;
    border-radius: 16px;
    padding: 18px;
    box-shadow: 0 8px 24px rgba(22, 19, 44, 0.04);
}

.cfp-results-widget__item-head {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: baseline;
    margin-bottom: 12px;
}

.cfp-results-widget__label,
.cfp-results-widget__description,
.cfp-results-widget__note {
    margin: 0;
}

.cfp-results-widget__value {
    font-size: 1.55rem;
    color: var(--cfp-results-accent, #5D2A61);
}

.cfp-results-widget__bar {
    height: 8px;
    background: #f1eff7;
    border-radius: 999px;
    overflow: hidden;
    margin-bottom: 12px;
}

.cfp-results-widget__bar span {
    display: block;
    width: var(--cfp-progress, 0%);
    height: 100%;
    background: linear-gradient(90deg, var(--cfp-results-accent, #5D2A61), #e36b24);
}

.cfp-results-widget--compact .cfp-results-widget__grid {
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}

.cfp-financing-widget__items,
.cfp-financing-widget__prices,
.cfp-smart-sessions-widget__items {
    display: grid;
    gap: 14px;
}

.cfp-financing-widget--cards .cfp-financing-widget__items,
.cfp-financing-widget__prices,
.cfp-smart-sessions-widget--cards .cfp-smart-sessions-widget__items {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.cfp-financing-widget__item,
.cfp-financing-widget__price,
.cfp-smart-sessions-widget__item,
.cfp-program-widget__item,
.cfp-sticky-cta-widget__surface {
    border: 1px solid #ececf2;
    border-radius: 16px;
    padding: 18px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(22, 19, 44, 0.04);
}

.cfp-financing-widget__price {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px 18px;
    flex-wrap: wrap;
}

.cfp-financing-widget__price-label {
    display: block;
    margin: 0;
    color: #5f6175;
}

.cfp-financing-widget__price-value {
    display: block;
    font-size: 1.25rem;
    line-height: 1.2;
    color: #2d2456;
    text-align: right;
}

.cfp-financing-widget__contact {
    margin: 18px 0 0;
}

.cfp-financing-widget__item.is-cpf {
    border-color: var(--cfp-financing-accent, #E36B24);
    background: linear-gradient(180deg, rgba(227,107,36,0.08), #fff 44%);
}

.cfp-financing-widget__item-title,
.cfp-program-widget__item-title,
.cfp-smart-sessions-widget__item-title {
    display: block;
    margin: 0 0 8px;
    font-size: 1.05rem;
}

.cfp-financing-widget__item-text,
.cfp-program-widget__objectives,
.cfp-smart-sessions-widget__meta,
.cfp-program-widget__details,
.cfp-sticky-cta-widget__eyebrow,
.cfp-sticky-cta-widget__meta {
    margin: 0;
    color: #5f6175;
}

.cfp-financing-widget__button,
.cfp-smart-sessions-widget__button,
.cfp-sticky-cta-widget__button,
.cfp-compare-widget__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 16px;
    border-radius: 999px;
    text-decoration: none;
    font-weight: 600;
}

.cfp-financing-widget__button,
.cfp-smart-sessions-widget__button,
.cfp-sticky-cta-widget__button--primary {
    background: var(--cfp-financing-accent, var(--cfp-sticky-accent, #5D2A61));
    color: #fff;
}

.cfp-sticky-cta-widget__button--secondary {
    background: transparent;
    color: var(--cfp-sticky-accent, #5D2A61);
    border: 1px solid color-mix(in srgb, var(--cfp-sticky-accent, #5D2A61) 28%, #fff);
}

.cfp-program-widget__items {
    display: grid;
    gap: 16px;
}

.cfp-program-widget--timeline .cfp-program-widget__item {
    display: grid;
    grid-template-columns: 56px 1fr;
    gap: 16px;
    align-items: start;
}

.cfp-program-widget__step {
    width: 42px;
    height: 42px;
    border-radius: 999px;
    background: #f3eff7;
    color: #5D2A61;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
}

.cfp-program-widget__item-head {
    display: flex;
    gap: 12px;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 10px;
}

.cfp-program-widget__duration {
    font-size: 0.9rem;
    color: #5D2A61;
    background: #f3eff7;
    padding: 6px 10px;
    border-radius: 999px;
}

.cfp-program-widget__fallback {
    border-radius: 16px;
    border: 1px solid #ececf2;
    padding: 20px;
    background: #fff;
}

.cfp-compare-widget__table-wrap {
    overflow-x: auto;
}

.cfp-compare-widget__table {
    width: 100%;
    border-collapse: collapse;
    min-width: 760px;
    background: #fff;
    border: 1px solid #ececf2;
    border-radius: 18px;
    overflow: hidden;
}

.cfp-compare-widget__table th,
.cfp-compare-widget__table td {
    padding: 14px 16px;
    border-bottom: 1px solid #ececf2;
    text-align: left;
    vertical-align: top;
}

.cfp-compare-widget__table thead th {
    background: #f8f6fb;
}

.cfp-compare-widget__formation-title {
    display: block;
    margin-bottom: 10px;
    font-size: 1rem;
}

.cfp-compare-widget__link {
    background: #f3eff7;
    color: #5D2A61;
    padding: 8px 12px;
}

.cfp-smart-sessions-widget__item {
    display: grid;
    grid-template-columns: minmax(120px, 160px) 1fr auto;
    gap: 18px;
    align-items: center;
}

.cfp-smart-sessions-widget__date-block strong,
.cfp-smart-sessions-widget__date-block span {
    display: block;
}

.cfp-smart-sessions-widget__date-block span,
.cfp-smart-sessions-widget__meta span,
.cfp-sticky-cta-widget__meta span {
    color: #5f6175;
}

.cfp-smart-sessions-widget__meta,
.cfp-sticky-cta-widget__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 16px;
}

.cfp-sticky-cta-widget__surface {
    position: sticky;
    top: 24px;
    background: linear-gradient(180deg, rgba(93,42,97,0.08), #fff 38%);
}

.cfp-sticky-cta-widget__eyebrow {
    font-size: 0.82rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 8px;
}

.cfp-sticky-cta-widget__actions {
    margin: 16px 0 0;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

@media (max-width: 767px) {
    .cfp-smart-sessions-widget__item,
    .cfp-program-widget--timeline .cfp-program-widget__item {
        grid-template-columns: 1fr;
    }

    .cfp-compare-widget__table {
        min-width: 640px;
    }
}

/* ==========================================
   V5.4.1 — FINITIONS VISUELLES WIDGETS
   ========================================== */
.cfp-results-widget__grid {
    grid-template-columns: repeat(auto-fit, minmax(var(--cfp-results-card-min, 190px), 1fr));
}

.cfp-financing-widget__item,
.cfp-financing-widget__price {
    background: var(--cfp-financing-surface, #fff);
}

.cfp-program-widget__item,
.cfp-program-widget__fallback {
    background: var(--cfp-program-surface, #fff);
}

.cfp-program-widget__step,
.cfp-program-widget__duration {
    background: color-mix(in srgb, var(--cfp-program-accent, #5D2A61) 12%, #fff);
    color: var(--cfp-program-accent, #5D2A61);
}

.cfp-compare-widget__table {
    background: var(--cfp-compare-surface, #fff);
}

.cfp-compare-widget__table thead th:first-child {
    color: var(--cfp-compare-accent, #5D2A61);
}

.cfp-compare-widget__link {
    background: color-mix(in srgb, var(--cfp-compare-accent, #5D2A61) 10%, #fff);
    color: var(--cfp-compare-accent, #5D2A61);
}

.cfp-smart-sessions-widget__item {
    background: var(--cfp-smart-sessions-surface, #fff);
}

.cfp-smart-sessions-widget__date-block strong {
    color: var(--cfp-smart-sessions-accent, #5D2A61);
}

.cfp-smart-sessions-widget__button {
    background: var(--cfp-smart-sessions-accent, #5D2A61);
}

.cfp-sticky-cta-widget__surface {
    background: linear-gradient(180deg, color-mix(in srgb, var(--cfp-sticky-accent, #5D2A61) 8%, #fff), var(--cfp-sticky-surface, #fff) 38%);
}

.cfp-sticky-cta-widget__support {
    margin: 0 0 14px;
    color: #5f6175;
}
.cfp-sticky-cta-widget__button--secondary:hover,
.cfp-sticky-cta-widget__button--secondary:focus-visible {
    background: color-mix(in srgb, var(--cfp-sticky-accent, #5D2A61) 8%, #fff);
}


.cfp-financing-widget__button:hover,
.cfp-financing-widget__button:focus-visible,
.cfp-smart-sessions-widget__button:hover,
.cfp-smart-sessions-widget__button:focus-visible,
.cfp-sticky-cta-widget__button:hover,
.cfp-sticky-cta-widget__button:focus-visible,
.cfp-compare-widget__link:hover,
.cfp-compare-widget__link:focus-visible {
    transform: translateY(-1px);
    box-shadow: 0 10px 24px rgba(22, 19, 44, 0.12);
}

@media (max-width: 767px) {
    .cfp-sticky-cta-widget__actions {
        flex-direction: column;
    }

    .cfp-sticky-cta-widget__button {
        width: 100%;
    }

    .cfp-compare-widget__table,
    .cfp-compare-widget__table thead,
    .cfp-compare-widget__table tbody,
    .cfp-compare-widget__table tr,
    .cfp-compare-widget__table th,
    .cfp-compare-widget__table td {
        display: block;
        width: 100%;
    }

    .cfp-compare-widget__table {
        min-width: 0;
        border: none;
        background: transparent;
    }

    .cfp-compare-widget__table thead {
        display: none;
    }

    .cfp-compare-widget__table tbody {
        display: grid;
        gap: 14px;
    }

    .cfp-compare-widget__table tr {
        border: 1px solid #ececf2;
        border-radius: 16px;
        overflow: hidden;
        background: var(--cfp-compare-surface, #fff);
    }

    .cfp-compare-widget__table th[scope="row"] {
        padding: 14px 16px;
        background: #f8f6fb;
        border-bottom: 1px solid #ececf2;
        color: var(--cfp-compare-accent, #5D2A61);
    }

    .cfp-compare-widget__table td {
        position: relative;
        padding: 14px 16px 14px 128px;
        border-bottom: 1px solid #f0eef6;
        min-height: 52px;
    }

    .cfp-compare-widget__table td:last-child {
        border-bottom: none;
    }

    .cfp-compare-widget__table td::before {
        content: attr(data-label);
        position: absolute;
        left: 16px;
        top: 14px;
        width: 96px;
        font-weight: 700;
        color: #2d2456;
    }

    .cfp-sticky-cta-widget__surface {
        position: static;
    }
}

.cfp-practical-info-widget {
    display: grid;
    gap: 18px;
    color: #2d2456;
    overflow: hidden;
    isolation: isolate;
}


.cfp-practical-info-widget > * {
    min-width: 0;
}

.cfp-practical-info-widget__header,
.cfp-practical-info-widget__items {
    position: relative;
    z-index: 1;
}

.cfp-practical-info-widget__header {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    margin-bottom: 0;
}

.cfp-practical-info-widget__header--icon-right {
    flex-direction: row-reverse;
}

.cfp-practical-info-widget__header--icon-top {
    flex-direction: column;
}

.cfp-practical-info-widget__header-content {
    display: grid;
    gap: 8px;
    min-width: 0;
    flex: 1;
}

.cfp-practical-info-widget__header-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    min-width: 52px;
    height: 52px;
    border-radius: 16px;
    background: rgba(93, 42, 97, 0.08);
    color: #5d2a61;
    font-size: 24px;
    line-height: 1;
}

.cfp-practical-info-widget__header-icon i,
.cfp-practical-info-widget__header-icon svg {
    display: block;
}

.cfp-practical-info-widget__header-icon svg {
    width: 1em;
    height: 1em;
}

.cfp-practical-info-widget__title {
    margin: 0;
    font-size: 1.35rem;
    line-height: 1.2;
}

.cfp-practical-info-widget__intro {
    margin: 0;
    color: #5f6175;
}

.cfp-practical-info-widget__items {
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.cfp-practical-info-widget--list .cfp-practical-info-widget__items {
    grid-template-columns: 1fr;
}

.cfp-practical-info-widget--compact .cfp-practical-info-widget__items {
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.cfp-practical-info-widget__item {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    min-width: 0;
    border: 1px solid #ececf2;
    border-radius: 18px;
    padding: 20px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(22, 19, 44, 0.04);
}

.cfp-practical-info-widget__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    min-width: 44px;
    height: 44px;
    border-radius: 14px;
    background: rgba(93, 42, 97, 0.08);
    color: #5d2a61;
    font-size: 20px;
}

.cfp-practical-info-widget__icon i,
.cfp-practical-info-widget__icon svg {
    display: block;
}

.cfp-practical-info-widget__icon svg {
    width: 1em;
    height: 1em;
}

.cfp-practical-info-widget__content {
    display: grid;
    gap: 4px;
    min-width: 0;
    flex: 1;
}

.cfp-practical-info-widget__label {
    display: block;
    margin: 0;
    color: #5f6175;
    font-size: 0.96rem;
}

.cfp-practical-info-widget__value {
    display: block;
    margin: 0;
    color: #2d2456;
    font-size: 1.15rem;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.cfp-practical-info-widget__description {
    margin: 4px 0 0;
    color: #5f6175;
    font-size: 0.95rem;
}

@media (max-width: 1024px) {
    .cfp-practical-info-widget__items {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .cfp-practical-info-widget__items,
    .cfp-practical-info-widget--compact .cfp-practical-info-widget__items {
        grid-template-columns: 1fr;
    }

    .cfp-practical-info-widget__header,
    .cfp-practical-info-widget__header--icon-right {
        flex-direction: column;
    }

    .cfp-practical-info-widget__item {
        padding: 18px;
    }
}

.cfp-trainers-widget,
.cfp-testimonials-widget,
.cfp-faq-widget {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.cfp-trainers-widget__header,
.cfp-testimonials-widget__header,
.cfp-faq-widget__header {
    display: grid;
    gap: .55rem;
}

.cfp-trainers-widget__title,
.cfp-testimonials-widget__title,
.cfp-faq-widget__title {
    margin: 0;
    font-size: clamp(1.5rem, 2vw, 2rem);
    color: #23235B;
}

.cfp-trainers-widget__intro,
.cfp-testimonials-widget__intro,
.cfp-faq-widget__intro {
    margin: 0;
    color: #5D6476;
}

.cfp-trainers-widget__grid,
.cfp-testimonials-widget__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.125rem;
}

.cfp-trainers-widget--list .cfp-trainers-widget__grid,
.cfp-testimonials-widget--list .cfp-testimonials-widget__grid {
    grid-template-columns: 1fr;
}

.cfp-trainers-widget__card,
.cfp-testimonials-widget__card,
.cfp-faq-widget__item {
    border: 1px solid #E8EAF2;
    background: #fff;
    border-radius: 1.375rem;
}

.cfp-trainers-widget__card {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    overflow: hidden;
}

.cfp-trainers-widget__media {
    height: 220px;
    background: #F6F7FB;
    overflow: hidden;
}

.cfp-trainers-widget__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.cfp-trainers-widget__avatar,
.cfp-testimonials-widget__avatar-placeholder {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    min-height: 100%;
    background: #EEF0F8;
    color: #23235B;
    font-weight: 700;
}

.cfp-trainers-widget__body {
    display: grid;
    gap: .8rem;
}

.cfp-trainers-widget__name {
    margin: 0;
    font-size: 1.2rem;
    color: #23235B;
}

.cfp-trainers-widget__specialties,
.cfp-trainers-widget__bio {
    margin: 0;
    color: #5D6476;
}

.cfp-trainers-widget__specialties-label {
    font-weight: 600;
}

.cfp-trainers-widget__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .7rem;
    align-items: center;
}

.cfp-trainers-widget__action,
.cfp-trainers-widget__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    text-decoration: none;
    transition: .2s ease;
}

.cfp-trainers-widget__action {
    color: #5D2A61;
    font-weight: 600;
}

.cfp-trainers-widget__button {
    padding: .75rem 1rem;
    border-radius: 999px;
    background: #5D2A61;
    color: #fff;
    font-weight: 600;
}

.cfp-trainers-widget__button--ghost {
    background: #EEF0F8;
    color: #23235B;
}

.cfp-trainers-widget__action:hover,
.cfp-trainers-widget__action:focus-visible,
.cfp-trainers-widget__button:hover,
.cfp-trainers-widget__button:focus-visible,
.cfp-testimonials-widget__card:focus-within,
.cfp-faq-widget__question:focus-visible {
    outline: none;
    transform: translateY(-1px);
}

.cfp-testimonials-widget__card {
    display: grid;
    gap: 1rem;
    padding: 1.4rem;
}

.cfp-testimonials-widget__quote-icon {
    font-size: 2.25rem;
    line-height: 1;
    color: #E36B24;
}

.cfp-testimonials-widget__quote {
    margin: 0;
    color: #23235B;
    font-size: 1rem;
}

.cfp-testimonials-widget__stars {
    color: #E3A423;
    letter-spacing: .14rem;
}

.cfp-testimonials-widget__footer {
    display: flex;
    gap: .9rem;
    align-items: center;
}

.cfp-testimonials-widget__avatar,
.cfp-testimonials-widget__avatar img,
.cfp-testimonials-widget__avatar-placeholder {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    object-fit: cover;
}

.cfp-testimonials-widget__identity {
    display: grid;
    gap: .2rem;
}

.cfp-testimonials-widget__author {
    color: #23235B;
}

.cfp-testimonials-widget__meta,
.cfp-testimonials-widget__date {
    color: #5D6476;
    font-size: .95rem;
}

.cfp-faq-widget__accordion {
    display: grid;
    gap: .75rem;
}

.cfp-faq-widget__item {
    overflow: hidden;
}

.cfp-faq-widget__question {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .8rem;
    border: 0;
    background: transparent;
    padding: 1rem 1.1rem;
    cursor: pointer;
    text-align: left;
    color: #23235B;
    font-weight: 600;
}

.cfp-faq-widget__question-main {
    display: flex;
    align-items: center;
    gap: .85rem;
}

.cfp-faq-widget__number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2rem;
    min-height: 2rem;
    border-radius: 999px;
    background: #EEF0F8;
    color: #5D2A61;
    font-size: .9rem;
}

.cfp-faq-widget__toggle-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    min-width: 1.5rem;
    color: #5D2A61;
}

.cfp-faq-widget__icon-open {
    display: none;
}

.cfp-faq-widget__item.is-open .cfp-faq-widget__icon-open {
    display: inline-flex;
}

.cfp-faq-widget__item.is-open .cfp-faq-widget__icon-closed {
    display: none;
}

.cfp-faq-widget__answer {
    color: #5D6476;
}

.cfp-faq-widget__answer-inner {
    padding: 0 1.1rem 1.1rem;
}

.cfp-faq-widget__answer-inner > :first-child {
    margin-top: 0;
}

.cfp-faq-widget__answer-inner > :last-child {
    margin-bottom: 0;
}

@media (max-width: 1024px) {
    .cfp-trainers-widget__grid,
    .cfp-testimonials-widget__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .cfp-trainers-widget__grid,
    .cfp-testimonials-widget__grid {
        grid-template-columns: 1fr;
    }

    .cfp-testimonials-widget__footer,
    .cfp-faq-widget__question,
    .cfp-faq-widget__question-main {
        align-items: flex-start;
    }
}


/* Widgets V5.4.8 */
.cfp-accessibility-widget,
.cfp-audience-widget,
.cfp-methods-widget,
.cfp-help-widget {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.cfp-accessibility-widget,
.cfp-audience-widget,
.cfp-methods-widget,
.cfp-help-widget {
    background: var(--cfp-surface, var(--cfp-audience-surface, var(--cfp-methods-surface, var(--cfp-help-surface, #fff))));
}

.cfp-accessibility-widget__header,
.cfp-audience-widget__header,
.cfp-methods-widget__header {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
}

.cfp-accessibility-widget__header-icon,
.cfp-help-widget__icon,
.cfp-audience-widget__icon,
.cfp-methods-widget__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    min-width: 3rem;
    height: 3rem;
    border-radius: 1rem;
    background: rgba(93, 42, 97, .08);
    color: var(--cfp-accent, var(--cfp-help-accent, var(--cfp-audience-accent, var(--cfp-methods-accent, #5D2A61))));
}

.cfp-accessibility-widget__header-icon svg,
.cfp-help-widget__icon svg,
.cfp-audience-widget__icon svg,
.cfp-methods-widget__icon svg {
    width: 1.2rem;
    height: 1.2rem;
}

.cfp-accessibility-widget__title,
.cfp-audience-widget__title,
.cfp-methods-widget__title,
.cfp-help-widget__title {
    margin: 0;
    color: #23235B;
}

.cfp-accessibility-widget__intro,
.cfp-audience-widget__intro,
.cfp-methods-widget__intro,
.cfp-help-widget__intro,
.cfp-help-widget__secondary,
.cfp-help-widget__meta,
.cfp-accessibility-widget__content,
.cfp-audience-widget__item-content,
.cfp-methods-widget__content {
    color: #5D6476;
}

.cfp-accessibility-widget__grid,
.cfp-audience-widget__grid,
.cfp-methods-widget__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.cfp-accessibility-widget--stacked .cfp-accessibility-widget__grid,
.cfp-audience-widget--list .cfp-audience-widget__grid,
.cfp-methods-widget--list .cfp-methods-widget__grid {
    grid-template-columns: 1fr;
}

.cfp-accessibility-widget__card,
.cfp-audience-widget__item,
.cfp-methods-widget__card {
    background: var(--cfp-soft-surface, #F7F7FB);
    border: 1px solid var(--cfp-border, #ECECF2);
    border-radius: 1.2rem;
    padding: 1.35rem;
}

.cfp-accessibility-widget__label,
.cfp-audience-widget__item-title,
.cfp-methods-widget__card-title,
.cfp-accessibility-widget__meta-label {
    font-size: .92rem;
    font-weight: 600;
    color: #5D2A61;
    margin: 0 0 .6rem;
}

.cfp-audience-widget__item-top,
.cfp-methods-widget__card-top {
    display: flex;
    align-items: center;
    gap: .85rem;
    margin-bottom: .85rem;
}

.cfp-accessibility-widget__badges {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    margin-top: 1rem;
}

.cfp-accessibility-widget__badge,
.cfp-help-widget__badge {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .45rem .8rem;
    border-radius: 999px;
    background: rgba(93, 42, 97, .1);
    color: #5D2A61;
    font-size: .85rem;
    font-weight: 600;
}

.cfp-accessibility-widget__meta {
    display: flex;
    flex-direction: column;
    gap: .75rem;
}

.cfp-accessibility-widget__meta-row {
    display: grid;
    gap: .2rem;
}

.cfp-accessibility-widget__meta-value--link,
.cfp-help-widget__meta a {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: .15em;
}

.cfp-accessibility-widget__actions,
.cfp-help-widget__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .85rem;
    margin-top: 1rem;
}

.cfp-accessibility-widget__button,
.cfp-help-widget__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: .9rem 1.3rem;
    border-radius: .95rem;
    font-weight: 700;
    text-decoration: none;
    transition: transform .2s ease, box-shadow .2s ease;
}

.cfp-accessibility-widget__button {
    background: var(--cfp-accent, #5D2A61);
    color: #fff;
}

.cfp-help-widget {
    position: relative;
    overflow: hidden;
    background: var(--cfp-help-surface, #fff);
}

.cfp-help-widget__body {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
}

.cfp-help-widget__content {
    display: flex;
    flex-direction: column;
    gap: .8rem;
}

.cfp-help-widget__meta {
    display: flex;
    flex-direction: column;
    gap: .25rem;
}

.cfp-help-widget__actions {
    padding: 1rem;
    border-radius: 1rem;
    background: var(--cfp-help-overlay, #F3EEF9);
}

.cfp-help-widget__button--primary {
    background: var(--cfp-help-accent, #5D2A61);
    color: #fff;
}

.cfp-help-widget__button--secondary {
    background: rgba(93, 42, 97, .08);
    color: #5D2A61;
}

.cfp-help-widget__button:hover,
.cfp-help-widget__button:focus-visible,
.cfp-accessibility-widget__button:hover,
.cfp-accessibility-widget__button:focus-visible {
    transform: translateY(-1px);
    box-shadow: 0 12px 24px rgba(35, 35, 91, .12);
}

.cfp-audience-widget__item-content > :first-child,
.cfp-methods-widget__content > :first-child,
.cfp-help-widget__intro > :first-child,
.cfp-help-widget__secondary > :first-child,
.cfp-accessibility-widget__content > :first-child {
    margin-top: 0;
}

.cfp-audience-widget__item-content > :last-child,
.cfp-methods-widget__content > :last-child,
.cfp-help-widget__intro > :last-child,
.cfp-help-widget__secondary > :last-child,
.cfp-accessibility-widget__content > :last-child {
    margin-bottom: 0;
}

@media (max-width: 767px) {
    .cfp-accessibility-widget__grid,
    .cfp-audience-widget__grid,
    .cfp-methods-widget__grid {
        grid-template-columns: 1fr;
    }

    .cfp-accessibility-widget__header,
    .cfp-audience-widget__header,
    .cfp-methods-widget__header,
    .cfp-help-widget__body {
        flex-direction: column;
    }
}


/* Widgets V5.4.9 */
.cfp-objectives-widget,
.cfp-certification-widget,
.cfp-documents-widget,
.cfp-enrollment-widget {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    background: var(--cfp-objectives-surface, var(--cfp-certification-surface, var(--cfp-documents-surface, var(--cfp-enrollment-surface, #fff))));
}

.cfp-objectives-widget__header,
.cfp-certification-widget__header,
.cfp-documents-widget__header,
.cfp-enrollment-widget__header {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
}

.cfp-objectives-widget__header-icon,
.cfp-objectives-widget__item-icon,
.cfp-objectives-widget__item-number,
.cfp-certification-widget__card-icon,
.cfp-documents-widget__item-icon,
.cfp-enrollment-widget__step-number,
.cfp-enrollment-widget__step-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.9rem;
    min-width: 2.9rem;
    height: 2.9rem;
    border-radius: 1rem;
    background: rgba(35, 35, 91, .08);
    color: var(--cfp-objectives-accent, var(--cfp-certification-accent, var(--cfp-documents-accent, var(--cfp-enrollment-accent, #23235B))));
    font-weight: 700;
}

.cfp-objectives-widget__header-icon svg,
.cfp-objectives-widget__item-icon svg,
.cfp-certification-widget__card-icon svg,
.cfp-documents-widget__item-icon svg,
.cfp-enrollment-widget__step-icon svg {
    width: 1.1rem;
    height: 1.1rem;
}

.cfp-objectives-widget__title,
.cfp-certification-widget__title,
.cfp-documents-widget__title,
.cfp-enrollment-widget__title {
    margin: 0;
    color: #23235B;
}

.cfp-objectives-widget__intro,
.cfp-certification-widget__intro,
.cfp-documents-widget__intro,
.cfp-enrollment-widget__intro,
.cfp-objectives-widget__item-description,
.cfp-certification-widget__card-value,
.cfp-documents-widget__item-description,
.cfp-documents-widget__item-meta,
.cfp-enrollment-widget__step-text {
    color: #5D6476;
}

.cfp-objectives-widget__grid,
.cfp-certification-widget__grid,
.cfp-documents-widget__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.cfp-objectives-widget--list .cfp-objectives-widget__grid,
.cfp-documents-widget--list .cfp-documents-widget__grid {
    grid-template-columns: 1fr;
}

.cfp-objectives-widget__item,
.cfp-certification-widget__card,
.cfp-documents-widget__item,
.cfp-enrollment-widget__step {
    background: var(--cfp-objectives-soft, var(--cfp-certification-card, var(--cfp-documents-card, var(--cfp-enrollment-card, #F8F8FC))));
    border: 1px solid var(--cfp-objectives-border, var(--cfp-certification-border, var(--cfp-documents-border, var(--cfp-enrollment-border, #ECECF2))));
    border-radius: 1.2rem;
    padding: 1.25rem;
}

.cfp-objectives-widget__item-top,
.cfp-certification-widget__card-top,
.cfp-documents-widget__item-top {
    display: flex;
    align-items: flex-start;
    gap: .9rem;
}

.cfp-objectives-widget__item-heading,
.cfp-certification-widget__card-heading,
.cfp-documents-widget__item-heading {
    display: flex;
    flex-direction: column;
    gap: .35rem;
    flex: 1;
}

.cfp-objectives-widget__item-title,
.cfp-certification-widget__card-label,
.cfp-documents-widget__item-title,
.cfp-enrollment-widget__step-title {
    color: #23235B;
    font-weight: 700;
}

.cfp-objectives-widget__badge,
.cfp-certification-widget__badge,
.cfp-enrollment-widget__step-badge {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    padding: .35rem .7rem;
    border-radius: 999px;
    background: rgba(93, 42, 97, .08);
    color: #5D2A61;
    font-size: .82rem;
    font-weight: 600;
}

.cfp-objectives-widget__badge,
.cfp-enrollment-widget__step-badge {
    margin-top: .4rem;
}

.cfp-certification-widget__badges {
    display: flex;
    flex-wrap: wrap;
    gap: .7rem;
}

.cfp-documents-widget__item-meta {
    font-size: .9rem;
}

.cfp-documents-widget__actions,
.cfp-certification-widget__actions,
.cfp-enrollment-widget__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .85rem;
    margin-top: 1rem;
}

.cfp-documents-widget__button,
.cfp-certification-widget__button,
.cfp-enrollment-widget__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    padding: .9rem 1.25rem;
    border-radius: .95rem;
    background: var(--cfp-documents-accent, var(--cfp-certification-accent, var(--cfp-enrollment-accent, #23235B)));
    color: #fff;
    text-decoration: none;
    font-weight: 700;
    transition: transform .2s ease, box-shadow .2s ease;
}

.cfp-certification-widget__button--secondary {
    background: rgba(93, 42, 97, .08);
    color: #5D2A61;
}

.cfp-enrollment-widget__steps {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.cfp-enrollment-widget__step {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 1rem;
    align-items: start;
}

.cfp-enrollment-widget__step-content {
    display: flex;
    flex-direction: column;
    gap: .55rem;
}

.cfp-enrollment-widget--compact .cfp-enrollment-widget__step,
.cfp-enrollment-widget--cards .cfp-enrollment-widget__step {
    grid-template-columns: auto 1fr;
}

.cfp-documents-widget__button:hover,
.cfp-documents-widget__button:focus-visible,
.cfp-certification-widget__button:hover,
.cfp-certification-widget__button:focus-visible,
.cfp-enrollment-widget__cta:hover,
.cfp-enrollment-widget__cta:focus-visible {
    transform: translateY(-1px);
    box-shadow: 0 12px 24px rgba(35, 35, 91, .12);
}

@media (max-width: 767px) {
    .cfp-objectives-widget__grid,
    .cfp-certification-widget__grid,
    .cfp-documents-widget__grid {
        grid-template-columns: 1fr;
    }

    .cfp-objectives-widget__header,
    .cfp-certification-widget__header,
    .cfp-documents-widget__header,
    .cfp-enrollment-widget__header {
        flex-direction: column;
    }

    .cfp-enrollment-widget__step {
        grid-template-columns: 1fr;
    }
}

/* Widget Certification premium V5.4.17 */
.cfp-certification-widget {
    overflow: hidden;
    isolation: isolate;
}
.cfp-certification-widget__header { padding: 0; }
.cfp-certification-widget__header-content { display:flex; flex-direction:column; gap:.55rem; flex:1; }
.cfp-certification-widget__header-badge { display:inline-flex; align-items:center; width:fit-content; padding:.4rem .8rem; border-radius:999px; background:rgba(93,42,97,.08); color:#5D2A61; font-size:.82rem; font-weight:700; }
.cfp-certification-widget__header-icon { display:inline-flex; align-items:center; justify-content:center; width:3rem; min-width:3rem; height:3rem; border-radius:1rem; background:rgba(93,42,97,.08); color:var(--cfp-certification-accent,#5D2A61); }
.cfp-certification-widget__header-icon svg { width:1.15rem; height:1.15rem; }
.cfp-certification-widget--header-top .cfp-certification-widget__header,
.cfp-certification-widget--header-right .cfp-certification-widget__header { align-items:flex-start; }
.cfp-certification-widget--header-top .cfp-certification-widget__header { flex-direction:column; }
.cfp-certification-widget--header-right .cfp-certification-widget__header { flex-direction:row-reverse; }
.cfp-certification-widget__card { display:flex; flex-direction:column; gap:.95rem; }
.cfp-certification-widget__card-description { font-size:.9rem; color:#7A8195; }
.cfp-certification-widget__card-value { margin:0; }
.cfp-certification-widget__card-value > :first-child, .cfp-certification-widget__intro > :first-child { margin-top:0; }
.cfp-certification-widget__card-value > :last-child, .cfp-certification-widget__intro > :last-child { margin-bottom:0; }
.cfp-certification-widget__badge { gap:.2rem; }
.cfp-certification-widget__badge-label { font-weight:700; }
.cfp-certification-widget--compact .cfp-certification-widget__grid { display:flex; flex-direction:column; gap:.8rem; }
.cfp-certification-widget--compact .cfp-certification-widget__card { flex-direction:row; align-items:center; justify-content:space-between; gap:1rem; }
.cfp-certification-widget--compact .cfp-certification-widget__card-top { flex:1; }
.cfp-certification-widget--compact .cfp-certification-widget__card-value { text-align:right; min-width:120px; }
@media (max-width: 767px) {
  .cfp-certification-widget--compact .cfp-certification-widget__card { flex-direction:column; align-items:flex-start; }
  .cfp-certification-widget--compact .cfp-certification-widget__card-value { text-align:left; min-width:0; }
}



/* V5.4.20 - Refonte Besoin d'aide et Documents utiles */
.cfp-help-widget,
.cfp-documents-widget {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    background: var(--cfp-help-surface, var(--cfp-documents-surface, #fff));
}

.cfp-help-widget {
    overflow: hidden;
}

.cfp-help-widget__main,
.cfp-help-widget__panel {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.cfp-help-widget--split {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(280px, .9fr);
    align-items: stretch;
}

.cfp-help-widget--inline {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
}

.cfp-help-widget--stacked,
.cfp-help-widget--compact {
    grid-template-columns: 1fr;
}

.cfp-help-widget__body {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
}

.cfp-help-widget__content,
.cfp-help-widget__panel,
.cfp-help-widget__meta,
.cfp-help-widget__actions,
.cfp-help-widget__highlights {
    display: flex;
    flex-direction: column;
    gap: .9rem;
}

.cfp-help-widget__icon,
.cfp-documents-widget__header-icon,
.cfp-documents-widget__item-icon,
.cfp-help-widget__highlight-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    min-width: 3rem;
    height: 3rem;
    border-radius: 1rem;
    background: rgba(93,42,97,.08);
    color: var(--cfp-help-accent, var(--cfp-documents-accent, #5D2A61));
}

.cfp-help-widget__icon svg,
.cfp-documents-widget__header-icon svg,
.cfp-documents-widget__item-icon svg,
.cfp-help-widget__highlight-icon svg {
    width: 1.15rem;
    height: 1.15rem;
}

.cfp-help-widget__badge,
.cfp-documents-widget__count-badge,
.cfp-documents-widget__item-badge {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .45rem .85rem;
    border-radius: 999px;
    background: rgba(93,42,97,.1);
    color: var(--cfp-help-accent, var(--cfp-documents-accent, #5D2A61));
    font-size: .85rem;
    font-weight: 700;
    width: fit-content;
}

.cfp-help-widget__eyebrow,
.cfp-documents-widget__eyebrow {
    font-size: .82rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--cfp-help-accent, var(--cfp-documents-accent, #5D2A61));
}

.cfp-help-widget__title,
.cfp-documents-widget__title {
    margin: 0;
    color: #23235B;
}

.cfp-help-widget__intro,
.cfp-help-widget__secondary,
.cfp-help-widget__meta-value,
.cfp-help-widget__meta a,
.cfp-help-widget__highlight-text,
.cfp-documents-widget__intro,
.cfp-documents-widget__item-description,
.cfp-documents-widget__item-meta {
    color: #5D6476;
}

.cfp-help-widget__highlight {
    display: flex;
    align-items: center;
    gap: .75rem;
}

.cfp-help-widget__highlight-icon {
    width: 2rem;
    min-width: 2rem;
    height: 2rem;
    border-radius: .8rem;
}

.cfp-help-widget__panel {
    background: var(--cfp-help-overlay, #F3EEF9);
    border-radius: 1.2rem;
    padding: 1.25rem;
}

.cfp-help-widget__meta-row {
    display: grid;
    gap: .15rem;
}

.cfp-help-widget__meta-label {
    font-size: .84rem;
    font-weight: 700;
    color: var(--cfp-help-accent, #5D2A61);
}

.cfp-help-widget__meta-value,
.cfp-help-widget__meta a {
    text-decoration: none;
}

.cfp-help-widget__actions {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: stretch;
}

.cfp-help-widget__button,
.cfp-documents-widget__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .55rem;
    border-radius: .95rem;
    padding: .9rem 1.25rem;
    text-decoration: none;
    font-weight: 700;
    transition: transform .2s ease, box-shadow .2s ease, opacity .2s ease;
}

.cfp-help-widget__button--primary {
    background: var(--cfp-help-accent, #5D2A61);
    color: #fff;
}

.cfp-help-widget__button--secondary {
    background: rgba(93,42,97,.08);
    color: var(--cfp-help-accent, #5D2A61);
}

.cfp-help-widget__button:hover,
.cfp-help-widget__button:focus-visible,
.cfp-documents-widget__button:hover,
.cfp-documents-widget__button:focus-visible {
    transform: translateY(-1px);
    box-shadow: 0 12px 24px rgba(35,35,91,.12);
}

.cfp-documents-widget__header {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    justify-content: space-between;
}

.cfp-documents-widget__header-content {
    display: flex;
    flex-direction: column;
    gap: .45rem;
    flex: 1 1 auto;
}

.cfp-documents-widget__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.cfp-documents-widget--list .cfp-documents-widget__grid {
    grid-template-columns: 1fr;
}

.cfp-documents-widget__item {
    display: flex;
    flex-direction: column;
    gap: .95rem;
    background: var(--cfp-documents-card, #F8F8FC);
    border: 1px solid var(--cfp-documents-border, #ECECF2);
    border-radius: 1.1rem;
    padding: 1.2rem;
}

.cfp-documents-widget__item-top {
    display: flex;
    align-items: flex-start;
    gap: .85rem;
}

.cfp-documents-widget__item-heading {
    display: flex;
    flex-direction: column;
    gap: .3rem;
    min-width: 0;
}

.cfp-documents-widget__item-title {
    font-size: 1.02rem;
    font-weight: 700;
    color: #23235B;
}

.cfp-documents-widget__actions {
    margin-top: auto;
}

.cfp-documents-widget__button {
    background: var(--cfp-documents-accent, #23235B);
    color: #fff;
}

.cfp-documents-widget--compact .cfp-documents-widget__item {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
}

.cfp-documents-widget--compact .cfp-documents-widget__actions {
    margin-top: 0;
    margin-left: auto;
}

@media (max-width: 767px) {
    .cfp-help-widget--split,
    .cfp-help-widget--inline {
        grid-template-columns: 1fr;
    }

    .cfp-help-widget__body,
    .cfp-documents-widget__header,
    .cfp-documents-widget--compact .cfp-documents-widget__item {
        flex-direction: column;
    }

    .cfp-documents-widget__grid {
        grid-template-columns: 1fr;
    }

    .cfp-documents-widget--compact .cfp-documents-widget__actions {
        margin-left: 0;
        width: 100%;
    }

    .cfp-help-widget__actions {
        width: 100%;
    }
}



/* V5.4.23 - correctifs widget Infos pratiques et Besoin d'aide */
.cfp-practical-info-widget {
    background-clip: padding-box;
}

.cfp-practical-info-widget--list {
    overflow: hidden;
    isolation: isolate;
}

.cfp-practical-info-widget--list .cfp-practical-info-widget__items {
    gap: 0;
    border-radius: inherit;
    overflow: hidden;
    background: transparent;
}

.cfp-practical-info-widget--list .cfp-practical-info-widget__item {
    border-left: 0;
    border-right: 0;
    border-bottom: 0;
    border-radius: 0;
    background-clip: padding-box;
    box-shadow: none;
}

.cfp-practical-info-widget--list .cfp-practical-info-widget__item:first-child {
    border-top: 0;
}

.cfp-help-widget__button {
    min-height: 48px;
}

.cfp-help-widget__button--disabled {
    opacity: .72;
    cursor: not-allowed;
    pointer-events: none;
}

.cfp-help-widget--compact .cfp-help-widget__actions,
.cfp-help-widget--inline .cfp-help-widget__actions {
    width: 100%;
}

.cfp-help-widget--compact .cfp-help-widget__button,
.cfp-help-widget--inline .cfp-help-widget__button {
    width: 100%;
}

/* V5.4.24 - stabilisation complémentaire widget Besoin d'aide */
.cfp-help-widget__actions {
    width: 100%;
}

.cfp-help-widget__button {
    flex: 1 1 220px;
    max-width: 100%;
}

.cfp-help-widget__button--disabled:hover,
.cfp-help-widget__button--disabled:focus-visible {
    transform: none;
    box-shadow: none;
}


/* V5.4.28 - contrôles de couleur texte boutons widget Besoin d'aide */
.cfp-help-widget__button,
.cfp-help-widget__button .cfp-help-widget__button-text,
.cfp-help-widget__button .cfp-help-widget__button-icon,
.cfp-help-widget__button .cfp-help-widget__button-icon i,
.cfp-help-widget__button .cfp-help-widget__button-icon svg {
    color: inherit;
}

.cfp-help-widget__button .cfp-help-widget__button-icon svg {
    fill: currentColor;
    stroke: currentColor;
}

/* ==========================================
   DEMANDE DE DEVIS INTRA-ENTREPRISE
   ========================================== */
.cfp-quote-request {
    border: 1px solid #e5e7eb;
    border-radius: 20px;
    background: #ffffff;
    padding: 28px;
}

.cfp-quote-request__header {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 20px;
}

.cfp-quote-request__badge {
    display: inline-flex;
    align-self: flex-start;
    padding: 6px 10px;
    border-radius: 999px;
    background: #5D2A61;
    color: #ffffff;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.cfp-quote-request__title {
    margin: 0;
    font-size: 30px;
    line-height: 1.2;
}

.cfp-quote-request__intro > :first-child {
    margin-top: 0;
}

.cfp-quote-request__intro > :last-child {
    margin-bottom: 0;
}

.cfp-quote-request__formation {
    margin-bottom: 22px;
    padding: 16px 18px;
    border-left: 4px solid #5D2A61;
    background: #f9fafb;
    border-radius: 14px;
}

.cfp-quote-request__formation-title {
    display: block;
    margin-bottom: 8px;
    color: #111827;
}

.cfp-quote-request__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
    font-size: 14px;
    color: #4b5563;
}

.cfp-quote-request__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.cfp-quote-request__field {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.cfp-quote-request__field--full {
    grid-column: 1 / -1;
}

.cfp-quote-request__field label {
    font-weight: 600;
    color: #111827;
}

.cfp-quote-request__field input,
.cfp-quote-request__field select,
.cfp-quote-request__field textarea {
    width: 100%;
    min-height: 48px;
    padding: 12px 14px;
    border: 1px solid #d1d5db;
    border-radius: 12px;
    background: #ffffff;
    color: #111827;
    transition: border-color .2s ease, box-shadow .2s ease;
}

.cfp-quote-request__field textarea {
    min-height: 132px;
    resize: vertical;
}

.cfp-quote-request__field input:focus,
.cfp-quote-request__field select:focus,
.cfp-quote-request__field textarea:focus {
    outline: none;
    border-color: #5D2A61;
    box-shadow: 0 0 0 3px rgba(93, 42, 97, .12);
}

.cfp-quote-request__field input.is-invalid,
.cfp-quote-request__field select.is-invalid,
.cfp-quote-request__field textarea.is-invalid {
    border-color: #dc2626;
    box-shadow: 0 0 0 3px rgba(220, 38, 38, .10);
}

.cfp-quote-request__consent {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    margin-top: 18px;
    color: #4b5563;
}

.cfp-quote-request__consent input {
    margin-top: 4px;
}

.cfp-quote-request__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px;
    margin-top: 18px;
}

.cfp-quote-request__submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 50px;
    padding: 12px 20px;
    border: none;
    border-radius: 12px;
    background: #111827;
    color: #ffffff;
    font-weight: 700;
    cursor: pointer;
    transition: transform .2s ease, opacity .2s ease, background-color .2s ease;
}

.cfp-quote-request__submit:hover,
.cfp-quote-request__submit:focus {
    transform: translateY(-1px);
}

.cfp-quote-request__submit[disabled] {
    opacity: .7;
    cursor: wait;
}

.cfp-quote-request__status {
    min-height: 24px;
    font-size: 14px;
}

.cfp-quote-request__status.is-success {
    color: #047857;
}

.cfp-quote-request__status.is-error {
    color: #b91c1c;
}

.cfp-quote-request__honeypot {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

@media (max-width: 767px) {
    .cfp-quote-request {
        padding: 22px;
    }

    .cfp-quote-request__title {
        font-size: 24px;
    }

    .cfp-quote-request__grid {
        grid-template-columns: 1fr;
    }

    .cfp-quote-request__field--half,
    .cfp-quote-request__field--full {
        grid-column: auto;
    }
}

/* =========================================================
   WIDGET : MOTEUR DE RECHERCHE À FACETTES
========================================================= */
.cfp-faceted-search {
    position: relative;
    display: grid;
    gap: 1.5rem;
    border: 1px solid #E5E7EB;
    border-radius: 24px;
}

.cfp-faceted-search__header {
    display: grid;
    gap: .5rem;
}

.cfp-faceted-search__title {
    margin: 0;
    font-size: clamp(1.4rem, 1.2rem + .6vw, 2rem);
    line-height: 1.15;
}

.cfp-faceted-search__intro,
.cfp-faceted-search__count,
.cfp-faceted-search__meta,
.cfp-faceted-search__excerpt,
.cfp-faceted-search__empty,
.cfp-faceted-search__summary {
    margin: 0;
    color: #475569;
}

.cfp-faceted-search__form {
    display: grid;
    gap: 1rem;
}

.cfp-faceted-search__filters {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: .9rem;
}

.cfp-faceted-search__search {
    grid-column: span 12;
}

.cfp-faceted-search__select-wrap,
.cfp-faceted-search__checkbox {
    grid-column: span 3;
}

.cfp-faceted-search__select-wrap--small {
    grid-column: span 2;
}

.cfp-faceted-search__select-wrap--multiple {
    display: grid;
    gap: .45rem;
}

.cfp-faceted-search__control-label {
    font-size: .84rem;
    font-weight: 600;
    color: #334155;
}

.cfp-faceted-search__field,
.cfp-faceted-search__select {
    width: 100%;
    min-height: 48px;
    border: 1px solid #D1D5DB;
    border-radius: 14px;
    background: #FFFFFF;
    padding: .82rem 1rem;
    box-shadow: none;
}

.cfp-faceted-search__field:focus,
.cfp-faceted-search__select:focus {
    outline: none;
    border-color: #5D2A61;
    box-shadow: 0 0 0 3px rgba(93, 42, 97, .12);
}

.cfp-faceted-search__select--multiple {
    min-height: 180px;
    padding-right: .65rem;
}

.cfp-faceted-search__select--multiple option {
    padding: .45rem .55rem;
    border-radius: 8px;
}

.cfp-faceted-search__checkbox {
    display: inline-flex;
    align-items: center;
}

.cfp-faceted-search__checkbox input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.cfp-faceted-search__checkbox span {
    width: 100%;
    display: inline-flex;
    align-items: center;
    gap: .7rem;
    min-height: 48px;
    padding: .75rem 1rem;
    border: 1px solid #D1D5DB;
    border-radius: 14px;
    background: #FFFFFF;
    cursor: pointer;
}

.cfp-faceted-search__checkbox span::before {
    content: '';
    width: 18px;
    height: 18px;
    border-radius: 6px;
    border: 1px solid #CBD5E1;
    background: #FFFFFF;
    flex: 0 0 auto;
    box-sizing: border-box;
}

.cfp-faceted-search__checkbox input:checked + span::before {
    box-shadow: inset 0 0 0 4px #FFFFFF;
}

.cfp-faceted-search__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
}

.cfp-faceted-search__button,
.cfp-faceted-search__pager-button,
.cfp-faceted-search__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    min-height: 46px;
    padding: .78rem 1.15rem;
    border-radius: 14px;
    border: 1px solid transparent;
    text-decoration: none;
    transition: transform .18s ease, box-shadow .18s ease, opacity .18s ease, background-color .18s ease;
}

.cfp-faceted-search__button,
.cfp-faceted-search__link {
    cursor: pointer;
}

.cfp-faceted-search__button:hover,
.cfp-faceted-search__link:hover,
.cfp-faceted-search__pager-button:hover:not(:disabled) {
    transform: translateY(-1px);
}

.cfp-faceted-search__button--primary,
.cfp-faceted-search__link {
    background: #5D2A61;
    color: #FFFFFF;
}

.cfp-faceted-search__button--ghost,
.cfp-faceted-search__pager-button {
    background: #F8FAFC;
    color: #0F172A;
    border-color: #D1D5DB;
}

.cfp-faceted-search__results-shell {
    display: grid;
    gap: 1rem;
}

.cfp-faceted-search__active {
    display: grid;
    gap: .7rem;
}

.cfp-faceted-search__active-label {
    font-size: .85rem;
    font-weight: 700;
    color: #334155;
}

.cfp-faceted-search__chips {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
}

.cfp-faceted-search__chip {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    min-height: 38px;
    padding: .55rem .8rem;
    border: 1px solid #D1D5DB;
    border-radius: 999px;
    background: #F8FAFC;
    color: #0F172A;
    cursor: pointer;
    transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease;
}

.cfp-faceted-search__chip:hover {
    transform: translateY(-1px);
}

.cfp-faceted-search__results {
    display: grid;
    gap: 1rem;
}

.cfp-faceted-search__results--cards {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.cfp-faceted-search__results--list {
    grid-template-columns: 1fr;
}

.cfp-faceted-search__card {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 1rem;
    min-width: 0;
    padding: 1.25rem;
    border: 1px solid #E5E7EB;
    border-radius: 20px;
    background: #FFFFFF;
}

.cfp-faceted-search__card--list {
    flex-direction: row;
    align-items: center;
}

.cfp-faceted-search__card-content {
    display: grid;
    gap: .55rem;
    min-width: 0;
}

.cfp-faceted-search__card-kicker {
    margin: 0;
    font-size: .92rem;
    color: #64748B;
}

.cfp-faceted-search__card-title {
    margin: 0;
    font-size: 1.08rem;
    line-height: 1.25;
}

.cfp-faceted-search__card-title a {
    text-decoration: none;
    color: #5D2A61;
}

.cfp-faceted-search__excerpt {
    font-size: .96rem;
    line-height: 1.6;
}

.cfp-faceted-search__card-footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .85rem;
}

.cfp-faceted-search__price {
    font-weight: 700;
    color: #0F172A;
}

.cfp-faceted-search__pager {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.cfp-faceted-search__pager-label {
    font-weight: 600;
    color: #5D2A61;
}

.cfp-faceted-search__pager-button:disabled {
    opacity: .45;
    cursor: not-allowed;
}

.cfp-faceted-search.is-loading {
    opacity: .8;
}

.cfp-faceted-search.is-loading .cfp-faceted-search__results-shell {
    pointer-events: none;
}

@media (max-width: 1024px) {
    .cfp-faceted-search__select-wrap,
    .cfp-faceted-search__checkbox {
        grid-column: span 4;
    }

    .cfp-faceted-search__select-wrap--small {
        grid-column: span 4;
    }

    .cfp-faceted-search__results--cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .cfp-faceted-search__card--list {
        flex-direction: column;
        align-items: stretch;
    }
}

@media (max-width: 767px) {
    .cfp-faceted-search__filters {
        grid-template-columns: 1fr;
    }

    .cfp-faceted-search__search,
    .cfp-faceted-search__select-wrap,
    .cfp-faceted-search__checkbox,
    .cfp-faceted-search__select-wrap--small {
        grid-column: auto;
    }

    .cfp-faceted-search__results--cards {
        grid-template-columns: 1fr;
    }

    .cfp-faceted-search__actions,
    .cfp-faceted-search__card-footer,
    .cfp-faceted-search__pager {
        flex-direction: column;
        align-items: stretch;
    }

    .cfp-faceted-search__button,
    .cfp-faceted-search__pager-button,
    .cfp-faceted-search__link {
        width: 100%;
    }
}

/* Session widgets */
.cfp-session-hero__surface {
    position: relative;
    overflow: hidden;
    border-radius: 28px;
    background: linear-gradient(135deg, #0F172A 0%, #1E293B 100%);
    color: #F8FAFC;
    padding: 2rem;
}

.cfp-session-hero__content {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.cfp-session-hero__eyebrow {
    text-transform: uppercase;
    letter-spacing: .08em;
    font-size: .8rem;
    font-weight: 700;
    color: rgba(248, 250, 252, .72);
}

.cfp-session-hero__title {
    margin: 0;
    font-size: clamp(2rem, 4vw, 3.4rem);
    line-height: 1.05;
    color: inherit;
}

.cfp-session-hero__formation-link-wrap,
.cfp-session-hero__excerpt {
    margin: 0;
}

.cfp-session-hero__formation-link {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: .2em;
    font-weight: 600;
}

.cfp-session-hero__excerpt {
    max-width: 52rem;
    color: rgba(248, 250, 252, .84);
}

.cfp-session-hero__excerpt p:last-child {
    margin-bottom: 0;
}

.cfp-session-hero__chips {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
}

.cfp-session-hero__chip {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .55rem .9rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, .10);
    color: inherit;
    font-size: .95rem;
    font-weight: 600;
}

.cfp-session-hero__stats {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 1rem;
}

.cfp-session-hero__stat {
    display: flex;
    flex-direction: column;
    gap: .35rem;
    min-width: 0;
    padding: 1rem;
    border-radius: 18px;
    background: rgba(255, 255, 255, .08);
    backdrop-filter: blur(8px);
}

.cfp-session-hero__stat-label {
    font-size: .82rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: rgba(248, 250, 252, .68);
}

.cfp-session-hero__stat-value {
    font-size: 1rem;
    line-height: 1.4;
    color: inherit;
}

.cfp-session-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .9rem;
    margin-top: .5rem;
}

.cfp-session-hero__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: .85rem 1.25rem;
    border-radius: 999px;
    text-decoration: none;
    font-weight: 700;
    transition: transform .18s ease, opacity .18s ease;
}

.cfp-session-hero__button:hover,
.cfp-session-hero__button:focus-visible {
    transform: translateY(-1px);
    opacity: .96;
}

.cfp-session-hero__button--primary {
    background: #E36B24;
    color: #fff;
}

.cfp-session-hero__button--secondary {
    background: rgba(255, 255, 255, .08);
    color: #fff;
}

.cfp-session-infos__panel {
    padding: 1.5rem;
    border: 1px solid #E2E8F0;
    border-radius: 24px;
    background: #fff;
}

.cfp-session-infos__title {
    margin: 0 0 1rem;
    font-size: 1.35rem;
    line-height: 1.2;
    color: #0F172A;
}

.cfp-session-infos__items {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.cfp-session-infos--list .cfp-session-infos__items {
    grid-template-columns: 1fr;
}

.cfp-session-infos__item {
    min-width: 0;
    padding: 1rem 1.1rem;
    border-radius: 18px;
    background: #F8FAFC;
    border: 1px solid #E2E8F0;
}

.cfp-session-infos__item--rich {
    grid-column: 1 / -1;
}

.cfp-session-infos__label {
    display: block;
    margin-bottom: .4rem;
    font-size: .82rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #64748B;
}

.cfp-session-infos__value {
    color: #0F172A;
    line-height: 1.55;
}

.cfp-session-infos__value p:last-child {
    margin-bottom: 0;
}

.cfp-session-infos__value a {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: .18em;
}

@media (max-width: 1024px) {
    .cfp-session-hero__stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .cfp-session-hero__surface,
    .cfp-session-infos__panel {
        border-radius: 20px;
    }

    .cfp-session-hero__stats,
    .cfp-session-infos__items {
        grid-template-columns: 1fr;
    }

    .cfp-session-hero__actions {
        flex-direction: column;
        align-items: stretch;
    }

    .cfp-session-hero__button {
        width: 100%;
    }
}



.cfp-session-other-dates__panel {
    padding: 1.5rem;
    border: 1px solid #E2E8F0;
    border-radius: 24px;
    background: #fff;
}

.cfp-session-other-dates__title {
    margin: 0 0 1rem;
    font-size: 1.35rem;
    line-height: 1.2;
    color: #0F172A;
}

.cfp-session-other-dates__items {
    display: grid;
    gap: 1rem;
}

.cfp-session-other-dates--cards .cfp-session-other-dates__items {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.cfp-session-other-dates__item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    min-width: 0;
    padding: 1rem 1.1rem;
    border-radius: 18px;
    background: #F8FAFC;
    border: 1px solid #E2E8F0;
}

.cfp-session-other-dates__content {
    display: flex;
    flex-direction: column;
    gap: .3rem;
    min-width: 0;
}

.cfp-session-other-dates__date {
    font-size: 1rem;
    font-weight: 700;
    color: #0F172A;
}

.cfp-session-other-dates__name {
    font-size: .96rem;
    font-weight: 600;
    color: #334155;
}

.cfp-session-other-dates__status,
.cfp-session-other-dates__meta {
    font-size: .92rem;
    color: #64748B;
}

.cfp-session-other-dates__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: .8rem 1rem;
    border-radius: 999px;
    background: #0F172A;
    color: #fff;
    text-decoration: none;
    font-weight: 700;
    white-space: nowrap;
}

.cfp-session-other-dates__button:hover,
.cfp-session-other-dates__button:focus-visible {
    opacity: .96;
    transform: translateY(-1px);
}

@media (max-width: 767px) {
    .cfp-session-other-dates--cards .cfp-session-other-dates__items {
        grid-template-columns: 1fr;
    }

    .cfp-session-other-dates__item {
        flex-direction: column;
        align-items: stretch;
    }
}

.cfp-session-sticky-cta {
    width: 100%;
}

.cfp-session-sticky-cta--sticky {
    position: sticky;
    bottom: var(--cfp-session-sticky-bottom, 24px);
    z-index: 20;
}

.cfp-session-sticky-cta__surface {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 24px;
    background: #ffffff;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 20px;
    box-shadow: 0 18px 45px rgba(15, 23, 42, 0.08);
}

.cfp-session-sticky-cta__eyebrow,
.cfp-session-sticky-cta__formation,
.cfp-session-sticky-cta__support {
    margin: 0;
}

.cfp-session-sticky-cta__eyebrow {
    font-size: 0.875rem;
    font-weight: 700;
    color: #5D2A61;
}

.cfp-session-sticky-cta__title {
    margin: 0;
    font-size: 1.5rem;
    line-height: 1.2;
}

.cfp-session-sticky-cta__formation,
.cfp-session-sticky-cta__support,
.cfp-session-sticky-cta__meta-item {
    color: #475569;
}

.cfp-session-sticky-cta__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.cfp-session-sticky-cta__meta-item {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.05);
    font-size: 0.9375rem;
}

.cfp-session-sticky-cta__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.cfp-session-sticky-cta__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 46px;
    padding: 12px 18px;
    border: 1px solid transparent;
    border-radius: 999px;
    font-weight: 700;
    text-decoration: none;
    transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease;
}

.cfp-session-sticky-cta__button:hover,
.cfp-session-sticky-cta__button:focus-visible {
    transform: translateY(-1px);
    box-shadow: 0 10px 25px rgba(15, 23, 42, 0.12);
}

.cfp-session-sticky-cta__button--primary {
    color: #ffffff;
    background: #5D2A61;
}

.cfp-session-sticky-cta__button--secondary {
    color: #0F172A;
    background: rgba(255, 255, 255, 0.95);
    border-color: rgba(15, 23, 42, 0.12);
}

.cfp-session-availability__panel {
    display: flex;
    flex-direction: column;
    gap: 18px;
    padding: 24px;
    background: #ffffff;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 20px;
    box-shadow: 0 18px 45px rgba(15, 23, 42, 0.06);
}

.cfp-session-availability__title,
.cfp-session-availability__count-label,
.cfp-session-availability__message {
    margin: 0;
}

.cfp-session-availability__title {
    font-size: 1.25rem;
}

.cfp-session-availability__summary {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.cfp-session-availability__count-wrap {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.cfp-session-availability__count {
    font-size: clamp(2rem, 4vw, 3rem);
    line-height: 1;
    font-weight: 800;
    color: #0F172A;
}

.cfp-session-availability__count-label,
.cfp-session-availability__meta-label,
.cfp-session-availability__progress-value,
.cfp-session-availability__status,
.cfp-session-availability__message {
    color: #475569;
}

.cfp-session-availability__status {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.05);
    font-weight: 600;
}

.cfp-session-availability__progress {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 10px;
    align-items: center;
}

.cfp-session-availability__progress-track {
    position: relative;
    overflow: hidden;
    width: 100%;
    height: 12px;
    background: rgba(15, 23, 42, 0.08);
    border-radius: 999px;
}

.cfp-session-availability__progress-fill {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: #5D2A61;
}

.cfp-session-availability__meta-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.cfp-session-availability__meta-item {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 14px;
    border-radius: 16px;
    background: rgba(15, 23, 42, 0.04);
}

.cfp-session-availability__meta-value {
    font-size: 1.125rem;
    color: #0F172A;
}

.cfp-session-availability__message {
    padding: 12px 14px;
    border-radius: 14px;
    background: rgba(15, 23, 42, 0.05);
}

.cfp-session-availability--low .cfp-session-availability__count,
.cfp-session-availability--low .cfp-session-availability__status {
    color: #b45309;
}

.cfp-session-availability--low .cfp-session-availability__message {
    background: #fff7ed;
    color: #9a3412;
}

.cfp-session-availability--full .cfp-session-availability__count,
.cfp-session-availability--full .cfp-session-availability__status {
    color: #b91c1c;
}

.cfp-session-availability--full .cfp-session-availability__message {
    background: #fef2f2;
    color: #991b1b;
}

.cfp-session-availability--open .cfp-session-availability__message {
    background: #ecfeff;
    color: #155e75;
}

.cfp-session-availability--compact .cfp-session-availability__summary {
    align-items: center;
}

.cfp-session-availability--compact .cfp-session-availability__meta-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (max-width: 767px) {
    .cfp-session-sticky-cta__actions,
    .cfp-session-sticky-cta__meta,
    .cfp-session-availability__summary,
    .cfp-session-availability__meta-grid,
    .cfp-session-availability__progress {
        grid-template-columns: 1fr;
        flex-direction: column;
    }

    .cfp-session-sticky-cta__button {
        width: 100%;
    }

    .cfp-session-availability__meta-grid {
        display: grid;
    }
}

/* ========================================
   Formation - prochaines sessions compact
======================================== */
.cfp-formation-next-sessions__panel {
    display: flex;
    flex-direction: column;
    gap: 18px;
    padding: 24px;
    border-radius: 24px;
    background: #ffffff;
}

.cfp-formation-next-sessions__title {
    margin: 0;
    font-size: 1.5rem;
    line-height: 1.2;
    color: #0F172A;
}

.cfp-formation-next-sessions__items {
    display: grid;
    gap: 14px;
}

.cfp-formation-next-sessions--cards .cfp-formation-next-sessions__items {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.cfp-formation-next-sessions__item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 18px;
    border-radius: 18px;
    background: rgba(15, 23, 42, 0.04);
}

.cfp-formation-next-sessions__content {
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-width: 0;
    flex: 1 1 auto;
}

.cfp-formation-next-sessions__topline {
    display: flex;
    align-items: center;
    gap: 10px;
    justify-content: space-between;
    flex-wrap: wrap;
}

.cfp-formation-next-sessions__date {
    font-weight: 700;
    color: #0F172A;
}

.cfp-formation-next-sessions__status {
    display: inline-flex;
    align-items: center;
    padding: 7px 12px;
    border-radius: 999px;
    background: rgba(93, 42, 97, 0.10);
    color: #5D2A61;
    font-size: 0.875rem;
    font-weight: 600;
}

.cfp-formation-next-sessions__meta,
.cfp-formation-next-sessions__places {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    color: #475569;
}

.cfp-formation-next-sessions__meta span:not(:last-child)::after {
    content: '•';
    margin-left: 10px;
    opacity: .55;
}

.cfp-formation-next-sessions__actions {
    flex: 0 0 auto;
}

.cfp-formation-next-sessions__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 11px 16px;
    border-radius: 14px;
    background: #0F172A;
    color: #ffffff;
    text-decoration: none;
    font-weight: 600;
    transition: transform .2s ease, opacity .2s ease;
}

.cfp-formation-next-sessions__button:hover {
    transform: translateY(-1px);
    opacity: .92;
}

.cfp-formation-next-sessions__empty {
    padding: 16px 18px;
    border-radius: 16px;
    background: rgba(15, 23, 42, 0.04);
    color: #475569;
}

@media (max-width: 767px) {
    .cfp-formation-next-sessions--cards .cfp-formation-next-sessions__items {
        grid-template-columns: 1fr;
    }

    .cfp-formation-next-sessions__item {
        flex-direction: column;
        align-items: stretch;
    }

    .cfp-formation-next-sessions__button {
        width: 100%;
    }
}

/* Formation related */
.cfp-formation-related {
    width: 100%;
}

.cfp-formation-related__panel {
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding: 28px;
    border-radius: 24px;
    background: #ffffff;
}

.cfp-formation-related__title {
    margin: 0;
    font-size: 1.5rem;
    line-height: 1.2;
    color: #0F172A;
}

.cfp-formation-related__items {
    display: grid;
    gap: 16px;
}

.cfp-formation-related--cards .cfp-formation-related__items {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.cfp-formation-related__item {
    display: flex;
    flex-direction: column;
    gap: 14px;
    min-width: 0;
    padding: 20px;
    border-radius: 18px;
    background: rgba(15, 23, 42, 0.04);
}

.cfp-formation-related__content {
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-width: 0;
}

.cfp-formation-related__item-title {
    margin: 0;
    font-size: 1.1rem;
    line-height: 1.3;
    color: #0F172A;
}

.cfp-formation-related__item-title a {
    color: inherit;
    text-decoration: none;
}

.cfp-formation-related__item-title a:hover {
    text-decoration: underline;
}

.cfp-formation-related__meta,
.cfp-formation-related__score,
.cfp-formation-related__excerpt {
    color: #475569;
}

.cfp-formation-related__score {
    display: inline-flex;
    width: fit-content;
    padding: 6px 10px;
    border-radius: 999px;
    background: rgba(93, 42, 97, 0.10);
    color: #5D2A61;
    font-size: 0.875rem;
    font-weight: 600;
}

.cfp-formation-related__excerpt {
    line-height: 1.65;
}

.cfp-formation-related__actions {
    margin-top: auto;
}

.cfp-formation-related__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 11px 16px;
    border-radius: 14px;
    background: #0F172A;
    color: #ffffff;
    text-decoration: none;
    font-weight: 600;
    transition: transform .2s ease, opacity .2s ease;
}

.cfp-formation-related__button:hover {
    transform: translateY(-1px);
    opacity: .92;
}

.cfp-formation-related__empty {
    padding: 16px 18px;
    border-radius: 16px;
    background: rgba(15, 23, 42, 0.04);
    color: #475569;
}

@media (max-width: 1024px) {
    .cfp-formation-related--cards .cfp-formation-related__items {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .cfp-formation-related--cards .cfp-formation-related__items {
        grid-template-columns: 1fr;
    }

    .cfp-formation-related__panel {
        padding: 22px;
    }

    .cfp-formation-related__button {
        width: 100%;
    }
}


/* Session calendar export */
.cfp-session-calendar-export__panel,
.cfp-session-location__panel {
    display: block;
}

.cfp-session-calendar-export__title,
.cfp-session-location__title {
    margin: 0 0 12px;
}

.cfp-session-calendar-export__intro,
.cfp-session-location__intro {
    margin-bottom: 14px;
}

.cfp-session-calendar-export__details {
    margin-bottom: 16px;
}

.cfp-session-calendar-export__actions,
.cfp-session-location__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.cfp-session-calendar-export__actions--column {
    flex-direction: column;
    align-items: flex-start;
}

.cfp-session-calendar-export__button,
.cfp-session-location__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    text-decoration: none;
    transition: all 0.2s ease;
}

.cfp-session-location__items {
    display: grid;
    gap: 12px;
    margin-bottom: 16px;
}

.cfp-session-location__item {
    display: grid;
    gap: 4px;
}

.cfp-session-location__item-label {
    font-weight: 600;
}

.cfp-session-location__item-value a {
    color: inherit;
    text-decoration: underline;
}


/* Session countdown */
.cfp-session-countdown {
    width: 100%;
}

.cfp-session-countdown__panel {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 1.5rem;
    border: 1px solid #E5E7EB;
    border-radius: 1.25rem;
    background: #FFFFFF;
}

.cfp-session-countdown__title {
    margin: 0;
    font-size: 1.5rem;
    line-height: 1.2;
}

.cfp-session-countdown__intro,
.cfp-session-countdown__target,
.cfp-session-countdown__expired-message {
    margin: 0;
    color: #4B5563;
}

.cfp-session-countdown__timer {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
    gap: 0.875rem;
}

.cfp-session-countdown__slot {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.4rem;
    padding: 1rem;
    border-radius: 1rem;
    background: #F3F4F6;
}

.cfp-session-countdown__number {
    font-size: clamp(1.75rem, 4vw, 2.5rem);
    font-weight: 700;
    line-height: 1;
    color: #111827;
}

.cfp-session-countdown__label {
    font-size: 0.875rem;
    color: #6B7280;
}

.cfp-session-countdown__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    justify-content: flex-start;
}

.cfp-session-countdown__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.85rem 1.15rem;
    border-radius: 999px;
    border: 1px solid transparent;
    background: #111827;
    color: #FFFFFF;
    text-decoration: none;
    transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease, color .2s ease;
}

.cfp-session-countdown__button--ghost {
    background: transparent;
    color: #111827;
    border-color: #D1D5DB;
}

.cfp-session-countdown__button:hover,
.cfp-session-countdown__button:focus-visible {
    transform: translateY(-1px);
    box-shadow: 0 12px 24px rgba(17, 24, 39, 0.12);
}

.cfp-session-countdown__expired[hidden] {
    display: none !important;
}

.cfp-session-countdown.is-expired .cfp-session-countdown__panel {
    border-color: #F59E0B;
}

.cfp-session-trainers .cfp-trainers-widget__header {
    margin-bottom: 1.5rem;
}

@media (max-width: 767px) {
    .cfp-session-countdown__timer {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* Formation quality proofs */
.cfp-quality-proofs {
    width: 100%;
}

.cfp-quality-proofs__panel {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    padding: 1.5rem;
    border: 1px solid #E5E7EB;
    border-radius: 1.25rem;
    background: #FFFFFF;
}

.cfp-quality-proofs__header {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.cfp-quality-proofs__title,
.cfp-quality-proofs__intro,
.cfp-quality-proofs__footer,
.cfp-quality-proofs__item-title,
.cfp-quality-proofs__item-value,
.cfp-quality-proofs__item-text {
    margin: 0;
}

.cfp-quality-proofs__title {
    font-size: 1.5rem;
    line-height: 1.2;
}

.cfp-quality-proofs__intro,
.cfp-quality-proofs__footer,
.cfp-quality-proofs__item-text {
    color: #4B5563;
}

.cfp-quality-proofs__items {
    display: grid;
    gap: 1rem;
}

.cfp-quality-proofs__items--cards {
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}

.cfp-quality-proofs__items--list {
    grid-template-columns: 1fr;
}

.cfp-quality-proofs__item {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    padding: 1rem;
    border: 1px solid #E5E7EB;
    border-radius: 1rem;
    background: #F9FAFB;
}

.cfp-quality-proofs__item-title {
    font-weight: 600;
    color: #111827;
}

.cfp-quality-proofs__item-value {
    font-size: 1.35rem;
    font-weight: 700;
    line-height: 1.2;
    color: #111827;
}

/* Session print summary */
.cfp-session-print {
    width: 100%;
}

.cfp-session-print__panel {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 1.5rem;
    border: 1px solid #E5E7EB;
    border-radius: 1.25rem;
    background: #FFFFFF;
}

.cfp-session-print__header,
.cfp-session-print__identity,
.cfp-session-print__access-wrap,
.cfp-session-print__contact-wrap {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.cfp-session-print__title,
.cfp-session-print__intro,
.cfp-session-print__session-title,
.cfp-session-print__formation,
.cfp-session-print__reference,
.cfp-session-print__access,
.cfp-session-print__contact,
.cfp-session-print__meta-label,
.cfp-session-print__meta-value {
    margin: 0;
}

.cfp-session-print__title {
    font-size: 1.45rem;
    line-height: 1.2;
}

.cfp-session-print__session-title {
    font-size: 1.1rem;
    font-weight: 700;
    color: #111827;
}

.cfp-session-print__formation,
.cfp-session-print__reference,
.cfp-session-print__intro,
.cfp-session-print__access,
.cfp-session-print__contact,
.cfp-session-print__meta-value {
    color: #4B5563;
}

.cfp-session-print__meta {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 0.875rem;
}

.cfp-session-print__meta-item {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    padding: 0.9rem 1rem;
    border-radius: 1rem;
    background: #F9FAFB;
    border: 1px solid #E5E7EB;
}

.cfp-session-print__meta-label {
    font-weight: 600;
    color: #111827;
}

.cfp-session-print__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    justify-content: flex-start;
}

.cfp-session-print__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.8rem 1.1rem;
    border-radius: 999px;
    border: 1px solid transparent;
    background: #111827;
    color: #FFFFFF;
    text-decoration: none;
    cursor: pointer;
    transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease, color .2s ease;
}

.cfp-session-print__button--ghost {
    background: transparent;
    color: #111827;
    border-color: #D1D5DB;
}

.cfp-session-print__button:hover,
.cfp-session-print__button:focus-visible {
    transform: translateY(-1px);
    box-shadow: 0 12px 24px rgba(17, 24, 39, 0.12);
}

@media print {
    .cfp-session-print__actions {
        display: none !important;
    }

    .cfp-session-print__panel {
        box-shadow: none !important;
        border-color: #D1D5DB !important;
    }
}

/* ===== Programme modulaire ===== */
.cfp-program-blocks {
    border: 1px solid #E5E7EB;
    border-radius: 20px;
    background: #FFFFFF;
}

.cfp-program-blocks__header {
    margin-bottom: 1.5rem;
}

.cfp-program-blocks__title {
    margin: 0 0 .5rem;
}

.cfp-program-blocks__intro {
    margin: 0;
    color: #475569;
}

.cfp-program-blocks__items {
    display: grid;
    gap: 1rem;
}

.cfp-program-blocks__item {
    border: 1px solid #E5E7EB;
    border-radius: 16px;
    background: #F8FAFC;
    overflow: hidden;
}

.cfp-program-blocks__summary {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    cursor: pointer;
    list-style: none;
}

.cfp-program-blocks__summary::-webkit-details-marker {
    display: none;
}

.cfp-program-blocks__summary-main {
    display: inline-flex;
    align-items: center;
    gap: .85rem;
    min-width: 0;
}

.cfp-program-blocks__step {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    background: var(--cfp-program-blocks-accent, #5D2A61);
    color: #fff;
    font-size: .875rem;
    font-weight: 700;
    flex: 0 0 auto;
}

.cfp-program-blocks__item-title {
    margin: 0;
}

.cfp-program-blocks__duration {
    color: #64748B;
    font-size: .95rem;
    white-space: nowrap;
}

.cfp-program-blocks__content {
    padding-top: .9rem;
}

.cfp-program-blocks__objectives {
    margin: 0 0 .75rem;
    color: #334155;
    font-weight: 500;
}

.cfp-program-blocks__details {
    color: #475569;
}

.cfp-program-blocks__details > *:first-child {
    margin-top: 0;
}

.cfp-program-blocks__details > *:last-child {
    margin-bottom: 0;
}

.cfp-program-blocks__fallback {
    color: #475569;
}

.cfp-program-blocks--accordion .cfp-program-blocks__item[open] .cfp-program-blocks__summary {
    padding-bottom: 0;
}

.cfp-program-blocks--accordion .cfp-program-blocks__summary::after {
    content: '+';
    font-size: 1.25rem;
    line-height: 1;
    color: var(--cfp-program-blocks-accent, #5D2A61);
    margin-left: auto;
}

.cfp-program-blocks--accordion .cfp-program-blocks__item[open] .cfp-program-blocks__summary::after {
    content: '–';
}

.cfp-program-blocks--cards .cfp-program-blocks__summary {
    cursor: default;
}

.cfp-program-blocks--cards .cfp-program-blocks__summary::after {
    display: none;
}

/* ===== Mini CTA intra-entreprise ===== */
.cfp-intra-mini-cta {
    border: 1px solid #1E293B;
    border-radius: 20px;
    background: #0F172A;
    color: #F8FAFC;
}

.cfp-intra-mini-cta__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: .35rem .7rem;
    border-radius: 999px;
    background: #FACC15;
    color: #0F172A;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .02em;
    text-transform: uppercase;
    margin-bottom: .9rem;
}

.cfp-intra-mini-cta__title {
    margin: 0 0 .75rem;
    color: inherit;
}

.cfp-intra-mini-cta__intro {
    margin: 0;
    color: inherit;
}

.cfp-intra-mini-cta__metrics {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: .85rem;
    margin-top: 1.15rem;
}

.cfp-intra-mini-cta__metric,
.cfp-intra-mini-cta__contact {
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 14px;
    padding: .85rem 1rem;
    background: rgba(255,255,255,.04);
}

.cfp-intra-mini-cta__metric strong {
    display: block;
    font-size: .82rem;
    opacity: .75;
    margin-bottom: .3rem;
}

.cfp-intra-mini-cta__points {
    list-style: none;
    margin: 1.15rem 0 0;
    padding: 0;
    display: grid;
    gap: .6rem;
}

.cfp-intra-mini-cta__points li {
    position: relative;
    padding-left: 1.25rem;
}

.cfp-intra-mini-cta__points li::before {
    content: '•';
    position: absolute;
    left: 0;
    top: 0;
    color: #FACC15;
}

.cfp-intra-mini-cta__contacts {
    display: flex;
    flex-wrap: wrap;
    gap: .8rem;
    margin-top: 1.15rem;
}

.cfp-intra-mini-cta__contact {
    color: inherit;
    text-decoration: none;
}

.cfp-intra-mini-cta__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .8rem;
    margin-top: 1.25rem;
}

.cfp-intra-mini-cta__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    border: 1px solid transparent;
    border-radius: 14px;
    padding: .75rem 1.1rem;
    text-decoration: none;
    transition: transform .2s ease, opacity .2s ease, background-color .2s ease, border-color .2s ease;
}

.cfp-intra-mini-cta__button:hover {
    transform: translateY(-1px);
}

.cfp-intra-mini-cta__button--primary {
    background: #5D2A61;
    color: #fff;
    border-color: #5D2A61;
}

.cfp-intra-mini-cta__button--secondary {
    background: transparent;
    color: #fff;
    border-color: rgba(255,255,255,.24);
}

@media (max-width: 767px) {
    .cfp-program-blocks__summary {
        align-items: flex-start;
    }

    .cfp-program-blocks__duration {
        white-space: normal;
        text-align: right;
    }

    .cfp-intra-mini-cta__actions,
    .cfp-intra-mini-cta__contacts {
        flex-direction: column;
    }

    .cfp-intra-mini-cta__button,
    .cfp-intra-mini-cta__contact {
        width: 100%;
    }
}

/* Catalogue - filtres actifs */
.cfp-active-filters {
    border: 1px solid #e5e7eb;
    border-radius: 18px;
    padding: 18px 20px;
    display: grid;
    gap: 14px;
    background: #ffffff;
}

.cfp-active-filters__header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 16px;
}

.cfp-active-filters__title {
    margin: 0;
    font-size: 1.05rem;
}

.cfp-active-filters__count,
.cfp-active-filters__reset,
.cfp-active-filters__empty {
    font-size: 0.95rem;
}

.cfp-active-filters__reset {
    margin-left: auto;
    text-decoration: none;
}

.cfp-active-filters__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.cfp-active-filters__chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border-radius: 999px;
    background: #f1f5f9;
    color: #0f172a;
    text-decoration: none;
    border: 1px solid rgba(148, 163, 184, 0.25);
}

/* Catalogue - tri rapide */
.cfp-catalogue-controls {
    border: 1px solid #e5e7eb;
    border-radius: 18px;
    padding: 18px 20px;
    display: grid;
    gap: 16px;
    background: #ffffff;
}

.cfp-catalogue-controls__header {
    display: grid;
    gap: 6px;
}

.cfp-catalogue-controls__title {
    margin: 0;
    font-size: 1.05rem;
}

.cfp-catalogue-controls__intro {
    margin: 0;
}

.cfp-catalogue-controls__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 12px;
}

.cfp-catalogue-controls__label {
    display: grid;
    gap: 6px;
    font-size: 0.94rem;
}

.cfp-catalogue-controls__field {
    min-height: 44px;
    border: 1px solid #dbe3ea;
    border-radius: 12px;
    padding: 0 14px;
    width: 100%;
    background: #ffffff;
}

.cfp-catalogue-controls__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 14px;
}

.cfp-catalogue-controls__button,
.cfp-catalogue-controls__reset {
    min-height: 44px;
    border-radius: 12px;
    border: 1px solid #dbe3ea;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 16px;
    text-decoration: none;
}

.cfp-catalogue-controls__button {
    background: #0f172a;
    color: #ffffff;
}

.cfp-catalogue-controls__reset {
    background: #f8fafc;
    color: #0f172a;
}

/* Catalogue grid - vue liste */
.cfp-formations-grid--list {
    grid-template-columns: 1fr !important;
}

@media (max-width: 767px) {
    .cfp-active-filters__reset {
        margin-left: 0;
    }
}

/* =========================
   Formation - Simulateur d'éligibilité
   ========================= */
.cfp-eligibility-simulator {
    border: 1px solid #E2E8F0;
    display: grid;
    gap: 1.25rem;
}

.cfp-eligibility-simulator__header {
    display: grid;
    gap: .6rem;
}

.cfp-eligibility-simulator__title {
    margin: 0;
}

.cfp-eligibility-simulator__intro,
.cfp-eligibility-simulator__summary {
    margin: 0;
}

.cfp-eligibility-simulator__profiles {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
}

.cfp-eligibility-simulator__profile {
    appearance: none;
    border: 0;
    border-radius: 999px;
    padding: .8rem 1rem;
    cursor: pointer;
    transition: all .2s ease;
}

.cfp-eligibility-simulator__profile:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 2px;
}

.cfp-eligibility-simulator__panels {
    display: grid;
}

.cfp-eligibility-simulator__panel {
    display: grid;
    gap: 1rem;
}

.cfp-eligibility-simulator__cards,
.cfp-eligibility-simulator__prices {
    display: grid;
    gap: .9rem;
}

.cfp-eligibility-simulator__cards {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.cfp-eligibility-simulator__card,
.cfp-eligibility-simulator__price {
    border: 1px solid #E2E8F0;
    border-radius: 18px;
    padding: 1rem;
}

.cfp-eligibility-simulator__card-title {
    margin: 0 0 .45rem;
    font-size: 1rem;
}

.cfp-eligibility-simulator__card-text,
.cfp-eligibility-simulator__price {
    margin: 0;
    color: #475569;
}

.cfp-eligibility-simulator__footer {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
}

.cfp-eligibility-simulator__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    padding: .9rem 1.2rem;
    border-radius: 14px;
    text-decoration: none;
    font-weight: 600;
}

/* =========================
   Session - Partage & relais
   ========================= */
.cfp-session-share {
    border: 1px solid #E2E8F0;
    display: grid;
    gap: 1rem;
}

.cfp-session-share__header {
    display: grid;
    gap: .5rem;
}

.cfp-session-share__title,
.cfp-session-share__intro,
.cfp-session-share__meta {
    margin: 0;
}

.cfp-session-share__buttons {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
}

.cfp-session-share__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: .85rem 1rem;
    border: 1px solid #E2E8F0;
    text-decoration: none;
    cursor: pointer;
    transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}

.cfp-session-share__feedback {
    min-height: 1.2em;
    font-size: .95rem;
    color: #475569;
}

.cfp-visually-hidden {
    position: absolute !important;
    left: -9999px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}

@media (max-width: 767px) {
    .cfp-eligibility-simulator__cards,
    .cfp-session-share__buttons {
        grid-template-columns: 1fr;
    }

    .cfp-session-share__button,
    .cfp-eligibility-simulator__cta {
        width: 100%;
    }
}

/* =========================
   Session - Documents utiles
   ========================= */
.cfp-session-documents {
    border: 1px solid #E2E8F0;
    display: grid;
    gap: 1rem;
}

.cfp-session-documents__header {
    display: grid;
    gap: .5rem;
}

.cfp-session-documents__title,
.cfp-session-documents__intro,
.cfp-session-documents__item-title,
.cfp-session-documents__description,
.cfp-session-documents__meta {
    margin: 0;
}

.cfp-session-documents__items {
    display: grid;
    gap: 1rem;
}

.cfp-session-documents--cards .cfp-session-documents__items {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.cfp-session-documents__item {
    border: 1px solid #E2E8F0;
    border-radius: 18px;
    padding: 1rem;
    display: grid;
    gap: .85rem;
}

.cfp-session-documents__actions,
.cfp-session-documents__footer {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
}

.cfp-session-documents__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: .85rem 1rem;
    border: 1px solid #E2E8F0;
    border-radius: 14px;
    text-decoration: none;
}

/* =========================
   Catalogue - Sélection de formations
   ========================= */
.cfp-featured-formations {
    border: 1px solid #E2E8F0;
    display: grid;
    gap: 1.2rem;
}

.cfp-featured-formations__header {
    display: grid;
    gap: .5rem;
}

.cfp-featured-formations__title,
.cfp-featured-formations__intro,
.cfp-featured-formations__item-title,
.cfp-featured-formations__excerpt,
.cfp-featured-formations__meta {
    margin: 0;
}

.cfp-featured-formations__items {
    display: grid;
    gap: 1rem;
}

.cfp-featured-formations--cards .cfp-featured-formations__items {
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.cfp-featured-formations__item {
    border: 1px solid #E2E8F0;
    border-radius: 20px;
    overflow: hidden;
    display: grid;
    gap: 0;
    background: #fff;
}

.cfp-featured-formations__media {
    display: block;
    line-height: 0;
}

.cfp-featured-formations__media img {
    display: block;
    width: 100%;
    height: auto;
}

.cfp-featured-formations__media-placeholder {
    display: block;
    min-height: 180px;
    background: linear-gradient(135deg, #F8FAFC 0%, #E2E8F0 100%);
}

.cfp-featured-formations__body {
    display: grid;
    gap: .75rem;
    padding: 1rem;
}

.cfp-featured-formations__item-title a {
    color: inherit;
    text-decoration: none;
}

.cfp-featured-formations__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: .85rem 1rem;
    border: 1px solid #E2E8F0;
    border-radius: 14px;
    text-decoration: none;
}

@media (max-width: 767px) {
    .cfp-session-documents__actions,
    .cfp-session-documents__footer,
    .cfp-featured-formations__button {
        width: 100%;
    }

    .cfp-session-documents__button,
    .cfp-featured-formations__button {
        width: 100%;
    }
}


/* Session — contacts utiles */
.cfp-session-contact {
    border: 1px solid #e2e8f0;
    display: grid;
    gap: 1.25rem;
}

.cfp-session-contact__header {
    display: grid;
    gap: 0.65rem;
}

.cfp-session-contact__title {
    margin: 0;
    font-size: clamp(1.25rem, 2vw, 1.8rem);
}

.cfp-session-contact__intro {
    margin: 0;
    color: #475569;
}

.cfp-session-contact__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 1rem;
}

.cfp-session-contact__card {
    border: 1px solid #e2e8f0;
    border-radius: 18px;
    padding: 1rem;
    display: grid;
    gap: 0.55rem;
}

.cfp-session-contact__badge {
    justify-self: start;
    font-size: 0.78rem;
    font-weight: 700;
    line-height: 1;
    padding: 0.45rem 0.7rem;
    border-radius: 999px;
}

.cfp-session-contact__card-title {
    margin: 0;
    font-size: 1.05rem;
}

.cfp-session-contact__meta {
    color: #475569;
    font-size: 0.95rem;
}

.cfp-session-contact__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 0.25rem;
}

.cfp-session-contact__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 0.75rem 1rem;
    border: 1px solid #e2e8f0;
    border-radius: 999px;
    color: #0f172a;
    text-decoration: none;
    transition: background-color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.cfp-session-contact__button:hover,
.cfp-session-contact__button:focus-visible {
    transform: translateY(-1px);
}

/* Catalogue — catégories / domaines */
.cfp-featured-terms {
    border: 1px solid #e2e8f0;
    display: grid;
    gap: 1.25rem;
}

.cfp-featured-terms__header {
    display: grid;
    gap: 0.65rem;
}

.cfp-featured-terms__title {
    margin: 0;
    font-size: clamp(1.25rem, 2vw, 1.8rem);
}

.cfp-featured-terms__intro {
    margin: 0;
    color: #475569;
}

.cfp-featured-terms__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: 1rem;
}

.cfp-featured-terms__card {
    border: 1px solid #e2e8f0;
    border-radius: 18px;
    padding: 1rem;
    display: grid;
    gap: 0.7rem;
}

.cfp-featured-terms__card-title {
    margin: 0;
    font-size: 1.05rem;
}

.cfp-featured-terms__count {
    color: #475569;
    font-size: 0.92rem;
    font-weight: 600;
}

.cfp-featured-terms__card-text {
    color: #475569;
    font-size: 0.95rem;
}

.cfp-featured-terms__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 0.75rem 1rem;
    border: 1px solid #e2e8f0;
    border-radius: 999px;
    color: #0f172a;
    text-decoration: none;
    transition: background-color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.cfp-featured-terms__button:hover,
.cfp-featured-terms__button:focus-visible {
    transform: translateY(-1px);
}

/* Rework - Catalogue tri rapide */
.cfp-catalogue-controls__title-wrap {
    display: flex;
    align-items: flex-start;
    gap: 0.875rem;
}

.cfp-catalogue-controls__title-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 999px;
    background: #f8fafc;
    color: #0f172a;
    flex-shrink: 0;
}

.cfp-catalogue-controls__title-icon svg,
.cfp-catalogue-controls__action-icon svg {
    width: 1rem;
    height: 1rem;
    fill: currentColor;
}

.cfp-catalogue-controls__header-content {
    display: grid;
    gap: 0.35rem;
    min-width: 0;
}

.cfp-catalogue-controls__button,
.cfp-catalogue-controls__reset {
    gap: 0.55rem;
}

.cfp-catalogue-controls__action-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: inherit;
}

.cfp-catalogue-controls__action-label {
    line-height: 1.2;
}

/* Rework - Session résumé imprimable */
.cfp-session-print__header-row {
    display: flex;
    align-items: flex-start;
    gap: 0.875rem;
}

.cfp-session-print__header-icon,
.cfp-session-print__meta-icon,
.cfp-session-print__button-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: currentColor;
}

.cfp-session-print__header-icon {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 999px;
    background: #F3F4F6;
    flex-shrink: 0;
}

.cfp-session-print__header-content {
    display: grid;
    gap: 0.35rem;
    min-width: 0;
}

.cfp-session-print__meta-item {
    align-items: flex-start;
    flex-direction: row;
    gap: 0.75rem;
}

.cfp-session-print__meta-icon {
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    background: #EEF2FF;
    color: #3730A3;
    flex-shrink: 0;
}

.cfp-session-print__meta-content {
    display: grid;
    gap: 0.25rem;
    min-width: 0;
}

.cfp-session-print__header-icon svg,
.cfp-session-print__meta-icon svg,
.cfp-session-print__button-icon svg {
    width: 1rem;
    height: 1rem;
    fill: currentColor;
}

.cfp-session-print__button {
    gap: 0.55rem;
}

.cfp-session-print__button-label {
    line-height: 1.2;
}

/* Widget - Session checklist participant */
.cfp-session-checklist__panel {
    display: grid;
    gap: 1rem;
    padding: 1.5rem;
    border: 1px solid #E5E7EB;
    border-radius: 1.25rem;
    background: #fff;
}

.cfp-session-checklist__header,
.cfp-session-checklist__item-content {
    display: grid;
    gap: 0.35rem;
}

.cfp-session-checklist__title,
.cfp-session-checklist__intro,
.cfp-session-checklist__item-title,
.cfp-session-checklist__item-text {
    margin: 0;
}

.cfp-session-checklist__items {
    display: grid;
    gap: 0.875rem;
}

.cfp-session-checklist--cards .cfp-session-checklist__items {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.cfp-session-checklist__item {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 1rem;
    border: 1px solid #E5E7EB;
    border-radius: 1rem;
    background: #F9FAFB;
}

.cfp-session-checklist__item-icon {
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #EEF2FF;
    color: #3730A3;
    flex-shrink: 0;
}

.cfp-session-checklist__item-icon svg {
    width: 1rem;
    height: 1rem;
    fill: currentColor;
}

/* Widget - Formation sélecteur de session */
.cfp-session-switcher__panel {
    display: grid;
    gap: 1rem;
    padding: 1.5rem;
    border: 1px solid #E5E7EB;
    border-radius: 1.25rem;
    background: #fff;
}

.cfp-session-switcher__header,
.cfp-session-switcher__control,
.cfp-session-switcher__summary,
.cfp-session-switcher__summary-item {
    display: grid;
    gap: 0.45rem;
}

.cfp-session-switcher__title,
.cfp-session-switcher__intro,
.cfp-session-switcher__summary-label,
.cfp-session-switcher__summary-value {
    margin: 0;
}

.cfp-session-switcher__label {
    font-weight: 600;
}

.cfp-session-switcher__field {
    min-height: 48px;
    border-radius: 12px;
    border: 1px solid #D1D5DB;
    padding: 0 0.9rem;
    background: #fff;
    width: 100%;
}

.cfp-session-switcher__summary {
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
}

.cfp-session-switcher__summary-item {
    padding: 0.9rem 1rem;
    border-radius: 1rem;
    border: 1px solid #E5E7EB;
    background: #F9FAFB;
}

.cfp-session-switcher__summary-label {
    color: #6B7280;
    font-size: 0.92rem;
}

.cfp-session-switcher__summary-value {
    color: #111827;
}

.cfp-session-switcher__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.cfp-session-switcher__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 0.8rem 1.1rem;
    border-radius: 999px;
    background: #111827;
    color: #fff;
    text-decoration: none;
}

@media (max-width: 767px) {
    .cfp-catalogue-controls__title-wrap,
    .cfp-session-print__header-row,
    .cfp-session-checklist__item {
        align-items: flex-start;
    }

    .cfp-session-switcher__summary,
    .cfp-session-checklist--cards .cfp-session-checklist__items {
        grid-template-columns: 1fr;
    }
}


/* V5.4.59 - Formation badges & Session navigation */
.cfp-formation-badges {
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.cfp-formation-badges__title {
    margin: 0;
}
.cfp-formation-badges__list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.cfp-formation-badges__item {
    display: inline-flex;
    align-items: center;
    min-height: 36px;
    padding: 8px 14px;
    border-radius: 999px;
    background: #F3F4F8;
    color: #1D2746;
    border: 1px solid #E2E5F0;
    line-height: 1.3;
}
.cfp-formation-badges__item--accent {
    background: #EEF1FF;
    color: #2E3F92;
}
.cfp-formation-badges__item--muted {
    background: #FAFAFC;
    color: #5B6073;
}
.cfp-session-navigation__panel {
    display: flex;
    flex-direction: column;
    gap: 18px;
    padding: 24px;
    border-radius: 20px;
    background: #FFFFFF;
    border: 1px solid #E8EBF4;
}
.cfp-session-navigation__title {
    margin: 0;
}
.cfp-session-navigation__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}
.cfp-session-navigation__card {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 18px;
    background: #F7F8FC;
    border: 1px solid #E4E8F3;
    border-radius: 18px;
}
.cfp-session-navigation__label {
    font-size: 0.85rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #6A718A;
}
.cfp-session-navigation__name {
    font-weight: 700;
    color: #1D2746;
}
.cfp-session-navigation__meta,
.cfp-session-navigation__status {
    color: #5C6378;
}
.cfp-session-navigation__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    align-self: flex-start;
    min-height: 42px;
    padding: 10px 16px;
    border-radius: 999px;
    background: #5D2A61;
    color: #FFFFFF;
    text-decoration: none;
    transition: transform .2s ease, opacity .2s ease;
}
.cfp-session-navigation__button:hover,
.cfp-session-navigation__button:focus-visible {
    color: #FFFFFF;
    opacity: .92;
    transform: translateY(-1px);
}
@media (max-width: 767px) {
    .cfp-session-navigation__grid {
        grid-template-columns: 1fr;
    }
}


.cfp-share-actions,
.cfp-catalogue-summary {
    border: 1px solid #e2e8f0;
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.06);
}

.cfp-share-actions__header,
.cfp-catalogue-summary__head {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 16px;
}

.cfp-share-actions__title,
.cfp-catalogue-summary__title {
    margin: 0;
}

.cfp-share-actions__intro,
.cfp-share-actions__meta,
.cfp-catalogue-summary__intro,
.cfp-catalogue-summary__context {
    margin: 0;
}

.cfp-share-actions__buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.cfp-share-actions__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 16px;
    border: 1px solid #e2e8f0;
    text-decoration: none;
    transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}

.cfp-share-actions__feedback {
    display: inline-block;
    margin-top: 10px;
    min-height: 1.2em;
}

.cfp-catalogue-summary__countline {
    display: flex;
    align-items: baseline;
    gap: 12px;
}

.cfp-catalogue-summary__count {
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 700;
    line-height: 1;
}

.cfp-catalogue-summary__label {
    font-weight: 600;
}

.cfp-catalogue-summary__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 16px;
}

.cfp-catalogue-summary__chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(124, 58, 237, 0.08);
    color: #4c1d95;
    font-size: 0.95rem;
    line-height: 1.35;
}

.cfp-catalogue-summary__context,
.cfp-catalogue-summary__empty {
    margin-top: 14px;
}

.cfp-catalogue-summary__footer {
    display: flex;
    justify-content: flex-start;
    margin-top: 18px;
}

.cfp-catalogue-summary__reset {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 600;
    text-decoration: none;
}

/* ==========================================================================
   Catalogue — liées / similaires
   ========================================================================== */
.cfp-catalogue-related {
    width: 100%;
}

.cfp-catalogue-related__panel {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    padding: 1.5rem;
    background: #ffffff;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 1.25rem;
}

.cfp-catalogue-related__header {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.cfp-catalogue-related__title,
.cfp-catalogue-related__intro,
.cfp-catalogue-related__item-title,
.cfp-catalogue-related__excerpt,
.cfp-catalogue-related__meta,
.cfp-catalogue-related__empty {
    margin: 0;
}

.cfp-catalogue-related__items {
    display: grid;
    gap: 1rem;
}

.cfp-catalogue-related--cards .cfp-catalogue-related__items {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.cfp-catalogue-related__item {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    min-height: 100%;
    background: #ffffff;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 1rem;
}

.cfp-catalogue-related__media {
    display: block;
    aspect-ratio: 16 / 9;
    overflow: hidden;
}

.cfp-catalogue-related__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.cfp-catalogue-related__media-placeholder {
    display: block;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, rgba(93, 42, 97, 0.12), rgba(15, 23, 42, 0.04));
}

.cfp-catalogue-related__body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 0.75rem;
    padding: 1rem;
}

.cfp-catalogue-related__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.cfp-catalogue-related__badge {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.4rem 0.7rem;
    border-radius: 999px;
    background: rgba(93, 42, 97, 0.1);
    color: #5d2a61;
    font-size: 0.8rem;
    line-height: 1.2;
}

.cfp-catalogue-related__item-title a {
    color: inherit;
    text-decoration: none;
}

.cfp-catalogue-related__item-title a:hover {
    text-decoration: underline;
}

.cfp-catalogue-related__meta {
    color: #475569;
}

.cfp-catalogue-related__excerpt {
    color: #334155;
}

.cfp-catalogue-related__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    width: fit-content;
    margin-top: auto;
    padding: 0.75rem 1rem;
    border-radius: 999px;
    background: #5d2a61;
    color: #ffffff;
    text-decoration: none;
    font-weight: 600;
}

.cfp-catalogue-related__button:hover {
    color: #ffffff;
    opacity: 0.92;
}

@media (max-width: 1024px) {
    .cfp-catalogue-related--cards .cfp-catalogue-related__items {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .cfp-catalogue-related__panel {
        padding: 1.25rem;
    }

    .cfp-catalogue-related--cards .cfp-catalogue-related__items {
        grid-template-columns: 1fr;
    }

    .cfp-catalogue-related__button {
        width: 100%;
    }
}


/* V5.4.74 - finitions front partage, contact et documents */
.cfp-share-actions__intro,
.cfp-share-actions__meta,
.cfp-session-share__intro,
.cfp-session-share__meta,
.cfp-session-contact__intro,
.cfp-session-documents__intro,
.cfp-documents-widget__intro,
.cfp-help-widget__intro,
.cfp-help-widget__secondary {
    max-width: 68ch;
}

.cfp-share-actions__button,
.cfp-session-share__button,
.cfp-session-contact__button,
.cfp-session-documents__button,
.cfp-help-widget__button,
.cfp-documents-widget__button {
    transition: background-color .2s ease, border-color .2s ease, color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.cfp-share-actions__button:focus-visible,
.cfp-session-share__button:focus-visible,
.cfp-session-contact__button:focus-visible,
.cfp-session-documents__button:focus-visible,
.cfp-help-widget__button:focus-visible,
.cfp-documents-widget__button:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 2px;
}

.cfp-session-contact__grid,
.cfp-session-documents__items,
.cfp-share-actions__buttons,
.cfp-session-share__buttons,
.cfp-help-widget__actions,
.cfp-documents-widget__actions {
    align-items: stretch;
}

.cfp-session-documents__item-main,
.cfp-session-contact__card {
    min-width: 0;
}

.cfp-session-documents__item-main {
    display: grid;
    gap: .45rem;
}

.cfp-session-documents__button--secondary {
    background: transparent;
}

@media (max-width: 767px) {
    .cfp-share-actions__button,
    .cfp-session-share__button,
    .cfp-session-contact__button,
    .cfp-session-documents__button,
    .cfp-help-widget__button,
    .cfp-documents-widget__button {
        width: 100%;
    }

    .cfp-session-contact__actions,
    .cfp-help-widget__actions,
    .cfp-share-actions__buttons,
    .cfp-session-share__buttons,
    .cfp-documents-widget__actions,
    .cfp-session-documents__actions,
    .cfp-session-documents__footer {
        width: 100%;
    }
}


.cfp-widget[id] {
    scroll-margin-top: 96px;
}

.cfp-anchor-target-active {
    outline: 2px solid rgba(93, 42, 97, 0.18);
    outline-offset: 4px;
    box-shadow: 0 0 0 6px rgba(227, 107, 36, 0.08);
    transition: box-shadow 0.25s ease, outline-color 0.25s ease;
}


/* V5.4.92 - gabarit documents plus équilibré */
.cfp-documents-widget__grid {
    align-items: stretch;
}

.cfp-documents-widget__item {
    min-width: 0;
    min-height: 100%;
    box-shadow: 0 10px 28px rgba(35,35,91,.06);
}

.cfp-documents-widget__item-badge {
    margin-bottom: .1rem;
}

.cfp-documents-widget__item-title {
    line-height: 1.25;
    text-wrap: balance;
}

.cfp-documents-widget__item-description,
.cfp-documents-widget__item-meta {
    line-height: 1.55;
}

.cfp-documents-widget__button {
    width: 100%;
}

.cfp-documents-widget--count-1 .cfp-documents-widget__item {
    grid-column: 1 / -1;
    max-width: 560px;
}

.cfp-documents-widget--count-1 .cfp-documents-widget__grid {
    grid-template-columns: minmax(0, 1fr) !important;
}

.cfp-documents-widget--count-1 .cfp-documents-widget__item-top {
    align-items: center;
}

.cfp-documents-widget--count-1 .cfp-documents-widget__item-title {
    font-size: 1.35rem;
}

.cfp-documents-widget--count-1 .cfp-documents-widget__item-meta {
    font-size: 1rem;
}

.cfp-documents-widget--count-1 .cfp-documents-widget__item-description {
    max-width: 52ch;
}

.cfp-documents-widget--count-2 .cfp-documents-widget__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.cfp-documents-widget--compact .cfp-documents-widget__button {
    width: auto;
}

@media (min-width: 768px) {
    .cfp-documents-widget--single .cfp-documents-widget__item {
        padding: 1.4rem;
    }
}

@media (max-width: 767px) {
    .cfp-documents-widget--count-1 .cfp-documents-widget__item,
    .cfp-documents-widget--count-2 .cfp-documents-widget__item {
        max-width: none;
    }

    .cfp-documents-widget__button {
        width: 100%;
    }
}
