/* =========================================================
   Des Sources et des Livres — style de départ du thème
   Compromis : hero sombre doré (validé) + corps clair, naturel, éditorial.
   ========================================================= */

:root{
  /* Hero (sombre, doré) */
  --ink:#151a24; --ink-2:#1b2334; --paper-hero:#ECE4D2; --gold:#C8A96A; --gold-lt:#F3E3B8;
  /* Corps (clair, naturel) */
  --bg:#F5F0E4; --bg-2:#EDE6D5; --forest:#20302a; --text:#3f453c; --muted:#7a7566;
  --gold-deep:#9c7d3d; --sage:#8a9880; --line:#e2dccb;
  --display:'Fraunces', Georgia, serif;
  --body:'Spectral', Georgia, 'Times New Roman', serif;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{ margin:0; background:var(--bg); color:var(--text); font-family:var(--body); font-size:18px; line-height:1.7; min-height:100vh; display:flex; flex-direction:column; }
img{ max-width:100%; height:auto; }
a{ color:var(--gold-deep); }

/* Décalage sous la nav fixe sur les pages internes (le hero gère l'accueil). */
body:not(.home){ padding-top:72px; }

/* Titres & contenu éditorial */
.site-content h1,.site-content h2,.site-content h3{ font-family:var(--display); font-weight:400; color:var(--forest); line-height:1.2; }
.site-content{ max-width:820px; margin:0 auto; padding-left:clamp(20px,5vw,40px); padding-right:clamp(20px,5vw,40px); padding-bottom:80px; }
.site-content p{ margin:0 0 1.2em; }

/* ---------------- NAV ---------------- */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:50;
  display:flex; align-items:center; justify-content:space-between;
  padding:18px clamp(20px,5vw,56px); color:var(--paper-hero);
  transition:background .35s ease, box-shadow .35s ease, padding .35s ease, color .35s ease;
}
.nav.scrolled{
  background:var(--ink); color:var(--paper-hero);
  box-shadow:0 1px 0 rgba(200,169,106,.25), 0 6px 24px rgba(21,26,36,.22);
  padding-top:12px; padding-bottom:12px;
}
.brand{ font-family:var(--display); font-weight:400; font-size:clamp(17px,2.2vw,21px); text-decoration:none; white-space:nowrap; color:inherit; }
.brand span{ color:var(--gold); transition:color .35s ease; }
.nav.scrolled .brand span{ color:var(--gold); }

.nav-links{ display:flex; align-items:center; gap:clamp(14px,2vw,30px); list-style:none; margin:0; padding:0; }
.nav-links a{ color:inherit; text-decoration:none; font-family:var(--body); font-size:15px; letter-spacing:.02em; padding:6px 2px; position:relative; opacity:.92; }
.nav-links a::after{ content:""; position:absolute; left:0; right:0; bottom:-2px; height:1px; background:currentColor; transform:scaleX(0); transform-origin:center; transition:transform .25s ease; opacity:.7; }
.nav-links a:hover{ opacity:1; }
.nav-links a:hover::after{ transform:scaleX(1); }

.burger{ display:none; background:none; border:none; cursor:pointer; padding:8px; color:inherit; }
.burger span{ display:block; width:24px; height:2px; background:currentColor; margin:5px 0; transition:transform .3s ease, opacity .3s ease; }

