.elementor-1642 .elementor-element.elementor-element-99a28a2{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--margin-top:0px;--margin-bottom:30px;--margin-left:0px;--margin-right:0px;}.elementor-1642 .elementor-element.elementor-element-4477214 > .elementor-widget-container{margin:0px 0px 0px 0px;padding:0px 0px 0px 0px;}.elementor-1642 .elementor-element.elementor-element-2c0dc16{--display:flex;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-1642 .elementor-element.elementor-element-7f82897{width:var( --container-widget-width, 81.893% );max-width:81.893%;--container-widget-width:81.893%;--container-widget-flex-grow:0;}.elementor-1642 .elementor-element.elementor-element-7f82897.elementor-element{--flex-grow:0;--flex-shrink:0;}.elementor-1642 .elementor-element.elementor-element-b20fd84{--display:flex;}.elementor-1642 .elementor-element.elementor-element-f7e0fbf{width:var( --container-widget-width, 100% );max-width:100%;--container-widget-width:100%;--container-widget-flex-grow:0;}.elementor-1642 .elementor-element.elementor-element-f7e0fbf.elementor-element{--flex-grow:0;--flex-shrink:0;}.elementor-1642 .elementor-element.elementor-element-28bc3af{--display:flex;}.elementor-1642 .elementor-element.elementor-element-b46550e{--display:flex;--margin-top:0px;--margin-bottom:19px;--margin-left:0px;--margin-right:0px;}.elementor-1642 .elementor-element.elementor-element-b46550e.e-con{--flex-grow:0;--flex-shrink:0;}.elementor-1642 .elementor-element.elementor-element-3ae5641{width:var( --container-widget-width, 84% );max-width:84%;--container-widget-width:84%;--container-widget-flex-grow:0;}.elementor-1642 .elementor-element.elementor-element-3ae5641.elementor-element{--flex-grow:0;--flex-shrink:0;}.elementor-1642 .elementor-element.elementor-element-41b983fe{--display:flex;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-1642 .elementor-element.elementor-element-7a858f1c{width:var( --container-widget-width, 31% );max-width:31%;--container-widget-width:31%;--container-widget-flex-grow:0;}.elementor-1642 .elementor-element.elementor-element-7a858f1c > .elementor-widget-container{margin:0px 0px 8px 0px;}.elementor-1642 .elementor-element.elementor-element-7a858f1c.elementor-element{--align-self:center;--order:99999 /* order end hack */;--flex-grow:0;--flex-shrink:0;}.elementor-1642 .elementor-element.elementor-element-7a858f1c .elementor-button:hover, .elementor-1642 .elementor-element.elementor-element-7a858f1c .elementor-button:focus{color:var( --e-global-color-astglobalcolor5 );}.elementor-1642 .elementor-element.elementor-element-7a858f1c .elementor-button:hover svg, .elementor-1642 .elementor-element.elementor-element-7a858f1c .elementor-button:focus svg{fill:var( --e-global-color-astglobalcolor5 );}.elementor-1642 .elementor-element.elementor-element-7a858f1c .elementor-button{border-radius:20px 20px 20px 20px;}.elementor-1642 .elementor-element.elementor-element-698942ff{width:var( --container-widget-width, 34% );max-width:34%;--container-widget-width:34%;--container-widget-flex-grow:0;text-align:center;font-size:13px;color:var( --e-global-color-text );}.elementor-1642 .elementor-element.elementor-element-698942ff > .elementor-widget-container{margin:0px 0px 0px 0px;padding:0px 0px 0px 0px;}.elementor-1642 .elementor-element.elementor-element-698942ff.elementor-element{--align-self:center;--order:99999 /* order end hack */;}.elementor-1642 .elementor-element.elementor-element-698942ff p{margin-block-end:0px;}.elementor-1642 .elementor-element.elementor-element-6ff95748.elementor-element{--order:99999 /* order end hack */;}body.elementor-page-1642:not(.elementor-motion-effects-element-type-background), body.elementor-page-1642 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-astglobalcolor5 );}:root{--page-title-display:none;}@media(max-width:767px){.elementor-1642 .elementor-element.elementor-element-b46550e{--width:316px;}.elementor-1642 .elementor-element.elementor-element-3ae5641{width:var( --container-widget-width, 317px );max-width:317px;--container-widget-width:317px;--container-widget-flex-grow:0;}.elementor-1642 .elementor-element.elementor-element-7a858f1c{--container-widget-width:198px;--container-widget-flex-grow:0;width:var( --container-widget-width, 198px );max-width:198px;}}/* Start custom CSS for html, class: .elementor-element-7f82897 *//* ========== Bloc 2 — Timeline animée (scopé) ========== */
.b2-block{
  /* Couleurs */
  --blue:#004f91;
  --orange:#ef7b14;

  /* Tailles */
  --icon:56px;               /* taille icône (réduit) */
  --icon-radius:12px;        /* arrondi carré icône */
  --track-x:14px;            /* marge rail */
  --track-w:4px;             /* épaisseur rail */
  --gap-y:24px;              /* espacement vertical items */
  --content-gap:24px;        /* espace texte ↔ icône */
  --dot:10px;                /* diamètre du point sur le rail */

  /* Polices — réglables facilement */
  --h-min:22px;   --h-fluid:3.2vw;  --h-max:34px;  /* titres */
  --p-min:15px;   --p-fluid:1.8vw;  --p-max:18px;  /* textes */
}

