/* style.css */

/* --- GERAL --- */

body {
    font-family: 'Open Sans', 'Inter', sans-serif;
    font-size: 16px;
    line-height: 1.6;
    color: #4A5568;
    /* Cinza escuro para texto principal */
    background-color: #FFFFFF;
    /* Fundo branco */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

a {
    text-decoration: none;
    transition: color 0.2s ease;
    color: #00A9E0;
    /* Ciano vibrante para links */
}

a:hover {
    color: #0077A0;
    /* Tom mais escuro do ciano para hover */
}

/* --- Cores da Paleta (Variáveis CSS) --- */
:root {
    --cor-primaria-escura: #0A1931;
    /* Azul escuro/profundo */
    --cor-primaria-ciano: #00A9E0;
    /* Ciano vibrante */
    --cor-secundaria-cinza-fundo: #F0F2F5;
    /* Cinza para fundos claros */
    --cor-texto-principal: #4A5568;
    /* Cinza para texto principal */
    --cor-texto-secundario: #A0AEC0;
    /* Cinza para texto secundário */
    --cor-branco: #FFFFFF;
    --cor-borda: #E2E8F0;
    /* Cinza claro para bordas */
    --cor-sombra: rgba(0, 0, 0, 0.05);
    /* Sombra mais sutil */
    --cor-sombra-hover: rgba(0, 0, 0, 0.1);
    --cor-sucesso: #48BB78;
    /* Verde para sucesso */
    --cor-alerta: #FF8C00;
    /* Laranja para alertas/destaques */

    /* Fontes */
    --fonte-titulos: 'Montserrat', sans-serif;
    --fonte-corpo: 'Open Sans', sans-serif;
}

/* --- NAVBAR --- */

.navbar {
    box-shadow: 0 2px 4px var(--cor-sombra);
    padding-top: 0.75rem;
    /* Ajuste no padding */
    padding-bottom: 0.75rem;
    /* Ajuste no padding */
    background-color: var(--cor-branco);
    /* Fundo branco para a navbar */
}

.navbar-brand img {
    transition: transform 0.2s ease;
}

.navbar-brand:hover img {
    transform: scale(1.05);
}

.navbar-nav .nav-link {
    color: var(--cor-texto-principal);
    margin: 0 1rem;
    /* Ajuste na margem */
    font-family: var(--fonte-titulos);
    /* Fonte de títulos para links da navbar */
    font-weight: 600;
    /* Peso da fonte */
    text-transform: uppercase;
    font-size: 0.9rem;
    /* Tamanho da fonte ligeiramente menor */
}

.navbar-nav .nav-link:hover,
.navbar-nav .nav-link.active {
    /* Estilo para link ativo */
    color: var(--cor-primaria-ciano);
}

/* --- HERO SECTION --- */

.hero-section {
    padding: 8rem 0;
    /* Aumentar padding vertical */
    background-color: var(--cor-primaria-escura);
    /* Fundo azul escuro */
    color: var(--cor-branco);
    /* Texto branco para contraste */
    position: relative;
    /* Para pseudo-elementos ou sobreposições futuras */
    overflow: hidden;
    /* Para controlar elementos gráficos */
}

.hero-section::before {
    /* Pseudo-elemento para um toque de design */
    content: '';
    position: absolute;
    top: -50%;
    left: -20%;
    width: 100%;
    height: 150%;
    background: linear-gradient(45deg, rgba(0, 169, 224, 0.1), transparent);
    transform: rotate(-15deg);
    z-index: 0;
    opacity: 0.7;
}


.hero-section .container {
    position: relative;
    /* Garante que o conteúdo fique acima do pseudo-elemento */
    z-index: 1;
}

.display-4 {
    /* Estilo para o título principal da hero */
    font-family: var(--fonte-titulos);
    font-weight: 700;
    font-size: 3.5rem;
    /* Aumentar tamanho */
    margin-bottom: 1.5rem;
    color: var(--cor-branco);
    line-height: 1.2;
}

.lead {
    /* Estilo para o parágrafo lead geral */
    font-family: var(--fonte-corpo);
    font-size: 1.15rem;
    /* Leve ajuste */
    color: var(--cor-texto-principal);
    /* Cor padrão para lead fora da hero */
    margin-bottom: 1.5rem;
    /* Ajuste de margem */
}

.hero-section .lead {
    /* Estilo específico para o lead na hero section */
    font-size: 1.35rem;
    /* Aumentar tamanho */
    color: var(--cor-texto-secundario);
    /* Cinza claro para contraste no fundo escuro */
    margin-bottom: 2.5rem;
    /* Aumentar margem inferior */
    max-width: 700px;
    /* Limitar largura para melhor leitura */
    margin-left: auto;
    margin-right: auto;
}

.btn-primary {
    background-color: var(--cor-primaria-ciano);
    border-color: var(--cor-primaria-ciano);
    padding: 0.85rem 2rem;
    /* Aumentar padding */
    font-family: var(--fonte-titulos);
    font-weight: 600;
    font-size: 1rem;
    border-radius: 50px;
    /* Botões mais arredondados */
    transition: background-color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
    color: var(--cor-branco);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.btn-primary:hover {
    background-color: #0077A0;
    /* Tom mais escuro do ciano */
    border-color: #0077A0;
    color: var(--cor-branco);
    transform: translateY(-2px);
    /* Pequeno efeito de elevação */
}

/* --- CARDS --- */

.card {
    border-radius: 10px;
    /* Bordas ligeiramente menos arredondadas que botões */
    overflow: hidden;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    border: 1px solid var(--cor-borda);
    /* Borda sutil */
    background-color: var(--cor-branco);
}

.card-img-top-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--cor-secundaria-cinza-fundo);
    height: 180px;
    /* Altura fixa para consistência */
    padding: 1.5rem;
    /* Padding interno */
}

