
/* Estilos básicos gerais */
html {
    box-sizing: border-box;
    overflow-y: scroll; 
    overflow-x: visible; 
    scroll-behavior: smooth;
}

*, *::before, *::after {
    box-sizing: inherit;
}

body {
    font-family: sans-serif;
    margin: 0;
    color: #e0e0e0;
    

    /* --- FUNDO COM GRADIENTE ANIMADO --- */
    background: linear-gradient(-45deg, #0f172a, #1a2c3d, #2a3b4e, #1e293b);
    background-size: 400% 400%; /* Tamanho grande para o gradiente poder se mover */
    animation: gradientAnimation 15s ease infinite; /* Nome da animação, duração, tipo e repetição */
} 

/* Animação para o gradiente */
@keyframes gradientAnimation {
    0% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
    100% {
        background-position: 0% 50%;
    }
}
/* ======================================================= */
/* === CABEÇALHO FINAL (COM LOGO GRANDE E BARRA NORMAL) === */
/* ======================================================= */

/* A barra azul, nossa 'âncora'. A altura dela será definida
   pelo padding e pelo menu de navegação, como era no início. */
   .site-header {
    background-color: #1a2c42;
    padding: 30px 20px; /* << O PADDING QUE VOCÊ PEDIU */
    position: relative;   /* << A 'âncora' para a logo flutuar */
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
    top: 0;
    z-index: 1000;
    position: sticky;
}

/* A logo flutuante. Ela não interfere mais com o tamanho da barra. */
.logo {
    position: absolute;
    left: 70px; /* Distância da esquerda (pode ajustar) */
    top: 50%;   /* Alinha o topo da logo com o meio da barra */
    transform: translateY(-50%); /* Puxa a logo para cima metade da sua própria altura */
    z-index: 1001; /* Garante que a logo fique por cima de tudo */
}

.logo img {
    height: 180px; /* << COLOQUE AQUI O TAMANHO QUE QUISER PARA A LOGO */
    width: auto;
    display: block;
}

/* O contentor do menu, para alinharmos o menu dentro dele */
.nav-bar-content {
    display: flex;
    justify-content: space-between; /* Alinha o menu ao centro (ou 'flex-end' para a direita) */
    align-items: center;
    height: 100%;
    max-width: 1200px;
    margin: 0 auto;
}
/* Estilo para o botão de CTA no cabeçalho */
.header-cta-button {
    background-color: #f39c12; /* Laranja de destaque */
    color: white;
    padding: 8px 18px;
    border-radius: 5px;
    text-decoration: none;
    font-weight: bold;
    white-space: nowrap;
    transition: background-color 0.3s ease;
}

.header-cta-button:hover {
    background-color: #e67e22;
}

/* O menu de navegação em si */
.main-navigation {
    margin-left: auto;
    margin-right: 200px;
}

.main-navigation ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
    gap: 30px;
}

.main-navigation ul li a {
    text-decoration: none;
    color: #ffffff;
    font-weight: 500;
    padding: 5px 0;
    position: relative;
    transition: color 0.3s ease;
    font-size: 1.1em;
}

.main-navigation ul li a:hover {
    color: #f39c12;
}

.main-navigation ul li a::after {
    content: '';
    position: absolute;
    bottom: -5px;
    left: 0;
    width: 0;
    height: 2px;
    background-color: #f39c12;
    transition: width 0.3s ease;
}

.main-navigation ul li a:hover::after,
.main-navigation ul li a.active::after {
    width: 100%;
}

.menu-toggle {
    display: none;
    font-size: 1.8em;
    background: none;
    border: none;
    color: #ffffff;
    cursor: pointer;
}

/* ================================================== */
/* === CARROSSEL HERO (VERSÃO CORRIGIDA) === */
/* ================================================== */

.hero-carousel-section {
    width: 100%;
    height: 70vh;
    min-height: 500px;
    color: white; 
}
.hero-swiper {
    width: 100%;
    height: 100%;
}
.swiper-slide {
    text-align: left; /* Alinha o texto à direita */
    background-position: center;
    background-size: cover;
    display: flex;
    justify-content: flex-start; /* Alinha o bloco de conteúdo à direita */
    align-items: center;     /* Alinha o bloco de conteúdo em baixo */
    position: relative;
}
.hero-slide-content {
    position: absolute;   /* << MUDEI AQUI */
    top: 48%;           /* << ESTA É A SUA 'ALAVANCA' VERTICAL */
    left: 6%;          /* Mantém a distância da esquerda */
    transform: translateY(-50%); /* Ajuda na centralização precisa */
    z-index: 2;
    max-width: 700px;
    padding: 20px;
    /* As margens (margin-left, margin-bottom) não são mais necessárias aqui */
}

/* --- ANIMAÇÕES DE TEXTO (A NOVIDADE ESTÁ AQUI) --- */

