/* ── Reveal on scroll ── */
.reveal {
  opacity: 0;
  transform: translateY(32px);
  transition: opacity 0.8s cubic-bezier(0.16,1,0.3,1), transform 0.8s cubic-bezier(0.16,1,0.3,1);
}
.reveal.visible { opacity: 1; transform: translateY(0); }
.reveal-delay-1 { transition-delay: 0.1s; }
.reveal-delay-2 { transition-delay: 0.2s; }
.reveal-delay-3 { transition-delay: 0.3s; }
.reveal-delay-4 { transition-delay: 0.4s; }

/* ── Global responsive overrides ── */
@media (max-width: 768px) {
  nav { padding: 20px 24px; }
  nav.scrolled { padding: 14px 24px; }
  .nav-links, .nav-cta { display: none; }
  .hero { padding: 120px 24px 80px; }
  section { padding: 80px 24px; }
  .stats-strip { padding: 40px 24px; }
  #locations { padding: 60px 24px; }
  footer { padding: 40px 24px; }

  /* ── Hide custom cursor on mobile (touch devices) ── */
  .cursor,
  .cursor-ring { display: none; }

  body,
  a, button, input, select, textarea,
  .service-card, .portfolio-item { cursor: auto; }
}
