
body {
    font-family: "Libre Baskerville", "PT Serif", "Merriweather", "Source Serif 4", Georgia, "Times New Roman", serif;
    line-height: 1.6;
    padding: 0;
    margin: 0;
    background-color: #f8f9fa;
}

.menu {
    background-color: #000;
    color: white;
    padding: 15px 0;
    margin: 0;
    width: 100%;
}

.menu-content {
    padding: 0 20px;
}

.back-link {
    display: inline-block;
    color: white;
    text-decoration: none;
    margin: 0;
}

.back-link:hover {
    text-decoration: underline;
}

.header {
    padding: 0;
    margin: 0;
    width: 100%;
    background-color: #f8f9fa;
}

.header-inner {
    max-width: 800px;
    margin: 0 auto;
    padding: 0 20px;
}

.header-content {
    width: 100%;
    padding: 20px 0 0 20px;;
    background-color: #f8f9fa;
}

h2 {
    font-size: 26px;
    font-weight: bold;
    margin: 0 0 0 18px;
    background-color: #f8f9fa;
    font-family: "Libre Baskerville", "PT Serif", "Merriweather", "Source Serif 4", Georgia, "Times New Roman", serif;
}

.content-wrapper {
    max-width: 800px;
    margin: 0 auto;
    padding: 20px;
}

.map-section {
    width: 100%;
    background-color: #f8f9fa;
    padding: 0; 
    margin: 0;
}

#map-container {
    width: 100%;
    height: 400px;
    margin: 0 auto;
}

.main-image {
    width: 300px;
    height: 300px;
    float: left;
    border-radius: 2px;
    margin: 0 20px 0 0;
}
.metadata {
    color: #666;
    font-size: 0.9em;
}
.key-points {
    background-color: #f8f9fa;
    padding: 0px;
    border-radius: 8px;
}
.back-link {
    display: inline-block;
    margin-bottom: 0px;
    color: #0066cc;
    text-decoration: none;
}
.flags-container {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 0px;
}
.flag-icon {
    width: 30px;
    height: 20px;
    object-fit: cover;
    border-radius: 4px;
    border: 1px solid #ddd;
}
.flag-link {
    transition: transform 0.2s;
}
.flag-link:hover {
    transform: scale(1.1);
}
.article-summary {
    font-family: "Libre Baskerville", "PT Serif", "Merriweather", "Source Serif 4", Georgia, "Times New Roman", serif;
    line-height: 1.5;
    margin: 0 0;
    padding: 20px;
    background-color: #f8f9fa;
    border-radius: 8px;
    overflow: hidden;
}
.cluster-section {
    margin-bottom: 10px;
    padding: 0px;
    border-left: 3px solid transparent;
}
.cluster-description {
    font-family: "Libre Baskerville", "PT Serif", "Merriweather", "Source Serif 4", Georgia, "Times New Roman", serif;
    line-height: 1.5;
    text-indent: 1em;
    margin: 0 0 0 18px;
}
.cluster-title {
    font-family: "Libre Baskerville", "PT Serif", "Merriweather", "Source Serif 4", Georgia, "Times New Roman", serif;
    margin: 10px 0 15px 0;
    font-size: 18px;
    font-weight: bold;
    color: #333;
    display: block;
    width: 100%;
    padding: 6px 12px;

}
.country-section {
    margin-bottom: 15px;
    padding: 10px;
    background-color: #ffffff;
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}
.country-header {
    display: flex;
    align-items: center;
    margin-bottom: 8px;
}
.country-name {
    margin-left: 10px;
    font-weight: bold;
    color: #333;
}
.article-list {
    list-style: none;
    padding-left: 40px;
    margin: 0;
}
.article-link {
    color: #0066cc;
    text-decoration: none;
    line-height: 1.4;
}
.article-link:hover {
    text-decoration: underline;
}
.sources-section {
    margin-bottom: 15px;
    border-bottom: 1px solid #eee;
    padding-top: 10px;
}

.expand-button {
    background: none;
    border: none;
    color: #0066cc;
    cursor: pointer;
    padding: 5px 18px;
    font-size: 0.9em;
    display: block;
    width: 100%;
    text-align: left;
}

.expand-button:hover {
    background-color: #f0f0f0;
    border-radius: 4px;
}

.sources-content {
    margin-top: 5px;
    padding-bottom: 20px; 
    transition: all 0.3s ease-out;
    overflow: hidden;
    max-height: 1000px;  
}

.hidden {
    max-height: 0;
    margin: 0;
    padding-top: 0;
    padding-bottom: 0;  
    opacity: 0;
    overflow: hidden;
    visibility: hidden;
}
.sources-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.source-item {
    display: flex;
    align-items: center;
    gap: 10px;
}

.flag-icon {
    width: 24px;
    height: 16px;
    object-fit: cover;
    border-radius: 2px;
    border: 1px solid #ddd;
    flex-shrink: 0;
}

.article-link {
    color: #0066cc;
    text-decoration: none;
    line-height: 1.4;
    flex-grow: 1;
    font-size: 12px;
}

