/* =========================================================
   ACERVO ACOLHE
   ESTILO PRINCIPAL
   ========================================================= */


/* =========================================================
   VARIÁVEIS
   ========================================================= */

:root {

    --off-white: #F8F6F0;

    --branco: #FFFFFF;

    --azul-claro: #DCEFF7;

    --azul-medio: #8FC9E8;

    --azul: #2F6F95;

    --azul-escuro: #173B57;

    --texto: #263746;

    --texto-claro: #647482;

    --borda: #E2E8EC;

    --sombra:
        0 8px 25px rgba(23, 59, 87, 0.08);

    --raio: 16px;
}


/* =========================================================
   RESET
   ========================================================= */

* {
    margin: 0;

    padding: 0;

    box-sizing: border-box;
}


html {
    scroll-behavior: smooth;
}


body {
    font-family: "Poppins", sans-serif;

    background-color: var(--off-white);

    color: var(--texto);

    line-height: 1.6;

    min-height: 100vh;

    overflow-x: hidden;
}


img {
    max-width: 100%;

    display: block;
}


a {
    color: inherit;

    text-decoration: none;
}


button,
input,
select,
textarea {
    font-family: inherit;
}


main {
    width: 100%;
}


/* =========================================================
   SEÇÕES
   ========================================================= */

.secao {
    width: min(1200px, 92%);

    margin: 0 auto;

    padding: 70px 0;
}


.titulo-secao {
    text-align: center;

    margin-bottom: 38px;
}


.titulo-secao span {
    display: block;

    margin-bottom: 7px;

    color: var(--azul);

    font-size: 0.72rem;

    font-weight: 600;

    text-transform: uppercase;

    letter-spacing: 1.7px;
}


.titulo-secao h2 {
    color: var(--azul-escuro);

    font-size: clamp(1.6rem, 3.5vw, 2.3rem);

    font-weight: 700;

    line-height: 1.2;

    margin-bottom: 10px;
}


.titulo-secao p {
    max-width: 600px;

    margin: 0 auto;

    color: var(--texto-claro);

    font-size: 0.78rem;

    line-height: 1.7;
}


/* =========================================================
   GRADE DE LIVROS
   ========================================================= */

.grade-livros {
    display: grid;

    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    gap: 20px;
}


.card-livro {
    min-width: 0;

    background-color: var(--branco);

    border: 1px solid var(--borda);

    border-radius: var(--raio);

    overflow: hidden;

    box-shadow: var(--sombra);

    transition:
        transform 0.25s ease,
        box-shadow 0.25s ease;
}


.card-livro:hover {
    transform: translateY(-5px);

    box-shadow:
        0 13px 28px rgba(23, 59, 87, 0.12);
}


.capa-livro {
    width: 100%;

    height: 245px;

    background-color: var(--azul-claro);

    overflow: hidden;
}


.capa-livro img {
    width: 100%;

    height: 100%;

    object-fit: cover;
}


.info-livro {
    padding: 14px;
}


.info-livro h3 {
    color: var(--azul-escuro);

    font-size: 0.9rem;

    font-weight: 600;

    line-height: 1.35;

    margin-bottom: 4px;
}


.info-livro p {
    color: var(--texto-claro);

    font-size: 0.72rem;

    line-height: 1.5;
}


/* =========================================================
   CARDS VAZIOS
   ========================================================= */

.card-vazio {
    visibility: hidden;

    border-color: transparent;

    background: transparent;

    box-shadow: none;
}


.card-vazio:hover {
    transform: none;

    box-shadow: none;
}


/* =========================================================
   BOTÕES
   ========================================================= */

.acao-secao {
    display: flex;

    justify-content: center;

    margin-top: 35px;
}


.botao-principal,
.botao-secundario {
    display: inline-flex;

    align-items: center;

    justify-content: center;

    gap: 9px;

    padding: 11px 20px;

    border-radius: 10px;

    font-size: 0.75rem;

    font-weight: 600;

    transition: 0.25s ease;
}


.botao-principal {
    background-color: var(--azul-escuro);

    color: var(--branco);
}


.botao-principal:hover {
    background-color: var(--azul);

    transform: translateY(-2px);
}


.botao-secundario {
    background-color: var(--azul-claro);

    color: var(--azul-escuro);
}


.botao-secundario:hover {
    background-color: var(--azul-medio);

    transform: translateY(-2px);
}


/* =========================================================
   CATEGORIAS
   ========================================================= */

.categorias {
    background-color: var(--branco);

    border-radius: 25px;

    margin-bottom: 40px;

    padding-left: 5%;

    padding-right: 5%;
}


