@import url('https://fonts.googleapis.com/css2?family=Quicksand:wght@300..700&display=swap'); /* Importa a fonte Quicksand do Google Fonts */

* {
    box-sizing: border-box; /* Garante que o preenchimento e a borda não aumentem o tamanho total do elemento */
}

:root {
    --primary-color: #8ab4f8; /* Define a cor primária (azul claro) como uma variável */
    --secondary-color: #e8eaed; /* Define a cor secundária (cinza claro) como uma variável */
    --tertiary-color: #9aa0a6; /* Define a cor terciária (cinza médio) como uma variável */
    --bg-color: #202124; /* Define a cor de fundo (cinza escuro) como uma variável */
}

body {
    margin: 0; /* Remove a margem padrão do corpo da página */
    background: var(--bg-color); /* Define a cor de fundo usando a variável --bg-color */
    color: var(--secondary-color); /* Define a cor do texto padrão usando a variável --secondary-color */
    font-family: "Quicksand", sans-serif; /* Define a família da fonte para Quicksand, com sans-serif como alternativa */
}

header {
    padding: 2rem 1rem; /* Define o espaçamento interno (2rem em cima/baixo, 1rem nos lados) */
    display: flex; /* Habilita o layout flexbox para alinhar os itens */
    align-items: center; /* Alinha os itens flex verticalmente ao centro */
    justify-content: space-around; /* Distribui os itens flex com espaço igual ao redor deles */
    position: sticky; /* Torna o cabeçalho fixo no topo da janela de visualização ao rolar */
    top: 0; /* Define a posição do topo para o cabeçalho fixo */
    background: var(--bg-color); /* Define a cor de fundo do cabeçalho */
    z-index: 10; /* Define a ordem de empilhamento para que o cabeçalho fique sobre outros elementos */
    border-bottom: 1px solid var(--bg-color); /* Adiciona uma borda na parte inferior do cabeçalho */
    gap: 1rem; /* Define o espaçamento entre os elementos flex dentro do cabeçalho */
}

header h1 {
    font-size: 1.5rem; /* Define o tamanho da fonte */
    margin: 0; /* Remove a margem padrão */
    font-weight: 500; /* Define o peso da fonte como médio */
    white-space: nowrap; /* Impede que o texto quebre em várias linhas */
}

div input {
    padding: 0.375rem 0.75rem; /* Define o espaçamento interno */
    border-radius: 1rem; /* Arredonda as bordas do campo de entrada */
    border: 1px solid var(--tertiary-color); /* Define a borda com a cor terciária */
    background: var(--bg-color); /* Define a cor de fundo */
    font-family: inherit; /* Herda a família da fonte do elemento pai */
    font-size: 1.5rem; /* Define o tamanho da fonte */
    transition: all 0.2s ease; /* Adiciona uma transição suave para todas as propriedades ao longo de 0.2 segundos */
    width: 30rem; /* Define a largura do campo de entrada */
    color: var(--secondary-color); /* Define a cor do texto digitado */
    margin-right: .5rem; /* Adiciona uma margem à direita */
}

div input::placeholder {
    font-size: 1.2rem; /* Define o tamanho da fonte para o texto do placeholder */
    font-weight: 300; /* Define o peso da fonte para o texto do placeholder como leve */
    color: var(--tertiary-color); /* Define a cor do texto do placeholder */
}

div input:focus {
    outline: none; /* Remove a borda de foco padrão do navegador */
    border-color: var(--bg-color); /* Muda a cor da borda quando o campo de entrada está em foco */
    box-shadow: 0 0 0 0.1rem var(--tertiary-color); /* Adiciona uma sombra para indicar o foco */
}

