/* ==========================================================================
   Boros Esthetic — compléments de la charte « Le Trait » pour les pages en éléments natifs.
   Disposition, couleurs, typographies, marges, bordures et masquage par écran sont dans
   les RÉGLAGES Elementor (générateur boros-natif.php, kit). Cette feuille ne porte que
   ce qu'Elementor ne sait pas régler : hauteur des boutons, soulignés laiton, survols,
   focus, menu mobile, barre fixe, en-tête collant, trous surlignés.
   Le laiton #B4915A ne sert JAMAIS de texte sur fond clair (2,66:1) : il trace.
   ========================================================================== */

/* --- Base ----------------------------------------------------------------- */
.bo-site .elementor-widget-text-editor p { margin: 0; }
.bo-site .elementor-widget-image img { vertical-align: top; }
.bo-site .elementor-heading-title em { font-style: italic; font-weight: 300; }
.bo-site .bo-trou { background: var(--e-global-color-botrou); color: var(--e-global-color-boencre); padding: 0 .25em; border-radius: 2px; box-decoration-break: clone; -webkit-box-decoration-break: clone; }
.bo-site a.e-con { text-decoration: none; }
.bo-site .elementor-widget-text-editor a { color: inherit; }
.bo-site a:focus-visible { outline: 2px solid var(--e-global-color-bolaiton); outline-offset: 4px; }

/* Groupes « au contenu » (logo, repère, actions) : un conteneur imbriqué prend 100 % par défaut */
.bo-site .e-con.bo-auto { --width: auto; width: auto; max-width: 100%; }
.bo-site .bo-nowrap .elementor-heading-title, .bo-site .bo-nowrap .elementor-icon-list-text { white-space: nowrap; }
.bo-site .bo-equilibre .elementor-heading-title { text-wrap: balance; }
/* Une icône seule mesure sa taille (sinon la hauteur de ligne du kit, 27 px, l'agrandit) */
.bo-site .elementor-widget-icon .elementor-icon-wrapper { line-height: 0; }

/* --- Boutons pilule (widget Bouton, classe bo-bt) -------------------------- */
.bo-site .bo-bt .elementor-button, .bo-site .bo-pilule .elementor-button { display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; white-space: nowrap; transition: background-color .15s, color .15s, border-color .15s; }
.bo-site .bo-bt .elementor-button { min-height: 52px; }
.bo-site .bo-bt.bo-bt--h48 .elementor-button { min-height: 48px; }
.bo-site .bo-pilule .elementor-button { min-height: 40px; }
.bo-site .bo-bt .elementor-button:focus-visible { outline: none; box-shadow: 0 0 0 3px var(--e-global-color-boivoire), 0 0 0 5px var(--e-global-color-bolaiton); }

/* --- Liens soulignés laiton ------------------------------------------------- */
.bo-site .bo-lien .elementor-heading-title a { text-decoration: underline; text-decoration-color: var(--e-global-color-bolaiton); text-underline-offset: 6px; text-decoration-thickness: 1.5px; transition: color .15s; }
.bo-site .bo-lien .elementor-heading-title a:hover { color: var(--e-global-color-bolaitonf); text-decoration-color: var(--e-global-color-bolaitonf); }
.bo-site .bo-sombre .bo-lien .elementor-heading-title a:hover { color: var(--e-global-color-bolaitonc); }
.bo-site .bo-souligne a { text-decoration: underline; text-decoration-color: var(--e-global-color-bolaiton); text-underline-offset: 4px; }

/* --- Cartes et lignes cliquables : flèche qui glisse, titre laiton foncé ---- */
.bo-site .bo-fl .elementor-icon { transition: transform .15s; }
.bo-site a.e-con:hover .bo-fl .elementor-icon { transform: translateX(4px); }
.bo-site a.e-con.bo-ligne:hover .elementor-heading-title { color: var(--e-global-color-bolaitonf); }

/* --- En-tête : le bandeau défile, la barre reste --------------------------- */
.elementor-location-header:has(.bo-n-entete) { position: sticky; top: -41px; z-index: 50; }
body.admin-bar .elementor-location-header:has(.bo-n-entete) { top: -9px; }
.bo-site .bo-ic-bt .elementor-icon { width: 48px; height: 48px; display: flex; align-items: center; justify-content: center; }
.bo-site .bo-ic-bt .elementor-icon:hover { color: var(--e-global-color-bolaitonf); }
.bo-site .bo-sombre .bo-ic-bt .elementor-icon:hover { color: var(--e-global-color-bolaitonc); }
.bo-site .bo-n-nav .elementor-item { line-height: 1.65; }

/* Menu mobile plein écran (planche MobileMenu). Dans l'éditeur il reste visible, à sa place, pour être modifié. */
body.bo-site:not(.elementor-editor-active) .e-con.bo-n-menu { display: none; }
body.bo-site.bo-n-menu-ouvert:not(.elementor-editor-active) .e-con.bo-n-menu { display: flex; position: fixed; inset: 0; z-index: 9999; overflow-y: auto; }
html.bo-n-menu-ouvert, body.bo-n-menu-ouvert { overflow: hidden; }
.bo-site .bo-n-menu > .e-con.bo-n-menu-bas { margin-top: auto; }
.bo-site a.e-con.bo-menu-lien:hover .elementor-heading-title { color: var(--e-global-color-bolaitonc); }