/* 1. Definimos a nova animação */
@keyframes slideUpAndFadeIn {
    from {
        opacity: 0;
        transform: translateY(40px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}
.hero-slide-content h1,
.hero-slide-content p,
.hero-slide-content .cta-button {
    opacity: 0; /* Começam invisíveis */
}
/* 3. Aplicamos a animação em cascata APENAS quando o slide está ativo */
.swiper-slide-active .hero-slide-content h1 {
    animation: slideUpAndFadeIn 0.6s ease-out 0.4s forwards;
}
.swiper-slide-active .hero-slide-content p {
    animation: slideUpAndFadeIn 0.6s ease-out 0.6s forwards;
}
.swiper-slide-active .hero-slide-content .cta-button {
    animation: slideUpAndFadeIn 0.6s ease-out 0.8s forwards;
}
.hero-slide-content h1 {
    font-size: 2.8em;
    margin: 0 0 20px 0;
    font-weight: 700;
    line-height: 1.2;
  
}
.hero-slide-content p {
    font-size: 1.2em;
    margin-bottom: 40px;
    line-height: 1.6;
   
}
.hero-slide-content .cta-button {
    background-color: #f39c12;
    color: white;
    padding: 15px 30px;
    text-decoration: none;
    font-size: 1.1em;
    font-weight: bold;
    border-radius: 5px;
    transition: background-color 0.3s ease;
}
.hero-slide-content .cta-button:hover {
    background-color: #e67e22;
}
.hero-slide-overlay {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    background-color: rgba(15, 23, 42, 0.65); /* Atualmente em 60% de opacidade */
}
.hero-swiper .swiper-button-next,
.hero-swiper .swiper-button-prev {
    color: #ffffff;
    --swiper-navigation-size: 22px;
}
.hero-swiper .swiper-pagination-bullet-active {
    background: #ffffff;
}
/* Estilos da Seção Planos (APENAS PÁGINA INICIAL) */
.planos-section {
    padding: 50px 20px;
    text-align: center;
    background-color: #ecf0f1;
    
}

.planos-section h2 {
    font-size: 2.2em;
    color: #2c3e50;
    margin-top: 0;
    margin-bottom: 50px;
}

.planos-container {
    display: flex;
    justify-content: center;
    gap: 30px;
    flex-wrap: wrap;
}

.plano-card-resumo { 
    border: 1px solid #bdc3c7;
    padding: 25px;
    margin-bottom: 20px;
    width: 320px;
    background-color: #ffffff;
    border-radius: 8px;
    text-align: left;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    display: flex;
    flex-direction: column;
    color: #333333; /* << ADICIONE ESTA LINHA */

}

.plano-card-resumo h3 {
    font-size: 1.7em;
    color: #2980b9;
    margin-top: 0;
    margin-bottom: 15px;
}

.plano-card-resumo .preco {
    font-size: 1.4em;
    font-weight: bold;
    color: #27ae60;
    margin-top: 0;
    margin-bottom: 5px;
}

.plano-card-resumo .implementacao {
    font-size: 0.9em;
    color: #555555;
    margin-bottom: 20px;
}

.plano-card-resumo ul {
    list-style: none;
    padding: 0;
    margin-bottom: 25px;
    flex-grow: 1;
}

.plano-card-resumo ul li {
    margin-bottom: 10px;
    font-size: 0.95em;
    line-height: 1.4;
}

.plano-card-resumo ul li::before {
    content: '✔';
    color: #27ae60;
    margin-right: 8px;
    font-weight: bold;
}

.cta-button-plano {
    background-color: #3498db;
    color: white;
    padding: 12px 25px;
    text-decoration: none;
    border-radius: 5px;
    font-weight: bold;
    text-align: center;
    display: block;
    margin-top: auto;
    transition: background-color 0.3s ease;
}

.cta-button-plano:hover {
    background-color: #2980b9;
}
/* Estilo para o item "...e muito mais!" nos cards de plano */
.plano-card-resumo ul li.plano-mais-info {
    text-align: center;
    font-style: italic;
    color:#333333; /* Um cinza sutil */
    margin-top: 15px; /* Adiciona um espaço extra antes dele */
}

/* Remove o checkmark automático deste item específico */
.plano-card-resumo ul li.plano-mais-info::before {
    content: none;
}

/* Estilos da Seção Diferenciais e Portal */
.diferenciais-portal-section {
    padding: 50px 20px;
    background-color: #ffffff;
    
}

.diferenciais-portal-section .container {
    display: flex;
    max-width: 1200px;
    margin: 0 auto;
    gap: 40px;
    flex-wrap: wrap;
}

.coluna-diferenciais,
.coluna-portal {
    flex: 1;
    min-width: 300px;
}

.diferenciais-portal-section h2 {
    font-size: 2em;
    color: #2c3e50;
    margin-top: 0;
    margin-bottom: 30px;
}

.diferencial-item {
    display: flex;
    align-items: center;
    margin-bottom: 25px;
    gap: 15px;
}

.diferencial-icone {
    width: 50px;
    height: 50px;
    object-fit: contain;
}

.diferencial-item h3 {
    font-size: 1.3em;
    color: #2980b9;
    margin-top: 0;
    margin-bottom: 8px;
}

.diferencial-item p {
    font-size: 0.95em;
    line-height: 1.5;
    margin-bottom: 0;
    color: #333333;
}

.coluna-portal {
    text-align: center;
    background-color: #f9f9f9;
    padding: 30px;
    border-radius: 8px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}

.portal-mockup {
    width: 100%;
    max-width: 350px;
    height: auto;
    margin-bottom: 25px;
    border-radius: 5px;
    border: 1px solid #eee;
}

.cta-button-portal {
    background-color: #27ae60;
    color: white;
    padding: 12px 30px;
    text-decoration: none;
    border-radius: 5px;
    font-weight: bold;
    display: inline-block;
    transition: background-color 0.3s ease;
}

.cta-button-portal:hover {
    background-color: #229954;
}
/* --- Estilos do Showcase Interativo (TEMA CLARO) --- */
.coluna-showcase {
    flex: 1;
    min-width: 300px;
    background-color: #1a2c42; /* << MUDANÇA: Fundo cinza bem claro */
    padding: 30px;
    border-radius: 8px;
    border: 1px solid #34495e; /* Borda sutil */
}

.coluna-showcase h2 {
    font-size: 2em;
    color: #ffffff; /* << MUDANÇA: Título escuro */
    margin-top: 0;
    margin-bottom: 30px;
}

.showcase-tabs {
    display: flex;
    margin-bottom: 20px;
    border-bottom: 1px solid #34495e; /* Borda mais clara */
}

.showcase-tab-button {
    flex: 1;
    padding: 12px 10px;
    cursor: pointer;
    border: none;
    background-color: transparent;
    color: #bdc3c7;  /* << MUDANÇA: Cor escura para abas inativas */
    font-size: 0.9em;
    font-weight: 500;
    border-bottom: 3px solid transparent;
    transition: all 0.3s ease;
}

.showcase-tab-button:hover {
     color: #ffffff; /* Cor mais escura no hover */
}

.showcase-tab-button.active {
    color: #f39c12; /* Mantém o laranja para a aba ativa */
    border-bottom-color: #f39c12;
}

.showcase-content p {
    font-size: 0.95em;
    line-height: 1.6;
    color: #c5c5dd; /* << MUDANÇA: Cor de texto escura e legível */
    margin: 0;
}

/* As regras de animação mantêm-se iguais */
.showcase-pane {
    display: none;
    animation: fadeIn 0.5s ease;
}

.showcase-pane.active {
    display: block;
}

@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}
/* Estilos para o conteúdo de páginas simples (como a de Política de Privacidade) */
.conteudo-pagina-simples {
    padding: 80px 20px;
    line-height: 1.8;
}

.conteudo-pagina-simples .container {
    max-width: 800px; /* Limita a largura do texto para melhor leitura */
}

.conteudo-pagina-simples h1,
.conteudo-pagina-simples h2,
.conteudo-pagina-simples h3 {
    color: #ffffff; /* Títulos brancos */
}

.conteudo-pagina-simples p,
.conteudo-pagina-simples li {
    color: #c5c5dd; /* Cor de texto clara */
}


/* Estilos do Rodapé */
.site-footer {
    background-color: #2c3e50;
    color: #bdc3c7;
    padding: 40px 20px 10px;
    font-size: 0.9em;
    
}

.footer-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    max-width: 1200px;
    margin: 0 auto 30px auto;
    gap: 20px;
}

