/* RESPONSIVIDADE GERAL */

/* Ultra Wide Screens (1920px+) */
@media screen and (min-width: 1920px) {
    .interface {
        max-width: 1600px;
    }

    h2.titulo {
        font-size: 70px;
        line-height: 75px;
    }

    p {
        font-size: 24px;
        line-height: 32px;
    }

    section.topo-do-site {
        padding: 140px 4%;
    }

    .topo-do-site h1 {
        font-size: 60px;
        line-height: 65px;
    }

    section.servicos {
        padding: 120px 4%;
    }

    .servicos .servicos-box {
        padding: 50px;
    }

    .servicos .servicos-box i {
        font-size: 56px;
    }

    .servicos .servicos-box h3 {
        font-size: 36px;
    }
}

/* Large Desktops (1600px - 1919px) */
@media screen and (max-width: 1919px) and (min-width: 1600px) {
    .interface {
        max-width: 1400px;
    }

    h2.titulo {
        font-size: 65px;
        line-height: 70px;
    }

    .topo-do-site h1 {
        font-size: 55px;
        line-height: 60px;
    }

    .servicos .servicos-box {
        padding: 45px;
    }

    .servicos .servicos-box i {
        font-size: 52px;
    }

    .servicos .servicos-box h3 {
        font-size: 32px;
    }
}

/* Standard Desktops (1400px - 1599px) */
@media screen and (max-width: 1599px) and (min-width: 1400px) {
    h2.titulo {
        font-size: 55px;
        line-height: 60px;
    }

    p {
        font-size: 20px;
        line-height: 26px;
    }

    .topo-do-site h1 {
        font-size: 45px;
        line-height: 50px;
    }

    .servicos .servicos-box h3 {
        font-size: 28px;
    }

    .sobre .txt-sobre h2 {
        font-size: 38px;
        line-height: 42px;
    }
}

/* Large Tablets Landscape (900px - 1399px) */
@media screen and (max-width: 1399px) and (min-width: 900px) {
    .flex {
        flex-direction: row;
    }

    .topo-do-site .flex {
        flex-direction: row;
        gap: 60px;
    }

    section.topo-do-site {
        padding: 100px 6%;
    }

    .topo-do-site h1 {
        font-size: 36px;
        line-height: 40px;
    }

    .topo-do-site .img-topo-site img {
        max-width: 450px;
    }

    section.servicos .flex {
        flex-direction: row;
        flex-wrap: wrap;
    }

    .servicos .servicos-box {
        width: 48%;
        margin: 0 1% 30px 1%;
    }

    section.sobre .flex {
        flex-direction: row;
        gap: 40px;
    }

    section.aplicacoes .flex {
        flex-direction: column;
        gap: 40px;
    }
}

/* Medium Tablets Portrait (769px - 899px) */
@media screen and (max-width: 899px) and (min-width: 769px) {
    .flex {
        flex-direction: column;
    }

    h2.titulo {
        font-size: 38px;
        line-height: 42px;
    }

    p {
        font-size: 19px;
        line-height: 25px;
    }

    section.topo-do-site {
        padding: 80px 7%;
    }

    .topo-do-site h1 {
        font-size: 32px;
        line-height: 36px;
        text-align: center;
    }

    .topo-do-site .img-topo-site img {
        max-width: 400px;
    }

    .menu-desktop {
        display: none;
    }

    .btn-abrir-menu {
        display: block;
    }

    section.servicos {
        padding: 70px 7%;
    }

    .servicos .servicos-box {
        padding: 35px;
        margin-top: 25px;
    }

    section.sobre {
        padding: 50px 7% 70px 7%;
    }

    .sobre .txt-sobre h2 {
        font-size: 32px;
        line-height: 36px;
        text-align: center;
    }

    section.aplicacoes {
        padding: 70px 7%;
    }
}

