/* dialtheo.com — corps éditorial des Analyses & Méthodes.
   Fichier séparé de pages.css (généré par src/build.py) pour ne pas être
   écrasé : il ne fait que styler le Markdown rendu dans .prose, avec les
   jetons de la charte déjà définis dans pages.css. */

.prose{
  max-width:68ch;
  font-size:17.5px;
  line-height:1.72;
  color:var(--ink-soft);
}
.prose > *{margin:0 0 22px}
.prose > :first-child{margin-top:0}
.prose > :last-child{margin-bottom:0}

/* l'entête d'article réutilise .hero, mais sans l'ampleur de la landing :
   le chapeau doit coller au titre, pas flotter entre deux vides */
.article-head{padding-bottom:clamp(14px,2vw,20px)}
.article-head + section{padding-top:clamp(18px,2.6vw,30px)}

/* le premier paragraphe tient le rôle de chapeau */
.prose > p:first-of-type{
  font-size:clamp(18px,2.1vw,20.5px);
  line-height:1.62;
  color:var(--ink);
}

.prose h2{
  font-size:clamp(24px,3.1vw,31px);
  line-height:1.16;
  letter-spacing:-.032em;
  font-weight:800;
  color:var(--ink);
  margin:2.4em 0 .7em;
}
.prose h3{
  font-size:19px;
  line-height:1.3;
  letter-spacing:-.015em;
  font-weight:700;
  color:var(--ink);
  margin:1.9em 0 .5em;
}
.prose h2 + h3{margin-top:.6em}

.prose strong{color:var(--ink);font-weight:650}
.prose em{font-style:italic}

.prose a{
  color:var(--ink);
  text-decoration:underline;
  text-decoration-color:var(--acid);
  text-decoration-thickness:2px;
  text-underline-offset:3px;
  transition:background .2s ease;
}
.prose a:hover{background:var(--acid)}

.prose ul,.prose ol{padding-left:1.25em}
.prose li{margin:0 0 .55em}
.prose li::marker{color:var(--muted)}
.prose ul > li::marker{color:var(--ink);content:"— "}

.prose blockquote{
  border-left:2px solid var(--acid);
  padding:2px 0 2px 20px;
  margin:26px 0;
  font-size:16px;
  color:var(--ink-soft);
}
.prose blockquote p:last-child{margin-bottom:0}

.prose hr{
  border:0;
  border-top:1px solid var(--line);
  margin:44px 0;
}

.prose code{
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.88em;
  background:var(--bone);
  border-radius:4px;
  padding:2px 5px;
}

/* --- tableaux : grilles de décision et matrices de comparaison --- */
.prose .table-wrap{
  overflow-x:auto;
  margin:28px 0 30px;
  -webkit-overflow-scrolling:touch;
}
.prose table{
  width:100%;
  border-collapse:collapse;
  font-size:14.5px;
  line-height:1.45;
  min-width:520px;
}
.prose caption{
  caption-side:top;
  text-align:left;
  font-size:11px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--muted);
  padding-bottom:10px;
}
.prose th{
  text-align:left;
  vertical-align:bottom;
  font-size:11px;
  letter-spacing:.1em;
  text-transform:uppercase;
  font-weight:650;
  color:var(--muted);
  padding:0 14px 9px 0;
  border-bottom:1px solid var(--ink);
}
.prose td{
  padding:11px 14px 11px 0;
  border-bottom:1px solid var(--line);
  vertical-align:top;
}
.prose td:first-child{color:var(--ink);font-weight:600;white-space:nowrap}
.prose tr:last-child td{border-bottom:0}

@media(max-width:620px){
  .prose{font-size:16.5px;line-height:1.7}
  .prose h2{margin-top:2em}
  .prose table{font-size:13.5px;min-width:0}
}

/* --- liste des analyses : la carte reprend le gabarit de la charte ---
   La carte entière est un lien : on neutralise le soulignement hérité de a{}
   et on le réserve au survol, sinon tout le bloc paraît « lien mort ». */
.cards{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.cards a.card{
  display:flex;
  flex-direction:column;
  text-decoration:none;
  color:inherit;
  transition:transform .25s var(--ease),border-color .25s;
}
.cards a.card:hover{transform:translateY(-3px);border-color:var(--ink)}
.card .card-title,.card h2{
  font-family:var(--serif);
  font-size:23px;
  line-height:1.2;
  letter-spacing:-.02em;
  font-weight:700;
  color:var(--ink);
  margin:10px 0 8px;
  text-decoration:none;
}
.cards a.card:hover .card-title{
  text-decoration:underline;
  text-decoration-color:var(--acid);
  text-decoration-thickness:2px;
  text-underline-offset:3px;
}
.card .kicker{margin-bottom:0;text-decoration:none}
.card p{text-decoration:none;color:var(--muted)}