.footer-coluna {
    flex: 1;
    min-width: 220px;
    margin-bottom: 20px;
}

.footer-coluna h4 {
    color: #ffffff;
    font-size: 1.2em;
    margin-top: 0;
    margin-bottom: 15px;
    border-bottom: 1px solid #7f8c8d;
    padding-bottom: 8px;
}

.footer-coluna p {
    margin-bottom: 10px;
    line-height: 1.6;
}

.footer-coluna.contact p strong {
    color: #ecf0f1;
}

.footer-coluna.contact a {
    color: #3498db;
    text-decoration: none;
}

.footer-coluna.contact a:hover {
    text-decoration: underline;
}

.footer-coluna.links ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-coluna.links ul li {
    margin-bottom: 8px;
}

.footer-coluna.links a {
    color: #bdc3c7;
    text-decoration: none;
    transition: color 0.3s ease;
}

.footer-coluna.links a:hover {
    color: #ffffff;
    text-decoration: underline;
}

.footer-coluna.social .social-icon img {
    width: 32px;
    height: 32px;
    margin-right: 10px;
    opacity: 0.8;
    transition: all 0.3s ease;
    
}

.footer-coluna.social .social-icon img:hover {
    opacity: 1;
    transform: translateY(-2px);
}

.footer-bottom {
    text-align: center;
    padding-top: 20px;
    border-top: 1px solid #34495e;
    font-size: 0.85em;
}

.footer-bottom p {
    margin: 0;
    color: #7f8c8d;
    font-size: 1.0em;
}

/* Estilo para o Selo LGPD no Rodapé */
#seloLgpd {
    max-height: 60px; 
    width: auto;   
     
}

/* ================================================== */
/* === NOVOS ESTILOS PARA PÁGINA "SOBRE NÓS" === */
/* ================================================== */

/* --- Banner de Título com Vídeo --- */
.pagina-titulo-banner {
    height: 50vh; /* Altura de 50% da tela */
    min-height: 350px;
    position: relative;
    overflow: hidden;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    color: white;
    background-color: #1a2c42; /* Cor para caso o vídeo não carregue */
}
.banner-video-bg {
    position: absolute; top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    min-width: 100%; min-height: 100%;
    width: auto; height: auto;
    object-fit: cover;
    z-index: 1;
}
.banner-video-overlay {
    position: absolute; top: 0; left: 0;
    width: 100%; height: 100%;
    background-color: rgba(26, 44, 66, 0.7); /* Sobreposição escura */
    z-index: 2;
}
.pagina-titulo-banner h1 {
    margin: 0; font-size: 3.5em; font-weight: bold;
    text-transform: uppercase; position: relative; z-index: 3;
}

/* --- Estrutura das Seções de Conteúdo --- */
.secao-pagina {
    padding: 0px 0; /* Espaçamento vertical generoso entre as seções */
    /* Ajuste de espaçamento para a seção de introdução */

}
.fundo-secao-alternado {
    background-color: rgba(15, 23, 42, 0.3); /* Fundo azul escuro semi-transparente para alternar */
}
.container {
    max-width: 1140px;
    margin: 0 auto;
    padding: 0 15px;
}

/* --- Componentes de Conteúdo --- */

/* Introdução */
.texto-intro {
    font-size: 1.4em;
    line-height: 1.7;
    text-align: center;
    max-width: 850px;
    margin: 80px auto 0 auto;
    color: #e0e0e0;
}

/* Layout de Colunas (Imagem e Texto) */
.layout-colunas {
    display: flex;
    align-items: center;
    gap: 60px;
}
.coluna-imagem {
    flex: 0 0 45%;
    display: flex;
    align-items: center;
    justify-content: center;
}
.imagem-secao {
    width: 100%; height: auto;
    border-radius: 8px;
    box-shadow: 0 20px 40px rgba(0,0,0,0.3);
    display: block;
}
.coluna-texto {
    flex: 1;
    padding-top: 30px;

}

