/* Aurora Motion — efeitos funcionais, progressivos e sem dependências externas. */
:root {
  --aurora-motion-distance: 18px;
  --aurora-motion-duration: 520ms;
  --aurora-motion-intro-duration: 600ms;
  --aurora-motion-stagger: 85ms;
  --aurora-motion-ease: cubic-bezier(.22, 1, .36, 1);
}
@media (prefers-reduced-motion: no-preference) {
  .aurora-motion-enabled .aurora-reveal {
    opacity: 0;
    transform: var(--aurora-motion-section-start, translate3d(0, var(--aurora-motion-distance), 0));
    transition: opacity var(--aurora-motion-duration) var(--aurora-motion-ease),
                transform var(--aurora-motion-duration) var(--aurora-motion-ease);
    transition-delay: var(--aurora-motion-section-delay, 0ms);
  }
  .aurora-motion-enabled .aurora-reveal.aurora-visible {
    opacity: 1;
    transform: none;
  }
  .aurora-motion-enabled .aurora-enter {
    animation: aurora-motion-entrance var(--aurora-motion-intro-duration) var(--aurora-motion-ease) both;
    animation-delay: calc(var(--aurora-stagger, 0) * var(--aurora-motion-stagger) + var(--aurora-motion-intro-extra, 0ms));
  }
  @keyframes aurora-motion-entrance {
    from { opacity: 0; transform: var(--aurora-motion-intro-start, translate3d(0, 14px, 0)); }
    to { opacity: 1; transform: none; }
  }

  /* Os alvos continuam links/botões reais, inclusive via teclado. */
  .aurora-motion-enabled :is(.btn-primary, .btn-outline, .pill-btn, .nav-book-btn, .site-nav-cta, .site-wa-float) {
    transition: background-color 220ms ease, color 220ms ease,
                border-color 220ms ease, transform 220ms var(--aurora-motion-ease),
                box-shadow 220ms ease;
  }
  .aurora-motion-enabled :is(.btn-primary, .btn-outline, .pill-btn, .nav-book-btn, .site-nav-cta):hover {
    transform: translateY(-2px);
    box-shadow: 0 9px 20px rgba(47,69,56,.12);
  }
  .aurora-motion-enabled :is(.btn-primary, .btn-outline, .pill-btn, .nav-book-btn, .site-nav-cta):active {
    transform: translateY(0) scale(.985);
  }
  .aurora-motion-enabled :is(.site-card, .service-card, .contact-card, .case-card) {
    transition: box-shadow 250ms ease, border-color 250ms ease;
  }
  .aurora-motion-enabled :is(.site-card, .service-card, .contact-card, .case-card):hover {
    box-shadow: 0 14px 34px rgba(47,69,56,.12);
  }

  /* Feedback de orientação na navegação desktop. */
  .aurora-motion-enabled :is(.nav-link, .site-navlink) {
    transition: opacity 200ms ease, color 200ms ease;
  }
  .aurora-motion-enabled .top-nav .nav-link,
  .aurora-motion-enabled .site-nav .site-navlink { position: relative; }
  .aurora-motion-enabled .top-nav .nav-link::after {
    content: "";
    position: absolute;
    inset-inline: 0;
    bottom: -7px;
    height: 2px;
    background: var(--accent, #2f4538);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 240ms var(--aurora-motion-ease);
  }
  .aurora-motion-enabled .top-nav .nav-link:hover::after,
  .aurora-motion-enabled .top-nav .nav-link:focus-visible::after {
    transform: scaleX(1);
  }

  /* No celular, preserva o menu no fluxo de acessibilidade somente ao abrir. */
  @media (max-width: 899px) {
    .aurora-motion-enabled body.site-page .site-navlinks {
      display: flex;
      visibility: hidden;
      opacity: 0;
      pointer-events: none;
      transform: translate3d(0, -8px, 0);
      transition: opacity 200ms ease, transform 240ms var(--aurora-motion-ease),
                  visibility 240ms;
    }
    .aurora-motion-enabled body.site-page .site-navlinks.open {
      visibility: visible;
      opacity: 1;
      pointer-events: auto;
      transform: none;
    }
  }
}
.aurora-motion-enabled :is(a, button, summary):focus-visible {
  outline: 2px solid var(--accent, #2f4538);
  outline-offset: 4px;
}
@media (prefers-reduced-motion: reduce) {
  html, body, .iphone-screen, .site-frame { scroll-behavior: auto !important; }
  .aurora-reveal, .aurora-enter {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
    transition: none !important;
  }
}
