/* =========================================================================
 * ACCUEIL · « COMMENT ÇA SE PASSE » (3.80)
 * Composant construit par assets/etapes.js dans la section Elementor
 * 5985e131. Tablette et ordinateur : onglets (Choisir, Réserver, Arriver),
 * grand titre d'étape et petit écran animé en 60 / 40 ; tablette verticale
 * empilée. Téléphone : accordéon à hauteur constante, écran en dessous.
 *
 * Mouvement : le petit écran se comporte comme une application. Chaque
 * étape arrive par la droite, l'ancienne sort à gauche, plus vite. À
 * l'intérieur, chaque apparition a un geste lié à son sens : net après
 * flou pour les lieux trouvés, tracé pour les statuts, bouton qui se
 * remplit au paiement, bulle qui sort de l'avatar, clé qui tourne.
 * Décélération naturelle, sans rebond ; sorties plus courtes que les
 * entrées. Hiérarchie : titre de section 56 px, titre d'étape 34 px.
 * ========================================================================= */
.hl-etapes {
	--et-encre: #150e10;
	--et-creme: #f7f6f3;
	--et-doux: rgba( 247, 246, 243, 0.66 );
	--et-pale: rgba( 247, 246, 243, 0.32 );
	--et-champ: #bcb2a1;
	--et-champ-clair: #ddd7cc;
	--et-trait: rgba( 188, 178, 161, 0.2 );
	--et-rouge: #961b1b;
	--et-vert: #1d6b45;
	--et-ease: cubic-bezier( 0.16, 1, 0.3, 1 );
	--et-sortie: cubic-bezier( 0.4, 0, 1, 1 );
	--et-ombre: 0 18px 36px -22px rgba( 21, 14, 16, 0.45 );
}

html body.home .hl-etapes [data-id="2a0f9fdc"] > :not( .hl-et ) {
	display: none !important;
}

html body.home .hl-etapes .hl-et {
	width: 100%;
	color: var( --et-creme );
	font-family: "Plus Jakarta Sans", sans-serif;
}

html body.home .hl-etapes .hl-et *,
html body.home .hl-etapes .hl-et *::before,
html body.home .hl-etapes .hl-et *::after {
	box-sizing: border-box;
}

html body.home .hl-etapes .hl-et :where( h3, p ) {
	margin: 0;
	padding: 0;
}

html body.home .hl-etapes .hl-et :where( ol, ul ) {
	margin: 0;
	padding: 0;
	list-style: none;
}

html body.home .hl-etapes .hl-et :where( button ) {
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
	box-shadow: none;
	color: inherit;
	font: inherit;
	text-align: inherit;
	text-transform: none;
	letter-spacing: 0;
	cursor: pointer;
}

html body.home .hl-etapes .hl-et button:focus-visible {
	outline: 2px solid var( --et-champ );
	outline-offset: 4px;
	border-radius: 6px;
}