@media screen and (max-width: 1400px) {
    /* Classes Gerais */
    .flex {
        flex-direction: column;
    }

    .topo-do-site .flex {
        flex-direction: column-reverse;
        gap: 40px;
    }

    h2.titulo {
        font-size: 34px;
        line-height: 30px;
    }

    p {
        font-size: 18px;
        line-height: 24px;
    }

    /* Cabeçalho */
    .menu-desktop,
    .btn-login {
        display: none;
    }

    .btn-abrir-menu {
        display: block;
    }

    /* Topo do Site */
    section.topo-do-site {
        padding: 20px 8%;
    }

    .topo-do-site h1 {
        font-size: 30px;
        line-height: 35px;
        text-align: center;
    }

    .topo-do-site .txt-topo-site p {
        text-align: center;
    }

    .topo-do-site .img-topo-site img {
        width: 100%;
        height: auto;
        max-width: 400px; /* Limita o tamanho da imagem em telas menores */
        margin: 0 auto;
        display: block;
    }

    .topo-do-site .btn-login {
        text-align: center;
    }

    .topo-do-site .btn-login button img {
        width: 100%;
        max-width: 300px;
        height: auto;
    }

    /* Serviços */
    section.servicos {
        padding: 80px 8%;
    }

    .servicos .servicos-box {
        padding: 30px;
        margin-top: 30px;
    }

    .servicos .servicos-box h3 {
        font-size: 24px;
    }

    /* Sobre Nós */
    section.sobre {
        padding: 40px 8% 80px 8%;
    }

    .sobre .txt-sobre h2 {
        font-size: 35px;
        line-height: 35px;
        text-align: center;
    }

    .sobre .txt-sobre p {
        text-align: center;
    }

    .btn-social {
        text-align: center;
        margin-top: 20px;
    }

    .img-sobre {
        width: 100%;
        text-align: center;
    }

    .img-sobre img {
        width: 100%;
        max-width: 250px;
        height: auto;
    }

    /* Aplicações */
    section.aplicacoes {
        padding: 80px 8%;
    }

    .img-apli {
        width: 100%;
        max-width: 360px;
        margin: 0 auto;
        padding: 20px;
    }

    .img-apli img {
        width: 100%;
        height: auto;
    }

    .img-apli h1 {
        font-size: 24px;
        text-align: center;
        margin-top: 15px;
    }

    .img-apli p {
        font-size: 16px;
        text-align: center;
    }

    section.aplicacoes .flex {
        gap: 60px;
    }

    /* Formulário de Contato */
    section.formulario {
        padding: 60px 8%;
    }

    form {
        max-width: 100%;
    }

    form input,
    form textarea {
        padding: 15px 10px;
        font-size: 16px;
    }

    form .btn-enviar input {
        width: 100px;
        padding: 12px;
        font-size: 16px;
    }

    /* Popup de Cadastro */
    .popup {
        width: 90%;
        padding: 15px;
    }

    .header-popup h2 {
        font-size: 24px;
    }

    .input-group i {
        font-size: 18px;
        left: 10px;
    }

    .input-group input {
        padding: 8px 8px 8px 35px;
        font-size: 12px;
    }

    .popup button span {
        font-size: 15px;
        margin: 8px;
    }

    /* Rodapé */
    footer .flex {
        flex-direction: column;
        gap: 30px;
    }

    footer .line-footer {
        text-align: center;
    }

    footer .line-footer p {
        font-size: 16px;
    }

    footer .line-footer p i {
        font-size: 22px;
    }

    footer .line-footer p a {
        font-size: 16px;
    }

    .logo-footer img {
        width: 60px;
        height: 60px;
    }
}

