/* -------------------------------------------------------------------
    ESTILOS GLOBAIS (Aplicam-se a todos os dispositivos)
    ------------------------------------------------------------------- */
body {
    padding: 0;
    margin: 0;
    font-family: Arial, sans-serif;
}

a {
    text-decoration: none;
    color: white;
    font-family: 'Montserrat', sans-serif;
}
a:hover{
    color: rgb(179, 177, 177);
}

li {
    list-style: none;
}




/* -------------------------------------------------------------------
    Estilos para o css base (celular)
    ------------------------------------------------------------------- */
.header {
    background-color: transparent;
    padding: 0;
    margin: 0;
    width: 100%;
    box-sizing: border-box;
    position: fixed; /* Fixa o elemento na viewport */
    top: 0;          /* Garante que ele fique no topo da página */
    z-index: 1000;  
    transition: background-color 0.3s ease-in-out;
}

/* Nova classe que será adicionada/removida pelo JavaScript */
.header.scrolled {
    background-color: black; /* Cor opaca quando a página é rolada */
    /* Você pode ajustar a cor (ex: #333, #000) conforme o design */
}

.header.scrolled a {
    color: white; /* Ou outra cor para os links quando o header for opaco */
}

/* Contêiner principal do cabeçalho */
.div-header-e-img {
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column; /* Em mobile, logo/botão e menu ficam empilhados */
    align-items: center; /* Centraliza horizontalmente */
    width: 100%;
    box-sizing: border-box;
}

.button-img{
    display: flex;
    width: 100%;
    justify-content: space-between; /* Espalha os itens: logo à esquerda, botão à direita */
    align-items: center; /* Centraliza verticalmente o logo e o botão */
    padding: 40px 20px; /* Adiciona um padding nas laterais */
    box-sizing: border-box;
}

.button-img img{
    width: 250px;
}

/*Botão hamburgão*/
.menu-toggle {
    background: none;
    border: none;
    color: white;
    font-size: 2em;
    cursor: pointer;
    z-index: 1000;
    padding: 5px;
}
.menu-toggle i {
    vertical-align: middle;
}


/* Contêiner da navegação */
.div-header-nav {
    width: 100%;
    padding: 20px 0;
    /* Adicionado para esconder o menu por padrão em telas pequenas */
    display: none;
    transition: all 0.3s ease-in-out; /* Para uma transição suave */
}

/* Classe JavaScript para mostrar o menu */
.div-header-nav.active {
    display: block; /* Mostra o menu quando a classe 'active' é adicionada */
}


.header-ul {
    display: flex;
    flex-direction: column; /* Itens da lista em coluna para mobile */
    gap: 30px;
    padding: 0;
    padding-bottom: 20px;
    margin: 0 auto;
    width: fit-content;
}

/* Cada item da lista */
.header-ul li {
    text-align: center;
    font-size: large;
}

/* --- Banner --- */
.banner { /* Alterado de #banner para .banner para corresponder ao seu HTML */
    width: 100%;
    height: 100vh; /* Usa 100% da altura da viewport. Ajuste para um valor fixo (ex: 500px) se preferir um banner menor */
    overflow: hidden; /* Garante que nada transborde */
    display: flex;
    justify-content: center; /* Centraliza o conteúdo horizontalmente */
    align-items: center; /* Centraliza o conteúdo verticalmente */
    position: relative; /* Essencial para posicionar o vídeo e o conteúdo */
    background-color: black; /* Cor de fundo caso o vídeo demore a carregar */
}


.banner video { /* Alterado de #banner video para .banner video */
    position: absolute; /* Permite que o vídeo fique por trás e ocupe todo o espaço */
    top: 0;
    left: 0;
    object-fit: cover; /* Faz o vídeo cobrir todo o contêiner, cortando o que for necessário */
    width: 100%;
    height: 100%;
    z-index: 0; /* Garante que o vídeo esteja atrás do conteúdo */
}

/* Estilos para o conteúdo sobreposto ao vídeo */
.banner .content { /* Seleciona o .content dentro do .banner */
    position: relative; /* Coloca o conteúdo acima do vídeo */
    z-index: 1; /* Garante que o conteúdo esteja acima do vídeo */
    color: white; /* Cor do texto para ser visível sobre o vídeo */
    text-align: center; /* Centraliza o texto */
    transform: translateY(-10%)
}

.banner .content p {
    font-size: 2.5em; /* Tamanho do título principal */
    margin-bottom: 10px;
    font-weight: bold;
    font-family: 'Inter', sans-serif;
}

