@media screen and (max-width: 900px) {
    body {
        overflow-x: hidden;
        height: 100%;
    }

    .somente_desktop {
        display: none !important;
    }

    .somente_mobile {
        display: block !important;
    }

    .row {
        margin-left: 0px !important;
        margin-right: 0px !important;
    }

    .scroll {
        background-color: white !important;
        transition: all 0.4s ease-in-out;
        -webkit-box-shadow: -1px 5px 5px -3px rgb(0 0 0 / 56%);
        -moz-box-shadow: -1px 5px 5px -3px rgba(0, 0, 0, 0.56);
        box-shadow: -1px 5px 5px -3px rgba(0, 0, 0, 0.56);
        color: var(--cinza-principal) !important;
    }

    nav.navbar {
        position: fixed;
        transition: 0;
        background-color: transparent;
        z-index: 99;
        margin: auto;
        width: 100%;
    }

    .navbar-collapse {
        width: 100%;
        background-color: var(--cinza-principal);
        transition: all 0.4s ease-in-out;
    }

    .navbar-collapse a {
        color: white;
        transition: all 0.3s ease-in-out;
    }


    .scroll .navbar-collapse {
        width: 100%;
        background-color: white;
        transition: all 0.4s ease-in-out;
    }

    .navbar-collapse ul.navbar-nav {
        width: 100%;
    }

    .scroll .navbar-collapse a {
        color: var(--cinza-principal) !important;
        transition: all 0.3s ease-in-out;
    }

    .nav-link:focus,
    .nav-link:hover {
        color: #3C2414;
    }

    .text-primary {
        --bs-text-opacity: 1;
        color: var(--cinza-principal) !important;
    }


    .scroll a:hover {
        color: var(--cinza-principal) !important;
        opacity: 0.6;
    }

    .nav-link,
    .nav-link:active,
    .nav-link:visited {
        display: block;
        color: white;
        padding: 10px 0px;
        margin: 5px 0px;
        text-decoration: none;
        transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out;
    }


    a.navbar-brand img {
        max-height: 50px;
    }

    ul.navbar-nav li {
        font-size: 1.2rem;
        font-weight: 300;
        margin: 0px 10px;
    }

    .navbar-toggler {
        padding: 0.25rem 0.75rem;
        font-size: 1.25rem;
        line-height: 1;
        background-color: transparent;
        border: 1px solid #ffffff;
        border-radius: 0.25rem;
        transition: box-shadow .15s ease-in-out;
    }

    .navbar-toggler i {
        color: #ffffff;
        font-size: 1.5rem;
        padding: 2px 3px;
    }




    .scroll .navbar-toggler i,
    .scroll .navbar-toggler i:active {
        color: var(--cinza-principal);
        font-size: 1.5rem;
        padding: 2px 3px;
    }

    .scroll .navbar-toggler {
        padding: 0.25rem 0.75rem;
        font-size: 1.25rem;
        line-height: 1;
        background-color: transparent;
        border: 1px solid var(--cinza-principal) !important;
        border-radius: 0.25rem;
        transition: box-shadow .15s ease-in-out;
    }

/* ====================== Mensagens =========================== */
.error_message_cadastro {
    background-color: transparent;
    color: #B22222;
    font-size: 1rem;
    margin-top: 0px;
    border-radius: 5px;
    border: solid 1px #B22222;
    display: block;
    width: 100%;
    padding: 20px;
}

.validado_mensagem_cadastro {
    background-color: transparent;
    color: green;
    font-size: 1rem;
    margin-top: 0px;
    border-radius: 5px;
    border: solid 1px green;
    display: block;
    width: 100%;
    padding: 20px;
}
    
/* ====================== Formulários =========================== */

.titulo_formulario {
    font-size: 22px;
    margin-bottom: 16px;
}

/* 16px ou mais: o iPhone não dá zoom ao tocar no campo */
.input_formulario {
    font-size: 16px;
}

.campo_editavel {
    height: 52px;
    line-height: 50px;
}

/* No cadastro, o espaço da mensagem de validação já separa um campo do outro */
#form_cadastro .campo_formulario {
    margin-bottom: 8px;
}

/* Texto da capa não encosta nas bordas da tela */
.texto_capa {
    padding: 0 16px;
}

