/* Rubrique Archives (anciens articles vttl.re) */
.page-archives { background: var(--clair); }
.archives { padding: 40px 0 60px; min-height: 70vh; }
.page-archives .topbar.reduit .marque img { height: 52px; transform: none; }
.page-archives .marque { width: 90px; }
.titre span { color: var(--jaune); background: var(--noir); padding: 0 .15em; }
.arch-intro { max-width: 760px; font-size: 1.1rem; margin-bottom: 18px; }
.arch-annees { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 30px; }
.arch-annees a { background: var(--noir); color: var(--jaune); text-decoration: none; padding: 6px 14px; font: 800 italic 1.1rem var(--titre);
  clip-path: polygon(6px 0, 100% 0, calc(100% - 6px) 100%, 0 100%); }
.arch-annees a:hover { background: var(--jaune); color: var(--noir); }
.arch-annee { margin-bottom: 40px; scroll-margin-top: 80px; }
.arch-annee h2 { font: 900 italic 2.6rem/1 var(--titre); margin-bottom: 14px; border-bottom: 4px solid var(--jaune); display: inline-block; padding-right: 20px; }
.arch-cartes { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 14px; }
.arch-carte { display: flex; flex-direction: column; background: var(--blanc); text-decoration: none; color: var(--texte); border-bottom: 4px solid var(--jaune); transition: transform .15s, box-shadow .15s; }
.arch-carte:hover { transform: translateY(-3px); box-shadow: 0 10px 22px rgba(0,0,0,.12); }
.arch-carte img { width: 100%; aspect-ratio: 4/3; object-fit: cover; background: var(--noir); }
.arch-carte-txt { padding: 10px 12px 12px; }
.arch-carte b { display: block; font: 800 italic 1.2rem/1.1 var(--titre); text-transform: uppercase; }
.arch-carte small { color: #666; }
.arch-fil { font: 700 italic 1rem var(--titre); text-transform: uppercase; letter-spacing: 2px; margin-bottom: 8px; }
.arch-fil a { color: var(--texte); }
.arch-titre { font-size: clamp(2rem, 5vw, 3.4rem); margin-bottom: 8px; }
.arch-meta { color: #555; margin-bottom: 20px; }
.arch-texte { max-width: 780px; background: var(--blanc); padding: 18px 22px; border-left: 6px solid var(--jaune); margin-bottom: 24px; }
.arch-texte p + p, .arch-texte ul, .arch-texte h3 { margin-top: 10px; }
.arch-texte ul { padding-left: 20px; list-style: disc; }
.arch-texte a { color: #0b5cad; word-break: break-word; }
.arch-galerie { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 8px; }
.arch-photo { display: block; aspect-ratio: 4/3; overflow: hidden; background: var(--noir); cursor: zoom-in; }
.arch-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.arch-photo:hover img { transform: scale(1.05); }
.arch-suite { display: flex; justify-content: space-between; gap: 16px; margin-top: 30px; }
.arch-suite a { background: var(--noir); color: var(--jaune); text-decoration: none; padding: 10px 16px; font: 700 italic 1rem var(--titre); text-transform: uppercase; max-width: 48%; }
#lightbox .lb-nav { position: fixed; top: 50%; transform: translateY(-50%); background: var(--jaune); color: var(--noir); border: 0; font: 900 2rem var(--titre); width: 48px; height: 64px; cursor: pointer; }
#lightbox .lb-prec { left: 10px; } #lightbox .lb-suiv { right: 10px; }
@media (max-width: 860px) {
  .page-archives .nav-archives { display: flex; position: static; flex-direction: row; flex-wrap: wrap; background: none; border: 0; gap: 4px 12px; justify-content: flex-end; }
  .page-archives .nav-archives a { padding: 2px 0; width: auto; font-size: .95rem; }
  .page-archives .nav-archives .nav-cta { display: none; }
  .page-archives .burger { display: none; }
  .arch-suite { flex-direction: column; } .arch-suite a { max-width: none; }
}

/* Sommaire par thèmes et rubriques */
.arch-recherche { width: 100%; max-width: 560px; margin: 18px 0 14px; padding: 12px 16px; font: 600 1.05rem var(--corps); border: 3px solid var(--noir); background: var(--blanc); }
.arch-recherche:focus { outline: 3px solid var(--jaune); }
.arch-theme { margin: 34px 0; scroll-margin-top: 80px; }
.arch-theme > h2 { font: 900 italic 2.3rem/1 var(--titre); text-transform: uppercase; background: var(--noir); color: var(--jaune); display: inline-block; padding: 6px 16px; margin-bottom: 12px; }
.arch-rub { margin: 0 0 18px; scroll-margin-top: 80px; }
.arch-rub h3 { font: 800 italic 1.4rem var(--titre); text-transform: uppercase; border-bottom: 3px solid var(--jaune); margin-bottom: 4px; }
.arch-rub h3 small { font-size: .9rem; color: #777; }
.arch-rub ul { list-style: none; columns: 2 420px; column-gap: 30px; }
.arch-ligne { break-inside: avoid; }
.arch-ligne a { display: flex; align-items: baseline; gap: 10px; padding: 5px 0; border-bottom: 1px dashed #d6d2c6; text-decoration: none; color: var(--texte); }
.arch-ligne a:hover b { text-decoration: underline; text-decoration-color: var(--jaune); text-decoration-thickness: 3px; }
.arch-ligne time { flex: 0 0 120px; color: #777; font-size: .85rem; }
.arch-ligne b { flex: 1; font-weight: 600; }
.b-photo, .b-doc { flex: none; font: 700 italic .75rem var(--titre); text-transform: uppercase; padding: 1px 7px; }
.b-photo { background: var(--jaune); } .b-doc { background: var(--noir); color: var(--jaune); }
.arch-vide { font-style: italic; color: #777; margin: 20px 0; }
/* Documents d'un article */
.arch-docs { margin-top: 26px; background: var(--blanc); padding: 16px 20px; border-top: 4px solid var(--noir); }
.arch-docs h2 { font: 900 italic 1.6rem var(--titre); text-transform: uppercase; margin-bottom: 8px; }
.arch-docs ul { list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 6px 18px; }
.arch-docs a { display: flex; gap: 10px; align-items: center; text-decoration: none; color: var(--texte); padding: 4px 0; }
.arch-docs a:hover { color: #0b5cad; }
.arch-ext { flex: none; font: 800 .7rem var(--titre); background: var(--rouge); color: var(--blanc); padding: 3px 6px; }
.arch-texte table { border-collapse: collapse; margin: 10px 0; font-size: .9rem; display: block; overflow-x: auto; }
.arch-texte td, .arch-texte th { border: 1px solid #ccc; padding: 3px 7px; }
@media (max-width: 600px) { .arch-ligne a { flex-wrap: wrap; gap: 2px 8px; } .arch-ligne time { flex-basis: 100%; } }