/* liste + rail */
.b2-timeline{
  position:relative; list-style:none; margin:0; padding:0;
}
.b2-timeline::before{
  content:""; position:absolute;
  left:calc(var(--track-x) + var(--icon)/2 - var(--track-w)/2);
  top:0; bottom:0; width:var(--track-w);
  background:var(--orange); border-radius:2px;
}

/* item */
.b2-item{
  position:relative;
  padding: var(--gap-y) 0 var(--gap-y)
           calc(var(--track-x) + var(--icon) + var(--content-gap));
}
.b2-item:first-child{ padding-top:6px; }

/* icône */
.b2-icon{
  position:absolute; left:var(--track-x); top:50%; transform:translateY(-50%);
  width:var(--icon); height:var(--icon);
  border-radius:var(--icon-radius);
  background:var(--blue); color:#fff; display:flex; align-items:center; justify-content:center;
  z-index:1;
}
.b2-item.is-accent .b2-icon{ background:var(--orange); }
.b2-icon svg{ width:62%; height:62%; display:block }

/* petit point sur le rail */
.b2-item::before{
  content:""; position:absolute; top:50%;
  left:calc(var(--track-x) + var(--icon)/2);
  width:var(--dot); height:var(--dot);
  transform:translate(-50%,-50%) scale(.6);
  background:var(--orange); border-radius:50%; opacity:0;
}

/* contenu */
.b2-content h3{
  margin:0 0 .15em; color:var(--blue);
  font-weight:700; line-height:1.15;
  font-size:clamp(var(--h-min), var(--h-fluid), var(--h-max));
}
.b2-content p{
  margin:0; color:var(--blue);
  font-size:clamp(var(--p-min), var(--p-fluid), var(--p-max));
  line-height:1.45;
}

/* ========== Animations (fallback: au chargement) ========== */
.b2-block.is-animated .b2-icon{
  transform:translate(-28px,-50%) scale(.9);
  opacity:0;
  animation: b2-icon-in 1.2s cubic-bezier(.22,.9,.3,1.2) forwards;
}
.b2-block.is-animated .b2-item::before{
  animation: b2-dot-pop 1.2s cubic-bezier(.22,.9,.3,1.2) forwards;
}
/* décalages progressifs (stagger) */
.b2-block.is-animated .b2-item:nth-child(1) .b2-icon{ animation-delay:.10s }
.b2-block.is-animated .b2-item:nth-child(2) .b2-icon{ animation-delay:.35s }
.b2-block.is-animated .b2-item:nth-child(3) .b2-icon{ animation-delay:.60s }
.b2-block.is-animated .b2-item:nth-child(4) .b2-icon{ animation-delay:.85s }

.b2-block.is-animated .b2-item:nth-child(1)::before{ animation-delay:.20s }
.b2-block.is-animated .b2-item:nth-child(2)::before{ animation-delay:.45s }
.b2-block.is-animated .b2-item:nth-child(3)::before{ animation-delay:.70s }
.b2-block.is-animated .b2-item:nth-child(4)::before{ animation-delay:.95s }

@keyframes b2-icon-in{
  60%{ transform:translate(4px,-50%) scale(1.04); opacity:1 }
  100%{ transform:translate(0,-50%) scale(1); opacity:1 }
}
@keyframes b2-dot-pop{
  0%{ opacity:0; transform:translate(-50%,-50%) scale(.6) }
  60%{ opacity:1; transform:translate(-50%,-50%) scale(1.15) }
  100%{ opacity:1; transform:translate(-50%,-50%) scale(1) }
}

