/* Le blog de la vitrine — chargé après accueil.css, dont il reprend les
   couleurs, les polices et le pied de page. Le contrôle « marges du
   navigateur » de deploy/verifications.sh attend la ligne compacte ci-dessous. */
html,body{margin:0;padding:0;background:#FFFFFF}

.blog-html, .blog-page { background: var(--bg); }
/* clip et non hidden : hidden ferait de la page un conteneur de défilement
   et empêcherait le sommaire de rester visible. */
.page.blog-page { overflow-x: clip; }

/* ---- barre du haut ---- */
.topbar.blog-top { display: flex; align-items: center; gap: 16px 22px; padding: 22px 32px 0; flex-wrap: wrap; }
.blog-top .wordmark { font-size: 26px; }
.blog-top a.wordmark:hover { color: var(--tx); }
.blog-marque { font-family: var(--font-mono); font-size: 0.76rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); padding-left: 14px; border-left: 1px solid var(--line); }
.blog-essai { margin-left: auto; }
.blog-nav { order: 3; width: 100%; display: flex; gap: 22px; font-size: 0.88rem; border-bottom: 1px solid var(--line); overflow-x: auto; white-space: nowrap; scrollbar-width: none; }
.blog-nav::-webkit-scrollbar { display: none; }
.blog-nav a { color: var(--muted); padding: 8px 0 10px; border-bottom: 2px solid transparent; margin-bottom: -1px; }
.blog-nav a:hover { color: var(--tx); }
.blog-nav a[aria-current="page"] { color: var(--tx); border-bottom-color: var(--acc); font-weight: 600; }
.blog-essai, .blog-bouton { display: inline-flex; align-items: center; border-radius: 999px; background: var(--acc); color: #fff; font-weight: 600; font-size: 0.9rem; padding: 9px 18px; white-space: nowrap; transition: transform .15s, background .15s; }
.blog-essai:hover, .blog-bouton:hover { background: var(--acc-d); color: #fff; transform: translateY(-1px); }

.blog-apercu { margin: 0; padding: 12px 32px; background: #FFF6E0; color: #6B4A00; font-size: 0.9rem; text-align: center; border-bottom: 1px solid #F1DDA8; }
.blog-apercu a { color: inherit; text-decoration: underline; }

/* ---- en-têtes ---- */
.blog-tete { padding: 48px 0 30px; max-width: 800px; }
.blog-tete h1 { font-size: clamp(2.1rem, 5vw, 3.3rem); line-height: 1.08; letter-spacing: -0.035em; font-weight: 800; margin: 14px 0 16px; }
.blog-chapeau { font-size: 1.16rem; line-height: 1.6; color: var(--muted); max-width: 64ch; }
.blog-meta { font-family: var(--font-mono); font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); }
.blog-tete .blog-meta { display: block; margin-top: 18px; }

/* ---- liste ---- */
.blog-liste { padding-bottom: 60px; }
.blog-une { display: grid; grid-template-columns: 1.25fr 1fr; gap: 36px; align-items: center; color: var(--tx); padding: 8px 0 44px; border-bottom: 1px solid var(--line); margin-bottom: 40px; }
.blog-une img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 18px; display: block; }
.blog-une h2 { font-size: clamp(1.6rem, 3vw, 2.2rem); line-height: 1.15; letter-spacing: -0.028em; margin: 12px 0 14px; }
.blog-une p { color: var(--muted); line-height: 1.6; }
.blog-une:hover { color: var(--tx); }
.blog-une:hover h2 { color: var(--acc-d); }
.blog-lire { display: inline-block; margin-top: 18px; font-weight: 600; color: var(--acc-d); }

.blog-grille { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px 28px; }
.blog-carte { display: flex; flex-direction: column; gap: 10px; color: var(--tx); height: 100%; }
/* height: auto, sinon l'attribut height="900" de la balise l'emporte sur le
   rapport 16:9 et l'image s'étire en hauteur (recette #201). */
.blog-carte img, .blog-sans-image { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 14px; display: block; margin-bottom: 6px; }
.blog-sans-image { display: grid; place-items: center; background: var(--acc-w); color: var(--acc-d); font: 800 3rem/1 var(--font-display); }
.blog-carte h2, .blog-carte h3 { font-size: 1.24rem; line-height: 1.25; letter-spacing: -0.02em; }
.blog-carte p { color: var(--muted); font-size: 0.95rem; line-height: 1.55; }
.blog-carte time { margin-top: auto; font-size: 0.84rem; color: var(--muted); }
.blog-carte:hover { color: var(--tx); }
.blog-carte:hover h2, .blog-carte:hover h3 { color: var(--acc-d); }
.blog-vide { color: var(--muted); padding: 30px 0 60px; }
.blog-pages { display: flex; justify-content: space-between; margin-top: 50px; font-weight: 600; }

/* ---- article ---- */
.blog-article { padding-bottom: 40px; }
.blog-fil { padding-top: 30px; font-size: 0.86rem; color: var(--muted); }
.blog-fil a { color: var(--muted); }
.blog-fil a:hover { color: var(--tx); }
.blog-article .blog-tete { padding-top: 14px; }
.blog-couverture { margin: 0 0 44px; }
.blog-couverture img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 20px; display: block; }

