/* =====================================================================
   AnalyseProtoxyde.fr — Framework CSS commun
   Version 1.0
   =====================================================================

   Châssis partagé :
   - ressources éditoriales
   - actualités
   - bibliothèque scientifique
   - pages institutionnelles

   Principes :
   - classes préfixées .ap-*
   - blanc dominant
   - bleu documentaire comme identité
   - teal utilisé avec parcimonie
   - contraste et lisibilité prioritaires
   - fluidité par défaut
   - media queries uniquement pour les ruptures structurelles

   ===================================================================== */


/* =====================================================================
   1. TOKENS
   ===================================================================== */

:root {

  /* ---------- Couleurs d'identité ---------- */

  --ap-bg: #FFFFFF;
  --ap-surface: #F5F5F5;

  --ap-text: #222222;
  --ap-text-muted: #4A4A4A;

  --ap-brand: #1E4E79;
  --ap-brand-weak: #F4F8FB;

  --ap-accent: #2F6F6D;

  --ap-border: #D9D9D9;


  /* ---------- Couleurs fonctionnelles ---------- */

  --ap-success: #2E7D32;
  --ap-info: #0288D1;
  --ap-warning: #F9A825;
  --ap-error: #C62828;

  /*
   * Couleurs éditoriales spécifiques au niveau de preuve.
   * Elles sont volontairement distinctes des couleurs décoratives.
   */
  --ap-established: #2E7D51;
  --ap-uncertain: #B07A1E;


  /* ---------- Espacement — base 4 px ---------- */

  --ap-1: 4px;
  --ap-2: 8px;
  --ap-3: 12px;
  --ap-4: 16px;
  --ap-5: 24px;
  --ap-6: 32px;
  --ap-7: 48px;
  --ap-8: 64px;


  /* ---------- Rayons ---------- */

  --ap-radius-sm: 4px;
  --ap-radius-md: 8px;
  --ap-radius-lg: 16px;


  /* ---------- Typographie ---------- */

  /*
   * Astra reste responsable de la famille typographique globale.
   * Le framework hérite donc de la police définie dans WordPress.
   */
  --ap-font: inherit;

  /* Longueur optimale des paragraphes */
  --ap-measure: 68ch;


  /* ---------- Structure ---------- */

  --ap-container: 1120px;
  --ap-header-h: 64px;


  /* ---------- Interactions ---------- */

  --ap-transition: 150ms ease;

}


/* =====================================================================
   2. BASE
   ===================================================================== */

* {
  box-sizing: border-box;
}

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: var(--ap-bg);
  color: var(--ap-text);
}

h1,
h2,
h3 {
  line-height: 1.2;
  letter-spacing: -0.01em;
}

a {
  color: var(--ap-brand);
  text-underline-offset: 2px;
}

a:hover {
  color: var(--ap-accent);
}

img {
  max-width: 100%;
  height: auto;
}

:focus-visible {
  outline: 3px solid var(--ap-accent);
  outline-offset: 2px;
}


/* =====================================================================
   3. UTILITAIRES
   ===================================================================== */

.ap-container {
  width: min(
    var(--ap-container),
    calc(100% - clamp(32px, 6vw, 48px))
  );

  margin-inline: auto;
}

.ap-measure {
  max-width: var(--ap-measure);
}

.ap-visually-hidden {
  position: absolute !important;

  width: 1px;
  height: 1px;

  padding: 0;
  margin: -1px;

  overflow: hidden;

  clip: rect(0 0 0 0);

  white-space: nowrap;

  border: 0;
}


/* ---------- Skip link ---------- */

.ap-skip-link {
  position: absolute;
  top: -60px;
  left: var(--ap-4);

  z-index: 100;

  padding: var(--ap-3) var(--ap-4);

  background: var(--ap-brand);
  color: #FFFFFF;

  border-radius: var(--ap-radius-sm);

  text-decoration: none;

  transition: top var(--ap-transition);
}

.ap-skip-link:focus {
  top: var(--ap-3);
  color: #FFFFFF;
}


/* =====================================================================
   4. HEADER AP
   =====================================================================

   Ces classes restent disponibles pour une future migration du header
   Astra vers le châssis AnalyseProtoxyde.

   ===================================================================== */

.ap-header {
  position: sticky;
  top: 0;

  z-index: 50;

  background: var(--ap-bg);

  border-bottom: 1px solid var(--ap-border);
}

.ap-header__bar {
  display: flex;
  align-items: center;

  gap: var(--ap-4);

  min-height: var(--ap-header-h);

  padding-block: var(--ap-3);
}

.ap-brand {
  color: var(--ap-brand);

  font-size: 19px;
  font-weight: 700;

  text-decoration: none;

  white-space: nowrap;
}

.ap-brand span {
  color: var(--ap-text-muted);
  font-weight: 400;
}


/* =====================================================================
   5. NAVIGATION AP
   ===================================================================== */

.ap-nav {
  margin-left: auto;
}

.ap-nav__list {
  display: flex;
  align-items: center;

  gap: var(--ap-2);

  list-style: none;

  margin: 0;
  padding: 0;
}

.ap-nav__link {
  display: inline-block;

  padding: 10px var(--ap-3);

  color: var(--ap-text);

  font-size: 15px;

  text-decoration: none;

  border-radius: var(--ap-radius-sm);
}

.ap-nav__link:hover,
.ap-nav__link[aria-current="page"] {
  color: var(--ap-brand);
  background: var(--ap-brand-weak);
}


/* ---------- Navigation mobile ---------- */

.ap-nav-toggle {
  display: none;

  align-items: center;

  gap: var(--ap-2);

  margin-left: auto;

  padding: 8px 12px;

  background: none;
  color: var(--ap-text);

  border: 1px solid var(--ap-border);
  border-radius: var(--ap-radius-sm);

  font: inherit;
  font-size: 15px;

  cursor: pointer;
}

.ap-nav-toggle__bars {
  position: relative;

  display: inline-block;

  width: 18px;
  height: 2px;

  background: currentColor;
}

.ap-nav-toggle__bars::before,
.ap-nav-toggle__bars::after {
  content: "";

  position: absolute;
  left: 0;

  width: 18px;
  height: 2px;

  background: currentColor;
}

.ap-nav-toggle__bars::before {
  top: -6px;
}

.ap-nav-toggle__bars::after {
  top: 6px;
}


/* ---------- Sous-menu ---------- */

.ap-nav__item--has-sub {
  position: relative;

  display: flex;
  align-items: center;
}

.ap-nav__subtoggle {
  display: inline-flex;
  align-items: center;

  padding: 8px;

  background: none;
  color: var(--ap-text-muted);

  border: 0;
  border-radius: var(--ap-radius-sm);

  font: inherit;
  font-size: 12px;
  line-height: 1;

  cursor: pointer;
}

.ap-nav__subtoggle:hover {
  color: var(--ap-brand);
  background: var(--ap-brand-weak);
}

.ap-nav__submenu {
  position: absolute;
  top: 100%;
  left: 0;

  z-index: 60;

  min-width: 260px;

  list-style: none;

  margin: 0;
  padding: var(--ap-2);

  background: var(--ap-bg);

  border: 1px solid var(--ap-border);
  border-radius: var(--ap-radius-md);

  box-shadow: 0 6px 20px rgba(34, 34, 34, 0.10);
}

.ap-nav__submenu a {
  display: block;

  padding: 9px var(--ap-3);

  color: var(--ap-text);

  font-size: 15px;

  text-decoration: none;

  border-radius: var(--ap-radius-sm);
}

.ap-nav__submenu a:hover {
  color: var(--ap-brand);
  background: var(--ap-brand-weak);
}


/* Progressive enhancement */

.js .ap-nav__submenu {
  display: none;
}

.js .ap-nav__item--has-sub.is-open .ap-nav__submenu {
  display: block;
}


/* =====================================================================
   6. RECHERCHE
   ===================================================================== */

.ap-search {
  display: flex;
  align-items: center;
}

.ap-search__form {
  display: flex;
  align-items: stretch;
}

