/* ── Section in-view reveal (static sections) ── */
[data-section-reveal] {
  --section-reveal-duration: var(--motion-reveal-duration);
  --section-reveal-ease: var(--motion-reveal-ease);
  --section-reveal-distance: var(--motion-reveal-distance);
}

/* Needs intro — header + per-card */
[data-section-reveal].needs--intro:not(.is-in-view) .needs__header {
  opacity: 0;
  transform: translateY(var(--section-reveal-distance));
}

[data-section-reveal].needs--intro.is-in-view .needs__header {
  opacity: 1;
  transform: translateY(0);
  transition:
    opacity var(--section-reveal-duration) var(--section-reveal-ease),
    transform var(--section-reveal-duration) var(--section-reveal-ease);
}

[data-section-reveal].needs--intro .needs-card:not(.is-in-view) {
  opacity: 0;
  transform: translateY(var(--section-reveal-distance));
}

[data-section-reveal].needs--intro .needs-card.is-in-view {
  opacity: 1;
  transform: translateY(0);
  transition:
    opacity var(--section-reveal-duration) var(--section-reveal-ease),
    transform var(--section-reveal-duration) var(--section-reveal-ease);
}

/* Needs clinic — title → visual → copy */
[data-section-reveal].needs--clinic:not(.is-in-view) .needs-clinic__title,
[data-section-reveal].needs--clinic:not(.is-in-view) .needs-clinic__content {
  opacity: 0;
  transform: translateY(var(--section-reveal-distance));
}

[data-section-reveal].needs--clinic:not(.is-in-view) .needs-clinic__visual img {
  opacity: 0;
  transform: scale(1.03);
}

[data-section-reveal].needs--clinic.is-in-view .needs-clinic__title,
[data-section-reveal].needs--clinic.is-in-view .needs-clinic__content {
  opacity: 1;
  transform: translateY(0);
  transition:
    opacity var(--section-reveal-duration) var(--section-reveal-ease),
    transform var(--section-reveal-duration) var(--section-reveal-ease);
}

[data-section-reveal].needs--clinic.is-in-view .needs-clinic__title {
  transition-delay: 0s;
}

[data-section-reveal].needs--clinic.is-in-view .needs-clinic__visual img {
  opacity: 1;
  transform: scale(1);
  transition:
    opacity 0.85s var(--section-reveal-ease),
    transform 0.85s var(--section-reveal-ease);
  transition-delay: 0.28s;
}

[data-section-reveal].needs--clinic.is-in-view .needs-clinic__content {
  transition-delay: 0.52s;
}

/* ECM section03 — header + per-card */
[data-section-reveal].ecm--03:not(.is-in-view) .ecm__header {
  opacity: 0;
  transform: translateY(var(--section-reveal-distance));
}

[data-section-reveal].ecm--03.is-in-view .ecm__header {
  opacity: 1;
  transform: translateY(0);
  transition:
    opacity var(--section-reveal-duration) var(--section-reveal-ease),
    transform var(--section-reveal-duration) var(--section-reveal-ease);
}

[data-section-reveal].ecm--03 .ecm__card:not(.is-in-view) {
  opacity: 0;
  transform: translateY(var(--section-reveal-distance));
}

[data-section-reveal].ecm--03 .ecm__card.is-in-view {
  opacity: 1;
  transform: translateY(0);
  transition:
    opacity var(--section-reveal-duration) var(--section-reveal-ease),
    transform var(--section-reveal-duration) var(--section-reveal-ease);
}

/* RegenMat intro — sign / header / lead + per-card */
[data-section-reveal].regenmat-intro:not(.is-in-view) .regenmat-intro__sign,
[data-section-reveal].regenmat-intro:not(.is-in-view) .regenmat-intro__header,
[data-section-reveal].regenmat-intro:not(.is-in-view) .regenmat-intro__lead {
  opacity: 0;
  transform: translateY(var(--section-reveal-distance));
}

[data-section-reveal].regenmat-intro.is-in-view .regenmat-intro__sign,
[data-section-reveal].regenmat-intro.is-in-view .regenmat-intro__header,
[data-section-reveal].regenmat-intro.is-in-view .regenmat-intro__lead {
  opacity: 1;
  transform: translateY(0);
  transition:
    opacity var(--section-reveal-duration) var(--section-reveal-ease),
    transform var(--section-reveal-duration) var(--section-reveal-ease);
}

[data-section-reveal].regenmat-intro.is-in-view .regenmat-intro__header {
  transition-delay: 0s;
}

[data-section-reveal].regenmat-intro.is-in-view .regenmat-intro__lead {
  transition-delay: 0.12s;
}

[data-section-reveal].regenmat-intro .regenmat-intro-card:not(.is-in-view) {
  opacity: 0;
  transform: translateY(var(--section-reveal-distance));
}

[data-section-reveal].regenmat-intro .regenmat-intro-card.is-in-view {
  opacity: 1;
  transform: translateY(0);
  transition:
    opacity var(--section-reveal-duration) var(--section-reveal-ease),
    transform var(--section-reveal-duration) var(--section-reveal-ease);
}

@media (prefers-reduced-motion: reduce) {
  [data-section-reveal]:not(.is-in-view) .needs__header,
  [data-section-reveal].is-in-view .needs__header,
  [data-section-reveal] .needs-card:not(.is-in-view),
  [data-section-reveal] .needs-card.is-in-view,
  [data-section-reveal]:not(.is-in-view) .needs-clinic__title,
  [data-section-reveal]:not(.is-in-view) .needs-clinic__visual img,
  [data-section-reveal]:not(.is-in-view) .needs-clinic__content,
  [data-section-reveal].is-in-view .needs-clinic__title,
  [data-section-reveal].is-in-view .needs-clinic__visual img,
  [data-section-reveal].is-in-view .needs-clinic__content,
  [data-section-reveal]:not(.is-in-view) .ecm__header,
  [data-section-reveal].is-in-view .ecm__header,
  [data-section-reveal] .ecm__card:not(.is-in-view),
  [data-section-reveal] .ecm__card.is-in-view,
  [data-section-reveal]:not(.is-in-view) .regenmat-intro__sign,
  [data-section-reveal]:not(.is-in-view) .regenmat-intro__header,
  [data-section-reveal]:not(.is-in-view) .regenmat-intro__lead,
  [data-section-reveal].is-in-view .regenmat-intro__sign,
  [data-section-reveal].is-in-view .regenmat-intro__header,
  [data-section-reveal].is-in-view .regenmat-intro__lead,
  [data-section-reveal] .regenmat-intro-card:not(.is-in-view),
  [data-section-reveal] .regenmat-intro-card.is-in-view {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
