/* =====================================================================
   NEXUS — SHARED INNER-PAGE LAYER
   Used by every redesigned inner page (About, Our AIF, ...).
   Tokens, opening/closing curtain, load + scroll reveals, shared buttons.
   Body must carry class "nxa-page".
   ===================================================================== */

.nxa-page {
  --nxa-ease: cubic-bezier(.16, 1, .3, 1);
  --nxa-ease-io: cubic-bezier(.77, 0, .175, 1);
  --nxa-ink: #0a1322;
  --nxa-body: #43546a;
  --nxa-line: #dbe5ee;
  --nxa-sky: #58c7f6;
  --nxa-blue: #3682ae;
  --nxa-gold: #3682ae;
  --nxa-dark: #060c16;
  --nxa-dark-2: #0b1a2e;
}

/* responsive.css forces overflow-x:hidden !important on body and .boxed_wrapper,
   which turns them into scroll containers and silently breaks position:sticky.
   "clip" keeps the no-sideways-scroll guarantee without creating a scroll container. */
body.nxa-page,
body.nxa-page .boxed_wrapper { overflow-x: clip !important; overflow-y: visible !important; }
.nxa-page .page-title { display: none; }

.nxa-section { position: relative; padding: clamp(84px, 9vw, 140px) 0; }
.nxa-page .nx-sec-title { font-size: clamp(2.1rem, 3.2vw, 3.3rem); line-height: 1.1; margin-bottom: 0; }
.nxa-page p { text-align: left; }
.nxa-eyebrow-light { color: var(--nxa-sky) !important; }
.nxa-eyebrow-num {
  display: inline-block;
  margin-right: 10px;
  padding-right: 12px;
  border-right: 1px solid currentColor;
  opacity: .7;
}

/* ---------------------------------------------------------------------
   LOAD + SCROLL REVEALS
   --------------------------------------------------------------------- */
.nxa-load {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity .9s var(--nxa-ease), transform 1.1s var(--nxa-ease);
  transition-delay: calc(var(--d, 0s) + .55s);
}
.nxa-ready .nxa-load { opacity: 1; transform: none; }

.nxa-mask { display: block; overflow: hidden; padding-bottom: .08em; margin-bottom: -.08em; }
.nxa-mask-in {
  display: block;
  transform: translateY(110%) skewY(4deg);
  transform-origin: left top;
  transition: transform 1.2s var(--nxa-ease);
  transition-delay: calc(var(--d, 0s) + .55s);
}
.nxa-ready .nxa-mask-in { transform: none; }

.nxa-r {
  opacity: 0;
  transition: opacity .9s var(--nxa-ease), transform 1.1s var(--nxa-ease), clip-path 1.2s var(--nxa-ease);
  transition-delay: var(--d, 0s);
  will-change: transform, opacity;
}
.nxa-r[data-r="up"] { transform: translateY(46px); }
.nxa-r[data-r="left"] { transform: translateX(-60px); }
.nxa-r[data-r="right"] { transform: translateX(60px); }
.nxa-r[data-r="scale"] { transform: scale(.94); }
.nxa-r.is-in { opacity: 1; transform: none; }


/* ---------------------------------------------------------------------
   SHARED BUTTONS
   --------------------------------------------------------------------- */
.nxa-btn-ghost {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 15px 26px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,.28);
  color: #fff;
  font-weight: 700;
  font-size: 15px;
  transition: background .35s, border-color .35s, color .35s;
}
.nxa-btn-ghost:hover { background: rgba(255,255,255,.08); border-color: var(--nxa-sky); color: #fff; }
.nxa-magnetic { transition: transform .35s var(--nxa-ease); }

/* ---------------------------------------------------------------------
   REDUCED MOTION
   --------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .nxa-page *, .nxa-page *::before, .nxa-page *::after { animation-duration: .001s !important; animation-iteration-count: 1 !important; transition-duration: .001s !important; transition-delay: 0s !important; }
  .nxa-r, .nxa-load { opacity: 1 !important; transform: none !important; }
  .nxa-mask-in { transform: none !important; }
}
