/* Mémoires et thèses du GRIIPTIC
   Feuille additionnelle : se charge après bootstrap.min.css et default.css.
   Tous les sélecteurs sont préfixés .gr- pour ne rien toucher au reste du site. */

.gr-page{
  --gr-rouge:#a51b30;
  --gr-rouge-fonce:#7d1424;
  --gr-rouge-pale:#f6e7e9;
  --gr-encre:#1c1417;
  --gr-gris:#6d6065;
  --gr-gris-clair:#8d8085;
  --gr-ligne:#e3d9db;
  --gr-ligne-forte:#cfc0c4;
  --gr-surface:#ffffff;
  --gr-surface-2:#f6f2f2;
  --gr-serif:"Fraunces",Georgia,"Times New Roman",serif;
  color:var(--gr-encre);
  max-width:1140px;
}

/* introduction */
.gr-intro{border-bottom:1px solid var(--gr-ligne); padding-bottom:18px; margin-bottom:26px}
.gr-intro h1{
  font-family:var(--gr-serif); font-weight:700; font-size:clamp(28px,4vw,42px);
  margin:0 0 8px; letter-spacing:-.01em;
}
.gr-intro p{margin:0; color:var(--gr-gris); max-width:74ch; font-size:15.5px; line-height:1.6}

/* bloc au hasard */
.gr-vitrine{margin-bottom:34px}
.gr-tete{
  display:flex; align-items:baseline; gap:14px; flex-wrap:wrap; margin:0 0 12px;
}
.gr-eyebrow{
  font-size:11.5px; font-weight:700; letter-spacing:.15em; text-transform:uppercase;
  color:var(--gr-rouge);
}
.gr-compteur{font-size:13px; color:var(--gr-gris)}
.gr-carte-vitrine{
  display:grid; grid-template-columns:215px 1fr;
  background:var(--gr-surface); border:1px solid var(--gr-ligne); border-radius:4px;
  box-shadow:0 1px 2px rgba(28,20,23,.05), 0 10px 28px -20px rgba(28,20,23,.35);
  overflow:hidden;
}
.gr-provenance{
  background:var(--gr-rouge); color:#fff; padding:22px 20px;
  display:flex; flex-direction:column; gap:10px;
}
.gr-sigle{font-family:var(--gr-serif); font-size:34px; font-weight:700; line-height:1}
.gr-nom{font-size:13px; line-height:1.35; opacity:.94}
.gr-membre{font-size:11.5px; line-height:1.45; opacity:.9}
.gr-membre b{font-size:13.5px; opacity:1}
.gr-depot-v{
  margin-top:auto; font-size:11px; letter-spacing:.11em; text-transform:uppercase;
  opacity:.82; border-top:1px solid rgba(255,255,255,.3); padding-top:9px;
}
.gr-vitrine-corps{padding:24px 26px 22px; min-width:0}
.gr-vitrine-titre{
  font-family:var(--gr-serif); font-weight:600; font-size:clamp(20px,2.4vw,28px);
  line-height:1.24; margin:0 0 12px; text-wrap:balance;
}
.gr-extrait{font-size:14.5px; line-height:1.6; color:var(--gr-gris); margin:0 0 18px; max-width:70ch}

/* meta communes */
.gr-meta{
  display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin:0 0 10px;
  font-size:12px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--gr-gris); font-weight:600;
}
.gr-an{color:var(--gr-encre); font-variant-numeric:tabular-nums}
.gr-pt{width:3px; height:3px; border-radius:50%; background:var(--gr-ligne-forte); display:inline-block}
.gr-auteur{font-size:15px; margin:0 0 4px}
.gr-direction{font-size:14px; color:var(--gr-gris); margin:0 0 14px}

/* boutons
   default.css du site impose « a { color:#a51b30 !important } » et un survol gris :
   il faut donc reprendre la main explicitement sur les liens de cette page. */
