/**
 * Archive Formations CSS
 * Styles pour la page d'archive des formations
 *
 * @package IFP
 * @since 1.0.0
 */

/* ==========================================================================
   ARCHIVE FORMATIONS LAYOUT
   ========================================================================== */

.archive-formations {
    padding-bottom: var(--spacing-12);
}

/* ==========================================================================
   BANNER
   ========================================================================== */

.formations-banner {
    background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark, #1e3a8a) 100%);
    color: var(--color-text-inverse);
    padding: var(--spacing-12) 0;
    text-align: center;
}

.formations-banner__title {
    font-size: var(--font-size-4xl);
    font-weight: var(--font-weight-bold);
    margin: 0 0 var(--spacing-3);
    line-height: 1.2;
}

.formations-banner__subtitle {
    font-size: var(--font-size-lg);
    opacity: 0.9;
    margin: 0;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

/* ==========================================================================
   FILTERS
   ========================================================================== */

.formations-filters {
    background-color: var(--color-bg);
    border-bottom: 1px solid var(--color-border);
    padding: var(--spacing-4) 0;
    position: sticky;
    /* Juste après le header sticky (80px) - la top-bar scroll avec la page */
    top: var(--header-height, 80px);
    z-index: calc(var(--z-sticky, 100) - 1);
}

.formations-filters__inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--spacing-4);
}

.formations-filters__group {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--spacing-3);
}

.formations-filters__label {
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-secondary);
    white-space: nowrap;
}

.formations-filters__buttons {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-2);
}

.formations-filters__btn {
    display: inline-flex;
    align-items: center;
    padding: var(--spacing-2) var(--spacing-4);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    color: var(--color-text);
    background-color: var(--color-bg-secondary);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-full);
    text-decoration: none;
    transition: all var(--transition-fast);
    white-space: nowrap;
}

.formations-filters__btn:hover {
    border-color: var(--color-primary);
    color: var(--color-primary);
}

.formations-filters__btn.is-active {
    background-color: var(--color-primary);
    border-color: var(--color-primary);
    color: var(--color-text-inverse);
}

/* ==========================================================================
   CONTAINER
   ========================================================================== */

.formations-archive__container {
    padding-top: var(--spacing-8);
}

/* ==========================================================================
   SECTION
   ========================================================================== */

.formations-section {
    margin-bottom: var(--spacing-12);
}

.formations-section:last-child {
    margin-bottom: 0;
}

.formations-section__header {
    margin-bottom: var(--spacing-6);
    padding-bottom: var(--spacing-4);
    border-bottom: 2px solid var(--color-border);
}

.formations-section__title {
    display: flex;
    align-items: center;
    gap: var(--spacing-3);
    font-size: var(--font-size-2xl);
    font-weight: var(--font-weight-bold);
    margin: 0 0 var(--spacing-2);
    color: var(--color-text);
}

.formations-section__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background-color: var(--color-primary);
    color: var(--color-text-inverse);
    border-radius: var(--radius-md);
    flex-shrink: 0;
}

.formations-section__icon--pro {
    background-color: #047857;
}

.formations-section__count {
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-normal);
    color: var(--color-text-muted);
}

.formations-section__description {
    font-size: var(--font-size-base);
    color: var(--color-text-secondary);
    margin: 0;
}

/* ==========================================================================
   FORMATIONS GRID
   ========================================================================== */

.formations-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: var(--spacing-6);
}

/* ==========================================================================
   FORMATION CARD
   ========================================================================== */

.formation-card {
    background-color: var(--color-bg);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    overflow: hidden;
    transition: transform var(--transition-fast), box-shadow var(--transition-fast);
}

.formation-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-lg);
}

.formation-card__link {
    display: flex;
    flex-direction: column;
    height: 100%;
    text-decoration: none;
    color: inherit;
}

.formation-card__image {
    position: relative;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background-color: var(--color-bg-secondary);
}

.formation-card__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--transition-slow);
}

.formation-card:hover .formation-card__img {
    transform: scale(1.05);
}

