/* v1.75.1 — logos de marques, style « Chrome » (maquette B validée) : plaque claire, brillance fixe, reflet au sol,
   lumière qui passe toutes les 7 s ; trait de lumière au survol. Le reflet est découpé à la forme exacte du logo (masque = le logo).
   Préfixe bl-. Aucune animation à l'impression ni si le système demande de réduire les animations. */
.bl-plate { --w: 84px; --h: 64px; position: relative; flex: none; width: var(--w); height: var(--h); border-radius: 12px; display: inline-grid; place-items: center; vertical-align: middle;
  background: linear-gradient(180deg, #ffffff 0%, #e9edf3 100%); border: 1px solid #d5dbe5;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.9), 0 1px 2px rgba(16,27,45,.08), 0 6px 14px rgba(16,27,45,.08); }
.bl-plate.reflect { -webkit-box-reflect: below 3px linear-gradient(transparent 55%, rgba(0,0,0,.22)); }
.bl-plate.sm { --w: 40px; --h: 30px; border-radius: 7px; box-shadow: inset 0 1px 0 rgba(255,255,255,.9), 0 1px 2px rgba(16,27,45,.1); }
.bl-plate.md { --w: 56px; --h: 42px; border-radius: 9px; }
.bl-plate.lg { --w: 96px; --h: 72px; }
.bl-logo { position: relative; width: 66%; height: 66%; }
.bl-plate.sm .bl-logo { width: 74%; height: 74%; }
.bl-logo img { width: 100%; height: 100%; object-fit: contain; display: block; filter: drop-shadow(0 1px 0 rgba(255,255,255,.8)) drop-shadow(0 2px 2px rgba(10,20,40,.25)); }
.bl-logo::before, .bl-logo::after { content: ''; position: absolute; inset: 0; pointer-events: none; -webkit-mask: var(--m) center / contain no-repeat; mask: var(--m) center / contain no-repeat; }
.bl-logo::before { background: linear-gradient(180deg, rgba(255,255,255,.55) 0%, rgba(255,255,255,.12) 48%, rgba(0,0,0,.12) 52%, rgba(0,0,0,0) 100%); }
.bl-logo::after { background: linear-gradient(105deg, transparent 38%, rgba(255,255,255,.95) 50%, transparent 62%); background-size: 280% 100%; background-position: 140% 0;
  animation: bl-sweep 7s ease-in-out infinite; animation-delay: calc(var(--i, 0) * 450ms); }
.bl-plate:hover .bl-logo::after { animation: bl-sweep .9s ease-out; }
@keyframes bl-sweep { from { background-position: 140% 0 } 60%, to { background-position: -40% 0 } }
.bl-veh { display: inline-flex; align-items: center; gap: 10px; min-width: 0; }
@media (prefers-reduced-motion: reduce) { .bl-logo::after { animation: none !important; } }
@media print { .bl-logo::after { display: none; } .bl-plate { box-shadow: none; -webkit-box-reflect: unset; } }
/* Intégrations : neutralise les anciens cadres blancs autour du logo. */
.cp-card .m.logo { background: none; padding: 0; box-shadow: none; display: grid; place-items: center; overflow: visible; }
.cp-card .m.logo .bl-plate { --w: 56px; --h: 46px; border-radius: 11px; }
.pt-brand { width: auto; height: auto; background: none; padding: 0; box-shadow: none; }
.brand-tile .bl { background: none; overflow: visible; }
.brand-tile .bl .bl-logo img { max-width: none; max-height: none; }