/* ========== Scroll-driven animations (si supportées) ========== */
@supports (animation-timeline: view()) {
  .b2-item{ view-timeline-name: --b2; view-timeline-axis: block; }

  .b2-block.is-animated .b2-icon{
    animation-name: b2-icon-in;
    animation-duration: 1ms; /* requis mais ignoré avec timeline */
    animation-timing-function: cubic-bezier(.22,.9,.3,1.2);
    animation-timeline: --b2;
    animation-range: entry 10% cover 40%; /* plus lent au scroll */
  }
  .b2-block.is-animated .b2-item::before{
    animation-name: b2-dot-pop;
    animation-duration: 1ms;
    animation-timeline: --b2;
    animation-range: entry 22% cover 40%;
  }

  /* on supprime les delays pour que le scroll pilote tout naturellement */
  .b2-block.is-animated .b2-item .b2-icon,
  .b2-block.is-animated .b2-item::before{ animation-delay: 0s !important; }
}

/* Réduction d’animation si préférences utilisateurs */
@media (prefers-reduced-motion: reduce){
  .b2-block.is-animated .b2-icon,
  .b2-block.is-animated .b2-item::before{
    animation: none; opacity:1; transform:translate(0,-50%);
  }
}

/* responsive */
@media (max-width:900px){
  .b2-block{ --icon:52px; --icon-radius:12px; --gap-y:22px }
}
@media (max-width:600px){
  .b2-block{
    --icon:46px; --icon-radius:10px; --gap-y:18px; --track-w:3px;
    --content-gap:20px; --dot:9px;
    --h-max:30px; --p-max:17px;
  }
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-f7e0fbf *//* Elem'Com — Avant→Après (canon v1.0) */
.aa {
  --left: 1.30fr;         /* largeur colonne gauche (desktop) */
  --right: 2.10fr;        /* largeur colonne droite (desktop) */
  --mid: 48px;            /* taille du bouton flèche */
  --gap: 18px;
  --radius: 16px;
  --blue: #004f91;
  --ink: #234d74;
  --accent: #ef7b14;

  font-family: "Poppins", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}

/* Grille 3 colonnes : gauche | flèche | droite */
.aa .row{
  display: grid;
  grid-template-columns: minmax(0, var(--left)) var(--mid) minmax(0, var(--right));
  column-gap: var(--gap);
  align-items: stretch;
  margin: 12px 0;
}

/* Cartes */
.aa .card{
  background: #fff;
  border: 2px solid var(--blue);
  border-radius: var(--radius);
  padding: 12px 16px;
  min-height: 60px;
  display: flex;
  align-items: center;
  gap: 10px;
}
.aa .left  { grid-column: 1; }
.aa .right { grid-column: 3; }

/* Badges fins */
.aa .badge{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .28em;
  height: 1.45em;
  padding: 0 .6em;
  border-radius: .9em;
  font-weight: 800;
  font-size: .72em;
  border: 1px solid currentColor;
}
.aa .badge--avant { color: var(--blue);  background: #e6f0f8; }
.aa .badge--apres { color: var(--accent); background: #fde9d7; }

/* Icône visage */
.aa .icon { width: 28px; height: 28px; display: grid; place-items: center; }

/* Texte */
.aa .txt{
  color: var(--ink);
  font-size: clamp(14px, 0.95vw, 16px);
  line-height: 1.35;
  font-weight: 400;
}

/* Colonne flèche centrée */
.aa .mid{ grid-column: 2; display: grid; place-items: center; }
.aa .toggle{
  width: var(--mid); height: var(--mid);
  border-radius: 999px; border: 0; cursor: pointer;
  display: grid; place-items: center;
  background: var(--accent); color: #fff;
  box-shadow: 0 6px 14px rgba(0,0,0,.12);
}
.aa .toggle svg{ width: 60%; height: 60%; }

/* Panneau droit : fermé par défaut */
.aa .right{
  max-height: 0; opacity: 0; overflow: hidden; transform: translateY(2px);
  transition: max-height .28s ease, opacity .18s ease, transform .28s ease, padding .18s ease;
  padding-block: 0;
}
.aa .row.is-open .right{
  max-height: 420px; opacity: 1; transform: none; padding-block: 12px;
}

/* Modes d’affichage desktop (choisis UNE classe) */

/* 1) Tout sur une ligne (nécessite assez de largeur à droite) */
.aa--one-line .right .txt{
  white-space: nowrap;
  overflow: visible;         /* on ne tronque pas */
  text-overflow: clip;
}

/* 2) Autoriser le retour à la ligne (jamais de coupe) */
.aa--wrap .right .txt{
  white-space: normal;
  overflow: visible;
  text-overflow: initial;
}

/* Responsive : empile à partir de 1000px */
@media (max-width:1000px){
  .aa .row{
    grid-template-columns: 1fr var(--mid);
    grid-template-rows: auto auto;
    row-gap: 10px;
  }
  .aa .left  { grid-column: 1 / 3; }
  .aa .right { grid-column: 1 / 3; }
  .aa .right .txt{ white-space: normal; }
}/* End custom CSS */