/* ============================================================================
   PREVAIL — MOTION LAYER
   Principle: motion communicates precision, not personality.
   Transform/opacity only (GPU-composited, zero layout thrash).
   Fully neutralised under prefers-reduced-motion.
   ========================================================================== */

:root{
  --ease-expo:cubic-bezier(.16,1,.3,1);
  --ease-precision:cubic-bezier(.22,.61,.36,1);
  --dur-fast:.45s;
  --dur-base:.7s;
  --dur-slow:1.1s;
}

/* ---------- 1 · canvas width ---------- */
.wrap{max-width:1400px}
.nav .wrap{max-width:94%;margin-inline:auto}

/* ---------- 2 · section reveal ---------- */
.reveal{opacity:0;transform:translateY(22px);
  transition:opacity var(--dur-base) var(--ease-expo),
             transform var(--dur-base) var(--ease-expo)}
.reveal.in{opacity:1;transform:none}

/* ---------- 3 · staggered children ---------- */
[data-stagger]>*{opacity:0;transform:translateY(18px);
  transition:opacity var(--dur-fast) var(--ease-expo),
             transform var(--dur-fast) var(--ease-expo);
  transition-delay:calc(var(--i,0) * 70ms)}
[data-stagger].in>*{opacity:1;transform:none}

/* ---------- 4 · masked heading reveal ---------- */
.ln{display:block;overflow:hidden;padding-bottom:.04em}
.ln>span{display:block;transform:translateY(105%);
  transition:transform var(--dur-slow) var(--ease-expo);
  transition-delay:calc(var(--i,0) * 90ms)}
.in .ln>span,.ln.in>span{transform:none}

/* ---------- 5 · dimension bars ("No rates on this site") ---------- */
.dims{display:grid;grid-template-columns:repeat(3,1fr);gap:1.8rem 1rem;
  margin-top:3rem;align-items:end}
@media(min-width:820px){.dims{grid-template-columns:repeat(6,1fr);gap:1.4rem}}
.dim{display:flex;flex-direction:column;align-items:center;gap:.9rem}
.dim-track{position:relative;width:100%;max-width:60px;height:150px;
  background:rgba(255,255,255,.09);border-radius:999px;overflow:hidden}
.dim-fill{position:absolute;left:0;right:0;bottom:0;height:0;
  background:rgba(255,255,255,.82);border-radius:999px;
  transition:height var(--dur-slow) var(--ease-precision);
  transition-delay:calc(var(--i,0) * 110ms)}
.dim--accent .dim-fill{background:var(--copper)}
.dims.in .dim-fill{height:var(--h)}
.dim-label{font-size:.8rem;letter-spacing:.02em;line-height:1.3;text-align:center;
  color:rgba(255,255,255,.7)}
.dim--accent .dim-label{color:#fff;font-weight:500}
.dims-caption{margin-top:2.2rem;font-family:'Sora';font-weight:500;
  font-size:1.05rem;color:#fff}

/* ---------- 6 · nav condense on scroll ---------- */
.nav .wrap{transition:padding-block var(--dur-fast) var(--ease-expo),
                     background-color var(--dur-fast) var(--ease-expo),
                     box-shadow var(--dur-fast) var(--ease-expo)}
body.scrolled .nav .wrap{padding-block:.38rem;
  background:rgba(244,243,239,.95);
  box-shadow:0 6px 26px rgba(15,37,68,.09)}

/* ---------- 7 · scroll progress ---------- */
.progress{position:fixed;inset:0 0 auto 0;height:2px;z-index:200;pointer-events:none}
.progress i{display:block;height:100%;width:0;background:var(--copper)}

/* ---------- 8 · micro-interactions ---------- */
.nav-links a{position:relative}
.nav-links a::after{content:"";position:absolute;left:0;right:0;bottom:-5px;height:1.5px;
  background:var(--copper);transform:scaleX(0);transform-origin:right;
  transition:transform var(--dur-fast) var(--ease-expo)}
.nav-links a:hover::after{transform:scaleX(1);transform-origin:left}
.card{transition:transform var(--dur-fast) var(--ease-expo),
                box-shadow var(--dur-fast) var(--ease-expo)}

/* ---------- 9 · accreditation band ---------- */
.accred-eyebrow{justify-content:center}
.accred{display:flex;flex-wrap:wrap;justify-content:center;align-items:stretch;
  gap:1rem;margin-top:1.8rem}
.accred-item{display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:.75rem;min-width:170px;padding:1.35rem 1.5rem;
  border:1px solid rgba(26,29,35,.1);border-radius:18px;background:#fff;
  transition:transform var(--dur-fast) var(--ease-expo),
             box-shadow var(--dur-fast) var(--ease-expo)}
.accred-item:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(15,37,68,.08)}
.accred-item img{height:46px;width:auto;max-width:150px;object-fit:contain}
.accred-item span{font-size:.78rem;letter-spacing:.03em;line-height:1.45;
  text-align:center;color:var(--graphite);max-width:18ch}

/* ---------- 10 · anchor offset under sticky nav ---------- */
html{scroll-behavior:smooth}
[id]{scroll-margin-top:110px}

/* ---------- 11 · reduced motion ---------- */
@media(prefers-reduced-motion:reduce){
  .reveal,[data-stagger]>*{opacity:1!important;transform:none!important;transition:none!important}
  .ln>span{transform:none!important;transition:none!important}
  .dim-fill{transition:none!important;height:var(--h)!important}
  .progress{display:none}
  html{scroll-behavior:auto}
  .accred-item:hover,.card:hover{transform:none}
}

/* ---------- 12 · Seekers+ episode card ---------- */
.seek-thumb{position:relative;flex:0 0 420px;aspect-ratio:16/9;border-radius:14px;
  overflow:hidden;display:block;background:var(--navy);
  transition:transform var(--dur-fast) var(--ease-expo),
             box-shadow var(--dur-fast) var(--ease-expo)}
.seek-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.seek-thumb:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(15,37,68,.18)}
.seek-play{position:absolute;inset:0;margin:auto;width:52px;height:52px;border-radius:50%;
  background:rgba(255,255,255,.92);display:grid;place-items:center;
  transition:transform var(--dur-fast) var(--ease-expo)}
