/* APC — Base element styles & core brand utilities.
   Shipped to consumers. Sets sensible defaults; utilities are opt-in classes. */

*,*::before,*::after { box-sizing: border-box; }

body {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  color: var(--text-body);
  background: var(--bg-page);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

:where(h1,h2,h3,h4,h5) {
  font-family: var(--font-display);
  color: var(--text-strong);
  font-weight: var(--fw-bold);
  line-height: var(--lh-heading);
  letter-spacing: var(--ls-heading);
  margin: 0;
  text-wrap: balance;
}

a { color: var(--accent-hover); text-decoration: none; transition: color var(--dur) var(--ease); }
a:hover { color: var(--accent-active); }

/* RTL / Arabic */
[dir="rtl"] { font-family: var(--font-arabic); }
[dir="rtl"] :where(h1,h2,h3,h4,h5) { font-family: var(--font-arabic); font-weight: var(--fw-bold); letter-spacing: 0; }
.apc-arabic { font-family: var(--font-arabic); }

/* ---- Display type utilities ---- */
.apc-display-1 { font-family: var(--font-display); font-weight: var(--fw-black); font-size: var(--fs-display-1); line-height: var(--lh-tight); letter-spacing: var(--ls-display); color: var(--text-strong); }
.apc-display-2 { font-family: var(--font-display); font-weight: var(--fw-black); font-size: var(--fs-display-2); line-height: var(--lh-tight); letter-spacing: var(--ls-display); color: var(--text-strong); }
.apc-h1 { font-family: var(--font-display); font-weight: var(--fw-bold); font-size: var(--fs-h1); line-height: var(--lh-heading); }
.apc-h2 { font-family: var(--font-display); font-weight: var(--fw-bold); font-size: var(--fs-h2); line-height: var(--lh-heading); }
.apc-h3 { font-family: var(--font-display); font-weight: var(--fw-semibold); font-size: var(--fs-h3); }

/* ---- Eyebrow / technical label ---- */
.apc-eyebrow {
  font-family: var(--font-mono);
  font-size: var(--fs-label);
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-label);
  text-transform: uppercase;
  color: var(--text-accent);
  display: inline-flex;
  align-items: center;
  gap: var(--sp-2);
}
.apc-eyebrow::before {
  content: "";
  width: 18px;
  height: 2px;
  background: var(--accent);
  display: inline-block;
}
.apc-eyebrow--muted { color: var(--text-muted); }
.apc-eyebrow--muted::before { background: var(--steel-400); }

/* ---- Technical grid / blueprint background ---- */
.apc-grid-bg {
  background-color: var(--bg-page);
  background-image:
    linear-gradient(to right, rgba(118,131,147,0.07) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(118,131,147,0.07) 1px, transparent 1px);
  background-size: 40px 40px;
}
.apc-grid-bg--dark {
  background-color: var(--ink-800);
  background-image:
    linear-gradient(to right, rgba(255,255,255,0.05) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(255,255,255,0.05) 1px, transparent 1px);
  background-size: 40px 40px;
}

/* ---- Accent bar (left rule) ---- */
.apc-accent-bar { border-left: var(--accent-bar) solid var(--accent); padding-left: var(--sp-4); }

/* ---- Container ---- */
.apc-container { max-width: var(--container); margin-inline: auto; padding-inline: var(--gutter); }
