@font-face {
  font-family: CinzelLocal;
  src: url("cinzel/cinzel.ttf") format("truetype");
  font-display: swap;
}

/* Dossiers thématiques et actualités Facebook */
.facebook-posts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.fb-post{display:flex;flex-direction:column;min-width:0;background:#e8e3da;border-top:3px solid var(--red)}
.fb-media{display:block;overflow:hidden;aspect-ratio:16/10;background:#c8c1b5}
.fb-media img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.fb-post:hover .fb-media img{transform:scale(1.025)}
.fb-placeholder{display:grid;place-items:center;background:linear-gradient(135deg,#172026,#314e61);color:rgba(255,255,255,.75);font:400 68px/1 var(--serif)}
.fb-text{display:flex;flex:1;flex-direction:column;padding:25px}
.fb-text time{color:var(--red);font-size:11px;letter-spacing:.12em;text-transform:uppercase}
.fb-text p{margin:18px 0 25px;color:#3e474b;font:400 18px/1.55 var(--serif)}
.fb-text>a{align-self:flex-start;margin-top:auto;text-decoration:none}
.facebook-empty{padding:35px;border:1px solid var(--line);text-align:center}

.dossier-index-intro{max-width:none}
.dossier-index-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-top:45px}
.dossier-card{overflow:hidden;background:var(--paper);border:1px solid var(--line)}
.dossier-card>img{display:block;width:100%;aspect-ratio:16/8;object-fit:cover}
.dossier-card>div{padding:30px}
.dossier-card h2{margin:8px 0 16px;font:400 clamp(27px,3vw,38px)/1.12 var(--serif)}
.dossier-card a{color:var(--red-dark);font-weight:700;text-decoration:none}
.dossier-intro{max-width:980px}
.dossier-sommaire{display:flex;flex-wrap:wrap;gap:10px;margin:28px 0 50px;padding:18px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.dossier-sommaire a{padding:9px 12px;background:#172026;color:#fff;font-size:.78rem;text-decoration:none}
.dossier-groups .source-group{scroll-margin-top:100px}
.dossier-texte{max-width:900px;margin:0 auto;padding:10px 0 55px}
.dossier-texte p{font-size:1.05rem;line-height:1.85;color:#424a4d}
.dossier-texte p:first-child:first-letter{float:left;margin:10px 8px 0 0;color:var(--red);font-family:var(--serif);font-size:4rem;line-height:.75}
.dossier-heures article h3{color:var(--red)}

@media(max-width:900px){
  .facebook-posts,.dossier-index-grid{grid-template-columns:1fr 1fr}
  .fb-post:last-child{grid-column:1/-1}
}
@media(max-width:620px){
  .facebook-posts,.dossier-index-grid{grid-template-columns:1fr}
  .fb-post:last-child{grid-column:auto}
  .dossier-sommaire{display:grid}
  .dossier-sommaire a{text-align:center}
  .dossier-texte p{font-size:1rem}
}
:root {
  --ink: #182126;
  --ink-2: #243139;
  --paper: #f2efe8;
  --paper-2: #e6dfd2;
  --white: #fff;
  --red: #a84132;
  --red-dark: #76281f;
  --gold: #bc8f52;
  --blue: #38596a;
  --muted: #697176;
  --line: rgba(24, 33, 38, 0.16);
  --shadow: 0 22px 60px rgba(24, 33, 38, 0.12);
  --serif: CinzelLocal, Georgia, "Times New Roman", serif;
  --sans: "Segoe UI", Arial, sans-serif;
}
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
}
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.65;
}
body:before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  opacity: 0.24;
  background-image: linear-gradient(
    rgba(24, 33, 38, 0.018) 1px,
    transparent 1px
  );
  background-size: 100% 4px;
  z-index: 100;
}
a {
  color: var(--red);
  text-decoration: none;
}
a:hover {
  text-decoration: underline;
  text-underline-offset: 4px;
}
img {
  max-width: 100%;
  height: auto;
}
.skip-link {
  position: absolute;
  left: -999px;
  top: 10px;
  background: var(--ink);
  color: #fff;
  padding: 10px 14px;
  z-index: 999;
}
.skip-link:focus {
  left: 10px;
}
.site-header {
  position: sticky;
  top: 0;
  z-index: 90;
  background: rgba(242, 239, 232, 0.94);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--line);
}
.site-header__inner {
  max-width: 1440px;
  height: 82px;
  padding: 0 clamp(20px, 5vw, 72px);
  margin: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
}
.site-brand {
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--ink);
  white-space: nowrap;
}
.site-brand:hover {
  text-decoration: none;
}
.site-brand__mark {
  display: block;
  width: 46px;
  height: 46px;
  flex: 0 0 46px;
  object-fit: cover;
}
.site-brand__text strong,
.site-brand__text small {
  display: block;
}
.site-brand__text strong {
  font-size: 13px;
  letter-spacing: 0.14em;
}
.site-brand__text small {
  font-size: 8px;
  color: var(--muted);
  letter-spacing: 0.13em;
  margin-top: 2px;
}
.site-nav {
  display: flex;
  align-items: center;
  gap: clamp(20px, 3vw, 45px);
}
.site-nav a {
  position: relative;
  color: var(--ink);
  font-size: 13px;
}
.site-nav a:after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: -12px;
  height: 2px;
  background: var(--red);
  transition: 0.22s;
}
.site-nav a:hover {
  text-decoration: none;
}
.site-nav a:hover:after,
.site-nav a.active:after {
  right: 0;
}
.search-toggle,
.nav-toggle {
  border: 1px solid var(--line);
  background: transparent;
  color: var(--ink);
}
.search-toggle {
  width: 39px;
  height: 39px;
  font-size: 22px;
}
.nav-toggle {
  display: none;
  padding: 9px;
}
.nav-toggle span {
  display: block;
  width: 21px;
  height: 2px;
  background: currentColor;
  margin: 4px;
}
.nav-toggle b {
  position: absolute;
  left: -9999px;
}
.global-search {
  max-height: 0;
  overflow: hidden;
  background: var(--ink);
  color: #fff;
  transition: max-height 0.25s ease;
  padding: 0 clamp(20px, 5vw, 72px);
}
.global-search.open {
  max-height: 150px;
  padding-top: 18px;
  padding-bottom: 18px;
}
.global-search > label {
  display: block;
  max-width: 1100px;
  margin: 0 auto 7px;
  font-size: 10px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: #d4b17d;
}
.global-search > div {
  display: flex;
  max-width: 1100px;
  margin: auto;
}
.global-search input {
  flex: 1;
  min-width: 0;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: #fff;
  padding: 13px 16px;
}
.global-search button,
.button {
  border: 0;
  background: var(--red);
  color: #fff;
  padding: 13px 20px;
}
.site-shell {
  max-width: 1440px;
  margin: auto;
  padding: 0 clamp(20px, 5vw, 72px);
}
.breadcrumbs {
  padding: 22px 0;
  font-size: 11px;
  color: var(--muted);
  border-bottom: 1px solid var(--line);
}
.breadcrumbs a {
  color: var(--muted);
}
.breadcrumbs .genericon-next:before {
  content: "›";
  display: inline-block;
  margin: 0 9px;
  color: var(--gold);
}
.breadcrumbs > span:last-child {
  color: var(--ink);
}
.site-content {
  min-height: 60vh;
  padding: 68px 0 90px;
}
.page-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(240px, 0.55fr);
  gap: 40px;
  align-items: end;
  margin-bottom: 54px;
}
.page-heading .eyebrow {
  grid-column: 1/-1;
}
.page-heading h1 {
  font: 400 clamp(42px, 6vw, 76px) / 1.02 var(--serif);
  letter-spacing: -0.035em;
  margin: 0;
  max-width: 950px;
}
.page-heading > p:last-child {
  color: var(--muted);
  margin: 0;
  max-width: 520px;
}
.eyebrow {
  color: var(--red);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  margin: 0 0 12px;
}
.hero {
  min-height: 620px;
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  margin: -68px calc(clamp(20px, 5vw, 72px) * -1) 80px;
  border-bottom: 1px solid var(--line);
}
.hero__copy {
  padding: 100px clamp(28px, 7vw, 110px);
}
.hero h1 {
  font: 400 clamp(48px, 6.4vw, 90px) / 0.98 var(--serif);
  letter-spacing: -0.045em;
  margin: 20px 0;
}
.hero h1 em {
  font-style: normal;
  color: var(--red);
}
.hero__lead {
  font:
    19px/1.6 Georgia,
    serif;
  color: #505a5e;
  max-width: 650px;
}
.hero__actions {
  display: flex;
  align-items: center;
  gap: 28px;
  margin-top: 34px;
}
.hero__visual {
  position: relative;
  min-height: 540px;
  background: var(--ink);
  color: #fff;
  overflow: hidden;
  padding: 68px;
}
.hero__visual:before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(
      circle at 70% 30%,
      rgba(188, 143, 82, 0.24),
      transparent 30%
    ),
    repeating-radial-gradient(
      ellipse at 80% 50%,
      transparent 0 42px,
      rgba(255, 255, 255, 0.05) 43px 44px
    );
}
.hero__year {
  position: absolute;
  right: 7%;
  top: 5%;
  font: clamp(90px, 14vw, 190px) / 1 var(--serif);
  color: rgba(255, 255, 255, 0.08);
}
.hero__feature {
  position: absolute;
  left: 10%;
  right: 16%;
  bottom: 12%;
  padding: 30px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  background: rgba(24, 33, 38, 0.78);
  backdrop-filter: blur(10px);
}
.hero__feature small {
  color: #d4b17d;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.hero__feature h2 {
  font: 400 34px/1.15 var(--serif);
  margin: 30px 0 8px;
}
.hero__feature p {
  color: rgba(255, 255, 255, 0.62);
  font-size: 13px;
}
.button {
  display: inline-flex;
  gap: 24px;
  align-items: center;
}
.button:hover {
  background: var(--red-dark);
  text-decoration: none;
}
.text-link {
  color: var(--ink);
  font-size: 13px;
  border-bottom: 1px solid currentColor;
}
.section-heading {
  display: flex;
  justify-content: space-between;
  gap: 40px;
  align-items: end;
  margin: 80px 0 35px;
}
.section-heading h2 {
  font: 400 clamp(38px, 5vw, 64px) / 1 var(--serif);
  margin: 9px 0 0;
}
.section-heading > p {
  max-width: 470px;
  color: var(--muted);
}
.feature-grid,
.news-grid,
.bio-country-grid,
.period-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}
.page-home .feature-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.feature-card,
.news-card,
.bio-person,
.bio-country,
.period-card {
  display: block;
  position: relative;
  background: var(--paper-2);
  padding: 27px;
  color: var(--ink);
  border: 1px solid transparent;
  transition: 0.22s;
}
.feature-card:hover,
.news-card:hover,
.bio-person:hover,
.bio-country:hover,
.period-card:hover {
  border-color: var(--gold);
  transform: translateY(-3px);
  text-decoration: none;
  box-shadow: var(--shadow);
}
.feature-card span,
.period-card span {
  font-size: 9px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--red);
}
.feature-card h3,
.news-card h3,
.period-card h2,
.bio-country strong {
  font: 400 26px/1.2 var(--serif);
  margin: 14px 0;
}
.feature-card p,
.news-card p,
.period-card p {
  color: var(--muted);
  font-size: 13px;
}
.news-card img {
  width: 100%;
  height: 190px;
  object-fit: cover;
  float: none;
}
.news-card__body {
  padding: 22px;
}
.news-card {
  padding: 0;
  background: #fff;
}
.news-card time {
  font-size: 9px;
  color: var(--red);
  text-transform: uppercase;
  letter-spacing: 0.14em;}
