/* Lightweight motion layer inspired by the reference clinic site. */
.scroll-progress {
  position: fixed;
  z-index: 60;
  inset: 0 auto auto 0;
  width: 100%;
  height: 3px;
  background: linear-gradient(90deg, #2f9e96, #f0b464);
  transform: scaleX(0);
  transform-origin: left center;
  pointer-events: none;
}

.hero .eyebrow,
.hero h1,
.hero-lede,
.hero-actions,
.trust-row {
  animation: daol-hero-in .78s cubic-bezier(.2,.75,.25,1) both;
}
.hero h1 { animation-delay: 90ms; }
.hero-lede { animation-delay: 170ms; }
.hero-actions { animation-delay: 250ms; }
.trust-row { animation-delay: 330ms; }
.hero-photo { animation: daol-photo-in 1.1s cubic-bezier(.2,.75,.25,1) both, daol-photo-drift 9s ease-in-out 1.2s infinite alternate; }
.hero-badge { animation: daol-float 5s ease-in-out 1.4s infinite; }
.hero-note { animation: daol-float 6s ease-in-out 1.6s infinite reverse; }

.branch-card,
.program-card,
.quick-link,
.voucher-item,
.principle {
  transition: transform .35s cubic-bezier(.2,.75,.25,1), box-shadow .35s ease, border-color .25s ease, background .25s ease;
}
.program-card:hover .program-icon,
.quick-link:hover .quick-icon { transform: rotate(-4deg) scale(1.08); }
.program-icon,
.quick-icon { transition: transform .35s cubic-bezier(.2,.75,.25,1); }
.branch-card:hover { transform: translateY(-7px); box-shadow: 0 22px 44px rgba(18,50,74,.10); }
.voucher-item[open] { box-shadow: 0 14px 30px rgba(18,50,74,.07); }

.motion-ready .reveal-target {
  opacity: 0;
  transform: translateY(26px);
  transition: opacity .72s ease var(--reveal-delay, 0ms), transform .72s cubic-bezier(.2,.75,.25,1) var(--reveal-delay, 0ms);
  will-change: opacity, transform;
}
.motion-ready .reveal-target.is-visible {
  opacity: 1;
  transform: none;
}
.motion-ready .reveal-target.reveal-left { transform: translateX(-26px); }
.motion-ready .reveal-target.reveal-left.is-visible { transform: none; }

@keyframes daol-hero-in {
  from { opacity: 0; transform: translateY(18px); }
  to { opacity: 1; transform: none; }
}
@keyframes daol-photo-in {
  from { opacity: 0; transform: translateX(22px) scale(1.04); }
  to { opacity: 1; transform: none; }
}
@keyframes daol-photo-drift {
  from { object-position: 50% 46%; }
  to { object-position: 53% 54%; }
}
@keyframes daol-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-6px); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .motion-ready .reveal-target,
  .motion-ready .reveal-target.reveal-left { opacity: 1; transform: none; }
}

@media (max-width: 620px) {
  .scroll-progress { height: 2px; }
  .hero-photo { animation-name: daol-photo-in; }
  .branch-card:hover { transform: none; }
}