.seek-play::after{content:"";border-left:15px solid var(--navy);
  border-top:9px solid transparent;border-bottom:9px solid transparent;margin-left:4px}
.seek-thumb:hover .seek-play{transform:scale(1.08)}
.seek-ep{margin-top:.9rem;font-size:.9rem;line-height:1.55;color:var(--ink)}
.seek-ep em{font-style:normal;color:var(--graphite)}
.seek-tag{display:inline-block;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--copper);border:1px solid var(--copper);border-radius:999px;
  padding:.16rem .6rem;margin-right:.5rem;vertical-align:1px}

/* ---------- 13 · contact page layout ---------- */
.cx{display:grid;gap:2rem;margin-top:2.6rem}
@media(min-width:960px){.cx{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:2.6rem;align-items:start}}
.cx-form .form{margin-top:0}
.cx-rail{display:grid;gap:1rem}
.rail-card{background:#fff;border:1px solid rgba(26,29,35,.07);border-radius:20px;padding:1.5rem 1.4rem}
.rail-person{display:flex;gap:1.1rem;align-items:flex-start}
.rail-person img{width:76px;height:76px;border-radius:14px;object-fit:cover;flex:none}
.rail-person b{font-family:'Sora';font-weight:600;color:var(--navy);display:block}
.rail-role{display:block;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--graphite);margin-top:.2rem}
.rail-person p{margin-top:.7rem;font-size:.9rem;line-height:1.6;color:var(--ink);font-style:italic}
.rail-h{font-family:'Sora';font-weight:600;font-size:1rem;color:var(--navy)}
.rail-steps{list-style:none;margin-top:1.1rem;display:grid;gap:1.1rem;counter-reset:s}
.rail-steps li{position:relative;padding-left:2.1rem;counter-increment:s}
.rail-steps li::before{content:counter(s);position:absolute;left:0;top:0;
  width:24px;height:24px;border-radius:50%;background:var(--navy);color:#fff;
  font-family:'Sora';font-size:.72rem;display:grid;place-items:center}
.rail-steps em{display:block;font-style:normal;font-size:.68rem;letter-spacing:.11em;
  text-transform:uppercase;color:var(--copper)}
.rail-steps b{display:block;font-family:'Sora';font-weight:500;font-size:.98rem;
  color:var(--ink);margin-top:.15rem}
.rail-steps span{display:block;font-size:.85rem;line-height:1.55;color:var(--graphite);margin-top:.25rem}
.rail-trust{display:grid;gap:1rem;justify-items:center;text-align:center}
.accred--compact{gap:.6rem;margin-top:0}
.accred--compact .accred-item{min-width:0;padding:.8rem .9rem;border-radius:12px;flex:1}
.accred--compact .accred-item img{height:30px}
.accred--compact .accred-item span{font-size:.66rem;letter-spacing:.02em}
.rail-legal{font-size:.72rem;color:var(--graphite);line-height:1.5}
.privacy .ic-lock{stroke:var(--graphite);fill:none;stroke-width:1.6;vertical-align:-2px;margin-right:.2rem}
.nav-links--quiet a{color:var(--graphite);opacity:.85}
.contact-direct{display:flex;flex-wrap:wrap;align-items:baseline;gap:.6rem 1.6rem;margin-top:1rem}
.cd-primary{font-family:'Sora';font-weight:500;font-size:1.15rem;color:var(--navy);
  text-decoration:none;border-bottom:2px solid var(--sage);padding-bottom:2px}
.cd-primary:hover{border-bottom-color:var(--copper)}
.contact-direct .small{flex-basis:100%;margin-top:.3rem}

/* ---------- 14 · guarantees ---------- */
.cap-close{color:var(--navy)}
.bg-navy .cap-close{color:#fff}
@media(max-width:640px){.seek-thumb{flex:1 1 100%}}
