/* Micro-interactions: short (120-250ms), transform/opacity/colour only, and only where the pointer can hover.
   Everything sits behind prefers-reduced-motion: no-preference, so reduced-motion visitors keep the plain states. */

/* Scroll progress: a 2px accent line whose scaleX is driven by js/scroll-motion.js (stays invisible without it) */
.scroll-progress { position: fixed; inset: 0 0 auto 0; z-index: 60; height: 2px; background: var(--block-2); transform: scaleX(0); transform-origin: 0 50%; pointer-events: none; }

/* Agents mini-nav: one accent bar slides between entries (position written by js/agents-stage.js as --y/--h) */
.agents-nav-in { position: relative; }
.agents-nav-in::before { content: ""; position: absolute; left: 0; top: 0; width: 2px; height: var(--h, 0); background: var(--accent); transform: translateY(var(--y, 0)); transition: transform 0.3s var(--ease), height 0.3s var(--ease); }
.agents-nav a:hover, .agents-nav a[aria-current="true"] { border-left-color: var(--line-2); }

@media (prefers-reduced-motion: no-preference) {
  /* Press feedback for buttons */
  .btn { transition: background-color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), transform 0.12s var(--ease); }
  .btn:active { transform: scale(0.97); }

  /* Footer bands wipe in from the left (GSAP adds .bands-ready only when it will animate them) */
  .foot-bands i { transform-origin: 0 50%; }

  @media (hover: hover) and (pointer: fine) {
    /* Desktop nav links draw an underline from the left */
    .menu > a:not(.btn) { background: linear-gradient(currentColor, currentColor) 0 calc(100% - 10px) / 0 1px no-repeat; transition: color var(--dur-fast) var(--ease), background-size 0.22s var(--ease); }
    .menu > a:not(.btn):hover { background-size: 100% 1px; }
    .logo-row img { transition: transform 0.22s var(--ease); }
    .logo-row li:hover img { transform: scale(1.07); }
    .cm img { transition: transform 0.22s var(--ease), border-color 0.22s var(--ease); }
    .cm:hover img { transform: scale(1.08); border-color: var(--accent); }
    .bx-ic { transition: transform 0.22s var(--ease), border-color 0.22s var(--ease); }
    .bx:hover .bx-ic { transform: translateY(-3px); border-color: var(--accent); }
    .pillars--row .pillar { transition: background-color 0.2s var(--ease); }
    .pillars--row .pillar:hover { background: var(--paper); }
  }
}

/* Mobile polish: 44px tap targets and labels that stay readable on small screens */
@media (pointer: coarse) { .hero-pill { min-height: 44px; } }
@media (max-width: 560px) {
  .pill { font-size: 11.5px; }
  .hero-pill em { font-size: 12px; }
  .trust-stat span, .kpis span { font-size: 11px; }
}
