/* =====================================================================
   BLOORCORE — Animations modernes (2026)
   Progressive enhancement : les effets ne s'activent que si le JS a posé
   .bc-anim-ready sur <html> ET si l'utilisateur n'a pas demandé moins de
   mouvement. Sans JS / reduced-motion → contenu visible, zéro animation.
   ===================================================================== */

/* ---------- Révélation au scroll ---------- */
@media (prefers-reduced-motion: no-preference) {
  html.bc-anim-ready .bc-reveal{
    opacity:0; transform:translateY(30px);
    transition:opacity .7s cubic-bezier(.16,.84,.44,1), transform .7s cubic-bezier(.16,.84,.44,1);
    will-change:opacity,transform;
  }
  html.bc-anim-ready .bc-reveal.in{opacity:1; transform:none;}

  /* ---------- Hero : entrée chorégraphiée ---------- */
  @keyframes bcUp{from{opacity:0; transform:translateY(26px)} to{opacity:1; transform:none}}
  @keyframes bcGrad{0%{background-position:0% 50%} 50%{background-position:100% 50%} 100%{background-position:0% 50%}}
  @keyframes bcFloat{0%,100%{transform:translateY(0)} 50%{transform:translateY(-9px)}}
  @keyframes bcPulse{0%{box-shadow:0 8px 24px rgba(37,211,102,.45),0 0 0 0 rgba(37,211,102,.5)}70%{box-shadow:0 8px 24px rgba(37,211,102,.45),0 0 0 16px rgba(37,211,102,0)}100%{box-shadow:0 8px 24px rgba(37,211,102,.45),0 0 0 0 rgba(37,211,102,0)}}

  html.bc-anim-ready .bcx .hero{background-size:200% 200%; animation:bcGrad 16s ease infinite;}
  html.bc-anim-ready .bcx .hero h1{animation:bcUp .8s .05s both;}
  html.bc-anim-ready .bcx .hero p.sub{animation:bcUp .8s .2s both;}
  html.bc-anim-ready .bcx .hero .cta{animation:bcUp .8s .35s both;}
  html.bc-anim-ready .bcx .hero .trust{animation:bcUp .8s .5s both;}
  html.bc-anim-ready .bcx .hero-card{animation:bcUp .9s .4s both;}
  html.bc-anim-ready .bcx .hero .tag{animation:bcUp .7s 0s both;}

  /* Bouton WhatsApp : pulsation continue */
  html.bc-anim-ready .bc-whatsapp{animation:bcPulse 2.6s infinite;}

  /* Estimateur / promo : léger flottement décoratif */
  html.bc-anim-ready .bcx .hero-card .quote-form .btn{transition:transform .15s ease, box-shadow .15s ease;}
}

/* ---------- Micro-interactions au survol (sans risque mouvement) ---------- */
/* Zoom doux des images produit */
.bcx .card .imgph img,
.woocommerce ul.products li.product img{transition:transform .55s cubic-bezier(.2,.7,.3,1);}
.bcx .card:hover .imgph img,
.woocommerce ul.products li.product:hover img{transform:scale(1.07);}

/* Icônes de service / atouts qui réagissent */
.bcx .serv .ic, .bcx .why .ic, .bcx .usp .ic{transition:transform .3s cubic-bezier(.2,.8,.3,1), background .3s;}
.bcx .serv:hover .ic{transform:translateY(-4px) rotate(-4deg) scale(1.06);}
.bcx .why .item:hover .ic{transform:scale(1.1);}

/* Boutons : reflet qui balaie */
.bcx .btn{position:relative; overflow:hidden;}
.bcx .btn::after{
  content:""; position:absolute; top:0; left:-120%; width:60%; height:100%;
  background:linear-gradient(120deg,transparent,rgba(255,255,255,.45),transparent);
  transform:skewX(-20deg); transition:left .6s ease;
}
.bcx .btn:hover::after{left:140%;}

/* Liens du menu : soulignement animé */
.bcx-chrome nav.main > .wrap > a::before,
.bcx-chrome nav.main .has-mega > a::before{
  content:""; position:absolute; left:18px; right:18px; bottom:8px; height:2px;
  background:#FBBF24; transform:scaleX(0); transform-origin:left; transition:transform .3s ease;
}
.bcx-chrome nav.main a:hover::before{transform:scaleX(1);}
.bcx-chrome nav.main a.hot::before{display:none;}

/* Cartes : ombre + élévation plus marquées au survol (complète le translateY existant) */
.bcx .serv, .bcx .card, .woocommerce ul.products li.product, .bcx .post, .bcx .rev{
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

/* Header : ombre portée à mesure qu'on défile */
.bcx-chrome header{transition:box-shadow .3s ease;}
.bcx-chrome header.bc-scrolled{box-shadow:0 6px 24px rgba(17,24,39,.10);}

/* Compteurs animés */
.bc-count{display:inline-block; font-variant-numeric:tabular-nums;}

/* Carte Maps : révélation en fondu agréable au chargement */
.bcx .bc-map{transition:filter .4s ease;}
.bcx .bc-map:hover{filter:saturate(1.08);}