#botao-busca {
    padding: 1rem 2rem; /* Define o espaçamento interno */
    border-radius: 1rem; /* Arredonda as bordas do botão */
    border: none; /* Remove a borda padrão */
    cursor: pointer; /* Muda o cursor para uma mãozinha para indicar que é clicável */
    font-family: inherit; /* Herda a família da fonte do elemento pai */
    font-weight: 500; /* Define o peso da fonte como médio */
    font-size: 1rem; /* Define o tamanho da fonte */
    white-space: nowrap; /* Impede que o texto do botão quebre em várias linhas */
    transition: background-color 0.2s ease, color 0.2s ease; /* Adiciona uma transição suave para a cor de fundo e a cor do texto */
    background-color: var(--bg-color); /* Define a cor de fundo */
    color: var(--secondary-color); /* Define a cor do texto */
    border: 1px solid var(--bg-color); /* Adiciona uma borda com a mesma cor do fundo */
}

#botao-busca:hover {
    background-color: var(--primary-color); /* Muda a cor de fundo ao passar o mouse sobre o botão */
    color: var(--bg-color); /* Muda a cor do texto ao passar o mouse sobre o botão */
    box-shadow: 0 0 0 0.1rem var(--primary-color); /* Adiciona uma sombra ao redor do botão */
}

#botao-busca:active {
    transform: scale(0.98); /* Diminui ligeiramente o tamanho do botão ao ser clicado */
}

main {
    overflow-y: scroll; /* Adiciona uma barra de rolagem vertical se o conteúdo exceder a altura */
    max-width: 80rem; /* Define a largura máxima do conteúdo principal */
    margin: 0 auto; /* Centraliza o conteúdo principal horizontalmente */
    margin-top: 2rem; /* Adiciona uma margem no topo */
    height: calc(100vh - 10rem - 4rem); /* Calcula a altura para preencher o espaço restante da tela (altura da viewport - altura do cabeçalho - margem) */
}

article {
    background: none; /* Define o fundo como transparente */
    border-radius: 0; /* Remove o arredondamento das bordas */
    padding: 0; /* Remove todo o espaçamento interno */
    padding: 0 1rem; /* Define o espaçamento interno horizontal (0 para cima/baixo, 1rem para os lados) */
    margin-bottom: 1.25rem; /* Adiciona uma margem na parte inferior */
    box-shadow: none; /* Remove qualquer sombra */
    transition: background-color 0.3s ease, border-bottom-color 0.3s ease; /* Adiciona uma transição suave para a cor de fundo e a cor da borda inferior */
    border-bottom: 1px solid var(--bg-color); /* Adiciona uma borda na parte inferior */
    padding-bottom: 1.5rem; /* Adiciona um espaçamento interno na parte inferior */
}

article:hover {
    transform: scale(1.01); /* Aumenta ligeiramente o tamanho do artigo ao passar o mouse sobre ele */
    cursor: pointer; /* Muda o cursor para uma mãozinha para indicar que é clicável */
}

article h2 {
    margin-top: 0; /* Remove a margem superior */
    font-weight: 600; /* Define o peso da fonte como semi-negrito */
    font-size: 1.6rem; /* Define o tamanho da fonte */
    border-bottom: none; /* Remove a borda inferior */
    padding-bottom: 0; /* Remove o espaçamento interno inferior */
    margin-bottom: 0.25rem; /* Adiciona uma pequena margem inferior */
    color: var(--primary-color); /* Define a cor do texto usando a variável de cor primária */
}

article p {
    margin: 0.5rem 0; /* Define a margem superior e inferior */
    line-height: 1.6; /* Define a altura da linha para melhor legibilidade */
    font-size: 1rem; /* Define o tamanho da fonte */
    margin-bottom: 0.5rem; /* Adiciona uma margem inferior */
    color: var(--secondary-color); /* Define a cor do texto */
}

article p strong {
    color: var(--tertiary-color); /* Define a cor do texto para elementos em negrito */
    font-weight: 400; /* Define o peso da fonte como normal */
}

article a {
    color: var(--primary-color); /* Define a cor do link */
    text-decoration: none; /* Remove o sublinhado padrão do link */
    font-weight: 200; /* Define o peso da fonte como extra-leve */
}

article a:hover {
    text-decoration: underline; /* Adiciona um sublinhado ao passar o mouse sobre o link */
}