@media screen and (max-width: 768px) {
    /* Classes Gerais */
    h2.titulo {
        font-size: 28px;
        line-height: 28px;
    }

    p {
        font-size: 16px;
        line-height: 22px;
    }

    /* Cabeçalho */
    header {
        padding: 15px 4%;
    }

    header.rolagem {
        padding: 0px 4%;
    }

    .btn-abrir-menu i {
        font-size: 35px;
    }

    .menu-mobile.abrir-menu {
        width: 85%;
    }

    .menu-mobile nav ul li a {
        font-size: 18px;
        padding: 15px 8%;
    }

    /* Topo do Site */
    section.topo-do-site {
        padding: 10px 5%;
    }

    .topo-do-site h1 {
        font-size: 26px;
        line-height: 30px;
    }

    .topo-do-site .txt-topo-site p {
        margin: 20px 0;
    }

    .topo-do-site .btn-login button img {
        max-width: 250px;
    }

    /* Serviços */
    section.servicos {
        padding: 60px 5%;
    }

    .servicos .servicos-box {
        padding: 20px;
        margin-top: 20px;
    }

    .servicos .servicos-box i {
        font-size: 40px;
    }

    .servicos .servicos-box h3 {
        font-size: 20px;
    }

    /* Sobre Nós */
    section.sobre {
        padding: 30px 5% 60px 5%;
    }

    .sobre .txt-sobre h2 {
        font-size: 30px;
        line-height: 30px;
    }

    .btn-social button {
        width: 50px;
        height: 50px;
        font-size: 24px;
        margin: 0 5px;
    }

    /* Aplicações */
    section.aplicacoes {
        padding: 60px 5%;
    }

    .img-apli {
        max-width: 300px;
        padding: 15px;
    }

    .img-apli h1 {
        font-size: 20px;
    }

    .img-apli p {
        font-size: 14px;
    }

    /* Formulário de Contato */
    section.formulario {
        padding: 40px 5%;
    }

    form input,
    form textarea {
        padding: 12px 8px;
        font-size: 14px;
    }

    form .btn-enviar input {
        width: 90px;
        padding: 10px;
        font-size: 14px;
    }

    /* Popup de Cadastro */
    .popup {
        width: 95%;
        padding: 10px;
    }

    .header-popup h2 {
        font-size: 20px;
    }

    .input-group i {
        font-size: 16px;
        left: 8px;
    }

    .input-group input {
        padding: 6px 6px 6px 30px;
        font-size: 11px;
    }

    .popup button span {
        font-size: 13px;
        margin: 6px;
    }

    /* Rodapé */
    footer {
        padding: 30px 5%;
    }

    footer .line-footer p {
        font-size: 14px;
    }

    footer .line-footer p i {
        font-size: 20px;
    }

    footer .line-footer p a {
        font-size: 14px;
    }

    .logo-footer img {
        width: 50px;
        height: 50px;
    }
}

@media screen and (max-width: 480px) {
    /* Classes Gerais */
    h2.titulo {
        font-size: 24px;
        line-height: 24px;
    }

    p {
        font-size: 14px;
        line-height: 20px;
    }

    /* Cabeçalho */
    header {
        padding: 10px 3%;
    }

    .btn-abrir-menu i {
        font-size: 30px;
    }

    .menu-mobile.abrir-menu {
        width: 100%; /* Ocupa toda a largura em telas muito pequenas */
    }

    .menu-mobile nav ul li a {
        font-size: 16px;
        padding: 12px 5%;
    }

    /* Topo do Site */
    section.topo-do-site {
        padding: 5px 3%;
    }

    .topo-do-site h1 {
        font-size: 22px;
        line-height: 26px;
    }

    .topo-do-site .txt-topo-site p {
        margin: 15px 0;
    }

    .topo-do-site .btn-login button img {
        max-width: 200px;
    }

    /* Serviços */
    section.servicos {
        padding: 40px 3%;
    }

    .servicos .servicos-box {
        padding: 15px;
        margin-top: 15px;
    }

    .servicos .servicos-box i {
        font-size: 35px;
    }

    .servicos .servicos-box h3 {
        font-size: 18px;
    }

    /* Sobre Nós */
    section.sobre {
        padding: 20px 3% 40px 3%;
    }

    .sobre .txt-sobre h2 {
        font-size: 26px;
        line-height: 26px;
    }

    .btn-social button {
        width: 40px;
        height: 40px;
        font-size: 20px;
    }

    /* Aplicações */
    section.aplicacoes {
        padding: 40px 3%;
    }

    .img-apli {
        max-width: 250px;
        padding: 10px;
    }

    .img-apli h1 {
        font-size: 18px;
    }

    .img-apli p {
        font-size: 12px;
    }

    /* Formulário de Contato */
    section.formulario {
        padding: 30px 3%;
    }

    form input,
    form textarea {
        padding: 10px 6px;
        font-size: 12px;
    }

    form .btn-enviar input {
        width: 80px;
        padding: 8px;
        font-size: 12px;
    }

    /* Popup de Cadastro */
    .popup {
        width: 98%;
        padding: 8px;
    }

    .header-popup h2 {
        font-size: 18px;
    }

    .input-group i {
        font-size: 14px;
        left: 6px;
    }

    .input-group input {
        padding: 5px 5px 5px 25px;
        font-size: 10px;
    }

    .popup button span {
        font-size: 12px;
        margin: 5px;
    }

    /* Rodapé */
    footer {
        padding: 20px 3%;
    }

    footer .line-footer p {
        font-size: 12px;
    }

    footer .line-footer p i {
        font-size: 18px;
    }

    footer .line-footer p a {
        font-size: 12px;
    }

    .logo-footer img {
        width: 40px;
        height: 40px;
    }
}

