:root {
  --motion-micro: 180ms;
  --motion-reveal: 560ms;
  --motion-mask: 720ms;
  --motion-section: 680ms;
  --motion-ease-reveal: cubic-bezier(.22, 1, .36, 1);
  --stagger-tight: 70ms;
  --stagger-normal: 110ms;
}

.rs-motion-ready [data-reveal] {
  opacity: 0;
  transform: translate3d(0, 18px, 0);
  transition:
    opacity var(--motion-reveal) var(--motion-ease-reveal) var(--reveal-delay, 0ms),
    transform var(--motion-reveal) var(--motion-ease-reveal) var(--reveal-delay, 0ms);
  will-change: opacity, transform;
}

.rs-motion-ready [data-reveal].is-revealed {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  will-change: auto;
}

/* About: dividers draw while their service rows are already arriving. */
.rs-motion-ready .rs-about__services li[data-reveal] {
  position: relative;
  border-color: transparent;
}

.rs-motion-ready .rs-about__services li[data-reveal]::before,
.rs-motion-ready .rs-about__services li[data-reveal]:last-child::after {
  position: absolute;
  right: 0;
  left: 0;
  height: 1px;
  content: "";
  background: var(--color-border);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--motion-reveal) var(--motion-ease-reveal)
    calc(var(--reveal-delay, 0ms) + 35ms);
}

.rs-motion-ready .rs-about__services li[data-reveal]::before { top: 0; }
.rs-motion-ready .rs-about__services li[data-reveal]:last-child::after { bottom: 0; }
.rs-motion-ready .rs-about__services li[data-reveal].is-revealed::before,
.rs-motion-ready .rs-about__services li[data-reveal].is-revealed:last-child::after { transform: scaleX(1); }

/* Personal image and quote behave as one editorial composition. */
.rs-motion-ready [data-reveal="mask"] {
  overflow: hidden;
  opacity: 1;
  transform: none;
}

.rs-motion-ready [data-reveal="mask"] .elementor-widget-container {
  clip-path: inset(0 0 100% 0);
  transition: clip-path var(--motion-mask) var(--motion-ease-reveal) var(--reveal-delay, 0ms);
}

.rs-motion-ready [data-reveal="mask"] img {
  transform: translate3d(0, 10px, 0) scale(1.015);
  transition: transform var(--motion-mask) var(--motion-ease-reveal) var(--reveal-delay, 0ms);
}

.rs-motion-ready [data-reveal="mask"].is-revealed .elementor-widget-container { clip-path: inset(0 0 0 0); }
.rs-motion-ready [data-reveal="mask"].is-revealed img { transform: translate3d(0, 0, 0) scale(1); }

/* Helpers remain intentionally quiet. */
[data-motion-section="helpers"] .elementor-inner-column > .elementor-widget-wrap {
  transition: transform var(--motion-micro) ease, box-shadow var(--motion-micro) ease;
}

/* Certifications: one title/line/row sequence, with no scale on the rows. */
.rs-motion-ready [data-reveal="cert-title"] {
  position: relative;
  transform: translate3d(0, 12px, 0);
}

