/*
Theme Name: Avada Child
Description: Child theme for Avada theme
Author: ThemeFusion
Author URI: https://theme-fusion.com
Template: Avada
Version: 1.0.0
Text Domain:  Avada
*/

/* ==========================================================================
   Cibles tactiles
   Mesure du 2026-08-18 : 58 elements interactifs sous 44 px sur la seule page
   de contact, les liens de menu a 17 px de haut et les champs de formulaire a
   21 px. Au doigt, on vise a cote, et sur un telephone c'est la difference
   entre un formulaire envoye et un formulaire abandonne.

   Portee volontairement limitee aux commandes : champs, boutons, liens de menu,
   liens de pied. Les liens en pleine phrase sont exclus, la norme les exemptant
   explicitement, et les agrandir disloquerait les paragraphes.
   ========================================================================== */

.fusion-form-input,
.fusion-form-field input[type="text"],
.fusion-form-field input[type="email"],
.fusion-form-field input[type="tel"],
.fusion-form-field select,
.fusion-form-field textarea,
input[type="search"],
.fusion-button,
button[type="submit"],
.fusion-form-submit-field button {
	min-height: 44px;
}

.fusion-form-field textarea {
	min-height: 132px;   /* trois lignes atteignables, pas une seule */
}

/* Les liens de navigation restent alignes, seule leur zone cliquable grandit. */
.awb-menu__main-a,
.awb-menu__sub-a,
.fusion-menu > li > a,
.fusion-secondary-menu > li > a {
	min-height: 44px;
	display: flex;
	align-items: center;
}

