/* H4-Timeline v1.2.4 */
.hmtl{
	--hmtl-card-w:305px;--hmtl-gap:9px;--hmtl-offset:26px;--hmtl-card-bg:#ddebf6;--hmtl-arrow:10px;
	--hmtl-point:18px;--hmtl-point-color:#c61e27;--hmtl-progress:#c61e27;--hmtl-progress-w:4px;--hmtl-progress-t:200ms;--hmtl-line:#16436d;--hmtl-line-w:2px;--hmtl-anchor:34px;
	--hmtl-bar-gap:30px;--hmtl-track-h:8px;--hmtl-thumb-h:8px;--hmtl-thumb-min:40px;--hmtl-bar-r:99px;
	--hmtl-track:rgba(255,255,255,.65);--hmtl-thumb:#2e2c48;
	--hmtl-btn:44px;--hmtl-btn-icon:16px;--hmtl-btn-r:50%;--hmtl-btn-bw:0px;--hmtl-btn-gap:8px;--hmtl-btn-x:0px;--hmtl-nav-space:20px;--hmtl-btn-off:.35;
	--hmtl-btn-bg:#16436d;--hmtl-btn-c:#fff;--hmtl-btn-b:transparent;--hmtl-btn-bg-h:#c61e27;--hmtl-btn-c-h:#fff;--hmtl-btn-b-h:transparent;
	position:relative;
}
/* Le widget occupe toute la largeur disponible, même dans un conteneur centré (réglage Elementor prioritaire). */
:where(.elementor-widget-hm-timeline){width:100%}
.hmtl *,.hmtl ::before,.hmtl ::after{box-sizing:border-box}

/* Zone défilante */
.hmtl__stage{position:relative}
.hmtl__viewport{position:relative;overflow:auto hidden;overscroll-behavior-x:contain;scrollbar-width:none;cursor:grab;outline:0}
.hmtl__viewport::-webkit-scrollbar{display:none}
.hmtl__viewport:focus-visible{outline:2px solid var(--hmtl-line);outline-offset:4px}
.hmtl__viewport.is-drag{cursor:grabbing;user-select:none}
.hmtl__viewport.is-drag a{pointer-events:none}

/* Piste : 3 rangées (cartes haut / ligne / cartes bas) */
.hmtl__track{list-style:none;margin:0;padding:6px 0 26px;display:grid;grid-auto-flow:column;grid-auto-columns:var(--hmtl-card-w);grid-template-rows:auto var(--hmtl-point) auto;justify-content:center;width:max-content;min-width:100%}
.hmtl__item{position:relative;margin:0;padding:0 calc(var(--hmtl-gap)/2);display:grid;grid-row:1/-1;grid-template-rows:subgrid}

/* Cartes + flèche */
.hmtl__card{position:relative;background:var(--hmtl-card-bg);padding:24px;box-shadow:0 8px 14px rgba(0,0,0,.14)}
.hmtl__item--top .hmtl__card{grid-row:1;align-self:end;margin-bottom:var(--hmtl-offset)}
.hmtl__item--bottom .hmtl__card{grid-row:3;align-self:start;margin-top:var(--hmtl-offset)}
.hmtl__card::after{content:"";position:absolute;left:50%;width:calc(var(--hmtl-arrow)*2);height:var(--hmtl-arrow);background:inherit;translate:-50% 0}
.hmtl__item--top .hmtl__card::after{top:100%;clip-path:polygon(0 0,100% 0,50% 100%)}
.hmtl__item--bottom .hmtl__card::after{bottom:100%;clip-path:polygon(50% 0,100% 100%,0 100%)}