.ap-search__input {
  min-width: 160px;

  padding: 8px 12px;

  color: var(--ap-text);

  border: 1px solid var(--ap-border);
  border-right: 0;

  border-radius:
    var(--ap-radius-sm)
    0
    0
    var(--ap-radius-sm);

  font: inherit;
  font-size: 15px;
}

.ap-search__button {
  padding: 8px 12px;

  background: var(--ap-brand);
  color: #FFFFFF;

  border: 1px solid var(--ap-brand);

  border-radius:
    0
    var(--ap-radius-sm)
    var(--ap-radius-sm)
    0;

  font: inherit;

  cursor: pointer;
}

.ap-search__note {
  margin-left: var(--ap-2);

  color: var(--ap-text-muted);

  font-size: 12px;
}


/* =====================================================================
   7. FIL D'ARIANE
   ===================================================================== */

.ap-breadcrumb {
  padding-block: var(--ap-4);
  color: var(--ap-text-muted);
  font-size: 14px;
  padding-top:0;
  padding-bottom:20px;
}

.ap-breadcrumb ol {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.ap-breadcrumb li {
  display: flex;
  align-items: center;
  gap: 6px;
}

.ap-breadcrumb li + li::before {
  content: "›";
  color: var(--ap-border);
}

.ap-breadcrumb a {
  color: var(--ap-text-muted);
}

.ap-breadcrumb [aria-current="page"] {
  color: var(--ap-text);
}

/* =====================================================================
   8. BOUTONS
   ===================================================================== */

.ap-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    gap: var(--ap-2);

    min-height: 48px;
    padding: 14px 26px;

    border: 1px solid transparent;
    border-radius: 6px;

    font: inherit;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.3;

    text-decoration: none !important;

    cursor: pointer;

    box-shadow: none;

    transition:
        background-color .18s ease,
        border-color .18s ease,
        color .18s ease;
}


/* ---------- Bouton principal ---------- */

.ap-button--primary {
    background: var(--ap-brand);
    color: #FFFFFF;
    border-color: var(--ap-brand);
}

.ap-button--primary:hover,
.ap-button--primary:focus {
    background: #183F62;
    border-color: #183F62;
    color: #FFFFFF;
    text-decoration: none !important;
}


/* ---------- Bouton secondaire ---------- */

.ap-button--secondary {
    background: #FFFFFF;
    color: var(--ap-brand);
    border: 1px solid var(--ap-border);
}

.ap-button--secondary:hover,
.ap-button--secondary:focus {
    background: var(--ap-brand-weak);
    border-color: var(--ap-brand);
    color: var(--ap-brand);
    text-decoration: none !important;
}


/* ---------- Suppression de tous les soulignements ---------- */

.ap-button,
.ap-button:hover,
.ap-button:focus,
.ap-button:visited,
.ap-button:active,
.ap-button *,
.ap-button *:hover,
.ap-button *:focus{
    text-decoration:none !important;
}
/* =====================================================================
   9. CARTES
   ===================================================================== */

.ap-cards {
  display: grid;

  grid-template-columns:
    repeat(auto-fill, minmax(240px, 1fr));

  gap: clamp(16px, 2vw, 24px);
}

.ap-card {
  display: flex;
  flex-direction: column;

  gap: 6px;

  padding: var(--ap-4);

  background: var(--ap-bg);
  color: inherit;

  border: 1px solid var(--ap-border);
  border-radius: var(--ap-radius-md);

  text-decoration: none;

  transition:
    border-color var(--ap-transition),
    background-color var(--ap-transition);
}

.ap-card:hover {
  border-color: var(--ap-brand);
}