/* ---------------- HERO ---------------- */
.hero{
  position:relative; min-height:100vh; min-height:100dvh;
  display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:0 6vw;
  background:radial-gradient(130% 100% at 50% 0%, var(--ink-2) 0%, var(--ink) 62%);
  color:var(--paper-hero); overflow:hidden;
}
#hero-canvas{ position:absolute; inset:0; width:100%; height:100%; z-index:0; }
.hero-inner{ position:relative; z-index:1; }
.hero-eyebrow{ font-family:var(--body); font-size:clamp(11px,1.6vw,13px); letter-spacing:.42em; text-transform:uppercase; color:var(--gold); margin-bottom:clamp(20px,4vh,38px); padding-left:.42em; opacity:0; }
.hero-eyebrow.in{ animation:dsdlFade .9s ease forwards .1s; }
@keyframes dsdlFade{ from{opacity:0; transform:translateY(6px);} to{opacity:.9; transform:none;} }
.hero-title{ font-family:var(--display); font-weight:400; font-size:clamp(2.6rem,8.5vw,6rem); line-height:1.03; letter-spacing:-.01em; margin:0; }
.hero-title .line{ display:block; }
.hero-title .word{ display:inline-block; opacity:0; transform:translateY(.18em); }
.hero-title .word + .word{ margin-left:.28em; }
.hero-title .em{ font-style:italic; color:var(--gold); font-weight:300; }
.hero-title.run .word{ animation:dsdlWord .7s ease forwards; animation-delay:calc(var(--wi,0) * .13s); }
@keyframes dsdlWord{ to{opacity:1; transform:none;} }
.hero-rule{ height:1px; width:min(42ch,70vw); background:linear-gradient(90deg,var(--gold),transparent); margin:clamp(22px,4vh,38px) auto 0; transform:scaleX(0); transform-origin:left; }
.hero-title.run ~ .hero-rule{ animation:dsdlRule .9s cubic-bezier(.6,0,.2,1) forwards .8s; }
@keyframes dsdlRule{ to{transform:scaleX(1);} }
.scroll-cue{ position:absolute; bottom:26px; left:50%; transform:translateX(-50%); z-index:1; color:var(--gold); opacity:.75; font-size:13px; letter-spacing:.2em; text-transform:uppercase; text-decoration:none; animation:dsdlBob 2.4s ease-in-out infinite; }
@keyframes dsdlBob{ 0%,100%{transform:translateX(-50%) translateY(0);} 50%{transform:translateX(-50%) translateY(6px);} }

