/* Livres, maisons d'édition, écrivain·es et poètes (2026-10-18) : grilles de couvertures, fiche d'un livre, portraits. */
.lnav { margin: 0 0 var(--space-4); }
.lgenres { margin: 0 0 var(--space-5); }

/* — Grille de couvertures — */
.lbooks { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-5) var(--space-4); grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr)); }
.lbook { display: flex; flex-direction: column; gap: var(--space-2); min-width: 0; }
.lbook__cover { display: block; aspect-ratio: 2 / 3; border-radius: var(--radius-sm); overflow: hidden; background: var(--color-surface-2); box-shadow: var(--shadow-card); }
.lbook__cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lbook__cover:hover { outline: 2px solid var(--color-accent); outline-offset: 2px; }
.lbook__cover--none { display: flex; align-items: flex-end; padding: var(--space-3); border: 1px solid var(--color-border-card); background: var(--color-surface); color: var(--color-ink); text-decoration: none; box-shadow: none; }
.lbook__cover--none span { font-family: var(--font-display); font-weight: 800; font-size: 1.0625rem; line-height: 1.15; overflow-wrap: anywhere; }
.lbook__text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.lbook__title { color: var(--color-ink); font-weight: 800; line-height: 1.2; text-decoration: none; overflow-wrap: anywhere; }
.lbook__title:hover { color: var(--color-accent-text); text-decoration: underline; }
.lbook__by { color: var(--color-text-2); font-size: 0.9375rem; line-height: 1.3; }
.lbook__meta { color: var(--color-text-muted); font-family: var(--font-mono); font-size: 0.6875rem; letter-spacing: var(--tracking-mono); text-transform: uppercase; line-height: 1.5; }
.lpages { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: var(--space-4); margin: var(--space-6) 0 0; }

/* — Fiche d'un livre — */
.lfiche { display: grid; gap: var(--space-6); margin: var(--space-4) 0 var(--space-6); }
@media (min-width: 720px) { .lfiche { grid-template-columns: minmax(14rem, 22rem) 1fr; align-items: start; } }
.lfiche__cover { margin: 0; }
.lfiche__cover img { width: 100%; height: auto; display: block; border-radius: var(--radius-sm); box-shadow: var(--shadow-card); }
.lfiche__cover figcaption { margin-top: var(--space-2); font-size: 0.8125rem; color: var(--color-text-muted); }
.lfiche__cover--none { aspect-ratio: 2 / 3; display: flex; align-items: flex-end; padding: var(--space-5); border: 1px solid var(--color-border-card); border-radius: var(--radius-sm); background: var(--color-surface); }
.lfiche__cover--none span { font-family: var(--font-display); font-weight: 800; font-size: 1.75rem; line-height: 1.1; }
.lfiche h1 { font-size: clamp(1.875rem, 1.3rem + 2.6vw, 3rem); font-weight: 800; line-height: 1.04; margin: 0 0 var(--space-2); }
.lfiche__subtitle { font-size: 1.25rem; color: var(--color-text-2); margin: 0 0 var(--space-3); }
.lfiche__by { font-size: 1.25rem; font-weight: 700; margin: 0 0 var(--space-4); }
.lfiche__by a { color: var(--color-accent-text); }
.lfacts { display: grid; grid-template-columns: max-content 1fr; gap: var(--space-2) var(--space-4); margin: 0 0 var(--space-4); }
.lfacts dt { font-family: var(--font-mono); font-size: 0.6875rem; letter-spacing: var(--tracking-mono); text-transform: uppercase; color: var(--color-text-muted); padding-top: 3px; }
.lfacts dd { margin: 0; }
.lfacts__mono { font-family: var(--font-mono); }
.llaunches { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-2); }
.llaunches li { padding: var(--space-3) var(--space-4); border: 1px solid var(--color-border-card); border-radius: var(--radius-md); background: var(--color-surface); }

/* — Maisons d'édition — */
.lpublishers { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-3); grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); }
.lpublisher { display: grid; grid-template-columns: 4rem 1fr; grid-template-rows: auto 1fr; column-gap: var(--space-3); align-items: start; height: 100%; padding: var(--space-3); border: 1px solid var(--color-border-card); border-radius: var(--radius-lg); background: var(--color-surface); color: var(--color-ink); text-decoration: none; }
.lpublisher:hover { border-color: var(--color-accent); }
.lpublisher__logo { grid-row: 1 / 3; width: 4rem; height: 4rem; display: grid; place-items: center; border-radius: var(--radius-md); background: var(--color-surface-2); overflow: hidden; }
.lpublisher__logo img { max-width: 86%; max-height: 86%; object-fit: contain; }
.lpublisher__logo span { font-family: var(--font-display); font-size: 1.75rem; font-weight: 800; color: var(--color-text-2); }
.lpublisher__logo--big { width: 8rem; height: 8rem; flex: none; }
.lpublisher strong { font-size: 1.0625rem; line-height: 1.25; }
.lpublisher .muted { font-size: 0.875rem; }
.lhouse { display: flex; flex-wrap: wrap; gap: var(--space-5); align-items: center; margin: var(--space-4) 0 var(--space-5); }
.lhouse h1 { font-size: clamp(1.875rem, 1.3rem + 2.6vw, 3rem); font-weight: 800; line-height: 1.04; margin: 0 0 var(--space-2); }

/* — Écrivain·es et poètes — */
.lletters { display: flex; flex-wrap: wrap; gap: 4px; margin: 0 0 var(--space-4); }
.lletters a { display: inline-grid; place-items: center; min-width: 36px; min-height: 36px; border: 1px solid var(--color-border-strong); border-radius: var(--radius-md); background: var(--color-surface); color: var(--color-ink); font-weight: 800; text-decoration: none; }
.lletters a:hover { border-color: var(--color-accent); color: var(--color-accent-text); }
.lletter { scroll-margin-top: var(--space-7); }
.lletter h2 { font-family: var(--font-display); font-size: 2rem; margin: 0 0 var(--space-3); border-bottom: 1px solid var(--color-border); }
.lwriters { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-2) var(--space-4); grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); }
.lwriter { display: flex; gap: var(--space-3); align-items: center; padding: 6px; border-radius: var(--radius-md); color: var(--color-ink); text-decoration: none; }
.lwriter:hover { background: var(--color-surface); }
.lwriter__photo { flex: none; width: 3.5rem; height: 3.5rem; border-radius: 50%; overflow: hidden; display: grid; place-items: center; background: var(--color-surface-2); border: 1px solid var(--color-border); }
.lwriter__photo img { width: 100%; height: 100%; object-fit: cover; }
.lwriter__photo span { font-family: var(--font-display); font-weight: 800; font-size: 1.25rem; color: var(--color-text-2); }
.lwriter__text { display: flex; flex-direction: column; min-width: 0; }
.lwriter__text strong { line-height: 1.2; }
.lwriter__text .muted { font-size: 0.875rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
