/* ==========================================================================
   Home: client-logo carousel (infinite CSS marquee).
   Markup (build.py page_home): .h-logos > .lcar-lbl + .lcar > .lcar-rail > .lcar-track ×2
   The 2nd track is an aria-hidden copy; the rail slides by exactly one track (-50%).
   Pauses on hover / keyboard focus; reduced motion = static wrapped row.
   ========================================================================== */
.h-logos{padding-top:clamp(56px,9vh,104px);padding-bottom:clamp(40px,7vh,72px)}
/* inner pages (Services, Réalisations, Contact): same carousel inside a .wrap */
.lcar-sec{padding-block:clamp(40px,7vh,80px)}
.lcar-sec--top{padding-top:clamp(16px,3vh,32px)}
.lcar-note{margin:clamp(22px,3.5vh,34px) auto 0;text-align:center;max-width:var(--measure,62ch);color:var(--grey)}
.lcar-note strong{color:var(--bone)}
.lcar-lbl{text-align:center;font:400 11px/1.4 var(--font-mono);color:var(--grey);letter-spacing:.04em;margin:0 0 clamp(22px,3.5vh,34px)}
.lcar{--lcar-gap:clamp(48px,5.5vw,88px);--lcar-h:38px;position:relative;overflow:hidden;margin-inline:calc(-1 * var(--gutter));
  padding-block:14px;border-block:1px solid var(--line);outline:none;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.lcar:focus-visible{box-shadow:inset 0 0 0 2px var(--accent-light)}
.lcar-rail{display:flex;width:max-content;animation:lcar-scroll 46s linear infinite;will-change:transform}
.lcar:hover .lcar-rail,.lcar:focus-within .lcar-rail{animation-play-state:paused}
.lcar-track{display:flex;align-items:center;padding:0;margin:0;list-style:none;flex:none}
.lcar-track li{flex:none;margin-right:var(--lcar-gap);height:56px;display:flex;align-items:center;justify-content:center;opacity:.55;filter:grayscale(1);transition:opacity .3s,filter .3s}
.lcar-track li:hover{opacity:1;filter:none}
.lcar-track img{height:var(--lcar-h);width:auto;max-width:150px;object-fit:contain;display:block}
.lcar-track .is-tall img{height:calc(var(--lcar-h) * 1.3)}
.lcar-track img[src$=".svg"]{height:calc(var(--lcar-h) * 1.05)}
.lcar-track .logo-text{font:700 19px/1 var(--font-head);letter-spacing:.04em;color:var(--bone);opacity:1;white-space:nowrap;text-transform:uppercase}
@keyframes lcar-scroll{to{transform:translate3d(-50%,0,0)}}
@media (max-width:820px){
  .lcar{--lcar-gap:40px;--lcar-h:26px;padding-block:10px}
  .lcar-track li{height:44px}
  .lcar-track img{max-width:110px}
  .lcar-track .logo-text{font-size:16px}
  .lcar-rail{animation-duration:34s}
  .h-logos{padding-top:clamp(48px,8vh,80px)}
}
@media (prefers-reduced-motion:reduce){
  .lcar{-webkit-mask-image:none;mask-image:none;margin-inline:0}
  .lcar-rail{animation:none;width:auto;justify-content:center}
  .lcar-track{flex:1 1 100%;min-width:0;flex-wrap:wrap;justify-content:center;gap:12px 36px}
  .lcar-track li{margin-right:0}
  .lcar-track[aria-hidden="true"]{display:none}
}
/* Uber's SVG is a 24×24 square with a thin wordmark across the middle: scale it so it reads like its neighbours */
.lcar-track img[src*="/uber-"]{height:calc(var(--lcar-h) * 2);margin-block:calc(var(--lcar-h) * -.5)}