/* ---------------- PIED DE PAGE ---------------- */
.site-footer{
  margin-top:auto;                    /* colle le footer en bas des pages courtes */
  background:var(--ink);
  border-top:2px solid var(--gold);
  color:var(--paper-hero); font-size:13px;
  min-height:50px; display:flex; align-items:center; justify-content:center;
  padding:8px clamp(16px,4vw,40px);
}
.footer-inner{ display:flex; align-items:center; justify-content:center; gap:8px 20px; flex-wrap:wrap; }
.site-footer .fbrand{ font-family:var(--display); font-size:15px; color:var(--paper-hero); margin:0; }
.site-footer .copy{ color:#b0aa99; margin:0; }
.site-footer a{ color:var(--gold-lt); text-decoration:none; }
.site-footer a:hover{ color:#fff; }
.footer-menu{ list-style:none; display:flex; gap:16px; padding:0; margin:0; flex-wrap:wrap; }

/* ---------------- MOBILE ---------------- */
@media (max-width:860px){
  .nav-links{
    position:fixed; inset:0 0 auto 0; top:0; flex-direction:column; align-items:flex-start; gap:4px;
    background:var(--ink); color:var(--paper-hero);
    padding:88px clamp(24px,7vw,40px) 32px; box-shadow:0 20px 40px rgba(0,0,0,.35);
    transform:translateY(-100%); transition:transform .38s cubic-bezier(.4,0,.2,1);
  }
  .nav-links.open{ transform:translateY(0); }
  .nav-links a{ font-size:19px; padding:10px 0; width:100%; opacity:1; color:var(--paper-hero); }
  .burger{ display:block; z-index:60; }
  .burger.open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  .burger.open span:nth-child(2){ opacity:0; }
  .burger.open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
}

@media (prefers-reduced-motion:reduce){
  .hero-title .word,.hero-rule,.hero-eyebrow,.scroll-cue{ animation:none!important; opacity:1!important; transform:none!important; }
  .hero-rule{ transform:scaleX(1)!important; }
}

/* =========================================================
   Sections, cartes de livres, listing & fiche
   ========================================================= */
.section{ padding:clamp(56px,9vw,110px) clamp(20px,6vw,80px); }
.section-inner{ max-width:1200px; margin:0 auto; }
.band{ background:var(--bg-2); }

.head-row{ display:flex; align-items:baseline; justify-content:space-between; gap:20px; flex-wrap:wrap; margin-bottom:38px; }
.head-row h2,.head-row h3{ font-family:var(--display); font-weight:400; font-size:clamp(1.5rem,3.5vw,2.1rem); color:var(--forest); margin:0; }
.head-link{ font-size:14px; letter-spacing:.04em; color:var(--gold-deep); text-decoration:none; border-bottom:1px solid var(--line); padding-bottom:2px; white-space:nowrap; }
.head-link:hover{ border-color:var(--gold-deep); }

.page-head{ text-align:center; margin-bottom:clamp(34px,6vw,60px); }
.kicker{ font-size:13px; letter-spacing:.28em; text-transform:uppercase; color:var(--gold-deep); margin:0 0 10px; }
.page-head h1{ font-family:var(--display); font-weight:300; font-size:clamp(2rem,5vw,3rem); color:var(--forest); margin:0; }

/* Grille et carte de livre */
.books{ display:grid; grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); gap:clamp(20px,3vw,36px); }
.book{ text-align:left; }
.book-cover{
  display:block; aspect-ratio:2/3; border-radius:6px; overflow:hidden;
  box-shadow:0 12px 30px rgba(32,48,42,.14); background:var(--bg-2);
  transition:transform .25s ease, box-shadow .25s ease;
}
.book-cover:hover{ transform:translateY(-4px); box-shadow:0 18px 40px rgba(32,48,42,.2); }
.book-cover img{ width:100%; height:100%; object-fit:cover; display:block; }
.book-cover-fallback{
  display:flex; height:100%; align-items:center; justify-content:center; text-align:center;
  padding:16px; font-family:var(--display); font-size:17px; color:var(--muted);
}
.book-title{ font-family:var(--display); font-weight:400; font-size:18px; margin:16px 0 2px; line-height:1.25; }
.book-title a{ color:var(--forest); text-decoration:none; }
.book-title a:hover{ color:var(--gold-deep); }
.book-author{ font-style:italic; color:var(--muted); font-size:15px; margin:0; }
.book-price{ margin:6px 0 0; color:var(--gold-deep); font-size:15px; }

/* Pagination */
.pagination{ margin-top:clamp(34px,6vw,60px); text-align:center; }
.pagination .page-numbers{
  display:inline-block; min-width:40px; padding:8px 12px; margin:0 3px;
  border:1px solid var(--line); border-radius:8px; text-decoration:none; color:var(--forest);
}
.pagination .page-numbers.current{ background:var(--forest); color:var(--bg); border-color:var(--forest); }
.pagination .page-numbers:hover{ border-color:var(--gold-deep); }

/* Fiche livre */
.livre-retour{ margin:0 0 24px; }
.livre-retour a{ color:var(--gold-deep); text-decoration:none; font-size:15px; }
.livre-grid{ display:grid; grid-template-columns:minmax(300px,460px) 1fr; gap:clamp(30px,5vw,64px); align-items:start; }
.livre-visuels{ display:flex; flex-direction:row; gap:14px; position:sticky; top:96px; }
.livre-visuels > *{ flex:1 1 0; min-width:0; }
.livre-cover,.livre-back{ width:100%; border-radius:8px; box-shadow:0 16px 40px rgba(32,48,42,.18); display:block; }
.livre-back{ opacity:.96; }
.livre-title{ font-family:var(--display); font-weight:400; font-size:clamp(1.8rem,4.5vw,2.8rem); color:var(--forest); line-height:1.15; margin:6px 0 4px; }
.livre-author{ font-style:italic; font-size:1.15rem; color:var(--sage); margin:0 0 24px; }
.livre-meta{ list-style:none; margin:0 0 28px; padding:22px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); display:flex; flex-wrap:wrap; gap:10px 34px; }
.livre-meta li{ font-size:15px; color:var(--text); }
.livre-meta li span{ display:block; font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); margin-bottom:3px; }
.livre-meta .livre-prix{ color:var(--gold-deep); font-weight:500; }
.livre-extrait{ font-family:var(--display); font-style:italic; font-weight:300; font-size:1.3rem; line-height:1.5; color:var(--forest); border-left:2px solid var(--gold); margin:0 0 28px; padding:6px 0 6px 22px; }
.livre-desc{ font-size:18px; line-height:1.75; }
.livre-desc p{ margin:0 0 1.1em; }
.livre-cta{ margin-top:30px; }
.btn{ display:inline-block; background:var(--gold); color:var(--ink); text-decoration:none; font-family:var(--body); padding:13px 30px; border-radius:999px; font-size:16px; transition:transform .2s ease, background .2s ease; }
.btn:hover{ transform:translateY(-2px); }

