/* ============================================================
   TYPOGRAPHIE DES TITRES (NATIVE GLOBAL STYLES)
   Aucune règle font-family n'est forcée sur les titres :
   WordPress applique directement la police de titres (Headings)
   définie par l'utilisateur dans l'éditeur de site.
   ============================================================ *//* ============================================================
   CORPS DE TEXTE & PARAGRAPHES (STANDARD 16px / 1rem MINIMUM)
   Toute taille inférieure à 16px sur les textes de lecture est
   calée à 16px (1rem) pour une lisibilité parfaite.
   ============================================================ */
body,
p,
li,
.wp-block-paragraph,
.entry-content p,
.cp-section-description {
  font-size: clamp(1rem, 0.96rem + 0.25vw, 1.05rem); /* 16px garanti sur iPhone SE à 16.8px PC */
  line-height: 1.65;
}

/* Aucun paragraphe de lecture ne descend en dessous de 16px.
   Une zone peut agrandir ses paragraphes en définissant --cp-text-size
   (introductions, corps des articles) : jamais les réduire. */
p,
.wp-block-paragraph,
p.text-sm,
p.text-xs {
  font-size: max(1rem, var(--cp-text-size, 1rem)) !important;
}

/* Zones de lecture agrandies */
.cp-hero-description {
  --cp-text-size: clamp(1.0625rem, 0.9rem + 0.7vw, 1.2rem); /* 17px mobile → 19px PC */
}

.cp-page-hero,
.cp-section-description,
.cp-engagement-lead,
.cp-antennes-desc,
.cp-contact-intro,
.cp-about-text {
  --cp-text-size: var(--cp-lead-size);
}

.cp-page-hero .cp-post-meta {
  --cp-text-size: 1rem;
}

/* ============================================================
   EN-TÊTES DE SECTIONS & TYPOGRAPHIE ÉDITORIALE
   ============================================================ */
.cp-section-padding {
  padding: clamp(3.5rem, 6vw, 5.5rem) 0;
}

.cp-section-header {
  max-width: 680px;
  margin: 0 auto 3rem;
  text-align: center;
}

.cp-section-header-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 1.5rem;
  margin-bottom: 2.5rem;
}

/* ============================================================
   ÉCHELLE TYPOGRAPHIQUE MODULAIRE OFFICIELLE CLASSPRO
   H1 : 54.4px PC (clamp(2.2rem, 4vw, 3.4rem))
   H2 : 36px PC (clamp(1.65rem, 2.5vw, 2.25rem))
   H3 : 24px PC (clamp(1.25rem, 1.8vw, 1.5rem))
   H4 : 18px PC (clamp(1.05rem, 1.2vw, 1.15rem))
   ============================================================ */
:root {
  --cp-h1-size: clamp(2.2rem, 4vw, 3.4rem);
  --cp-h2-size: clamp(1.65rem, 2.5vw, 2.25rem);
  --cp-h3-size: clamp(1.25rem, 1.8vw, 1.5rem);
  --cp-h4-size: clamp(1.05rem, 1.2vw, 1.15rem);
}

/* Titres H1 Suprêmes de Page (Harmonisation 54px partout) */
.cp-hero-title,
.cp-page-title,
.cp-about-hero-title,
.cp-soutenez-hero-title {
  font-size: var(--cp-h1-size) !important;
  font-weight: 800 !important;
  line-height: 1.15 !important;
  margin-bottom: 1rem;
}

.cp-section-eyebrow {
  font-size: 0.78rem;
  font-weight: 800;
  color: var(--cp-color-secondary, #EB7630); /* Orange officiel unique (AGENTS.md §4.5) */
  text-transform: uppercase;
  letter-spacing: 0.1em;
  display: block;
  margin-bottom: 0.4rem;
}

.cp-section-title {
  font-size: var(--cp-h2-size) !important;
  font-weight: 800;
  color: var(--cp-color-primary, #20467B);
  margin: 0 0 0.6rem;
  line-height: 1.25;
}

.cp-section-description {
  font-size: var(--cp-lead-size);
  color: #475569; /* Slate 600 : Ratio 5.67:1 sur blanc (Conforme WCAG AA > 4.5:1) */
  line-height: 1.6;
  margin: 0;
}

.cp-section-link {
  color: var(--cp-color-primary, #20467B);
  font-weight: 800;
  font-size: 0.92rem;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  transition: color 0.2s ease, gap 0.2s ease;
}

.cp-section-link:hover {
  color: var(--cp-color-secondary, #EB7630);
  gap: 8px;
}
