/* ═══════════ Accueil : seconde passe motion design ═══════════
   S'ajoute aux styles hm-/hha- de site.css. État final par défaut
   (sans JS, reduced-motion) ; transform/opacity uniquement ; boucles
   en pause hors écran. */

/* ── Héros : boucles en pause hors écran ── */
.hha.is-paused::before,
.hha.is-paused .hha-pulse,
.hha.is-paused .hha-marquee__track{animation-play-state:paused}

/* ── Repères : filet qui se trace, valeur qui monte ── */
.hm-proof__item{position:relative;transition:background .35s var(--ease)}
.hm-proof__item::before{content:"";position:absolute;left:0;right:0;top:-1px;height:2px;background:var(--yellow);transform-origin:0 50%}
.hm-proof__item:hover{background:rgba(250,181,18,0.04)}
.hm-proof__value{transition:transform .35s var(--ease)}
.hm-proof__item:hover .hm-proof__value{transform:translateX(4px)}

/* ── Manifeste : la ligne lue s'allume ── */
.hm-manifesto.is-armed .hm-mline{color:var(--text);opacity:.3;transform:translateX(-14px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.hm-manifesto.is-armed .hm-mline.is-on{opacity:1;transform:none}
.hm-manifesto.is-armed .hm-mline strong{color:var(--yellow)}

/* ── Tour des services : grand numéro, volet sur l'illustration ── */
.split__text{position:relative}
.hm-bignum{position:absolute;right:0;top:-70px;z-index:0;font-family:var(--font-display);font-weight:800;font-size:clamp(90px,10vw,150px);line-height:.8;letter-spacing:-0.06em;color:transparent;-webkit-text-stroke:1px rgba(250,181,18,0.22);pointer-events:none}
.section--light .hm-bignum{-webkit-text-stroke-color:rgba(20,20,20,0.12)}
.split__text>*:not(.hm-bignum){position:relative;z-index:1}
.illus-frame .hm-wipe{position:absolute;inset:0;z-index:3;background:var(--yellow);transform:scaleX(0);transform-origin:100% 50%;pointer-events:none}
.split--reverse .illus-frame .hm-wipe{transform-origin:0 50%}

/* ── Vitrine ── */
.hm-work-card{position:relative}
.hm-work-card__shot{position:relative;overflow:hidden}
.hm-work-card__shot svg{transition:transform .6s var(--ease)}
.hm-work-card:hover .hm-work-card__shot svg,.hm-work-card:focus-visible .hm-work-card__shot svg{transform:scale(1.035)}
.hm-work-card__shot .hm-wipe{position:absolute;inset:0;z-index:2;background:var(--yellow);transform:scaleY(0);transform-origin:50% 0;pointer-events:none}
.hm-work-card__new{display:inline-block;margin-left:8px;vertical-align:1px;padding:3px 8px;border-radius:999px;background:var(--yellow);color:#141414;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}

/* ── Méthode : le fil se remplit au défilement ── */
.hm-steps-fill{display:none;position:absolute;top:24px;left:2px;right:2px;height:2px;margin-top:-.5px;background:var(--yellow);transform:scaleX(var(--p,0));transform-origin:0 50%;pointer-events:none}
.steps-line.is-armed .hm-steps-fill{display:block}
.steps-line.is-armed .steps-line__num{transition:transform .45s var(--ease),background .45s var(--ease),color .45s var(--ease)}
.steps-line.is-armed .steps-line__step.is-on .steps-line__num{background:var(--yellow);color:#141414;transform:scale(1.08)}
.steps-line.is-armed .steps-line__step .steps-line__title,.steps-line.is-armed .steps-line__step p{opacity:.45;transition:opacity .45s var(--ease)}
.steps-line.is-armed .steps-line__step.is-on .steps-line__title,.steps-line.is-armed .steps-line__step.is-on p{opacity:1}

/* ── Offres : flèche qui file ── */
.hm-offer__arrow{transition:transform .3s var(--ease)}
.hm-offer:hover .hm-offer__arrow,.hm-offer:focus-visible .hm-offer__arrow{transform:translateX(6px)}

/* ── Motion (au défilement, via .reveal / .is-visible de main.js) ── */
@media (prefers-reduced-motion:no-preference){
  .hm-proof__item.reveal::before{transform:scaleX(0)}
  .hm-proof__item.reveal.is-visible::before{transform:scaleX(1);transition:transform .9s cubic-bezier(.77,0,.18,1) calc(var(--reveal-delay,0s) + .2s)}
  .split.reveal .hm-bignum{opacity:0;transform:translateY(24px)}
  .split.reveal.is-visible .hm-bignum{opacity:1;transform:none;transition:opacity .9s var(--ease) .3s,transform .9s var(--ease) .3s}
  .split.reveal .hm-wipe{transform:scaleX(1)}
  .split.reveal.is-visible .hm-wipe{transform:scaleX(0);transition:transform .9s cubic-bezier(.77,0,.18,1) .2s}
  .hm-work-card.reveal .hm-wipe{transform:scaleY(1)}
  .hm-work-card.reveal.is-visible .hm-wipe{transform:scaleY(0);transition:transform .8s cubic-bezier(.77,0,.18,1) calc(var(--reveal-delay,0s) + .15s)}
}
@media (prefers-reduced-motion:reduce){
  .hm-proof__item::before{transform:scaleX(1)}
}
@media (max-width:640px){
  .hm-bignum{font-size:72px;top:-34px}
}