.card-img-top {
    max-height: 100%;
    /* Garante que a imagem caiba */
    max-width: 90%;
    /* Limita a largura da imagem dentro do wrapper */
    object-fit: contain;
    /* border-radius: 10px 10px 0 0; */
    /* Removido pois o wrapper já faz o corte visual */
}

.card-body {
    padding: 1.75rem;
    /* Aumentar padding */
}

.card-title {
    font-family: var(--fonte-titulos);
    font-size: 1.3rem;
    /* Ajuste no tamanho */
    font-weight: 600;
    margin-bottom: 0.75rem;
    color: var(--cor-texto-principal);
    display: flex;
    align-items: center;
}

.card-title .badge {
    margin-left: 8px;
    font-size: 0.7rem;
    font-weight: 600;
    /* Badge mais destacado */
    vertical-align: middle;
    padding: 0.3em 0.6em;
    /* Padding do badge */
}

.card-text {
    font-family: var(--fonte-corpo);
    color: var(--cor-texto-secundario);
    /* Texto secundário para descrição */
    margin-bottom: 1.25rem;
    font-size: 0.95rem;
    /* Ajuste no tamanho */
    line-height: 1.7;
}

.btn-link {
    color: var(--cor-primaria-ciano);
    font-family: var(--fonte-titulos);
    font-weight: 600;
    padding: 0;
    text-decoration: none;
    font-size: 0.9rem;
}

.btn-link i {
    margin-left: 5px;
    transition: transform 0.2s ease;
}

.btn-link:hover {
    color: #0077A0;
    text-decoration: none;
    /* Remover sublinhado, o ícone já indica ação */
}

.btn-link:hover i {
    transform: translateX(3px);
    /* Efeito no ícone */
}

.card:hover {
    transform: translateY(-8px);
    /* Efeito de elevação mais pronunciado */
    box-shadow: 0 10px 20px var(--cor-sombra-hover);
    /* Sombra mais destacada */
}

/* --- Badges (cores do logo) --- */
.badge {
    &.bg-secondary {
        /* Será usado para tags como "IA" */
        background-color: var(--cor-primaria-ciano) !important;
        /* Ciano vibrante */
        color: var(--cor-branco) !important;
    }

    &.bg-primary {
        /* Se usado, também terá a cor primária */
        background-color: var(--cor-primaria-ciano) !important;
        color: var(--cor-branco) !important;
    }
}

/* --- SEÇÕES GERAIS --- */
section {
    padding-top: 5rem;
    padding-bottom: 5rem;
}