.today-panel {
  display: grid;
  grid-template-columns: 0.7fr 1.3fr;
  background: var(--ink);
  color: #fff;
  margin: 80px 0;
}
.today-panel__intro {
  padding: 55px;
}
.today-panel__intro h2 {
  font: 400 48px/1.05 var(--serif);
  margin: 12px 0;
}
.today-panel__intro p {
  color: rgba(255, 255, 255, 0.6);
}
.today-panel__events {
  padding: 38px 50px;
  border-left: 1px solid rgba(255, 255, 255, 0.13);
}
.today-event {
  padding: 18px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}
.today-event:last-child {
  border: 0;
}
.today-event h3 {
  font: 400 24px/1.2 var(--serif);
  margin: 6px 0;
}
.today-event small {
  color: #d4b17d;
}
.today-event p {
  color: rgba(255, 255, 255, 0.68);
  font-size: 13px;
}
.filter-panel {
  display: grid;
  grid-template-columns: 1.5fr repeat(2, minmax(160px, 0.75fr));
  border: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.35);
  margin-bottom: 18px;
}
.filter-panel label {
  padding: 15px 18px;
  border-right: 1px solid var(--line);
}
.filter-panel label:last-child {
  border: 0;
}
.filter-panel span {
  display: block;
  font-size: 8px;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--muted);
  margin-bottom: 6px;
}
.filter-panel input,
.filter-panel select {
  width: 100%;
  border: 0;
  background: transparent;
  color: var(--ink);
  font: inherit;
  outline: 0;
}
.filter-summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 11px;
  color: var(--muted);
  padding: 14px 0;
}
.view-switch {
  display: flex;
}
.view-switch button {
  border: 0;
  background: transparent;
  color: var(--muted);
  padding: 8px 12px;
}
.view-switch button.active {
  background: var(--ink);
  color: #fff;
}
.timeline {
  border-top: 1px solid var(--ink);
}
.timeline-day,
.timeline-event {
  scroll-margin-top: 110px;
}
.timeline-day {
  display: grid;
  grid-template-columns: 155px 1fr;
  border-bottom: 1px solid var(--line);
}
.timeline-day:target .timeline-date h2 {
  color: var(--red);
}

.timeline-day:target .timeline-date h2::before {
  content: "";
  position: absolute;
  left: -14px;
  top: -5px;
  bottom: -5px;
  width: 3px;
  background: var(--red);
}
.timeline-date {
  padding: 28px 22px 28px 0;
  position: relative;
}
.timeline-date:after {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: 1px;
  background: var(--line);
}
.timeline-date h2 {
  position: sticky;
  top: 112px;
  font: 400 22px/1.25 var(--serif);
  margin: 0;
}
.timeline-events {
  padding: 7px 0 7px 35px;
}
.timeline-country {
  display: grid;
  grid-template-columns: minmax(140px, 0.25fr) 1fr;
  gap: 24px;
  border-bottom: 1px solid var(--line);
}
.timeline-country[hidden] {
  display: none !important;
}
.timeline-country:last-child {
  border: 0;
}
.timeline-country__place {
  padding: 24px 0;
}
.timeline-country__events {
  min-width: 0;
}
.timeline-event {
  display: block;
  padding: 24px 0;
  border-bottom: 1px solid var(--line);
}
.timeline-event:last-child {
  border-bottom: 0;
}
.timeline-event__place {
  font-size: 11px;
}
.timeline-event__place img {
  width: 26px;
  height: 18px;
  object-fit: cover;
  margin-right: 8px;
  vertical-align: middle;
}
.timeline-event__place strong {
  display: block;
  font-size: 12px;
  margin-top: 8px;
}
.timeline-event__continent {
  display: inline-block;
  color: var(--red);
  font-size: 8px;
  text-transform: uppercase;
  letter-spacing: 0.15em;
}
.timeline-event__body {
  color: #3f494e;
  font-size: 14px;
}
.timeline-event__body p {
  margin: 0 0 12px;
}
.timeline.grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
}
.timeline.grid .timeline-day {
  display: contents;
}
.timeline.grid .timeline-date {
  display: none;
}
.timeline.grid .timeline-events {
  display: contents;
}
.timeline.grid .timeline-country {
  display: block;
  background: var(--paper);
  padding: 28px;
  min-height: 260px;
}
.timeline.grid .timeline-country__place {
  padding: 0;
  margin-bottom: 18px;
}
.timeline.grid .timeline-event {
  padding: 20px 0;
  min-height: 0;
}
.timeline.grid .timeline-event:first-child {
  padding-top: 0;
}
.timeline.grid .timeline-event:last-child {
  padding-bottom: 0;
}
.timeline-event__title {
  margin: 0 0 9px;
  color: var(--ink);
  font: 400 18px/1.3 var(--serif);
}