.ap-card__kicker {
  color: var(--ap-text-muted);

  font-size: 12px;

  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.ap-card__title {
  margin: 0;

  color: var(--ap-brand);

  font-size: 16px;
  font-weight: 600;
}

.ap-card__excerpt {
  margin: 0;

  color: var(--ap-text-muted);

  font-size: 14px;
}

.ap-card--soon {
  opacity: 0.6;

  pointer-events: none;
}

.ap-card--soon .ap-card__title::after {
  content: " · à venir";

  color: var(--ap-text-muted);

  font-weight: 400;
}



/* =====================================================================
   10. BADGES
   ===================================================================== */

.ap-badge {
  display: inline-flex;
  align-items: center;

  padding: 4px 8px;

  color: var(--ap-brand);
  background: var(--ap-brand-weak);

  border-radius: var(--ap-radius-sm);

  font-size: 12px;
  font-weight: 600;

  line-height: 1.2;

  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.ap-badge--accent {
  color: var(--ap-accent);
  background: #EEF7F7;
}


/* =====================================================================
   11. FOOTER — C-25
   ===================================================================== */

.ap-footer {
  width: 100%;

  margin-top: var(--ap-8);

  background: var(--ap-brand);
  color: #FFFFFF;

  border-top: 1px solid var(--ap-border);
}


/* ---------- Structure ---------- */

.ap-footer__grid {
  display: grid;

  grid-template-columns:
    minmax(280px, 1.8fr)
    minmax(150px, 1fr)
    minmax(170px, 1fr)
    minmax(180px, 1fr);

  gap: clamp(32px, 4vw, 48px);

  padding-top: clamp(40px, 5vw, 64px);
  padding-bottom: clamp(36px, 4.5vw, 56px);
}


/* ---------- Identité ---------- */

.ap-footer__brand {
  max-width: 390px;
}

.ap-footer__brand-name {
  display: inline-block;

  margin: 0 0 var(--ap-2);

  color: #FFFFFF;

  font-size: 22px;
  font-weight: 700;

  line-height: 1.2;

  text-decoration: none;
}

.ap-footer__brand-name span {
  color: rgba(255, 255, 255, 0.82);
}

.ap-footer__brand-name:hover {
  color: #FFFFFF;
  text-decoration: none;
}

.ap-footer__tagline {
  margin: 0 0 var(--ap-4);

  color: rgba(255, 255, 255, 0.68);

  font-size: 12px;
  font-weight: 600;

  line-height: 1.4;

  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.ap-footer__description {
  max-width: 38ch;

  margin: 0;

  color: rgba(255, 255, 255, 0.82);

  font-size: 14px;

  line-height: 1.65;
}


/* ---------- Colonnes ---------- */

.ap-footer__column {
  min-width: 0;
}

.ap-footer__heading {
  margin: 0 0 var(--ap-4);

  color: #FFFFFF;

  font-size: 15px;
  font-weight: 700;

  line-height: 1.3;
}


/* ---------- Liens ---------- */

.ap-footer__links {
  list-style: none;

  margin: 0;
  padding: 0;
}

.ap-footer__links li {
  margin: 0 0 var(--ap-3);
}

.ap-footer__links li:last-child {
  margin-bottom: 0;
}

.ap-footer__links a {
  color: rgba(255, 255, 255, 0.82);

  font-size: 14px;
  font-weight: 400;

  line-height: 1.45;

  text-decoration: none;

  text-underline-offset: 3px;

  transition: color var(--ap-transition);
}

.ap-footer__links a:hover {
  color: #FFFFFF;

  text-decoration: underline;
  text-decoration-thickness: 1px;
}

.ap-footer__links a:focus-visible {
  color: #FFFFFF;

  outline: 2px solid #FFFFFF;
  outline-offset: 4px;

  border-radius: 2px;
}


/* ---------- Bas de footer ---------- */

.ap-footer__bottom {
  padding-top: var(--ap-4);
  padding-bottom: clamp(20px, 3vw, 24px);

  border-top: 1px solid rgba(255, 255, 255, 0.16);
}

.ap-footer__bottom p {
  margin: 0;

  color: rgba(255, 255, 255, 0.62);

  font-size: 13px;

  line-height: 1.5;
}


/* =====================================================================
   12. GABARIT RESSOURCE
   ===================================================================== */

.ap-resource {
  padding-bottom: var(--ap-8);
}

.ap-resource__header {
  padding:
    clamp(32px, 5vw, 48px)
    0
    var(--ap-2);
}

.ap-resource__kicker {
    display:inline-block;
    padding:3px 8px;
    color:var(--ap-brand);
    background:var(--ap-brand-weak);
    border-radius:4px;
    font-size:11px;
    font-weight:700;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.ap-resource__title {
    margin: 8px 0 12px;
    color: var(--ap-text);
    font-size: clamp(30px, 4vw, 38px);
    font-weight: 600;
    line-height: 1.15;
}

.ap-resource__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px var(--ap-4);
  color: var(--ap-text-muted);
  font-size: 14px;
}

.ap-resource__meta b {
  color: var(--ap-text);

  font-weight: 600;
}

.ap-resource__meta .sep {
  color: var(--ap-border);
}


/* =====================================================================
   13. RÉSUMÉ / RÉPONSE RAPIDE
   ===================================================================== */

.ap-summary {
  margin: clamp(20px, 3vw, 48px) 0;
  padding: 18px 22px;
  background: var(--ap-brand-weak);
  border-left: 4px solid var(--ap-brand);
  border-radius: var(--ap-radius-md);
}

.ap-summary__label {
  margin: 0 0 var(--ap-2);
  color: var(--ap-brand);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-bottom:10px;
}

.ap-summary p {
  margin: 0 0 var(--ap-3);
  font-size:18px;
  line-height:1.65;
}

.ap-summary p:last-child {
  margin-bottom: 0;
}

.ap-summary strong {
  color: var(--ap-text);
}


/* =====================================================================
   14. CONTENU ÉDITORIAL
   ===================================================================== */

.ap-content h2 {
  margin:
    clamp(48px, 6vw, 64px)
    0
    var(--ap-4);

  padding-top: var(--ap-4);

  font-size: clamp(24px, 3vw, 27px);

  border-top: 1px solid var(--ap-border);
}

.ap-content h3 {
  margin:
    clamp(32px, 5vw, 48px)
    0
    var(--ap-2);

  font-size: 20px;
}

.ap-content p,
.ap-content ul,
.ap-content ol {
  max-width: var(--ap-measure);
}

.ap-content p {
  margin: 0 0 var(--ap-4);
}

.ap-content ul,
.ap-content ol {
  margin: 0 0 var(--ap-4);

  padding-left: 1.4em;
}

.ap-content li {
  margin-bottom: var(--ap-2);
}

.ap-content .lead-term {
  font-weight: 700;
}


/* =====================================================================
   15. CITATIONS
   ===================================================================== */

.ap-quote {
  max-width: var(--ap-measure);

  margin: var(--ap-5) 0;

  padding: var(--ap-4) var(--ap-5);

  background: var(--ap-surface);

  border-left: 4px solid var(--ap-accent);

  border-radius:
    0
    var(--ap-radius-md)
    var(--ap-radius-md)
    0;

  font-size: 20px;
  font-style: italic;
}


/* =====================================================================
   16. NOTES / CALLOUTS
   ===================================================================== */

.ap-note {
  max-width: var(--ap-measure);

  margin: var(--ap-5) 0;

  padding: var(--ap-4) var(--ap-5);

  border-left: 4px solid;
  border-radius: var(--ap-radius-md);
}

.ap-note__title {
  margin: 0 0 6px;

  font-size: 15px;
  font-weight: 700;

  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.ap-note p {
  margin: 0;
}


/* ---------- Information ---------- */

.ap-note--info {
  background: #F0F8FD;
  border-color: var(--ap-info);
}

.ap-note--info .ap-note__title {
  color: var(--ap-info);
}


/* ---------- Attention ---------- */

.ap-note--warning {
  background: #FFF8E8;
  border-color: var(--ap-warning);
}

.ap-note--warning .ap-note__title {
  color: #A96E00;
}


/* ---------- Marque / point clé ---------- */

.ap-note--brand {
  background: var(--ap-brand-weak);
  border-color: var(--ap-brand);
}

.ap-note--brand .ap-note__title {
  color: var(--ap-brand);
}


/* =====================================================================
   17. ÉTABLI / INCERTAIN
   ===================================================================== */

.ap-evidence {
    margin: 72px 0;
}

.ap-evidence-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px;
}

.ap-section-title{
    margin-bottom:28px;
    font-size:2rem;
    font-weight:700;
    color:#222;
}

.ap-evidence-card{
    background:#fff;
    padding:28px;
    border-radius:10px;
    box-shadow:0 2px 8px rgba(0,0,0,.05);
}
.ap-evidence-card--established{
    border-top:4px solid #2F6F6D;
}
.ap-evidence-card--uncertain{
    border-top:4px solid #C88A1B;
}
.ap-evidence-card h3{
    margin:0 0 18px;
    font-size:1.35rem;
    font-weight:700;
}
.ap-evidence-card ul{
    margin:0;
    padding-left:1.25rem;
    line-height:1.8;
}

@media (max-width:900px){
    .ap-evidence-grid{
        grid-template-columns:1fr;
    }
}

.ap-evidence__box {
  padding: var(--ap-4) var(--ap-5);
  background: var(--ap-surface);
  border-radius: var(--ap-radius-md);
}

.ap-evidence__box--established {
  border-top: 4px solid var(--ap-established);
}

.ap-evidence__box--uncertain {
  border-top: 4px solid var(--ap-uncertain);
}

.ap-evidence__box h3 {
  margin: 0 0 var(--ap-2);

  font-size: 16px;
}

.ap-evidence__box--established h3 {
  color: var(--ap-established);
}

.ap-evidence__box--uncertain h3 {
  color: var(--ap-uncertain);
}

.ap-evidence__box ul {
  margin: 0;

  padding-left: 1.1em;

  font-size: 15px;

  line-height: 1.5;
}

.ap-evidence__box li {
  margin-bottom: 6px;
}


/* =====================================================================
   18. TABLEAUX
   ===================================================================== */

.ap-table-wrap {
  overflow-x: auto;

  margin: var(--ap-5) 0;

  border: 1px solid var(--ap-border);
  border-radius: var(--ap-radius-md);
}

.ap-table {
  width: 100%;
  min-width: 480px;

  border-collapse: collapse;

  font-size: 15px;
}

.ap-table caption {
  padding: var(--ap-3) var(--ap-4);

  color: var(--ap-text-muted);

  font-size: 14px;

  text-align: left;

  caption-side: top;
}

.ap-table th,
.ap-table td {
  padding: 10px var(--ap-4);

  text-align: left;
  vertical-align: top;

  border-bottom: 1px solid var(--ap-border);
}

.ap-table thead th {
  background: var(--ap-surface);

  font-weight: 600;
}

.ap-table tbody tr:last-child td {
  border-bottom: 0;
}


/* =====================================================================
   19. FIGURES
   ===================================================================== */

.ap-figure {
  margin: var(--ap-6) 0;
}

.ap-figure img {
  display: block;

  width: 100%;

  border-radius: var(--ap-radius-md);
}

.ap-figure figcaption {
  max-width: var(--ap-measure);

  margin-top: var(--ap-2);

  color: var(--ap-text-muted);

  font-size: 13px;

  line-height: 1.5;
}


/* ---------- Emplacement temporaire ---------- */

.ap-figure-slot {
  margin: var(--ap-6) 0;

  padding: var(--ap-6) var(--ap-5);

  background: var(--ap-surface);

  border: 2px dashed var(--ap-border);
  border-radius: var(--ap-radius-md);
}

.ap-figure-slot__tag {
  color: var(--ap-uncertain);

  font-size: 12px;
  font-weight: 700;

  letter-spacing: 0.05em;
  text-transform: uppercase;
}


/* =====================================================================
   20. SOURCES
   ===================================================================== */

.ap-sources h2 {
  margin:
    var(--ap-8)
    0
    var(--ap-3);

  padding-top: var(--ap-4);

  font-size: 24px;

  border-top: 1px solid var(--ap-border);
}

.ap-sources h3 {
  margin: var(--ap-5) 0 var(--ap-2);

  font-size: 17px;
}

.ap-sources ol {
  max-width: var(--ap-measure);

  font-size: 15px;
}

.ap-sources__note {
  max-width: var(--ap-measure);

  color: var(--ap-text-muted);

  font-size: 14px;
  font-style: italic;
}


/* =====================================================================
   21. RESSOURCES ASSOCIÉES
   ===================================================================== */

.ap-related {
  margin: var(--ap-8) 0;

  padding: clamp(24px, 4vw, 32px);

  background: var(--ap-surface);

  border-radius: var(--ap-radius-md);
}

.ap-related h2 {
  margin: 0 0 var(--ap-4);

  padding: 0;

  font-size: 24px;

  border: 0;
}


/* =====================================================================
   22. RESPONSIVE STRUCTUREL
   ===================================================================== */


/* ---------- Navigation / footer tablette ---------- */

@media (max-width: 900px) {

  .ap-nav-toggle {
    display: inline-flex;
  }

  .ap-header__bar {
    flex-wrap: wrap;
  }

  .ap-nav {
    display: none;

    flex-basis: 100%;

    order: 3;

    margin: var(--ap-3) 0 0;

    padding-top: var(--ap-3);

    border-top: 1px solid var(--ap-border);
  }

  .js .ap-nav.is-open {
    display: block;
  }

  html:not(.js) .ap-nav {
    display: block;
  }

  .ap-nav__list {
    flex-direction: column;
    align-items: stretch;

    gap: 2px;
  }

  .ap-nav__submenu {
    position: static;

    min-width: 0;

    padding-left: var(--ap-4);

    border: 0;

    box-shadow: none;
  }

  .ap-search {
    width: 100%;

    order: 2;

    margin-top: var(--ap-3);
  }

  .ap-search__input {
    flex: 1;
  }


  /* Footer :
     identité sur la première ligne,
     trois colonnes dessous.
  */

  .ap-footer__grid {
    grid-template-columns: 1fr 1fr 1fr;
  }

  .ap-footer__brand {
    grid-column: 1 / -1;

    max-width: 560px;
  }

  .ap-footer__description {
    max-width: 55ch;
  }
  
  .ap-hero-visual {
      display: none;
  }

}


/* ---------- Mobile ---------- */

@media (max-width: 640px) {

  .ap-footer__grid {
    grid-template-columns: 1fr;
  }

  .ap-footer__brand {
    grid-column: auto;
  }

  .ap-footer__links a {
    font-size: 15px;
  }

  .ap-evidence {
    grid-template-columns: 1fr;
  }

}


/* =====================================================================
   23. ACCESSIBILITÉ — MOUVEMENT RÉDUIT
   ===================================================================== */

@media (prefers-reduced-motion: reduce) {

  html {
    scroll-behavior: auto;
  }

  * {
    transition: none !important;
  }

}
/* =========================================================
   HUB COMPRENDRE — CARTE AVEC PLUSIEURS RESSOURCES
   ========================================================= */

.ap-hub-card--multi {
    display: flex;
    flex-direction: column;
}

.ap-hub-card__resources {
    margin-top: auto;
    padding-top: 22px;
    border-top: 1px solid #D9D9D9;
}

.ap-hub-card__resources a {
    display: block;
    text-decoration: none;
    padding: 12px 0;
}

.ap-hub-card__resources a + a {
    border-top: 1px solid #D9D9D9;
}

.ap-hub-card__resources strong {
    display: block;
    color: #1E4E79;
    font-size: 14px;
    line-height: 1.4;
    font-weight: 600;
}

.ap-hub-card__resources span {
    display: block;
    margin-top: 4px;
    color: #555;
    font-size: 12px;
    line-height: 1.4;
}

.ap-hub-card__resources a:hover strong {
    text-decoration: underline;
}

/* =========================================================
   FIGURE LARGE — SCHÉMAS ET INFOGRAPHIES
   ========================================================= */

.ap-figure--wide {
    max-width: 1040px;
    margin: 48px auto;
}

.ap-figure--wide img {
    display: block;
    width: 100%;
    height: auto;
}

.ap-figure--wide figcaption {
    max-width: 820px;
    margin: 16px auto 0;
}


/* =====================================================================
   BIBLIOTHÈQUE SCIENTIFIQUE — V1
   ===================================================================== */

.ap-library {
    max-width: 1120px;
    margin: 0 auto;
    padding: 56px 24px 80px;
}


/* ---------------------------------------------------------------------
   Hero
   --------------------------------------------------------------------- */

.ap-library__header {
    max-width: 820px;
    margin-bottom: 52px;
}

.ap-library__kicker {
    display: block;
    margin-bottom: 10px;

    color: #2F6F6D;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.ap-library__title {
    margin: 0 0 16px;

    color: #222222;
    font-size: clamp(32px, 4vw, 44px);
    line-height: 1.12;
    letter-spacing: -.025em;
}

.ap-library__intro {
    max-width: 760px;
    margin: 0;

    color: #4A4A4A;
    font-size: 17px;
    line-height: 1.7;
}


/* ---------------------------------------------------------------------
   Liste des publications
   --------------------------------------------------------------------- */

.ap-library-list {
    border-top: 1px solid #D9D9D9;
}

.ap-library-card {
    padding: 30px 0 32px;
    border-bottom: 1px solid #D9D9D9;
}


/* ---------------------------------------------------------------------
   Métadonnées supérieures
   --------------------------------------------------------------------- */

.ap-library-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;

    margin-bottom: 10px;

    color: #4A4A4A;
    font-size: 12px;
    line-height: 1.4;
}

.ap-library-card__meta > span:not(.ap-library-card__structuring) {
    display: inline-flex;
    align-items: center;
}

.ap-library-card__meta > span:not(.ap-library-card__structuring)
    + span:not(.ap-library-card__structuring)::before {
    content: "·";
    margin-right: 8px;
    color: #A0A0A0;
}

.ap-library-card__structuring {
    display: inline-block;

    padding: 3px 8px;
    border: 1px solid #CFE0DF;
    border-radius: 999px;

    background: #F5FAF9;
    color: #2F6F6D;

    font-size: 10px;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
}


/* ---------------------------------------------------------------------
   Titre de publication
   --------------------------------------------------------------------- */

.ap-library-card__title {
    max-width: 900px;
    margin: 0 0 9px;

    font-size: 21px;
    font-weight: 600;
    line-height: 1.38;
    letter-spacing: -.01em;
}

.ap-library-card__title a {
    color: #222222;
    text-decoration: none;
}

.ap-library-card__title a:hover {
    color: #1E4E79;
    text-decoration: underline;
    text-underline-offset: 3px;
}


/* ---------------------------------------------------------------------
   Citation
   --------------------------------------------------------------------- */

.ap-library-card__citation {
    margin: 0 0 13px;

    color: #4A4A4A;
    font-size: 13px;
    line-height: 1.55;
}

.ap-library-card__citation strong {
    color: #333333;
    font-weight: 500;
}


/* ---------------------------------------------------------------------
   Thème / matrice
   --------------------------------------------------------------------- */

.ap-library-card__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;

    margin: 0 0 15px;
}

.ap-library-card__tags span {
    display: inline-block;

    padding: 3px 9px;
    border: 1px solid #D9D9D9;
    border-radius: 999px;

    background: #FFFFFF;
    color: #2F6F6D;

    font-size: 11px;
    font-weight: 500;
}


/* ---------------------------------------------------------------------
   Résumé
   --------------------------------------------------------------------- */

.ap-library-card__excerpt {
    max-width: 880px;
    margin: 0 0 16px;

    color: #4A4A4A;
    font-size: 14px;
    line-height: 1.7;
}

.ap-library-card__excerpt p {
    margin: 0;
}


/* ---------------------------------------------------------------------
   Lien fiche
   --------------------------------------------------------------------- */

.ap-library-card__link {
    display: inline-block;

    color: #1E4E79;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
}

.ap-library-card__link:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}