section h2.text-center {
    /* Título principal de cada seção */
    font-family: var(--fonte-titulos);
    font-weight: 700;
    font-size: 2.5rem;
    /* Tamanho do título da seção */
    margin-bottom: 1rem;
    color: var(--cor-texto-principal);
}

section p.lead.text-center {
    /* Subtítulo/descrição de cada seção */
    font-family: var(--fonte-corpo);
    font-size: 1.1rem;
    color: var(--cor-texto-secundario);
    margin-bottom: 3rem;
    /* Maior espaçamento abaixo do subtítulo */
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
}


/* --- SERVIÇOS --- */

.bg-light {
    /* Fundo para seções como Serviços */
    background-color: var(--cor-secundaria-cinza-fundo) !important;
}

#servicos .d-flex.align-items-center {
    /* Wrapper de cada item de serviço */
    padding: 1.5rem;
    background-color: var(--cor-branco);
    border-radius: 8px;
    box-shadow: 0 4px 12px var(--cor-sombra);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    height: 100%;
    /* Para garantir alturas iguais se em colunas */
}

#servicos .d-flex.align-items-center:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 16px var(--cor-sombra-hover);
}

#servicos .fas,
#servicos .far,
#servicos .fab {
    /* Ícones dos serviços */
    font-size: 2rem;
    /* Tamanho do ícone */
    color: var(--cor-primaria-ciano);
    /* Cor ciano para ícones */
    width: 60px;
    /* Largura fixa para alinhamento */
    text-align: center;
}

#servicos h5 {
    font-family: var(--fonte-titulos);
    font-weight: 600;
    font-size: 1.2rem;
    color: var(--cor-texto-principal);
    margin-bottom: 0.5rem;
}

#servicos p {
    font-family: var(--fonte-corpo);
    color: var(--cor-texto-secundario);
    font-size: 0.9rem;
    line-height: 1.6;
}


/* --- CONSULTORIA EM IA (Cards) --- */
#ia-consultoria .card {
    background-color: var(--cor-branco);
    border-top: 3px solid var(--cor-primaria-ciano);
    /* Borda superior ciano */
    padding-top: 1.5rem;
    /* Ajustar padding superior para compensar a borda se necessário */
}

#ia-consultoria .card-title {
    justify-content: center;
    /* Centralizar título se não houver badge */
}

/* --- SOBRE --- */

#sobre .lead {
    font-family: var(--fonte-corpo);
    font-size: 1.1rem;
    color: var(--cor-texto-secundario);
    /* Ajuste na cor do lead */
}

#sobre img {
    border-radius: 10px;
    /* Consistência nas bordas */
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1);
    /* Sombra sutil na imagem */
}

.btn-outline-secondary {
    /* Botão secundário, ex: "Fale Conosco" na seção Sobre */
    font-family: var(--fonte-titulos);
    color: var(--cor-primaria-ciano);
    border-color: var(--cor-primaria-ciano);
    padding: 0.75rem 1.75rem;
    border-radius: 50px;
    font-weight: 600;
    transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.btn-outline-secondary:hover {
    background-color: var(--cor-primaria-ciano);
    border-color: var(--cor-primaria-ciano);
    color: var(--cor-branco);
    transform: translateY(-2px);
}


/* --- CLIENTES E PARCEIROS (Marquee) --- */
#clientes-parceiros {
    background-color: var(--cor-branco);
    /* Fundo branco para esta seção */
}

#clientes-parceiros h2 {
    margin-bottom: 1.5rem;
    /* Ajuste na margem */
}

#clientes-parceiros p.lead {
    margin-bottom: 4rem;
    /* Mais espaço antes do carrossel */
}

.marquee {
    overflow: hidden;
    position: relative;
    padding: 1rem 0;
    /* Espaçamento interno */
}

.marquee-content {
    display: flex;
    animation: marquee 30s linear infinite;
    /* Aumentar duração para movimento mais suave */
    gap: 4rem;
    /* Espaço entre logos */
}

.marquee-content img {
    max-height: 60px;
    /* Altura máxima para as logos */
    width: auto;
    /* Largura automática para manter proporção */
    filter: grayscale(100%);
    /* Logos em escala de cinza */
    opacity: 0.7;
    transition: filter 0.3s ease, opacity 0.3s ease;
}

