/* Minimal element defaults. Consumers get sane type + link colours out of the box. */
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--surface-page);color:var(--text-primary);font-family:var(--font-text);font-size:var(--fs-body);line-height:var(--lh-body);font-weight:var(--fw-regular);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:var(--fw-semibold);letter-spacing:var(--ls-heading);color:var(--text-primary);margin:0}
p{text-wrap:pretty;margin:0}
a{color:var(--text-link);text-decoration:none}
a:hover{color:var(--text-link-hover);text-decoration:underline;text-underline-offset:3px}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}
::selection{background:var(--brand-primary-subtle);color:var(--text-primary)}
img,svg{display:block;max-width:100%}
/* Numerals: Western digits everywhere, tabular inside data. */
:root{font-variant-numeric:lining-nums}
table,.pa-tabular,[data-numeric]{font-variant-numeric:tabular-nums lining-nums}

/* ---------- Direction ---------- */
[dir="rtl"]{text-align:right}
[dir="rtl"] :is(h1,h2,h3,h4,h5,h6,p,li,dt,dd){letter-spacing:var(--ls-arabic)}
[lang="ar"],[dir="rtl"]{line-height:var(--lh-ar-body)}
[dir="rtl"] .pa-overline,[lang="ar"] .pa-overline{letter-spacing:var(--ls-arabic);text-transform:none}
/* Arabic never takes synthetic bold — always use a real weight file. */
[lang="ar"] b,[lang="ar"] strong,[dir="rtl"] b,[dir="rtl"] strong{font-weight:var(--fw-semibold);font-synthesis-weight:none}
