/* CESGM — entrées ponctuelles et interactions sobres, sans dépendance externe. */
@media (prefers-reduced-motion:no-preference){
  .motion-hero{animation:cesgm-hero-arrive 1.4s cubic-bezier(.22,1,.36,1) both}
  @keyframes cesgm-hero-arrive{from{background-position:center 34%}to{background-position:center 30%}}
  main .btn{transition:transform .24s cubic-bezier(.22,1,.36,1),background .24s ease,box-shadow .24s ease,border-color .24s ease}
  .catalogue-visuel{overflow:hidden}
  .catalogue-visuel img,.formation-photo img,.image-vedette img{transition:transform .65s cubic-bezier(.22,1,.36,1)}
  .route .aller,.catalogue-lien,.fiche-dates,.carte-liee .aller{transition:translate .25s ease,text-decoration-color .25s ease}
  .route .aller,.catalogue-lien{display:inline-block}
  .route,.catalogue-carte,.fcoligne-carte,.raccourci,.carte-blogue{transition:transform .3s cubic-bezier(.22,1,.36,1),box-shadow .3s ease,border-color .3s ease}
  .flip-front .flip-hint span{transition:translate .25s ease}
  @media (hover:hover) and (pointer:fine){
    main .btn:hover{transform:translateY(-3px);box-shadow:0 12px 26px #16284a24}
    .catalogue-carte:hover .catalogue-visuel img,.formation-photo:hover img,.image-vedette:hover img{transform:scale(1.035)}
    .route:hover .aller,.catalogue-carte:hover .catalogue-lien,.fiche-dates:hover,.carte-liee:hover .aller{translate:5px 0}
    .flip-front:hover .flip-hint span{translate:5px 0}
    .raccourci:hover,.fcoligne-carte:hover,.catalogue-carte:hover{transform:translateY(-5px);box-shadow:0 16px 35px #16284a16}
  }
  @media(max-width:700px){.motion-hero{animation:none}}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .reveal{opacity:1!important;transform:none!important}
}
@media print{.reveal{opacity:1!important;transform:none!important}*{animation:none!important;transition:none!important}}
/* Une séquence de chantier lisible : carte active marine, repère laiton, barre de progression. */
#etapes.parcours-anime{background:linear-gradient(135deg,#fbfaf7,#eee9df)}
.parcours-animation-controls{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:28px;font-size:13px;font-weight:600;color:var(--ink-soft)}
.parcours-animation-controls>span{letter-spacing:.08em;text-transform:uppercase}
#etapes.parcours-anime .ux-steps{gap:28px;margin-top:18px}
#etapes.parcours-anime .ux-steps>li{position:relative;padding:28px 26px 35px;transition:background .45s ease,border-color .45s ease,box-shadow .45s ease;isolation:isolate}
#etapes.parcours-anime .ux-steps>li:not(:last-child)::after{content:'→';position:absolute;right:-25px;top:38px;color:#9b733d;font-size:22px;font-weight:700}
#etapes.parcours-anime .step-number{font:700 19px var(--fb);border:0;cursor:pointer;width:46px;height:46px;transition:background .45s ease,color .45s ease,box-shadow .45s ease}
#etapes.parcours-anime .step-active{background:var(--primaire);border-color:var(--primaire);box-shadow:0 18px 36px #16284a25;color:#fff}
#etapes.parcours-anime .step-active h3{color:#fff}
#etapes.parcours-anime .step-active p{color:#e1e6ee}
#etapes.parcours-anime .step-active .step-number{background:#e6c58f;color:#16284a;box-shadow:0 0 0 6px #e6c58f20}
#etapes.parcours-anime .step-progress{position:absolute;bottom:0;left:14px;right:14px;height:4px;overflow:hidden;background:#16284a0a}
#etapes.parcours-anime .step-progress>span{display:block;width:100%;height:100%;background:#c4914a;transform:scaleX(0);transform-origin:left center}
#etapes.parcours-anime .step-active .step-progress{background:#ffffff20}
@media(max-width:560px){.parcours-animation-controls{align-items:flex-start;flex-direction:column;gap:10px}#etapes.parcours-anime .ux-steps>li{padding:24px 24px 30px}#etapes.parcours-anime .ux-steps>li:not(:last-child)::after{content:'↓';top:auto;bottom:-30px;left:44px;right:auto}#etapes.parcours-anime .ux-steps{gap:32px}}
@media(prefers-reduced-motion:reduce){#etapes.parcours-anime .step-active .step-progress>span{transform:scaleX(1)}}