/* Layout Alternado (Imagem à Direita) */
.layout-colunas.imagem-direita {
    flex-direction: row-reverse;
}

/* Tipografia dentro das colunas */
.coluna-texto h2 {
    font-size: 2.8em;
    color: #ffffff;
    margin-top: 0; margin-bottom: 25px;
    line-height: 1.0;
    border-bottom: 4px solid #f39c12;
    padding-bottom: 15px;
    text-align: left;
}
.coluna-texto p {
    font-size: 1.2em;
    line-height: 1.5;
    color: #c5c5dd;
    text-align: left;
}
.coluna-texto strong {
    color: #f39c12;
    font-weight: bold;
}

/* Estilo para a imagem do logo dentro da seção */
.logo-em-secao {
    width: 700px; /* Defina o tamanho desejado. Ajuste este valor em pixels como preferir. */
    max-width: 100%;
    height: auto;
    display: block;
    margin: 0 auto;
}

/* Estilos para a seção de texto centralizado */
.texto-centralizado {
    text-align: center; /* Centraliza todo o texto e o botão */
    max-width: 800px;   /* Limita a largura do texto para melhor leitura */
    margin: 0 auto;     /* Centraliza o bloco na página */
}

.texto-centralizado h2 {
    font-size: 2.8em;
    color: #ffffff;
    margin-top: 0;
    margin-bottom: 30px; /* Mais espaço abaixo do título */
    /* Para esta seção final, podemos deixar o h2 sem a borda inferior para um visual diferente */
    /* border-bottom: 4px solid #f39c12; */ 
}

.texto-centralizado p {
    font-size: 1.2em;
    line-height: 1.8;
    color: #c5c5dd; /* Mantém a cor clara do texto */
    margin-bottom: 25px;
}
.container strong {
    color: #f39c12;     /* Cor laranja para o destaque */
    font-weight: bold;  /* Garante que o texto fique em negrito */
}

/* Estilos para o Botão de Chamada para Ação (CTA) da Seção */
.cta-button-secao {
    background-color: #f39c12; /* Laranja de destaque */
    color: white;
    padding: 15px 35px;
    border-radius: 5px;
    text-decoration: none;
    font-weight: bold;
    font-size: 1.1em;
    display: inline-block; /* Para que a margem superior funcione corretamente */
    margin-top: 20px;      /* Espaço entre o último parágrafo e o botão */
    transition: all 0.3s ease;
}

.cta-button-secao:hover {
    background-color: #e67e22; /* Cor mais escura no hover */
    transform: translateY(-3px); /* Leve efeito de "elevar" no hover */
    box-shadow: 0 8px 15px rgba(0,0,0,0.2); /* Sombra para dar profundidade no hover */
}
/* Estilos para imagem de topo de seção */
.imagem-centralizada-container {
    text-align: center;
    margin-bottom: 35px; /* Espaço entre a imagem e o texto abaixo */
}

.imagem-topo-secao {
    display: block;
    max-width: 750px;  /* Largura máxima para a imagem. Ajuste se desejar. */
    width: 90%;       /* Faz a imagem ter 90% da largura do seu container, até o max-width de 750px. */
    margin-left: auto;
    margin-right: auto;
    border-radius: 8px; /* Cantos arredondados */
    box-shadow: 0 10px 25px rgba(0,0,0,0.15); /* Sombra para profundidade */
}
/* ================================================= */
/* === ESTILOS SEÇÃO DE PILARES (CARDS INTRO) === */
/* ================================================= */

.secao-pilares {
    padding: 60px 0; /* Espaçamento vertical para esta nova seção */
}

.pilares-container {
    display: flex;
    justify-content: center; /* Alinha os cartões no centro */
    gap: 30px; /* Espaço entre os cartões */
    flex-wrap: wrap; /* Permite que os cartões quebrem a linha em telas menores */
}

