/* Blog Nav Tabs — DEPLACE 2026-07-20 vers page_items.css sous .nav-tabs-links
   (composant reutilisable Blog + Univers + futures pages hub).
   Fichier conserve pour compat bundleconfig — a supprimer lors du prochain menage. */

/* ---------- Blog Nav Wrapper (tabs + search inline) ---------- */
/* Cassure visuelle nette avec hero H1 au-dessus.
   Desktop : 100px pour marquer la separation.
   Mobile  : 40px (economie de scroll, break moins critique quand tout est stack). */

.blog-nav-wrapper {
    margin-top: 100px;
}

    /* Overrides pour la version .nav-tabs-links dans le contexte Blog :
       - margin-bottom: 0 (le wrapper flex gere l'espacement)
       - flex 0 0 auto : nav shrinks a son content, laisse la search absorber l'espace restant
         (sinon gap vide entre dernier tab et search bar sur ecrans wide) */
    .blog-nav-wrapper .nav-tabs-links {
        margin-bottom: 0;
        flex: 0 0 auto;
    }

    /* Search : largeur fixe 400px, gap visible entre dernier tab et search
       (via justify-content-between du wrapper). Pas de flex-grow qui la collerait au nav. */
    .blog-nav-wrapper .blog-search-bar-input-group {
        width: 400px;
    }

/* Mobile (<= 767px) : margin-top 0, le pt-5 pb-5 Bootstrap sur le container
   gere natively l'espacement (evite double margin) */
@media (max-width: 767px) {
    .blog-nav-wrapper {
        margin-top: 0;
    }
}

/* ---------- Blog Search Bar (Index + Category) ---------- */
/* Barre alignee a droite, entre hero et blog list — separateur visuel + fonction search */

.blog-search-bar {
    display: flex;
    justify-content: flex-end;
}

.blog-search-bar-input-group {
    display: flex;
    align-items: stretch;
    width: 100%;
    max-width: 500px;
    border: 1px solid var(--color-primary);
    border-radius: 40px;
    overflow: hidden;
    background: #fff;
}

/* Alignement pattern .search-input du header (Header_Search.cshtml) :
   font-size 1.2rem + color body-text + weight inherit body + placeholder 400 uppercase gris.
   Blog-specific : pas de box-shadow/border interne (le pill wrapper gere l'outline). */
.blog-search-bar-input {
    flex: 1 1 auto;
    min-width: 0;
    border: none;
    outline: none;
    padding: 12px 20px;
    font-size: 1.2rem;
    color: var(--color-body-text);
    background: transparent;
}

    .blog-search-bar-input::placeholder {
        font-size: 1rem;
        text-transform: uppercase;
        font-weight: 400;
        color: #a1a1a1;
    }

    .blog-search-bar-input:focus {
        outline: none;
    }

.blog-search-bar-btn {
    flex: 0 0 auto;
    border: none;
    cursor: pointer;
    padding: 0 22px;
    background-color: var(--color-primary);
    color: #fff;
    font-size: 1rem;
    transition: background-color 0.2s ease;
}

    .blog-search-bar-btn:hover,
    .blog-search-bar-btn:focus {
        background-color: var(--color-footer-link);
        outline: none;
    }

/* < xl (1199px) : search sur nouvelle ligne, full width, margin-top pour respirer sous les tabs.
   Override le width:400 du base pour que la barre remplisse la largeur disponible. */
@media (max-width: 1199px) {
    .blog-nav-wrapper .blog-search-bar {
        width: 100%;
        margin-top: 20px;
    }

    .blog-nav-wrapper .blog-search-bar-input-group {
        width: 100%;
        max-width: 100%;
    }
}

/* ---------- Blog List Card (Index + Category) ---------- */
/* Layout compact : image col-lg-4 gauche + content col-lg-8 droite (desktop >= 992px)
   < lg : stack vertical natif Bootstrap (image top full-width + content below)
   Refonte 2026-07-20 — remplace .page-blog-list-item */