.blog-corps-grille { display: grid; grid-template-columns: 220px minmax(0, 720px); gap: 56px; }
.blog-corps-grille > .blog-corps:only-child { grid-column: 1 / -1; max-width: 720px; }
.blog-sommaire { position: sticky; top: 24px; align-self: start; font-size: 0.88rem; }
.blog-sommaire p { font-family: var(--font-mono); font-size: 0.7rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); margin-bottom: 10px; }
.blog-sommaire ol { list-style: none; margin: 0; padding: 0 0 0 14px; border-left: 2px solid var(--line); display: grid; gap: 9px; }
.blog-sommaire a { color: var(--muted); line-height: 1.4; display: block; }
.blog-sommaire a:hover { color: var(--acc-d); }

.blog-corps { font-size: 1.07rem; line-height: 1.75; }
.blog-corps > * + * { margin-top: 1.1em; }
.blog-corps h2 { font-size: 1.7rem; line-height: 1.2; letter-spacing: -0.025em; margin-top: 2.1em; scroll-margin-top: 24px; }
.blog-corps h3 { font-size: 1.2rem; font-family: var(--font-ui); font-weight: 700; letter-spacing: -0.01em; margin-top: 1.7em; scroll-margin-top: 24px; }
.blog-corps ul, .blog-corps ol { padding-left: 24px; }
.blog-corps li + li { margin-top: 6px; }
.blog-corps a { text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.blog-corps strong { font-weight: 650; }
.blog-corps code { font-family: var(--font-mono); font-size: 0.86em; background: var(--bg-alt); border: 1px solid var(--line); border-radius: 5px; padding: 1px 6px; }
.blog-encadre { background: var(--acc-w); border-left: 3px solid var(--acc); border-radius: 0 12px 12px 0; padding: 18px 22px; }
.blog-encadre p + p { margin-top: 8px; }
.blog-tableau { overflow-x: auto; border: 1px solid var(--line); border-radius: 12px; }
.blog-tableau table { width: 100%; border-collapse: collapse; font-size: 0.94rem; line-height: 1.45; }
.blog-tableau th, .blog-tableau td { text-align: left; padding: 10px 14px; border-bottom: 1px solid var(--line); vertical-align: top; }
.blog-tableau th { font-family: var(--font-mono); font-size: 0.7rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); font-weight: 600; background: var(--bg-alt); }
.blog-tableau tr:last-child td { border-bottom: 0; }

.blog-faq { margin-top: 3em; padding-top: 2em; border-top: 1px solid var(--line); }
.blog-faq h2 { margin-top: 0; }
.blog-faq details { border-bottom: 1px solid var(--line); padding: 14px 0; }
.blog-faq summary { cursor: pointer; font-weight: 600; list-style-position: outside; }
.blog-faq details p { margin-top: 10px; color: var(--muted); }
.blog-sources { margin-top: 2.4em; font-size: 0.9rem; color: var(--muted); }
.blog-sources h2 { font-size: 1rem; font-family: var(--font-mono); letter-spacing: 0.08em; text-transform: uppercase; margin-top: 0; }

.blog-voisins { margin-top: 70px; padding-top: 40px; border-top: 1px solid var(--line); }
.blog-voisins > h2 { font-size: 1.5rem; margin-bottom: 26px; }

/* ---- appel à essayer ---- */
.blog-appel { display: flex; align-items: center; justify-content: space-between; gap: 28px; margin-top: 40px; margin-bottom: 60px; padding: 38px 40px; border-radius: 22px; background: #0B1B36; color: #fff; width: min(1056px, calc(100% - 64px)); max-width: none; }
.blog-appel h2 { font-size: clamp(1.5rem, 3vw, 2rem); margin: 10px 0 8px; letter-spacing: -0.03em; }
.blog-appel p { color: rgba(242,245,244,0.74); max-width: 56ch; }
.blog-appel .eyebrow { color: #6FE3A2; }
.blog-appel .eyebrow::before { background: #6FE3A2; }
.blog-appel .blog-bouton { font-size: 1rem; padding: 13px 24px; }

@media (max-width: 900px) {
  .blog-une { grid-template-columns: 1fr; gap: 20px; }
  .blog-grille { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .blog-corps-grille { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .blog-sommaire { position: static; margin-bottom: 30px; padding: 16px 18px; background: var(--bg-alt); border-radius: 12px; }
  .blog-sommaire ol { border-left: 0; padding-left: 0; }
}
@media (max-width: 720px) {
  .blog-page .wrap { padding-left: 16px; padding-right: 16px; }
  .topbar.blog-top { padding: 16px 16px 0; gap: 12px 14px; }
  .blog-nav { gap: 18px; }
  .blog-essai { padding: 7px 14px; font-size: 0.84rem; }
  .blog-marque { display: none; }
  .blog-apercu { padding: 10px 16px; }
  .blog-grille { grid-template-columns: 1fr; gap: 34px; }
  .blog-tete { padding-top: 28px; }
  .blog-corps { font-size: 1.02rem; }
  .blog-page .blog-appel { flex-direction: column; align-items: flex-start; padding: 28px 22px; width: calc(100% - 32px); }
}
