/* A camada de movimento da v019 fica isolada da composição aprovada na v018. */
:root {
  --motion-ease-out: cubic-bezier(.23, 1, .32, 1);
  --motion-ease-in-out: cubic-bezier(.77, 0, .175, 1);
}

.journey-track > span { transform: scaleY(0); }
.timeline { --timeline-progress: 0; }
.journey { --ring-surface: var(--cream); }
.family-chapter { --ring-surface: var(--pale); }
.process { --ring-surface: color-mix(in srgb, var(--turquoise) 10%, white); }
.chapter-marker,
.timeline li > span {
  transform: scale(.86);
  transition: transform 280ms var(--motion-ease-out), color 220ms var(--motion-ease-out),
    background-color 220ms var(--motion-ease-out), border-color 220ms var(--motion-ease-out),
    box-shadow 220ms var(--motion-ease-out);
}
.is-current .chapter-marker,
.timeline li.is-current > span {
  transform: scale(1.06);
  box-shadow: 0 0 0 5px color-mix(in srgb, var(--sun) 48%, var(--ring-surface));
}
.journey-track > span,
.timeline::after { will-change: transform; }
@media (max-width: 560px) {
  .journey-track { left: 11px; }
  .journey .chapter-marker { left: -40px; }
}

body.motion-ready .final-cta .button-light,
.final-cta .button-light {
  transition: background-color 220ms var(--motion-ease-out), color 220ms var(--motion-ease-out),
    transform 220ms var(--motion-ease-out), text-shadow 220ms var(--motion-ease-out);
}
@media (hover: hover) and (pointer: fine) {
  body.motion-ready .final-cta .button-light:hover,
  .final-cta .button-light:hover {
    background: var(--sun);
    color: var(--ink);
    transform: translateY(-2px) scale(1.02);
    text-shadow: none;
  }
}
body.motion-ready .final-cta .button-light:active,
.final-cta .button-light:active {
  background: var(--sun);
  color: var(--ink);
  transform: scale(.97);
  text-shadow: none;
}
body.motion-ready .final-cta .button-light:focus-visible,
.final-cta .button-light:focus-visible {
  background: var(--sun);
  color: var(--ink);
  text-shadow: none;
  transition: none;
}

.tagline .word {
  color: rgba(255, 255, 255, .72);
  text-shadow: none;
  transition: none;
}

.faq details {
  transition: border-color 220ms var(--motion-ease-out),
    box-shadow 220ms var(--motion-ease-out), background-color 220ms var(--motion-ease-out);
}
.faq details[open] {
  border-color: color-mix(in srgb, var(--teal) 45%, transparent);
  box-shadow: 0 8px 26px color-mix(in srgb, var(--teal) 9%, transparent);
}
.faq-answer { overflow: hidden; }
.faq-toggle { position: relative; }

@media (prefers-reduced-motion: reduce) {
  body.motion-ready .motion-reveal {
    opacity: 1 !important;
    transform: none !important;
    clip-path: none !important;
  }
  .journey-track > span,
  .timeline::after { transform: none !important; will-change: auto; }
  .chapter-marker,
  .timeline li > span { transform: none !important; transition: color 100ms linear, background-color 100ms linear, border-color 100ms linear; }
  .tagline .word { color: white; transition: none; }
  .faq details { transition: border-color 100ms linear, background-color 100ms linear; }
  body.motion-ready .final-cta .button-light,
  .final-cta .button-light { transition: none; }
}
