/* Site Commerce · css/fx-dock.css : Lot 2 · Gestes et feuilles, le dock vivant.
   Les règles de fx/dock.js, accrochées à `html.cv-dock-fx` (posée par le
   script) : sans le script, le dock garde la mise en page de la coquille.
   La classe de retrait (`is-retire`) et sa position vivent dans la coquille
   (index.html) ; ici, seulement la manière de partir et de revenir, et le
   clone du libellé qui roule. Aucune variable lue ici n'est hors des jetons
   --cv-* de la coquille. */

/* Le bouton du modèle découpe ce qui glisse en lui : le libellé tiré par le
   doigt, l'ancien qui sort. Le contour de focus est peint HORS de la boîte :
   `overflow` ne le coupe pas. */
html.cv-dock-fx .dock-model { position: relative; overflow: hidden; }

/* L'ancien contenu (icône et libellé), le temps de sortir. Son état de base est invisible :
   l'animation (WAAPI) l'amène de visible à invisible et ne tient rien. */
html.cv-dock-fx .cv-dock-sortant {
  position: absolute; top: 0; bottom: 0; margin: 0;
  display: flex; align-items: center; gap: inherit; min-width: 0;
  pointer-events: none; opacity: 0;
}

/* Partir vite, revenir avec un léger dépassement : la transition suit
   l'état d'ARRIVÉE (celle de `is-retire` pour partir, celle du dock pour
   revenir). Seul `transform` est animé. */
@media (max-width: 900px), (max-height: 520px) {
  html.cv-dock-fx .cv-dock {
    transition: transform 440ms cubic-bezier(.3, 1.35, .55, 1);
  }
  html.cv-dock-fx .cv-dock.is-retire {
    transition: transform 240ms cubic-bezier(.45, 0, .9, .5);
  }
}

/* Moins de mouvement : le dock ne se retire jamais (cf. fx/dock.js), et rien
   ne glisse quand la boutique le range. */
@media (prefers-reduced-motion: reduce) {
  html.cv-dock-fx .cv-dock,
  html.cv-dock-fx .cv-dock.is-retire { transition: none; }
}