.blog-list-card {
    margin-bottom: 3rem;
    padding-bottom: 2rem;
}

    /* Image wrapper — cliquable lightbox */
    .blog-list-card .blog-list-card-media {
        overflow: hidden;
        border-radius: 10px;
    }

        .blog-list-card .blog-list-card-media a {
            display: block;
            cursor: zoom-in;
        }

        .blog-list-card .blog-list-card-media img {
            display: block;
            width: 100%;
            height: auto;
            aspect-ratio: 16 / 9;
            object-fit: cover;
            transition: transform 0.3s ease;
        }

        .blog-list-card .blog-list-card-media a:hover img {
            transform: scale(1.02);
        }

    /* Content wrapper */
    .blog-list-card .blog-list-card-content {
        display: flex;
        flex-direction: column;
    }

    /* Title (H3 sematique via lien fort) */
    .blog-list-card .blog-list-card-title {
        margin-bottom: 10px;
    }

        .blog-list-card .blog-list-card-title a {
            font-weight: 700;
            font-size: 1.6rem;
            text-transform: uppercase;
            color: var(--color-heading);
            text-decoration: none;
        }

            .blog-list-card .blog-list-card-title a:hover {
                color: var(--color-default);
            }

    /* Text extrait (position 2 apres titre) */
    .blog-list-card .blog-list-card-text {
        font-weight: 400;
        font-family: var(--font-family-default);
        margin-top: 10px;
        margin-bottom: 15px;
        flex-grow: 1;
    }

    /* Meta pos 2 : date + badge categorie sous le titre, padding vertical pour aerer */
    .blog-list-card .blog-list-card-meta {
        display: flex;
        align-items: center;
        flex-wrap: wrap;
        gap: 12px;
        padding: 1rem 0;
    }

    /* Footer CTA row : "Lire la suite" ancre droite en bas de card */
    .blog-list-card .blog-list-card-footer {
        display: flex;
        justify-content: flex-end;
        align-items: center;
        margin-top: auto;
        padding-top: 10px;
    }

    /* Date : couleur par defaut (noir teinte body), taille lisible.
       Signal meta suffisant sans le griser au point d'etre invisible. */
    .blog-list-card .blog-list-card-date {
        display: inline-block;
        font-weight: 600;
        color: var(--color-body-text);
        font-size: 13px;
        text-transform: uppercase;
    }

        .blog-list-card .blog-list-card-date i {
            margin-right: 4px;
        }

    /* Badge categorie : pill outline vert, cliquable vers /blog/{slug}.
       Signal secondaire discret, ancre navigation laterale + lien interne SEO. */
    .blog-list-card .blog-list-card-cat-badge {
        display: inline-block;
        padding: 4px 12px;
        border: 1px solid var(--color-primary);
        border-radius: 20px;
        background: #fff;
        color: var(--color-primary);
        font-size: 11px;
        font-weight: 600;
        text-transform: uppercase;
        text-decoration: none;
        line-height: 1.4;
        transition: background 0.2s ease, color 0.2s ease;
    }

        .blog-list-card .blog-list-card-cat-badge:hover,
        .blog-list-card .blog-list-card-cat-badge:focus {
            background: var(--color-primary);
            color: #fff;
        }

    /* CTA "Lire la suite" — pill discret outline noir, hover vert (theme primary).
       Card entiere reste cliquable via titre+image, ce CTA = ancre secondaire. */
    .blog-list-card .blog-list-card-cta {
        flex: 0 0 auto;
        display: inline-flex;
        align-items: center;
        gap: 5px;
        padding: 5px 14px;
        border: 1px solid var(--color-body-text);
        border-radius: 20px;
        background: transparent;
        color: var(--color-body-text);
        font-size: 11px;
        font-weight: 600;
        text-transform: uppercase;
        text-decoration: none;
        line-height: 1.4;
        transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
    }

        .blog-list-card .blog-list-card-cta i {
            font-size: 10px;
            transition: transform 0.2s ease;
        }

        .blog-list-card .blog-list-card-cta:hover,
        .blog-list-card .blog-list-card-cta:focus {
            background: var(--color-primary);
            border-color: var(--color-primary);
            color: #fff;
        }

            .blog-list-card .blog-list-card-cta:hover i,
            .blog-list-card .blog-list-card-cta:focus i {
                transform: translateX(3px);
            }

/* < lg (991px) : stack image en top full-width, gap avant le content */
@media (max-width: 991px) {
    .blog-list-card {
        margin-bottom: 2rem;
    }

        .blog-list-card .blog-list-card-media {
            margin-bottom: 15px;
        }
}
