/* ===== HAULOR TYPOGRAPHY LAYER — loaded last =====
   Bricolage Grotesque (display) + Plus Jakarta Sans (body) + Instrument Serif (italic accents) + JetBrains Mono (labels) */
:root{
  --sans:"Plus Jakarta Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --display:"Bricolage Grotesque","Plus Jakarta Sans",ui-sans-serif,system-ui,sans-serif;
  --serif:"Instrument Serif","Iowan Old Style",Georgia,serif;
  --mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,monospace;
}
body{font-family:var(--sans);font-weight:500;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
h1,h2,h3,h4,h5,.h1,.h2,.h3,.hero__h1,.frow__ttl,.cx-top__h h1,.cx-hero h2,.sech h2,.cv h1,.statc__ttl,.cx-card__h h2{font-family:var(--display);font-weight:800}
h1 em,h2 em,h3 em,.h1 em,.h2 em,.h3 em,.hero__h1 em,.frow__ttl em,.cx-hero h2 em,.sech h2 em,.cv h1 em,.statc__ttl em{font-family:var(--serif);font-style:italic;font-weight:400}
p,li,td,dd{font-weight:500}
strong,b{font-weight:700}
/* numeric values: display face + tabular figures so columns align */
.cx-kpi__v,.cx-hkpi__v,.tile__v,.cv__st b,.fun__bar b,.al__p,.cx-rate,.hx-card__price b,.hx-buy__price b,.hx-mr__stat b,.statc__n,.stat__v,.kpi__v,.console__pct,.rank__pct{font-family:var(--display);font-weight:800;font-variant-numeric:tabular-nums}
/* mono micro-labels at 700 so uppercase tracking holds ink */
.lbl,.cx-lbl,.cx-grp__l,.cx-top__h .k,.cx-kpi__k,.cx-hkpi__k,.tile__k,.sub,.statc__k,.trust__lbl,.foot__col h5,.foot__sub h5,.hx-fsort,.matchRow .k,.eml__f .k,.frow__tag,.cyc__step,.sech__n,.cx-tbl th{font-weight:700}
/* small-copy floor */
.fine,.tile__d,.cx-fi__c span,.statc__l,.hx-seller__t span,.foot__fine{font-size:max(12.5px,0.78em)}
/* buttons and nav carry more weight */
.btn,.nav__links a,.cx-item,.cx-tab,.hx-fchip,.foot__col a{font-weight:700}