.texto_capa h1,
.texto_capa h3 {
    max-width: 100%;
}

/* ====================== Botões =========================== */

.botao_conheca_capa {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 300px;
    min-height: 60px;
    padding: 0;
    margin: 30px auto 0px auto;
    border-radius: 0px;
    border: solid 1px var(--cinza-principal);
    background-color: var(--cinza-principal);
    color: white;
    font-weight: 600;
    font-size: 20px;
    line-height: 24px;
    text-transform: uppercase;
    transition: all 0.3 ease-in-out;
    
}

.botao_conheca_capa:hover {
    border: solid 1px var(--cinza-base);
    background-color: var(--cinza-base);
}


/* ====================== Textos =========================== */


h1 {
    font-size: 2.3rem;
    line-height: 2.5rem;
    display: block;
    max-width: 92%;
    width: 100%;
    box-sizing: border-box;
}

h3 {
    font-size: 1.2rem;
    line-height: 1.4rem;
    display: block;
    max-width: 92%;
    width: 100%;
    box-sizing: border-box;
}

.titulo_padrao { 
    color: white;
    font-weight: 600;
    text-align: center;
    margin-bottom: 20px;
}

.subtitulo_padrao { 
    color: white;
    font-weight: 300;
    text-align: center;
}

.bloco_texto {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    height: 100%;
    max-width: 90%;
    width: 100%;
    margin: 0px auto 0px auto;
    box-sizing: border-box;
}


/* ====================== Controles de layout =========================== */

.controle_textos {
    display: table;
    padding: 30px;
    box-sizing: border-box;
}

.fundo_cadastro_login {
        display: flex;
        justify-content: center;
        align-items: center;
        flex-flow: column;
        max-width: 100%;
        width: 100%;
        height: auto;
        padding: 24px 20px;
        background-color: white;
        border-radius: 12px;
        margin: auto;
}

.controle_tela {
    display: flex;
    justify-content: center;
    align-items: center;
    height: auto;
    max-width: 100%;
    width: 100%;
    box-sizing: border-box;
    padding: 0 14px;
    margin: auto auto 40px auto;
}

/* ====================== BLOCO CAPA =========================== */

section#bloco_capa {
    display: block;
    max-width: 100%;
    width: 100%;
    min-height: auto;
    padding-top: 92px;
    padding-bottom: 8px;
}

/* Capa moderna no celular: login primeiro (acesso rápido), texto depois */
#bloco_capa .fundo_cadastro_login {
    padding: 24px 20px;
}

#bloco_capa .controle_textos_capa {
    padding: 8px 18px 44px 18px;
    text-align: left;
}

#bloco_capa .controle_textos_capa::before {
    font-size: 12px;
    margin-bottom: 14px;
}

#bloco_capa .titulo_padrao {
    font-size: 2rem;
    line-height: 2.25rem;
    text-align: left;
    max-width: 100%;
}

#bloco_capa .subtitulo_padrao {
    font-size: 1.05rem;
    line-height: 1.55rem;
    text-align: left;
    max-width: 100%;
}

#bloco_capa .botao_conheca_capa {
    width: 100%;
    margin: 26px 0 0 0;
}

section#bloco_capa .links_login {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
}


