/* Animations du site visiteur (version simplifiee de la maquette services : plus d'apparition a ressort ni d'inclinaison 3D des cartes).
   Tout est dans @media (prefers-reduced-motion:no-preference) : si le visiteur
   demande moins de mouvement, rien de ce fichier ne s'applique. Seuls
   transform et opacity bougent (pas de decalage de mise en page).
   Les etats caches n'existent que sous html.anim-ok, pose par animations.js :
   sans JavaScript, tout le contenu reste visible. */
@media (prefers-reduced-motion:no-preference){

  :root{
    /* ressort : depassement puis retour (repli : courbe a rebond) */
    --ressort:cubic-bezier(.34,1.56,.64,1);
  }
  @supports (transition-timing-function:linear(0,1)){
    :root{
      --ressort:linear(0, 0.091, 0.307, 0.573, 0.827, 1.029, 1.162, 1.225, 1.229, 1.193, 1.136, 1.074, 1.019, 0.978, 0.954, 0.946, 0.949, 0.96, 0.974, 0.989, 1, 1.008, 1);
    }
  }

  /* ---------- 2. boutons : enfoncement et rebond ---------- */
  html.anim-ok .btn{
    transition:transform .55s var(--ressort), box-shadow .15s ease, background .15s ease;
  }
  html.anim-ok .btn:not(.is-loading):active{
    transform:translateY(1px) scale(.94);
    transition-duration:.08s, .15s, .15s;
  }

  /* ---------- 3. reflet d'eau qui balaie le bouton principal ---------- */
  .btn-primary{position:relative; overflow:hidden; isolation:isolate;}
  .btn-primary::after{
    content:""; position:absolute; top:0; bottom:0; left:0; width:100%;
    background:linear-gradient(105deg, transparent 38%, rgba(255,255,255,.6) 50%, transparent 62%);
    transform:translateX(-130%);
    pointer-events:none; z-index:1;
  }

  /* ---------- 4. pulsation discrete du bouton d'appel ----------
     Trois battements apres une pause, puis le bouton reste calme. */
  html.anim-ok .hero-actions a.btn[href^="tel:"],
  html.anim-ok .sticky-call a.btn[href^="tel:"]{position:relative;}
  html.anim-ok .hero-actions a.btn[href^="tel:"]::after,
  html.anim-ok .sticky-call a.btn[href^="tel:"]::after{
    content:""; position:absolute; inset:-2px; border-radius:inherit;
    border:2px solid var(--water);
    opacity:0; pointer-events:none;
    animation:anim-anneau 1.9s ease-out 3s 3 both;
  }
  html.anim-ok .sticky-call a.btn[href^="tel:"]::after{border-color:var(--spark);}
  @keyframes anim-anneau{
    0%{opacity:.75; transform:scale(1);}
    100%{opacity:0; transform:scale(1.25, 1.55);}
  }

}

/* effets au survol : seulement avec une vraie souris */
@media (prefers-reduced-motion:no-preference) and (hover:hover) and (pointer:fine){
  html.anim-ok .btn:not(.is-loading):hover{transform:translateY(-3px);}
  .btn-primary:hover::after{
    transform:translateX(130%);
    transition:transform .75s ease-in-out;
  }
}

/* ---------- cartes : un simple soulevement au survol, sans JavaScript ----------
   Seul transform + ombre bougent, une transition courte : pas de perspective,
   pas de rotation, pas de ressort. */
@media (prefers-reduced-motion:no-preference) and (hover:hover) and (pointer:fine){
  .service-card, .audience-card, .link-card, .prop-offre, .svc-tile{
    transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  }
  .service-card:hover, .audience-card:hover, .link-card:hover{
    transform:translateY(-3px);
    box-shadow:0 12px 26px rgba(14,39,66,.12);
  }
}