@media (max-width:720px){
  .livre-grid{ grid-template-columns:1fr; }
  .livre-visuels{ position:static; }
}

/* =========================================================
   Parutions : tri + bascule vue, vue liste, lightbox, articles liés
   ========================================================= */
.parutions-bar{ display:flex; flex-wrap:wrap; gap:14px 20px; align-items:center; justify-content:space-between; margin-bottom:30px; padding-bottom:18px; border-bottom:1px solid var(--line); }
.parutions-bar form{ display:flex; align-items:center; gap:8px; margin:0; }
.parutions-bar label{ font-size:13px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
.parutions-bar select{ padding:6px 10px; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--forest); font:inherit; font-size:15px; }
.vue-toggle{ display:inline-flex; border:1px solid var(--line); border-radius:999px; overflow:hidden; }
.vue-toggle a{ padding:7px 16px; text-decoration:none; color:var(--muted); font-size:14px; }
.vue-toggle a.actif{ background:var(--forest); color:var(--bg); }

.books-list{ list-style:none; margin:0; padding:0; }
.books-list li{ display:flex; align-items:baseline; gap:16px; padding:16px 2px; border-bottom:1px solid var(--line); flex-wrap:wrap; }
.books-list .bl-title{ font-family:var(--display); font-size:1.15rem; color:var(--forest); text-decoration:none; }
.books-list .bl-title:hover{ color:var(--gold-deep); }
.books-list .bl-author{ font-style:italic; color:var(--muted); }
.books-list .bl-year{ color:var(--muted); font-size:14px; }
.books-list .bl-price{ margin-left:auto; color:var(--gold-deep); }

/* Lightbox couvertures */
.livre-cover, .livre-back{ cursor:zoom-in; }
.dsdl-lightbox{ position:fixed; inset:0; z-index:9999; background:rgba(21,26,36,.92); display:none; align-items:center; justify-content:center; padding:30px; cursor:zoom-out; }
.dsdl-lightbox.open{ display:flex; }
.dsdl-lightbox img{ max-width:92vw; max-height:90vh; border-radius:6px; box-shadow:0 30px 80px rgba(0,0,0,.55); }
.dsdl-lightbox .lb-close{ position:absolute; top:18px; right:26px; color:#fff; font-size:36px; line-height:1; background:none; border:none; cursor:pointer; }

/* Articles en rapport */
.livre-related{ margin-top:34px; padding-top:22px; border-top:1px solid var(--line); }
.livre-related h2{ font-family:var(--display); font-weight:400; font-size:1.3rem; color:var(--forest); margin:0 0 12px; }
.livre-related ul{ list-style:none; margin:0; padding:0; }
.livre-related li{ margin:0 0 8px; }
.livre-related a{ color:var(--gold-deep); text-decoration:none; border-bottom:1px solid var(--line); }
.livre-related a:hover{ border-color:var(--gold-deep); }

/* =========================================================
   Actualités (section accueil + cartes)
   ========================================================= */
.news{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:clamp(20px,3vw,40px); }
.news-item{ border-top:2px solid var(--gold); padding-top:18px; }
.news-item .tag{ font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--sage); }
.news-title{ font-family:var(--display); font-weight:400; font-size:1.3rem; margin:8px 0; line-height:1.25; }
.news-title a{ color:var(--forest); text-decoration:none; }
.news-title a:hover{ color:var(--gold-deep); }
.news-excerpt{ margin:0 0 10px; color:var(--muted); font-size:16px; }
.news-more{ color:var(--gold-deep); text-decoration:none; font-size:14px; }
.news-more:hover{ text-decoration:underline; }