.marquee-content img:hover {
    filter: grayscale(0%);
    /* Colorido no hover */
    opacity: 1;
}

@keyframes marquee {
    0% {
        transform: translateX(0%);
    }

    100% {
        transform: translateX(-100%);
        /* Garante que o conteúdo saia completamente */
    }
}


/* --- CONTATO --- */

#contato {
    background-color: var(--cor-secundaria-cinza-fundo);
    /* Fundo cinza claro */
}

.form-label {
    font-family: var(--fonte-corpo);
    font-weight: 600;
    /* Labels mais destacados */
    color: var(--cor-texto-principal);
    font-size: 0.9rem;
    margin-bottom: 0.3rem;
}

.form-control {
    border-radius: 8px;
    padding: 0.85rem 1rem;
    /* Ajuste no padding */
    border: 1px solid var(--cor-borda);
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    font-family: var(--fonte-corpo);
    font-size: 1rem;
}

.form-control:focus {
    border-color: var(--cor-primaria-ciano);
    box-shadow: 0 0 0 0.2rem rgba(0, 169, 224, 0.25);
    outline: none;
}

.invalid-feedback {
    color: #e53e3e;
    /* Tom de vermelho para erros */
    font-family: var(--fonte-corpo);
    font-size: 0.85rem;
}

#contato h4 {
    font-family: var(--fonte-titulos);
    font-weight: 600;
    color: var(--cor-texto-principal);
    margin-bottom: 1rem;
}

#contato .list-unstyled li {
    font-family: var(--fonte-corpo);
    color: var(--cor-texto-principal);
    margin-bottom: 0.75rem;
    /* Espaçamento entre itens da lista */
    font-size: 1rem;
}

#contato .list-unstyled li i {
    color: var(--cor-primaria-ciano);
    /* Ícones no contato com cor primária */
    margin-right: 0.75rem;
    /* Espaço maior para ícones */
    width: 20px;
    /* Largura fixa para alinhar */
}

#contato .list-unstyled li a {
    color: var(--cor-texto-principal);
}

#contato .list-unstyled li a:hover {
    color: var(--cor-primaria-ciano);
}

#contato .btn-outline-secondary {
    /* Botões de redes sociais */
    border-radius: 50%;
    /* Ícones redondos */
    width: 45px;
    height: 45px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0 0.25rem;
    /* Espaçamento entre botões */
}

#contato .btn-outline-secondary i {
    font-size: 1.2rem;
    /* Tamanho dos ícones sociais */
    margin-left: 0;
    /* Reset de margem herdada */
}

/* --- BOTÃO FLUTUANTE DO WHATSAPP --- */
.whatsapp-float {
    position: fixed;
    width: 55px;
    /* Diminuir um pouco */
    height: 55px;
    bottom: 30px;
    /* Ajustar posição */
    right: 30px;
    background-color: #25D366;
    /* Cor oficial do WhatsApp */
    color: #FFF;
    border-radius: 50px;
    text-align: center;
    font-size: 28px;
    /* Ajuste no tamanho do ícone */
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
    /* Sombra mais suave */
    z-index: 1000;
    display: flex;
    /* Para centralizar o ícone */
    align-items: center;
    justify-content: center;
    transition: transform 0.2s ease;
}

.whatsapp-float:hover {
    transform: scale(1.1);
    /* Efeito de zoom no hover */
}

/* .whatsapp-icon { removido - centralizado com flex } */


/* --- FOOTER --- */
footer {
    background-color: var(--cor-primaria-escura);
    /* Fundo escuro para o rodapé */
    color: var(--cor-texto-secundario);
    /* Texto mais claro no fundo escuro */
    padding-top: 3rem;
    padding-bottom: 1rem;
    /* Padding inferior menor */
    font-family: var(--fonte-corpo);
}

footer h5 {
    font-family: var(--fonte-titulos);
    font-weight: 600;
    color: var(--cor-branco);
    /* Títulos do rodapé em branco */
    margin-bottom: 1rem;
    font-size: 1.1rem;
}

