/* ==========================================================================
   RACINE WEB — COMPOSANTS
   Boutons, champs de formulaire, navigation, cartes.
   Meme strategie de specificite : prefixe #page-container, pas de !important
   sauf quand une police d'icone ou une animation Divi l'impose.
   ========================================================================== */

/* ---- Boutons ------------------------------------------------------------
   Divi dessine des boutons a bordure epaisse avec une fleche en ::after.
   On passe en pastille pleine, un seul accent, sans fleche ni ombre.
   ------------------------------------------------------------------------ */

#page-container .et_pb_button,
#page-container .et_pb_contact_submit,
#page-container .et_pb_newsletter_button {
  font-family: var(--rw-font);
  font-size: var(--rw-fs-body);
  font-weight: var(--rw-fw-medium);
  letter-spacing: var(--rw-ls-body);
  line-height: 1.2;

  background-color: var(--rw-accent);
  color: var(--rw-accent-on);
  border: 1px solid var(--rw-accent);
  border-radius: var(--rw-r-pill);
  padding: 14px 28px;

  box-shadow: none;
  text-transform: none;
  transition:
    background-color var(--rw-t-fast) var(--rw-ease),
    border-color var(--rw-t-fast) var(--rw-ease),
    transform var(--rw-t-fast) var(--rw-ease);
}

#page-container .et_pb_button:hover,
#page-container .et_pb_contact_submit:hover,
#page-container .et_pb_newsletter_button:hover {
  background-color: var(--rw-accent-hover);
  border-color: var(--rw-accent-hover);
  color: var(--rw-accent-on);
  padding: 14px 28px;          /* Divi elargit au survol : on neutralise */
  transform: translateY(-1px);
}

#page-container .et_pb_button:active { transform: translateY(0); }

/* Supprimer la fleche Divi : elle alourdit et n'apporte rien ici. */
#page-container .et_pb_button::after,
#page-container .et_pb_button::before {
  display: none !important;    /* Divi la reactive par une regle plus specifique */
}

/* Bouton secondaire : contour, meme geometrie. */
#page-container .et_pb_button.rw-btn-ghost {
  background-color: transparent;
  color: var(--rw-accent);
  border-color: var(--rw-border-ui);
}
#page-container .et_pb_button.rw-btn-ghost:hover {
  background-color: var(--rw-accent-soft);
  border-color: var(--rw-accent);
  color: var(--rw-accent-hover);
}

/* Boutons poses sur un fond sombre. */
#page-container .et_pb_bg_layout_dark .et_pb_button {
  background-color: var(--rw-ink-inv);
  border-color: var(--rw-ink-inv);
  color: var(--rw-accent);
}
#page-container .et_pb_bg_layout_dark .et_pb_button:hover {
  background-color: var(--rw-accent-light-2);
  border-color: var(--rw-accent-light-2);
  color: var(--rw-accent-hover);
}

/* ---- Champs de formulaire ----------------------------------------------
   Bordure a 3.61:1 sur blanc : conforme au critere WCAG 1.4.11 pour les
   composants d'interface.
   ------------------------------------------------------------------------ */

#page-container .et_pb_contact_form input[type="text"],
#page-container .et_pb_contact_form input[type="email"],
#page-container .et_pb_contact_form textarea,
#page-container .et_pb_contact_field input,
#page-container .et_pb_contact_field textarea {
  font-family: var(--rw-font);
  font-size: var(--rw-fs-body);
  letter-spacing: var(--rw-ls-body);
  line-height: var(--rw-lh-body);

  background-color: var(--rw-bg);
  color: var(--rw-ink);
  border: 1px solid var(--rw-border-ui);
  border-radius: var(--rw-r);
  padding: 14px 16px;

  transition:
    border-color var(--rw-t-fast) var(--rw-ease),
    box-shadow var(--rw-t-fast) var(--rw-ease);
}

