/* BYNZO base reset + typography */
*,
*::before,
*::after { box-sizing: border-box; }

html { height: 100%; }

html, body {
  margin: 0;
  padding: 0;
  background: var(--bnz-bg);
  color: var(--bnz-text);
  font-family: var(--font);
  font-size: 16px;
  line-height: var(--lh);
  letter-spacing: -0.011em;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body { min-height: 100%; }

img { max-width: 100%; display: block; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; border: 0; background: none; }
a { color: inherit; text-decoration: none; }
ul, ol { margin: 0; padding: 0; list-style: none; }
h1, h2, h3, h4, p { margin: 0; }
svg { display: block; }

:focus-visible {
  outline: 3px solid var(--bnz-orange-ring);
  outline-offset: 2px;
}

.skip-link {
  position: absolute;
  left: -999px;
  top: 8px;
}
.skip-link:focus { left: 12px; background: #fff; padding: 8px 12px; border-radius: 8px; z-index: 100; }

.arabic, [lang="ar"] { font-family: "IBM Plex Sans Arabic", var(--font); }

.ltr, .handle, [dir="ltr"] {
  unicode-bidi: isolate;
}

.page-title {
  font-size: var(--fs-2xl);
  font-weight: var(--fw-ex);
  letter-spacing: -0.04em;
  line-height: 1.15;
}
.page-sub {
  color: var(--bnz-muted);
  font-size: var(--fs-sm);
  margin-top: 6px;
}

.muted { color: var(--bnz-muted); }
.faint { color: var(--bnz-faint); }
.strong { font-weight: var(--fw-sb); }
.mono { font-family: var(--font-mono); font-size: 0.86em; }
.clamp-1, .clamp-2 {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.clamp-1 { -webkit-line-clamp: 1; }
.clamp-2 { -webkit-line-clamp: 2; }

.hidden { display: none !important; }
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); border: 0;
}

::selection { background: var(--bnz-orange-soft); color: var(--bnz-text); }