/* ====================== BLOCO CADASTRO =========================== */

   #cadastro {
        margin-top: 0px;
    }

    section#bloco_cadastro {
        display: block;
        width: 100%;
        padding: 56px 0 16px 0;
    }

    #bloco_cadastro .bloco_texto {
        max-width: 100%;
        margin: 0;
    }

    #bloco_cadastro .controle_textos {
        padding: 0 18px 28px 18px;
    }

    #bloco_cadastro .controle_textos::before {
        font-size: 12px;
        margin-bottom: 14px;
    }

    #bloco_cadastro .titulo_padrao {
        font-size: 2rem;
        line-height: 2.25rem;
        max-width: 100%;
    }

    #bloco_cadastro .subtitulo_padrao {
        font-size: 1.05rem;
        line-height: 1.55rem;
        max-width: 100%;
    }

    /* As regras de desktop com #id venceriam as do celular: aqui elas são desfeitas */
    #bloco_capa .controle_tela,
    #bloco_cadastro .controle_tela {
        padding: 0 14px;
    }

    #bloco_capa .fundo_cadastro_login,
    #bloco_cadastro .fundo_cadastro_login {
        width: 100%;
        padding: 24px 20px;
    }
    

    /* ====================== SERVIÇOS DE CRIPTOGRAFIA =========================== */

    section.bloco_servicos {
        padding: 56px 16px;
    }

    .servicos_topo,
    .servicos_motivos {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .bloco_servicos h2 {
        font-size: 1.65rem;
        max-width: 100%;
    }

    .bloco_servicos p {
        font-size: 1rem;
    }

    .servicos_demo {
        padding: 18px;
    }

    .demo_mensagem_aberta {
        max-width: 92%;
    }

    .demo_mensagem_cifrada {
        max-width: 100%;
    }

    .servicos_lista {
        grid-template-columns: 1fr;
        gap: 12px;
        margin-top: 36px;
    }

    .servico {
        display: grid;
        grid-template-columns: 44px 1fr;
        column-gap: 14px;
        padding: 18px;
    }

    .servico > i {
        grid-row: span 2;
        margin-bottom: 0;
    }

    .servicos_motivos {
        margin-top: 48px;
        padding-top: 40px;
    }

    .botao_servicos {
        width: 100%;
    }

    /* ====================== PERGUNTAS FREQUENTES =========================== */

    section.bloco_faq {
        padding: 56px 14px;
    }

    .bloco_faq_cabecalho {
        margin-bottom: 28px;
    }

    .bloco_faq_cabecalho h2 {
        font-size: 1.6rem;
        max-width: 100%;
    }

    .bloco_faq_cabecalho p {
        font-size: 1rem;
    }

    #lista_faq .accordion-button {
        padding: 16px;
        font-size: 1rem;
    }

    #lista_faq .accordion-body {
        padding: 14px 16px 18px 16px;
        font-size: .95rem;
    }

    #lista_faq .accordion-body ol,
    #lista_faq .accordion-body ul {
        padding-left: 1.2rem;
    }

    .botao_faq {
        width: 100%;
    }

    /* ====================== RODAPÉ =========================== */

    .rodape_conteudo {
        flex-direction: column;
        font-size: 13px;
        line-height: 1.5;
    }

    /* ====================== BLOCO RECUPERAR SENHA =========================== */

    section#bloco_recuperar_senha {
        min-height: 100vh;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    


    /* ====================== RECUPERAR SENHA E NOVA SENHA =========================== */

    section#bloco_recuperar_senha,
    section#recuperar_conta {
        display: block;
        min-height: 100vh;
        padding: 96px 0 40px 0;
    }

    .bloco_conta_escuro .row {
        flex-direction: column-reverse;
    }

    .bloco_conta_escuro .bloco_texto {
        max-width: 100%;
        margin: 0;
    }

    .bloco_conta_escuro .controle_textos {
        padding: 28px 18px 0 18px;
    }

    .bloco_conta_escuro .titulo_padrao {
        font-size: 1.8rem;
        line-height: 2.1rem;
        max-width: 100%;
    }

    .bloco_conta_escuro .subtitulo_padrao {
        font-size: 1rem;
        line-height: 1.5rem;
        max-width: 100%;
    }

    .bloco_conta_escuro .controle_tela {
        padding: 0 14px;
        margin: 0;
    }

    .bloco_conta_escuro .fundo_cadastro_login {
        width: 100%;
        padding: 24px 20px;
    }
    /* ====================== PÁGINAS LEGAIS E CONTATO =========================== */

    section.pagina_legal_topo {
        padding: 110px 18px 40px 18px;
    }

    .pagina_legal_topo h1 {
        font-size: 1.9rem;
        max-width: 100%;
    }

    section.pagina_legal {
        padding: 32px 18px 56px 18px;
        font-size: .98rem;
    }

    .pagina_legal h2 {
        font-size: 1.15rem;
        max-width: 100%;
    }

    .pagina_legal ul {
        padding-left: 1.2rem;
    }

    section#contato {
        display: block;
        padding: 96px 0 40px 0;
    }

    #contato .row {
        flex-direction: column-reverse;
    }

    .rodape_links {
        flex-wrap: wrap;
        justify-content: center;
    }
}