.gr-actions{display:flex; gap:10px; flex-wrap:wrap; margin:0}
.gr-btn{
  display:inline-flex; align-items:center; padding:8px 15px;
  border:1px solid var(--gr-ligne-forte); background:var(--gr-surface); color:var(--gr-encre);
  border-radius:3px; font-size:13.5px; font-weight:600; cursor:pointer; text-decoration:none;
  transition:border-color .15s, color .15s, background .15s;
}
.gr-page a.gr-btn{color:var(--gr-encre) !important}
.gr-btn:hover{border-color:var(--gr-rouge)}
.gr-page a.gr-btn:hover{color:var(--gr-rouge) !important}
.gr-btn-plein{background:var(--gr-rouge); border-color:var(--gr-rouge)}
.gr-page a.gr-btn-plein, .gr-page a.gr-btn-plein:hover{color:#fff !important}
.gr-btn-plein:hover{background:var(--gr-rouge-fonce); border-color:var(--gr-rouge-fonce)}

/* commandes */
.gr-commandes{
  padding-top:22px; border-top:1px solid var(--gr-ligne);
  display:flex; flex-direction:column; gap:14px; margin-bottom:20px;
}
.gr-rangee{display:flex; gap:12px; flex-wrap:wrap; align-items:center}
.gr-recherche{flex:1 1 280px; min-width:220px; margin:0}
.gr-page input[type="search"], .gr-page select{
  width:100%; padding:9px 12px; font-size:14.5px; color:var(--gr-encre);
  background:var(--gr-surface); border:1px solid var(--gr-ligne-forte); border-radius:3px;
}
.gr-page select{width:auto}
.gr-page input[type="search"]:focus, .gr-page select:focus{
  outline:2px solid var(--gr-rouge); outline-offset:1px; border-color:var(--gr-rouge);
}
.gr-etiquettes{display:flex; gap:7px; flex-wrap:wrap}
.gr-puce{
  padding:6px 12px; font-size:12.5px; font-weight:600; color:var(--gr-gris);
  background:transparent; border:1px solid var(--gr-ligne-forte); border-radius:100px;
  cursor:pointer; transition:all .15s;
}
.gr-puce:hover{border-color:var(--gr-rouge); color:var(--gr-rouge)}
.gr-puce[aria-pressed="true"]{background:var(--gr-rouge); border-color:var(--gr-rouge); color:#fff}
.gr-resultat{font-size:13px; color:var(--gr-gris); margin:0; display:flex; gap:10px; align-items:center}
.gr-nb{font-weight:700; color:var(--gr-encre); font-variant-numeric:tabular-nums}
.gr-raz{
  background:none; border:none; padding:0; font-size:13px; color:var(--gr-rouge);
  cursor:pointer; text-decoration:underline; text-underline-offset:2px;
}

/* grille */
.gr-grille{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(330px,1fr));
  gap:16px; margin-bottom:44px; align-items:stretch;
}
.gr-fiche{
  background:var(--gr-surface); border:1px solid var(--gr-ligne); border-radius:4px;
  display:flex; flex-direction:column; overflow:hidden;
}
.gr-fiche[hidden]{display:none}
.gr-bandeau{
  display:flex; align-items:center; gap:10px; padding:11px 16px;
  background:var(--gr-surface-2); border-bottom:1px solid var(--gr-ligne);
}
.gr-jeton{
  padding:3px 8px; border-radius:2px; background:var(--gr-rouge); color:#fff;
  font-size:11.5px; font-weight:700; letter-spacing:.06em; flex:0 0 auto;
}
.gr-etab{font-size:12.5px; font-weight:600; line-height:1.25}
.gr-depot{
  margin-left:auto; font-size:10.5px; letter-spacing:.09em; text-transform:uppercase;
  color:var(--gr-gris-clair); white-space:nowrap;
}
.gr-corps{padding:15px 16px 16px; display:flex; flex-direction:column; flex:1}
.gr-titre{
  font-family:var(--gr-serif); font-weight:600; font-size:17.5px; line-height:1.3;
  margin:0 0 9px; text-wrap:balance;
}
.gr-fiche .gr-auteur{font-size:14px; margin:0 0 3px}
.gr-fiche .gr-direction{font-size:13px; margin:0 0 9px}
.gr-rattachement{
  font-size:12px; color:var(--gr-gris); background:var(--gr-rouge-pale);
  padding:6px 9px; border-radius:2px; line-height:1.4; margin:0 0 9px;
}
.gr-mots{display:flex; gap:6px; flex-wrap:wrap; margin-bottom:9px}
.gr-mot{font-size:11.5px; color:var(--gr-gris); border:1px solid var(--gr-ligne); padding:2px 8px; border-radius:100px}
.gr-resume{font-size:13.5px; line-height:1.58; color:var(--gr-gris); margin:0 0 10px}
.gr-resume.gr-replie{
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;
}
.gr-liens{
  display:flex; gap:14px; flex-wrap:wrap; margin:auto 0 0; padding-top:8px;
  font-size:13px; font-weight:600;
}
.gr-liens a, .gr-lien-btn{
  text-decoration:none; background:none; border:none; padding:0;
  cursor:pointer; border-bottom:1px solid transparent;
}
.gr-page .gr-liens a, .gr-page .gr-liens a:hover, .gr-lien-btn{color:var(--gr-rouge) !important}
.gr-liens a:hover, .gr-lien-btn:hover{border-bottom-color:var(--gr-rouge)}
.gr-vide{
  grid-column:1/-1; padding:44px 20px; text-align:center; color:var(--gr-gris);
  border:1px dashed var(--gr-ligne-forte); border-radius:4px; font-size:14.5px;
}

/* fiche pointee par un lien direct */
.gr-fiche.gr-vise{
  border-color:var(--gr-rouge);
  box-shadow:0 0 0 3px rgba(165,27,48,.12);
}
.gr-page .gr-permalien, .gr-page .gr-permalien:hover{
  margin-left:auto; font-weight:500; color:var(--gr-gris-clair) !important;
}
.gr-page .gr-permalien:hover{color:var(--gr-rouge) !important; border-bottom-color:var(--gr-rouge)}
.gr-btn-lien{font-weight:500}
.gr-fiche:target{scroll-margin-top:90px}

/* pied */
.gr-pied{
  border-top:1px solid var(--gr-ligne); padding-top:26px; font-size:13px; color:var(--gr-gris);
  display:grid; gap:22px; grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
}
.gr-pied h2{
  font-size:11.5px; letter-spacing:.13em; text-transform:uppercase; color:var(--gr-encre);
  font-weight:700; margin:0 0 6px;
}
.gr-pied p{margin:0 0 6px; line-height:1.6}
.gr-maj{font-style:italic}
.gr-repartition{display:flex; flex-direction:column; gap:5px}
.gr-barre{display:grid; grid-template-columns:66px 1fr 26px; gap:8px; align-items:center; font-size:12px}
.gr-piste{height:6px; background:var(--gr-surface-2); border-radius:100px; overflow:hidden}
.gr-remplit{display:block; height:100%; background:var(--gr-rouge); border-radius:100px}
.gr-n{text-align:right; font-variant-numeric:tabular-nums}

@media (max-width:640px){
  .gr-carte-vitrine{grid-template-columns:1fr}
  .gr-provenance{flex-direction:row; align-items:center; gap:14px; padding:16px 18px; flex-wrap:wrap}
  .gr-sigle{font-size:24px}
  .gr-depot-v{margin-top:0; margin-left:auto; border-top:none; padding-top:0; text-align:right}
  .gr-vitrine-corps{padding:20px 18px}
}
@media (prefers-reduced-motion:reduce){
  .gr-page *{transition-duration:.01ms !important; animation-duration:.01ms !important}
}

/* ------------------------------------------------------------------
   Fiche resserrée : une ligne d'objectif, le détail dans une fenêtre
   ------------------------------------------------------------------ */
.gr-objectif{
  font-size:14px; line-height:1.5; color:var(--gr-encre); margin:0 0 10px;
  padding-left:11px; border-left:2px solid var(--gr-rouge-pale);
}
.gr-ouvrir{
  background:none; border:none; padding:0; font:inherit; font-weight:600;
  font-size:13px; color:var(--gr-rouge); cursor:pointer;
  border-bottom:1px solid transparent;
}
.gr-ouvrir:hover{border-bottom-color:var(--gr-rouge)}
.gr-fiche{cursor:default}
.gr-js .gr-fiche{cursor:pointer; transition:border-color .15s, box-shadow .15s}
.gr-js .gr-fiche:hover{border-color:var(--gr-ligne-forte); box-shadow:0 6px 20px -14px rgba(28,20,23,.5)}
.gr-js .gr-fiche:focus-within{outline:2px solid var(--gr-rouge); outline-offset:2px}

/* le détail reste dans la page pour qui n'a pas de script */
.gr-js .gr-detail{display:none}
.gr-detail{
  margin-top:14px; padding-top:14px; border-top:1px solid var(--gr-ligne);
  display:grid; gap:16px; grid-template-columns:150px 1fr;
}
.gr-detail-meta{
  font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--gr-gris);
  font-weight:600; margin:0 0 6px; display:flex; gap:8px; align-items:center; flex-wrap:wrap;
}
.gr-detail-direction{font-size:13px; color:var(--gr-gris); margin:0 0 10px}
.gr-detail-h{
  font-size:11px; letter-spacing:.13em; text-transform:uppercase; font-weight:700;
  margin:14px 0 6px; color:var(--gr-encre);
}
.gr-resume-complet p{font-size:13.5px; line-height:1.62; color:var(--gr-gris); margin:0 0 9px}
.gr-resume-absent{font-size:13.5px; line-height:1.6; color:var(--gr-gris-clair); font-style:italic; margin:0}
.gr-detail-liens{display:flex; gap:10px; flex-wrap:wrap; margin:16px 0 0}