html body.home .hl-etapes .hl-et svg {
	display: block;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

html body.home .hl-etapes .hl-et-copie {
	opacity: 1 !important;
	transform: none !important;
	visibility: visible !important;
}

html body.home .hl-etapes .hl-et-tetes {
	display: inline-flex;
	gap: 2px;
}

html body.home .hl-etapes .hl-et-tetes img {
	width: 13px;
	height: 13px;
	object-fit: contain;
}

html body.home .hl-etapes .hl-et-tetes img.is-off {
	opacity: 0.22;
	filter: grayscale( 1 );
}

/* =========================================================================
 * GRILLE : 60 / 40, l'écran centré dans sa colonne.
 * ========================================================================= */
html body.home .hl-etapes .hl-et1 {
	display: grid;
	gap: 56px;
	align-items: center;
}

html body.home .hl-etapes .hl-et1--g60 {
	grid-template-columns: minmax( 0, 6fr ) minmax( 0, 4fr );
}

html body.home .hl-etapes .hl-et1__droite {
	justify-self: center;
	width: 100%;
	max-width: 380px;
}

/* =========================================================================
 * COLONNE DE TEXTE
 * ========================================================================= */
html body.home .hl-etapes .hl-et1__liste {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
}

html body.home .hl-etapes .hl-et1__onglet {
	position: relative;
	display: block;
	width: 100%;
}

html body.home .hl-etapes .hl-et1__barre {
	position: absolute;
	display: block;
	overflow: hidden;
	border-radius: 2px;
	background: var( --et-trait );
}

html body.home .hl-etapes .hl-et1__barre i {
	display: block;
	width: 100%;
	height: 100%;
	background: var( --et-champ );
	transform: scaleX( 0 );
	transform-origin: left;
}

html body.home .hl-etapes .hl-et1.is-cycle .hl-et1__onglet[aria-selected="true"] .hl-et1__barre i {
	animation: hl-et-progres var( --duree ) linear forwards;
}

html body.home .hl-etapes .hl-et1.is-fixe .hl-et1__onglet[aria-selected="true"] .hl-et1__barre i {
	transform: none;
}

html body.home .hl-etapes .hl-et1__tete {
	display: flex;
	align-items: center;
	gap: 14px;
}

html body.home .hl-etapes .hl-et1__num {
	display: flex;
	flex: 0 0 26px;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	border: 1px solid var( --et-trait );
	border-radius: 50%;
	color: var( --et-pale );
	font-size: 12px;
	font-weight: 600;
	line-height: 1;
	transition: border-color 0.4s, color 0.4s, background 0.4s;
}

html body.home .hl-etapes .hl-et1__titre {
	color: var( --et-pale );
	font-family: "Cormorant Garamond", Georgia, serif;
	font-size: 26px;
	font-weight: 500;
	line-height: 1.15;
	transition: color 0.4s;
}

html body.home .hl-etapes .hl-et1__onglet:hover .hl-et1__titre {
	color: var( --et-doux );
}

html body.home .hl-etapes .hl-et1__onglet[aria-selected="true"] .hl-et1__num {
	border-color: var( --et-champ );
	background: var( --et-champ );
	color: var( --et-encre );
}

html body.home .hl-etapes .hl-et1__onglet[aria-selected="true"] .hl-et1__titre {
	color: var( --et-creme );
}

html body.home .hl-etapes .hl-et1__texte,
html body.home .hl-etapes .hl-et1__ptexte {
	display: block;
	max-width: 44ch;
	color: var( --et-doux ) !important;
	font-size: 16px !important;
	font-weight: 400 !important;
	line-height: 1.6 !important;
}

html body.home .hl-etapes .hl-et1__note {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-top: 12px;
	color: var( --et-champ );
	font-size: 13px;
	font-weight: 500;
	line-height: 1.4;
}

html body.home .hl-etapes .hl-et1__note svg {
	flex: 0 0 15px;
	width: 15px;
	height: 15px;
	stroke-width: 2;
}

/* Le texte s'ouvre en hauteur, puis se pose : léger glissé et netteté. */
html body.home .hl-etapes .hl-et1__repli {
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows 0.5s var( --et-ease );
}

html body.home .hl-etapes .hl-et1__corps {
	display: block;
	overflow: hidden;
	padding: 10px 0 0 40px;
	opacity: 0;
	transform: translateY( -4px );
	transition: opacity 0.2s, transform 0.2s;
}

html body.home .hl-etapes .hl-et1__onglet[aria-selected="true"] .hl-et1__repli {
	grid-template-rows: 1fr;
}

html body.home .hl-etapes .hl-et1__onglet[aria-selected="true"] .hl-et1__corps {
	opacity: 1;
	transform: none;
	transition: opacity 0.45s 0.18s, transform 0.6s 0.18s var( --et-ease );
}

/* ---------- B · Une étape à la fois ---------- */
html body.home .hl-etapes .hl-et1--b .hl-et1__liste {
	display: grid;
	grid-template-columns: repeat( 3, minmax( 0, 1fr ) );
	gap: 16px;
	max-width: 520px;
	margin-top: 48px !important;
}

html body.home .hl-etapes .hl-et1--b .hl-et1__onglet {
	padding-top: 16px;
}

html body.home .hl-etapes .hl-et1--b .hl-et1__barre {
	top: 0;
	right: 0;
	left: 0;
	height: 2px;
}

html body.home .hl-etapes .hl-et1--b .hl-et1__tete {
	gap: 10px;
}

html body.home .hl-etapes .hl-et1--b .hl-et1__titre {
	font-family: "Plus Jakarta Sans", sans-serif;
	font-size: 14px;
	font-weight: 600;
}

html body.home .hl-etapes .hl-et1--b .hl-et1__num {
	flex-basis: 22px;
	width: 22px;
	height: 22px;
	font-size: 11px;
}

html body.home .hl-etapes .hl-et1__panneaux {
	display: grid;
	margin-top: 40px;
}

html body.home .hl-etapes .hl-et1__panneau {
	grid-area: 1 / 1;
	visibility: hidden;
	opacity: 0;
	transition: opacity 0.2s var( --et-sortie ), visibility 0s 0.2s;
}

html body.home .hl-etapes .hl-et1[data-actif="0"] .hl-et1__panneau.is-0,
html body.home .hl-etapes .hl-et1[data-actif="1"] .hl-et1__panneau.is-1,
html body.home .hl-etapes .hl-et1[data-actif="2"] .hl-et1__panneau.is-2 {
	visibility: visible;
	opacity: 1;
	transition: opacity 0.01s 0.2s, visibility 0s 0.2s;
}

/* Le grand titre monte derrière un masque, ligne de texte comme sur une page. */
html body.home .hl-etapes .hl-et1__grand {
	display: block;
	overflow: hidden;
	padding-bottom: 0.08em;
	color: var( --et-creme ) !important;
	font-family: "Cormorant Garamond", Georgia, serif !important;
	margin: 0 !important;
	font-size: clamp( 28px, 2.4vw, 34px ) !important;
	font-weight: 500 !important;
	line-height: 1.12 !important;
	letter-spacing: -0.005em !important;
}

html body.home .hl-etapes .hl-et1__grand > span {
	display: inline-block;
	color: inherit !important;
	font: inherit !important;
	letter-spacing: inherit !important;
}

html body.home .hl-etapes .hl-et1__ptexte {
	margin-top: 16px !important;
	font-size: 17px !important;
}

html body.home .hl-etapes .hl-et1__panneau .hl-et1__note {
	margin-top: 16px;
}

html body.home .hl-etapes .hl-et1[data-actif="0"] .hl-et1__panneau.is-0 .hl-et1__grand > span,
html body.home .hl-etapes .hl-et1[data-actif="1"] .hl-et1__panneau.is-1 .hl-et1__grand > span,
html body.home .hl-etapes .hl-et1[data-actif="2"] .hl-et1__panneau.is-2 .hl-et1__grand > span {
	animation: hl-et-masque 0.8s 0.2s var( --et-ease ) both;
}

html body.home .hl-etapes .hl-et1[data-actif="0"] .hl-et1__panneau.is-0 .hl-et1__ptexte,
html body.home .hl-etapes .hl-et1[data-actif="1"] .hl-et1__panneau.is-1 .hl-et1__ptexte,
html body.home .hl-etapes .hl-et1[data-actif="2"] .hl-et1__panneau.is-2 .hl-et1__ptexte {
	animation: hl-et-pose 0.7s 0.38s var( --et-ease ) both;
}

html body.home .hl-etapes .hl-et1[data-actif="0"] .hl-et1__panneau.is-0 .hl-et1__note,
html body.home .hl-etapes .hl-et1[data-actif="1"] .hl-et1__panneau.is-1 .hl-et1__note,
html body.home .hl-etapes .hl-et1[data-actif="2"] .hl-et1__panneau.is-2 .hl-et1__note {
	animation: hl-et-pose 0.7s 0.5s var( --et-ease ) both;
}

/* =========================================================================
 * LE PETIT ÉCRAN
 * ========================================================================= */
html body.home .hl-etapes .hl-et1__scene {
	position: relative;
	height: 480px;
	overflow: hidden;
	border-radius: 32px;
	background: var( --et-creme );
	color: var( --et-encre );
	box-shadow: 0 0 0 1px rgba( 188, 178, 161, 0.25 ), 0 50px 90px -40px rgba( 0, 0, 0, 0.8 );
}

html body.home .hl-etapes .hl-et1__url {
	position: absolute;
	top: 16px;
	left: 50%;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 5px 11px 5px 9px;
	border-radius: 999px;
	background: rgba( 21, 14, 16, 0.05 );
	color: rgba( 21, 14, 16, 0.5 );
	font-size: 11px;
	font-weight: 500;
	white-space: nowrap;
	transform: translateX( -50% );
}

html body.home .hl-etapes .hl-et1__url svg {
	width: 11px;
	height: 11px;
	stroke-width: 2.4;
}

/* Écrans : arrivée par la droite, sortie à gauche (navigation d'application). */
html body.home .hl-etapes .hl-et1__ecran {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 56px 20px 22px;
	visibility: hidden;
	opacity: 0;
}

html body.home .hl-etapes .hl-et1__ecran.is-joue {
	visibility: visible;
	opacity: 1;
	animation: hl-et-entre 0.6s var( --et-ease ) both;
}

html body.home .hl-etapes .hl-et1__ecran.is-joue.is-sort {
	animation: hl-et-quitte 0.28s var( --et-sortie ) forwards;
}

html body.home .hl-etapes .hl-et1.is-fixe .hl-et1__ecran.is-joue {
	visibility: hidden;
	opacity: 0;
}

html body.home .hl-etapes .hl-et1.is-fixe[data-actif="0"] .hl-et1__ecran.is-0,
html body.home .hl-etapes .hl-et1.is-fixe[data-actif="1"] .hl-et1__ecran.is-1,
html body.home .hl-etapes .hl-et1.is-fixe[data-actif="2"] .hl-et1__ecran.is-2 {
	visibility: visible;
	opacity: 1;
}

html body.home .hl-etapes .hl-et1__vignette {
	display: block;
	flex: 0 0 56px;
	height: 50px;
	border-radius: 10px;
	background: #ddd7cc center / cover no-repeat;
}

/* Toucher : un point se pose, puis une onde s'efface. */
html body.home .hl-etapes .hl-et1__tap {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 30px;
	height: 30px;
	margin: -15px 0 0 -15px;
	border-radius: 50%;
	background: rgba( 21, 14, 16, 0.14 );
	opacity: 0;
	pointer-events: none;
}

/* ---------- Scène 1 : la recherche, puis le choix ---------- */
html body.home .hl-etapes .hl-et1__recherche {
	display: flex;
	align-items: center;
	gap: 10px;
	height: 46px;
	padding: 0 16px;
	border-radius: 999px;
	background: #fff;
	box-shadow: var( --et-ombre );
	font-size: 14px;
	font-weight: 500;
}

html body.home .hl-etapes .hl-et1__recherche svg {
	flex: 0 0 17px;
	width: 17px;
	height: 17px;
	color: var( --et-rouge );
	stroke-width: 2.2;
}

html body.home .hl-etapes .hl-et1__saisie::after {
	content: "";
	display: inline-block;
	width: 1.5px;
	height: 16px;
	margin-left: 2px;
	background: var( --et-rouge );
	vertical-align: -3px;
	animation: hl-et-caret 1s steps( 1 ) infinite;
}

html body.home .hl-etapes .hl-et1__resultats {
	display: grid;
	gap: 10px;
	margin: 18px 0 0 !important;
	padding: 0 !important;
	list-style: none;
}

html body.home .hl-etapes .hl-et1__ligne {
	position: relative;
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 8px 12px 8px 8px;
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 0 0 0 rgba( 150, 27, 27, 0 );
	opacity: 0;
}

html body.home .hl-etapes .hl-et1__infos {
	flex: 1;
	min-width: 0;
}

html body.home .hl-etapes .hl-et1__infos strong {
	display: block;
	overflow: hidden;
	font-size: 13.5px;
	font-weight: 600;
	white-space: nowrap;
	text-overflow: ellipsis;
}

html body.home .hl-etapes .hl-et1__infos > span {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	margin-top: 5px;
}

html body.home .hl-etapes .hl-et1__prix {
	color: rgba( 21, 14, 16, 0.6 );
	font-size: 11.5px;
	font-weight: 600;
	white-space: nowrap;
}

html body.home .hl-etapes .hl-et1__verif {
	position: absolute;
	top: -9px;
	right: 10px;
	display: inline-flex;
	align-items: center;
	gap: 3px;
	padding: 4px 9px 4px 6px;
	border-radius: 999px;
	background: var( --et-vert );
	color: #fff;
	font-size: 10.5px;
	font-weight: 600;
	opacity: 0;
}

html body.home .hl-etapes .hl-et1__verif svg {
	width: 11px;
	height: 11px;
	stroke-width: 3.2;
	stroke-dasharray: 24;
	stroke-dashoffset: 24;
}

/* Les lieux trouvés passent du flou au net, l'un après l'autre. */
html body.home .hl-etapes .hl-et1__ecran.is-0.is-joue .hl-et1__ligne {
	animation: hl-et-net-entre 0.55s calc( 1.3s + var( --d ) * 0.07s ) var( --et-ease ) both;
}

html body.home .hl-etapes .hl-et1__ecran.is-0.is-joue .hl-et1__ligne:not( .is-choisi ) {
	animation: hl-et-net-entre 0.55s calc( 1.3s + var( --d ) * 0.07s ) var( --et-ease ) both, hl-et-retrait 0.4s 2.3s ease forwards;
}

/* Le lieu touché s'enfonce un instant, puis se détache, cerclé de rouge. */
html body.home .hl-etapes .hl-et1__ecran.is-0.is-joue .hl-et1__ligne.is-choisi {
	animation: hl-et-net-entre 0.55s calc( 1.3s + var( --d ) * 0.07s ) var( --et-ease ) both, hl-et-presse 0.18s 2.12s ease-out, hl-et-choisi 0.5s 2.3s var( --et-ease ) forwards;
}

html body.home .hl-etapes .hl-et1__ecran.is-0.is-joue .hl-et1__tap {
	animation: hl-et-tap 0.6s 2.05s ease-out;
}

html body.home .hl-etapes .hl-et1__ecran.is-0.is-joue .hl-et1__verif {
	animation: hl-et-badge 0.35s 2.6s var( --et-ease ) both;
}

html body.home .hl-etapes .hl-et1__ecran.is-0.is-joue .hl-et1__verif svg {
	animation: hl-et-trace 0.3s 2.75s ease-out forwards;
}

/* ---------- Scène 2 : demande, accord, paiement ---------- */
html body.home .hl-etapes .hl-et1__resa-tete {
	display: flex;
	align-items: center;
	gap: 12px;
}

html body.home .hl-etapes .hl-et1__resa-tete strong {
	display: block;
	font-family: "Cormorant Garamond", Georgia, serif;
	font-size: 20px;
	font-weight: 600;
	line-height: 1.15;
}

html body.home .hl-etapes .hl-et1__resa-tete small,
html body.home .hl-etapes .hl-et1__champs small,
html body.home .hl-etapes .hl-et1__adresse-corps small,
html body.home .hl-etapes .hl-et1__autonome small {
	display: block;
	color: rgba( 21, 14, 16, 0.56 );
	font-size: 11.5px;
	font-weight: 500;
}

html body.home .hl-etapes .hl-et1__champs {
	display: grid;
	grid-template-columns: 1.6fr 1fr;
	margin-top: 16px;
	border-radius: 14px;
	background: #fff;
}

html body.home .hl-etapes .hl-et1__champs > span {
	padding: 10px 14px;
	font-size: 13.5px;
	font-weight: 600;
}

html body.home .hl-etapes .hl-et1__champs > span + span {
	border-left: 1px solid #ddd7cc;
}

html body.home .hl-etapes .hl-et1__statuts {
	position: relative;
	display: grid;
	gap: 14px;
	margin: 22px 0 0 !important;
	padding: 0 !important;
}

/* Le fil des statuts se trace au rythme des étapes. */
html body.home .hl-etapes .hl-et1__statuts::before,
html body.home .hl-etapes .hl-et1__statuts::after {
	content: "";
	position: absolute;
	top: 12px;
	bottom: 12px;
	left: 11px;
	width: 1px;
	background: rgba( 21, 14, 16, 0.1 );
}

html body.home .hl-etapes .hl-et1__statuts::after {
	background: var( --et-encre );
	transform: scaleY( 0 );
	transform-origin: top;
}

html body.home .hl-etapes .hl-et1__ecran.is-1.is-joue .hl-et1__statuts::after {
	animation: hl-et-fil 1.3s 0.75s cubic-bezier( 0.65, 0, 0.35, 1 ) forwards;
}

html body.home .hl-etapes .hl-et1__statuts li {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	gap: 12px;
	font-size: 13.5px;
	font-weight: 500;
}

html body.home .hl-etapes .hl-et1__statuts i {
	display: flex;
	flex: 0 0 23px;
	align-items: center;
	justify-content: center;
	width: 23px;
	height: 23px;
	border: 1px solid rgba( 21, 14, 16, 0.15 );
	border-radius: 50%;
	background: var( --et-creme );
	color: var( --et-creme );
}

html body.home .hl-etapes .hl-et1__statuts i svg {
	width: 12px;
	height: 12px;
	stroke-width: 3;
	stroke-dasharray: 24;
	stroke-dashoffset: 24;
}

html body.home .hl-etapes .hl-et1__statuts li > span {
	color: rgba( 21, 14, 16, 0.3 );
}

/* Chaque statut : la pastille se remplit, la coche se trace, le texte s'encre. */
html body.home .hl-etapes .hl-et1__ecran.is-1.is-joue .hl-et1__statuts i {
	animation: hl-et-pastille 0.35s calc( 0.6s + var( --d ) * 0.65s ) var( --et-ease ) forwards;
}

html body.home .hl-etapes .hl-et1__ecran.is-1.is-joue .hl-et1__statuts i svg {
	animation: hl-et-trace 0.3s calc( 0.75s + var( --d ) * 0.65s ) ease-out forwards;
}

html body.home .hl-etapes .hl-et1__ecran.is-1.is-joue .hl-et1__statuts li > span {
	animation: hl-et-encre-texte 0.4s calc( 0.65s + var( --d ) * 0.65s ) ease forwards;
}

html body.home .hl-etapes .hl-et1__payer {
	position: relative;
	display: grid;
	place-items: center;
	height: 46px;
	margin-top: 22px;
	overflow: hidden;
	border-radius: 14px;
	background: var( --et-encre );
	color: var( --et-creme );
	font-size: 14px;
	font-weight: 600;
	opacity: 0;
}

/* Remplissage vert qui balaie le bouton au paiement. */
html body.home .hl-etapes .hl-et1__payer::before {
	content: "";
	position: absolute;
	inset: 0;
	background: var( --et-vert );
	transform: scaleX( 0 );
	transform-origin: left;
}

html body.home .hl-etapes .hl-et1__payer > .is-a,
html body.home .hl-etapes .hl-et1__payer > .is-b {
	position: relative;
	display: inline-flex;
	grid-area: 1 / 1;
	align-items: center;
	gap: 6px;
}

html body.home .hl-etapes .hl-et1__payer > .is-b {
	opacity: 0;
}

html body.home .hl-etapes .hl-et1__payer svg {
	width: 15px;
	height: 15px;
	stroke-width: 3;
	stroke-dasharray: 24;
	stroke-dashoffset: 24;
}

html body.home .hl-etapes .hl-et1__payer .hl-et1__tap {
	z-index: 1;
	background: rgba( 247, 246, 243, 0.3 );
}

html body.home .hl-etapes .hl-et1__ecran.is-1.is-joue .hl-et1__payer {
	animation: hl-et-pose 0.5s 2.45s var( --et-ease ) both, hl-et-presse 0.18s 3.25s ease-out;
}

html body.home .hl-etapes .hl-et1__ecran.is-1.is-joue .hl-et1__payer .hl-et1__tap {
	animation: hl-et-tap 0.6s 3.18s ease-out;
}

html body.home .hl-etapes .hl-et1__ecran.is-1.is-joue .hl-et1__payer::before {
	animation: hl-et-balaie 0.55s 3.4s var( --et-ease ) forwards;
}

html body.home .hl-etapes .hl-et1__ecran.is-1.is-joue .hl-et1__payer > .is-a {
	animation: hl-et-sort-haut 0.22s 3.4s var( --et-sortie ) forwards;
}

html body.home .hl-etapes .hl-et1__ecran.is-1.is-joue .hl-et1__payer > .is-b {
	animation: hl-et-pose 0.45s 3.55s var( --et-ease ) both;
}

html body.home .hl-etapes .hl-et1__ecran.is-1.is-joue .hl-et1__payer > .is-b svg {
	animation: hl-et-trace 0.3s 3.7s ease-out forwards;
}

html body.home .hl-etapes .hl-et1__instant {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	margin-top: 22px;
	padding-top: 14px;
	border-top: 1px dashed rgba( 21, 14, 16, 0.15 );
	color: rgba( 21, 14, 16, 0.6 );
	font-size: 11.5px;
	font-weight: 500;
}

html body.home .hl-etapes .hl-et1__instant svg {
	width: 13px;
	height: 13px;
	color: var( --et-rouge );
	fill: currentColor;
	stroke: none;
}

/* ---------- Scène 3 : l'adresse, puis l'accueil ou l'arrivée autonome ---------- */
html body.home .hl-etapes .hl-et1__adresse {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 14px 16px;
	border-radius: 18px;
	background: #fff;
	box-shadow: var( --et-ombre );
}

html body.home .hl-etapes .hl-et1__cadenas {
	display: flex;
	flex: 0 0 42px;
	align-items: center;
	justify-content: center;
	height: 42px;
	border-radius: 50%;
	background: var( --et-creme );
	color: var( --et-rouge );
}

html body.home .hl-etapes .hl-et1__cadenas svg {
	width: 20px;
	height: 20px;
	stroke-width: 2;
	overflow: visible;
}

html body.home .hl-etapes .hl-et1__cadenas .hl-et-anse {
	transform-box: fill-box;
	transform-origin: 100% 100%;
}

html body.home .hl-etapes .hl-et1__adresse-corps {
	flex: 1;
	min-width: 0;
}

html body.home .hl-etapes .hl-et1__flou {
	display: block;
	margin-top: 3px;
	font-size: 14px;
	font-weight: 600;
	filter: blur( 5px );
	opacity: 0.5;
}

html body.home .hl-etapes .hl-et1__ecran.is-2.is-joue .hl-et-anse {
	animation: hl-et-ouvre 0.45s 0.55s var( --et-ease ) forwards;
}

html body.home .hl-etapes .hl-et1__ecran.is-2.is-joue .hl-et1__cadenas {
	animation: hl-et-vert 0.35s 0.65s ease forwards;
}

html body.home .hl-etapes .hl-et1__ecran.is-2.is-joue .hl-et1__flou {
	animation: hl-et-net 0.6s 0.75s ease-out forwards;
}

html body.home .hl-etapes .hl-et1__modes {
	position: relative;
	display: grid;
	grid-template-columns: 1fr 1fr;
	margin-top: 22px;
	padding: 4px;
	border-radius: 999px;
	background: rgba( 21, 14, 16, 0.06 );
	opacity: 0;
}

html body.home .hl-etapes .hl-et1__modes > .is-hote,
html body.home .hl-etapes .hl-et1__modes > .is-auto {
	position: relative;
	z-index: 1;
	padding: 9px 0;
	font-size: 12px;
	font-weight: 600;
	text-align: center;
	white-space: nowrap;
}

html body.home .hl-etapes .hl-et1__modes > .is-auto {
	color: rgba( 21, 14, 16, 0.45 );
}

html body.home .hl-etapes .hl-et1__curseur {
	position: absolute;
	top: 4px;
	bottom: 4px;
	left: 4px;
	width: calc( 50% - 4px );
	border-radius: 999px;
	background: #fff;
	box-shadow: 0 4px 12px -4px rgba( 21, 14, 16, 0.25 );
}

html body.home .hl-etapes .hl-et1__arrivees {
	display: grid;
	min-height: 64px;
	margin-top: 16px;
}

html body.home .hl-etapes .hl-et1__message,
html body.home .hl-etapes .hl-et1__autonome {
	grid-area: 1 / 1;
	align-self: start;
	opacity: 0;
}

html body.home .hl-etapes .hl-et1__message {
	display: flex;
	align-items: flex-end;
	gap: 8px;
}

html body.home .hl-etapes .hl-et1__avatar {
	display: flex;
	flex: 0 0 30px;
	align-items: center;
	justify-content: center;
	height: 30px;
	border-radius: 50%;
	background: var( --et-rouge );
	color: #fff;
	font-family: "Cormorant Garamond", Georgia, serif;
	font-size: 16px;
	font-weight: 600;
}

/* La bulle naît du coin de l'avatar, comme dans une messagerie. */
html body.home .hl-etapes .hl-et1__bulle {
	display: grid;
	padding: 11px 14px;
	border-radius: 16px 16px 16px 4px;
	background: #fff;
	font-size: 13px;
	line-height: 1.5;
	transform-origin: 0 100%;
}

html body.home .hl-etapes .hl-et1__frappe,
html body.home .hl-etapes .hl-et1__mot {
	grid-area: 1 / 1;
}

html body.home .hl-etapes .hl-et1__frappe {
	display: flex;
	align-items: center;
	gap: 4px;
}

html body.home .hl-etapes .hl-et1__frappe i {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: rgba( 21, 14, 16, 0.35 );
}

html body.home .hl-etapes .hl-et1__mot {
	opacity: 0;
}

html body.home .hl-etapes .hl-et1__autonome {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 14px;
	border-radius: 16px;
	background: #fff;
	transform-origin: 50% 0;
}

html body.home .hl-etapes .hl-et1__cle {
	display: flex;
	flex: 0 0 38px;
	align-items: center;
	justify-content: center;
	height: 38px;
	border-radius: 50%;
	background: var( --et-creme );
	color: var( --et-rouge );
}

html body.home .hl-etapes .hl-et1__cle svg {
	width: 18px;
	height: 18px;
	stroke-width: 2;
}

html body.home .hl-etapes .hl-et1__autonome strong {
	display: block;
	font-size: 13.5px;
	font-weight: 600;
}

html body.home .hl-etapes .hl-et1__ecran.is-2.is-joue .hl-et1__modes {
	animation: hl-et-net-entre 0.5s 1.25s var( --et-ease ) both;
}

html body.home .hl-etapes .hl-et1__ecran.is-2.is-joue .hl-et1__message {
	animation: hl-et-apparait 0.01s 1.65s forwards, hl-et-retire 0.22s 4.35s var( --et-sortie ) forwards;
}

html body.home .hl-etapes .hl-et1__ecran.is-2.is-joue .hl-et1__avatar {
	animation: hl-et-badge 0.35s 1.65s var( --et-ease ) both;
}

html body.home .hl-etapes .hl-et1__ecran.is-2.is-joue .hl-et1__bulle {
	animation: hl-et-bulle 0.45s 1.72s var( --et-ease ) both;
}

html body.home .hl-etapes .hl-et1__ecran.is-2.is-joue .hl-et1__frappe i {
	animation: hl-et-saute 0.9s 1.9s ease-in-out;
}

html body.home .hl-etapes .hl-et1__ecran.is-2.is-joue .hl-et1__frappe i:nth-child( 2 ) {
	animation-delay: 2.05s;
}

html body.home .hl-etapes .hl-et1__ecran.is-2.is-joue .hl-et1__frappe i:nth-child( 3 ) {
	animation-delay: 2.2s;
}

html body.home .hl-etapes .hl-et1__ecran.is-2.is-joue .hl-et1__frappe {
	animation: hl-et-efface 0.15s 2.95s forwards;
}

html body.home .hl-etapes .hl-et1__ecran.is-2.is-joue .hl-et1__mot {
	animation: hl-et-pose 0.35s 3s var( --et-ease ) both;
}

html body.home .hl-etapes .hl-et1__ecran.is-2.is-joue .hl-et1__curseur {
	animation: hl-et-glisse 0.5s 4.3s var( --et-ease ) forwards;
}

html body.home .hl-etapes .hl-et1__ecran.is-2.is-joue .hl-et1__modes > .is-hote {
	animation: hl-et-terne 0.3s 4.35s forwards;
}

html body.home .hl-etapes .hl-et1__ecran.is-2.is-joue .hl-et1__modes > .is-auto {
	animation: hl-et-encre 0.3s 4.35s forwards;
}

html body.home .hl-etapes .hl-et1__ecran.is-2.is-joue .hl-et1__autonome {
	animation: hl-et-net-entre 0.5s 4.55s var( --et-ease ) both;
}

/* La clé tourne d'un quart, comme dans une serrure. */
html body.home .hl-etapes .hl-et1__ecran.is-2.is-joue .hl-et1__cle svg {
	animation: hl-et-tourne 0.6s 4.75s var( --et-ease ) both;
}

/* =========================================================================
 * MOUVEMENTS
 * ========================================================================= */
@keyframes hl-et-progres {
	to {
		transform: none;
	}
}

@keyframes hl-et-entre {
	from {
		opacity: 0;
		transform: translateX( 28px );
	}

	to {
		opacity: 1;
		transform: none;
	}
}

@keyframes hl-et-quitte {
	from {
		opacity: 1;
		transform: none;
	}

	to {
		opacity: 0;
		transform: translateX( -20px );
	}
}

@keyframes hl-et-masque {
	from {
		transform: translateY( 105% );
	}

	to {
		transform: none;
	}
}

@keyframes hl-et-pose {
	from {
		opacity: 0;
		transform: translateY( 6px );
	}

	to {
		opacity: 1;
		transform: none;
	}
}

@keyframes hl-et-net-entre {
	from {
		opacity: 0;
		filter: blur( 6px );
		transform: translateY( 6px );
	}

	to {
		opacity: 1;
		filter: none;
		transform: none;
	}
}

@keyframes hl-et-retrait {
	to {
		opacity: 0.42;
		filter: saturate( 0.4 );
	}
}

@keyframes hl-et-presse {
	50% {
		transform: scale( 0.97 );
	}
}

@keyframes hl-et-choisi {
	from {
		opacity: 1;
	}

	to {
		opacity: 1;
		transform: translateY( -2px );
		box-shadow: 0 0 0 2px var( --et-rouge ), 0 18px 30px -18px rgba( 21, 14, 16, 0.5 );
	}
}

@keyframes hl-et-tap {
	0% {
		opacity: 0;
		transform: scale( 0.6 );
	}

	25% {
		opacity: 1;
		transform: scale( 1 );
	}

	100% {
		opacity: 0;
		transform: scale( 2.2 );
	}
}

@keyframes hl-et-badge {
	from {
		opacity: 0;
		transform: translateY( 4px ) scale( 0.88 );
	}

	to {
		opacity: 1;
		transform: none;
	}
}

@keyframes hl-et-trace {
	to {
		stroke-dashoffset: 0;
	}
}

@keyframes hl-et-fil {
	to {
		transform: none;
	}
}

@keyframes hl-et-pastille {
	to {
		border-color: var( --et-encre );
		background: var( --et-encre );
	}
}

@keyframes hl-et-encre-texte {
	to {
		color: var( --et-encre );
	}
}

@keyframes hl-et-balaie {
	to {
		transform: none;
	}
}

@keyframes hl-et-sort-haut {
	to {
		opacity: 0;
		transform: translateY( -12px );
	}
}

@keyframes hl-et-ouvre {
	to {
		transform: translate( 4px, -3px ) rotate( 18deg );
	}
}

@keyframes hl-et-vert {
	to {
		color: var( --et-vert );
	}
}

@keyframes hl-et-net {
	to {
		filter: none;
		opacity: 1;
	}
}

@keyframes hl-et-apparait {
	to {
		opacity: 1;
	}
}

@keyframes hl-et-retire {
	from {
		opacity: 1;
	}

	to {
		opacity: 0;
		transform: scale( 0.96 );
	}
}

@keyframes hl-et-bulle {
	from {
		opacity: 0;
		transform: scale( 0.6 );
	}

	to {
		opacity: 1;
		transform: none;
	}
}

@keyframes hl-et-saute {
	0%,
	60%,
	100% {
		transform: none;
	}

	30% {
		transform: translateY( -4px );
	}
}

@keyframes hl-et-efface {
	to {
		opacity: 0;
	}
}

@keyframes hl-et-glisse {
	to {
		transform: translateX( 100% );
	}
}

@keyframes hl-et-terne {
	to {
		color: rgba( 21, 14, 16, 0.45 );
	}
}

@keyframes hl-et-encre {
	to {
		color: var( --et-encre );
	}
}

@keyframes hl-et-tourne {
	from {
		transform: rotate( -90deg );
	}

	to {
		transform: none;
	}
}

@keyframes hl-et-caret {
	50% {
		opacity: 0;
	}
}

/* =========================================================================
 * TAILLES D'ÉCRAN
 * ========================================================================= */
@media ( max-width: 1024px ) {
	html body.home .hl-etapes .hl-et1--g60,
	html body.home .hl-etapes .hl-et1--g50 {
		grid-template-columns: minmax( 0, 1fr );
		gap: 48px;
	}
}

@media ( max-width: 767px ) {
	html body.home .hl-etapes .hl-et1--g60,
	html body.home .hl-etapes .hl-et1--g50 {
		gap: 32px;
	}

	html body.home .hl-etapes .hl-et1__titre {
		font-size: 23px;
	}

	html body.home .hl-etapes .hl-et1--a .hl-et1__liste {
		margin-top: 32px !important;
	}

	html body.home .hl-etapes .hl-et1__grand {
		font-size: 28px !important;
	}

	html body.home .hl-etapes .hl-et1__ptexte {
		font-size: 16px !important;
	}

	html body.home .hl-etapes .hl-et1__droite,
	html body.home .hl-etapes .hl-et1--g50 .hl-et1__droite {
		max-width: 340px;
	}

	html body.home .hl-etapes .hl-et1__scene {
		height: 470px;
		border-radius: 28px;
	}

}

/* Mouvement réduit : écrans fixes, sans déplacement ; la boucle est coupée. */
@media ( prefers-reduced-motion: reduce ) {
	html body.home .hl-etapes .hl-et * {
		animation-duration: 0.01ms !important;
		animation-delay: 0s !important;
		transition-duration: 0.01ms !important;
		transition-delay: 0s !important;
	}
}

/* =========================================================================
 * MIXTE : B sur tablette et ordinateur, A en accordéon sur téléphone.
 * Hauteur de la liste réservée par le script (étape la plus longue
 * ouverte) : ouvrir une étape ne déplace ni l'écran ni la suite de la page.
 * ========================================================================= */
html body.home .hl-etapes .hl-et1--mixte .hl-et1__titre--long,
html body.home .hl-etapes .hl-et1--mixte .hl-et1__repli {
	display: none;
}

@media ( max-width: 767px ) {
	html body.home .hl-etapes .hl-et1--mixte .hl-et1__titre--court,
	html body.home .hl-etapes .hl-et1--mixte .hl-et1__panneaux {
		display: none;
	}

	html body.home .hl-etapes .hl-et1--mixte .hl-et1__titre--long {
		display: inline;
		font-family: "Cormorant Garamond", Georgia, serif;
		font-size: 23px;
		font-weight: 500;
	}

	html body.home .hl-etapes .hl-et1--mixte .hl-et1__repli {
		display: grid;
	}

	html body.home .hl-etapes .hl-et1--mixte .hl-et1__liste {
		grid-template-columns: minmax( 0, 1fr );
		gap: 0;
		max-width: none;
		margin-top: 32px !important;
	}

	html body.home .hl-etapes .hl-et1--mixte .hl-et1__onglet {
		padding: 16px 0 16px 28px;
	}

	html body.home .hl-etapes .hl-et1--mixte .hl-et1__barre {
		top: 16px;
		right: auto;
		bottom: 16px;
		left: 0;
		width: 2px;
		height: auto;
	}

	html body.home .hl-etapes .hl-et1--mixte .hl-et1__barre i {
		transform: scaleY( 0 );
		transform-origin: top;
	}

	html body.home .hl-etapes .hl-et1--mixte .hl-et1__tete {
		gap: 14px;
	}

	html body.home .hl-etapes .hl-et1--mixte .hl-et1__num {
		flex-basis: 26px;
		width: 26px;
		height: 26px;
		font-size: 12px;
	}

	/* La liste garde sa hauteur : les étapes s'ouvrent dans l'espace réservé. */
	html body.home .hl-etapes .hl-et1--mixte .hl-et1__liste,
	html body.home .hl-etapes .hl-et1--a .hl-et1__liste {
		align-content: start;
	}
}

/*
 * Tablette et téléphone : l'écran animé prend toute la largeur de la
 * section. Son contenu reste centré sur 440 px pour garder des lignes
 * lisibles dans le cadre élargi.
 */
@media ( max-width: 1024px ) {
	html body.home .hl-etapes .hl-et1__droite {
		justify-self: stretch;
		max-width: none;
	}

	html body.home .hl-etapes .hl-et1__ecran {
		align-items: center;
	}

	html body.home .hl-etapes .hl-et1__ecran > * {
		width: 100%;
		max-width: 440px;
	}
}