.pilar-card {
    flex: 1; /* Faz cada cartão tentar ocupar o mesmo espaço */
    min-width: 280px; /* Largura mínima para cada cartão antes de quebrar a linha */
    max-width: 350px; /* Largura máxima para cada cartão */
    
    /* Estilo visual do cartão */
    background-color: rgba(255, 255, 255, 0.05); /* Fundo de vidro semi-transparente */
    border: 1px solid rgba(255, 255, 255, 0.1); /* Borda sutil para dar profundidade */
    border-radius: 10px;
    padding: 35px 30px;
    text-align: center;
    box-shadow: 0 4px 20px rgba(0,0,0,0.1);
    
    /* Efeito de transição para o hover */
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.pilar-card:hover {
    transform: translateY(-8px); /* Efeito de "elevar" o cartão ao passar o mouse */
    box-shadow: 0 12px 30px rgba(0,0,0,0.2); /* Sombra mais forte no hover */
}

.pilar-icone img {
    height: 150px; /* Tamanho do ícone */
    width: auto;
    margin-bottom: 25px; /* Espaço entre o ícone e o título */
}

.pilar-card h3 {
    font-size: 1.6em; /* Tamanho do título do cartão */
    color: #ffffff;
    margin-top: 0;
    margin-bottom: 15px;
}

.pilar-card p {
    font-size: 1em;
    line-height: 1.6;
    color: #c5c5dd; /* Cor clara do texto */
    text-align: center; /* Texto do cartão centralizado */
}

/* --- ESTILOS PÁGINA DE FUNCIONALIDADES --- */

.funcionalidades-container {
    max-width: 1100px;
    margin: 40px auto;
    padding: 20px;
}

/* Estilos para os botões das abas */
.tabs-container {
    display: flex;
    flex-wrap: wrap;
    border-bottom: 2px solid #dee2e6;
    margin-bottom: 30px;
}

.tab-button {
    padding: 15px 25px;
    cursor: pointer;
    border: none;
    background-color: transparent;
    font-size: 1.05em;
    font-weight: 500;
    color: #c5c5dd;
    margin-bottom: -2px; /* Alinha com a borda inferior */
    border-bottom: 2px solid transparent;
    transition: all 0.2s ease-in-out;
}

.tab-button:hover {
    background-color: rgba(255, 255, 255, 0.05); /* Efeito sutil ao passar o mouse */
    color: #ffffff; /* Texto fica branco no hover */
}

.tab-button.active {
    color: #f39c12; /* SUGESTÃO: Laranja para a aba ativa, para dar mais destaque */
    border-bottom-color: #f39c12; /* Borda laranja correspondente */
}

/* Estilos para os painéis de conteúdo */
.tab-content .tab-pane {
    display: none; /* Esconde todos os painéis por padrão */
    padding: 20px;
    border: 1px solid #dee2e6;
    border-top: none;
    border-radius: 0 0 8px 8px;
}

.tab-content .tab-pane.active {
    display: block; /* Mostra apenas o painel ativo */
}

/* Layout interno de cada funcionalidade */
.funcionalidade-content {
    display: flex;
    align-items: center;
    gap: 40px;
}

.funcionalidade-texto {
    flex: 1;
}

.funcionalidade-imagem {
    flex: 0 0 45%; /* Imagem ocupa 45% do espaço */
    text-align: center;
}

.funcionalidade-imagem img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

.funcionalidade-texto h3 {
    font-size: 2em;
    color: #f39c12;
    margin-top: 0;
}

.funcionalidade-texto p {
    font-size: 1.1em;
    line-height: 1.7;
    color:  #e0e0e0;
}

/* --- ESTILOS ATUALIZADOS E CORRIGIDOS PARA O ACORDEÃO --- */

.especificacoes-tecnicas-section {
    padding: 60px 20px;
    background: #1a2c42; 
    color: #e0e0e0; 
}
.especificacoes-container {
    max-width: 900px;
    margin: 0 auto;
}
.especificacoes-tecnicas-section h2 {
    text-align: center;
    font-size: 2.4em;
    color: #ffffff; 
    margin-top: 0;
    margin-bottom: 40px;
    border-bottom: 2px solid #f39c12; 
    padding-bottom: 10px;
}
.accordion-item {
    background-color: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    margin-bottom: 10px;
    border-radius: 8px;
    transition: background-color 0.3s ease;
}
.accordion-item:hover {
    background-color: rgba(255, 255, 255, 0.1); 
}
.accordion-header {
    width: 100%;
    background-color: transparent;
    border: none;
    padding: 20px;
    text-align: left;
    font-size: 1.2em;
    font-weight: 500;
    color: #ffffff; 
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.accordion-icon {
    font-size: 1.5em;
    font-weight: bold;
    color: #f39c12; /* Ícone laranja */
    transition: transform 0.3s ease;
}
.accordion-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease-out;
}
.accordion-content-layout {
    display: flex;
    align-items: center;
    gap: 25px;
    padding: 25px; /* << A MÁGICA ACONTECE AQUI: espaçamento interno para afastar das bordas */
}
.accordion-text {
    flex: 1; 
}
.accordion-text p {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; /* Fonte mais moderna e legível */
    font-size: 1.1em;
    line-height: 1.7;
    color: #e0e0e0; /* Cinza escuro, ótimo para leitura */
    margin: 0;
}
.accordion-image {
    flex: 0 0 180px; 
}
.accordion-image img {
    width: 100%;
    height: auto;
    border-radius: 6px;
    display: block;
}
.accordion-item.active .accordion-header {
    background-color: rgba(255, 255, 255, 0.1); 
}
.accordion-item.active .accordion-icon {
    transform: rotate(45deg); 
}

/* ================================================== */
/* === ESTILOS PÁGINA DE PLANOS (VERSÃO FINAL) === */
/* ================================================== */

/* --- ESTRUTURA DA PÁGINA DE PLANOS --- */

/* Estilos para a Seção de Planos Detalhados (apenas planos.html) */

.planos-detalhados-section {
    padding: 60px 20px;
    margin-bottom: 03px; /* << AQUI definimos a distância de 40px */
}
/* Container que segura os cards de planos */
.planos-container {
    display: flex;
    justify-content: center;
    gap: 30px;
    flex-wrap: nowrap;
    max-width: 1150px; /* Limita a largura para evitar quebras em telas grandes */
    margin: 0 auto;    /* Centraliza o container na página */
}
/* --- CARDS DE PLANOS DETALHADOS --- */

/* O Molde Principal dos Cards */
.plano-card-detalhe {
    background-color: #ffffff; /* Fundo branco para o card */
    color: #333333; /* Cor de texto padrão escura para o card */
    border: 1px solid #e0e0e0;
    border-radius: 12px;
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.08);
    display: flex;
    flex-direction: column;
    position: relative;
    overflow: hidden;
    flex: 1;
}
/* Estilo para o texto que substitui o preço nos cards de plano */
.plano-descricao-substituta {
    text-align: center;
    font-size: 0.9em;  /* Tamanho de fonte igual ao do "Consulte condições..." */
    line-height: 1.6;
    color: #f39c12;  /* A cor exata do texto que você gostou */
    font-weight: bold; /* Garante que o texto não fique em negrito */
    min-height: 90px; 
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 15px; /* Adiciona um pequeno espaço nas laterais para o texto respirar */
}

/* Cabeçalho do Card */
.plano-card-detalhe .card-header {
    background-color: #f8f9fa;
    padding: 20px;
    border-bottom: 1px solid #e0e0e0;
}
.plano-card-detalhe h3 {
    text-align: center;
    color: #1a2c42;
    margin: 0;
    font-size: 1.6em;
}

