/* Dovesong motion system: subtle, elegant, and accessibility-aware */
:root { --ds-motion-ease: cubic-bezier(.22,1,.36,1); }

/* Homepage hero sequence */
.home-hero-copy .ds-eyebrow,
.home-hero-copy h1,
.home-hero-copy .home-hero-lead,
.home-hero-copy .home-hero-actions {
  opacity: 0;
  transform: translateY(22px);
  animation: dsHeroReveal 1.15s var(--ds-motion-ease) forwards;
  will-change: opacity, transform;
}
.home-hero-copy .ds-eyebrow { animation-delay: .12s; }
.home-hero-copy h1 { animation-delay: .28s; }
.home-hero-copy .home-hero-lead { animation-delay: .48s; }
.home-hero-copy .home-hero-actions { animation-delay: .68s; }
@keyframes dsHeroReveal {
  from { opacity: 0; transform: translateY(22px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Scroll reveal classes are added by dovesong-animations.js */
.ds-reveal {
  opacity: 0;
  transform: translateY(26px);
  transition: opacity .82s var(--ds-motion-ease), transform .82s var(--ds-motion-ease);
  will-change: opacity, transform;
}
.ds-reveal.ds-in-view { opacity: 1; transform: translateY(0); }
.ds-delay-1 { transition-delay: .08s; }
.ds-delay-2 { transition-delay: .16s; }
.ds-delay-3 { transition-delay: .24s; }
.ds-delay-4 { transition-delay: .32s; }

/* Refined hover motion */
.home-service-card,
.ds-card,
.ds-price-card,
.package-card,
.pricing-card,
.service-card,
.home-process-grid article,
.home-values span {
  transition: transform .36s var(--ds-motion-ease), box-shadow .36s ease, border-color .36s ease;
}
.home-service-card:hover,
.ds-card:hover,
.ds-price-card:hover,
.package-card:hover,
.pricing-card:hover,
.service-card:hover,
.home-process-grid article:hover,
.home-values span:hover {
  transform: translateY(-5px);
  box-shadow: 0 18px 42px rgba(1,21,54,.13);
}

/* Gentle image movement without distortion */
.home-story-image,
.ds-image-frame,
.service-image,
.about-image { overflow: hidden; }
.home-story-image img,
.ds-image-frame img,
.service-image img,
.about-image img {
  transition: transform .8s var(--ds-motion-ease);
}
.home-story-image:hover img,
.ds-image-frame:hover img,
.service-image:hover img,
.about-image:hover img { transform: scale(1.025); }

/* Buttons feel responsive but restrained */
.ds-btn,
.u-btn,
button,
input[type="submit"] {
  transition: transform .25s var(--ds-motion-ease), box-shadow .25s ease, filter .25s ease;
}
.ds-btn:hover,
.u-btn:hover,
button:hover,
input[type="submit"]:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(1,21,54,.16);
}

/* FAQ/details polish */
details summary { transition: color .25s ease, background-color .25s ease; }
details[open] summary { color: var(--ds-gold, #bf8b3e); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-delay: 0ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
  .home-hero-copy .ds-eyebrow,
  .home-hero-copy h1,
  .home-hero-copy .home-hero-lead,
  .home-hero-copy .home-hero-actions,
  .ds-reveal {
    opacity: 1 !important;
    transform: none !important;
  }
}
