/* Основа страницы. Только токены системы (css/tokens.css). */

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: var(--space-96); /* под липкой шапкой */
}

body {
  margin: 0;
  background: var(--color-bg-default);
  color: var(--color-text-default);
  font-family: var(--font-family-body);
  font-weight: var(--font-weight-body);
  font-size: var(--font-size-body-md);
  line-height: var(--font-line-height-body);
}

h1, h2, h3, h4, h5, h6, p, ul, ol, figure {
  margin: 0;
}

button {
  padding: 0;
  font: inherit;
  color: inherit;
  background: none;
  border: 0;
  cursor: pointer;
}

ul, ol {
  padding: 0;
  list-style: none;
}

a {
  color: inherit;
  text-decoration: none;
}

img {
  display: block;
  max-width: 100%;
}

/* Секция: на всю ширину, поля страницы — отступы самой секции (docs/apply-to-layout.md, раздел 3) */
.section {
  padding: var(--space-96) var(--grid-margin-x); /* макет: gap-5xl; на телефоне — grid.margin-y (responsive.css) */
  background: var(--color-bg-default);
  color: var(--color-text-default);
}

.section--tight {
  padding-block: var(--space-40);
}

/* Контейнер внутри секции: ширина grid.container, по центру */
.container {
  max-width: var(--grid-container);
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: var(--space-48);
}

/* 12-колоночная сетка (на планшете 6, на телефоне 2 — из токенов) */
.grid-12 {
  display: grid;
  grid-template-columns: repeat(var(--grid-columns), minmax(0, 1fr));
  gap: var(--grid-gutter);
}

/* Блок «Заголовок»: надзаголовок, заголовок, подзаголовок в одном столбце (docs/apply-to-layout.md, 4в) */
.heading {
  display: flex;
  flex-direction: column;
  gap: var(--space-16);
}

/* Надзаголовок и заголовок теснее: в макете (блоки «Собівартість» и FAQ) отступ 8 */
.heading--tight {
  gap: var(--space-8);
}

.accent {
  color: var(--color-text-primary);
}

.visually-hidden {
  position: absolute;
  width: 1px; /* ds-allow: приём «скрыть для глаза, оставить для программ чтения» */
  height: 1px; /* ds-allow: то же */
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
