body,
html {
  position: relative;
  overflow-x: hidden;

  width: 100%;
  height: 100%;
}

html {
  text-size-adjust: 100%;
}

body {
  margin: 0;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;

  background: var(--body-background);
  color: var(--body-color);

  box-sizing: border-box;
}

input,
button,
select,
textarea {
  font-family: inherit;
  color: var(--input-background-contrast);
}

h1,
h2,
h3,
h4,
h5 {
  color: var(--content-color);
}

button {
  border: 0;
  outline: 0;
  background: transparent;

  margin: 0;

  cursor: pointer;
  user-select: none;

  padding: 0 var(--padding-0_5x);
}

section {
  padding: var(--padding-2x) var(--padding-2x) var(--footer-height);
  max-width: var(--section-max-width);
  margin: 0 auto;
}

p {
  margin: var(--padding) 0;
}

ul {
  padding-inline-start: var(--padding-2x);
  margin: 0;
}

/** Input */

/* Chrome, Safari, Edge, Opera */
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
  appearance: none;
  margin: 0;
}

/* Firefox */
input[type="number"] {
  -moz-appearance: textfield;
}

hr {
  border: 0;
  border-bottom: 1px solid currentColor;
  margin-bottom: var(--padding);
}