/* Corpo do Card */
.plano-card-detalhe .card-body {
    padding: 25px;
    flex-grow: 1; 
}
.plano-card-detalhe .card-price-section {
    text-align: center;
    padding-bottom: 25px;
    margin-bottom: 25px;
    border-bottom: 1px solid #f0f0f0;
}
.plano-card-detalhe .preco {
    font-size: 2.2em;
    font-weight: bold;
    color: #2c3e50;
    margin: 0 0 5px 0;
}
.plano-card-detalhe .implementacao {
    font-size: 0.9em;
    color: #7f8c8d;
    margin: 0;
}
.plano-card-detalhe .card-features {
    list-style: none;
    padding: 0;
    margin: 0;
}
.plano-card-detalhe .card-features li {
    padding-left: 30px;
    position: relative;
    margin-bottom: 12px;
    font-size: 0.95em;
}
.plano-card-detalhe .card-features li::before {
    content: '✔';
    color: #27ae60;
    position: absolute;
    left: 0;
    top: 0;
    font-weight: bold;
    font-size: 1.2em;
}

/* Rodapé do Card */
.plano-card-detalhe .card-footer {
    background-color: #f8f9fa;
    padding: 20px;
    border-top: 1px solid #e0e0e0;
}

/* --- ESTILOS DO CARD DESTACADO (MASTER) --- */

.plano-card-detalhe.plano-destaque {
    border: 2px solid #007bff;
    transform: scale(1.05);
    z-index: 10;
}
.plano-card-detalhe.plano-destaque .card-header {
    background-color: #007bff;
    padding-top: 35px; /* Espaço extra para o selo não tapar o título */
}
.plano-card-detalhe.plano-destaque h3 {
    color: #ffffff;
}
.plano-card-detalhe.plano-destaque .preco {
    color: #007bff;
    font-size: 2.4em;
}

.selo-popular {
    display: inline-block;
    background-color: #f39c12; /* O mesmo laranja */
    color: #1a2c42;          /* O mesmo texto escuro para legibilidade */
    font-size: 0.6em;         /* Letra pequena e discreta */
    font-weight: bold;
    padding: 4px 10px;        /* Espaçamento interno do selo */
    border-radius: 12px;      /* Cantos bem arredondados para formar a "pílula" */
    vertical-align: middle;   /* Alinha o selo com o meio do texto do título */
    margin-left: 10px;        /* Espaço entre o título e o selo */
    text-transform: uppercase;
}

/* Estilo para a Caixa de Destaque sobre Cobrança */
.info-cobranca-section {
    padding: 0 20px; /* Apenas espaçamento lateral */
}

/* Estilo 'Glassmorphism' para a Caixa de Destaque */
.info-cobranca-box {
    max-width: 1100px;
    margin: 20px auto 20px auto;
    padding: 30px;
    background-color: rgba(255, 255, 255, 0.1); /* Fundo de vidro claro e transparente */
    border-radius: 12px;
    border: 1px solid rgba(255, 255, 255, 0.2); /* Borda subtil de vidro */
    backdrop-filter: blur(10px); /* O efeito de desfoque do fundo */
    -webkit-backdrop-filter: blur(10px); /* Para compatibilidade com mais navegadores */
    box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1); /* Sombra suave para dar profundidade */
}

.info-cobranca-box p {
    margin: 0;
    color: #ffffff; /* << Texto branco para ler sobre o fundo desfocado */
    font-size: 1.1em;
    line-height: 1.7;
    text-shadow: 1px 1px 3px rgba(0,0,0,0.3); /* Sombra para ajudar na legibilidade */
}

/* --- Estilos para o Aviso "IMPORTANTE" Destacado --- */

.aviso-importante-container {
    text-align: center; /* Centraliza o título e a caixa */
    margin: -30px auto; /* Mantém a margem que a caixa já tinha */
}

.aviso-titulo {
    color: #f39c12; /* Cor laranja de destaque */
    font-size: 1.6em;
    font-weight: bold;
    text-transform: uppercase;
    margin-bottom: 5px; /* Espaço entre o título e a caixa */

/* Remove a margem de cima da caixa para aproximá-la do novo título */
.aviso-importante-container .info-cobranca-box {
    margin-top: 0 !important; 
}    

    /* A Animação de Pulsação Suave */
    animation: pulsate-glow 2.5s ease-in-out infinite;
}

/* Definição da animação (o que ela faz) */
@keyframes pulsate-glow {
    0% {
        text-shadow: 0 0 5px rgba(243, 156, 18, 0.3);
    }
    50% {
        text-shadow: 0 0 20px rgba(243, 156, 18, 0.8);
    }
    100% {
        text-shadow: 0 0 5px rgba(243, 156, 18, 0.3);
    }
}

/* --- ESTILOS DA TABELA COMPARATIVA --- */

.tabela-comparativa-section {
    padding: 50px 20px;
    background-color: transparent;
    margin-bottom: 80px; /* << ADICIONE ESTA LINHA */
}

.tabela-comparativa-section h2 {
    text-align: center;
    font-size: 2.2em;
    color: #ffffff; /* Título branco para o fundo azul */
    margin-top: 0;
    margin-bottom: 40px;
}
.tabela-comparativa-container {
    max-width: 1150px; /* << LARGURA REDUZIDA */
    margin: 0 auto;
}
.tabela-comparativa {
    width: 100%;
    border-collapse: collapse;
    font-size: 1.05em;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
    border-radius: 8px;
    overflow: hidden;
    background-color: #ffffff;
   
}
.tabela-comparativa thead tr {
    background-color: #eaf0f6;
    color: #34495e;
    text-align: center;
}
.tabela-comparativa th,
.tabela-comparativa td {
    padding: 12px 15px;
    color: #495057;
}
.tabela-comparativa tbody tr {
    border-bottom: 1px solid #dddddd;
}
.tabela-comparativa tbody tr:nth-of-type(even) {
    background-color: #f8f9fa;
}
.tabela-comparativa .feature-name {
    text-align: left;
    font-weight: 500;
    color: #2c3e50;
}
.tabela-comparativa .check-mark {
    color: #27ae60;
    font-size: 1.5em;
}
.tabela-comparativa .x-mark {
    color: #c0392b;
    font-size: 1.3em;
}
/* Controle explícito da largura das colunas da tabela */
.tabela-comparativa th:first-child,
.tabela-comparativa td:first-child {
    width: 40%; /* A primeira coluna (Funcionalidade) ocupa 40% do espaço */
}

