/* ------------------------------------------------------------------
   Legal page styles (privacy policy, terms of use, subscription agreement),
   built into the pages by tools/legal/build_legal.py. Everything is scoped under .legal so
   nothing reaches the site's nav/footer (Webflow CSS) and nothing from
   the site stylesheet needs to be overridden outside this block.

   Three tiers: phone (<640px), tablet (640–1024px), desktop (>=1024px).
   Type and spacing scale fluidly 375→1440 (HD-TOKENS v1 values); the two
   breakpoints only change what must change discretely.
   Measure: 816px = 8.5in, US letter/legal sheet width, with gutters
   16→48px (912px frame). Line height 1.65 for the long lines.
   ------------------------------------------------------------------ */
.legal{
  --pri:var(--primary-40); --prid:var(--primary-60); /* --prid for links: --pri on white fails AA for text */
  --ink:var(--fake-black); --mut:#5f6785; --bg:var(--grey-10); --surf:#fff; --line:var(--grey-20);
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:24px;
  --s6:clamp(32px,calc(29.2px + .75vw),40px);
  --s7:clamp(40px,calc(31.6px + 2.25vw),64px);
  --s8:clamp(56px,calc(41.9px + 3.76vw),96px);
  --t2:clamp(30px,calc(25.8px + 1.13vw),42px);  /* h1 */
  --t3:clamp(22px,calc(19.9px + .56vw),28px);   /* h2 */
  --t4:clamp(17px,calc(15.9px + .28vw),20px);   /* body */
  --t5:clamp(14px,calc(12.9px + .28vw),17px);   /* label, table, contents */
  --w-body:500; --w-semi:600; --w-bold:800;
  --measure:816px;
  --gutter:clamp(16px,calc(-2.5px + 4.93vw),48px);
  --navh:90px; /* site nav is position:fixed and 90px tall (80px on phones; the 10px over-pad there is harmless) */
  display:block;padding-top:var(--navh);background:var(--surf);color:var(--ink);
  font-family:'Nunito Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  font-weight:var(--w-body);font-size:var(--t4);line-height:1.65;
  -webkit-font-smoothing:antialiased;overflow-x:clip;
}
.legal a{color:var(--prid);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.15em;overflow-wrap:anywhere}
.legal a:hover{color:var(--ink)}
.legal strong{font-weight:var(--w-bold)}
.legal p,.legal li,.legal dd{text-wrap:pretty}
.legal h1,.legal h2,.legal h3{text-wrap:balance}
.legal .wrap{max-width:calc(var(--measure) + 2*var(--gutter));margin:0 auto;padding:0 var(--gutter)}

/* Header */
.legal .hd{padding:var(--s7) 0 var(--s6);border-bottom:1px solid var(--line)}
.legal .eyebrow{margin:0 0 var(--s3);font-size:var(--t5);font-weight:var(--w-bold);line-height:1.3;letter-spacing:.08em;text-transform:uppercase;color:var(--mut)}
.legal h1{margin:0 0 var(--s4);font-size:var(--t2);font-weight:var(--w-bold);line-height:1.15;letter-spacing:-.01em;color:var(--ink)}
.legal .meta{margin:0 0 var(--s5);font-size:var(--t5);font-weight:var(--w-semi);color:var(--mut)}
.legal .hd p{margin:0 0 var(--s4)}
.legal .hd p:last-child{margin-bottom:0}
.legal .lede{color:var(--mut)}

/* Contents */
.legal .toc{padding:var(--s6) 0;border-bottom:1px solid var(--line)}
.legal .toc h2{margin:0 0 var(--s3);font-size:var(--t5);font-weight:var(--w-bold);line-height:1.3;letter-spacing:.08em;text-transform:uppercase;color:var(--mut)}
.legal .toc ol{margin:0;padding:0 0 0 1.6em;list-style:decimal;font-size:var(--t5)}
.legal .toc li{break-inside:avoid;padding:var(--s1) 0}
.legal .toc-ex{margin:var(--s3) 0 0;font-size:var(--t5)}
.legal .toc a{text-decoration:none;color:var(--ink)}
.legal .toc a:hover{color:var(--prid);text-decoration:underline}

/* Agreement body */
.legal .doc{padding:var(--s6) 0 var(--s8)}
.legal .doc p{margin:0 0 var(--s4);color:var(--ink)}
.legal section{margin:0 0 var(--s7);scroll-margin-top:calc(var(--navh) + var(--s5))} /* contents links target sections; keep them clear of the fixed nav */
.legal section:last-of-type{margin-bottom:0}
.legal h2{margin:0 0 var(--s4);font-size:var(--t3);font-weight:var(--w-bold);line-height:1.25;letter-spacing:-.01em;color:var(--ink);scroll-margin-top:calc(var(--navh) + var(--s5))}
.legal h2 .n{color:var(--mut);margin-right:.4em}
.legal h3{margin:var(--s6) 0 var(--s3);font-size:var(--t4);font-weight:var(--w-bold);line-height:1.3;color:var(--ink)}
.legal ol.sub{margin:0;padding:0 0 0 2.4em;list-style:lower-roman}
.legal ol.sub>li{margin:0 0 var(--s4);padding-left:.3em}
.legal ol.sub>li::marker{color:var(--mut);font-weight:var(--w-semi)}

/* Exhibit */
.legal .exhibit{margin-top:var(--s8);padding-top:var(--s7);border-top:1px solid var(--line)}
.legal .exhibit .eyebrow{margin-bottom:var(--s2)}
.legal dl{margin:0 0 var(--s4)}
.legal dt{font-weight:var(--w-bold);margin:var(--s5) 0 var(--s2)}
.legal dd{margin:0 0 var(--s3)}
.legal .formula{display:flex;align-items:center;justify-content:center;gap:var(--s4);margin:var(--s4) 0 var(--s5);padding:var(--s4) var(--s5);background:var(--bg);border:1px solid var(--line);text-align:center;font-size:var(--t5)}
.legal .formula .frac{flex:0 1 auto;min-width:0}
.legal .formula .num{display:block;padding:0 0 var(--s2);border-bottom:1px solid var(--ink)}
.legal .formula .den{display:block;padding:var(--s2) 0 0}
.legal .formula .mul{flex:none;font-weight:var(--w-bold);white-space:nowrap}
.legal .tbl{overflow-x:auto;margin:var(--s4) 0 var(--s5)}
.legal table{border-collapse:collapse;width:100%;max-width:420px;font-size:var(--t5)}
.legal th,.legal td{text-align:left;padding:var(--s2) var(--s3);border-bottom:1px solid var(--line)}
.legal th{font-weight:var(--w-bold);color:var(--mut);font-size:.9em;letter-spacing:.04em;text-transform:uppercase;border-bottom:2px solid var(--line)}
.legal tbody tr:last-child td{border-bottom:0}

/* Tablet and up: two-column contents */
@media (min-width:640px){
  .legal .toc ol{columns:2;column-gap:var(--s5)}
}
/* Phone: stack the formula multiplier */
@media (max-width:639.98px){
  .legal .formula{flex-direction:column;gap:var(--s2)}
}
@media print{
  .navigation,.updated-footer,.legal .toc{display:none !important}
  .legal{--gutter:0;padding-top:0;font-size:11pt;line-height:1.45;color:#000}
  .legal .wrap{max-width:none}
  .legal .hd,.legal .doc{padding-top:0}
  .legal a{color:#000;text-decoration:none}
  .legal h2,.legal h3,.legal dt{break-after:avoid}
  .legal .formula,.legal table{break-inside:avoid}
}
