/**
 * blog.css — Typographie contenu éditorial (articles de blog)
 * Scopé dans .entry-content pour ne pas affecter les pages ACF.
 */


/* -------------------------
   Reset total GeneratePress / GP Premium
   Tout le layout blog est piloté par nous.
------------------------- */

/* Spécificité 3 classes pour écraser .separate-containers .xxx de GP */
.single.separate-containers .site-main,
.archive.separate-containers .site-main,
.single.separate-containers .inside-article,
.archive.separate-containers .inside-article,
.single.separate-containers .comments-area,
.archive.separate-containers .comments-area,
.single.separate-containers .page-header,
.archive.separate-containers .page-header,
.single.separate-containers .paging-navigation,
.archive.separate-containers .paging-navigation,
.single.separate-containers .inside-right-sidebar,
.archive.separate-containers .inside-right-sidebar {
    margin: 0;
    padding: 0;
    border: 0;
    background-color: transparent;
}

/* Reset générique */
.single .site-content,
.archive .site-content,
.single .content-area,
.archive .content-area,
.single .entry-content,
.archive .entry-content,
.single .inside-page-header,
.archive .inside-page-header {
    margin: 0;
    padding: 0;
    max-width: 100%;
    float: none;
    width: auto;
}

/* Contrer les !important de GP mobile.css */
.single .site-main,
.archive .site-main {
    margin: 0 !important;
}

/* Reset .grid-container */
.single .container.grid-container,
.archive .container.grid-container,
.single .sidebar .grid-container,
.archive .sidebar .grid-container {
    max-width: 100%;
    width: 100%;
}

/* Reset margin-bottom GP sur enfants de .site-main */
.single .site-main > *,
.archive .site-main > * {
    margin-bottom: 0;
}

/* -------------------------
   Layout blog — conteneur + sidebar
------------------------- */

/* Grille contenu + sidebar */
.single .site-content,
.archive .site-content {
    display: flex;
    flex-direction: column;
    max-width: var(--container-max);
    margin-inline: auto;
}

/* Padding sur le contenu — toujours présent */
.single .site-content .content-area,
.archive .site-content .content-area {
    padding-inline: var(--container-padding);
}

/* Sous 1024px : sidebar masquée, article pleine largeur */
@media (max-width: 1023px) {
    .single .site-content .is-right-sidebar,
    .archive .site-content .is-right-sidebar {
        display: none;
    }

    .single .site-content .content-area,
    .archive .site-content .content-area {
        width: 100%;
    }
}

/* Desktop 1024px : contenu + sidebar côte à côte */
@media (min-width: 1024px) {
    .single .site-content,
    .archive .site-content {
        flex-direction: row;
    }

    /* Contenu principal prend l'espace restant */
    .single .site-content .content-area,
    .archive .site-content .content-area {
        flex: 1;
        min-width: 0;
        padding-inline: var(--space-md);
    }

    /* Sidebar fixe à 320px */
    .single .site-content .is-right-sidebar,
    .archive .site-content .is-right-sidebar {
        flex: 0 0 320px;
    }
}

 /* -------------------------
   Titre principal article
------------------------- */
.single .entry-title {
    font-size: var(--font-size-4xl);
    margin-block: var(--space-lg) var(--space-md);
    font-weight: var(--font-weight-bold);
}

/* -------------------------
   Headings
------------------------- */

.entry-content h2 {
    font-size: var(--font-size-3xl);
    margin-block: var(--space-lg) var(--space-sm);
    font-weight: var(--font-weight-bold);

}

.entry-content h3 {
    font-size: var(--font-size-2xl);
    margin-block: var(--space-md) var(--space-sm);
}

.entry-content h4 {
    font-size: var(--font-size-xl);
    margin-block: var(--space-md) var(--space-xs);
}


/* -------------------------
   Paragraphes
------------------------- */
.entry-content p {
    margin-block-end: var(--space-sm);
}

/* -------------------------
   Liens
------------------------- */
.entry-content a:not(.btn):not(.lr-resumia__card):not(.lr-sommaire__link) {
    color: var(--color-blue);
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color var(--transition-fast);
}