.formation-card__badge {
    position: absolute;
    top: var(--spacing-3);
    left: var(--spacing-3);
    padding: var(--spacing-1) var(--spacing-3);
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-bold);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    background-color: var(--color-primary);
    color: var(--color-text-inverse);
    border-radius: var(--radius-full);
}

.formation-card__badge--pro {
    background-color: #047857;
}

.formation-card__content {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: var(--spacing-4);
}

.formation-card__title {
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-semibold);
    margin: 0 0 var(--spacing-3);
    color: var(--color-text);
    line-height: 1.3;
}

.formation-card__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--spacing-3);
    margin-bottom: var(--spacing-4);
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
}

.formation-card__modalite {
    display: inline-flex;
    align-items: center;
    padding: var(--spacing-1) var(--spacing-2);
    background-color: var(--color-bg-secondary);
    border-radius: var(--radius-sm);
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-medium);
}

.formation-card__duree {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-1);
}

.formation-card__prix {
    font-weight: var(--font-weight-bold);
    color: var(--color-primary);
}

.formation-card__cta {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-2);
    margin-top: auto;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--color-primary);
    transition: gap var(--transition-fast);
}

.formation-card:hover .formation-card__cta {
    gap: var(--spacing-3);
}

.formation-card__cta svg {
    transition: transform var(--transition-fast);
}

.formation-card:hover .formation-card__cta svg {
    transform: translateX(4px);
}

/* ==========================================================================
   EMPTY STATE
   ========================================================================== */

.formations-archive__empty {
    text-align: center;
    padding: var(--spacing-12) var(--spacing-4);
}

.formations-archive__empty h2 {
    font-size: var(--font-size-2xl);
    margin-bottom: var(--spacing-4);
}

.formations-archive__empty p {
    color: var(--color-text-secondary);
    margin-bottom: var(--spacing-6);
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */

@media (max-width: 1024px) {
    .formations-grid {
        grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
        gap: var(--spacing-4);
    }
}

@media (max-width: 768px) {
    .formations-banner {
        padding: var(--spacing-8) 0;
    }

    .formations-banner__title {
        font-size: var(--font-size-2xl);
    }

    .formations-banner__subtitle {
        font-size: var(--font-size-base);
    }

    /* Sticky bottom filters on mobile */
    .formations-filters {
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        top: auto;
        padding: var(--spacing-3) 0;
        border-bottom: none;
        border-top: 1px solid var(--color-border);
        box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.1);
        z-index: var(--z-sticky, 100);
    }

    .formations-filters__inner {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--spacing-2);
    }

    .formations-filters__group {
        width: 100%;
        flex-direction: column;
        align-items: flex-start;
        gap: var(--spacing-2);
    }

    .formations-filters__label {
        font-size: var(--font-size-xs);
        margin-bottom: 0;
    }

    .formations-filters__buttons {
        width: 100%;
        overflow-x: auto;
        flex-wrap: nowrap;
        padding-bottom: var(--spacing-1);
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none; /* Firefox */
        -ms-overflow-style: none; /* IE/Edge */
    }

    .formations-filters__buttons::-webkit-scrollbar {
        display: none; /* Chrome/Safari */
    }

    .formations-filters__btn {
        flex-shrink: 0;
        padding: var(--spacing-1) var(--spacing-3);
        font-size: var(--font-size-xs);
    }

    /* Add padding at bottom of page to account for fixed filters */
    .archive-formations {
        padding-bottom: calc(var(--spacing-12) + 140px);
    }

    .formations-section__title {
        font-size: var(--font-size-xl);
    }

    .formations-section__icon {
        width: 32px;
        height: 32px;
    }

    .formations-section__icon svg {
        width: 18px;
        height: 18px;
    }

    .formations-grid {
        grid-template-columns: 1fr;
        gap: var(--spacing-4);
    }

    .formation-card__image {
        aspect-ratio: 16 / 9;
    }

    .archive-formations {
        padding-bottom: var(--spacing-8);
    }
}

@media (max-width: 480px) {
    .formations-banner {
        padding: var(--spacing-6) 0;
    }

    .formations-banner__title {
        font-size: var(--font-size-xl);
    }

    .formation-card__content {
        padding: var(--spacing-3);
    }

    .formation-card__title {
        font-size: var(--font-size-base);
    }
}