.tabela-comparativa th:not(:first-child),
.tabela-comparativa td:not(:first-child) {
    width: 20%; /* As outras 3 colunas dividem o resto (20% cada) */
    text-align: center; 
}
/* ================================================== */
/* === ESTILOS PÁGINA DE CONTATO === */
/* ================================================== */

.contato-section {
    padding: 80px 20px;
}

.contato-layout {
    display: flex;
    gap: 60px;
    background-color: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 12px;
    padding: 40px;
    box-shadow: 0 8px 30px rgba(0,0,0,0.1);
}

.contato-coluna-form,
.contato-coluna-info {
    flex: 1;
}

.contato-coluna-form h2,
.contato-coluna-info h2 {
    color: #ffffff;
    font-size: 2em;
    margin-top: 0;
    border-bottom: 2px solid #f39c12;
    padding-bottom: 10px;
    margin-bottom: 20px;
}

.contato-coluna-form p,
.contato-coluna-info p {
    color: #c5c5dd;
    line-height: 1.7;
    margin-bottom: 30px;
}

/* --- Estilos do Formulário --- */
.form-group {
    margin-bottom: 20px;
}

.form-group label {
    display: block;
    margin-bottom: 8px;
    font-weight: 500;
    color: #e0e0e0;
}

.form-group input,
.form-group textarea {
    width: 100%;
    padding: 12px;
    background-color: rgba(15, 23, 42, 0.5);
    border: 1px solid #34495e;
    border-radius: 5px;
    color: #ffffff;
    font-size: 1em;
    transition: all 0.3s ease;
}

.form-group input:focus,
.form-group textarea:focus {
    outline: none;
    border-color: #f39c12;
    box-shadow: 0 0 0 3px rgba(243, 156, 18, 0.3);
}

.cta-button-form {
    width: 100%;
    padding: 15px;
    background-color: #f39c12;
    color: white;
    border: none;
    border-radius: 5px;
    font-size: 1.1em;
    font-weight: bold;
    cursor: pointer;
    transition: all 0.3s ease;
}

.cta-button-form:hover {
    background-color: #e67e22;
    transform: translateY(-2px);
}

/* --- Estilos da Coluna de Informações --- */
.info-item {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 25px;
}

.info-icone {
    width: 40px;
    height: 40px;
}

.info-item strong {
    font-size: 1.2em;
    color: #ffffff;
}

.info-item p {
    margin: 0;
    color: #c5c5dd;
}

.certificacoes-contato {
    margin-top: 40px;
    padding-top: 30px;
    border-top: 1px solid #34495e;
}

.certificacoes-contato h3 {
    color: #ffffff;
    font-size: 1.4em;
    margin: 0 0 20px 0;
}

.logos-certificacoes img {
    height: 60px;
    width: auto;
    opacity: 0.8;
    transition: opacity 0.3s ease;
}

.logos-certificacoes img:hover {
    opacity: 1;
}

/* Estilo para os links no rodapé inferior */
.footer-bottom a {
    color: #bdc3c7; /* Mesma cor do texto do rodapé */
    text-decoration: none; /* Remove o sublinhado */
    font-size: 1.1em; /* Aumenta um pouco o tamanho */
    transition: color 0.3s ease;
}
.footer-bottom a:hover {
    color: #ffffff; /* Cor branca ao passar o rato */
}
/* Remove o sublinhado padrão dos links de contato */
.info-link-wrapper {
    text-decoration: none;
    color: inherit;
}

