/* Movimentos curtos: o conteúdo nunca depende de animação para aparecer. */
@media (prefers-reduced-motion: no-preference) {
  .hero-visual > img {
    animation: ww-photo-arrive 5s cubic-bezier(.2,.6,.3,1) both;
  }
  .button span, .text-link span {
    display: inline-block;
    transition: transform 350ms ease;
  }
  .service-card, .model-card {
    transition: transform 450ms ease, box-shadow 450ms ease;
  }
  .service-card img, .business-photo img {
    transition: transform 950ms cubic-bezier(.2,.6,.3,1);
  }
  .hero-card a {
    transition: background 350ms ease, transform 350ms ease;
  }
  .faq-list details[open] p {
    animation: ww-answer-arrive 600ms ease both;
  }
  .form-result.success {
    animation: ww-answer-arrive 700ms ease both;
  }
  .header nav a {
    position: relative;
  }
  .header nav a::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: -7px;
    height: 2px;
    background: var(--purple);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 350ms ease;
  }
}

@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .button:hover span, .text-link:hover span {
    transform: translate(3px,-3px);
  }
  .service-card:hover, .model-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 18px 34px #4e225f14;
  }
  .service-card:hover img, .business-photo:hover img {
    transform: scale(1.035);
  }
  .hero-card a:hover {
    transform: translateY(3px);
    background: #ffffff1a;
  }
  .header nav a:hover::after {
    transform: scaleX(1);
  }
}

@keyframes ww-photo-arrive {
  from {transform: scale(1.045)}
  to {transform: scale(1)}
}
@keyframes ww-answer-arrive {
  from {opacity: 0; transform: translateY(8px)}
  to {opacity: 1; transform: translateY(0)}
}

@media (prefers-reduced-motion: reduce) {
  .hero-visual > img, .faq-list details[open] p, .form-result.success {
    animation: none !important;
  }
}
