/* ── Gate ─────────────────────────────────────────────────────── */
/* Activated by js-lp class on <html> */

/* ── Keyframes ───────────────────────────────────────────────── */
@keyframes lp-rise {
  from { opacity: 0; transform: translateY(18px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes lp-fade {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@keyframes lp-pop {
  from { opacity: 0; transform: translateY(14px) scale(.98); }
  to   { opacity: 1; transform: translateY(0)   scale(1); }
}

/* ── Hero ─────────────────────────────────────────────────────── */
.js-lp .legal-breadcrumb {
  opacity: 0;
  animation: lp-fade .4s ease forwards .05s;
}
.js-lp .legal-hero h1 {
  opacity: 0;
  animation: lp-rise .55s cubic-bezier(.2,0,0,1) forwards .15s;
}
.js-lp .legal-hero .meta {
  opacity: 0;
  animation: lp-fade .45s ease forwards .32s;
}

/* ── Section heads (scroll-triggered via .lp-in class) ───────── */
.js-lp .pol-section-num { opacity: 0; transform: translateY(12px); transition: opacity .4s ease, transform .4s cubic-bezier(.2,0,0,1); }
.js-lp .pol-section-head h2 { opacity: 0; transform: translateY(16px); transition: opacity .5s ease .08s, transform .5s cubic-bezier(.2,0,0,1) .08s; }
.js-lp .pol-section-head p  { opacity: 0; transform: translateY(12px); transition: opacity .45s ease .18s, transform .45s cubic-bezier(.2,0,0,1) .18s; }

.js-lp .pol-section-num.lp-in,
.js-lp .pol-section-head h2.lp-in,
.js-lp .pol-section-head p.lp-in {
  opacity: 1; transform: translateY(0);
}

/* ── Cards (scroll-triggered stagger via JS delay) ───────────── */
.js-lp .pol-card {
  opacity: 0;
  transform: translateY(20px) scale(.99);
  transition: opacity .42s ease, transform .42s cubic-bezier(.2,0,0,1);
}
.js-lp .pol-card.lp-in {
  opacity: 1;
  transform: translateY(0) scale(1);
}

/* ── Reduced-motion override ─────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .js-lp .legal-breadcrumb,
  .js-lp .legal-hero h1,
  .js-lp .legal-hero .meta {
    opacity: 1 !important; animation: none !important;
  }
  .js-lp .pol-section-num,
  .js-lp .pol-section-head h2,
  .js-lp .pol-section-head p,
  .js-lp .pol-card {
    opacity: 1 !important; transform: none !important; transition: none !important;
  }
}