.banner .content span {
    font-size: 1.2em; /* Tamanho do subtítulo */
    display: block; /* Garante que o span ocupe sua própria linha */
    font-family: 'Montserrat', sans-serif;
    font-weight: medium;
}

/* Section - conteudo */

.section-conteudo{
    background-color: whitesmoke;
    display: flex;
    flex-direction: column;
    padding: 50px 0;
    margin: 0;
    width: 100%;
    height: auto;
    justify-content: center;
    align-items: center;
    img{
        width: 90%;
        border-radius: 10px;
        box-shadow: 10px 10px 25px 0px rgba(0,0,0,0.75);
        -webkit-box-shadow: 10px 10px 15px 0px rgba(0,0,0,0.75);
        -moz-box-shadow: 10px 10px 15px 0px rgba(0,0,0,0.75);
    }
    .conteudo{
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        padding: 20px 0;
        width: 80%;
        .conteudo-titulo{
            text-align: center ;
            font-family: 'Inter', sans-serif;
            font-size: large;
            font-weight: bold;
        }
        .conteudo-text{
            margin: 0;
            span{
                text-align: justify;
                font-family: 'Montserrat', sans-serif;
                font-weight: medium;
            }
            .conteudo-detalhes{
                display: flex;
                .detalhes{
                    padding: 15px 0;
                    p{
                        padding: 0;
                        margin: 5px;
                        font-family: 'Inter', sans-serif;
                        font-size: 1.5em;
                        font-weight: bold;
                    }
                }
            }
        }
    }
}


/* Section - Serviços */

.section-servicos{
    background-color: black;
    color: white;
    display: flex;
    flex-direction: column;
    padding: 30px 0;
    margin: 0;
    width: 100%;
    height: auto;
    justify-content: center;
    align-items: center;

    .titulo-servicos{
        padding: 40px 0;
        p{
            font-family: 'Inter', sans-serif;
            font-size: 1.5em;
            font-weight: bold;
            text-align: center;
            margin: 0;
        }
        span{
            font-family: 'Montserrat', sans-serif;
            font-size: small;
        }   
    }

    .cards{
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        .servicos-cards{
            display: flex;
            flex-direction: column;
            width: 85%;
            justify-content: center;
            align-items: center;
            margin-bottom: 50px;
            background-color: white;
            color: black;
            gap: 10px;
            border-radius: 10px;

            p{
                font-family: 'Inter', sans-serif;
                font-size: 15px;
                margin: 0;
                font-weight: bold;
                padding-top: 10px;
            }
            span{
                font-family: 'Montserrat', sans-serif;
                text-align: justify;
                font-size: small;
                padding: 5%;
            }
            img{
            width: 100%; 
            height: 30%;
            border-radius: 10px;
            }
        }
    }
}

/* Section - Tecnologias */

.section-tecnologias{
    display: flex;
    flex-direction: column;
    padding: 30px 0;
    margin: 0;
    width: 100%;
    height: auto;
    align-items: center;
    justify-content: center;

    .titulo-tecnologias{
        padding: 40px 0;
        p{
            font-weight: bold;
            font-family: 'Inter', sans-serif;
            font-size: 1.5em;
            text-align: center;
            margin: 0;
        }
        span{
            display: block; /* força comportamento de bloco */
            text-align: center;
            font-family: 'Montserrat', sans-serif;
            font-size: small;
        }   
    }
    .cards{
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        .tecnologias-cards{
            display: flex;
            flex-direction: column;
            width: 85%;
            justify-content: center;
            align-items: center;
            margin-bottom: 50px;
            background-color: lightgray;
            color: black;
            border-radius: 10px;

            img{
                width: 100%;
                padding-bottom: 10px;
                margin: 0;
            }
            p{
                font-family: 'Inter', sans-serif;
                font-weight: bold;
                margin: 0;
            }
            span{
                font-family: 'Montserrat', sans-serif;
                font-size: small;
                text-align: justify;
                padding:10px;
            }
        }
    }
}

/* Section - Contato */

