* {
  box-sizing: border-box;
}

html {
  font-family: "IBM Plex Serif", serif;

  --color: rgb(44, 62, 80);

  --color-gray-50: rgb(243, 243, 243);
  --color-gray-100: rgb(219, 219, 219);
  --color-gray-300: rgb(189, 189, 189);
  --color-gray-400: rgb(164, 164, 164);
  --color-gray-500: rgb(122, 122, 122);
  --color-gray-600: rgb(98, 98, 98);
  --color-gray-700: rgb(69, 69, 69);

  --color-primary-50: rgb(214, 226, 239);
  --color-primary-100: rgb(177, 196, 214);
  --color-primary-200: rgb(145, 165, 186);
  --color-primary-400: rgb(107, 126, 145);
  --color-primary-500: rgb(79, 101, 123);
  --color-primary-700: rgb(53, 73, 93);
  --color-primary-200-contrast: black;
  --color-primary-500-contrast: white;

  --color-error-100: rgb(255, 220, 200);
  --color-error-500: rgb(255, 100, 50);

  --color-primary-500-bg: rgb(64, 84, 104);

  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-4: 1rem;
  --space-6: 1.5rem;
  --space-8: 2rem;

  --border-radius-small: 4px;
  --border-radius-medium: 6px;

  --shadow-medium: 0 2px 8px rgba(0, 0, 0, 0.2);
}

body {
  background-color: white;
  color: var(--color-gray-600);
  margin: 0;
  min-height: 100vh;
}

main section,
h1 {
  width: 90%;
  max-width: 80rem;
  margin: 0 auto;
}

#logo {
  display: flex;
  justify-content: center;
  color: white;
  padding: 0;
  margin: 0;
}

#logo img {
  width: 5rem;
  height: 5rem;
  margin: auto;
  padding: 0;
}

#logo div {
  margin: auto;
}

#logo p {
  margin: 0;
  padding: 0;
}

ul,
ol {
  list-style: none;
  margin: 0;
  padding: 0;
}

a {
  text-decoration: none;
  color: var(--color-primary-200);
}

.btn {
  cursor: pointer;
  font: inherit;
  padding: var(--space-2) var(--space-6);
  background-color: var(--color-primary-500);
  color: var(--color-primary-500-contrast);
  border: 1px solid var(--color-primary-500);
  border-radius: var(--border-radius-small);
}

.btn:hover,
.btn:active {
  background-color: var(--color-primary-700);
  border-color: var(--color-primary-700);
}

.btn-alt {
  background-color: transparent;
  color: var(--color-primary-500);
}

.btn-alt:hover,
.btn-alt:active {
  background-color: var(--color-primary-500-bg);
}

.alert {
  border-radius: var(--border-radius-small);
  background-color: var(--color-error-100);
  color: var(--color-error-500);
  padding: var(--space-4);
}

.alert h2 {
  font-size: 1rem;
  margin: var(--space-2) 0;
  text-transform: uppercase;
}

.alert p {
  margin: var(--space-2) 0;
}

.badge {
  margin-left: var(--space-2);
  padding: 0.15rem var(--space-4);
  border-radius: 10rem;
  background-color: var(--color-primary-500);
  color: var(--color-primary-500-contrast);
}

.flex {
  display: flex;
}

.justify-right {
  display: flex;
  justify-content: right;
}

footer {
  background-color: rgb(52, 73, 94);
  color: rgb(236, 240, 241);
  padding: 2rem;
}

footer ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

footer li {
  padding: 0.5rem 0 0 0;
}

footer a {
  text-decoration: none;
  color: rgb(236, 240, 241);
}

footer a:hover,
footer a:active {
  text-decoration: underline;
}

footer i {
  padding: 0 0.5rem;
}

#footer-socials ul {
  display: flex;
}

#footer-socials li {
  font-size: 1.5rem;
  padding: 0.5rem 0.5rem;
}