.entry-content a:not(.btn):not(.lr-resumia__card):not(.lr-sommaire__link):hover {
    color: var(--color-blue-dark);
}

/* -------------------------
   Listes — restaurer puces et numéros
------------------------- */
.entry-content ul {
    list-style: disc;
    padding-inline-start: 1.5em;
    margin-block-end: var(--space-sm);
}

.entry-content ol {
    list-style: decimal;
    padding-inline-start: 1.5em;
    margin-block-end: var(--space-sm);
}

.entry-content li {
    margin-block-end: 4px;
    line-height: var(--line-height-loose);
}

.entry-content ul ul,
.entry-content ol ol,
.entry-content ul ol,
.entry-content ol ul {
    margin-block: 4px 0;
}

/* -------------------------
   Tableaux
------------------------- */
.entry-content table {
    width: 100%;
    border-collapse: collapse;
    margin-block: var(--space-md);
    font-size: var(--font-size-sm);
}

.entry-content th,
.entry-content td {
    padding: 12px 16px;
    text-align: left;
    border-bottom: 1px solid var(--color-gray-light);
}

.entry-content th {
    font-family: var(--font-primary);
    font-weight: var(--font-weight-bold);
    background-color: var(--color-black);
    color: var(--color-white);
}

.entry-content tr:nth-child(even) {
    background-color: rgba(0, 0, 0, 0.03);
}

/* -------------------------
   Blockquote
------------------------- */
.entry-content blockquote {
    border-left: 4px solid var(--color-blue);
    padding: var(--space-sm) var(--space-md);
    margin-block: var(--space-md);
    font-style: italic;
    color: var(--color-gray-dark);
}

.entry-content blockquote p:last-child {
    margin-block-end: 0;
}

/* -------------------------
   Images
------------------------- */
.entry-content img {
    border-radius: var(--radius-md);
    margin-block: var(--space-sm);
}

.entry-content figure {
    margin-block: var(--space-md);
}

.entry-content figcaption {
    font-size: var(--font-size-sm);
    color: var(--color-gray-dark);
    margin-block-start: var(--space-xs);
    text-align: center;
}

/* -------------------------
   Code
------------------------- */
.entry-content code {
    font-size: 0.9em;
    background-color: rgba(0, 0, 0, 0.06);
    padding: 2px 6px;
    border-radius: var(--radius-sm);
}

.entry-content pre {
    background-color: var(--color-black);
    color: var(--color-white);
    padding: var(--space-sm);
    border-radius: var(--radius-md);
    overflow-x: auto;
    margin-block: var(--space-md);
}

.entry-content pre code {
    background: none;
    padding: 0;
    color: inherit;
}

/* -------------------------
   Séparateur
------------------------- */
.entry-content hr {
    border: none;
    border-top: 1px solid var(--color-gray-light);
    margin-block: var(--space-lg);
}

/* -------------------------
   Image de couverture [lr_featured_image]
------------------------- */
.blog-featured-image {
    margin-block: var(--space-md);
}

.blog-featured-image__img {
    width: 100%;
    height: auto;
    border-radius: var(--radius-md);
}

/* -------------------------
   Bloc auteur [lr_auteur]
------------------------- */
.blog-auteur {
    display: flex;
    align-items: center;
    gap: var(--space-md);
    padding: var(--space-md);
    background-color: var(--color-gray-light);
    border-radius: var(--radius-md);
    margin-block: var(--space-lg);
}

.blog-auteur__photo {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}

.blog-auteur__nom {
    font-family: var(--font-primary);
    font-size: var(--font-size-2xl);
    font-weight: var(--font-weight-bold);
    margin-block-end: var(--space-xs);
}

.blog-auteur__texte {
    font-size: var(--font-size-base);
    line-height: var(--line-height-loose);
    margin: 0;
}

/* -------------------------
   Articles associés (bas d'article)
------------------------- */
.blog-related {
    margin-block-start: var(--space-lg);
}

.blog-related__title {
    font-family: var(--font-primary);
    font-weight: var(--font-weight-black);
    font-size: var(--font-size-3xl);
    margin-block-end: var(--space-md);
}

.blog-related__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-md);
}

@media (min-width: 768px) {
    .blog-related__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}
