/* ==========================================================================
   RESET — нормалізація без косметики
   Тільки знімає розбіжності браузерів. Жодного кольору й розміру проєкту —
   це в base.css і typography.css.
   ========================================================================== */

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

/* Власні поля скидаємо, вертикальний ритм задає typography.css */
body,
h1, h2, h3, h4, h5, h6,
p, figure, blockquote,
dl, dd {
  margin: 0;
}

/* :where() навмисно — воно обнуляє специфічність до нуля.
   Без нього селектор ul[class] важить більше за звичайний клас, і будь-яке
   правило на кшталт .hero__benefits { margin-top: … } мовчки не діяло б:
   скидання перемагало б його. Саме так і сталося з відступом під кнопками
   на першому екрані — він був прописаний, але не застосовувався. */
:where(ul[class], ol[class]) {
  margin: 0;
  padding: 0;
  list-style: none;
}

html {
  -webkit-text-size-adjust: 100%;   /* iOS не роздуває текст у landscape */
  text-size-adjust: 100%;
}

body {
  min-height: 100vh;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Медіа поводиться як блок і ніколи не виходить за контейнер —
   основний запобіжник проти горизонтального скролу на 320px */
img,
picture,
video,
canvas,
svg {
  display: block;
  max-width: 100%;
}

img {
  height: auto;
  border-style: none;
}

/* Іконки успадковують колір тексту */
svg {
  fill: currentColor;
}

/* Форми не успадковують шрифт за замовчуванням */
input,
button,
textarea,
select {
  font: inherit;
  color: inherit;
  letter-spacing: inherit;
}

button {
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
}

textarea {
  resize: vertical;
}

/* Safari додає внутрішню тінь полям — прибираємо */
input,
textarea {
  -webkit-appearance: none;
  appearance: none;
  border-radius: 0;
}

input[type="checkbox"],
input[type="radio"] {
  -webkit-appearance: auto;
  appearance: auto;
}

/* Хрестик очищення в полі пошуку Chrome/Edge */
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button {
  -webkit-appearance: none;
}

/* Firefox: внутрішня рамка та подвійний фокус на кнопках */
::-moz-focus-inner {
  border: 0;
  padding: 0;
}

:-moz-focusring {
  outline: none;
}

a {
  color: inherit;
  text-decoration: none;
  background-color: transparent;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

fieldset {
  margin: 0;
  padding: 0;
  border: 0;
  min-width: 0;    /* інакше fieldset ігнорує flex/grid і ламає сітку */
}

legend {
  padding: 0;
  display: table;  /* дозволяє перенос рядка всередині legend */
}

hr {
  border: 0;
  height: 1px;
}

/* Хай нативний summary-маркер керується компонентом, а не браузером */
summary {
  display: list-item;
  cursor: pointer;
}

summary::-webkit-details-marker {
  display: none;
}

[hidden] {
  display: none !important;
}