/* ---------------------------------------------------------------------
   Aucun résultat
   --------------------------------------------------------------------- */

.ap-library__empty {
    padding: 28px 0;
    color: #4A4A4A;
}


/* ---------------------------------------------------------------------
   Responsive
   --------------------------------------------------------------------- */

@media (max-width: 720px) {

    .ap-library {
        padding: 36px 20px 60px;
    }

    .ap-library__header {
        margin-bottom: 38px;
    }

    .ap-library__intro {
        font-size: 16px;
    }

    .ap-library-card {
        padding: 24px 0 26px;
    }

    .ap-library-card__title {
        font-size: 18px;
    }

}

/* =====================================================================
   BIBLIOTHÈQUE SCIENTIFIQUE — NOTE MÉTHODOLOGIQUE
   ===================================================================== */

.ap-library__notice {
	max-width: 820px;
	margin-top: 26px;
	padding: 16px 18px;
	border-left: 3px solid #2F6F6D;
	background: #F8FBFB;
}

.ap-library__notice strong {
	display: block;
	margin-bottom: 5px;
	color: #222222;
	font-size: 13px;
	font-weight: 600;
}

.ap-library__notice p {
	margin: 0;
	color: #555555;
	font-size: 13px;
	line-height: 1.65;
}


/* =====================================================================
   BIBLIOTHÈQUE SCIENTIFIQUE — RECHERCHE ET FILTRES
   ===================================================================== */

