/* ============================================================
   Formation — component styles
   ============================================================ */

/* ---------- Filter bar ---------- */
.formations__filters {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-bottom: 2rem;
}

.formations__filter {
    padding: .45rem 1.2rem;
    border: 2px solid var(--primary-btn, #186DB2);
    border-radius: 2rem;
    background: var(--white, #fff);
    color: var(--primary-btn, #186DB2);
    cursor: pointer;
    font-size: .78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .07em;
    transition: background .15s, color .15s, box-shadow .15s;
}

.formations__filter:hover {
    background: var(--primary-light, #e2f1ff);
}

.formations__filter--active {
    background: var(--primary-btn, #186DB2);
    border-color: var(--primary-btn, #186DB2);
    color: var(--white, #fff);
    box-shadow: var(--shadow-2, 0 2px 4px rgba(96,97,112,.16));
}

/* ---------- Grid ---------- */
.formations__list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1.25rem;
    align-items: start;
}

/* ---------- Card ---------- */
.formation {
    display: flex;
    flex-direction: column;
    gap: .5rem;
    padding: 1.25rem 1.25rem 1.5rem;
    border: 1px solid var(--primary-dark, #96c5e8);
    border-radius: .75rem;
    background: var(--white, #fff);
    box-shadow: var(--shadow-1, 0 0 1px rgba(40,41,61,.08), 0 .5px 2px rgba(96,97,112,.16));
    transition: box-shadow .2s, transform .2s;
}

.formation:hover {
    box-shadow: var(--shadow-3, 0 0 2px rgba(40,41,61,.04), 0 4px 8px rgba(96,97,112,.16));
    transform: translateY(-2px);
}

/* Category pill — appears first visually */
.formation__category {
    order: -2;
    display: inline-block;
    align-self: flex-start;
    padding: .2rem .75rem;
    border-radius: 1rem;
    background: var(--primary-light, #e2f1ff);
    color: var(--primary-btn, #186DB2);
    font-size: .7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .07em;
}

/* Title */
.formation__title {
    order: -1;
    font-size: 1rem;
    font-weight: 700;
    color: var(--black-text, #3C3D3B);
    margin: 0;
    line-height: 1.4;
}

/* Date */
.formation__date-start,
.formation__date-end {
    font-size: .8rem;
    color: var(--gray-text, #747F85);
}

/* Rich-text fields */
.formation__description,
.formation__info-sup {
    font-size: .875rem;
    line-height: 1.6;
    color: var(--black-text, #3C3D3B);
    border-top: 1px solid var(--light-1, #efefef);
    padding-top: .5rem;
    margin-top: .25rem;
}

.formation__description p:last-child,
.formation__info-sup p:last-child {
    margin-bottom: 0;
}

/* Empty state */
.formations__empty {
    color: var(--gray-1, #8d8d8d);
    font-style: italic;
}