/* ======================================================= */
/* === ESTILOS DO PAINEL DE MÉTRICAS (VERSÃO CORRIGIDA) === */
/* ======================================================= */
.secao-metricas {
    padding: 40px 20px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.metricas-grid {
    display: flex; /* Usando Flexbox para garantir o layout em colunas */
    justify-content: space-around;
    align-items: flex-start;
    flex-wrap: wrap; /* Permite quebrar a linha em telas menores */
    gap: 30px; 
    max-width: 1000px;
    margin: 0 auto;
}

.metrica-item {
    text-align: center;
    flex: 1; /* Faz cada item tentar ocupar o mesmo espaço */
    min-width: 250px; /* Largura mínima antes de quebrar para a linha de baixo */
}

.metrica-icone {
    margin-bottom: 15px; 
}
.metrica-icone img {
    height: 100px; /* Define uma altura fixa para os ícones */
    width: auto;  /* A largura se ajusta automaticamente para não distorcer */
  }


.numero-metrica {
    font-size: 5em;
    font-weight: 700;
    line-height: 1.1;
    display: block;
    background: linear-gradient(45deg, #f39c12, #ffdc73, #f39c12);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    
}

.metrica-item p {
    font-size: 1.2em;
    color: #ffffff;
    margin-top: 10px;
    text-transform: uppercase;
    letter-spacing: 1px;
    opacity: 0.9;
}

/* Ajustes para telas menores (mobile) */
@media (max-width: 768px) {
    .metrica-icone svg {
        width: 40px;
        height: 40px;
    }
    .numero-metrica {
        font-size: 4em;
    }
    .metrica-item p {
        font-size: 1em;
    }
}
/* Media Query para telas menores - Cabeçalho */
@media (max-width: 768px) {
    .header-top-bar { 
        flex-direction: column;
        align-items: flex-start; 
        gap: 10px;
        padding-bottom: 10px; 
        border-bottom: 1px solid rgba(255,255,255,0.1); 
    }
    .top-bar-content {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
        width: 100%; 
    }
    .logo {
        width: 100%; 
        text-align: center; 
        margin-right: 0; /* Resetar margin-right para mobile */
    }
    .logo a {
        display: block; 
    }
    .search-bar {
        width: 100%; 
        max-width: none; 
        left: 0; /* Resetar o left para mobile */
        position: static; /* Resetar position para mobile */
    }
    .top-bar-actions {
        width: 100%;
        display: flex; 
        justify-content: center;
        margin-left: 0; /* Resetar margin-left para mobile */
    }

    .header-nav-bar {
        padding: 0; 
        /* border-top: none;  Já foi removido */
        /* Se o menu nav-bar não for sticky, o menu mobile absoluto pode precisar de ajustes
           relativos ao .site-header, ou o .site-header pode precisar ser position:relative */
    }
    .nav-bar-content {
        justify-content: space-between; 
        padding: 10px 20px; 
    }
    .header-cta-button {
        display: none; /* Esconde o botão "Fale Conosco" em telas pequenas */
    }
    .main-navigation {
        display: none; 
        width: 100%;
        position: absolute; 
        top: 100%; /* Relativo ao .header-nav-bar se ele for o container posicionado */
        left: 0;
        background-color: #ffffff;
        box-shadow: 0 2px 5px rgba(0,0,0,0.1);
        border-top: 1px solid #eee; 
    }

    .main-navigation.active {
        display: block;
        background-color: #1a2c42;
    }

    .main-navigation ul {
        flex-direction: column;
        width: 100%;
    }

    .main-navigation ul li {
        margin: 0;
        text-align: center;
        border-bottom: 1px solid #ecf0f1;
    }
    .main-navigation ul li:last-child {
        border-bottom: none;
    }

    .main-navigation ul li a {
        display: block;
        padding: 15px;
    }
    .main-navigation ul li a::after {
        display:none;
    }

    .menu-toggle {
        display: block; 
        color: #ffffff; /* Cor do ícone hamburguer na barra azul */
        /* position: static;  Se nav-bar-content é flex e space-between, isto deve funcionar */
        /* transform: none; */
        /* margin-left: auto; */
    }

    .planos-container,
.diferenciais-portal-section .container {
        flex-direction: column; /* A MÁGICA: Muda a direção do flex de linha para coluna */
        align-items: flex-start;    /* Bónus: Centraliza os cards que agora estão empilhados */
    }

    .plano-card-resumo {
        width: 90%;       /* Faz o card ocupar 90% da largura da tela do celular */
        max-width: 400px; /* Define uma largura máxima para não ficar largo demais */
    }
    /* --- Ajuste para a Lista de Diferenciais no Mobile --- */
   .diferencial-item {
    flex-direction: column; /* Empilha o ícone (em cima) e o texto (em baixo) */
    text-align: center;   /* Centraliza o título e o parágrafo */
    }

    .diferencial-icone {
    margin-bottom: 15px; /* Adiciona um espaço entre o ícone e o texto abaixo dele */
    }
    .diferenciais-portal-section .coluna-diferenciais,
.diferenciais-portal-section .coluna-showcase {
    width: 100%;      /* Força a coluna a ocupar 100% da largura do container */
    margin-left: 0;   /* Remove qualquer margem esquerda automática */
    margin-right: 0;  /* Remove qualquer margem direita automática */
}

    /* Ajustes para a página Sobre Nós em mobile */
    .pagina-titulo-banner {
        padding: 30px 15px;
        margin-bottom: 20px;
    }
    .pagina-titulo-banner h1 {
        font-size: 2em;
    }
    .sobre-nos-container {
        margin: 0 auto 30px auto;
        padding: 15px;
    }
    .imagem-sobre-nos-esquerda {
        float: none; /* Remove o float em telas pequenas */
        width: 100%;  /* Imagem ocupa a largura total */
        margin-right: 0;
        margin-bottom: 20px; /* Espaço abaixo da imagem antes do texto */
    }
    .layout-colunas {
        flex-direction: column;
        align-items: center; /* Centraliza a imagem e o bloco de texto */
    }
    .layout-colunas .coluna-imagem {
        margin-bottom: -50px; /* Adiciona um espaço abaixo da imagem */
    }
    .layout-colunas.imagem-direita {
        flex-direction: column; /* A mágica está aqui! */
        align-items: center; 
    }
    
    /* --- Ajuste para a Página de Funcionalidades --- */
    .funcionalidade-content {
    flex-direction: column;
    }
    
    /* --- Ajuste para a Página de Planos Detalhada --- */
   .planos-detalhados-section .planos-container {
    flex-direction: column;
    align-items: center; /* Alinha os cards empilhados no centro */
    gap: 40px;           /* Cria um bom espaço vertical entre os cards */
    flex-wrap: wrap;     /* Permite a quebra de linha, sobrepondo o 'nowrap' */
    }

    /* --- Alternativa 4: Diminuir o Tamanho da Tabela --- */

/* Diminui o tamanho da fonte de toda a tabela para 85% do original */
.tabela-comparativa {
    font-size: 0.85em; /* Você pode experimentar valores como 0.8em ou 0.9em */
}

/* Diminui o espaçamento dentro de cada célula para economizar espaço */
.tabela-comparativa th,
.tabela-comparativa td {
    /* O primeiro valor é para cima/baixo, o segundo para esquerda/direita */
    padding: 10px 6px; 
}
/* --- Ajuste para a Página de Contato --- */
.contato-layout {
    flex-direction: column;
}
}