.section-contato{
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;    
    text-align: center;
    width: 100%;
    padding: 50px 0;
    gap: 40px;
    background-color: black;
    color: white;

    .haml-tech-ltda{
        display: flex;
        flex-direction: column;
        width: 100%;
        padding: 20px 0 0 0;
        
        p{
            margin: 0;
            font-family: 'Inter', sans-serif;
            font-weight: bold;
            font-size: 1.5em;
            padding: 10px 0;
        }
        span{
            margin: 0;
            padding: 0;
            font-family: 'Montserrat', sans-serif;
            font-size: small;
        }
        .social-media{
            display: flex;
            justify-content: center;
            align-items: center;
            gap: 15px;
            width: 100%;
            padding: 10px 0;
            i:hover{
                color: rgb(255, 166, 0);
            }
            a{
                text-decoration: none;
                color: white;
            }
        }
    }

    .inovacao{
        margin: 0;
        padding: 0;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: 5px;

        #inovacao{
            font-family: 'Inter', sans-serif;
            font-size: large;
            font-weight: bold;
            padding-bottom: 10px;
        }
        span{
            font-family: 'Montserrat', sans-serif;
            font-size: small;
        }
    }
    .div-form-contato{
        display: flex;
        flex-direction: column;
        width: 100%;
        .form-contato{
            width: 100%;
            padding: 0;
            margin: 0;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            gap: 15px;
            
            span{
                font-family: 'Inter', sans-serif;
                font-size: large;
                font-weight: bold;
                padding: 10px 0;
            }
            .input-form{
                font-family: 'Montserrat', sans-serif;
                width: 70%;
                border-radius: 5px;
                height: 40px;
            }
            .form-buttons{
                display: flex;
                gap: 15px;
                font-family: 'Montserrat', sans-serif;
            }
            .button-enviar{
                background-color: white;
                color: black;
                border-radius:5px ;
                padding: 10px 15px;
                border: 0;
            }
            .button-enviar:hover{
                background-color: gray;
            }
            .button-limpar{
                background-color: black;
                color: white;
                border-radius:5px ;
                padding: 10px 15px;
                border: solid 0.1px;
            }
        }
    }
}

/* -------------------------------------------------------------------
    Estilos para o css base (notebook)
    ------------------------------------------------------------------- */