/* couverture : le clic ouvre le document au dépôt */
.gr-couverture{
  display:block; position:relative; text-decoration:none; border-radius:2px;
  border:1px solid var(--gr-ligne); background:var(--gr-surface-2);
  box-shadow:0 2px 10px -6px rgba(28,20,23,.5);
  transition:box-shadow .18s, border-color .18s, transform .18s;
}
.gr-couverture img{display:block; width:100%; height:auto; border-radius:1px}
.gr-couverture:hover, .gr-couverture:focus-visible{
  border-color:var(--gr-rouge); box-shadow:0 10px 26px -12px rgba(165,27,48,.55);
  transform:translateY(-2px);
}
.gr-couverture:focus-visible{outline:2px solid var(--gr-rouge); outline-offset:3px}
.gr-couverture-legende{
  position:absolute; left:0; right:0; bottom:0; padding:7px 8px;
  background:linear-gradient(to top, rgba(28,20,23,.86), rgba(28,20,23,0));
  color:#fff !important; font-size:11.5px; font-weight:600; letter-spacing:.03em;
  text-align:center; border-radius:0 0 1px 1px;
  opacity:0; transition:opacity .18s;
}
.gr-couverture:hover .gr-couverture-legende,
.gr-couverture:focus-visible .gr-couverture-legende{opacity:1}
.gr-couverture-repli{
  aspect-ratio:1/1.294; background:var(--gr-rouge); color:#fff;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px;
  border-radius:1px;
}
.gr-couverture-repli > span:first-child{
  font-family:var(--gr-serif); font-size:26px; font-weight:700; line-height:1;
}
.gr-couverture-repli > span:last-child{
  font-size:12px; letter-spacing:.14em; opacity:.85; font-variant-numeric:tabular-nums;
}

