/* ===== Animations — Cabinet Neveu ===== */

/* Respect users who prefer no motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.001ms !important; transition-duration: 0.001ms !important; }
}

/* --- Scroll reveal (fade + rise) --- */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.8s cubic-bezier(.16,.8,.24,1), transform 0.8s cubic-bezier(.16,.8,.24,1);
  will-change: opacity, transform;
}
.reveal.in-view {
  opacity: 1;
  transform: translateY(0);
}
/* Staggered delays for elements revealed together */
.reveal.stagger-1 { transition-delay: .08s; }
.reveal.stagger-2 { transition-delay: .16s; }
.reveal.stagger-3 { transition-delay: .24s; }
.reveal.stagger-4 { transition-delay: .32s; }
.reveal.stagger-5 { transition-delay: .40s; }
.reveal.stagger-6 { transition-delay: .48s; }
.reveal.stagger-7 { transition-delay: .56s; }
.reveal.stagger-8 { transition-delay: .64s; }

/* --- Gold divider draw-in --- */
.divider-gold{ position:relative; overflow:hidden; }
.divider-gold::after{
  content:''; position:absolute; inset:0; background:var(--cream);
  transform-origin:right; transform:scaleX(1);
  transition:transform 0.9s cubic-bezier(.65,0,.35,1);
}
.section-navy .divider-gold::after, .hero .divider-gold::after, footer.site .divider-gold::after{ background:var(--navy-dark); }
.section-cream-dark .divider-gold::after{ background:var(--cream-dark); }
.divider-gold.in-view::after{ transform:scaleX(0); }

/* --- Hero entrance (plays immediately on load, no scroll needed) --- */
.hero .eyebrow, .hero h1, .hero p.lede, .hero .signature-line, .hero-actions{
  opacity:0; transform:translateY(18px);
  animation: heroRise 0.9s cubic-bezier(.16,.8,.24,1) forwards;
}
.hero .eyebrow{ animation-delay:.05s; }
.hero h1{ animation-delay:.15s; }
.hero p.lede{ animation-delay:.28s; }
.hero .signature-line{ animation-delay:.38s; }
.hero-actions{ animation-delay:.48s; }
@keyframes heroRise{
  to{ opacity:1; transform:translateY(0); }
}

/* --- Card hover polish (lift + gold border glow) --- */
.svc-card, .reason-item{ transition: transform .35s cubic-bezier(.16,.8,.24,1), box-shadow .35s ease, border-color .35s ease; }
.svc-card:hover{ transform: translateY(-6px); box-shadow: 0 18px 40px rgba(10,22,40,0.12); }
.reason-item{ transition: transform .3s ease; }
.reason-item:hover{ transform: translateY(-3px); }

/* --- Button shine sweep on hover --- */
.btn{ position:relative; overflow:hidden; }
.btn::before{
  content:''; position:absolute; top:0; left:-60%; width:40%; height:100%;
  background:linear-gradient(120deg, transparent, rgba(255,255,255,0.35), transparent);
  transform:skewX(-20deg);
  transition:left .6s ease;
}
.btn:hover::before{ left:130%; }
.qa-btn{ transition: transform .25s ease, box-shadow .25s ease; }
.qa-btn:hover{ transform: translateY(-3px) scale(1.04); box-shadow:0 10px 24px rgba(10,22,40,0.25); }

/* --- Nav link underline sweep --- */
.main-nav a{ position:relative; }
.main-nav a::after{
  content:''; position:absolute; left:0; bottom:-4px; width:100%; height:2px;
  background:var(--gold); transform:scaleX(0); transform-origin:left;
  transition:transform .3s ease;
}
.main-nav a:hover::after, .main-nav a.active::after{ transform:scaleX(1); }

/* --- Timeline step subtle pop-in stagger handled via .reveal on each step --- */

/* --- Logo crest gentle float on hover (header) --- */
.crest-logo{ transition: transform .4s ease; }
header.site a:hover .crest-logo{ transform: rotate(-6deg) scale(1.06); }