@media only screen and (min-width: 1366px) {

    /* Section - Home */

    .div-header-e-img {
        flex-direction: row;
        justify-content: space-between;
        padding: 20px 50px;
    }

    .button-img {
        padding: 10px 0;
        width: auto;
    }

    .button-img img {
        width: 300px;
    }

    .menu-toggle {
        display: none; /* Oculta botão hambúrguer em desktop */
    }

    .div-header-nav {
        display: block !important;
        padding: 0;
        width: auto;
    }

    .header-ul {
        flex-direction: row;
        gap: 40px;
        padding-bottom: 0;
    }

    .header-ul li {
        font-size: 1em;
    }

    .banner .content p {
        font-size: 2.5em;
    }

    .banner .content span {
        font-size: 1em;
    }

    /* Section - conteúdo */

    .section-conteudo{
        scroll-margin-top: 100px; /* ajuste para altura do seu header */
        display: flex;
        flex-direction: column;
        width: 100%;
        height: auto;
        padding: 50px 0;

        img{
            width: 70%;
        }
        
        .conteudo{
            padding-bottom: 50px;
            display: flex;
            flex-direction: row;
            width: 70%;
            justify-content: center;

            .conteudo-titulo{
                align-self: baseline;
                font-size: 1.5em;
                font-weight: bold;
                width: 50%;
            }
            .conteudo-text{
                width: 100%;
                display: flex;
                flex-direction: column;  
                gap: 10px;          
                span{
                    margin: 0;
                    padding: 0;
                    width: 100%;
                    text-align: left;
                }
                
                .conteudo-detalhes{
                    padding: 0;
                    margin: 0;
                    display: flex;
                    gap: 20px;

                    .detalhes p{
                        font-size: 1.5em;
                        font-weight: bold;
                    }
                }
            }
        }
    }

    /* section - SERVICOS */

    .section-servicos{
        scroll-margin-top: 100px;
        display: flex;
        flex-direction: column;
        padding: 50px 0;
        height: auto;

        .titulo-servicos{
            padding: 0 0 50px 0;
            p{
                font-size: 1.5em;
                font-weight: bold;
            }
        }
        .cards {
            display: flex;
            flex-direction: row;
            flex-wrap: wrap;           /* Permite quebra de linha */
            width: 100%;
            gap: 30px;                 /* Espaço entre os cards */
            justify-content: center;   /* Centraliza os cards */
            margin: 0 auto;
            align-items: stretch;

                .servicos-cards {
                flex: 1 1 40%;             /* Ocupa ~40% da largura disponível */
                max-width: 35%;            /* Limita para no máximo 2 por linha */
                background-color: white;
                border-radius: 10px;
                margin: 0;
                display: flex;
                flex-direction: column;
                align-items: center;
                justify-content: space-between;
                gap: 0;
                    
                p{
                    padding: 10px;
                    margin: 0;
                }
                span{
                    padding: 0 30px;
                    margin: 0;
                    align-self: baseline;
                    height: 100px;
                }

                img{
                    padding-top: 20px;
                    width: 100%;
                    height: auto;
                    object-fit: cover;
                    margin: 0;
                    padding: 0;
                }
            }
        }
    }

        /* section - Tecnologian */

    .section-tecnologias{
        scroll-margin-top: 100px;
        display: flex;
        flex-direction: column;
        padding: 50px 0;
        height: auto;

        .titulo-tecnologias{
            padding: 0 0 50px 0;
            p{
                font-size: 1.5em;
                font-weight: bold;
            }
        }
        .cards {
            display: flex;
            flex-direction: row;
            flex-wrap: wrap;           /* Permite quebra de linha */
            width: 100%;
            gap: 30px;                 /* Espaço entre os cards */
            justify-content: center;   /* Centraliza os cards */
            margin: 0 auto;
            align-items: stretch;

                .tecnologias-cards {
                flex: 1 1 40%;             /* Ocupa ~40% da largura disponível */
                max-width: 35%;            /* Limita para no máximo 2 por linha */
                background-color: lightgray;
                border-radius: 10px;
                margin: 0;
                display: flex;
                flex-direction: column;
                align-items: center;
                justify-content: space-between;
                height: 100%;
                    
                p{
                    padding-top: 10px;
                    margin: 0;
                }
                span{
                    padding: 10px 30px;
                    margin: 0;
                    align-self: baseline;
                    
                }

                img{
                    padding-top: 20px;
                    width: 100%;
                    height: 250px;
                    object-fit: cover;
                    margin: 0;
                    padding: 0;
                }
            }
        }
    }

    /* section - Contato */

    .section-contato{
        display: flex;
        flex-direction: row;
        justify-content: center;
        align-items: baseline;
        padding: 120px;

        .haml-tech-ltda{
            width: 33%;
            display: flex;
            flex-direction: column;
            p{
                margin: 0;
                padding: 20px 0;
                align-self: start;
            }
            span{
                margin: 0;
                padding: 10px 0;
                align-self: start;
            }
            .social-media{
                margin: 0;
                padding: 0;
                justify-content: start;
                
            }
        } 
        .inovacao{
            span{
                align-self: flex-start;
            }
        }
        .div-form-contato{
            width: 33%;
            .form-contato{
                width: 100%;
                
            }
        }
    }
}

@media only screen and (min-width: 1600px) {
    
    .div-header-e-img {
        padding: 30px 100px;
    }

    .button-img img {
        width: 350px;
    }

    .header-ul {
        gap: 60px;
    }

    .header-ul li {
        font-size: 1.3em;
    }

    .banner .content p {
        font-size: 3em;
    }

    .banner .content span {
        font-size: 1.5em;
    }

    .section-conteudo {
        padding: 100px 0;
        scroll-margin-top: 80px;
    }

    .section-conteudo img {
        width: 60%;
    }

    .section-conteudo .conteudo {
        width: 60%;
    }

    .conteudo-titulo {
        font-size: 2em;
    }

    .conteudo-detalhes p {
        font-size: 2em;
    }

    .section-servicos, .section-tecnologias{
        scroll-margin-top: 150px;
    }
    .section-servicos{
        .titulo-servicos p{
            font-size: 2em;
        }
        .titulo-servicos span{
            font-size: 1em;
        }
        
        .cards .servicos-cards p{
            font-size: large;
            padding: 20px 0;
        }
    }

    .section-tecnologias{
        .titulo-tecnologias p{
            font-size: 2em;
        }
        .titulo-tecnologias span{
            font-size: 1em;
        }

        .cards{
            .tecnologias-cards{
                height: auto;
            }
            .tecnologias-cards p{
                font-size: large;
                padding: 10px 0;
            }
        } 
    }

    .section-servicos .cards,
    .section-tecnologias .cards {
        
        gap: 40px;
    }

    .servicos-cards,
    .tecnologias-cards {
        flex: 1 1 30%;
        max-width: 28%;
    }

    .section-contato {
        padding: 150px;
        gap: 100px;
    }

    .section-contato .haml-tech-ltda,
    .section-contato .div-form-contato {
        width: 30%;
    }

}