/* fenêtre */
.gr-modale{
  width:min(880px, calc(100vw - 32px)); max-height:min(88vh, 900px);
  padding:0; border:none; border-radius:5px; background:var(--gr-surface);
  color:var(--gr-encre); box-shadow:0 24px 70px -20px rgba(28,20,23,.55);
  overflow:visible;
}
.gr-modale::backdrop{background:rgba(28,20,23,.62)}
.gr-modale[open]{
  display:grid; grid-template-rows:auto auto auto 1fr;
  max-height:min(88vh, 900px); overflow:hidden;
}
.gr-modale-entete{
  display:flex; align-items:center; gap:10px; padding:16px 54px 12px 24px;
  font-size:13px; font-weight:600; border-bottom:1px solid var(--gr-ligne);
  background:var(--gr-surface-2);
}
.gr-modale-titre{
  font-family:var(--gr-serif); font-weight:600; font-size:clamp(19px,2.2vw,25px);
  line-height:1.26; margin:18px 24px 6px; text-wrap:balance;
}
.gr-modale-auteur{font-size:15px; font-weight:700; margin:0 24px 4px}
.gr-modale-corps{
  overflow-y:auto; padding:8px 24px 24px;
  display:grid; gap:20px; grid-template-columns:200px 1fr; align-items:start;
}
.gr-modale-corps .gr-detail{margin:0; padding:0; border:none; display:contents}
.gr-fermer{
  position:absolute; top:10px; right:12px; z-index:2;
  width:34px; height:34px; border-radius:50%; border:1px solid var(--gr-ligne-forte);
  background:var(--gr-surface); color:var(--gr-gris); font-size:22px; line-height:1;
  cursor:pointer; display:grid; place-items:center;
}
.gr-fermer:hover{border-color:var(--gr-rouge); color:var(--gr-rouge)}
@media (max-width:640px){
  .gr-modale-corps{grid-template-columns:1fr}
  .gr-modale-corps .gr-couverture{max-width:190px}
  .gr-detail{grid-template-columns:1fr}
  .gr-detail .gr-couverture{max-width:170px}
}

/* étiquettes thématiques */
.gr-themes{display:flex; gap:6px; flex-wrap:wrap; margin:0 0 10px}
.gr-theme{
  font-size:11.5px; line-height:1.3; color:var(--gr-gris);
  background:transparent; border:1px solid var(--gr-ligne); border-radius:100px;
  padding:3px 9px; cursor:pointer; transition:all .15s; text-align:left;
}
.gr-theme:hover, .gr-theme:focus-visible{
  border-color:var(--gr-rouge); color:var(--gr-rouge); background:var(--gr-rouge-pale);
}
.gr-detail-axe{
  font-size:12.5px; color:var(--gr-gris); margin:0 0 10px;
  display:flex; gap:8px; align-items:center; flex-wrap:wrap;
}
.gr-detail-axe b{color:var(--gr-rouge); font-weight:700}
.gr-mots-depot .gr-mot{opacity:.75; font-style:italic}
