/* ==========================================================================
   RACINE WEB — BASE
   Typographie, couleurs de texte, liens, focus.
   --------------------------------------------------------------------------
   Strategie de specificite : Divi ecrit des regles par module
   (.et_pb_text_1 { font-size:... }) chargees APRES le theme enfant.
   On les surclasse avec le prefixe #page-container (un ID, donc 1-0-x),
   ce qui gagne quel que soit l'ordre de chargement — sans un seul !important.
   ========================================================================== */

/* ---- Police globale ---------------------------------------------------- */

body,
#page-container,
#page-container h1, #page-container h2, #page-container h3,
#page-container h4, #page-container h5, #page-container h6,
#page-container p, #page-container li, #page-container a,
#page-container blockquote, #page-container label, #page-container figcaption,
#page-container input, #page-container select, #page-container textarea,
#page-container button,
#page-container .et_pb_text,
#page-container .et_pb_module_header,
#page-container .et_pb_blurb_description,
#page-container .et_pb_blurb_container,
#page-container .et_pb_promo_description,
#page-container .et_pb_menu .et-menu li a,
#page-container .et_pb_contact_form_label,
#page-container .et_pb_button {
  font-family: var(--rw-font);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Les polices d'icones doivent survivre a la regle ci-dessus. */
#page-container .et-pb-icon,
#page-container .et_pb_font_icon::before,
#page-container [class^="et-pb-icon"],
#page-container [class*=" et-pb-icon"],
#page-container .et_pb_toggle_title::before,
#page-container .et_pb_contact_reset::before,
#page-container .et-social-icon a::before,
#page-container .et_pb_menu__icon::before,
#page-container .mobile_menu_bar::before,
#page-container .et_pb_blurb .et-pb-icon {
  font-family: "ETmodules" !important;   /* obligatoire : sinon les icones deviennent des carres */
}

/* ---- Corps de texte ---------------------------------------------------- */

body,
#page-container,
#page-container p,
#page-container li,
#page-container .et_pb_text,
#page-container .et_pb_blurb_description {
  font-size: var(--rw-fs-body);
  line-height: var(--rw-lh-body);
  letter-spacing: var(--rw-ls-body);
  color: var(--rw-ink);
}

body { background: var(--rw-bg); }

#page-container p { margin-bottom: var(--rw-s-5); }
#page-container p:last-child { margin-bottom: 0; }

/* ---- Echelle des titres ------------------------------------------------ */

#page-container h1,
#page-container .et_pb_module h1 {
  font-size: var(--rw-fs-h1);
  line-height: var(--rw-lh-title);
  letter-spacing: var(--rw-ls-h1);
  font-weight: var(--rw-fw-bold);
  color: var(--rw-ink);
  text-wrap: balance;
  padding-bottom: 0;
}

#page-container h2,
#page-container .et_pb_module h2 {
  font-size: var(--rw-fs-h2);
  line-height: var(--rw-lh-title);
  letter-spacing: var(--rw-ls-h2);
  font-weight: var(--rw-fw-bold);
  color: var(--rw-ink);
  text-wrap: balance;
  padding-bottom: 0;
}

#page-container h3,
#page-container .et_pb_module h3,
#page-container .et_pb_blurb .et_pb_module_header {
  font-size: var(--rw-fs-h3);
  line-height: var(--rw-lh-title);
  letter-spacing: var(--rw-ls-h3);
  font-weight: var(--rw-fw-semi);
  color: var(--rw-ink);
  padding-bottom: 0;
}

#page-container h4,
#page-container .et_pb_module h4 {
  font-size: var(--rw-fs-lead);
  line-height: var(--rw-lh-lead);
  letter-spacing: var(--rw-ls-lead);
  font-weight: var(--rw-fw-semi);
  color: var(--rw-ink);
  padding-bottom: 0;
}

#page-container h5, #page-container h6 {
  font-size: var(--rw-fs-body);
  letter-spacing: var(--rw-ls-label);
  font-weight: var(--rw-fw-semi);
  text-transform: uppercase;
  color: var(--rw-ink-2);
  padding-bottom: 0;
}

/* Le titre principal du premier ecran monte d'un cran. */
#page-container .et_pb_section:first-of-type h1,
#page-container .et_pb_section_1 h1 {
  font-size: var(--rw-fs-display);
  line-height: var(--rw-lh-display);
  letter-spacing: var(--rw-ls-display);
}

/* ---- Texte secondaire -------------------------------------------------- */

#page-container .et_pb_blurb_description p,
#page-container .et_pb_promo_description p,
#page-container .et_pb_slide_description p {
  color: var(--rw-ink-2);
}

/* ---- Texte sur fond sombre --------------------------------------------- */

#page-container .et_pb_bg_layout_dark,
#page-container .et_pb_bg_layout_dark h1,
#page-container .et_pb_bg_layout_dark h2,
#page-container .et_pb_bg_layout_dark h3,
#page-container .et_pb_bg_layout_dark h4,
#page-container .et_pb_bg_layout_dark .et_pb_module_header {
  color: var(--rw-ink-inv);
}

#page-container .et_pb_bg_layout_dark p,
#page-container .et_pb_bg_layout_dark li,
#page-container .et_pb_bg_layout_dark .et_pb_blurb_description {
  color: var(--rw-ink-inv-2);
}

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

#page-container a {
  color: var(--rw-accent);
  text-decoration: none;
  transition: color var(--rw-t-fast) var(--rw-ease);
}

#page-container a:hover { color: var(--rw-accent-hover); }

#page-container .et_pb_text a:not(.et_pb_button),
#page-container .et_pb_blurb_description a:not(.et_pb_button) {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

/* ---- Focus clavier : visible partout ----------------------------------- */

#page-container a:focus-visible,
#page-container button:focus-visible,
#page-container input:focus-visible,
#page-container select:focus-visible,
#page-container textarea:focus-visible,
#page-container [tabindex]:focus-visible {
  outline: 3px solid var(--rw-accent);
  outline-offset: 3px;
  border-radius: var(--rw-r-sm);
}

#page-container .et_pb_bg_layout_dark a:focus-visible,
#page-container .et_pb_bg_layout_dark button:focus-visible {
  outline-color: var(--rw-accent-light);
}

/* ---- Selection --------------------------------------------------------- */

::selection { background: var(--rw-accent); color: var(--rw-accent-on); }

/* ---- Mouvement reduit -------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .001ms !important;   /* neutralise les animations Divi */
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
}
