*, *::before, *::after { box-sizing: border-box; }

/* The hidden attribute always wins, even over classes that set display (flex, grid…). */
[hidden] { display: none !important; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--c-bg);
  color: var(--c-ink);
  font-family: var(--font);
  font-size: 16px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

html[lang="ar"] body { font-family: var(--font-ar); }

h1, h2, h3, h4, p { margin: 0; }
h1, h2, h3 { font-weight: 800; color: var(--c-ink); }

a { color: var(--c-primary); text-decoration: none; }
a:hover { color: var(--c-primary-hover); }

img, svg { display: block; max-width: 100%; }
.icon { flex-shrink: 0; display: inline-block; vertical-align: middle; }
[dir="rtl"] .icon-dir { transform: scaleX(-1); }

button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; }

:focus-visible { outline: 3px solid rgba(47, 69, 252, .35); outline-offset: 2px; border-radius: 6px; }

.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;
}

.container { width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: var(--gutter); }

.eyebrow { font-size: 12px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--c-muted); }
html[lang="ar"] .eyebrow { letter-spacing: 0; font-size: 13px; }

.h-display { font-size: clamp(44px, 5.6vw, 80px); line-height: .92; letter-spacing: -.05em; }
.h-xl { font-size: clamp(36px, 4.2vw, 60px); line-height: .96; letter-spacing: -.04em; }
.h-lg { font-size: clamp(30px, 3.4vw, 48px); line-height: 1; letter-spacing: -.04em; }
.h-md { font-size: clamp(24px, 2.4vw, 32px); line-height: 1.1; letter-spacing: -.03em; }
html[lang="ar"] :is(.h-display, .h-xl, .h-lg, .h-md) { letter-spacing: 0; line-height: 1.2; }

.lead { font-size: 19px; line-height: 1.5; color: var(--c-ink-2); }
.muted { color: var(--c-muted); }
.small { font-size: 13px; }
.grad-text { background: var(--grad-brand); -webkit-background-clip: text; background-clip: text; color: transparent; }

.num { font-variant-numeric: tabular-nums; }
.nowrap { white-space: nowrap; }
.hidden { display: none !important; }
