:root{
    --text-primary-color: #171C26;
    --text-secondary-color: #737B8C;
    --text-terciary-color: #2596be;
    /* --text-terciary-color: #E2A336; */
    --button-primary-color: #192743;
    --button-secondary-color: #fff;
    --footer-secondary-text-color: #7E9EB0;
}

*{
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}

@font-face {
  font-family: 'Manrope';
  src: url('./assets/fonts/Manrope-Regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Manrope';
  src: url('./assets/fonts/Manrope-Medium.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Manrope';
  src: url('./assets/fonts/Manrope-Bold.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

html{
    scroll-behavior: smooth;
    overflow-x: hidden;
}

body{
    background-color: #F8F8FA;
    font-family: 'Manrope', sans-serif;
    overflow-x: hidden;
    width: 100%;
    max-width: 100vw;
}

.header{
    background-color: #fff;
    width: 100%;
    position: fixed;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 2rem 0;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    z-index: 10;
}

#message-container{
    position: fixed;
    top: 24px;               
    left: 50%;
    transform: translateX(-50%);
    z-index: 9999;           
}

.message{
    padding: 12px 20px;
    border-radius: 8px;
    font-weight: 500;
}

.success{
  background-color: #81fd81;
  color: #166216;
}

.error{
    background-color: #fd8181;
    color: #621616;
}

.logo{
    width: 350px;
    padding-left: 8rem;
}

.nav{
    display: flex;
    padding: 0 8rem 0 0;
    gap: 2rem;
}

.nav-links{
    color: var(--text-secondary-color);
    text-decoration: none;
    font-size: larger;
    font-weight: bold;
}

.nav-links:hover{
    color: var(--text-terciary-color);
    transition: .3s;
}

main{
    padding-top: 8rem;
}

.intro-article{
    margin-bottom: 2rem;
}

.intro-container{
    width: 70%;
    padding: 3rem 8rem;
    display: flex;
    flex-direction: column;
}

.intro-title{
    font-size: medium;
    color: var(--text-secondary-color);
    margin-bottom: 2rem;
}

.intro-text{
    color: var(--text-primary-color);
    font-size: 3rem;
    font-weight: bold;
}

.intro-text-emphasis{
    color: var(--text-terciary-color);
}

.intro-text-quote{
    max-width: 90%;
    padding: 1.5rem 0 1rem 0;
    font-size: larger;
    color: var(--text-secondary-color)
}

.container-intro-buttons{
    display: flex;
    flex-direction: row;
    gap: 1rem;
}

.intro-button{
    padding: 1rem 1.5rem;
    font-size: large;
    border-radius: 8px;
    transition: all .5s ease;
}

.intro-button:hover{
    transform: translateY(-5px);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2); 
}

.intro-button:hover{
    cursor: pointer;
}

.primary-button{
    background-color: var(--button-primary-color);
    color: var(--button-secondary-color);
    border: none;
}

.secondary-button{
    background-color: var(--button-secondary-color);
    color: var(--text-primary-color);
    border: 1px solid #b5b5b5;
}

.container-quem-somos{
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 4rem 8rem;
    background-color: var(--button-primary-color);
}

.quem-somos-title{
    color: var(--text-terciary-color);
    padding-bottom: 2rem;
}

.quem-somos-text{
    color: #fff;
    font-size: larger;
    text-align: center;
    font-size: xx-large;
}

.quem-somos-text-emphasis{
    color: var(--text-terciary-color);
}

#solucoes, #contato, #quemsomos{
    scroll-margin-top: 80px;
}

.container-solucoes{
    padding: 4rem 8rem 0 8rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.solucoes-title{
    color: var(--text-terciary-color);
    font-size: x-large;
}

.solucoes-article{
    display: flex;
    flex-direction: column;
    gap: 1rem;
    max-width: 60%;
}

.solucoes-frase-primaria{
    font-size: 3rem;
    font-weight: bold;
    color: var(--text-primary-color);
}

.solucoes-frase-secundaria{
    font-size: x-large;
    color: var(--text-secondary-color);
}

.solucoes-cards{
    width: 100%;
    padding-top: 2rem;
    display: flex;
    flex: 1;
    flex-wrap: wrap;
    gap: 2rem;
    justify-content: space-between;
    margin-bottom: 1rem;
}

.solucao-card{
    width: 45%;
    background-color: #fff;
    padding: 2rem 1rem;
    border: 1px solid #E5E2DC;
    border-radius: 8px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
    transition: all .5s ease;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.solucao-card:hover{
    transform: translateY(-8px);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2); 
}

.solucao-card-image{
    width: 32px;
    background-color: #F4F3F0;
    padding: .5rem;
    border-radius: 8px;
}

.solucao-card-textos{
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.solucao-card-titulo{
    color: var(--text-primary-color);
    font-weight: bold;
    font-size: x-large;
}

.solucao-card-conteudo{
    color: var(--text-secondary-color)
}

.solucao-esgotada{
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.solucao-esgotada-text{
    color: var(--text-secondary-color);
    background-color: #F4F3F0;
    padding: .5rem .5rem;
    border: 1px solid var(--text-secondary-color);
    border-radius: 8px;
}

.solicite-proposta-link{
    display: flex;
    justify-content: center;
    width: 100%;
}

.solicite-proposta-button{
    background-color: var(--button-primary-color);
    color: var(--button-secondary-color);
    width: 300px;
    align-self: center;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    padding: 1rem 0;
    font-size: medium;
    font-weight: bold;
    border-radius: 8px;
    transition: all .5s ease;
}

.solicite-proposta-button:hover{
    transform: translateY(-5px);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2); 
}

.solicite-proposta-button-image{
    width: 24px;
}

.solicite-proposta-button:hover{
    cursor: pointer;
}

.container-contato{
    padding-top: 5rem;
    display: flex;
    gap: 2rem;
    width: 100%;
    justify-content: space-between;
}

.container-contato-texto{
    max-width: 40%;
    display: flex;
    flex-direction: column;
    padding-left: 8rem;
    gap: 1rem;
}

.contato-titulo{
    font-size: x-large;
    color: var(--text-terciary-color)
}

.contato-article{
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.contato-article-titulo{
    color: var(--text-primary-color);
    font-size: 3rem;
}

.contato-article-texto{
    color: var(--text-secondary-color);
    font-size: large
}

#contato-form{
    background-color: #fff;
    width: 80%;
    padding: 2rem 2rem;
    margin-right: 8rem;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    border: 1px solid #E5E2DC;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
    gap: 2rem;
}

.contato-form-row{
    display: flex;
    gap: 2rem;
    width: 100%;
}

.contato-form-group{
    display: flex;
    flex-direction: column;
    flex: 1;
}

.contato-form-group.full-width {
    flex: 1 1 100%;
}

.form-label{
    font-weight: bold;
    font-size: larger;
    color: var(--text-primary-color);
    margin-bottom: .5rem;
}

input{
    padding: 14px 16px;
    font-size: 16px;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    background-color: #fafafa;
    transition: all 0.3s ease;
}

input:focus{
    outline: none;
    border-color: #2c3e50;
    background-color: white;
}

input::placeholder{
    color: #999;
}

#submit-form-button{
    width: 100%;
    padding: 16px 0;
    font-size: larger;
    background-color: var(--button-primary-color);
    color: var(--button-secondary-color);
    border-radius: 8px;
}

#submit-form-button:hover{
    cursor: pointer;
}

footer{
    margin-top: 6rem;
    padding: 5rem 8rem 2rem 8rem;
    background-color: var(--button-primary-color);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    color: #fff;
}

.footer-container{
    display: flex;
    justify-content: space-between;
}

.footer-article{
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.footer-article nav{
    display: flex;
    flex-direction: column;
    gap: .5rem
}

.footer-article-links{
    text-decoration: none;
    color: var(--footer-secondary-text-color);
}

.footer-article-links:hover{
    color: #fff;
    transition: .3s;
}

.footer-logo{
    width: 250px;
}

.footer-social-media-icon{
    width: 50px;
    padding: 12px 12px;
    background-color: #2F3C55;
    border-radius: 8px;
}

.footer-social-media-icon:hover{
    background-color: #475777;
    transition: .3s;
}

.footer-social-media-icon:hover{
    cursor: pointer;
}

.footer-social-media-container{
    display: flex;
    justify-content: center;
    gap: 2rem;
}

.copyright{
    padding-top: 3rem;
    text-align: center;
    color: var(--footer-secondary-text-color);
}

@media screen and (max-width: 1255px){
    .container-contato{
        padding: 5rem 4rem 0 4rem;
        gap: 3rem;
    }

    .container-contato-texto{
        max-width: 100%;
        padding-left: 0;
    }

    .contato-article-titulo{
        font-size: 2.5rem;
    }

    #contato-form{
        width: 100%;
        margin-right: 0;
    }
}

@media screen and (max-width: 1024px) {
    .logo{
        width: 200px;
        padding-left: 4rem;
    }

    .nav{
        padding: 0 4rem 0 0;
        gap: 1.5rem;
    }

    .intro-container{
        width: 70%;
        padding: 3rem 4rem;
    }

    .intro-text{
        font-size: 2.5rem;
    }

    .container-quem-somos{
        padding: 4rem 4rem;
    }

    .quem-somos-text{
        font-size: x-large;
    }

    .container-solucoes{
        padding: 4rem 4rem 0 4rem;
    }

    .solucoes-article{
        max-width: 70%;
    }

    .solucoes-frase-primaria{
        font-size: 2.5rem;
    }

    .solucoes-frase-secundaria{
        font-size: large;
    }

    .solucao-card{
        width: 48%;
    }

    .container-contato{
        flex-direction: column;
        padding: 5rem 4rem 0 4rem;
        gap: 3rem;
    }

    footer{
        padding: 5rem 4rem 2rem 4rem;
    }
}

@media screen and (max-width: 950px){
    .solucao-card{
        width: 45%;
    }

    footer{
        padding: 3rem 2rem 2rem 2rem;
    }

    .footer-container{
        flex-direction: column;
        gap: 3rem;
    }

    .footer-article{
        align-items: flex-start;
    }
}

@media screen and (max-width: 768px) {
    body{
        overflow-x: hidden;
    }

    .header{
        padding: 1.5rem 0;
        width: 100%;
    }

    .logo{
        width: 150px;
        padding-left: 2rem;
    }

    .nav{
        padding: 0 2rem 0 0;
        gap: 1rem;
    }

    .nav-links{
        font-size: medium;
    }

    main{
        padding-top: 6rem;
    }

    .intro-container{
        width: 100%;
        padding: 2rem;
    }

    .intro-title{
        font-size: small;
    }

    .intro-text{
        font-size: 2rem;
    }

    .intro-text-quote{
        max-width: 100%;
        font-size: medium;
    }

    .container-intro-buttons{
        flex-direction: column;
    }

    .intro-button{
        width: 100%;
        text-align: center;
    }

    .container-quem-somos{
        padding: 3rem 2rem;
    }

    .quem-somos-text{
        font-size: large;
    }

    .container-solucoes{
        padding: 3rem 2rem 0 2rem;
    }

    .solucoes-article{
        max-width: 100%;
    }

    .solucoes-frase-primaria{
        font-size: 2rem;
    }

    .solucao-card{
        width: 100%;
    }

    .solicite-proposta-button{
        width: 100%;
    }

    .container-contato{
        padding: 3rem 2rem 0 2rem;
    }

    .contato-article-titulo{
        font-size: 2rem;
    }

    #contato-form{
        padding: 1.5rem;
        width: 100%;
        margin: 0;
    }

    .contato-form-row{
        flex-direction: column;
        gap: 0;
    }
}