.article-link:hover {
    text-decoration: underline;
}
/* 1) Quand ouvert : ne pas tronquer, afficher tout */
.sources-content {
  /* on supprime la contrainte qui coupait la fin de liste */
  max-height: none !important;
  overflow: visible !important;
}

/* 2) Quand fermé : retirer complètement du flux (pas d’espace réservé)
   et neutraliser le padding inline via !important */
.sources-content.hidden {
  display: none !important;
  padding: 0 !important;
  margin: 0 !important;
  visibility: hidden; /* facultatif */
  opacity: 0;         /* facultatif */
}

.chapitre::first-letter{
  float: left;             /* fait descendre la lettre sur plusieurs lignes */
  font-size: 4rem;         /* taille de la lettrine */
  line-height: 0.9;        /* ajuste la hauteur visuelle */
  font-weight: 700;        /* gras (facultatif) */
  margin: 0 .4rem 0 0;     /* espace entre la lettrine et le texte */
  color: #222;             /* couleur */
}
@media (max-width: 480px){
  .chapitre::first-letter{ float:none; font-size:inherit; margin:0; }
}

/* --- Fix ratio + responsive pour l'image de tête --- */
/* L'image garde son ratio: largeur fluide, hauteur auto */
img.main-image {
  display: block;
  width: 100%;
  max-width: 340px;   /* ou 40% si tu préfères */
  height: auto;       /* clé: ratio respecté */
  float: left;
  border-radius: 2px;
  margin: 0 20px 12px 0;
}

/* Mobile: supprimer TOUT le retrait latéral du 1er bloc texte */
@media (max-width: 680px){
  .header-inner{
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  .header-content{
    padding-left: 0 !important;
    padding-right: 0 !important;
    border-radius: 0; /* option: pour coller vraiment bord à bord */
  }
  .article-summary{
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 2px !important;
    margin-right: 0 !important;
  }
  .cluster-description {
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 2px !important;
    margin-right: 0 !important;
  }
  .content-wrapper{
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  .cluster-section {
    padding-left: 0 !important;
    margin-left: 0 !important;
  }
  .cluster-title {
    padding-left: 0 !important;
    margin-left: 2px !important;
  }
}

/* Gouttière commune pour aligner header-content et cluster-description */
:root { --ds-gutter-x: 20px; }

/* Applique la même gouttière au bloc des clusters (texte et listes) */
.cluster-section { padding: 0 var(--ds-gutter-x); }    /* aligne le <p class="cluster-description"> */

/* Mobile: on conserve l'affichage bord à bord demandé précédemment */
@media (max-width: 680px){
  :root { --ds-gutter-x: 0px; }
  /* (si besoin, tu peux laisser 8–12px au lieu de 0) */
}

   /* ===== Bandes plein écran ===== */
    .band { width: 100%; margin: 0; padding: 0; }
    .band--title { background: #f8f9fa; border-top: 1px solid #eee; }
    .band--chart { background: #fff; border-top: 1px solid #eee; border-bottom: 1px solid #eee; }

    /* Coquille commune pour aligner les titres et centrer les contenus */
    .content-shell {
      width: 100%;
      max-width: 1400px;     /* largeur max sur grands écrans */
      margin: 0 auto;
      box-sizing: border-box;
    }
    /* Padding spécifique des sections */
    .band--title .content-shell { padding: 28px 16px 18px; }
    .band--chart .content-shell--wide    { padding: 0px; }
    .band--chart .content-shell--history { padding: 20px 16px 40px; }

    /* Titre : aligné à gauche dans la coquille (avec marge intérieure) */
    .section-title {
      margin: 0;
      font: 600 20px/1.3 "Libre Baskerville", "PT Serif", "Merriweather", "Source Serif 4", Georgia, "Times New Roman", serif; /*system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", Arial;*/
      
      text-align: left;
    }
    .section-subtitle {
      margin: 8px 0 0 0;
      color: #666;
      font: 400 14px/1.5 "Libre Baskerville", "PT Serif", "Merriweather", "Source Serif 4", Georgia, "Times New Roman", serif; /*system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", Arial;*/
      text-align: left;
    }

    /* ===== Containers charts ===== */
    /* MAP : pleine largeur dans la coquille */
    .content-shell--wide { width: 100%; }
    #map-container     { width: 100%; height: 520px; }

    /* (Optionnel) légère respiration entre sections adjacentes de titre */
    .band--title + .band--title { border-top: none; }

    .chart-frame {
      width: min(100%, 800px);
      margin: 0 auto;
      height: clamp(320px, 56vw, 480px); /* min 320px, grandit avec la largeur */
      position: relative;
    }

    /* le chart occupe 100% du cadre */
    .chart-plot {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
    }

    /* Coquille étroite pour les textes au-dessus des charts */
    .content-shell--narrow {
      max-width: 860px;         /* largeur contenue, à ajuster si besoin */
      margin-left: auto;
      margin-right: auto;
    }
    @media (max-width: 640px) {
      .band--chart .content-shell--wide { padding: 0px; } /* au lieu de 20/40px */
      #map-container { height: 200px; }                              /* au lieu de 520px */
    }