footer p,
footer .list-unstyled li {
    font-size: 0.9rem;
    margin-bottom: 0.5rem;
}

footer a {
    color: var(--cor-texto-secundario);
    transition: color 0.2s ease;
}

footer a:hover {
    color: var(--cor-primaria-ciano);
    /* Links com hover ciano */
}

footer .btn-outline-secondary {
    /* Botões de redes sociais no footer */
    color: var(--cor-texto-secundario);
    border-color: var(--cor-texto-secundario);
    /* Borda na cor do texto */
}

footer .btn-outline-secondary:hover {
    background-color: var(--cor-primaria-ciano);
    border-color: var(--cor-primaria-ciano);
    color: var(--cor-branco);
}

footer .text-center p {
    /* Texto de copyright */
    font-size: 0.85rem;
    margin-top: 2rem;
    /* Espaço acima do copyright */
    color: var(--cor-texto-secundario);
    opacity: 0.8;
    /* Leve transparência */
}


/* --- RESPONSIVIDADE --- */

@media (max-width: 992px) {

    /* Ajustes para tablets e telas menores */
    .hero-section {
        padding: 6rem 0;
    }

    .display-4 {
        font-size: 2.8rem;
    }

    .hero-section .lead {
        font-size: 1.2rem;
    }

    section h2.text-center {
        font-size: 2rem;
    }

    section p.lead.text-center {
        font-size: 1rem;
    }

    .card-img-top-wrapper {
        height: 160px;
    }

    .marquee-content {
        animation-duration: 20s;
        /* Animação mais rápida em telas menores */
        gap: 3rem;
    }

    .marquee-content img {
        max-height: 50px;
    }
}


@media (max-width: 768px) {
    .hero-section {
        padding: 5rem 0;
    }

    .display-4 {
        font-size: 2.2rem;
        /* Tamanho do título da hero em mobile */
    }

    .hero-section .lead {
        font-size: 1.1rem;
        /* Tamanho do lead da hero em mobile */
    }

    .navbar-nav .nav-link {
        margin: 0.5rem 0;
        /* Links da navbar em coluna */
        text-align: center;
    }

    #servicos .col-md-6,
    #ia-consultoria .col-md-4 {
        margin-bottom: 1.5rem;
        /* Espaçamento entre cards em mobile */
    }

    #contato .col-md-6 {
        margin-bottom: 2rem;
        /* Espaçamento na seção de contato */
    }

    footer .col-md-4 {
        margin-bottom: 2rem;
        /* Colunas do rodapé empilhadas */
        text-align: center;
        /* Centralizar texto no rodapé mobile */
    }

    footer .col-md-4:last-child {
        margin-bottom: 0;
    }

    footer .mt-3 {
        /* Redes sociais no footer */
        justify-content: center;
    }
}

@media (max-width: 576px) {
    .display-4 {
        font-size: 1.8rem;
    }

    .hero-section .lead {
        font-size: 1rem;
    }

    section h2.text-center {
        font-size: 1.8rem;
    }

    section p.lead.text-center {
        font-size: 0.9rem;
    }

    .btn-primary,
    .btn-outline-secondary {
        padding: 0.6rem 1.2rem;
        /* Botões menores */
        font-size: 0.9rem;
    }

    .card-title {
        font-size: 1.1rem;
    }

    .card-text {
        font-size: 0.9rem;
    }

    .whatsapp-float {
        width: 50px;
        height: 50px;
        font-size: 24px;
        bottom: 20px;
        right: 20px;
    }
}

/* Adicionar a importação das fontes no início do arquivo, se ainda não estiver lá */
/* @import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;600;700&family=Open+Sans:wght@400;600&display=swap'); */
/* Comentei a linha acima pois as fontes já são importadas no HTML */

/* Adicionado para a seção de Soluções */
#solucoes .card .card-body {
    display: flex;
    flex-direction: column;
    height: 100%;
    /* Garante que o card-body ocupe toda a altura do card h-100 */
}

#solucoes .card .card-text {
    flex-grow: 1;
    /* Faz o texto ocupar o espaço disponível, empurrando o link para baixo */
}

/* Fim da adição para a seção de Soluções */

.d-none {
    display: none;
}