.ap-library-tools {
	margin: 34px 0 0;
	padding: 24px 0;
	border-top: 1px solid #D9D9D9;
	border-bottom: 1px solid #D9D9D9;
}

.ap-library-tools__title {
	margin: 0 0 18px;
	color: #222222;
	font-size: 17px;
	font-weight: 600;
}

.ap-library-filters label {
	display: block;
	margin-bottom: 6px;
	color: #555555;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.ap-library-filters input,
.ap-library-filters select {
	width: 100%;
	height: 42px;
	padding: 0 12px;
	border: 1px solid #D9D9D9;
	border-radius: 4px;
	background: #FFFFFF;
	color: #222222;
	font: inherit;
	font-size: 13px;
}

.ap-library-filters input:focus,
.ap-library-filters select:focus {
	border-color: #1E4E79;
	outline: 2px solid rgba(30, 78, 121, .12);
	outline-offset: 1px;
}

.ap-library-filters__search {
	margin-bottom: 14px;
}

.ap-library-filters__row {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
	gap: 12px;
	align-items: end;
}

.ap-library-filters__submit {
	height: 42px;
	padding: 0 22px;
	border: 1px solid #1E4E79;
	border-radius: 4px;
	background: #1E4E79;
	color: #FFFFFF;
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
}

.ap-library-filters__submit:hover {
	background: #173F63;
}

.ap-library-filters__reset {
	display: inline-block;
	margin-top: 12px;
	color: #1E4E79;
	font-size: 12px;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.ap-library-results {
	margin: 16px 0 0;
	color: #666666;
	font-size: 12px;
}

.ap-library__empty {
	padding: 32px 0;
}

.ap-library__empty p {
	margin: 0 0 8px;
}

.ap-library__empty a {
	color: #1E4E79;
	font-weight: 600;
}


/* Mobile */

@media (max-width: 720px) {

	.ap-library__notice {
		margin-top: 22px;
	}

	.ap-library-filters__row {
		grid-template-columns: 1fr;
	}

	.ap-library-filters__submit {
		width: 100%;
	}

}


/* =====================================================================
   FICHE — BIBLIOTHÈQUE SCIENTIFIQUE
   ===================================================================== */

.ap-fiche {
	background: #fff;
	color: #222;
}

.ap-fiche {
	width: 100%;
	max-width: none;
	margin: 0;
	background: #fff;
	color: #222;
}

.ap-fiche__inner {
	width: calc(100% - 48px);
	max-width: 920px;
	margin-left: auto !important;
	margin-right: auto !important;
	padding: 72px 0 88px;
}

.ap-fiche__breadcrumb {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
	margin-bottom: 44px;
	font-size: 13px;
	color: #666;
}

.ap-fiche__breadcrumb a,
.ap-fiche__back a {
	color: #1E4E79;
	text-decoration: none;
}

.ap-fiche__breadcrumb a:hover,
.ap-fiche__back a:hover {
	text-decoration: underline;
}


/* En-tête */

.ap-fiche__header {
	padding-bottom: 40px;
	border-bottom: 1px solid #D9D9D9;
}

.ap-fiche__labels {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 18px;
}

.ap-fiche__label {
	display: inline-flex;
	align-items: center;
	min-height: 27px;
	padding: 4px 10px;
	border: 1px solid #D9D9D9;
	border-radius: 999px;
	font-size: 11px;
	line-height: 1.2;
	color: #555;
}

.ap-fiche__label--structuring {
	border-color: rgba(47, 111, 109, 0.25);
	background: rgba(47, 111, 109, 0.06);
	color: #2F6F6D;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.ap-fiche__title {
	max-width: 850px;
	margin: 0 0 20px;
	font-size: clamp(32px, 4vw, 48px);
	line-height: 1.12;
	letter-spacing: -0.025em;
	color: #222;
}

.ap-fiche__authors {
	margin: 0 0 8px;
	font-weight: 600;
	line-height: 1.6;
}

.ap-fiche__source {
	margin: 0 0 12px;
	color: #555;
}

.ap-fiche__identifiers {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 20px;
	margin-top: 14px;
	font-size: 13px;
	color: #666;
}

.ap-fiche__identifiers a {
	color: #1E4E79;
}


/* En bref */

.ap-fiche__brief {
	margin: 40px 0;
	padding: 24px 28px;
	border-left: 3px solid #2F6F6D;
	background: #F8FAFA;
}

.ap-fiche__eyebrow {
	display: block;
	margin-bottom: 10px;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: #2F6F6D;
}

.ap-fiche__brief-text p {
	margin: 0;
	font-size: 18px;
	line-height: 1.65;
}


/* Sections */

.ap-fiche__section {
	padding: 36px 0;
	border-top: 1px solid #D9D9D9;
}

.ap-fiche__section h2,
.ap-fiche__caution h2 {
	margin: 0 0 18px;
	font-size: 24px;
	line-height: 1.25;
	color: #222;
}

.ap-fiche__section p,
.ap-fiche__caution p {
	max-width: 760px;
	margin: 0 0 14px;
	font-size: 16px;
	line-height: 1.75;
	color: #444;
}

.ap-fiche__section p:last-child,
.ap-fiche__caution p:last-child {
	margin-bottom: 0;
}


/* À garder en tête */

.ap-fiche__caution {
	margin: 8px 0 36px;
	padding: 24px 28px;
	border-left: 3px solid #1E4E79;
	background: #F5F8FB;
}


/* Portée */

.ap-fiche__scope {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}

.ap-fiche__scope-item {
	padding: 22px;
	border: 1px solid #D9D9D9;
	border-radius: 6px;
}

.ap-fiche__scope-item h3 {
	margin: 0 0 14px;
	font-size: 16px;
	line-height: 1.4;
	color: #1E4E79;
}

.ap-fiche__scope-item p {
	font-size: 15px;
}


/* Référence */

.ap-fiche__reference {
	margin-top: 12px;
	padding: 30px 0;
	border-top: 1px solid #D9D9D9;
	border-bottom: 1px solid #D9D9D9;
}

.ap-fiche__reference-text {
	max-width: 800px;
	margin: 0 0 18px;
	font-size: 14px;
	line-height: 1.7;
	color: #555;
}

.ap-fiche__external-link {
	font-size: 14px;
	font-weight: 600;
	color: #1E4E79;
	text-decoration: underline;
	text-underline-offset: 3px;
}


/* Retour */

.ap-fiche__back {
	margin-top: 30px;
	font-size: 14px;
}


/* Responsive */

@media (max-width: 700px) {

	.ap-fiche__inner {
		width: min(100% - 28px, 920px);
		padding: 44px 0 64px;
	}

	.ap-fiche__breadcrumb {
		margin-bottom: 30px;
	}

	.ap-fiche__title {
		font-size: 32px;
	}

	.ap-fiche__scope {
		grid-template-columns: 1fr;
	}

	.ap-fiche__brief,
	.ap-fiche__caution {
		padding: 20px;
	}

}


/* =====================================================================
   FICHE PUBLICATION — PRINCIPAUX RÉSULTATS
   ===================================================================== */

.ap-fiche__results-grid {
	margin-top: 24px;
	border-top: 1px solid #d9d9d9;
}

.ap-fiche__result {
	display: grid;
	grid-template-columns: 48px 1fr;
	gap: 20px;
	padding: 22px 0;
	border-bottom: 1px solid #d9d9d9;
}

.ap-fiche__result-number {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	color: #2F6F6D;
}

.ap-fiche__result p {
	margin: 0;
	line-height: 1.75;
}

@media (max-width: 700px) {

	.ap-fiche__result {
		grid-template-columns: 36px 1fr;
		gap: 12px;
	}

}

/* =====================================================================
   ANALYSE CRITIQUE — STRUCTURE
   ===================================================================== */

.ap-ref {
	--ap-ref-blue: #1E4E79;
	--ap-ref-teal: #2F6F6D;
	--ap-ref-text: #222222;
	--ap-ref-muted: #5B6570;
	--ap-ref-border: #D9D9D9;
	--ap-ref-surface: #F5F5F5;

	color: var(--ap-ref-text);
	background: #FFFFFF;
}


/* Conteneur général */

.ap-ref-shell {
	width: calc(100% - 48px);
	max-width: 1180px;
	margin: 0 auto;
	padding: 44px 0 80px;

	display: grid;
	grid-template-columns: 230px minmax(0, 1fr);
	gap: 48px;
}


/* Sommaire */

.ap-ref-toc {
	position: sticky;
	top: 32px;
	align-self: start;

	max-height: calc(100vh - 64px);
	overflow-y: auto;

	padding-top: 6px;

	font-family: "Montserrat", sans-serif;
	font-size: 12px;
}

.ap-ref-toc strong {
	display: block;
	margin-bottom: 12px;

	color: var(--ap-ref-muted);

	font-size: 10px;
	font-weight: 700;
	letter-spacing: .10em;
	text-transform: uppercase;
}

.ap-ref-toc a {
	display: block;
	padding: 5px 0 5px 10px;
	border-left: 2px solid transparent;
	color: #444444;
	text-decoration: none !important;
	line-height: 1.45;
}

.ap-ref-toc a:hover {
	border-left-color: var(--ap-ref-blue);
	color: var(--ap-ref-blue);
	text-decoration: none !important;
}


/* Contenu */

.ap-ref-main {
	min-width: 0;
}


/* Fil d'Ariane */

.ap-ref-breadcrumb {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;

	margin-bottom: 28px;

	color: #666666;
	font-size: 12px;
}

.ap-ref-breadcrumb a {
	color: var(--ap-ref-blue);
	text-decoration: none;
}

.ap-ref-breadcrumb a:hover {
	text-decoration: underline;
}


/* Publication analysée */

.ap-ref-source {
	margin-bottom: 38px;
	padding: 18px 20px;

	border: 1px solid var(--ap-ref-border);
	border-left: 3px solid var(--ap-ref-teal);
	border-radius: 5px;

	background: #FFFFFF;
}

.ap-ref-source__label {
	display: block;
	margin-bottom: 7px;

	color: var(--ap-ref-teal);

	font-family: "Montserrat", sans-serif;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.ap-ref-source__title {
	margin: 0 0 3px;
	font-size: 15px;
}

.ap-ref-source__meta {
	margin: 0;
	color: var(--ap-ref-muted);
	font-size: 13px;
	line-height: 1.55;
}

.ap-ref-source__link {
	margin: 8px 0 0;
}

.ap-ref-source__link a {
	color: var(--ap-ref-blue);
	font-size: 12px;
	font-weight: 600;
	text-decoration: none;
}

.ap-ref-source__link a:hover {
	text-decoration: underline;
}


/* Intro */

.ap-ref-intro {
	padding: 0 0 34px;
	border: 0;
}

.ap-ref-eyebrow {
	margin: 0 0 10px;

	color: var(--ap-ref-teal);

	font-family: "Montserrat", sans-serif;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.ap-ref-intro h1 {
	max-width: 820px;
	margin: 0 0 18px;

	color: #222222;

	font-family: "Montserrat", sans-serif;
	font-size: clamp(30px, 3.4vw, 42px);
	font-weight: 700;
	line-height: 1.18;
	letter-spacing: -.02em;
}

.ap-ref-sub {
	max-width: 760px;
	margin: 0 0 24px;

	color: var(--ap-ref-muted);

	font-size: 17px;
	line-height: 1.7;
}


/* Encadré introduction */

.ap-ref-30 {
	padding: 20px 24px;

	border-left: 4px solid var(--ap-ref-blue);
	border-radius: 5px;

	background: var(--ap-ref-surface);
}

.ap-ref-30--intro {
	border-left-color: var(--ap-ref-teal);
}

.ap-ref-30 p {
	margin: 0 0 10px;
}

.ap-ref-30 p:last-child {
	margin-bottom: 0;
}

.ap-ref-30 ol {
	margin: 8px 0 12px;
	padding-left: 22px;
}

.ap-ref-30 li {
	margin-bottom: 5px;
}

.ap-ref-key {
	color: var(--ap-ref-blue);
	font-weight: 600;
}


/* Responsive */

@media (max-width: 900px) {

	.ap-ref-shell {
		grid-template-columns: 1fr;
		width: calc(100% - 36px);
		padding-top: 40px;
	}

	.ap-ref-toc {
		display: none;
	}

}

@media (max-width: 600px) {

	.ap-ref-shell {
		width: calc(100% - 28px);
	}

	.ap-ref-intro h1 {
		font-size: 29px;
	}

	.ap-ref-30 {
		padding: 18px;
	}

}

/* =====================================================================
   ANALYSE CRITIQUE — SECTIONS DE CONTENU
   ===================================================================== */

.ap-ref-main > section:not(.ap-ref-intro) {
	padding: 34px 0;
	border-top: 1px solid var(--ap-ref-border);
	scroll-margin-top: 28px;
}

.ap-ref-main > section h2 {
	margin: 0 0 14px;

	color: #222222;

	font-family: "Montserrat", sans-serif;
	font-size: 22px;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: -.01em;
}

.ap-ref-main > section p {
	max-width: 760px;
	margin: 0 0 14px;

	color: #40464d;
	font-size: 16px;
	line-height: 1.72;
}

.ap-ref-main > section p:last-child {
	margin-bottom: 0;
}


/* Petits blocs explicatifs */

.ap-ref-mech {
	max-width: 780px;
	margin: 12px 0;
	padding: 15px 18px;

	border: 1px solid var(--ap-ref-border);
	border-radius: 5px;

	background: #FFFFFF;

	color: #40464d;
	font-size: 15px;
	line-height: 1.65;
}

.ap-ref-mech strong {
	color: #222222;
	font-family: "Montserrat", sans-serif;
	font-weight: 600;
}


/* Tags Rupture / Glissement */

.ap-ref-tag {
	display: inline-block;
	margin: 0 3px;

	padding: 3px 8px;

	border-radius: 4px;

	font-family: "Montserrat", sans-serif;
	font-size: 10px;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.ap-ref-tag--rupture {
	border: 1px solid #E4C2C2;
	background: #FBECEC;
	color: #8D3333;
}

.ap-ref-tag--gliss {
    color: #9A5B13;
    background: #FFF4E5;
    border-color: #E7B66C;
}


/* Responsive */

@media (max-width: 600px) {

	.ap-ref-main > section:not(.ap-ref-intro) {
		padding: 28px 0;
	}

	.ap-ref-main > section h2 {
		font-size: 20px;
	}

}

/* =====================================================================
   ANALYSE CRITIQUE — AXES DE RAISONNEMENT
   ===================================================================== */

.ap-ref-axis {
	padding: 42px 0 !important;
}

.ap-ref-axis__head {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	margin-bottom: 28px;
}

.ap-ref-axis__number {
	flex: 0 0 auto;

	color: var(--ap-ref-teal);
	font-family: "Montserrat", sans-serif;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: .08em;
}

.ap-ref-axis__heading {
	flex: 1;
}

.ap-ref-axis__heading h2 {
	margin: 0 0 8px !important;
}

.ap-ref-axis__subtitle {
	margin: 0 !important;

	color: #687078 !important;
	font-size: 14px !important;
	line-height: 1.55 !important;
}

.ap-ref-axis__badge {
	flex: 0 0 auto;
}


/* Sous-parties */

.ap-ref-axis__part {
	margin: 28px 0;
}

.ap-ref-axis__label {
	display: block;
	margin-bottom: 8px;

	color: var(--ap-ref-teal);

	font-family: "Montserrat", sans-serif;
	font-size: 11px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: .07em;
	text-transform: uppercase;
}


/* Zone centrale : raisonnement examiné */

.ap-ref-inference {
	max-width: 760px;
	margin: 30px 0;
	padding: 22px 24px;

	border-left: 3px solid var(--ap-ref-blue);
	background: #F6F8FA;
}

.ap-ref-inference__label {
	display: block;
	margin-bottom: 18px;

	color: var(--ap-ref-blue);

	font-family: "Montserrat", sans-serif;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .07em;
	text-transform: uppercase;
}

.ap-ref-inference__flow {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 18px;

	margin: 4px 0 12px;
}

.ap-ref-inference__term {
	padding: 11px 15px;

	border: 1px solid var(--ap-ref-border);
	border-radius: 4px;

	background: #FFFFFF;

	color: #222222;
	font-family: "Montserrat", sans-serif;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
	text-align: center;
}

.ap-ref-inference__arrow {
	color: var(--ap-ref-blue);
	font-size: 22px;
	line-height: 1;
}

.ap-ref-inference__note {
	max-width: 650px !important;
	margin: 14px auto 0 !important;

	color: #59616A !important;
	font-size: 14px !important;
	line-height: 1.6 !important;
	text-align: center;
}


/* Conclusion locale */

.ap-ref-axis__conclusion {
	max-width: 760px;
	margin-top: 30px;
	padding: 18px 20px;

	border: 1px solid #D6E3E2;
	border-left: 3px solid var(--ap-ref-teal);
	border-radius: 4px;

	background: #F7FAFA;
}

.ap-ref-axis__conclusion .ap-ref-axis__label {
	margin-bottom: 7px;
}

.ap-ref-axis__conclusion p {
	margin: 0 !important;
}


/* Mobile */

@media (max-width: 600px) {

	.ap-ref-axis__head {
		display: block;
	}

	.ap-ref-axis__number {
		display: block;
		margin-bottom: 7px;
	}

	.ap-ref-axis__badge {
		display: inline-block;
		margin-top: 10px;
	}

	.ap-ref-inference {
		padding: 20px 16px;
	}

	.ap-ref-inference__flow {
		flex-direction: column;
		gap: 9px;
	}

	.ap-ref-inference__arrow {
		transform: rotate(90deg);
	}

}

/* =====================================================================
   ANALYSE CRITIQUE — DONNÉES À L'APPUI
   ===================================================================== */

/* Bloc de preuves scientifiques */

.ap-ref-evidence {
	max-width: 780px;
	margin-top: 16px;
	border: 1px solid var(--ap-ref-border);
	border-radius: 5px;
	background: #FFFFFF;
	overflow: hidden;
}

.ap-ref-evidence__item {
	padding: 22px 24px;
	border-bottom: 1px solid var(--ap-ref-border);
}

.ap-ref-evidence__item:last-child {
	border-bottom: 0;
}

.ap-ref-evidence__study {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 11px;
}

.ap-ref-evidence__study strong {
	color: var(--ap-ref-blue);
	font-family: "Montserrat", sans-serif;
	font-size: 14px;
	font-weight: 700;
}

.ap-ref-evidence__study span {
	color: #6A7178;
	font-size: 12px;
}

.ap-ref-evidence__item p {
	margin-bottom: 10px !important;
}

.ap-ref-evidence__meaning {
	margin-top: 12px !important;
	padding-top: 10px;
	border-top: 1px solid #ECEFF1;
	color: #59616A !important;
	font-size: 14px !important;
}

.ap-ref-evidence__meaning strong {
	color: var(--ap-ref-teal);
	font-family: "Montserrat", sans-serif;
	font-size: 12px;
	font-weight: 700;
}


/* État des connaissances */

.ap-ref-state {
	max-width: 780px;
	margin: 32px 0;
	padding: 20px 22px;
	border: 1px solid var(--ap-ref-border);
	border-radius: 5px;
	background: #FFFFFF;
}

.ap-ref-state__row {
	display: grid;
	grid-template-columns: 145px 1fr;
	gap: 18px;
	padding: 12px 0;
	border-bottom: 1px solid #E5E5E5;
}

.ap-ref-state__row:last-child {
	border-bottom: 0;
}

.ap-ref-state__row > strong {
	color: var(--ap-ref-teal);
	font-family: "Montserrat", sans-serif;
	font-size: 12px;
	font-weight: 700;
}

.ap-ref-state__row p {
	margin: 0 !important;
	font-size: 14px !important;
	line-height: 1.6 !important;
}

.ap-ref-state__row--preliminary > strong {
	color: #8A641C;
}

@media (max-width: 600px) {

	.ap-ref-state__row {
		grid-template-columns: 1fr;
		gap: 4px;
	}

}

/* Analyse critique — mise en évidence d'une preuve clé */

.ap-ref-highlight {
	margin: 16px 0 32px;
	padding: 22px 24px;
	background: #F7F9FA;
	border-left: 3px solid var(--ap-ref-teal);
}

.ap-ref-highlight p:last-child {
	margin-bottom: 0;
}

/* Analyse critique — comparaison à deux colonnes */

.ap-ref-contrast {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
	margin: 16px 0 32px;
}

.ap-ref-contrast__column {
	padding: 20px 22px;
	border: 1px solid var(--ap-ref-border);
	border-radius: 5px;
	background: #FFFFFF;
}

.ap-ref-contrast__column h4 {
	margin: 0 0 12px;
	color: var(--ap-ref-blue);
	font-family: "Montserrat", sans-serif;
	font-size: 14px;
	font-weight: 700;
}

.ap-ref-contrast__column ul {
	margin: 0;
	padding-left: 19px;
}

.ap-ref-contrast__column li {
	margin-bottom: 7px;
}

.ap-ref-contrast__column li:last-child {
	margin-bottom: 0;
}

@media (max-width: 700px) {
	.ap-ref-contrast {
		grid-template-columns: 1fr;
	}
}


/* ================================================================
   SCHÉMA D’ENSEMBLE — VERSION COMPACTE
   ================================================================ */

.ap-ref .ap-ref-overview {
    max-width: 780px;
    margin: 30px 0 26px;

    border: 1px solid var(--ap-ref-border);
    border-radius: 5px;

    background: #FFFFFF;
    overflow: hidden;
}


/* Une ligne = un changement de cadre */

.ap-ref .ap-ref-overview__item {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;

    padding: 15px 20px;
    margin: 0;

    border-bottom: 1px solid var(--ap-ref-border);
}

.ap-ref .ap-ref-overview__item:last-child {
    border-bottom: 0;
}


/* Numéro */

.ap-ref .ap-ref-overview__number {
    color: var(--ap-ref-teal);

    font-family: "Montserrat", sans-serif;
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: .08em;
}


/* Relation scientifique */

.ap-ref .ap-ref-overview__content {
    display: flex;
    align-items: center;
    gap: 10px;

    min-width: 0;

    color: var(--ap-ref-text);

    font-family: "Montserrat", sans-serif;
    font-size: 13px;
    line-height: 1.45;
}

.ap-ref .ap-ref-overview__content strong {
    font-weight: 600;
}


/* Flèche */

.ap-ref .ap-ref-overview__content > span {
    flex: 0 0 auto;

    color: var(--ap-ref-blue);

    font-size: 15px;
    font-weight: 500;
}


/* Badge Rupture / Glissement */

.ap-ref .ap-ref-overview__item .ap-ref-tag {
    justify-self: end;

    margin: 0;

    white-space: nowrap;
}


/* Conclusion sous le tableau */

.ap-ref .ap-ref-overview__conclusion {
    max-width: 760px;

    margin: 22px 0 0 !important;
}


/* Mobile */

@media (max-width: 640px) {

    .ap-ref .ap-ref-overview__item {
        grid-template-columns: 28px minmax(0, 1fr);

        gap: 8px 10px;

        padding: 14px 16px;
    }

    .ap-ref .ap-ref-overview__content {
        flex-wrap: wrap;

        gap: 4px 7px;
    }

    .ap-ref .ap-ref-overview__item .ap-ref-tag {
        grid-column: 2;

        justify-self: start;

        margin-top: 3px;
    }
}


/* ================================================================
   MATRICE DE SYNTHÈSE
   ================================================================ */

.ap-ref .ap-ref-matrix {
    --ap-matrix-columns:
        minmax(0, 1.05fr)
        minmax(0, 1.25fr)
        minmax(0, 1.25fr)
        112px;

    max-width: 100%;
    margin: 28px 0 24px;

    border: 1px solid var(--ap-ref-border);
    border-radius: 5px;

    background: #FFFFFF;
    overflow: hidden;
}


/* Une ligne = un axe */

.ap-ref .ap-ref-matrix__row {
    display: grid;
    grid-template-columns: var(--ap-matrix-columns);
    gap: 0;

    border-bottom: 1px solid var(--ap-ref-border);
}

.ap-ref .ap-ref-matrix__row:last-child {
    border-bottom: 0;
}


/* Cellules */

.ap-ref .ap-ref-matrix__question,
.ap-ref .ap-ref-matrix__cell,
.ap-ref .ap-ref-matrix__status {
    min-width: 0;
    padding: 16px;
}

.ap-ref .ap-ref-matrix__question,
.ap-ref .ap-ref-matrix__cell {
    border-right: 1px solid var(--ap-ref-border);
}


/* Première colonne */

.ap-ref .ap-ref-matrix__question {
    display: flex;
    gap: 10px;

    background: #FAFBFB;
}

.ap-ref .ap-ref-matrix__number {
    flex: 0 0 auto;

    color: var(--ap-ref-teal);

    font-family: "Montserrat", sans-serif;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .08em;
}

.ap-ref .ap-ref-matrix__question strong {
    display: block;

    margin-bottom: 5px;

    color: var(--ap-ref-text);

    font-family: "Montserrat", sans-serif;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.4;
}

.ap-ref .ap-ref-matrix__question span:not(.ap-ref-matrix__number) {
    display: block;

    color: var(--ap-ref-muted);

    font-size: 12px;
    line-height: 1.5;
}


/* Colonnes scientifiques */

.ap-ref .ap-ref-matrix__label {
    display: block;

    margin-bottom: 7px;

    color: var(--ap-ref-teal);

    font-family: "Montserrat", sans-serif;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.ap-ref .ap-ref-matrix__cell p {
    margin: 0 !important;

    color: #4A5158 !important;

    font-size: 13px !important;
    line-height: 1.6 !important;
}


/* Qualification */

.ap-ref .ap-ref-matrix__status {
    display: flex;
    align-items: center;
    justify-content: center;
}


/* Conclusion */

.ap-ref .ap-ref-matrix__conclusion {
    max-width: 760px;

    margin-top: 22px !important;
}


/* Tablette */

@media (max-width: 900px) {

    .ap-ref .ap-ref-matrix__row {
        grid-template-columns:
            minmax(0, .9fr)
            minmax(0, 1fr)
            minmax(0, 1fr);
    }

    .ap-ref .ap-ref-matrix__status {
        grid-column: 1 / -1;

        justify-content: flex-start;

        padding-top: 10px;

        border-top: 1px dashed var(--ap-ref-border);
    }
}


/* Mobile */

@media (max-width: 700px) {

    .ap-ref .ap-ref-matrix__row {
        display: block;
    }

    .ap-ref .ap-ref-matrix__question,
    .ap-ref .ap-ref-matrix__cell {
        border-right: 0;
        border-bottom: 1px solid #ECEFF1;
    }

    .ap-ref .ap-ref-matrix__question,
    .ap-ref .ap-ref-matrix__cell,
    .ap-ref .ap-ref-matrix__status {
        padding: 16px;
    }

    .ap-ref .ap-ref-matrix__status {
        border-top: 0;
    }
}

/* ================================================================
   ANALYSE CRITIQUE — CONCLUSION
   ================================================================ */


/* ---------------------------------------------------------------
   Constat issu des données
   --------------------------------------------------------------- */

.ap-ref .ap-ref-conclusion__finding {
    max-width: 760px;

    margin: 28px 0;
    padding: 20px 22px;

    border-left: 3px solid var(--ap-ref-teal);
    border-radius: 4px;

    background: #F7FAFA;
}


/* ---------------------------------------------------------------
   Conclusion centrale
   --------------------------------------------------------------- */

.ap-ref .ap-ref-conclusion__core {
    max-width: 760px;

    margin: 32px 0;
    padding: 22px 24px;

    border: 1px solid #CFDAE6;
    border-left: 4px solid var(--ap-ref-blue);
    border-radius: 5px;

    background: #F5F8FB;
}


/* ---------------------------------------------------------------
   Label commun
   --------------------------------------------------------------- */

.ap-ref .ap-ref-conclusion__label {
    display: block;

    margin-bottom: 10px;

    color: var(--ap-ref-teal);

    font-family: "Montserrat", sans-serif;
    font-size: 10px;
    font-weight: 700;
    line-height: 1.4;

    letter-spacing: .08em;
    text-transform: uppercase;
}

.ap-ref .ap-ref-conclusion__core .ap-ref-conclusion__label {
    color: var(--ap-ref-blue);
}


/* ---------------------------------------------------------------
   Paragraphes des encadrés
   --------------------------------------------------------------- */

.ap-ref .ap-ref-conclusion__finding p,
.ap-ref .ap-ref-conclusion__core p {
    margin: 0 0 10px !important;
}

.ap-ref .ap-ref-conclusion__finding p:last-child,
.ap-ref .ap-ref-conclusion__core p:last-child {
    margin-bottom: 0 !important;
}


/* ---------------------------------------------------------------
   Question scientifique finale
   --------------------------------------------------------------- */

.ap-ref .ap-ref-conclusion__question {
    max-width: 760px;

    margin: 32px 0 22px;
    padding: 22px 24px;

    border-top: 2px solid var(--ap-ref-teal);
    border-bottom: 1px solid var(--ap-ref-border);

    background: #FFFFFF;
}

.ap-ref .ap-ref-conclusion__question p {
    max-width: 690px !important;

    margin: 0 !important;

    color: #222222 !important;

    font-family: "Montserrat", sans-serif;
    font-size: 17px !important;
    font-weight: 600;
    line-height: 1.6 !important;
}


/* ---------------------------------------------------------------
   Phrase de fermeture
   --------------------------------------------------------------- */

.ap-ref .ap-ref-conclusion__closing {
    margin-top: 20px !important;
}


/* ---------------------------------------------------------------
   Note de portée méthodologique
   --------------------------------------------------------------- */

.ap-ref .ap-ref-conclusion__scope {
    max-width: 760px !important;

    margin-top: 34px !important;
    padding-top: 16px;

    border-top: 1px solid var(--ap-ref-border);

    color: var(--ap-ref-muted) !important;

    font-size: 13px !important;
    line-height: 1.65 !important;
}

.ap-ref .ap-ref-conclusion__scope strong {
    color: #4A5158;
    font-weight: 600;
}


/* ---------------------------------------------------------------
   Mobile
   --------------------------------------------------------------- */

@media (max-width: 600px) {

    .ap-ref .ap-ref-conclusion__finding,
    .ap-ref .ap-ref-conclusion__core,
    .ap-ref .ap-ref-conclusion__question {
        padding: 18px;
    }

    .ap-ref .ap-ref-conclusion__question p {
        font-size: 16px !important;
    }

}

/* ================================================================
   ANALYSE CRITIQUE — TRANSPARENCE
   ================================================================ */

.ap-ref .ap-ref-transparency {
    max-width: 760px;
    margin-top: 18px;
    padding: 20px 22px;

    border: 1px solid var(--ap-ref-border);
    border-left: 3px solid var(--ap-ref-teal);
    border-radius: 5px;

    background: #FFFFFF;
}

.ap-ref .ap-ref-transparency__title {
    display: block;
    margin-bottom: 10px;

    color: var(--ap-ref-teal);

    font-family: "Montserrat", sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.ap-ref .ap-ref-transparency p {
    margin: 0 0 12px !important;

    color: #59616A !important;
    font-size: 14px !important;
    line-height: 1.65 !important;
}

.ap-ref .ap-ref-transparency p:last-child {
    margin-bottom: 0 !important;
}