/* Very Small Mobile (320px - 479px) */
@media screen and (max-width: 479px) and (min-width: 320px) {
    h2.titulo {
        font-size: 20px;
        line-height: 22px;
    }

    p {
        font-size: 13px;
        line-height: 18px;
    }

    header {
        padding: 8px 2%;
    }

    .btn-abrir-menu i {
        font-size: 28px;
    }

    .menu-mobile nav ul li a {
        font-size: 15px;
        padding: 10px 4%;
    }

    section.topo-do-site {
        padding: 3px 2%;
    }

    .topo-do-site h1 {
        font-size: 20px;
        line-height: 24px;
    }

    .topo-do-site .txt-topo-site p {
        margin: 12px 0;
    }

    .topo-do-site .btn-login button img {
        max-width: 180px;
    }

    section.servicos {
        padding: 30px 2%;
    }

    .servicos .servicos-box {
        padding: 12px;
        margin-top: 12px;
    }

    .servicos .servicos-box i {
        font-size: 30px;
    }

    .servicos .servicos-box h3 {
        font-size: 16px;
    }

    section.sobre {
        padding: 15px 2% 30px 2%;
    }

    .sobre .txt-sobre h2 {
        font-size: 22px;
        line-height: 22px;
    }

    .btn-social button {
        width: 35px;
        height: 35px;
        font-size: 18px;
    }

    section.aplicacoes {
        padding: 30px 2%;
    }

    .img-apli {
        max-width: 200px;
        padding: 8px;
    }

    .img-apli h1 {
        font-size: 16px;
    }

    .img-apli p {
        font-size: 11px;
    }

    section.formulario {
        padding: 25px 2%;
    }

    form input,
    form textarea {
        padding: 8px 5px;
        font-size: 11px;
    }

    form .btn-enviar input {
        width: 70px;
        padding: 6px;
        font-size: 11px;
    }

    .popup {
        width: 100%;
        padding: 6px;
        margin: 0 5px;
    }

    .header-popup h2 {
        font-size: 16px;
    }

    .input-group i {
        font-size: 12px;
        left: 5px;
    }

    .input-group input {
        padding: 4px 4px 4px 22px;
        font-size: 9px;
    }

    .popup button span {
        font-size: 11px;
        margin: 4px;
    }

    footer {
        padding: 15px 2%;
    }

    footer .line-footer p {
        font-size: 10px;
    }

    footer .line-footer p i {
        font-size: 16px;
    }

    footer .line-footer p a {
        font-size: 10px;
    }

    .logo-footer img {
        width: 35px;
        height: 35px;
    }
}

/* Ultra Small Devices (below 320px) */
@media screen and (max-width: 319px) {
    h2.titulo {
        font-size: 18px;
        line-height: 20px;
    }

    p {
        font-size: 12px;
        line-height: 16px;
    }

    .topo-do-site h1 {
        font-size: 18px;
        line-height: 22px;
    }

    .servicos .servicos-box h3 {
        font-size: 14px;
    }

    .sobre .txt-sobre h2 {
        font-size: 20px;
        line-height: 20px;
    }

    .img-apli h1 {
        font-size: 14px;
    }

    .img-apli p {
        font-size: 10px;
    }

    .popup {
        width: 100%;
        padding: 4px;
        margin: 0 2px;
    }

    .header-popup h2 {
        font-size: 14px;
    }

    .input-group input {
        padding: 3px 3px 3px 20px;
        font-size: 8px;
    }
}
