/* =========================================================
   index-reveal.css — GSAP scroll-reveal initial-hidden states
   for sections trong sources/index.php
   Chỉ load trên trang chủ. KHÔNG sửa file này nếu không hiểu recipe.
   ========================================================= */

/* Global helper: tắt CSS transitions khi GSAP đang tween
   để tránh stutter. Class do JS toggle.
   ---------------------------------------------------------- */
.gsap-animating,
.gsap-animating * {
  transition: none !important;
  -webkit-transition: none !important;
  -moz-transition: none !important;
  -o-transition: none !important;
}

/* Reduced motion — show all content instantly, no animation */
@media (prefers-reduced-motion: reduce) {
  .js-ctb-about *,
  .js-ctb-cons-cap *,
  .js-ctb-mat-sup *,
  .js-ctb-projects *,
  .js-ctb-supply *,
  .js-ctb-qa *,
  .js-ctb-partners *,
  .js-ctb-final-cta * {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* ===== about-us ===== */
.js-ctb-about.knv-anim-ready .ctb-about-card,
.js-ctb-about.knv-anim-ready .ctb-about-panel > * {
  opacity: 0;
  transform: translateY(24px);
}
.js-ctb-about.knv-anim-ready .ctb-about-arrows {
  opacity: 0;
  transform: scale(0.94);
}

/* ===== construction-capabilities ===== */
.js-ctb-cons-cap.knv-anim-ready .ctb-section-kicker,
.js-ctb-cons-cap.knv-anim-ready .ctb-cons-cap-title,
.js-ctb-cons-cap.knv-anim-ready .ctb-cons-cap-sub {
  opacity: 0;
  transform: translateY(24px);
}
/* ===== material-supply ===== */
.js-ctb-mat-sup.knv-anim-ready .ctb-mat-sup-header > *,
.js-ctb-mat-sup.knv-anim-ready .ctb-mat-sup-sub-desktop {
  opacity: 0;
  transform: translateY(24px);
}
/* ===== projects ===== */
.js-ctb-projects.knv-anim-ready .ctb-projects-head-row > .col-12 > * {
  opacity: 0;
  transform: translateY(24px);
}
/* ===== supply-domains ===== */
.js-ctb-supply.knv-anim-ready .ctb-supply-kicker,
.js-ctb-supply.knv-anim-ready .ctb-supply-body {
  opacity: 0;
  transform: translateY(24px);
}
.js-ctb-supply.knv-anim-ready .ctb-supply-stat {
  opacity: 0;
  transform: translateY(20px);
}

/* ===== qa-qc ===== */
.js-ctb-qa.knv-anim-ready .ctb-qa-title,
.js-ctb-qa.knv-anim-ready .ctb-qa-all-btn {
  opacity: 0;
  transform: translateY(24px);
}
.js-ctb-qa.knv-anim-ready .ctb-qa-step {
  opacity: 0;
  transform: translateX(-24px);
}
.js-ctb-qa.knv-anim-ready .ctb-qa-featured {
  opacity: 0;
  transform: scale(0.96);
}

/* ===== partners ===== */
.js-ctb-partners.knv-anim-ready .ctb-section-heading > * {
  opacity: 0;
  transform: translateY(24px);
}
/* ===== final-cta ===== */
.js-ctb-final-cta.knv-anim-ready .ctb-final-cta-copy > * {
  opacity: 0;
  transform: translateY(24px);
}
.js-ctb-final-cta.knv-anim-ready .ctb-final-cta-img {
  opacity: 0;
  transform: scale(1.04);
}
.js-ctb-final-cta.knv-anim-ready .ctb-final-cta-stat {
  opacity: 0;
  transform: translateY(16px);
}
