/* =========================================
   RESET CSS
   Remove estilos padrão dos navegadores
========================================= */

/* Box sizing mais previsível */
*,
*::before,
*::after {
  box-sizing: border-box;
}

/* Remove margens padrão */
* {
  margin: 0;
  padding: 0;
}

/* Configuração base do html */
html {
  font-size: 16px;
  -webkit-text-size-adjust: 100%;
}

/* Corpo da página */
body {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  line-height: 1.5;
  text-rendering: optimizeSpeed;
}

/*
 * Sticky footer: o conteúdo principal preenche o espaço vertical disponível,
 * mantendo o footer sempre na base da viewport.
 * Requisito: todas as páginas devem usar <main> como wrapper do conteúdo.
 */
main {
  flex: 1;
}

/* Listas sem estilo */
ul,
ol {
  list-style: none;
}

/* Links */
a {
  text-decoration: none;
  color: inherit;
}

/* Imagens e mídia */
img,
picture,
video,
canvas,
svg {
  display: block;
  max-width: 100%;
}

/* Inputs e botões */
input,
button,
textarea,
select {
  font: inherit;
  border: none;
  background: none;
}

/* Botões */
button {
  cursor: pointer;
}

/* Tabelas */
table {
  border-collapse: collapse;
  border-spacing: 0;
}