/* ============ Document Sign — base.css : reset, tokens, primitives ============ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}
 *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}

:root{
  --navy:#171B38;
  --navy-80:#2b3059;
  --indigo:#4654EA;        /* AA-contrast indigo: 5.6:1 as text on white AND white text on it */
  --indigo-600:#3b47c9;
  --indigo-050:#eef0ff;
  --text:#505580;
  --text-soft:#64698F;
  --bg:#ffffff;
  --bg-soft:#F6F7FF;
  --green:#03CD69;
  --green-bg:#e6f9f0;
  --red:#E92222;
  --red-bg:#fdecec;
  --border:#E7E9F5;
  --card:#ffffff;

  --shadow-sm:0 4px 14px rgba(23,27,56,.05);
  --shadow:0 10px 30px rgba(23,27,56,.07);
  --shadow-lg:0 24px 60px rgba(23,27,56,.12);
  --shadow-indigo:0 14px 34px rgba(85,103,255,.28);

  --r-sm:10px; --r:15px; --r-lg:18px; --r-xl:26px; --r-pill:999px;

  --fs-display:clamp(2.35rem,1.4rem + 4.2vw,4rem);   /* ~37.6→64 */
  --fs-h2:clamp(1.75rem,1.2rem + 2.3vw,2.5rem);      /* ~28→40 */
  --fs-h3:1.375rem;                                   /* 22 */
  --fs-lead:clamp(1.05rem,.98rem + .35vw,1.25rem);
  --fs-body:1.125rem;                                 /* 18 */
  --fs-sm:.9375rem;                                   /* 15 */

  --font-display:"Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --font-body:"Poppins",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;

  --container:1200px;
  --gutter:clamp(16px,5vw,24px);
  --sec-pad:clamp(56px,8vw,96px);
}

html,body{background:var(--bg)}
body{
  font-family:var(--font-body);
  font-size:var(--fs-body);
  line-height:1.5;
  color:var(--text);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}

h1,h2,h3,h4{font-family:var(--font-display);color:var(--navy);line-height:1.18;font-weight:700;letter-spacing:-.01em}
h1{font-size:var(--fs-display);font-weight:800;line-height:1.08}
h2{font-size:var(--fs-h2)}
h3{font-size:var(--fs-h3)}
p{color:var(--text)}
a{color:var(--indigo);text-decoration:none;transition:color .18s}
a:hover{color:var(--indigo-600)}
img{max-width:100%;height:auto;display:block}
ul{list-style:none}
strong{color:var(--navy);font-weight:600}

/* ---- layout primitives ---- */
.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}
.section{padding-block:var(--sec-pad)}
.section--soft{background:var(--bg-soft)}
.section--navy{background:var(--navy)}
.center{text-align:center}
.narrow{max-width:720px;margin-inline:auto}
.stack>*+*{margin-top:1rem}

/* ---- eyebrow / section head ---- */
.eyebrow{display:inline-flex;align-items:center;gap:.5em;font-family:var(--font-body);font-weight:600;
  font-size:var(--fs-sm);color:var(--indigo);letter-spacing:.01em;margin-bottom:.9rem}
.eyebrow svg{width:1.05em;height:1.05em}
.sec-head{max-width:680px;margin-bottom:clamp(2rem,4vw,3.25rem)}
.sec-head.center{margin-inline:auto}
.sec-head p{margin-top:.9rem;font-size:var(--fs-lead);color:var(--text-soft)}

/* ---- buttons ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55em;
  font-family:var(--font-body);font-weight:500;font-size:1rem;line-height:1;
  padding:14px 30px;border-radius:var(--r);border:1px solid transparent;cursor:pointer;
  transition:transform .18s,box-shadow .2s,background .2s,color .2s,border-color .2s;white-space:nowrap}
.btn svg{width:1.1em;height:1.1em}
.btn--primary{background:var(--indigo);color:#fff;border-color:var(--indigo);box-shadow:var(--shadow-indigo)}
.btn--primary:hover{background:var(--indigo-600);border-color:var(--indigo-600);color:#fff;transform:translateY(-2px)}
.btn--dark{background:var(--navy);color:#fff;border-color:var(--navy)}
.btn--dark:hover{background:#0f1230;color:#fff;transform:translateY(-2px)}
.btn--ghost{background:#fff;color:var(--navy);border-color:var(--border)}
.btn--ghost:hover{border-color:var(--indigo);color:var(--indigo)}
.btn--light{background:#fff;color:var(--navy);border-color:#fff}
.btn--light:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.btn--lg{padding:16px 36px;font-size:1.0625rem}

/* ---- accessibility ---- */
:focus-visible{outline:3px solid var(--indigo);outline-offset:2px;border-radius:4px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:-999px;top:0;z-index:200;background:var(--indigo);color:#fff;padding:10px 18px;border-radius:0 0 10px 0}
.skip-link:focus{left:0;color:#fff}

/* ---- reveal on scroll ---- */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}
