/* Extension bibliographique, strictement dans la charte House/Folio du Corpus. */
.cs-library { width: min(100% - 2rem, 1160px); margin-inline: auto; }
.cs-library__intro { max-width: 850px; }
.cs-library__intro .cs-hub__intro { max-width: 770px; }
.cs-library__doors { margin-block: clamp(2rem, 5vw, 4rem); }
.cs-library__doors h2,
.cs-library__context h2 { font-family: "Savoy EB Garamond", Georgia, serif; font-weight: 500; }
.cs-library__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(.75rem, 2vw, 1.3rem);
  margin-top: 1.2rem;
}
.cs-library__door {
  display: flex; flex-direction: column; align-items: flex-start;
  min-width: 0; gap: .55rem; padding: 1.5rem;
  text-decoration: none; background: transparent;
  border: 1px solid #cbc9bd; border-radius: .35rem;
  color: #282923;
  transition: border-color .15s ease, background-color .15s ease;
}
.cs-library__door:hover,
.cs-library__door:focus-visible { border-color: #a57f46; background: rgba(165,127,70,.06); }
.cs-library__door strong { font-family: "Savoy EB Garamond",Georgia,serif; font-size: clamp(1.35rem,2vw,1.7rem); font-weight: 600; }
.cs-library__door span { font-size: .96rem; line-height: 1.55; color: #64645b; }
.cs-library__door .cs-library__arrow {
  margin-top: auto; padding-top: .4rem; color: #6c522e;
  font-family: "Savoy Source Sans 3",Arial,sans-serif; font-weight: 600;
}
.cs-library__context { margin-block: 2.5rem; padding-block: 1.6rem; border-top: 1px solid #cbc9bd; }
.cs-library__context p { max-width: 72ch; line-height: 1.65; }
.cs-library__context a { color: #6c522e; font-weight: 600; }
.cs-library__scope { color: #64645b; max-width: 78ch; line-height: 1.55; }
.cs-library__filter {
  display:flex; flex-direction:column; gap:.55rem; margin:2rem 0;
  padding:1.1rem; border:1px solid #cbc9bd; border-radius:.35rem;
}
.cs-library__filter label { font-family:"Savoy Source Sans 3",Arial,sans-serif; font-weight:600; }
.cs-library__filter input {
  background:#fffefa; color:#282923; max-width:620px; width:100%;
  border:1px solid #938d80; border-radius:.25rem;
  padding:.75rem 1rem; font-size:1rem; line-height:1.4;
}
.cs-library__filter-state { font-family:"Savoy Source Sans 3",Arial,sans-serif; font-size:.92rem; margin:0; color:#64645b; }
.cs-library__group {
  margin: 0 0 1rem; border:1px solid #cbc9bd; border-radius:.35rem;
  overflow:clip;
}
.cs-library__group-title {
  display:flex; justify-content:space-between; gap:1.2rem;
  align-items:center; cursor:pointer; padding:1rem 1.1rem;
  background:rgba(203,201,189,.15); color:#282923;
  font-family:"Savoy Source Sans 3",Arial,sans-serif;
}
.cs-library__group-title strong { font-size:1.06rem; font-weight:600; }
.cs-library__group-title span { color:#64645b; font-size:.88rem; text-align:right; white-space:nowrap; }
.cs-library__group-description {
  padding:0 1rem; max-width:75ch; line-height:1.5; color:#64645b; font-size:.94rem;
}
.cs-library__works { list-style:none; margin:.2rem 1rem 1rem; padding:0; }
.cs-library__work {
  display:flex; align-items:center; justify-content:space-between;
  gap: .65rem 1.25rem; padding:.85rem .25rem; border-bottom:1px solid #e0dcd1;
}
.cs-library__work:last-child { border-bottom:0; }
.cs-library__work[hidden], .cs-library__group[hidden], .cs-library__empty[hidden] { display:none !important; }
.cs-library__work-copy { display:flex; flex-direction:column; min-width:0; gap:.18rem; }
.cs-library__work-title { font-family:"Savoy Source Serif 4",Georgia,serif; font-size:1.03rem; font-weight:600; overflow-wrap:anywhere; }
.cs-library__work-state,.cs-library__credit { font-family:"Savoy Source Sans 3",Arial,sans-serif; font-size:.84rem; color:#64645b; }
.cs-library__work-link { flex:0 0 auto; font-family:"Savoy Source Sans 3",Arial,sans-serif; font-size:.9rem; color:#6c522e; font-weight:600; }
.cs-library__work-unready { color:#64645b; font-size:.9rem; }
.cs-library__empty { padding:1rem; border:1px solid #cbc9bd; }
.cs-library :focus-visible { outline:2px solid #a57f46; outline-offset:3px; }
@media(max-width:700px) {
  .cs-library { width: min(100% - 1.5rem, 1160px); }
  .cs-library__grid { grid-template-columns:1fr; }
  .cs-library__door { padding:1.1rem 1.2rem; }
  .cs-library__work { align-items:flex-start; flex-direction:column; }
  .cs-library__group-title { padding:.85rem; gap:.5rem; }
  .cs-library__group-title span { white-space:normal; }
  .cs-library__works { margin-inline:.7rem; }
  .cs-library__filter { padding:.85rem; }
}
@media(prefers-reduced-motion:reduce) {
 .cs-library__door { transition:none; }
}