.footer {
    position: absolute; /* Define o posicionamento como absoluto em relação ao elemento pai posicionado */
    bottom: 0; /* Alinha o rodapé na parte inferior */
    left: 0; /* Alinha o rodapé à esquerda */
    width: 100%; /* Define a largura como 100% do elemento pai */
    color: var(--tertiary-color); /* Define a cor do texto */
    background-color: var(--bg-color); /* Define a cor de fundo */
    padding: 15px 20px; /* Define o espaçamento interno */
    border-top: 1px solid #3c4043; /* Adiciona uma borda na parte superior */
    font-size: 0.8rem; /* Define o tamanho da fonte */
}

.footer-location {
    color: #9aa0a6; /* Define a cor do texto */
    margin-bottom: 10px; /* Adiciona uma margem inferior */
}

.footer-links {
    list-style: none; /* Remove os marcadores de item da lista */
    display: flex; /* Habilita o layout flexbox */
    flex-wrap: wrap; /* Permite que os itens quebrem para a próxima linha se não houver espaço */
    justify-content: center; /* Centraliza os itens horizontalmente */
    gap: 15px; /* Define o espaçamento entre os links */
}

.footer-links a {
    color: var(--secondary-color); /* Define a cor do link */
    text-decoration: none; /* Remove o sublinhado do link */
    transition: color 0.2s; /* Adiciona uma transição suave para a mudança de cor */
}

.footer-links a:hover {
    color: var(--primary-color); /* Muda a cor do link ao passar o mouse (variável --accent-color não definida, usando --primary-color) */
}

@media (max-width: 768px) {
    header { /* Estilos para telas com largura máxima de 768px */
        flex-direction: column; /* Organiza os itens do cabeçalho em uma coluna */
        padding: 1rem; /* Reduz o espaçamento interno */
    }

    header h1 { /* Estilos para o h1 no cabeçalho em telas menores */
        text-align: center; /* Centraliza o alinhamento do texto */
        margin-bottom: 1rem; /* Adiciona uma margem inferior */
    }

    div input { /* Estilos para o input em telas menores */
        width: 90vw; /* Define a largura como 90% da largura da janela de visualização */
        font-size: 1.2rem; /* Reduz o tamanho da fonte */
    }

    main { /* Estilos para o main em telas menores */
        padding: 0 1rem; /* Adiciona espaçamento interno lateral */
    }

    article:hover { /* Estilos para o article em telas menores */
        transform: none; /* Remove o efeito de escala ao passar o mouse para evitar problemas de layout */
    }
}

@media (max-width: 480px) {
    header h1 { /* Estilos para o h1 em telas com largura máxima de 480px */
        font-size: 1rem; /* Reduz ainda mais o tamanho da fonte */
        max-width: 70%; /* Define uma largura máxima para o título */
        word-wrap: break-word; /* Permite que palavras longas quebrem para a próxima linha */
    }

    div input, /* Estilos para o input e seu placeholder em telas muito pequenas */
    div input::placeholder {
        font-size: 1rem; /* Reduz o tamanho da fonte para o campo de entrada e seu placeholder */
    }

    article h2 { /* Estilos para o h2 do article em telas muito pequenas */
        font-size: 1.3rem; /* Reduz o tamanho da fonte do título do artigo */
    }

    div { /* Estilos para a div do cabeçalho em telas muito pequenas */
        display: flex; /* Habilita o layout flexbox */
        align-items: center; /* Alinha os itens verticalmente ao centro */
        justify-content: center; /* Centraliza os itens horizontalmente */
        flex-direction: column; /* Organiza os itens em uma coluna */
        gap: 0.5rem; /* Define o espaçamento entre os itens */
    }

    .footer { /* Estilos para o rodapé em telas muito pequenas */
        display: none; /* Oculta o rodapé em telas muito pequenas */
    }

    button { /* Estilos para o botão em telas muito pequenas */
        margin-top: 1rem; /* Adiciona uma margem no topo do botão */
    }
}