/* Sélecteur de langue « FR · EN » (typo « Boros Repère » du kit) : la langue en cours soulignée laiton, comme le menu */
.bo-site .bo-langues a { text-decoration: none; display: inline-flex; align-items: center; min-height: 40px; }
.bo-site .bo-n-menu .bo-langues a { min-height: 44px; }
.bo-site .bo-langues .cpel-switcher__lang--active a { text-decoration: underline; text-decoration-color: var(--e-global-color-bolaiton); text-underline-offset: 6px; text-decoration-thickness: 1.5px; }

/* --- Pied de page ----------------------------------------------------------- */
.bo-site .bo-n-pied .elementor-heading-title a { transition: color .15s; }
.bo-site .bo-n-pied .elementor-heading-title a:hover { color: var(--e-global-color-bolaitonc); }
.bo-site .bo-n-pied .bo-souligne a { text-decoration-color: currentColor; text-underline-offset: 3px; }
.bo-site .bo-n-pied .bo-souligne a:hover, .bo-site .bo-n-pied .bo-souligne .elementor-heading-title a:hover { color: var(--e-global-color-boivoire); }

/* --- Pages intérieures ------------------------------------------------------ */
/* Fil d'Ariane (texte natif) */
.bo-site .bo-ariane-n nav { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.bo-site .bo-ariane-n a { text-decoration: underline; text-underline-offset: 3px; }
.bo-site .bo-ariane-n a:hover, .bo-site .bo-ariane-n [aria-current] { color: var(--e-global-color-boencre); }
/* Pages légales : intertitres et paragraphes du texte natif, au rythme de 18 px */
.bo-site .bo-legal-n .elementor-widget-container > * + *, .bo-site .bo-legal-n > * + * { margin-top: 18px; }
.bo-site .bo-legal-n h2 { font-size: 26px; font-weight: 400; line-height: 1.25; color: var(--e-global-color-boencre); margin: 42px 0 0; }
.bo-site .bo-legal-n ul { padding-left: 20px; margin-bottom: 0; }
/* Fiches de formation : durée / suivi / prix */
.bo-site .bo-dl dl { display: grid; grid-template-columns: auto 1fr; gap: 6px 16px; margin: 0; }
.bo-site .bo-dl dt { color: var(--e-global-color-bolaitonf); font-weight: 400; }
.bo-site .bo-dl dd { margin: 0; }
@media (max-width: 1200px) { .bo-site .bo-formation-n > .bo-col2-tablette { grid-column: 2; justify-self: start; } }
/* Pied compact : la page finit sur une bande encre, un filet l'en sépare (planche DesktopSoin) */
@media (min-width: 768px) {
  body.bo-fin-encre .bo-n-pied-compact .e-con.bo-n-pied-bas { --padding-top: 0px; }
  body.bo-fin-encre .bo-n-pied-compact .bo-n-pied-bas > .e-con-inner { border-top: 1px solid var(--e-global-color-bofiletsombre); padding-top: 22px; }
}

/* ==========================================================================
   Mobile (≤ 767, planches Mobile*)
   ========================================================================== */
@media (max-width: 767px) {
  .elementor-location-header:has(.bo-n-entete), body.admin-bar .elementor-location-header:has(.bo-n-entete) { top: 0; }
  .bo-site .bo-bt .elementor-button { display: flex; }
  .bo-site .e-con.bo-n-barre { position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; }
  body.bo-site:not(.elementor-editor-active) { padding-bottom: 77px; }
  /* Cibles tactiles de 44 px portées par le lien lui-même (Elementor pose la marge intérieure autour du widget) */
  .bo-site .bo-cible .elementor-heading-title a, .bo-site .bo-lien .elementor-heading-title a { display: inline-flex; align-items: center; min-height: 44px; }
  .bo-site .bo-cible-texte a { display: inline-flex; align-items: center; min-height: 44px; }
  .bo-site .bo-cible-liste .elementor-icon-list-item > a { display: flex; align-items: center; min-height: 44px; }
  .bo-site .bo-n-copie { display: none; }
  .bo-site .bo-ariane-n a { display: inline-flex; align-items: center; min-height: 44px; }
  /* Fiches de formation (planche MobileFormations) : numéro et titre sur une ligne, le reste en pleine largeur */
  .bo-site .bo-formation-n > .bo-contenu-mobile { display: contents; }
  .bo-site .bo-formation-n .bo-col2-mobile { grid-column: 2; align-self: center; }
  .bo-site .bo-formation-n .bo-pleine-ligne { grid-column: 1 / -1; }
  .bo-site .bo-dl dl { display: flex; flex-direction: column; gap: 4px; }
  .bo-site .bo-dl dt { display: none; }
  .bo-site .bo-dl dd { font-size: 14px; color: var(--e-global-color-botaupe); }
  .bo-site .bo-pilule .elementor-button { min-height: 44px; }
}

@media (prefers-reduced-motion: reduce) {
  .bo-site .bo-fl .elementor-icon, .bo-site .bo-bt .elementor-button { transition: none; }
}
