/* Movimento sem alterar a estrutura da página. */
@keyframes mdm-drift {
  0%, 100% { translate: 0 0; scale: 1; }
  50% { translate: 30px -24px; scale: 1.13; }
}
@keyframes mdm-gradient {
  0%, 100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
}
@keyframes mdm-glow {
  0%, 100% { box-shadow: 0 0 8px rgba(184,107,255,.3); }
  50% { box-shadow: 0 0 25px rgba(184,107,255,.65); }
}
@keyframes mdm-cue {
  0%, 100% { translate: 0 0; opacity: .6; }
  50% { translate: 10px 0; opacity: 1; }
}
.aurora { animation: mdm-drift 12s ease-in-out infinite; }
.a2 { animation-duration: 16s; animation-delay: -6s; }
.a3 { animation-duration: 14s; animation-delay: -3s; }
h1 em, .final-cta h2 em {
  background: linear-gradient(110deg, #b86bff 10%, #efd9ff 35%, #b86bff 60%, #a594ff 85%);
  background-size: 250% 100%;
  background-clip: text;
  -webkit-background-clip: text;
  color: transparent;
  animation: mdm-gradient 7s ease-in-out infinite;
}
.button { background-size: 200% 200%; animation: mdm-gradient 6s ease-in-out infinite; }
.button b, .service-grid a b { display: inline-block; transition: translate .3s ease; }
.button:hover b, .service-grid a:hover b { translate: 4px -2px; }
.eyebrow span, .timeline strong { animation: mdm-glow 4s ease-in-out infinite; }
.timeline article:nth-of-type(2) strong { animation-delay: -.8s; }
.timeline article:nth-of-type(3) strong { animation-delay: -1.6s; }
.timeline article:nth-of-type(4) strong { animation-delay: -2.4s; }
.timeline article:nth-of-type(5) strong { animation-delay: -3.2s; }
.scroll-cue span { animation: mdm-cue 2.5s ease-in-out infinite; }
.nav-links a { position: relative; }
.nav-links a::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: -7px;
  height: 2px; background: var(--h); transform: scaleX(0);
  transform-origin: left; transition: transform .3s ease;
}
.nav-links a:hover::after, .nav-links a:focus-visible::after { transform: scaleX(1); }
.reveal { transition-delay: var(--entrance-delay, 0ms); }
.reveal.visible { transition-delay: var(--entrance-delay, 0ms); }
.service-grid .glass-card {
  position: relative;
  rotate: var(--card-rotate, 0deg);
}
.service-grid .glass-card::after {
  content: ''; position: absolute; inset: 0; border-radius: inherit;
  pointer-events: none; opacity: 0; transition: opacity .3s;
  background: radial-gradient(240px circle at var(--light-x, 50%) var(--light-y, 50%), rgba(184,107,255,.16), transparent 75%);
}
.service-grid .glass-card:hover::after { opacity: 1; }
.spotlight {
  top: 0; left: 0;
  width: 180px; height: 180px;
  margin-left: -90px; margin-top: -90px;
  z-index: 120;
  pointer-events: none;
  background: radial-gradient(circle, rgba(211,166,255,.18) 0%, rgba(184,107,255,.09) 24%, rgba(123,46,255,.035) 45%, transparent 70%);
  opacity: 0;
  transition: opacity .35s ease;
}
.spotlight.cursor-visible { opacity: 1; }
@media (pointer: coarse), (prefers-reduced-motion: reduce) {
  .spotlight { display: none; }
}
/* Ícones em movimento contínuo, também em telas de toque. */
@keyframes mdm-icon-float {
  0%, 100% { transform: translateY(0) rotate(-6deg) scale(1); }
  50% { transform: translateY(-7px) rotate(7deg) scale(1.08); }
}
@keyframes mdm-icon-orbit {
  to { transform: rotate(360deg); }
}
@media (prefers-reduced-motion: no-preference) {
  .service-grid .icon {
    animation: mdm-icon-float 3.6s ease-in-out infinite, mdm-glow 3.6s ease-in-out infinite;
  }
  .service-grid article:nth-child(2n) .icon { animation-delay: -.9s; }
  .service-grid article:nth-child(3n) .icon { animation-delay: -1.8s; }
  .services-ticker-group li::after {
    animation: mdm-icon-orbit 9s linear infinite;
    transform-origin: center;
  }
  .services-ticker-group li:nth-child(even)::after { animation-direction: reverse; }
}
.motion-paused *, .motion-paused *::before, .motion-paused *::after { animation-play-state: paused !important; }
/* Percurso luminoso e destaque sequencial das cinco etapas. */
@keyframes mdm-process-travel {
  0% { left: -18%; opacity: 0; }
  8% { opacity: 1; }
  90% { opacity: 1; }
  100% { left: 100%; opacity: 0; }
}
@keyframes mdm-process-travel-mobile {
  0% { top: -18%; opacity: 0; }
  8% { opacity: 1; }
  90% { opacity: 1; }
  100% { top: 100%; opacity: 0; }
}
@keyframes mdm-process-beat {
  0%, 26%, 100% {
    transform: scale(1);
    border-color: rgba(184,107,255,.5);
    box-shadow: 0 0 18px rgba(123,46,255,.15);
  }
  10% {
    transform: scale(1.12);
    border-color: #ead4ff;
    box-shadow: 0 0 28px rgba(184,107,255,.7), inset 0 0 16px rgba(123,46,255,.3);
  }
}
@keyframes mdm-process-ring {
  0% { transform: scale(.95); opacity: 0; }
  8% { opacity: .75; }
  30%, 100% { transform: scale(1.65); opacity: 0; }
}
@media (prefers-reduced-motion: no-preference) {
  .timeline .line { overflow: hidden; }
  .timeline .line::after {
    content: ''; position: absolute; top: 0; left: -18%;
    width: 18%; height: 100%;
    background: linear-gradient(90deg, transparent, #e9ceff 65%, #fff, transparent);
    animation: mdm-process-travel 6s linear infinite;
  }
  .timeline article { --step-delay: 0s; }
  .timeline article:nth-of-type(2) { --step-delay: 1.05s; }
  .timeline article:nth-of-type(3) { --step-delay: 2.1s; }
  .timeline article:nth-of-type(4) { --step-delay: 3.15s; }
  .timeline article:nth-of-type(5) { --step-delay: 4.2s; }
  .timeline article:nth-of-type(n) strong {
    position: relative;
    animation: mdm-process-beat 6s ease-in-out infinite;
    animation-delay: var(--step-delay);
  }
  .timeline strong::after {
    content: ''; position: absolute; inset: -2px;
    border: 1px solid rgba(184,107,255,.7); border-radius: 50%;
    pointer-events: none; opacity: 0;
    animation: mdm-process-ring 6s ease-out infinite;
    animation-delay: var(--step-delay);
  }
}
@media (max-width: 800px) and (prefers-reduced-motion: no-preference) {
  .timeline .line::after {
    left: 0; top: -18%; width: 100%; height: 18%;
    background: linear-gradient(180deg, transparent, #e9ceff 65%, #fff, transparent);
    animation-name: mdm-process-travel-mobile;
  }
}
/* Movimento contínuo dos depoimentos sem interferir no trilho do carrossel. */
@keyframes mdm-quote-float {
  0%, 100% { translate: 0 0; }
  50% { translate: 0 -5px; }
}
@keyframes mdm-quote-light {
  0%, 100% { border-color: rgba(184,107,255,.14); }
  50% { border-color: rgba(184,107,255,.48); }
}
@keyframes mdm-stars-shimmer {
  0%, 100% { color: #b86bff; filter: drop-shadow(0 0 3px rgba(184,107,255,.3)); }
  50% { color: #e1baff; filter: drop-shadow(0 0 9px rgba(184,107,255,.8)); }
}
@keyframes mdm-avatar-pulse {
  0%, 100% { scale: 1; box-shadow: 0 0 12px rgba(184,107,255,.25); }
  50% { scale: 1.06; box-shadow: 0 0 22px rgba(184,107,255,.55); }
}
@media (prefers-reduced-motion: no-preference) {
  .testimonials .quote {
    --quote-delay: 0s;
    animation: mdm-quote-float 6s ease-in-out infinite, mdm-quote-light 6s ease-in-out infinite;
    animation-delay: var(--quote-delay);
  }
  .testimonials .quote:nth-child(3n + 2) { --quote-delay: -2s; }
  .testimonials .quote:nth-child(3n) { --quote-delay: -4s; }
  .testimonials .quote .stars {
    animation: mdm-stars-shimmer 4s ease-in-out infinite;
    animation-delay: var(--quote-delay);
  }
  .testimonials .quote .avatar {
    animation: mdm-avatar-pulse 4s ease-in-out infinite;
    animation-delay: var(--quote-delay);
  }
  .testimonials .quote:hover { transform: none; }
  .testimonials-slider.is-dragging .quote { animation-play-state: paused; }
}
@media (hover: none) {
  .spotlight { display: none; }
  .aurora { animation-duration: 18s; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .reveal { opacity: 1; transform: none; filter: none; }
  .service-grid .glass-card { rotate: none; }
}