.grade-categorias {
    display: grid;

    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    gap: 18px;
}


.categoria-card {
    display: flex;

    flex-direction: column;

    align-items: center;

    justify-content: center;

    text-align: center;

    min-height: 165px;

    padding: 22px;

    background-color: var(--off-white);

    border: 1px solid var(--borda);

    border-radius: var(--raio);

    transition:
        transform 0.25s ease,
        background-color 0.25s ease,
        border-color 0.25s ease;
}


.categoria-card:hover {
    transform: translateY(-4px);

    background-color: var(--azul-claro);

    border-color: var(--azul-medio);
}


.categoria-card i {
    width: 52px;

    height: 52px;

    margin-bottom: 12px;

    border-radius: 50%;

    display: flex;

    align-items: center;

    justify-content: center;

    background-color: var(--azul-escuro);

    color: var(--branco);

    font-size: 1.05rem;
}


.categoria-card h3 {
    margin-bottom: 4px;

    color: var(--azul-escuro);

    font-size: 0.9rem;
}


.categoria-card p {
    color: var(--texto-claro);

    font-size: 0.66rem;
}


/* =========================================================
   SOBRE
   ========================================================= */

.sobre {
    display: flex;

    justify-content: center;

    text-align: center;

    padding-top: 60px;

    padding-bottom: 75px;
}


.sobre-conteudo {
    max-width: 700px;
}


.sobre-conteudo > span {
    display: block;

    margin-bottom: 7px;

    color: var(--azul);

    font-size: 0.72rem;

    font-weight: 600;

    text-transform: uppercase;

    letter-spacing: 1.7px;
}


.sobre-conteudo h2 {
    margin-bottom: 13px;

    color: var(--azul-escuro);

    font-size: 2rem;
}


.sobre-conteudo p {
    margin-bottom: 22px;

    color: var(--texto-claro);

    font-size: 0.76rem;

    line-height: 1.8;
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 1000px) {

    .grade-livros {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }


    .grade-categorias {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

}


/* =========================================================
   CELULAR
   ========================================================= */

@media (max-width: 700px) {

    .secao {
        width: 92%;

        padding: 48px 0;
    }


    .titulo-secao {
        margin-bottom: 25px;
    }


    .titulo-secao h2 {
        font-size: 1.45rem;
    }


    .titulo-secao p {
        font-size: 0.68rem;
    }


    /* -----------------------------------------
       LIVROS
       ----------------------------------------- */

    .grade-livros {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap: 10px;
    }


    .card-livro {
        border-radius: 12px;

        box-shadow:
            0 5px 15px rgba(23, 59, 87, 0.07);
    }


    .card-livro:hover {
        transform: none;

        box-shadow:
            0 5px 15px rgba(23, 59, 87, 0.07);
    }


    .capa-livro {
        height: 175px;
    }


    .info-livro {
        padding: 10px;
    }


    .info-livro h3 {
        font-size: 0.72rem;

        line-height: 1.3;
    }


    .info-livro p {
        font-size: 0.6rem;
    }


    /* -----------------------------------------
       CATEGORIAS
       ----------------------------------------- */

    .categorias {
        width: 92%;

        padding-left: 15px;

        padding-right: 15px;

        border-radius: 18px;
    }


    .grade-categorias {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap: 10px;
    }


    .categoria-card {
        min-height: 135px;

        padding: 15px;

        border-radius: 12px;
    }


    .categoria-card i {
        width: 42px;

        height: 42px;

        margin-bottom: 9px;

        font-size: 0.85rem;
    }


    .categoria-card h3 {
        font-size: 0.72rem;
    }


    .categoria-card p {
        font-size: 0.56rem;
    }


    /* -----------------------------------------
       SOBRE
       ----------------------------------------- */

    .sobre {
        padding-top: 45px;

        padding-bottom: 55px;
    }


    .sobre-conteudo h2 {
        font-size: 1.55rem;
    }


    .sobre-conteudo p {
        font-size: 0.68rem;
    }

}


/* =========================================================
   CELULAR PEQUENO
   ========================================================= */

@media (max-width: 420px) {

    .secao {
        width: 94%;

        padding: 42px 0;
    }


    .grade-livros {
        gap: 8px;
    }


    .capa-livro {
        height: 150px;
    }


    .info-livro {
        padding: 9px;
    }


    .info-livro h3 {
        font-size: 0.66rem;
    }


    .info-livro p {
        font-size: 0.56rem;
    }


    .categoria-card {
        min-height: 125px;

        padding: 12px;
    }

}