.rs-motion-ready [data-reveal="cert-title"]::after {
  display: block;
  width: 72px;
  height: 2px;
  margin: 10px auto 0;
  content: "";
  background: var(--color-accent, #f9c349);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--motion-mask) var(--motion-ease-reveal) 40ms;
}

.rs-motion-ready [data-reveal="cert-title"].is-revealed::after { transform: scaleX(1); }

.rs-motion-ready [data-reveal="cert-row"] {
  opacity: .4;
  transform: translate3d(0, 10px, 0);
  transition-duration: var(--motion-section);
}

.rs-motion-ready [data-reveal="cert-row"].is-revealed {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.rs-cert-row img {
  backface-visibility: hidden;
  image-rendering: auto;
}

.rs-cert-row .elementor-widget-wrap {
  transition: transform var(--motion-micro) ease, box-shadow var(--motion-micro) ease;
}

/* Testimonials reveal as complete cards, never as separate lines. */
.rs-motion-ready [data-reveal="testimonial"] {
  opacity: 0;
  transform: translate3d(0, 12px, 0);
  transition-duration: 580ms;
}

.rs-motion-ready [data-reveal="testimonial"].is-revealed {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

/* Article copy overlaps its editorial image mask. */
.rs-motion-ready [data-reveal="article"] {
  opacity: 1;
  transform: none;
}

.rs-motion-ready [data-reveal="article"] .rs-post-card__image-link {
  clip-path: inset(0 0 100% 0);
  transition: clip-path 660ms var(--motion-ease-reveal) var(--reveal-delay, 0ms);
}

.rs-motion-ready [data-reveal="article"] .rs-post-card__image-link img {
  transform: translate3d(0, 10px, 0) scale(1.008);
  transition: transform 660ms var(--motion-ease-reveal) var(--reveal-delay, 0ms);
}

.rs-motion-ready [data-reveal="article"] .rs-post-card__meta,
.rs-motion-ready [data-reveal="article"] h3,
.rs-motion-ready [data-reveal="article"] p,
.rs-motion-ready [data-reveal="article"] .rs-text-link {
  opacity: 0;
  transform: translate3d(0, 14px, 0);
  transition:
    opacity var(--motion-reveal) var(--motion-ease-reveal),
    transform var(--motion-reveal) var(--motion-ease-reveal);
}

.rs-motion-ready [data-reveal="article"] .rs-post-card__meta {
  transition-delay: calc(var(--reveal-delay, 0ms) + 90ms);
}

.rs-motion-ready [data-reveal="article"] h3 {
  transition-delay: calc(var(--reveal-delay, 0ms) + 140ms);
}

.rs-motion-ready [data-reveal="article"] p,
.rs-motion-ready [data-reveal="article"] .rs-text-link {
  transition-delay: calc(var(--reveal-delay, 0ms) + 190ms);
}

.rs-motion-ready [data-reveal="article"].is-revealed .rs-post-card__image-link { clip-path: inset(0 0 0 0); }
.rs-motion-ready [data-reveal="article"].is-revealed .rs-post-card__image-link img { transform: translate3d(0, 0, 0) scale(1); }
.rs-motion-ready [data-reveal="article"].is-revealed .rs-post-card__meta,
.rs-motion-ready [data-reveal="article"].is-revealed h3,
.rs-motion-ready [data-reveal="article"].is-revealed p,
.rs-motion-ready [data-reveal="article"].is-revealed .rs-text-link {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

/* Keep homepage hover feedback micro-sized; the reveal owns the larger movement. */
.rs-blog-section .rs-post-card {
  transition: border-color var(--motion-micro) ease, box-shadow var(--motion-micro) ease;
}

.rs-blog-section .rs-post-card:hover,
.rs-blog-section .rs-post-card:focus-within { transform: none; }

.rs-blog-section .rs-post-card__image-link img { transition-duration: var(--motion-micro); }

@media (hover: hover) and (pointer: fine) {
  [data-motion-section="helpers"] .elementor-inner-column:hover > .elementor-widget-wrap {
    transform: scale(1.02);
  }

  .rs-cert-row .elementor-column:hover .elementor-widget-wrap {
    transform: scale(1.015);
  }

  .rs-blog-section .rs-post-card:hover .rs-post-card__image-link img,
  .rs-blog-section .rs-post-card:focus-within .rs-post-card__image-link img {
    transform: scale(1.022);
  }
}

@media (max-width: 767px) {
  .rs-motion-ready [data-reveal] {
    --reveal-delay: 0ms !important;
    transform: translate3d(0, 12px, 0);
    transition-duration: 460ms;
  }

  .rs-motion-ready [data-reveal="mask"] .elementor-widget-container,
  .rs-motion-ready [data-reveal="mask"] img,
  .rs-motion-ready [data-reveal="article"] .rs-post-card__image-link,
  .rs-motion-ready [data-reveal="article"] .rs-post-card__image-link img,
  .rs-motion-ready [data-reveal="article"] .rs-post-card__meta,
  .rs-motion-ready [data-reveal="article"] h3,
  .rs-motion-ready [data-reveal="article"] p,
  .rs-motion-ready [data-reveal="article"] .rs-text-link,
  .rs-motion-ready .rs-about__services li[data-reveal]::before,
  .rs-motion-ready .rs-about__services li[data-reveal]:last-child::after,
  .rs-motion-ready [data-reveal="cert-title"]::after {
    transition-duration: 460ms;
    transition-delay: 0ms;
  }

  .rs-motion-ready [data-reveal="mask"],
  .rs-motion-ready [data-reveal="article"] { transform: none; }

  .rs-motion-ready [data-reveal="cert-row"] { transform: translate3d(0, 8px, 0); }
  .rs-motion-ready [data-reveal="cert-row"].is-revealed { transform: translate3d(0, 0, 0); }
}

@media (prefers-reduced-motion: reduce) {
  [data-reveal],
  [data-reveal] img,
  [data-reveal="mask"] .elementor-widget-container,
  [data-reveal="article"] .rs-post-card__image-link,
  [data-reveal="article"] .rs-post-card__meta,
  [data-reveal="article"] h3,
  [data-reveal="article"] p,
  [data-reveal="article"] .rs-text-link {
    clip-path: none !important;
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }

  .rs-about__services li[data-reveal]::before,
  .rs-about__services li[data-reveal]:last-child::after,
  [data-reveal="cert-title"]::after {
    transform: scaleX(1) !important;
    transition: none !important;
  }
}
