/* «Благодать» — базові правила документа. */
* { box-sizing: border-box; }

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

h1, h2 {
  font-family: var(--font-heading);
  font-weight: var(--weight-semibold);
  line-height: var(--leading-heading);
  color: var(--text-body);
  margin: 0 0 var(--space-4);
  text-wrap: balance;
}
h1 { font-size: var(--text-h1); }
h2 { font-size: var(--text-h2); }
@media (max-width: 640px) {
  h1 { font-size: var(--text-h1-mobile); }
  h2 { font-size: var(--text-h2-mobile); }
}
h3 {
  font-family: var(--font-body);
  font-weight: var(--weight-semibold);
  font-size: var(--text-h3);
  line-height: 1.3;
  margin: 0 0 var(--space-3);
}

p {
  margin: 0 0 var(--space-4);
  max-width: var(--measure);
  text-wrap: pretty;
}

a {
  color: var(--link);
  text-decoration: underline;
  text-underline-offset: 3px;
}
a:hover { color: var(--link-hover); }

small, .bl-small { font-size: var(--text-small); }

/* Видимий фокус на всьому */
:focus-visible {
  outline: var(--focus-ring-width) solid var(--focus-ring-color);
  outline-offset: var(--focus-ring-offset);
}

::selection { background: var(--teal-100); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