@media screen and (max-width: 480px) {
    .header{
        flex-direction: column;
        gap: 1rem;
        padding: 1rem 0;
    }

    .logo{
        width: 120px;
        padding-left: 0;
    }

    .nav{
        padding: 0;
        flex-wrap: wrap;
        justify-content: center;
    }

    .nav-links{
        font-size: small;
    }

    main{
        padding-top: 8rem;
    }

    .intro-container{
        padding: 1.5rem;
    }

    .intro-text{
        font-size: 1.5rem;
    }

    .intro-button{
        font-size: medium;
        padding: 0.8rem 1rem;
    }

    .container-quem-somos{
        padding: 2rem 1.5rem;
    }

    .quem-somos-title{
        font-size: large;
        padding-bottom: 1rem;
    }

    .quem-somos-text{
        font-size: medium;
    }

    .container-solucoes{
        padding: 2rem 1.5rem 0 1.5rem;
    }

    .solucoes-title{
        font-size: large;
    }

    .solucoes-frase-primaria{
        font-size: 1.5rem;
    }

    .solucoes-frase-secundaria{
        font-size: medium;
    }

    .solucao-card{
        padding: 1.5rem 1rem;
    }

    .solucao-card-titulo{
        font-size: large;
    }

    .solucao-card-conteudo{
        font-size: small;
    }

    .solicite-proposta-button{
        font-size: small;
    }

    .container-contato{
        padding: 2rem 1.5rem 0 1.5rem;
    }

    .contato-titulo{
        font-size: large;
    }

    .contato-article-titulo{
        font-size: 1.5rem;
    }

    .contato-article-texto{
        font-size: medium;
    }

    #contato-form{
        padding: 1rem;
        gap: 1.5rem;
    }

    .form-label{
        font-size: medium;
    }

    input{
        padding: 12px 14px;
        font-size: 14px;
    }

    #submit-form-button{
        font-size: medium;
    }

    footer{
        padding: 2rem 1.5rem 1.5rem 1.5rem;
        margin-top: 4rem;
    }

    .footer-social-media-icon{
        width: 45px;
        padding: 10px;
    }

    .copyright{
        font-size: small;
        padding-top: 2rem;
    }
}