/* Vignette facultative liée à un événement de la chronologie */
.timeline-event__body.has-media {
  display: grid;
  grid-template-columns: 160px minmax(0, 1fr);
  gap: 22px;
  align-items: start;
}

.timeline-event__media {
  margin: 0;
  min-width: 0;
}

.timeline-event__media > a {
  display: block;
  overflow: hidden;
  border: 1px solid var(--line);
  background: var(--paper-2);
}

.timeline-event__media img {
  display: block;
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  transition: transform 0.25s ease;
}

.timeline-event__media > a:hover img {
  transform: scale(1.035);
}

.timeline-event__media figcaption {
  margin-top: 8px;
  line-height: 1.4;
}

.timeline-event__caption {
  color: #4f585c;
  font-size: 10px;
  line-height: 1.45;
}

.timeline-event__credits {
  margin-top: 5px;
  color: #8a8f92;
  font-size: 8px;
  line-height: 1.35;
}

.timeline-event__credit-names {
  margin-bottom: 1px;
}

.timeline-event__credits a {
  color: inherit;
  text-decoration: none;
}

.timeline-event__credits a:hover {
  color: var(--red);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.timeline-event__text {
  min-width: 0;
}

/* En mode grille, l'image prend la largeur de la carte. */
.timeline.grid .timeline-event__body.has-media {
  display: block;
}
.timeline.grid .timeline-event__media {
  margin-bottom: 16px;
}
.timeline.grid .timeline-event__media img {
  width: 100%;
  aspect-ratio: 3 / 2;
}
.chronology-empty {
  display: none;
  text-align: center;
  padding: 50px;
}
.chronology-empty.visible {
  display: block;
}
.map-section {
  display: grid;
  grid-template-columns: 0.68fr 1.32fr;
  background: var(--ink);
  color: #fff;
  margin: 80px calc(clamp(20px, 5vw, 72px) * -1);
  min-height: 590px;
}
.map-section__copy {
  padding: 70px clamp(28px, 6vw, 85px);
}
.map-section h2 {
  font: 400 clamp(45px, 5vw, 72px) / 1.05 var(--serif);
  margin: 14px 0;
}
.map-section p {
  color: rgba(255, 255, 255, 0.62);
}
.map-legend {
  margin: 28px 0;
  font-size: 10px;
  color: rgba(255, 255, 255, 0.6);
}
.map-legend span {
  display: block;
  margin: 8px 0;
}
.map-legend i {
  display: inline-block;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--gold);
  margin-right: 9px;
}
.map-legend i.secondary {
  background: var(--red);
}
#chronology-map {
  min-height: 590px;
  background: #26353c;
}
.leaflet-popup-content-wrapper,
.leaflet-popup-tip {
  background: var(--paper);
  color: var(--ink);
}
.bio-country-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.bio-country {
  display: flex;
  align-items: center;
  gap: 16px;
}
.bio-country img {
  width: 38px;
  height: 25px;
  object-fit: cover;
  flex: 0 0 auto;
}
.bio-country strong {
  display: block;
  font-size: 19px;
  margin: 0;
}
.bio-country small {
  color: var(--muted);
}
.bio-person-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}
.bio-person {
  background: var(--paper-2);
  padding: 27px;
  min-height: 230px;
  display: flex;
  flex-direction: column;
}
.bio-person h2 {
  font: 400 26px/1.2 var(--serif);
  margin: 0 0 10px;
}
.bio-person p {
  font-size: 13px;
  color: var(--muted);
}
.bio-person .lire {
  margin-top: auto;
}
.bio-person .lire:after {
  content: "Lire la biographie →";
}
.bio-layout {
  display: grid;
  grid-template-columns: 290px minmax(0, 1fr);
  gap: 55px;
  align-items: start;
}
.bio-sidebar {
  position: sticky;
  top: 110px;
}
.image_personnage {
  display: block;
  width: 100%;
  max-width: 290px;
  float: none;
  filter: grayscale(24%);
  background: var(--paper-2);
}
.bio-facts {
  margin-top: 20px;
  border-top: 1px solid var(--line);
}
.bio-fact {
  padding: 14px 0;
  border-bottom: 1px solid var(--line);
}
.bio-fact small {
  display: block;
  color: var(--red);
  text-transform: uppercase;
  letter-spacing: 0.13em;
  font-size: 8px;
}
.bio-fact strong {
  font-weight: 600;
  font-size: 13px;
}
.bio-main h2 {
  font: 400 30px/1.25 var(--serif);
  margin: 0 0 16px;
}
.bio-dates {
  color: var(--muted);
  font-size: 13px;
  margin-bottom: 30px;
}
.bio-summary {
  padding: 24px 27px;
  border-left: 3px solid var(--red);
  background: var(--paper-2);
  margin-bottom: 35px;
}
.bio-summary h2 {
  font-size: 22px;
}
.bio-content {
  font:
    17px/1.8 Georgia,
    serif;
}
.bio-content .sous-titre_bio,
.bio-content > strong {
  display: block;
  font: 400 27px/1.25 var(--serif);
  margin: 42px 0 12px;
  color: var(--ink);
}
.bio-toc {
  padding: 20px;
  border: 1px solid var(--line);
  margin-bottom: 32px;
}
.bio-toc strong {
  display: block;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  margin-bottom: 9px;
}
.bio-toc a {
  display: block;
  font-size: 13px;
  padding: 5px 0;
}
.cadre {
  background: var(--paper-2);
  border-left: 3px solid var(--gold);
  padding: 22px 25px;
  margin: 24px 0;
  color: #414a4f;
}
.pagi_chronologie,
#pagination {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 22px 0 45px;
}
.pagi_chronologie a,
#pagination a,
#pagination span {
  padding: 9px 13px;
  background: var(--ink);
  color: #fff;
  font-size: 12px;
}
.pagi_chronologie a:hover,
#pagination a:hover {  background: var(--red);
  text-decoration: none;
}
h2.chronologie,
h2.recherche {
  font: 400 28px/1.25 var(--serif);
  margin: 38px 0 15px;
}
blockquote {
  margin: 0 0 18px;
  padding: 22px 25px;
  background: #fff;
  border-left: 2px solid var(--line);
}
blockquote h5 {
  margin: 0 0 10px;
  font-size: 12px;
}
blockquote h5 img {
  width: 28px;
  height: 18px;
  object-fit: cover;
  vertical-align: middle;
  margin-right: 8px;
}
.colonne {
  padding: 22px;
  border-bottom: 1px solid var(--line);
}
.colonne img {
  width: 36px;
  height: 24px;
  object-fit: cover;
  margin-right: 12px;
  vertical-align: middle;
}
.colonne h2.index_bio {
  font: 400 24px/1.2 var(--serif);
  margin: 0 0 8px;
}
.gras {
  font-weight: 700;
}
.mot-recherche {
  font-weight: 700;
  background: #f0d9a8;
  color: var(--ink);
  padding: 0 3px;
}
.site-footer {
  background: #11191d;
  color: #fff;
}
.site-footer__inner {
  max-width: 1440px;
  margin: auto;
  padding: 45px clamp(20px, 5vw, 72px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
}
.site-footer p,
.site-footer > a {
  color: rgba(255, 255, 255, 0.5);
  font-size: 10px;
}
.site-brand--footer {
  color: #fff;
}
@media (max-width: 980px) {
  .site-nav {
    position: absolute;
    left: 0;
    right: 0;
    top: 82px;
    display: none;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 14px 22px 25px;
    background: var(--paper);
    border-bottom: 1px solid var(--line);
  }
  .site-nav.open {
    display: flex;
  }
  .site-nav a {
    padding: 12px;
  }
  .nav-toggle {
    display: block;
  }
  .search-toggle {
    margin-left: auto;
  }
  .hero {
    grid-template-columns: 1fr;
  }
  .hero__visual {
    min-height: 500px;
  }
  .feature-grid,
  .news-grid,
  .period-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .bio-country-grid {
    grid-template-columns: repeat(3, 1fr);
  }
  .bio-person-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .map-section {
    grid-template-columns: 1fr;
  }
  .map-section__copy {
    padding-bottom: 35px;
  }
  .timeline.grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 680px) {
  body {
    font-size: 15px;
  }
  .site-header__inner {
    height: 70px;
    padding: 0 16px;
    gap: 12px;
  }
  .site-brand__text small {
    display: none;
  }
  .site-brand__mark {
    width: 38px;
    height: 38px;
    flex-basis: 38px;
  }
  .site-nav {
    top: 70px;
  }
  .site-shell {
    padding: 0 18px;
  }
  .site-content {
    padding-top: 45px;
  }
  .page-heading {
    display: block;
  }
  .page-heading > p:last-child {
    margin-top: 20px;
  }
  .hero {
    margin-top: -45px;
    margin-left: -18px;
    margin-right: -18px;
  }
  .hero__copy {
    padding: 65px 23px;
  }
  .hero h1 {
    font-size: 48px;
  }
  .hero__actions {
    align-items: flex-start;
    flex-direction: column;
  }
  .hero__visual {
    min-height: 430px;
    padding: 25px;
  }
  .hero__feature {
    left: 24px;
    right: 24px;
    bottom: 24px;
  }
  .feature-grid,
  .news-grid,
  .period-grid,
  .bio-country-grid,
  .bio-person-grid {
    grid-template-columns: 1fr;
  }
  .section-heading {
    display: block;
  }
  .today-panel {
    grid-template-columns: 1fr;
  }
  .today-panel__events {
    border-left: 0;
    border-top: 1px solid rgba(255, 255, 255, 0.13);
    padding: 28px;
  }
  .filter-panel {
    grid-template-columns: 1fr;
  }
  .filter-panel label {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }
  .filter-summary {
    align-items: flex-start;
    gap: 15px;
    flex-direction: column;
  }
  .timeline-day {
    grid-template-columns: 1fr;
  }
  .timeline-date {
    padding: 23px 0 8px;
  }
  .timeline-date:after {
    display: none;
  }
  .timeline-date h2 {
    position: static;
  }
  .timeline-events {
    padding: 0;
  }
  .timeline-country {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .timeline-country__place {
    padding: 22px 0 0;
  }
  .timeline.grid {
    grid-template-columns: 1fr;
  }
  .map-section {
    margin-left: -18px;
    margin-right: -18px;
  }
  .map-section__copy {
    padding: 60px 23px 30px;
  }
  #chronology-map {
    min-height: 430px;
  }
  .bio-layout {
    grid-template-columns: 1fr;
  }
  .bio-sidebar {
    position: static;
  }
  .image_personnage {
    max-width: 240px;
  }
  .site-footer__inner {
    align-items: flex-start;
    flex-direction: column;
  }
  .site-footer p {
    margin: 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  * {
    transition: none !important;
  }
}
.chronology-intro {
  display: grid;
  grid-template-columns: 0.7fr 1.3fr;
  gap: 45px;
  align-items: end;
  margin-bottom: 34px;
}
.chronology-intro h2 {
  font: 400 clamp(34px, 4vw, 52px) / 1.1 var(--serif);
  margin: 0;
}
.chronology-intro > p {
  color: var(--muted);
  max-width: 720px;
}
.period-card {
  display: flex;
  flex-direction: column;
  min-height: 360px;
}
.period-card__link {
  margin-top: auto;
  font-size: 12px;
  font-weight: 700;
}
.period-card details {
  margin-top: 18px;
  padding-top: 15px;
  border-top: 1px solid var(--line);
}
.period-card summary {
  cursor: pointer;
  color: var(--muted);
  font-size: 11px;
}
.period-card__months {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 12px;
}
.period-card__months a {
  background: var(--paper);
  padding: 5px 8px;
  font-size: 10px;
}
.chronology-index-callout h3 {
  font: 400 30px/1.25 var(--serif);
  margin: 8px 0 22px;
}
.chronology-index-search {
  display: flex;
  gap: 10px;
}
.chronology-index-search input {
  flex: 1;
  min-width: 0;
  padding: 13px 15px;
  border: 1px solid rgba(255, 255, 255, 0.25);
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
}
.site-content table {
  width: 100%;
  border-collapse: collapse;
  margin: 25px 0;
}
.site-content th,
.site-content td {
  padding: 12px;
  border-bottom: 1px solid var(--line);
  text-align: left;
}
.site-content input,
.site-content select,
.site-content textarea,
.site-content button {
  font: inherit;
}
.site-content > h2,
.site-content > h3 {
  font-family: var(--serif);
  font-weight: 400;
}
@media (max-width: 680px) {
  .chronology-intro {
    grid-template-columns: 1fr;
  }
  .chronology-index-search {
    flex-direction: column;
  }
}
[hidden] {
  display: none !important;
}
.glossary-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.glossary-card {
  background: #fff;
  border: 1px solid var(--line);
}
.glossary-card[open] {
  border-color: var(--gold);
  box-shadow: var(--shadow);
}
.glossary-card summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  cursor: pointer;
  padding: 20px 23px;
  list-style: none;
}
.glossary-card summary::-webkit-details-marker {
  display: none;
}
.glossary-card summary strong {
  font: 400 21px/1.25 var(--serif);
}
.glossary-card summary span {
  color: var(--red);
  font-size: 9px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.glossary-card[open] summary span:after {
  content: " moins";
}
.glossary-card__definition {
  padding: 0 23px 24px;
  color: #424c51;
  font:
    15px/1.75 Georgia,
    serif;
}
.glossary-card__definition > a {
  display: block;
  margin-top: 18px;
  font: 12px/1.5 var(--sans);
}
.glossary-definition {
  max-width: 900px;
  background: #fff;
  padding: clamp(28px, 5vw, 65px);
  border-top: 3px solid var(--red);
}
.glossary-definition h2 {
  font: 400 clamp(38px, 5vw, 62px) / 1.1 var(--serif);
  margin: 8px 0 30px;
}
.glossary-definition > div {
  font:
    17px/1.85 Georgia,
    serif;
  margin-bottom: 36px;
}
.glossary-missing {
  max-width: 780px;
  padding: 45px;
  background: var(--paper-2);
}
.glossary-missing h2 {
  font: 400 36px/1.2 var(--serif);
  margin: 10px 0;
}
.glossary-missing .button {
  margin-top: 20px;
}
.glossary-empty {
  text-align: center;
  background: var(--paper-2);
  padding: 35px;
  margin-top: 16px;
}
@media (max-width: 680px) {
  .glossary-grid {
    grid-template-columns: 1fr;
  }
  .glossary-card summary {
    padding: 18px;
  }
  .glossary-card__definition {
    padding: 0 18px 20px;
  }
}
.search-page-form {
  background: var(--ink);
  color: #fff;
  padding: clamp(24px, 4vw, 45px);
  margin-bottom: 45px;
}
.search-page-form > label {
  display: block;
  font: 400 27px/1.2 var(--serif);
  margin-bottom: 18px;
}
.search-page-form__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 190px auto;
  gap: 10px;
}
.search-page-form input,
.search-page-form select {
  width: 100%;
  border: 1px solid rgba(255, 255, 255, 0.22);
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
  padding: 13px 15px;
}
.search-page-form select option {
  color: var(--ink);
}
.search-page-form > p {
  color: rgba(255, 255, 255, 0.5);
  font-size: 10px;
  margin: 12px 0 0;
}
.search-start {
  padding: clamp(28px, 5vw, 60px);
  background: var(--paper-2);
}
.search-start > h2,
.search-message h2 {
  font: 400 clamp(34px, 4vw, 52px) / 1.15 var(--serif);
  margin: 10px 0 30px;
}
.search-start__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;  background: var(--line);
}
.search-start__grid > div {
  background: var(--paper);
  padding: 25px;
}
.search-start__grid strong {
  font: 400 21px/1.2 var(--serif);
}
.search-start__grid p {
  font-size: 12px;
  color: var(--muted);
}
.search-message {
  background: var(--paper-2);
  border-left: 3px solid var(--gold);
  padding: clamp(28px, 5vw, 55px);
}
.search-overview {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 25px;
  align-items: end;
  border-bottom: 1px solid var(--ink);
  padding-bottom: 28px;
}
.search-overview h2 {
  font: 400 clamp(36px, 5vw, 60px) / 1.1 var(--serif);
  margin: 0;
}
.search-overview > strong {
  font: 400 22px/1.2 var(--serif);
}
.search-overview nav {
  grid-column: 1/-1;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.search-overview nav a {
  display: flex;
  gap: 7px;
  background: var(--paper-2);
  color: var(--ink);
  padding: 9px 13px;
  font-size: 11px;
}
.search-overview nav a:hover {
  background: var(--ink);
  color: #fff;
  text-decoration: none;
}
.search-results-section {
  padding: 65px 0;
  border-bottom: 1px solid var(--line);
  scroll-margin-top: 105px;
}
.search-results-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 30px;
  margin-bottom: 27px;
}
.search-results-heading h2 {
  font: 400 clamp(34px, 4vw, 50px) / 1.1 var(--serif);
  margin: 0;
}
.search-results-heading > span {
  font-size: 11px;
  color: var(--muted);
}
.search-event-list {
  border-top: 1px solid var(--line);
}
.search-event-card {
  display: grid;
  grid-template-columns: 145px 1fr;
  gap: 30px;
  padding: 27px 0;
  border-bottom: 1px solid var(--line);
}
.search-event-card__date {
  display: flex;
  align-items: baseline;
  gap: 9px;
}
.search-event-card__date strong {
  font: 400 40px/1 var(--serif);
  color: var(--red);
}
.search-event-card__date span {
  font-size: 11px;
  color: var(--muted);
}
.search-event-card > div:last-child > p:not(.eyebrow) {
  font:
    15px/1.75 Georgia,
    serif;
  margin: 0 0 12px;
}
.search-event-card a,
.search-person-card a,
.search-glossary-card a {
  font-size: 11px;
  font-weight: 700;
}
.search-pagination {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 25px;
}
.search-pagination a,
.search-pagination span {
  display: grid;
  place-items: center;
  min-width: 36px;
  height: 36px;
  padding: 0 8px;
  background: var(--paper-2);
  color: var(--ink);
  font-size: 11px;
}
.search-pagination span {
  background: var(--ink);
  color: #fff;
}
.search-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 15px;
}
.search-person-card,
.search-glossary-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  padding: 25px;
  min-height: 280px;
}
.search-person-card h3,
.search-glossary-card h3 {
  font: 400 24px/1.25 var(--serif);
  margin: 4px 0 9px;
}
.search-person-card > strong {
  font-size: 11px;
  color: var(--red);
}
.search-person-card > p:not(.eyebrow),
.search-glossary-card > p {
  color: var(--muted);
  font-size: 12px;
}
.search-person-card > a,
.search-glossary-card > a {
  margin-top: auto;
}
.search-section-empty {
  background: var(--paper-2);
  padding: 25px;
  color: var(--muted);
}
.timeline-event:target {
  background: rgba(188, 143, 82, 0.15);
  box-shadow: 0 0 0 12px rgba(188, 143, 82, 0.15);
}
@media (max-width: 780px) {
  .search-page-form__row {
    grid-template-columns: 1fr;
  }
  .search-start__grid,
  .search-card-grid {
    grid-template-columns: 1fr;
  }
  .search-event-card {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .search-overview {
    grid-template-columns: 1fr;
  }
  .search-overview nav {
    grid-column: 1;
  }
  .search-results-heading {
    align-items: flex-start;
    flex-direction: column;
  }
}
.search-summary {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 30px;
  padding: 5px 0 30px;
}
.search-summary h2 {
  font: 400 clamp(40px, 5vw, 62px) / 1.05 var(--serif);
  margin: 0;
}
.search-summary__total {
  text-align: right;
}
.search-summary__total strong,
.search-summary__total span {
  display: block;
}
.search-summary__total strong {
  font: 400 34px/1 var(--serif);
  color: var(--red);
}
.search-summary__total span {
  color: var(--muted);
  font-size: 10px;
  margin-top: 6px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
}
.search-tabs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border: 1px solid var(--line);
  margin-bottom: 0;
}
.search-tabs a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  padding: 19px 22px;
  color: var(--ink);
  background: rgba(255, 255, 255, 0.35);
  border-right: 1px solid var(--line);
}
.search-tabs a:last-child {
  border-right: 0;
}
.search-tabs a:hover {
  background: var(--paper-2);
  text-decoration: none;
}
.search-tabs a.active {
  background: var(--ink);
  color: #fff;
}
.search-tabs a span {
  font-size: 12px;
  font-weight: 700;
}
.search-tabs a b {
  display: grid;
  place-items: center;
  min-width: 32px;
  height: 32px;
  padding: 0 8px;
  border-radius: 18px;
  background: var(--paper-2);
  color: var(--ink);
  font-size: 11px;
}
.search-tabs a.active b {
  background: var(--red);
  color: #fff;
}
.search-active-results {
  background: var(--paper-2);
  padding: clamp(24px, 4vw, 52px);
  border: 1px solid var(--line);
  border-top: 0;
}
.search-active-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 30px;
  margin-bottom: 28px;
}
.search-active-heading h2 {
  font: 400 clamp(34px, 4vw, 48px) / 1.1 var(--serif);
  margin: 0;
}
.search-active-heading > p {
  color: var(--muted);
  font-size: 11px;
  margin: 0;
}
.search-event-list--cards {
  display: grid;
  gap: 12px;
  border-top: 0;
}
.search-result-card {
  border: 1px solid rgba(24, 33, 38, 0.1);
  box-shadow: 0 8px 20px rgba(24, 33, 38, 0.045);
  transition: 0.18s;
}
.search-result-card:hover {
  border-color: var(--gold);
  transform: translateY(-1px);
}
.search-event-list--cards .search-event-card {
  background: #fff;
  padding: 24px 27px;
  border-bottom: 0;
  grid-template-columns: 125px 1fr;
}
.search-event-list--cards .search-event-card__date {
  align-items: center;
}
.search-event-list--cards .search-event-card__date strong {
  font-size: 46px;
}
.search-event-list--cards .search-event-card__date span {
  line-height: 1.45;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.search-card-grid .search-result-card {
  min-height: 290px;
}
.search-pagination--compact {
  align-items: center;
  margin-top: 30px;
}
.search-pagination--compact .search-pagination__direction {
  width: auto;
  padding: 0 14px;
}
.search-pagination__ellipsis {
  background: transparent !important;
  color: var(--muted) !important;
}
.search-section-empty {
  margin: 0;
}
.mot-recherche {
  box-shadow: inset 0 -0.55em rgba(240, 217, 168, 0.78);
  background: transparent;
  padding: 0;
  font-weight: 700;
}
@media (max-width: 680px) {
  .search-summary {
    align-items: flex-start;
    flex-direction: column;
  }
  .search-summary__total {
    text-align: left;
  }
  .search-tabs {
    grid-template-columns: 1fr;
  }
  .search-tabs a {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }
  .search-tabs a:last-child {
    border-bottom: 0;
  }
  .search-active-heading {
    align-items: flex-start;
    flex-direction: column;
  }
  .search-active-results {
    padding: 22px 16px;
  }
  .search-event-list--cards .search-event-card {
    grid-template-columns: 1fr;
    padding: 21px;
  }
  .search-pagination--compact {
    justify-content: center;
  }
}
.editorial-intro {
  display: grid;
  grid-template-columns: minmax(250px, 0.65fr) minmax(0, 1.35fr);
  gap: 45px;
  align-items: end;
  padding: 0 0 45px;
  border-bottom: 1px solid var(--ink);
  margin-bottom: 42px;
}
.editorial-intro .eyebrow {
  grid-column: 1/-1;
}
.editorial-intro h2 {
  font: 400 clamp(38px, 5vw, 62px) / 1.08 var(--serif);
  margin: 0;
}
.editorial-intro > p:last-child {
  color: var(--muted);
  font:
    16px/1.7 Georgia,
    serif;
  margin: 0;
}
.editorial-intro--compact {
  margin-bottom: 30px;
}
.source-groups {
  display: grid;
  gap: 22px;
}
.source-group {
  background: #fff;
  border: 1px solid var(--line);
}
.source-group > header {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 22px;
  padding: 28px;
  border-bottom: 1px solid var(--line);
}
.source-group > header > span {
  font: 400 38px/1 var(--serif);
  color: var(--red);
}
.source-group h2 {
  font: 400 28px/1.2 var(--serif);
  margin: 0 0 5px;
}
.source-group header p {
  color: var(--muted);
  font-size: 12px;
  margin: 0;
}
.source-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}
.source-list article {
  padding: 23px 28px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.source-list article:nth-child(2n) {
  border-right: 0;
}
.source-list h3 {
  font: 400 19px/1.3 var(--serif);
  margin: 0 0 5px;
}
.source-list p {
  color: var(--red);
  font-size: 10px;
  margin: 0;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}
.editorial-note {
  display: grid;
  grid-template-columns: 0.45fr 1fr;
  gap: 30px;
  margin-top: 35px;
  padding: 28px;
  background: var(--paper-2);
}
.editorial-note strong {
  font: 400 22px/1.3 var(--serif);
}
.editorial-note p {
  color: var(--muted);
  margin: 0;
}
.external-link-grid {
  display: grid;
  gap: 16px;
}
.external-link-card {
  display: grid;
  grid-template-columns: minmax(220px, 0.42fr) minmax(0, 1fr);
  background: #fff;
  border: 1px solid var(--line);
}
.external-link-card__visual {
  min-height: 190px;
  display: grid;
  place-items: center;
  background: var(--ink);
  padding: 25px;
  overflow: hidden;
}
.external-link-card__visual img {
  max-height: 140px;
  object-fit: contain;
}
.external-link-card__visual > span {
  font: clamp(70px, 10vw, 130px) / 1 var(--serif);
  color: rgba(255, 255, 255, 0.13);
}
.external-link-card__body {
  padding: 30px 36px;
}
.external-link-card__body h2 {
  font: 400 28px/1.2 var(--serif);
  margin: 5px 0 12px;}
.external-link-card__body > p:not(.eyebrow) {
  color: var(--muted);
  max-width: 720px;
}
.external-link-card__body > a {
  font-size: 12px;
  font-weight: 700;
}
.link-project-callout {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 35px;
  background: var(--paper-2);
  padding: 35px;
  margin-top: 38px;
}
.link-project-callout h2 {
  font: 400 27px/1.25 var(--serif);
  margin: 0;
}
.link-asset-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}
.link-asset-card {
  background: #fff;
  border: 1px solid var(--line);
  padding: 27px;
  display: flex;
  flex-direction: column;
}
.link-asset-card > header {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: start;
}
.link-asset-card h2 {
  font: 400 24px/1.2 var(--serif);
  margin: 0;
}
.link-asset-card > header > span {
  color: var(--muted);
  font-size: 10px;
}
.link-asset-preview {
  min-height: 130px;
  display: grid;
  place-items: center;
  background: var(--paper-2);
  margin: 22px 0;
  padding: 20px;
  overflow: auto;
}
.link-asset-preview img {
  max-width: 100%;
  width: auto;
}
.link-asset-card > label {
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--muted);
  margin-bottom: 7px;
}
.link-asset-card textarea {
  width: 100%;
  resize: vertical;
  border: 1px solid var(--line);
  background: #f8f6f1;
  padding: 12px;
  font:
    11px/1.45 Consolas,
    monospace;
}
.copy-button {
  align-self: flex-start;
  border: 0;
  background: var(--ink);
  color: #fff;
  padding: 10px 14px;
  margin-top: 10px;
  font-size: 11px;
}
.copy-button:hover,
.copy-button.copied {
  background: var(--red);
}
.error-panel {
  display: grid;
  grid-template-columns: minmax(220px, 0.65fr) minmax(0, 1.35fr);
  min-height: 440px;
  background: var(--ink);
  color: #fff;
  overflow: hidden;
}
.error-panel__code {
  display: grid;
  place-items: center;
  background: var(--red);
  font: clamp(90px, 14vw, 190px) / 1 var(--serif);
  color: rgba(255, 255, 255, 0.86);
}
.error-panel > div {
  padding: clamp(35px, 6vw, 75px);
  align-self: center;
}
.error-panel h2 {
  font: 400 clamp(36px, 5vw, 62px) / 1.08 var(--serif);
  margin: 8px 0 18px;
}
.error-panel > div > p:not(.eyebrow) {
  color: rgba(255, 255, 255, 0.65);
  max-width: 650px;
}
.error-panel .button {
  margin-top: 18px;
}
.error-search {
  display: flex;
  max-width: 620px;
  margin-top: 25px;
}
.error-search input {
  flex: 1;
  min-width: 0;
  border: 1px solid rgba(255, 255, 255, 0.22);
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
  padding: 13px;
}
.error-panel nav {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  margin-top: 25px;
}
.error-panel nav a {
  color: #d4b17d;
  font-size: 12px;
}
.site-footer__nav {
  display: flex;
  gap: 18px;
}
.site-footer__nav a {
  color: rgba(255, 255, 255, 0.65);
  font-size: 10px;
}
@media (max-width: 760px) {
  .editorial-intro,
  .editorial-note {
    grid-template-columns: 1fr;
  }
  .source-list {
    grid-template-columns: 1fr;
  }
  .source-list article {
    border-right: 0;
  }
  .external-link-card {
    grid-template-columns: 1fr;
  }
  .external-link-card__visual {
    min-height: 150px;
  }
  .link-project-callout {
    align-items: flex-start;
    flex-direction: column;
  }
  .link-asset-grid {
    grid-template-columns: 1fr;
  }
  .error-panel {
    grid-template-columns: 1fr;
  }
  .error-panel__code {
    min-height: 190px;
  }
  .error-search {
    flex-direction: column;
  }
  .site-footer__nav {
    flex-wrap: wrap;
  }
}
.today-overview {
  display: grid;
  grid-template-columns: minmax(280px, 0.65fr) minmax(0, 1.35fr);
  background: var(--ink);
  color: #fff;
  min-height: 460px;
  margin-bottom: 18px;
}
.today-calendar {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: var(--red);
  position: relative;
  overflow: hidden;
}
.today-calendar:before {
  content: "";
  position: absolute;
  inset: 25px;
  border: 1px solid rgba(255, 255, 255, 0.24);
}
.today-calendar strong {
  font: clamp(110px, 15vw, 210px) / 0.8 var(--serif);
  font-weight: 400;
  position: relative;
}
.today-calendar span {
  font: 400 clamp(27px, 4vw, 48px) / 1 var(--serif);
  position: relative;
  margin-top: 25px;
}
.today-overview__content {
  padding: clamp(38px, 6vw, 78px);
  align-self: center;
}
.today-overview__content h2 {
  font: 400 clamp(42px, 5vw, 70px) / 1.03 var(--serif);
  margin: 12px 0 22px;
}
.today-overview__content > p:not(.eyebrow) {
  color: rgba(255, 255, 255, 0.63);
  max-width: 730px;
  font:
    16px/1.75 Georgia,
    serif;
}
.today-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin: 38px 0 0;
  border-top: 1px solid rgba(255, 255, 255, 0.16);
}
.today-stats > div {
  padding: 19px 15px 0 0;
}
.today-stats dt {
  font-size: 8px;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: rgba(255, 255, 255, 0.5);
}
.today-stats dd {
  font: 400 25px/1.2 var(--serif);
  margin: 5px 0 0;
  color: #d4b17d;
}
.today-controls {
  border: 1px solid var(--line);
  margin-bottom: 55px;
}
.today-adjacent {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  background: var(--paper-2);
  border-bottom: 1px solid var(--line);
}
.today-adjacent > a {
  display: flex;
  flex-direction: column;
  padding: 17px 21px;
  color: var(--ink);
}
.today-adjacent > a:last-child {
  text-align: right;
  align-items: flex-end;
}
.today-adjacent > a:hover {
  background: #fff;
  text-decoration: none;
}
.today-adjacent span {
  font-size: 8px;
  text-transform: uppercase;
  letter-spacing: 0.13em;
  color: var(--muted);
}
.today-adjacent strong {
  font: 400 17px/1.3 var(--serif);
  margin-top: 3px;
}
.today-adjacent .today-adjacent__current {
  align-self: center;
  justify-content: center;
  padding: 12px 22px;
  color: var(--red);
  font-size: 10px;
  text-align: center;
}
.today-date-form {
  display: flex;
  align-items: end;
  justify-content: flex-end;
  gap: 12px;
  padding: 18px 20px;
}
.today-date-form label {
  min-width: 135px;
}
.today-date-form label span {
  display: block;
  color: var(--muted);
  font-size: 8px;
  text-transform: uppercase;
  letter-spacing: 0.13em;
  margin-bottom: 5px;
}
.today-date-form select {
  width: 100%;
  border: 1px solid var(--line);
  background: #fff;
  color: var(--ink);
  padding: 10px 12px;
}
.today-date-form .button {
  padding: 11px 18px;
}
.today-history {
  display: grid;
  grid-template-columns: 190px minmax(0, 1fr);
  gap: 55px;
  align-items: start;
}
.today-year-index {
  position: sticky;
  top: 110px;
  border-top: 1px solid var(--ink);
  padding-top: 22px;
}
.today-year-index > strong {
  font: 400 25px/1.2 var(--serif);
}
.today-year-index nav {
  margin-top: 17px;
  border-top: 1px solid var(--line);
}
.today-year-index nav a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: var(--ink);
  padding: 10px 0;
  border-bottom: 1px solid var(--line);
}
.today-year-index nav a:hover {
  color: var(--red);
  text-decoration: none;
  padding-left: 5px;
}
.today-year-index nav small {
  display: grid;
  place-items: center;
  min-width: 25px;
  height: 25px;
  border-radius: 15px;
  background: var(--paper-2);
  font-size: 9px;
}
.today-years {
  border-top: 1px solid var(--ink);
}
.today-year {
  display: grid;
  grid-template-columns: 145px minmax(0, 1fr);
  border-bottom: 1px solid var(--line);
  scroll-margin-top: 105px;
}
.today-year > header {
  position: relative;
  padding: 30px 25px 30px 0;
  border-right: 1px solid var(--line);
}
.today-year > header h2 {
  position: sticky;
  top: 112px;
  font: 400 36px/1 var(--serif);
  margin: 4px 0 8px;
}
.today-year > header > span {
  color: var(--muted);
  font-size: 9px;
}
.today-year__events {
  padding: 7px 0 7px 34px;
}
.today-history-event {
  display: grid;
  grid-template-columns: minmax(145px, 0.25fr) minmax(0, 1fr);
  gap: 28px;
  padding: 27px 0;
  border-bottom: 1px solid var(--line);
}
.today-history-event:last-child {
  border-bottom: 0;
}
.today-history-event__place > span {
  display: block;
  color: var(--red);
  font-size: 8px;
  text-transform: uppercase;
  letter-spacing: 0.15em;
}
.today-history-event__place > strong {
  display: block;
  font-size: 12px;
  margin-top: 8px;
}
.today-history-event__place img {
  width: 27px;
  height: 18px;
  object-fit: cover;
  vertical-align: middle;
  margin-right: 7px;
}
.today-history-event__place .drapeaux {
  width: 27px;
  height: 18px;
  float: none;
}
.today-history-event__body {
  color: #3f494e;
  font:
    15px/1.75 Georgia,
    serif;
}
.today-history-event__body > p:first-child {
  margin-top: 0;
}
.today-history-event__body > a {
  display: inline-block;
  margin-top: 13px;
  font: 700 10px/1.5 var(--sans);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.today-empty {
  max-width: 850px;
  background: var(--paper-2);
  padding: clamp(35px, 6vw, 70px);
}
.today-empty h2 {
  font: 400 clamp(36px, 5vw, 58px) / 1.1 var(--serif);
  margin: 8px 0 18px;
}
.today-empty > p:not(.eyebrow) {
  color: var(--muted);
  max-width: 620px;
}
.today-empty .button {
  margin-top: 20px;
}
@media (max-width: 820px) {
  .today-overview {
    grid-template-columns: 1fr;
  }
  .today-calendar {
    min-height: 300px;
  }
  .today-history {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .today-year-index {
    position: static;
  }
  .today-year-index nav {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    border-top: 0;
  }
  .today-year-index nav a {
    gap: 10px;
    padding: 8px 11px;
    border: 1px solid var(--line);
    background: var(--paper-2);
  }
  .today-year-index nav a:hover {
    padding-left: 11px;
  }
  .today-adjacent {
    grid-template-columns: 1fr 1fr;
  }
  .today-adjacent .today-adjacent__current {
    grid-column: 1/-1;
    grid-row: 2;
  }
  .today-date-form {
    justify-content: stretch;
  }  .today-date-form label {
    flex: 1;
  }
}
@media (max-width: 580px) {
  .today-calendar {
    min-height: 240px;
  }
  .today-calendar strong {
    font-size: 110px;
  }
  .today-calendar span {
    font-size: 30px;
  }
  .today-overview__content {
    padding: 32px 24px;
  }
  .today-stats {
    grid-template-columns: 1fr;
  }
  .today-stats > div {
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    padding-bottom: 13px;
  }
  .today-adjacent > a {
    padding: 14px;
  }
  .today-adjacent strong {
    font-size: 14px;
  }
  .today-date-form {
    align-items: stretch;
    flex-direction: column;
  }
  .today-date-form label {
    width: 100%;
  }
  .today-year {
    grid-template-columns: 1fr;
  }
  .today-year > header {
    padding: 25px 0 13px;
    border-right: 0;
  }
  .today-year > header h2 {
    position: static;
    font-size: 42px;
  }
  .today-year__events {
    padding: 0;
  }
  .today-history-event {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .today-history-event__body {
    font-size: 14px;
  }
}
.period-overview {
  display: grid;
  grid-template-columns: minmax(280px, 0.68fr) minmax(0, 1.32fr);
  min-height: 500px;
  background: var(--ink);
  color: #fff;
  margin-bottom: 65px;
}
.period-overview__visual {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background: var(--red);
  padding: 35px;
  text-align: center;
}
.period-overview__visual:before {
  content: "";
  position: absolute;
  inset: 26px;
  border: 1px solid rgba(255, 255, 255, 0.24);
}
.period-overview__visual span,
.period-overview__visual strong {
  position: relative;
}
.period-overview__visual span {
  font-size: 9px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.65);
}
.period-overview__visual strong {
  font: 400 clamp(45px, 7vw, 92px) / 1 var(--serif);
  margin-top: 25px;
  overflow-wrap: anywhere;
}
.period-overview__content {
  align-self: center;
  padding: clamp(38px, 6vw, 75px);
}
.period-overview__content h2 {
  font: 400 clamp(38px, 5vw, 64px) / 1.05 var(--serif);
  margin: 10px 0 22px;
}
.period-overview__content > p:not(.eyebrow) {
  color: rgba(255, 255, 255, 0.64);
  font:
    16px/1.75 Georgia,
    serif;
  max-width: 750px;
}
.period-overview__content ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 30px;
  list-style: none;
  padding: 22px 0 0;
  margin: 28px 0 0;
  border-top: 1px solid rgba(255, 255, 255, 0.15);
}
.period-overview__content li {
  position: relative;
  padding: 9px 0 9px 16px;
  color: rgba(255, 255, 255, 0.75);
  font-size: 11px;
}
.period-overview__content li:before {
  content: "";
  position: absolute;
  left: 0;
  top: 17px;
  width: 5px;
  height: 5px;
  background: var(--gold);
}
.period-entry-section > header {
  display: grid;
  grid-template-columns: minmax(260px, 0.75fr) minmax(0, 1.25fr);
  gap: 50px;
  align-items: end;
  margin-bottom: 28px;
}
.period-entry-section > header h2 {
  font: 400 clamp(38px, 5vw, 60px) / 1.08 var(--serif);
  margin: 8px 0 0;
}
.period-entry-section > header > p {
  color: var(--muted);
  max-width: 650px;
  margin: 0;
}
.period-entry-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
}
.period-entry-grid > a {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 190px;
  padding: 25px;
  background: var(--paper-2);
  color: var(--ink);
  transition: 0.2s;
}
.period-entry-grid > a:hover {
  z-index: 1;
  background: #fff;
  text-decoration: none;
  box-shadow: var(--shadow);
  transform: translateY(-2px);
}
.period-entry-grid small {
  font-size: 8px;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--red);
}
.period-entry-grid strong {
  font: 400 27px/1.2 var(--serif);
  margin-top: 14px;
}
.period-entry-grid span {
  margin-top: auto;
  align-self: flex-end;
  color: var(--muted);
  font-size: 10px;
}
.period-entry-grid--single {
  grid-template-columns: minmax(260px, 520px);
  background: transparent;
  border: 0;
}
.period-entry-grid--single > a {
  min-height: 210px;
  background: var(--paper-2);
  border: 1px solid var(--line);
}
.period-adjacent {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: stretch;
  margin-top: 55px;
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--line);
}
.period-adjacent > a {
  display: flex;
  flex-direction: column;
  padding: 20px;
  color: var(--ink);
}
.period-adjacent > a:last-child {
  text-align: right;
  align-items: flex-end;
}
.period-adjacent > a:hover {
  background: var(--paper-2);
  text-decoration: none;
}
.period-adjacent > a span {
  font-size: 8px;
  text-transform: uppercase;
  letter-spacing: 0.13em;
  color: var(--muted);
}
.period-adjacent > a strong {
  font: 400 20px/1.25 var(--serif);
  margin-top: 4px;
}
.period-adjacent .period-adjacent__index {
  justify-content: center;
  color: var(--red);
  font-size: 10px;
  text-align: center;
}
@media (max-width: 900px) {
  .period-overview {
    grid-template-columns: 1fr;
  }
  .period-overview__visual {
    min-height: 300px;
  }
  .period-entry-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 680px) {
  .period-overview__visual {
    min-height: 245px;
  }
  .period-overview__content {
    padding: 32px 24px;
  }
  .period-overview__content ul {
    grid-template-columns: 1fr;
  }
  .period-entry-section > header {
    grid-template-columns: 1fr;
    gap: 18px;
  }
  .period-entry-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .period-entry-grid > a {
    min-height: 155px;
    padding: 20px;
  }
  .period-entry-grid--single {
    grid-template-columns: 1fr;
  }
  .period-adjacent {
    grid-template-columns: 1fr 1fr;
  }
  .period-adjacent .period-adjacent__index {
    grid-column: 1/-1;
    grid-row: 2;
  }
  .period-adjacent > span {
    display: none;
  }
}