/* Le bouton d'ouverture d'un sous-menu mesurait 16 x 6 px : impossible a viser. */
.awb-menu__open-nav-submenu,
.awb-menu__m-toggle,
.fusion-mobile-nav-holder .fusion-mobile-menu-icons a {
	min-width: 44px;
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

/* Les listes de liens du pied de page et des accordeons d'acces. */
.fusion-footer-widget-area ul li a,
.fusion-accordian .panel-title a {
	min-height: 44px;
	display: flex;
	align-items: center;
}

@media (min-width: 1025px) {
	/* Au clavier et a la souris la contrainte ne s'applique pas : on rend leur
	   hauteur naturelle aux liens de menu pour ne pas deformer l'en-tete. */
	.awb-menu__main-a,
	.awb-menu__sub-a {
		min-height: 0;
	}
}

/* --------------------------------------------------------------------------
   Deuxieme passe, apres mesure : 58 cibles ramenees a 21, et la raison de ce
   qui resistait est instructive. `min-height` n'a AUCUN effet sur un element
   `inline`, ce que sont les liens par defaut : les regles ci-dessus n'ont porte
   que la ou elles fixaient aussi `display`. Les selecteurs suivants le posent
   donc systematiquement.
   -------------------------------------------------------------------------- */

.fusion-button,
.fusion-privacy-bar-acceptance,
.fusion-privacy-bar-reject,
.fusion-sb-toggle,
.fusion-top-top-link,
.awb-menu__open-nav-submenu {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	min-width: 44px;
}

/* Le bouton d'ouverture d'un sous-menu mesurait 16 x 6 px : Avada lui impose sa
   propre taille, d'ou la surcharge explicite. */
.awb-menu__open-nav-submenu {
	padding: 0 12px !important;
}

/* Le lien du logo enveloppe une image : c'est elle qui doit porter la hauteur. */
.fusion-logo a,
.fusion-header .fusion-logo-link {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
}

/* ── Encarts d'attente (jalon 4.6 bis) ────────────────────────────────────────
   Un encart nomme une piece que l'association doit encore fournir. Il n'existe
   que pour elle : le visiteur ne doit pas voir les trous d'un site en cours de
   remplissage. La classe « ojbt-edition » est posee sur le corps de page par le
   theme enfant, pour un role d'edition ou pendant la maintenance. */
.ojbt-encart { display: none !important; }
.ojbt-edition .ojbt-encart { display: flex !important; }
.ojbt-edition .ojbt-encart::after {
	content: "à fournir";
	position: absolute; top: 4px; right: 6px;
	font-size: .55rem; letter-spacing: .04em; text-transform: uppercase;
	color: var(--awb-color6);
}
.ojbt-partenaires .place { position: relative; }

/* -- Documents a telecharger (jalon 4.17) -----------------------------------
   Une ligne de telechargement dit ce qu'on va ouvrir, son format et son poids :
   un visiteur en itinerance decide sur ce dernier. L'encart d'attente reprend le
   meme gabarit, de sorte que la mise en page ne bouge pas quand le document
   arrive. */
.ojbt-document, .ojbt-document-attendu {
	display: flex; flex-direction: column; gap: 2px;
	padding: 12px 16px; margin: 8px 0;
	border: 1px solid var(--awb-color3); border-radius: 2px;
	background: var(--awb-color1); text-decoration: none;
}
.ojbt-document-attendu { border-style: dashed; }
.ojbt-document b, .ojbt-document-attendu b { color: var(--awb-color7); font-weight: 600; }
.ojbt-document span, .ojbt-document-attendu span { font-size: .8rem; color: var(--awb-color4); }
.ojbt-document:hover, .ojbt-document:focus-visible { border-color: var(--awb-color5); }
.ojbt-document-attendu code { font-size: .8rem; }

/* -- Pages d'etat, maintenance et bientot disponible (jalon 4.2 bis) --------
   WHY : la zone principale garde le remplissage prevu pour une page ordinaire,
   ce qui laisse un bandeau blanc au-dessus de l'ecran d'etat — alors que celui-ci
   est cense occuper la hauteur entiere. Le fond du corps est pose ici aussi, faute
   de quoi il reste blanc derriere le conteneur. */
body.fusion-body:has(.awb-maintenance-content) { background-color: var(--awb-color8); }
.awb-maintenance-content { margin: 0; }
main:has(> .fusion-row > .awb-maintenance-content) { padding: 0 !important; }
.awb-maintenance-content .fusion-button { margin-left: 5px; margin-right: 5px; }

/* ── Styles sortis des blocs encodés (jalon 6, défaut de production) ────────
   WHY ici et non dans le contenu : le raccourci [fusion_code] d'Avada retire
   la balise <style> à l'affichage mais garde son contenu, qui s'affichait donc
   en clair au visiteur. Ces règles sont désormais servies aux deux langues et
   aux deux sites, versionnées et mises en cache comme le reste de la feuille. */

/* — depuis « bloc-nos-partenaires » (page #1721) — */
.ojbt-partenaires{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:14px;margin:0}
.ojbt-partenaires .place{aspect-ratio:5/2;border:1px dashed var(--awb-color3);border-radius:2px;
 display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
 text-align:center;padding:8px;background:var(--awb-color1);text-decoration:none}
.ojbt-partenaires a.place:hover,.ojbt-partenaires a.place:focus-visible{border-style:solid;border-color:var(--awb-color4)}
.ojbt-partenaires .place b{font-size:.8rem;font-weight:500;color:var(--awb-color7);line-height:1.2}
.ojbt-partenaires .place span{font-size:.6rem;color:var(--awb-color4);word-break:break-all;line-height:1.3}
.ojbt-partenaires .place em{font-size:.6rem;color:var(--awb-color4);font-style:normal}
.ojbt-edition p.ojbt-encart{display:block !important}
.ojbt-partenaires .place img{max-width:100%;max-height:100%;object-fit:contain}

/* — depuis « instrumentation » (page #1647) — */
.ojbt-instru{
      --ojbt-bg:#1a1632;
      --ojbt-bg-card:#121b2e;
      --ojbt-border:#22324f;
      --ojbt-accent:#4ea1ff;
      --ojbt-accent-soft:#1f3a5c;
      --ojbt-text:#e6ecf5;
      --ojbt-text-dim:#9fb1cc;
      font-family: inherit;
      color: var(--ojbt-text);
      background: var(--ojbt-bg);
      padding: 50px 5%;
      border-radius: 12px;
      line-height: 1.6;
    }
    .ojbt-instru *{box-sizing:border-box;}
    .ojbt-instru h1{
      font-size: 2.1em;
      margin: 0 0 6px;
      color: #fff;
    }
    .ojbt-instru .ojbt-intro{
      color: var(--ojbt-text-dim);
      margin-bottom: 20px;
      font-size: 1.05em;
    }
    .ojbt-instru .ojbt-coords{
      display:flex;
      flex-wrap:wrap;
      gap: 14px;
      margin-bottom: 40px;
    }
    .ojbt-instru .ojbt-coords span{
      background: var(--ojbt-bg-card);
      border:1px solid var(--ojbt-border);
      padding: 8px 16px;
      border-radius: 30px;
      font-size: 0.9em;
      color: var(--ojbt-text-dim);
    }
    .ojbt-instru .ojbt-coords strong{color:#fff;}

    .ojbt-instru h2{
      font-size: 1.5em;
      margin: 50px 0 18px;
      padding-bottom: 10px;
      border-bottom: 2px solid var(--ojbt-accent-soft);
      color: #fff;
    }
    .ojbt-instru h3{
      font-size: 1.15em;
      margin: 28px 0 14px;
      color: var(--ojbt-accent);
    }

    .ojbt-instru .ojbt-limits{
      background: var(--ojbt-bg-card);
      border:1px solid var(--ojbt-border);
      border-left: 4px solid var(--ojbt-accent);
      padding: 16px 20px;
      border-radius: 6px;
      margin-bottom: 10px;
    }
    .ojbt-instru .ojbt-limits ul{margin:0;padding-left:20px;}
    .ojbt-instru .ojbt-limits li{color: var(--ojbt-text-dim);}

    .ojbt-instru .ojbt-card{
      background: var(--ojbt-bg-card);
      border:1px solid var(--ojbt-border);
      border-radius: 10px;
      padding: 26px 26px 10px;
      margin-bottom: 14px;
    }

    .ojbt-instru table{
      width: 100%;
      border-collapse: collapse;
      margin: 6px 0 18px;
    }
    .ojbt-instru table th,
    .ojbt-instru table td{
      text-align: left;
      padding: 10px 14px;
      border-bottom: 1px solid var(--ojbt-border);
      font-size: 0.95em;
    }
    .ojbt-instru table th{
      color: var(--ojbt-accent);
      font-weight: 600;
      width: 42%;
    }
    .ojbt-instru table.ojbt-table-multi th{
      width: auto;
      text-align: center;
    }
    .ojbt-instru table.ojbt-table-multi td{
      text-align: center;
    }
    .ojbt-instru table.ojbt-table-multi td:first-child{
      text-align: left;
      color: var(--ojbt-text-dim);
    }
    .ojbt-instru table td{
      color: var(--ojbt-text);
    }
    .ojbt-instru table tr:last-child th,
    .ojbt-instru table tr:last-child td{
      border-bottom: none;
    }

    .ojbt-instru .ojbt-video-placeholder{
      display:flex;
      align-items:center;
      gap:10px;
      color: var(--ojbt-text-dim);
      font-size: 0.85em;
      font-style: italic;
      margin-bottom: 18px;
      padding: 10px 14px;
      background: rgba(255,255,255,0.03);
      border-radius: 6px;
      border: 1px dashed var(--ojbt-border);
    }

    .ojbt-instru .ojbt-usage{
      margin-top: 8px;
    }
    .ojbt-instru .ojbt-usage-block{
      margin-bottom: 18px;
    }
    .ojbt-instru .ojbt-usage-block h4{
      margin: 0 0 8px;
      font-size: 1em;
      color: #fff;
    }
    .ojbt-instru .ojbt-usage-block ul{
      margin:0;
      padding-left: 20px;
    }
    .ojbt-instru .ojbt-usage-block li{
      color: var(--ojbt-text-dim);
      margin-bottom: 4px;
    }

    @media (max-width: 700px){
      .ojbt-instru{padding: 30px 5%;}
      .ojbt-instru table th{width: 50%;}
    }

/* — depuis « historique » (page #1725) — */
.upsis-timeline-wrap {
  background: #1a1632;
  padding: 50px 0 60px;
  font-family: 'Josefin Sans', sans-serif;
}
.upsis-timeline-scroll {
  overflow-x: auto;
  overflow-y: visible;
  padding: 10px 30px 20px;
  -webkit-overflow-scrolling: touch;
}
.upsis-timeline-scroll::-webkit-scrollbar {
  height: 6px;
}
.upsis-timeline-scroll::-webkit-scrollbar-thumb {
  background: #545070;
  border-radius: 3px;
}
.upsis-timeline-track {
  display: flex;
  align-items: flex-start;
  position: relative;
  min-width: max-content;
  padding-top: 60px;
}
.upsis-timeline-track::before {
  content: "";
  position: absolute;
  top: 92px;
  left: 0;
  right: 0;
  height: 2px;
  background: #3a3556;
}
.upsis-tl-item {
  width: 280px;
  flex-shrink: 0;
  padding: 0 24px;
  position: relative;
  text-align: left;
  box-sizing: border-box;
}
.upsis-tl-year {
  display: block;
  color: #ffffff;
  font-size: 26px;
  font-weight: 600;
  letter-spacing: 0.02em;
  margin-bottom: 28px;
}
.upsis-tl-dot {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #1a1632;
  border: 2px solid #ffffff;
  color: #ffffff;
  font-size: 16px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 16px;
  position: relative;
  z-index: 2;
  transition: background 0.2s ease, transform 0.2s ease;
  padding: 0;
}
.upsis-tl-dot:hover {
  background: #ffffff;
  color: #1a1632;
}
.upsis-tl-dot[aria-expanded="true"] {
  background: #ffffff;
  color: #1a1632;
  transform: rotate(45deg);
}
.upsis-timeline-wrap .upsis-tl-title {
  color: #ffffff !important;
  font-size: 16px;
  font-weight: 600;
  margin: 0 0 6px;
  line-height: 1.3;
}
.upsis-tl-summary {
  color: #cfceea;
  font-size: 14px;
  margin: 0;
  line-height: 1.5;
}
.upsis-tl-detail {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease, margin-top 0.3s ease;
  margin-top: 0;
}
.upsis-tl-detail p {
  color: #cfceea;
  font-size: 13px;
  line-height: 1.6;
  margin: 0;
  padding-top: 10px;
  border-top: 1px solid #3a3556;
}
.upsis-tl-item.is-open .upsis-tl-detail {
  max-height: 260px;
  margin-top: 10px;
}

@media (max-width: 768px) {
  .upsis-tl-item { width: 230px; }
}



(function() {
  var dots = document.querySelectorAll('.upsis-tl-dot');
  dots.forEach(function(dot) {
    dot.addEventListener('click', function() {
      var item = dot.closest('.upsis-tl-item');
      var isOpen = item.classList.contains('is-open');
      item.classList.toggle('is-open');
      dot.setAttribute('aria-expanded', !isOpen);
      dot.textContent = isOpen ? '+' : '\u2212';
    });
  });
})();

/* — depuis « instrumentation » (page #1765) — */
.ojbt-instru{
      --ojbt-bg:#1a1632;
      --ojbt-bg-card:#121b2e;
      --ojbt-border:#22324f;
      --ojbt-accent:#4ea1ff;
      --ojbt-accent-soft:#1f3a5c;
      --ojbt-text:#e6ecf5;
      --ojbt-text-dim:#9fb1cc;
      font-family: inherit;
      color: var(--ojbt-text);
      background: var(--ojbt-bg);
      padding: 50px 5%;
      border-radius: 12px;
      line-height: 1.6;
    }
    .ojbt-instru *{box-sizing:border-box;}
    .ojbt-instru h1{
      font-size: 2.1em;
      margin: 0 0 6px;
      color: #fff;
    }
    .ojbt-instru .ojbt-intro{
      color: var(--ojbt-text-dim);
      margin-bottom: 20px;
      font-size: 1.05em;
    }
    .ojbt-instru .ojbt-coords{
      display:flex;
      flex-wrap:wrap;
      gap: 14px;
      margin-bottom: 40px;
    }
    .ojbt-instru .ojbt-coords span{
      background: var(--ojbt-bg-card);
      border:1px solid var(--ojbt-border);
      padding: 8px 16px;
      border-radius: 30px;
      font-size: 0.9em;
      color: var(--ojbt-text-dim);
    }
    .ojbt-instru .ojbt-coords strong{color:#fff;}

    .ojbt-instru h2{
      font-size: 1.5em;
      margin: 50px 0 18px;
      padding-bottom: 10px;
      border-bottom: 2px solid var(--ojbt-accent-soft);
      color: #fff;
    }
    .ojbt-instru h3{
      font-size: 1.15em;
      margin: 28px 0 14px;
      color: var(--ojbt-accent);
    }

    .ojbt-instru .ojbt-limits{
      background: var(--ojbt-bg-card);
      border:1px solid var(--ojbt-border);
      border-left: 4px solid var(--ojbt-accent);
      padding: 16px 20px;
      border-radius: 6px;
      margin-bottom: 10px;
    }
    .ojbt-instru .ojbt-limits ul{margin:0;padding-left:20px;}
    .ojbt-instru .ojbt-limits li{color: var(--ojbt-text-dim);}

    .ojbt-instru .ojbt-card{
      background: var(--ojbt-bg-card);
      border:1px solid var(--ojbt-border);
      border-radius: 10px;
      padding: 26px 26px 10px;
      margin-bottom: 14px;
    }

    .ojbt-instru table{
      width: 100%;
      border-collapse: collapse;
      margin: 6px 0 18px;
    }
    .ojbt-instru table th,
    .ojbt-instru table td{
      text-align: left;
      padding: 10px 14px;
      border-bottom: 1px solid var(--ojbt-border);
      font-size: 0.95em;
    }
    .ojbt-instru table th{
      color: var(--ojbt-accent);
      font-weight: 600;
      width: 42%;
    }
    .ojbt-instru table.ojbt-table-multi th{
      width: auto;
      text-align: center;
    }
    .ojbt-instru table.ojbt-table-multi td{
      text-align: center;
    }
    .ojbt-instru table.ojbt-table-multi td:first-child{
      text-align: left;
      color: var(--ojbt-text-dim);
    }
    .ojbt-instru table td{
      color: var(--ojbt-text);
    }
    .ojbt-instru table tr:last-child th,
    .ojbt-instru table tr:last-child td{
      border-bottom: none;
    }

    .ojbt-instru .ojbt-video-placeholder{
      display:flex;
      align-items:center;
      gap:10px;
      color: var(--ojbt-text-dim);
      font-size: 0.85em;
      font-style: italic;
      margin-bottom: 18px;
      padding: 10px 14px;
      background: rgba(255,255,255,0.03);
      border-radius: 6px;
      border: 1px dashed var(--ojbt-border);
    }

    .ojbt-instru .ojbt-usage{
      margin-top: 8px;
    }
    .ojbt-instru .ojbt-usage-block{
      margin-bottom: 18px;
    }
    .ojbt-instru .ojbt-usage-block h4{
      margin: 0 0 8px;
      font-size: 1em;
      color: #fff;
    }
    .ojbt-instru .ojbt-usage-block ul{
      margin:0;
      padding-left: 20px;
    }
    .ojbt-instru .ojbt-usage-block li{
      color: var(--ojbt-text-dim);
      margin-bottom: 4px;
    }

    @media (max-width: 700px){
      .ojbt-instru{padding: 30px 5%;}
      .ojbt-instru table th{width: 50%;}
    }

/* -- Repli typographique calé sur Josefin Sans -----------------------------
 *
 * WHY ce bloc : la pile de repli du thème était « Verdana, Geneva, sans-serif »,
 * la valeur d'usine d'Avada. Or Verdana est la plus large des sans-serif système
 * et Josefin l'une des plus étroites. Mesuré sur les fichiers de police :
 * la chasse du « n » vaut 0,487 em en Josefin contre 0,622 em en Verdana, soit
 * 28 % de largeur en plus. Tant que la fonte n'est pas chargée, et
 * « font-display: swap » garantit que cet instant existe, la page occupe donc
 * 28 % de largeur en trop, puis se replace d'un bloc.
 *
 * WHY caler sur la chasse et non sur la hauteur d'x : c'est le décalage de mise
 * en page qu'on cherche à supprimer, donc le nombre de lignes qui doit rester
 * constant. Un calage sur la hauteur d'x préserverait la taille perçue mais
 * changerait les retours à la ligne, ce qui est précisément le défaut.
 *
 * WHY Arial comme source : ses métriques sont les plus prévisibles d'un système
 * à l'autre, et une substitution locale n'entraîne aucun téléchargement.
 *
 * Valeurs calculées depuis les fichiers réels, Josefin Sans contre Arial :
 * unités par em 1000 contre 2048, ascendante 750 contre 1854, descendante 250
 * contre 434, chasse du « n » 487 contre 1139.
 */
@font-face {
  font-family: "Josefin Sans repli";
  src: local("Arial"), local("Helvetica Neue"), local("Liberation Sans"), local("Nimbus Sans");
  font-style: normal;
  font-weight: 100 700;
  size-adjust: 87.6%;
  ascent-override: 85.6%;
  descent-override: 28.5%;
  line-gap-override: 0%;
}
