.context-cursor {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1000;
  pointer-events: none;
  opacity: 0;
  transition: opacity 120ms ease;
}
.context-cursor.is-visible { opacity: 1; }
.context-cursor > span {
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  width: 9px;
  height: 9px;
  left: -4.5px;
  top: -4.5px;
  border-radius: 50%;
  background: #d1edda;
  color: #102b22;
  box-shadow: 0 0 0 1px #102b2255;
  font: 600 11px/1.2 var(--sans);
  white-space: nowrap;
  transition: width 180ms ease, height 180ms ease, border-radius 180ms ease,
    left 180ms ease, top 180ms ease, scale 150ms ease;
}
.context-cursor.is-action > span {
  width: 88px;
  height: 36px;
  left: 12px;
  top: -42px;
  border-radius: 24px;
  box-shadow: 0 4px 20px #071a1933;
}
.context-cursor.is-pressed > span { scale: .88; }
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .custom-cursor-active, .custom-cursor-active * { cursor: none !important; }
  .team-photo img, .hero-photo > img {
    transition: transform 700ms cubic-bezier(.2,.7,.2,1);
  }
  .team-card:hover .team-photo img, .hero-visual:hover .hero-photo > img {
    transform: scale(1.035);
  }
  .service-row, .inventory-result, .team-card-bottom a {
    transition: background-color 220ms ease, border-color 220ms ease;
  }
  .service-row:hover { background-color: #b8ddc308; }
  .inventory-result:hover { border-color: #7ea58a; }
  a .icon, button .icon { transition: transform 220ms ease; }
  a:hover .icon, button:hover .icon { transform: translate(2px, -2px); }
  .button:active { transform: translateY(0) scale(.98); }
}
@media (prefers-reduced-motion: no-preference) {
  .faq-list details[open] > p { animation: answer-enter 240ms ease-out; }
  .mobile-nav:not([hidden]) { animation: answer-enter 200ms ease-out; }
  .contact-form input, .contact-form textarea {
    transition: border-color 180ms ease, background-color 180ms ease;
  }
  @keyframes answer-enter {
    from { opacity: 0; transform: translateY(-6px); }
    to { opacity: 1; transform: translateY(0); }
  }
}
@media (prefers-reduced-motion: reduce), (hover: none), (pointer: coarse) {
  .context-cursor { display: none; }
}