/* Biographies : résumé SQL distinct, corps HTML structuré et photo facultative. */
.bio-photo-missing {
  display: grid;
  width: 100%;
  max-width: 290px;
  aspect-ratio: 4 / 5;
  place-content: center;
  gap: 12px;
  background:
    linear-gradient(145deg, rgba(168, 65, 50, 0.88), rgba(24, 33, 38, 0.96)),
    var(--ink);
  color: #fff;
  text-align: center;
}

.bio-photo-missing span {
  font: 400 64px/1 var(--serif);
  letter-spacing: 0.08em;
}

.bio-photo-missing small {
  color: rgba(255, 255, 255, 0.64);
  font-size: 9px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.bio-summary h2 {
  margin-bottom: 10px;
}

.bio-summary > div {
  color: #3f494e;
  font:
    16px/1.75 Georgia,
    serif;
}

.bio-summary > div > :first-child,
.bio-content > :first-child {
  margin-top: 0;
}

.bio-summary > div > :last-child,
.bio-content > :last-child {
  margin-bottom: 0;
}

.bio-toc > div {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 25px;
}

.bio-toc a {
  border-bottom: 1px solid var(--line);
}

.bio-toc__subitem {
  padding-left: 16px !important;
  color: var(--muted);
}

.bio-content h2 {
  margin: 46px 0 14px;
  scroll-margin-top: 110px;
  font: 400 30px/1.25 var(--serif);
  color: var(--ink);
}

.bio-content h3 {
  margin: 30px 0 10px;
  scroll-margin-top: 110px;
  font: 400 21px/1.3 var(--serif);
  color: var(--red-dark);
}

.bio-content p {
  margin: 0 0 20px;
}

.bio-content ul,
.bio-content ol {
  margin: 0 0 24px;
  padding-left: 24px;
}

.bio-content li {
  margin-bottom: 8px;
}

.bio-content a.source {
  word-break: break-word;
}

@media (max-width: 860px) {
  .page-home .feature-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bio-layout {
    grid-template-columns: 235px minmax(0, 1fr);
    gap: 35px;
  }
}

@media (max-width: 680px) {
  .page-home .feature-grid {
    grid-template-columns: 1fr;
  }

  .bio-layout {
    grid-template-columns: 1fr;
  }

  .bio-photo-missing {
    max-width: 240px;
  }

  .bio-toc > div {
    grid-template-columns: 1fr;
  }

  .bio-content {
    font-size: 16px;
  }

  .bio-content h2 {
    font-size: 26px;
    scroll-margin-top: 85px;
  }

  .bio-content h3 {
    font-size: 20px;
    scroll-margin-top: 85px;
  }
}


/* Chronologie illustrée : adaptation mobile */
@media (max-width: 680px) {
  .timeline-event__body.has-media {
    display: block;
  }

  .timeline-event__media {
    margin-bottom: 18px;
  }

  .timeline-event__media img {
    width: 100%;
    aspect-ratio: 3 / 2;
  }

  .timeline-event__caption {
    font-size: 11px;
  }

  .timeline-event__credits {
    font-size: 9px;
  }
}
