/* ============================================================
   Blog — design collectheque15
   ============================================================ */

:root {
    --bl-accent: #6c5ce7;
    --bl-accent-deep: #4a3dbd;
    --bl-card: #ffffff;
    --bl-ink: #211f33;
    --bl-ink-soft: #6e6b80;
    --bl-ink-faint: #9b98ab;
    --bl-line: #e9e7df;
    --bl-gold: #f0b429;
    --bl-radius: 20px;
    --bl-shadow-card: 0 1px 2px rgba(33,31,51,0.04), 0 8px 22px rgba(33,31,51,0.05);
    --bl-shadow-hover: 0 2px 4px rgba(33,31,51,0.05), 0 18px 40px rgba(33,31,51,0.11);
}

body {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    background: #f0f2f5;
    min-height: 100vh;
}

.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 18px 1.25rem 80px;
}
@media (max-width: 640px) { .container { padding: 12px 1rem 60px; } }

/* ----- Header ----- */
.blog-head {
    display: flex; align-items: flex-end; justify-content: space-between;
    gap: 28px; flex-wrap: wrap; margin-bottom: 30px;
}
.blog-title {
    font-size: 2rem;
    font-weight: 700;
    letter-spacing: -0.025em;
    color: #1a202c;
    line-height: 1.5;
    margin: 0;
}
.blog-title em {
    font-style: italic;
    font-weight: 600;
    color: #5b4bd4;
}
.blog-sub { color: #a0aec0; margin: 0.35rem 0 0; font-size: 0.92rem; }

.loading {
    text-align: center; padding: 60px 20px; color: var(--bl-ink-faint); font-size: 15px;
}

/* ----- Cover (commune feature + card) ----- */
.cover-photo {
    display: block;
    width: 100%; height: 100%;
    object-fit: cover;
}
.cover-emoji {
    display: flex; align-items: center; justify-content: center;
    position: relative; overflow: hidden;
    width: 100%; height: 100%;
}
.cover-emoji::after {
    content: "";
    position: absolute; inset: 0;
    background-image: radial-gradient(circle at 1px 1px, rgba(255,255,255,0.22) 1px, transparent 0);
    background-size: 20px 20px; opacity: 0.6;
    pointer-events: none;
}
.cover-emoji .em {
    position: relative; z-index: 1;
    filter: drop-shadow(0 6px 14px rgba(33,31,51,0.18));
}

/* ----- Tag chip ----- */
.tag-chip {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: 12.5px; font-weight: 700; letter-spacing: 0.2px;
    color: var(--bl-accent-deep);
    background: color-mix(in oklab, var(--bl-accent) 12%, white);
    border: 1px solid color-mix(in oklab, var(--bl-accent) 22%, white);
    padding: 4px 11px; border-radius: 999px;
}
.tag-chip.gold {
    color: #9a6b00;
    background: color-mix(in oklab, var(--bl-gold) 20%, white);
    border-color: color-mix(in oklab, var(--bl-gold) 34%, white);
}

/* ----- Featured ----- */
.feature-card {
    display: grid; grid-template-columns: 1.05fr 1fr; gap: 0;
    text-decoration: none; color: inherit;
    background: var(--bl-card); border: 1px solid var(--bl-line);
    border-radius: var(--bl-radius); box-shadow: var(--bl-shadow-card);
    overflow: hidden; margin-bottom: 46px;
    transition: transform 0.18s, box-shadow 0.18s;
}
.feature-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--bl-shadow-hover);
}
.feature-cover { position: relative; min-height: 340px; }
.feature-body {
    padding: 36px 38px;
    display: flex; flex-direction: column; align-items: flex-start; gap: 14px;
}
.feature-title {
    margin: 4px 0 0;
    font-size: 30px; font-weight: 800;
    letter-spacing: -0.7px; line-height: 1.12;
    color: var(--bl-ink);
}
.feature-excerpt {
    margin: 0;
    font-family: 'Newsreader', Georgia, serif;
    font-size: 18px; line-height: 1.5;
    color: var(--bl-ink-soft);
}
.read-link {
    margin-top: auto;
    display: inline-flex; align-items: center; gap: 7px;
    font-size: 15px; font-weight: 700;
    color: var(--bl-accent);
}
.read-link .arrow { transition: transform 0.16s; display: inline-block; }
.feature-card:hover .read-link .arrow { transform: translateX(4px); }

/* ----- Meta (avatar + auteur + date + lecture) ----- */
.post-meta {
    display: flex; align-items: center; gap: 9px; flex-wrap: wrap;
    font-size: 13.5px; color: var(--bl-ink-faint); font-weight: 500;
}
.meta-av {
    width: 26px; height: 26px; font-size: 12px;
    border-radius: 50%; flex-shrink: 0;
}
img.meta-av { object-fit: cover; }
.av-letter {
    display: flex; align-items: center; justify-content: center;
    color: #fff; font-weight: 700;
    background: linear-gradient(135deg, var(--bl-accent), var(--bl-accent-deep));
}
.meta-author { color: var(--bl-ink); font-weight: 600; }
.dot {
    width: 3px; height: 3px; border-radius: 50%;
    background: currentColor; opacity: 0.5; display: inline-block;
}

/* ----- Grid head ----- */
.grid-head {
    display: flex; align-items: center; gap: 12px;
    margin-bottom: 20px;
}
.grid-title {
    margin: 0;
    font-size: 22px; font-weight: 700;
    letter-spacing: -0.4px; color: var(--bl-ink);
}
.grid-count {
    font-size: 13px; font-weight: 700;
    color: var(--bl-ink-soft); background: #ebe9e2;
    border-radius: 999px; padding: 3px 11px;
}

/* ----- Grid des articles ----- */
.post-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
}
@media (max-width: 900px) {
    .post-grid { grid-template-columns: repeat(2, 1fr); }
    .feature-card { grid-template-columns: 1fr; }
    .feature-cover { min-height: 220px; }
    .feature-body { padding: 26px 24px; }
}
@media (max-width: 580px) {
    .post-grid { grid-template-columns: 1fr; }
    .feature-title { font-size: 24px; }
}

.post-card {
    display: flex; flex-direction: column;
    text-decoration: none; color: inherit;
    background: var(--bl-card); border: 1px solid var(--bl-line);
    border-radius: var(--bl-radius); box-shadow: var(--bl-shadow-card);
    overflow: hidden;
    transition: transform 0.18s, box-shadow 0.18s;
}
.post-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--bl-shadow-hover);
}
.post-cover { position: relative; height: 168px; }
.post-card-body {
    padding: 18px 20px 22px;
    display: flex; flex-direction: column; align-items: flex-start; gap: 11px;
    flex: 1;
}
.post-title {
    margin: 2px 0 0;
    font-size: 19px; font-weight: 700;
    letter-spacing: -0.3px; line-height: 1.2;
    color: var(--bl-ink);
}
.post-excerpt {
    margin: 0;
    font-size: 14.5px; line-height: 1.5;
    color: var(--bl-ink-soft);
    display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical;
    overflow: hidden;
}
.post-card .post-meta { margin-top: auto; }

/* ----- Empty state ----- */
.empty-state {
    background: var(--bl-card); border: 1px dashed #d9d6cc;
    border-radius: var(--bl-radius);
    padding: 60px 24px; text-align: center; color: var(--bl-ink-soft);
}
.empty-state-icon { font-size: 48px; margin-bottom: 14px; opacity: 0.7; }
.empty-state h3 { margin: 0 0 6px; font-size: 18px; font-weight: 700; color: var(--bl-ink); }
.empty-state p { margin: 0; font-size: 14.5px; }
