﻿/* Progressive content reveals */
.scroll-reveal {
  opacity: 0;
  translate: 0 44px;
  transition:
    opacity 1100ms cubic-bezier(0.22, 1, 0.36, 1),
    translate 1350ms cubic-bezier(0.22, 1, 0.36, 1),
    scale 1450ms cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: var(--reveal-delay, 0ms);
}

.scroll-reveal.reveal-left {
  translate: -56px 0;
}

.scroll-reveal.reveal-right {
  translate: 56px 0;
}

.scroll-reveal.reveal-scale {
  translate: 0 28px;
  scale: 0.96;
}

.scroll-reveal.is-revealed {
  opacity: 1;
  translate: 0 0;
  scale: 1;
}

.home-therapeutic-card.scroll-reveal.reveal-therapeutic {
  opacity: 0;
  translate: 0 74px;
  rotate: -2deg;
  scale: 1;
  transition:
    opacity 1150ms cubic-bezier(0.22, 1, 0.36, 1),
    translate 1500ms cubic-bezier(0.16, 1, 0.3, 1),
    rotate 1500ms cubic-bezier(0.16, 1, 0.3, 1),
    border-color 180ms ease,
    box-shadow 180ms ease,
    transform 180ms ease;
  transition-delay: var(--reveal-delay, 0ms);
}

.home-therapeutic-card.scroll-reveal.reveal-therapeutic:nth-child(even) {
  rotate: 2deg;
}

.home-therapeutic-card.scroll-reveal.reveal-therapeutic .home-therapeutic-image img {
  transform: scale(1.12);
  transition:
    filter 220ms ease,
    transform 1500ms cubic-bezier(0.16, 1, 0.3, 1);
}

.home-therapeutic-card.scroll-reveal.reveal-therapeutic.is-revealed {
  opacity: 1;
  translate: 0 0;
  rotate: 0deg;
}

.home-therapeutic-card.scroll-reveal.reveal-therapeutic.is-revealed .home-therapeutic-image img {
  transform: scale(1);
}

.home-therapeutic-card.scroll-reveal.reveal-therapeutic.is-revealed:hover .home-therapeutic-image img,
.home-therapeutic-card.scroll-reveal.reveal-therapeutic.is-revealed:focus-within .home-therapeutic-image img {
  transform: scale(1.04);
}

.company-history-intro.scroll-reveal.reveal-history-heading {
  opacity: 0;
  translate: -120px 0;
  clip-path: inset(0 100% 0 0);
  transition:
    opacity 900ms cubic-bezier(0.22, 1, 0.36, 1),
    translate 1300ms cubic-bezier(0.16, 1, 0.3, 1),
    clip-path 1300ms cubic-bezier(0.16, 1, 0.3, 1);
  transition-delay: 120ms;
}

