
/* L'état « rangé ». La distance est DÉRIVÉE (hauteur propre + marge basse) :
   aucun nombre écrit à la main, donc la page du formulaire (dock plus court, le
   bouton Devis y est masqué) et le paysage suivent tout seuls.
   `visibility` retardée de la durée du glissement : le dock ne quitte l'ordre de
   tabulation qu'une fois VRAIMENT parti. Au retour la règle de base reprend la
   main, et comme elle ne transitionne pas `visibility`, il redevient focalisable
   immédiatement. */
.jb-fab-dock[data-jb-range="1"]{
	transform:translateY(calc(100% + var(--jb-fab-marge)));
	opacity:0;
	visibility:hidden;
	transition:transform .24s cubic-bezier(.4,0,.2,1),
	           opacity .18s ease,
	           visibility 0s linear .24s;
}
/* Le conteneur ne capte déjà rien (pointer-events:none, et c'est voulu) : ce
   sont les BOUTONS qui captent, donc c'est eux qu'on désarme. Même forme que le
   rangement déjà écrit pour le menu burger ouvert. */
.jb-fab-dock[data-jb-range="1"] .jb-fab{pointer-events:none;}

/* ═══ LES TROIS BOUTONS PASSENT CÔTE À CÔTE (demande de Jérémy, 16/08) ══════
   « au lieu d'avoir de haut en bas : remonter en haut de page / Devis /
     Téléphone, je voudrais avoir cote à cote de Droite à gauche : remonter en
     haut de page / Devis / Téléphone »

   Donc, en partant du bord droit : [haut de page] [Devis] [Téléphone].
   Le dock porte Devis puis Téléphone dans le document ; `row-reverse` donne
   l'ordre voulu à l'écran sans toucher au balisage, qui vient du serveur.

   ⚠️ LE BOUTON « HAUT DE PAGE » N'EST PAS DANS LE DOCK — c'est un élément à
   part (`#ast-scroll-top`), posé jusqu'ici AU-DESSUS de la pile. On le ramène
   sur la même ligne, collé au bord droit, et le dock se décale de sa largeur
   plus un écart. Tout est DÉRIVÉ des variables existantes : aucun nombre écrit
   à la main, donc la page du formulaire (où le bouton Devis est masqué) suit
   toute seule.

   ⚠️⚠️ ET LA RÉSERVE DE FIN DE DOCUMENT SUIT, C'EST TOUT L'INTÉRÊT. La pile ne
   fait plus trois étages mais un seul : on redéfinit `--jb-fab-pile` à la
   hauteur d'une rangée. La règle `body{padding-bottom:calc(--jb-fab-pile +
   --jb-fab-marge)}` écrite en amont n'est PAS touchée — elle recalcule seule et
   passe de 190 px à 72 px de réserve. C'est exactement pourquoi cette réserve
   avait été écrite en `calc()` et pas en dur, et pourquoi la garde
   « recouvrement » exige qu'elle le reste.

   LARGEUR, mesurée et pas supposée : 14 (marge) + 44 (haut de page) + 8 + 58
   (Devis) + 8 + 175 (pastille du numéro) = 307 px. Sur l'écran le plus étroit
   encore en service (320 px) il reste 13 px. Ça tient, mais c'est le budget
   entier : allonger le numéro ou grossir un bouton le fera déborder. */
:root{
	/* Un seul étage désormais. Le nom reste « pile » : c'est lui que la réserve
	   de bas de page et la garde de recouvrement interrogent. */
	--jb-fab-pile:var(--jb-fab-taille);
}
html .jb-fab-dock{
	flex-direction:row-reverse !important;
	align-items:flex-end !important;
	bottom:var(--jb-fab-marge) !important;
	right:calc(var(--jb-fab-marge) + var(--jb-fab-mini) + var(--jb-fab-ecart)) !important;
}
html #ast-scroll-top.ast-scroll-top-icon{
	bottom:var(--jb-fab-marge) !important;
	right:var(--jb-fab-marge) !important;
}
/* ⚠️ LE « HAUT DE PAGE » NE SE RANGE PAS AVEC LES DEUX AUTRES, ET C'EST VOULU.
   Jérémy a validé le comportement le 16/08 : « les boutons se cachent bien et
   réapparaissent bien », il ne demandait QUE le changement de disposition. Et
   le motif tient tout seul : ce bouton sert précisément quand on est descendu.
   Les deux boutons d'appel s'effacent, l'outil de navigation reste. */
