/* ============================================================
   Carnet de séances — articles et page d'accueil du carnet
   Généré par _build/carnet.py. Lecture d'abord : une colonne de
   texte étroite, des photos larges, la palette du site.
   ============================================================ */

/* ---------- En-tête d'article ---------- */
.c-sur { display: block; font-size: .78rem; letter-spacing: .14em; text-transform: uppercase;
  color: var(--brand-dark); margin-bottom: var(--space-3); }
.c-h1 { max-width: 22ch; }
.c-couverture { margin-top: var(--space-6); }
.c-couverture .c-fig img { max-height: 78vh; object-fit: cover; }

/* ---------- Photos ---------- */
.c-fig { margin: 0; border-radius: var(--r-sm); overflow: hidden; cursor: zoom-in; background: var(--brand-tint); }
.c-fig img { width: 100%; height: auto; display: block; }
.c-un, .c-rang { margin: var(--space-6) 0; }
.c-rang { display: flex; gap: clamp(.4rem, 1.2vw, 1rem); align-items: flex-start; }
.c-rang .c-fig { min-width: 0; }

/* ---------- Texte ---------- */
.c-prose { margin-inline: auto; max-width: 68ch; font-size: 1.04rem; }
.c-prose p { line-height: 1.75; }
.c-prose h2 { margin-top: var(--space-7); }
.c-prose .c-un, .c-prose .c-rang { margin-inline: calc(50% - min(50vw - var(--gutter), 450px));
  width: min(100vw - 2 * var(--gutter), 900px); }
.c-prose blockquote { margin: var(--space-6) 0; padding: 0; text-align: center;
  font-family: var(--font-display); font-style: italic; font-size: 1.5rem; line-height: 1.35; color: var(--ink); }
.c-prose blockquote p { color: inherit; }

/* ---------- Format court (séance envoyée « à chaud ») ---------- */
.c-court { display: grid; grid-template-columns: 1.1fr 1fr; gap: clamp(1.5rem, 4vw, 4rem); align-items: start; }
.c-court .c-couverture { margin-top: 0; position: sticky; top: 6rem; }
.c-court .c-couverture .c-fig img { max-height: 80vh; }
@media (max-width: 860px) { .c-court { grid-template-columns: 1fr; } .c-court .c-couverture { position: static; } }
.c-tete-court .c-mot { margin: var(--space-5) 0 0; max-width: 62ch; }
.c-tete-court .c-mot p { font-size: 1.08rem; }
.c-galerie-court .c-masonry { margin-top: 0; }

/* ---------- Galerie de fin ---------- */
.c-masonry { margin-top: var(--space-6); columns: 3 240px; column-gap: clamp(.6rem, 1.2vw, 1rem); }
.c-masonry .c-fig { break-inside: avoid; margin-bottom: clamp(.6rem, 1.2vw, 1rem); }

/* ---------- Appel ---------- */
.c-boutons { margin-top: var(--space-6); display: flex; flex-wrap: wrap; gap: .8rem; justify-content: center; }

/* ---------- Cartes (accueil du carnet et « d'autres séances ») ---------- */
.c-grille { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 380px)); justify-content: center;
  gap: clamp(1rem, 2.4vw, 1.8rem); margin-top: var(--space-6); }
.c-carte { display: flex; flex-direction: column; background: var(--carte, #fff); border-radius: var(--r-md);
  overflow: hidden; color: inherit; text-decoration: none; box-shadow: 0 18px 40px -30px rgba(43,39,36,.5);
  transition: transform var(--t-fast), box-shadow var(--t-fast); }
.c-carte:hover { transform: translateY(-4px); box-shadow: 0 26px 48px -30px rgba(43,39,36,.55); }
.c-carte-img { aspect-ratio: 4 / 3; overflow: hidden; background: var(--brand-tint); }
.c-carte-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s var(--ease); }
.c-carte:hover .c-carte-img img { transform: scale(1.04); }
.c-carte-txt { padding: clamp(1.1rem, 2vw, 1.5rem); display: flex; flex-direction: column; gap: .5rem; }
.c-carte .c-sur { margin: 0; font-size: .7rem; }
.c-carte-titre { font-family: var(--font-display); font-size: 1.4rem; line-height: 1.2; color: var(--ink); }
.c-extrait { font-size: var(--fs-sm); line-height: 1.55; color: var(--ink-tint); }
.c-tout { margin-top: var(--space-6); text-align: center; }
.c-vide { grid-column: 1 / -1; text-align: center; color: var(--ink-soft); }

/* ---------- Brouillon (aperçu seulement) ---------- */
.c-brouillon { position: fixed; z-index: 60; left: 50%; bottom: 1rem; transform: translateX(-50%); margin: 0;
  padding: .45em 1.1em; border-radius: var(--r-pill); background: var(--ink); color: #fff; font-size: .8rem; letter-spacing: .06em; }

/* ---------- Aperçu privé : trois cartes de front ---------- */
.prep-grid.c-trois { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 980px) { .prep-grid.c-trois { grid-template-columns: 1fr; } }

/* ---------- Séances récentes : une entrée par shooting, groupées par mois ---------- */
.r-section .container { max-width: 960px; }
.r-mois { font-family: var(--font-display); font-weight: var(--w-med); font-size: var(--fs-d2);
  margin: var(--space-7) 0 var(--space-4); text-align: center; }
.r-mois:first-child { margin-top: 0; }
.r-liste { display: grid; gap: var(--space-6); }
.r-entree { background: var(--carte, #fff); border-radius: var(--r-md); padding: clamp(1.2rem, 3vw, 2rem);
  box-shadow: 0 18px 40px -30px rgba(43,39,36,.5); scroll-margin-top: 6rem; }
.r-tete .c-sur { margin-bottom: .3rem; }
.r-titre { font-family: var(--font-display); font-weight: var(--w-med); font-size: 1.6rem; line-height: 1.2; color: var(--ink); }
.r-titre em { color: var(--brand-dark); }
.r-texte { margin-top: .8rem; max-width: 70ch; color: var(--ink-soft); line-height: 1.7; }
.r-texte p + p { margin-top: .6rem; }
.r-entree .c-rang, .r-entree .c-un { margin: var(--space-5) 0 0; }
.r-lien { margin-top: var(--space-4); font-size: var(--fs-sm); }
@media (max-width: 600px) {
  .r-entree .c-rang { display: grid; grid-template-columns: 1fr 1fr; }
  .r-entree .c-rang .c-fig img { aspect-ratio: 1; object-fit: cover; }
}
.r-avis { margin: 1rem 0 0; padding: .9rem 1.2rem; border-radius: var(--r-md); background: var(--brand-tint); color: var(--ink); font-style: italic; }
.r-avis cite { display: block; margin-top: .4rem; font-style: normal; font-size: .9rem; color: var(--ink-soft); }
.r-a-confirmer { color: #8a3b12; }