#page-container .et_pb_contact_form input::placeholder,
#page-container .et_pb_contact_form textarea::placeholder {
  color: var(--rw-ink-2);
  opacity: 1;
}

#page-container .et_pb_contact_form input:focus,
#page-container .et_pb_contact_form textarea:focus {
  border-color: var(--rw-accent);
  box-shadow: 0 0 0 3px var(--rw-accent-soft);
  outline: none;
}

/* Champs poses sur un fond sombre. */
#page-container .et_pb_bg_layout_dark .et_pb_contact_form input,
#page-container .et_pb_bg_layout_dark .et_pb_contact_form textarea {
  background-color: rgba(255,255,255,.06);
  color: var(--rw-ink-inv);
  border-color: rgba(255,255,255,.34);
}
#page-container .et_pb_bg_layout_dark .et_pb_contact_form input::placeholder,
#page-container .et_pb_bg_layout_dark .et_pb_contact_form textarea::placeholder {
  color: var(--rw-ink-inv-2);
}
#page-container .et_pb_bg_layout_dark .et_pb_contact_form input:focus,
#page-container .et_pb_bg_layout_dark .et_pb_contact_form textarea:focus {
  border-color: var(--rw-accent-light);
  box-shadow: 0 0 0 3px rgba(127,160,240,.28);
}

/* Message d'erreur ou de confirmation du formulaire. */
#page-container .et-pb-contact-message p {
  font-size: var(--rw-fs-body);
  color: var(--rw-ink);
}
#page-container .et_pb_contact_error_text {
  color: var(--rw-error);
  font-weight: var(--rw-fw-medium);
}

/* ---- Navigation ---------------------------------------------------------
   Barre fine, fond translucide, un seul accent sur l'element actif.
   ------------------------------------------------------------------------ */

#page-container .et_pb_menu .et-menu > li > a {
  font-family: var(--rw-font);
  font-size: var(--rw-fs-body);
  font-weight: var(--rw-fw-regular);
  letter-spacing: var(--rw-ls-body);
  color: var(--rw-ink);
  opacity: 1;
  transition: color var(--rw-t-fast) var(--rw-ease);
}

#page-container .et_pb_menu .et-menu > li > a:hover {
  color: var(--rw-accent);
  opacity: 1;
}

#page-container .et_pb_menu .et-menu > li.current-menu-item > a {
  color: var(--rw-accent);
  font-weight: var(--rw-fw-medium);
}

/* Menu mobile : lisible, sans fioriture. */
#page-container .et_mobile_menu {
  border-top: 3px solid var(--rw-accent);
  box-shadow: var(--rw-shadow);
  border-radius: 0 0 var(--rw-r) var(--rw-r);
}
#page-container .et_mobile_menu li a {
  font-family: var(--rw-font);
  font-size: var(--rw-fs-body);
  letter-spacing: var(--rw-ls-body);
  color: var(--rw-ink);
  border-bottom: 1px solid var(--rw-line);
  padding: 14px 5%;
}
#page-container .et_mobile_menu li:last-child a { border-bottom: 0; }

/* ---- Cartes (modules blurb) --------------------------------------------- */

#page-container .et_pb_blurb .et_pb_module_header {
  margin-bottom: var(--rw-s-3);
}

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

/* Cartes cliquables : la cible entiere reagit. */
#page-container .et_pb_blurb a.et_pb_more_button,
#page-container .et_pb_blurb .et_pb_main_blurb_image a {
  transition: opacity var(--rw-t-fast) var(--rw-ease);
}

/* ---- Images -------------------------------------------------------------
   Jamais deformees, jamais encadrees.
   ------------------------------------------------------------------------ */

#page-container .et_pb_image img,
#page-container .et_pb_blurb img {
  max-width: 100%;
  height: auto;
  border-radius: var(--rw-r);
}

/* ---- Barre de defilement horizontale : jamais ---------------------------- */

html, body { overflow-x: hidden; }
