/* 全站动效最后加载：进入位移使用 translate，悬停使用 transform，互不覆盖。 */
.button, .text-link, .main-nav > a, .main-nav > a::after, .menu-toggle,
.service-card, .service-icon, .contact-icon, .booking-field input, .booking-field textarea,
.hero-service-paths > a, .context-card, .context-card img, .spotlight-screen,
.hro-content .btn-enhanced, .hro-content .card-hover-enhanced,
.hro-content .case-card, .hro-content .icon-container,
.hro-content .module-tab, .hro-content .transition-all,
.hro-content .transition-colors, .hro-content .transition-transform {
  transition-property: transform, scale, box-shadow, background-color, border-color, color, opacity;
  transition-duration: var(--motion-card);
  transition-timing-function: var(--ease-out);
}
.button, .main-nav > a, .menu-toggle, .booking-field input, .booking-field textarea {
  transition-duration: 360ms;
}
.button .arrow, .text-link .arrow {
  transition: transform var(--motion-card) var(--ease-out);
}
.reveal, .hro-content .reveal {
  transition-property: opacity, translate, transform, box-shadow, background-color, border-color, color;
  transition-duration: var(--motion-enter), var(--motion-enter), var(--motion-card), var(--motion-card), var(--motion-fast), var(--motion-fast), var(--motion-fast);
  transition-timing-function: var(--ease-out);
  transition-delay: var(--reveal-delay, 0ms), var(--reveal-delay, 0ms), 0ms, 0ms, 0ms, 0ms, 0ms;
}
.reveal-pending, .hro-content .reveal-pending { opacity: 0; translate: 0 14px; }
.hero-soft .hero-copy > * { animation: hero-enter var(--motion-enter) var(--ease-out) both; }
.hero-soft .hero-description { animation-delay: 80ms; }
.hero-soft .actions { animation-delay: 160ms; }
.brand-hero-content > * { animation: hero-enter var(--motion-enter) var(--ease-out) both; }
.brand-hero-content > p { animation-delay: 70ms; }
.brand-hero-content > .actions { animation-delay: 140ms; }
.orbit-item { animation: gentle-float 4.8s var(--ease-soft) 1; }
.faq details[open] p { animation: content-enter 400ms var(--ease-out) both; }
.hro-content .module-content:not(.hidden) { animation: content-enter 520ms var(--ease-out) both; }
.button:hover { transform: translateY(-2px); }
.button:active, .hro-content .btn-enhanced:active { transform: translateY(0); }
@media (hover:hover) and (pointer:fine) {
  .button:hover .arrow, .text-link:hover .arrow { transform: translateX(3px); }
  .service-card:hover { transform: translateY(-4px); box-shadow: 0 18px 36px -22px #315c9b44; }
  .service-card:hover .service-icon { transform: translateY(-2px); }
  .needs-grid article:hover .service-icon, .member-benefits article:hover .service-icon { transform: translateY(-3px); }
  .hro-content .btn-enhanced:hover { transform: translateY(-2px); }
  .hro-content .card-hover-enhanced:hover, .hro-content .case-card:hover { transform: translateY(-4px); box-shadow: 0 18px 36px -22px #315c9b44; }
  .hro-content .card-hover-enhanced:hover .icon-container { transform: translateY(-2px); }
}
@media (hover:none) {
  .button:hover, .service-card:hover, .hro-content .btn-enhanced:hover,
  .hro-content .card-hover-enhanced:hover, .hro-content .case-card:hover,
  .hro-content .card-hover-enhanced:hover .icon-container,
  .hro-content .hover\:scale-\[1\.02\]:hover { transform: none; }
}
@media (max-width:1000px) {
  .js .main-nav.is-open { animation: content-enter 320ms var(--ease-out) both; }
}
@keyframes hero-enter { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }
@keyframes gentle-float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }
@keyframes content-enter { from { opacity: 0; translate: 0 8px; } to { opacity: 1; translate: 0 0; } }
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .reveal-pending, .hro-content .reveal-pending { opacity: 1; translate: none; }
  .button:hover, .button:active, .service-card:hover, .context-card:hover, .context-card:hover img,
  .hro-content .btn-enhanced:hover, .hro-content .btn-enhanced:active,
  .hro-content .card-hover-enhanced:hover, .hro-content .case-card:hover,
  .hro-content .card-hover-enhanced:hover .icon-container,
  .hro-content .hover\:scale-\[1\.02\]:hover,
  .service-card:hover .service-icon, .needs-grid article:hover .service-icon,
  .member-benefits article:hover .service-icon, .button:hover .arrow,
  .text-link:hover .arrow { transform: none; }
}
@media print {
  .reveal-pending, .hro-content .reveal-pending { opacity: 1; translate: none; }
}