/* =========================================================
   Pages & article seul : contenu éditorial centré
   ========================================================= */
.entry-content{ max-width:760px; margin:0 auto; }
.entry-content p{ margin:0 0 1.2em; }
.entry-content h2{ font-family:var(--display); font-weight:400; color:var(--forest); font-size:clamp(1.5rem,3vw,1.9rem); margin:1.6em 0 .4em; }
.entry-content h3{ font-family:var(--display); font-weight:400; color:var(--forest); font-size:1.35rem; margin:1.4em 0 .3em; }
.entry-content a{ color:var(--gold-deep); }
.entry-content blockquote{ border-left:2px solid var(--gold); margin:1.4em 0; padding:.2em 0 .2em 22px; font-style:italic; color:var(--forest); }
.entry-content ul,.entry-content ol{ padding-left:1.2em; margin:0 0 1.2em; }
.entry-content img{ border-radius:6px; height:auto; }
.entry-content hr{ border:none; border-top:1px solid var(--line); margin:2em auto; max-width:120px; }

/* Article seul */
.single-article .livre-retour{ max-width:760px; margin:0 auto 24px; }
.article-head{ text-align:center; max-width:760px; margin:0 auto clamp(24px,4vw,40px); }
.article-cat{ font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:var(--sage); margin:0 0 10px; }
.article-title{ font-family:var(--display); font-weight:400; font-size:clamp(2rem,5vw,3rem); color:var(--forest); line-height:1.15; margin:0 0 14px; }
.article-meta{ color:var(--muted); font-size:15px; margin:0; }
.article-featured{ margin:0 auto clamp(28px,5vw,48px); max-width:900px; }
.article-featured img{ width:100%; height:auto; border-radius:8px; box-shadow:0 16px 40px rgba(32,48,42,.16); display:block; }
.article-back{ max-width:760px; margin:clamp(30px,5vw,50px) auto 0; }
.btn-ghost{ display:inline-block; border:1px solid var(--line); border-radius:999px; padding:10px 22px; color:var(--forest); text-decoration:none; font-size:15px; }
.btn-ghost:hover{ border-color:var(--gold-deep); color:var(--gold-deep); }

/* Footer : liens légaux */
.footer-legal{ display:flex; gap:16px; flex-wrap:wrap; justify-content:center; margin:0; }
.footer-legal a{ color:var(--gold-lt); text-decoration:none; }
.footer-legal a:hover{ color:#fff; }


/* Intro de page + page Contact */
.page-intro{ color:var(--muted); margin:10px 0 0; }
.contact-grid{ display:grid; grid-template-columns:1fr; gap:clamp(40px,6vw,64px); }
@media (min-width:980px){ .contact-grid{ grid-template-columns:1fr 1fr; gap:56px; align-items:start; } }
.contact-block h2{ font-family:var(--display); font-weight:400; font-size:1.5rem; color:var(--forest); margin:0 0 8px; }
.contact-lead{ color:var(--muted); margin:0 0 22px; }

/* =========================================================
   Page À propos (l'association)
   ========================================================= */
.apropos .kicker{ font-size:13px; letter-spacing:.28em; text-transform:uppercase; color:var(--gold-deep); margin:0 0 10px; }
.apropos-col{ max-width:760px; margin:0 auto; font-size:18px; line-height:1.75; }
.apropos-col p{ margin:0 0 1.2em; }
.apropos-col a{ color:var(--gold-deep); }
.apropos-mission{
  font-family:var(--display); font-style:italic; font-weight:300;
  font-size:clamp(1.3rem,3vw,1.6rem); line-height:1.5; color:var(--forest);
  border-left:2px solid var(--gold); margin:1.4em 0; padding:6px 0 6px 24px;
}
.apropos-poeme{
  max-width:600px; margin:clamp(40px,7vw,70px) auto; text-align:center;
  font-family:var(--display); font-style:italic; font-weight:300; color:var(--forest);
  font-size:clamp(1.1rem,2.4vw,1.35rem); line-height:1.7;
  padding:clamp(28px,5vw,44px) 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line);
}
.apropos-poeme p{ margin:0 0 1em; }
.apropos-poeme em, .apropos-poeme cite{ display:block; margin-top:14px; font-size:.85em; color:var(--gold-deep); font-variant:small-caps; letter-spacing:.06em; }
.apropos-block, .apropos-contact{ max-width:760px; margin:clamp(34px,5vw,50px) auto 0; }
.apropos-block h2, .apropos-contact h2{ font-family:var(--display); font-weight:400; font-size:1.5rem; color:var(--forest); margin:0 0 14px; }
.apropos-block p{ margin:0 0 1em; line-height:1.7; }
.apropos-contact address{ font-style:normal; line-height:1.9; }
.apropos-contact a{ color:var(--gold-deep); text-decoration:none; }
.apropos-contact a:hover{ text-decoration:underline; }
.apropos-legal{ max-width:760px; margin:clamp(40px,6vw,60px) auto 0; padding-top:22px; border-top:1px solid var(--line); font-size:14px; line-height:1.6; color:var(--muted); }
.apropos-legal p{ margin:0 0 .9em; }