.company-page-body .company-history-copy > p {
  opacity: 0;
  animation: company-history-paragraph-enter 820ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

.company-page-body .company-history-copy > p:nth-of-type(1) {
  animation-delay: 700ms;
}

.company-page-body .company-history-copy > p:nth-of-type(2) {
  animation-delay: 850ms;
}

.company-page-body .company-history-copy > p:nth-of-type(3) {
  animation-delay: 1000ms;
}

.company-history-intro.scroll-reveal.reveal-history-heading.is-revealed {
  opacity: 1;
  translate: 0 0;
  scale: 1;
  clip-path: inset(0 0 0 0);
  filter: none;
}

@keyframes company-history-paragraph-enter {
  0% {
    opacity: 0;
    translate: 110px 0;
    filter: blur(8px);
  }
  70% {
    opacity: 1;
    translate: -5px 0;
    filter: blur(0);
  }
  100% {
    opacity: 1;
    translate: 0 0;
    filter: none;
  }
}

.company-page-body .company-history-highlights article {
  animation: company-history-metric-enter 900ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

.company-page-body .company-history-highlights article:nth-child(1) {
  animation-delay: 220ms;
}

.company-page-body .company-history-highlights article:nth-child(2) {
  animation-delay: 420ms;
}

.company-page-body .company-history-highlights article:nth-child(3) {
  animation-delay: 620ms;
}

.company-page-body .company-history-highlights article i {
  animation: company-history-icon-enter 650ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

.company-page-body .company-history-highlights article:nth-child(1) i {
  animation-delay: 320ms;
}

.company-page-body .company-history-highlights article:nth-child(2) i {
  animation-delay: 520ms;
}

.company-page-body .company-history-highlights article:nth-child(3) i {
  animation-delay: 720ms;
}

@keyframes company-history-metric-enter {
  0% {
    opacity: 0;
    translate: 0 90px;
    scale: 0.48;
  }
  68% {
    opacity: 1;
    translate: 0 -8px;
    scale: 1.07;
  }
  100% {
    opacity: 1;
    translate: 0 0;
    scale: 1;
  }
}

@keyframes company-history-icon-enter {
  0% {
    opacity: 0;
    rotate: -28deg;
    scale: 0.35;
  }
  72% {
    opacity: 1;
    rotate: 5deg;
    scale: 1.12;
  }
  100% {
    opacity: 1;
    rotate: 0deg;
    scale: 1;
  }
}

.services-page .services-category:first-child .services-category-copy > * {
  opacity: 0;
  animation: services-intro-copy-enter 900ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

.services-page .services-category:first-child .services-category-copy > :nth-child(1) {
  animation-delay: 160ms;
}

.services-page .services-category:first-child .services-category-copy > :nth-child(2) {
  animation-delay: 300ms;
}

.services-page .services-category:first-child .services-category-copy > :nth-child(3) {
  animation-delay: 440ms;
}

.services-page .services-category:first-child .services-category-copy > :nth-child(4) {
  animation-delay: 600ms;
}

.services-page .services-category:first-child .services-category-media {
  opacity: 0;
  clip-path: inset(0 0 0 100%);
  animation: services-intro-media-enter 1350ms 220ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

.services-page .services-category:first-child .services-category-media video,
.services-page .services-category:first-child .services-category-media img {
  animation: services-intro-media-scale 1700ms 220ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

@keyframes services-intro-copy-enter {
  from {
    opacity: 0;
    translate: -92px 0;
    filter: blur(5px);
  }
  to {
    opacity: 1;
    translate: 0 0;
    filter: none;
  }
}

@keyframes services-intro-media-enter {
  from {
    opacity: 0;
    translate: 110px 0;
    clip-path: inset(0 0 0 100%);
  }
  to {
    opacity: 1;
    translate: 0 0;
    clip-path: inset(0 0 0 0);
  }
}

@keyframes services-intro-media-scale {
  from {
    scale: 1.14;
    filter: brightness(0.7) saturate(0.75);
  }
  to {
    scale: 1;
    filter: brightness(1) saturate(1);
  }
}

.services-category:not(:first-child) .scroll-reveal.reveal-service-copy {
  opacity: 0;
  translate: -92px 0;
  filter: blur(5px);
  transition:
    opacity 900ms cubic-bezier(0.22, 1, 0.36, 1),
    translate 1150ms cubic-bezier(0.16, 1, 0.3, 1),
    filter 900ms ease-out;
  transition-delay: var(--reveal-delay, 0ms);
}

.services-category.service-reveal-reversed .scroll-reveal.reveal-service-copy {
  translate: 92px 0;
}

.services-category:not(:first-child) .scroll-reveal.reveal-service-media {
  opacity: 0;
  translate: 110px 0;
  /* Keep the observed media box unclipped so its reveal can intersect. */
  clip-path: none;
  transition:
    opacity 1000ms cubic-bezier(0.22, 1, 0.36, 1),
    translate 1350ms cubic-bezier(0.16, 1, 0.3, 1);
}

.services-category.service-reveal-reversed .scroll-reveal.reveal-service-media {
  translate: -110px 0;
  clip-path: none;
}

.services-category:not(:first-child) .scroll-reveal.reveal-service-media video,
.services-category:not(:first-child) .scroll-reveal.reveal-service-media img {
  scale: 1.14;
  filter: brightness(0.72) saturate(0.78);
  transition:
    scale 1600ms cubic-bezier(0.16, 1, 0.3, 1),
    filter 1300ms ease-out;
}

.services-category:not(:first-child) .scroll-reveal.reveal-service-copy.is-revealed,
.services-category:not(:first-child) .scroll-reveal.reveal-service-media.is-revealed {
  opacity: 1;
  translate: 0 0;
  clip-path: inset(0 0 0 0);
  filter: none;
}

.services-category:not(:first-child) .scroll-reveal.reveal-service-media.is-revealed video,
.services-category:not(:first-child) .scroll-reveal.reveal-service-media.is-revealed img {
  scale: 1;
  filter: none;
}

@media (max-width: 760px) {
  /* Mobile reveals use one safe motion pattern without clipping card content. */
  .scroll-reveal {
    opacity: 0 !important;
    visibility: visible !important;
    translate: 0 18px !important;
    rotate: 0deg !important;
    scale: 0.985 !important;
    clip-path: none !important;
    filter: none !important;
    animation: none !important;
    transition:
      opacity 520ms cubic-bezier(0.22, 1, 0.36, 1),
      translate 620ms cubic-bezier(0.22, 1, 0.36, 1),
      scale 620ms cubic-bezier(0.22, 1, 0.36, 1) !important;
    transition-delay: var(--reveal-delay, 0ms) !important;
  }

  .scroll-reveal.is-revealed {
    opacity: 1 !important;
    translate: 0 0 !important;
    scale: 1 !important;
  }

  .scroll-reveal,
  .scroll-reveal.reveal-left,
  .scroll-reveal.reveal-right,
  .scroll-reveal.reveal-scale,
  .home-therapeutic-card.scroll-reveal.reveal-therapeutic,
  .contact-copy .scroll-reveal.reveal-contact-copy,
  .contact-direct-card.scroll-reveal.reveal-contact-card,
  .contact-form.scroll-reveal.reveal-contact-form,
  .careers-intro-copy .scroll-reveal.reveal-careers-copy,
  .careers-training-badge.scroll-reveal.reveal-careers-badge,
  .careers-openings > .scroll-reveal.reveal-careers-card,
  .expertise-feature .scroll-reveal.reveal-expertise-media,
  .expertise-feature .scroll-reveal.reveal-expertise-copy,
  .expertise-feature:nth-child(even) .scroll-reveal.reveal-expertise-media,
  .expertise-feature:nth-child(even) .scroll-reveal.reveal-expertise-copy,
  .qdose-copy.scroll-reveal.reveal-qdose-copy,
  .qdose-video.scroll-reveal.reveal-qdose-video {
    translate: 0 30px;
    rotate: 0deg;
  }

  .company-history-intro.scroll-reveal.reveal-history-heading,
  .company-page-body .company-history-copy > p {
    translate: 0 48px;
  }

  .services-category:not(:first-child) .scroll-reveal.reveal-service-copy,
  .services-category:not(:first-child) .scroll-reveal.reveal-service-media,
  .services-category.service-reveal-reversed .scroll-reveal.reveal-service-copy,
  .services-category.service-reveal-reversed .scroll-reveal.reveal-service-media {
    translate: 0 42px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .scroll-reveal {
    opacity: 1 !important;
    translate: none !important;
    rotate: 0deg !important;
    scale: 1 !important;
    clip-path: none !important;
    filter: none !important;
    animation: none !important;
    transition: none !important;
  }

  .scroll-reveal,
  .scroll-reveal.reveal-left,
  .scroll-reveal.reveal-right,
  .scroll-reveal.reveal-scale,
  .home-therapeutic-card.scroll-reveal.reveal-therapeutic,
  .contact-copy .scroll-reveal.reveal-contact-copy,
  .contact-direct-card.scroll-reveal.reveal-contact-card,
  .contact-form.scroll-reveal.reveal-contact-form,
  .careers-intro-copy .scroll-reveal.reveal-careers-copy,
  .careers-training-badge.scroll-reveal.reveal-careers-badge,
  .careers-openings > .scroll-reveal.reveal-careers-card,
  .expertise-feature .scroll-reveal.reveal-expertise-media,
  .expertise-feature .scroll-reveal.reveal-expertise-copy,
  .expertise-feature:nth-child(even) .scroll-reveal.reveal-expertise-media,
  .expertise-feature:nth-child(even) .scroll-reveal.reveal-expertise-copy,
  .qdose-copy.scroll-reveal.reveal-qdose-copy,
  .qdose-video.scroll-reveal.reveal-qdose-video {
    opacity: 1;
    translate: none;
    rotate: 0deg;
    scale: 1;
    transition: none;
  }

  .company-history-intro.scroll-reveal.reveal-history-heading,
  .company-page-body .company-history-copy > p,
  .company-page-body .company-history-highlights article,
  .company-page-body .company-history-highlights article i,
  .imaging-intro-copy h2.scroll-reveal.reveal-imaging-heading,
  .imaging-visual-card.scroll-reveal.reveal-imaging-media {
    opacity: 1;
    translate: none;
    scale: 1;
    clip-path: none;
    filter: none;
    transition: none;
    animation: none;
  }

  .imaging-check-grid li.scroll-reveal.reveal-imaging-item::before {
    scale: 1;
    rotate: 0deg;
    transition: none;
  }

  .services-page .services-category:first-child .services-category-copy > *,
  .services-page .services-category:first-child .services-category-media,
  .services-page .services-category:first-child .services-category-media video,
  .services-page .services-category:first-child .services-category-media img {
    opacity: 1;
    translate: none;
    scale: 1;
    clip-path: none;
    filter: none;
    animation: none;
  }

  .services-category:not(:first-child) .scroll-reveal.reveal-service-copy,
  .services-category:not(:first-child) .scroll-reveal.reveal-service-media,
  .services-category:not(:first-child) .scroll-reveal.reveal-service-media video,
  .services-category:not(:first-child) .scroll-reveal.reveal-service-media img {
    opacity: 1;
    translate: none;
    scale: 1;
    clip-path: none;
    filter: none;
    transition: none;
  }

  .home-therapeutic-card.scroll-reveal.reveal-therapeutic .home-therapeutic-image img {
    transform: none;
    transition: none;
  }
}