/* Typographie (spécificité nulle : l'onglet Style l'emporte) */
:where(.hmtl) .hmtl__title{margin:0 0 .7em;padding:0;font:700 20px/1.2 Montserrat,sans-serif;color:#16436d}
:where(.hmtl) .hmtl__desc{font:400 15px/1.5 Lato,sans-serif;color:#16436d}
.hmtl__desc>:first-child{margin-top:0}
.hmtl__desc>:last-child{margin-bottom:0}
:where(.hmtl) .hmtl__desc a{color:#c36;text-decoration:none}
.hmtl__desc a:is(:hover,:focus-visible){text-decoration:underline}

/* Ligne + points */
.hmtl__point{grid-row:2;position:relative;display:block}
.hmtl__point::before,.hmtl__point::after{content:"";position:absolute;top:50%}
.hmtl__point::before{left:calc(var(--hmtl-gap)/-2);right:calc(var(--hmtl-gap)/-2);height:var(--hmtl-line-w);background:var(--hmtl-line);translate:0 -50%}
.hmtl__item:first-child .hmtl__point::before{left:50%}
.hmtl__item:last-child .hmtl__point::before{right:50%}
.hmtl__point::after{z-index:2;left:50%;width:var(--hmtl-point);height:var(--hmtl-point);border-radius:50%;background:var(--hmtl-point-color);translate:-50% -50%;transition:scale .25s,background-color var(--hmtl-progress-t)}
.hmtl__item.is-done .hmtl__point::after{background:var(--hmtl-point-done,var(--hmtl-point-color))}

/* Progression sur la ligne (positionnée par le JS : --l, --t, --s, --p) */
.hmtl__progress{position:absolute;z-index:1;left:var(--l);top:var(--t);width:var(--s);height:var(--hmtl-progress-w);translate:0 -50%;transform-origin:0 50%;scale:var(--p,0) 1;background:var(--hmtl-progress);border-radius:99px;pointer-events:none;transition:scale var(--hmtl-progress-t) ease-out}
.hmtl.is-stacked .hmtl__progress{width:var(--hmtl-progress-w);height:var(--s);translate:-50% 0;transform-origin:50% 0;scale:1 var(--p,0)}
.hmtl__item:is(:hover,:focus-within) .hmtl__point::after{scale:1.3}

/* Barre + zones de navigation */
.hmtl__head,.hmtl__foot{display:flex;align-items:center;justify-content:flex-end;gap:var(--hmtl-nav-space)}
.hmtl__head{margin-bottom:var(--hmtl-nav-space)}
.hmtl__foot{margin-top:calc(var(--hmtl-bar-gap) - 26px)}
.hmtl--nav-left :is(.hmtl__head,.hmtl__foot){justify-content:flex-start}
.hmtl--nav-left .hmtl__nav{order:-1}
.hmtl--nav-center .hmtl__head,.hmtl--nav-center .hmtl__foot{justify-content:center;flex-wrap:wrap}
.hmtl--nav-center .hmtl__bar{flex-basis:100%}
.hmtl__bar{position:relative;flex:1;height:max(var(--hmtl-track-h),var(--hmtl-thumb-h));cursor:pointer;touch-action:none}
.hmtl__bar::before{content:"";position:absolute;inset:50% 0 auto;height:var(--hmtl-track-h);translate:0 -50%;background:var(--hmtl-track);border-radius:var(--hmtl-bar-r)}
.hmtl__thumb{position:absolute;top:50%;left:0;min-width:var(--hmtl-thumb-min);height:var(--hmtl-thumb-h);margin-top:calc(var(--hmtl-thumb-h)/-2);background:var(--hmtl-thumb);border-radius:var(--hmtl-bar-r);cursor:grab;transition:background-color .2s}
.hmtl--progress .hmtl__thumb{min-width:0;cursor:pointer}
.hmtl__thumb:hover,.hmtl__bar.is-drag .hmtl__thumb{background:var(--hmtl-thumb-hover,var(--hmtl-thumb))}
.hmtl__bar.is-drag .hmtl__thumb{cursor:grabbing}

/* Boutons (préfixe .hmtl pour passer devant les styles de bouton du thème) */
.hmtl__nav{display:flex;gap:var(--hmtl-btn-gap)}
.hmtl .hmtl__btn{display:inline-flex;align-items:center;justify-content:center;flex:none;width:var(--hmtl-btn);height:var(--hmtl-btn);margin:0;padding:0;border:var(--hmtl-btn-bw) solid var(--hmtl-btn-b);border-radius:var(--hmtl-btn-r);background:var(--hmtl-btn-bg);color:var(--hmtl-btn-c);font-size:var(--hmtl-btn-icon);line-height:1;box-shadow:none;cursor:pointer;transition:background-color .2s,color .2s,border-color .2s,opacity .2s}
.hmtl .hmtl__btn:is(:hover,:focus-visible){background:var(--hmtl-btn-bg-h);color:var(--hmtl-btn-c-h);border-color:var(--hmtl-btn-b-h)}
.hmtl .hmtl__btn:focus-visible{outline:2px solid var(--hmtl-btn-bg-h);outline-offset:2px}
.hmtl .hmtl__btn:disabled{opacity:var(--hmtl-btn-off);cursor:default;background:var(--hmtl-btn-bg);color:var(--hmtl-btn-c);border-color:var(--hmtl-btn-b)}
.hmtl__btn svg{width:1em;height:1em;fill:currentColor}
.hmtl__btn i{font-size:inherit;color:inherit}
.hmtl--nav-sides .hmtl__nav{position:absolute;z-index:2;inset:var(--hmtl-line-y,50%) var(--hmtl-btn-x) auto;justify-content:space-between;translate:0 -50%;pointer-events:none}
.hmtl--nav-sides .hmtl__btn{pointer-events:auto}

/* Rien à faire défiler : on masque barre et boutons */
.hmtl.is-static :is(.hmtl__head,.hmtl__foot,.hmtl__nav){display:none}
.hmtl.is-static .hmtl__viewport{cursor:auto}

/* Frise verticale (classe posée par le JS selon la largeur du widget) */
.hmtl.is-stacked .hmtl__track{display:block;width:auto;min-width:0;padding:0}
.hmtl.is-stacked .hmtl__item{grid-row:auto;grid-template:auto/var(--hmtl-point) minmax(0,1fr);column-gap:calc(var(--hmtl-offset)*.75);padding:0 0 max(var(--hmtl-gap),20px)}
.hmtl.is-stacked .hmtl__item:last-child{padding-bottom:6px}
.hmtl.is-stacked .hmtl__card{grid-area:1/2;align-self:start;margin:0}
.hmtl.is-stacked .hmtl__card::after{top:calc(var(--hmtl-anchor) - var(--hmtl-arrow));bottom:auto;left:auto;right:100%;width:var(--hmtl-arrow);height:calc(var(--hmtl-arrow)*2);translate:none;clip-path:polygon(100% 0,100% 100%,0 50%)}
.hmtl.is-stacked .hmtl__point{grid-area:1/1}
.hmtl.is-stacked .hmtl__point::before{top:0;bottom:calc(max(var(--hmtl-gap),20px)*-1);left:50%;right:auto;width:var(--hmtl-line-w);height:auto;translate:-50% 0}
.hmtl.is-stacked .hmtl__item:first-child .hmtl__point::before{top:var(--hmtl-anchor)}
.hmtl.is-stacked .hmtl__item:last-child .hmtl__point::before{bottom:auto;height:var(--hmtl-anchor)}
.hmtl.is-stacked .hmtl__item:only-child .hmtl__point::before{display:none}
.hmtl.is-stacked .hmtl__point::after{top:var(--hmtl-anchor)}

@media (prefers-reduced-motion:reduce){.hmtl *{transition:none!important}}