/* =========================================================
   À paraître : encadré bleu roi plein écran + carrousel, mentions
   ========================================================= */
.aparaitre-band{
  background:linear-gradient(120deg, #0f2050 0%, #1e40af 55%, #2a56d6 100%);
  color:#eef2ff;
  padding:clamp(48px,7vw,90px) clamp(20px,6vw,80px);
}
.aparaitre-inner{ max-width:1200px; margin:0 auto; }
.aparaitre-title{
  font-family:var(--display); font-weight:300; color:#fff; text-align:center;
  font-size:clamp(1.8rem,4.5vw,2.8rem); margin:0 0 clamp(26px,4vw,44px);
}
.aparaitre-title::after{ content:""; display:block; width:64px; height:2px; background:var(--gold); margin:16px auto 0; }

.aparaitre-viewport{ overflow:hidden; }
.aparaitre-track{ display:flex; gap:24px; }
.aparaitre-track.is-carousel{ overflow-x:auto; scroll-snap-type:x mandatory; -ms-overflow-style:none; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
.aparaitre-track.is-carousel::-webkit-scrollbar{ display:none; }
.apar-slide{ flex:0 0 100%; scroll-snap-align:center; display:flex; gap:clamp(22px,4vw,48px); align-items:center; }
.aparaitre-track:not(.is-carousel) .apar-slide{ justify-content:center; }
.apar-cover{ flex:0 0 auto; width:clamp(150px,20vw,220px); aspect-ratio:2/3; border-radius:8px; overflow:hidden; box-shadow:0 20px 50px rgba(0,0,0,.4); background:rgba(255,255,255,.08); }
.apar-cover img{ width:100%; height:100%; object-fit:cover; display:block; }
.apar-info{ max-width:460px; }
.apar-tag{ display:inline-block; font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-lt); border:1px solid rgba(200,169,106,.5); border-radius:999px; padding:4px 13px; margin-bottom:14px; }
.apar-title{ font-family:var(--display); font-weight:400; font-size:clamp(1.5rem,3.5vw,2.1rem); margin:0 0 6px; line-height:1.2; }
.apar-title a{ color:#fff; text-decoration:none; }
.apar-title a:hover{ color:var(--gold-lt); }
.apar-auth{ font-style:italic; color:#c7d0f0; margin:0 0 14px; }
.apar-exc{ color:#dbe1f6; line-height:1.6; margin:0 0 18px; }
.apar-more{ color:var(--gold-lt); text-decoration:none; font-size:15px; }
.apar-more:hover{ text-decoration:underline; }
.apar-nav{ display:flex; justify-content:center; gap:12px; margin-top:clamp(24px,4vw,36px); }
.apar-nav button{ width:44px; height:44px; border-radius:50%; border:1px solid rgba(255,255,255,.4); background:transparent; color:#fff; font-size:18px; cursor:pointer; transition:all .2s ease; }
.apar-nav button:hover{ background:rgba(255,255,255,.12); border-color:var(--gold); color:var(--gold-lt); }
@media (max-width:680px){
  .apar-slide{ flex-direction:column; text-align:center; }
  .apar-tag{ margin-left:auto; margin-right:auto; }
  .apar-info{ max-width:none; }
}

/* Badges sur les cartes de livre + mentions */
.book-cover{ position:relative; }
.book-badge{ position:absolute; top:10px; left:0; font-size:11px; letter-spacing:.08em; text-transform:uppercase; padding:5px 12px; color:#fff; border-radius:0 4px 4px 0; }
.book-badge--apar{ background:#1e40af; }
.book-badge--epuise{ background:#6b7280; }
.books-list .bl-tag{ font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:#fff; background:#1e40af; padding:3px 9px; border-radius:4px; }

/* Fiche livre : mention distinctive + statut */
.kicker--apar{ color:#1e40af; }
.livre-status{ display:inline-block; padding:12px 26px; border-radius:999px; font-size:15px; }
.livre-status--apar{ background:#1e40af; color:#fff; }
.livre-status--epuise{ background:#6b7280; color:#fff; }

/* Dépôt de manuscrit en bas d'accueil */
.manuscrit-inner{ max-width:720px; margin:0 auto; }
.manuscrit-inner > h2{ font-family:var(--display); font-weight:400; font-size:clamp(1.6rem,3.5vw,2.2rem); color:var(--forest); margin:0 0 12px; text-align:center; }
.manuscrit-inner > .manuscrit-lead{ color:var(--muted); margin:0 0 30px; text-align:center; }

/* =========================================================
   Charte : touche de bleu roi SUBTILE (accent secondaire)
   Le bleu se pose sur les sur-titres, les survols de liens et
   les états de focus ; l'or garde boutons, citations et filets.
   ========================================================= */
:root{ --blue:#1e40af; --blue-deep:#16235e; --blue-lt:#3f62d6; --blue-soft:#eaeffb; }

/* Sur-titres (kickers) en bleu roi */
.kicker,
.apropos .kicker{ color:var(--blue); }

/* Survol des liens éditoriaux et de navigation → bleu */
.entry-content a, .apropos-col a, .livre-desc a, .livre-related a, .head-link{ transition:color .2s ease, border-color .2s ease; }
.entry-content a:hover,
.apropos-col a:hover,
.livre-desc a:hover,
.livre-related a:hover{ color:var(--blue-deep); }
.head-link:hover{ color:var(--blue); border-color:var(--blue); }

/* États de focus clavier : anneau bleu (accessibilité + rappel de bleu) */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible{ outline:2px solid var(--blue); outline-offset:2px; border-radius:4px; }

/* Champs de formulaire : liseré bleu au focus */
.bc-q:focus,
.bc-fields input:focus,
.parutions-bar select:focus{ border-color:var(--blue); box-shadow:0 0 0 3px rgba(30,64,175,.15); outline:none; }

/* =========================================================
   Apparitions au scroll (reveal). Les classes sont posées par nav.js ;
   sans JS, rien n'est masqué (contenu visible par défaut).
   ========================================================= */
.reveal{
  opacity:0; transform:translateY(18px);
  transition:opacity .7s cubic-bezier(.2,.6,.2,1), transform .7s cubic-bezier(.2,.6,.2,1);
  will-change:opacity, transform;
}
.reveal.is-visible{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){
  .reveal{ opacity:1 !important; transform:none !important; transition:none !important; }
}

/* =========================================================
   Papillon d'inactivité — desktop uniquement, une fois par chargement,
   désactivé si prefers-reduced-motion. DOM injecté par nav.js.
   ========================================================= */
:root{
  --pap-size:64px; --pap-flap:.30s; --pap-flap-rest:2.4s;
  --pap-flap-amp:66deg; --pap-flap-amp-rest:22deg; --pap-body-band:43%;
}
.pap-shadow{
  position:fixed; left:0; top:0; width:var(--pap-size); height:calc(var(--pap-size) * .42);
  border-radius:50%; background:radial-gradient(ellipse at center, rgba(16,20,32,.55), rgba(16,20,32,0) 68%);
  filter:blur(2px); pointer-events:none; z-index:39; opacity:0; will-change:transform,opacity;
}
#dsdl-butterfly{
  position:fixed; left:0; top:0; width:var(--pap-size); aspect-ratio:580.292 / 385.954;
  pointer-events:none; z-index:40; opacity:0; transform:translate(-200px,-200px);
  will-change:transform,opacity; transition:opacity .5s ease;
}
#dsdl-butterfly.visible, .pap-shadow.visible{ opacity:1; }
#dsdl-butterfly .flap{ position:relative; width:100%; height:100%; perspective:640px; }
#dsdl-butterfly .pap-layer{ position:absolute; inset:0; width:100%; height:100%; background:url('../img/papillon.svg') center/contain no-repeat; }
#dsdl-butterfly .wing-l{ clip-path:inset(0 50% 0 0); transform-origin:center center; animation:papFlapL var(--pap-flap) ease-in-out infinite; z-index:1; }
#dsdl-butterfly .wing-r{ clip-path:inset(0 0 0 50%); transform-origin:center center; animation:papFlapR var(--pap-flap) ease-in-out infinite; z-index:1; }
#dsdl-butterfly .body{ clip-path:inset(0 var(--pap-body-band) 0 var(--pap-body-band)); z-index:2; }
#dsdl-butterfly.resting .wing-l{ animation:papFlapLr var(--pap-flap-rest) ease-in-out infinite; }
#dsdl-butterfly.resting .wing-r{ animation:papFlapRr var(--pap-flap-rest) ease-in-out infinite; }
@keyframes papFlapL{ 0%,100%{ transform:rotateY(3deg); } 50%{ transform:rotateY(var(--pap-flap-amp)); } }
@keyframes papFlapR{ 0%,100%{ transform:rotateY(-3deg); } 50%{ transform:rotateY(calc(-1 * var(--pap-flap-amp))); } }
@keyframes papFlapLr{ 0%,100%{ transform:rotateY(6deg); } 50%{ transform:rotateY(var(--pap-flap-amp-rest)); } }
@keyframes papFlapRr{ 0%,100%{ transform:rotateY(-6deg); } 50%{ transform:rotateY(calc(-1 * var(--pap-flap-amp-rest))); } }
@media (prefers-reduced-motion:reduce){ #dsdl-butterfly, .pap-shadow{ display:none !important; } }

/* Regroupement de la page Parutions (par année, ou 1re lettre du titre) */
.parutions-group{ font-family:var(--display); font-weight:400; font-size:clamp(1.3rem,3vw,1.7rem); color:var(--forest); margin:clamp(30px,4vw,44px) 0 18px; padding-bottom:8px; border-bottom:1px solid var(--line); }
.parutions-group:first-of-type{ margin-top:0; }
.books-list .bl-group{ list-style:none; font-family:var(--display); font-weight:400; font-size:1.25rem; color:var(--forest); margin:26px 0 6px; padding-bottom:6px; border-bottom:1px solid var(--line); }
.books-list .bl-group:first-child{ margin-top:0; }

/* Image de mise en avant des cartes d'actualités */
.news-thumb{ display:block; margin:0 0 16px; border-radius:8px; overflow:hidden; aspect-ratio:16 / 10; background:var(--bg-2); }
.news-thumb img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease; }
.news-item:hover .news-thumb img{ transform:scale(1.04); }

/* Galerie sur l'accueil */
.galerie-home .head-row{ margin-bottom:20px; }

/* À propos éditable : mise en forme d'une éventuelle adresse dans le contenu libre */
.entry-content address{ font-style:normal; line-height:1.9; margin:0 0 1.2em; }
