/* =====================================================
   HEADER
===================================================== */

#sp-header{
    background:#082B4A !important;
}

#sp-header .sp-megamenu-parent > li > a{
    color:#ffffff !important;
}

#sp-header .logo img{
    width:250px !important;
    height:auto !important;
}

@media (max-width:767px){

    #sp-header .logo img{
        width:208px !important;
        height:auto !important;
    }

}

/* Uniformiza a cor de fundo da barra de copyright com o menu */
#sp-footer {
    background-color: #091d33 !important;
    border-top: 1px solid rgba(255, 255, 255, 0.05) !important; /* Adiciona uma linha divisória quase invisível para dar acabamento */
}

/* Garante que os textos e links do copyright continuam legíveis e elegantes */
#sp-footer, 
#sp-footer a, 
.sp-copyright {
    color: rgba(255, 255, 255, 0.6) !important; /* Texto em branco suave (cinza claro) para não encandear */
    font-size: 13px !important;
}

#sp-footer a:hover {
    color: #ffffff !important; /* O link (ex: Política de Privacidade) brilha a branco ao passar o rato */
    text-decoration: none !important;
}



/* =====================================================
   SECTION VALORES
===================================================== */

.section-valores i,
.section-valores i:before,
.section-valores .fa,
.section-valores .fas,
.section-valores .far,
.section-valores .fab{
    color:#18B84A !important;
}

.valor-coluna{
    position:relative;
}

.valor-coluna:after{
    content:'';
    position:absolute;
    right:0;
    top:15%;
    height:70%;
    width:1px;
    background:rgba(255,255,255,.15);
}

.section-valores .sppb-feature-box{
    padding-top:15px;
}

/* =====================================================
   SOBRE NÓS
===================================================== */

.titulo-sobre p{
    border-left:4px solid #18B84A !important;
    padding-left:15px !important;
    margin:0 !important;
    margin-bottom:8px !important;
    color:#18B84A !important;
    display:inline-block !important;
    font-weight:700;
    letter-spacing:2px;
    text-transform:uppercase;
}

.titulo-especialistas h1,
.titulo-especialistas h2,
.titulo-especialistas h3{
    margin-top:0 !important;
    line-height:1.1;
}

/* =====================================================
   CARTÕES ESTATÍSTICOS
===================================================== */

.stats-box .fa,
.stats-box .fas,
.stats-box .far,
.stats-box .fab,
.stats-box i,
.stats-box i:before{
    color:#1687C8 !important;
}

/* ==========================================
   SERVIÇOS
========================================== */

.servico-card{
    background:#ffffff;
    padding:55px 30px 30px 30px;
    position:relative;
    min-height:230px;

    border-radius:0 0 12px 12px;

    box-shadow:0 4px 20px rgba(0,0,0,.06);

    overflow:visible;
}

.servico-icon{
    position:absolute;
    top:-35px;
    left:25px;

    width:70px;
    height:70px;

    border-radius:50%;

    background:#082B4A;

    border:3px solid #ffffff;

    display:flex;
    align-items:center;
    justify-content:center;
}

.servico-icon i{
    color:#18B84A;
    font-size:28px;
}

.servico-card h3{
    color:#082B4A;
    font-size:28px;
    font-weight:700;
    margin-bottom:15px;
}

.servico-card p{
    color:#666666;
    line-height:1.7;
    margin-bottom:20px;
}

.servico-card a{
    color:#1687C8;
    text-decoration:none;
    font-weight:700;
}

.servico-card:hover{
    box-shadow:0 10px 30px rgba(0,0,0,.10);
    transition:.3s;
}

.servico-card:after{
    content:'';
    position:absolute;
    left:0;
    bottom:0;

    width:100%;
    height:4px;

    background:#18B84A;

    border-radius:0 0 12px 12px;
}

.servico-card{
    transition:.3s;
}

.servico-card:hover{
    transform:translateY(-5px);
    box-shadow:0 10px 30px rgba(0,0,0,.10);
}
.servicos img{
    border-radius:12px 12px 0 0;
}

.servico-icon{
    box-shadow:0 4px 15px rgba(8,43,74,.25);
}

.servicos{
    overflow:hidden;
    border-radius:12px;
    box-shadow:0 4px 20px rgba(0,0,0,.06);
}



/* =====================================================
   PARCEIROS TECNOLÓGICOS 
===================================================== */

/* Container principal - Alinha na horizontal e esconde o excesso */
.logo-marquee {
  overflow: hidden !important;
  width: 100% !important;
  padding: 25px 0 !important;
  display: flex !important;
}

/* Força a linha a manter-se horizontal e ativa a animação */
.marquee-content {
  display: flex !important;
  flex-direction: row !important;
  width: max-content !important;
  animation: scroll-marquee 25s linear infinite !important;
}

/* Define o tamanho e espaçamento de cada logo */
/* Define o tamanho, espaço e equilíbrio visual de cada logo */
/* Correção definitiva de proporção e alinhamento dos logos */
.marquee-content img {
  height: 50px !important;         /* Define uma altura máxima uniforme */
  width: auto !important;          /* CRUCIAL: Permite que cada logo tenha a sua largura natural sem distorcer */
  max-width: 160px !important;     /* Impede que algum logo fique excessivamente gigante */
  margin: 0 45px !important;       /* Espaço generoso e idêntico entre cada um deles */
  filter: grayscale(100%) !important; 
  opacity: 0.6 !important;
  display: inline-block !important;
  flex-shrink: 0 !important;       /* Garante que o carrossel não encolha os logos no mobile */
  transition: all 0.3s ease !important;
}

/* Efeito ao passar o rato */
.marquee-content img:hover {
  filter: grayscale(0%) !important;
  opacity: 1 !important;
}

/* Pausa a animação ao passar o rato */
.logo-marquee:hover .marquee-content {
  animation-play-state: paused !important;
}

/* Criação do movimento lateral */
@keyframes scroll-marquee {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}


/* =====================================================
   junewsultra 
===================================================== */


/* CONTAINER PRINCIPAL DA SECÇÃO DE NOTÍCIAS */
.junewsultra {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 30px !important; /* Espaço entre as 3 notícias */
    padding: 20px 0 !important;
    width: 100% !important;
}

/* CADA CARTÃO DE NOTÍCIA (DESKTOP) */
.junewsultra .ju-item,
.junewsultra > div,
.junewsultra table, 
.junewsultra tr, 
.junewsultra td {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 calc(33.333% - 20px) !important; /* Divide em 3 colunas */
    background: #ffffff !important;
    border: 1px solid #eef2f5 !important; /* Linha de contorno suave igual à maquete */
    padding: 25px !important;
    border-radius: 6px !important;
    box-sizing: border-box !important;
    transition: transform 0.3s ease, box-shadow 0.3s ease !important;
}

/* Efeito sutil ao passar o rato no cartão */
.junewsultra .ju-item:hover {
    transform: translateY(-5px) !important;
    box-shadow: 0 10px 20px rgba(0,0,0,0.05) !important;
}

/* IMAGEM DA NOTÍCIA */
.junewsultra img {
    width: 100% !important;
    height: 200px !important; /* Altura fixa para alinhar todas as fotos */
    object-fit: cover !important; /* Corta a imagem sem distorcer */
    border-radius: 4px !important;
    margin-bottom: 15px !important;
}

/* TÍTULO DA NOTÍCIA */
.junewsultra .ju-title, 
.junewsultra h3, 
.junewsultra a.ju-title {
    font-size: 18px !important;
    font-weight: 700 !important;
    color: #0d233a !important; /* Tom azul escuro corporativo */
    text-decoration: none !important;
    margin: 10px 0 !important;
    line-height: 1.4 !important;
}

/* TEXTO DE INTRODUÇÃO / RESUMO */
.junewsultra .ju-introtext, 
.junewsultra p {
    font-size: 14px !important;
    color: #666666 !important;
    line-height: 1.6 !important;
    margin-bottom: 20px !important;
}

/* BOTÃO LER MAIS */
.junewsultra .ju-readmore, 
.junewsultra a.readmore {
    font-size: 14px !important;
    font-weight: 600 !important;
    color: #28a745 !important; /* Verde da CJP Ignis */
    text-decoration: none !important;
    margin-top: auto !important; /* Empurra o botão sempre para o fundo do cartão, alinhando-os */
    display: inline-flex !important;
    align-items: center !important;
}

/* COMPORTAMENTO RESPONSIVO (MOBILE) */
@media (max-width: 768px) {
    .junewsultra {
        flex-direction: column !important;
    }
    .junewsultra .ju-item,
    .junewsultra > div {
        flex: 1 1 100% !important; /* Ocupa a largura total no telemóvel (empilhado) */
    }
}


/* Notícias - imagem acima do texto */

/* ===== ARTIGO ===== */

.article-details {
    max-width: 1000px;
    margin: 0 auto;
}

.article-details .article-info {
    margin-bottom: 20px;
    opacity: .8;
}

.article-details .article-fulltext {
    line-height: 1.8;
}

.article-details .article-image {
    margin-bottom: 30px;
}

.article-details .article-image img {
    border-radius: 8px;
}

/* Remover ícone do alfinete */
.post-format {
    display: none !important;
}

```css
/* ===== LISTAGEM DE NOTÍCIAS ===== */

/* Espaçamento entre notícias */
.items-row,
.item {
    margin-bottom: 40px;
}

/* Imagens */
.entry-image img {
    border-radius: 8px;
    transition: transform .3s ease;
}

.entry-image img:hover {
    transform: scale(1.03);
}

/* Títulos da listagem */
.item-title {
    font-weight: 600;
    line-height: 1.4;
}

/* ===== ARTIGO ===== */

.item-page {
    max-width: 950px;
    margin: 0 auto;
}

/* Alinhamento uniforme entre imagem, título e conteúdo */
.item-page .entry-header,
.item-page .article-info,
.item-page [itemprop="articleBody"],
.item-page .article-footer-wrap,
.item-page .entry-image {
    max-width: 950px;
    margin-left: auto;
    margin-right: auto;
}

/* Título */
.item-page .entry-header h2 {
    font-size: clamp(1.8rem, 3vw, 2.2rem);
    line-height: 1.25;
    font-weight: 700;
    margin-bottom: 15px;
}

/* Data e metadados */
.item-page .article-info {
    margin-bottom: 25px;
    opacity: .8;
}

/* Imagem principal */
.item-page .entry-image {
    margin-bottom: 30px;
}

.item-page .entry-image img {
    border-radius: 10px;
}

/* Corpo do artigo */
.item-page [itemprop="articleBody"] {
    font-size: 1.08rem;
    line-height: 1.9;
}


/* ===== PAGINA CONTACTOS ===== */

.contact-card{
    background:#ffffff;
    padding:40px 30px;
    border-radius:12px;
    box-shadow:0 5px 20px rgba(0,0,0,.08);
    transition:all .3s ease;
    height:100%;
    text-align:left;
}

.contact-card:hover{
    transform:translateY(-5px);
    box-shadow:0 15px 35px rgba(0,0,0,.12);
}

.contact-card i{
    font-size:50px;
    color:#009638;
    margin-bottom:20px;
    display:block;
}

/* Opcional: Se quiseres que o ícone mude para azul quando passas o rato no cartão */
.contact-card:hover i {
    color: #0A2E6E;
}

.contact-card h4{
    font-size:34px;
    font-weight:600;
    color:#0A2E6E;
    margin-bottom:15px;
    line-height:1.2;
}

.contact-card p{
    font-size:16px;
    line-height:1.8;
    color:#5A6778;
    margin-bottom:0;
}


/* ==========================================================================
   RAPID CONTACT - CJP IGNIS (DESIGN OTINIZADO E CORRIGIDO)
   ========================================================================== */

/* --- TÍTULO DO FORMULÁRIO --- */
.contact-title {
    position: relative;
    margin-bottom: 35px;
}

.contact-title:after {
    content: '';
    display: block;
    width: 80px;
    height: 4px;
    background: #00B140;
    margin-top: 14px; /* Ligeiramente mais espaço sob o texto */
    border-radius: 10px;
}

/* --- ESTRUTURA DO FORMULÁRIO --- */
.rapid_contact {
    width: 100%;
}

/* Solução de emergência para garantir que nenhum elemento pai quebre o layout */
.rapid_contact form, 
.rapid_contact .rapid_contact,
.rapid_contact div {
    max-width: 100% !important;
    box-sizing: border-box !important;
}

/* --- LABELS (TEXTOS DOS CAMPOS) --- */
.rapid_contact label {
    display: block;
    margin-bottom: 8px;
    font-size: 14px;
    font-weight: 600;
    color: #0A2E6E;
}

/* --- MENSAGENS DE ERRO ("Pf insira um email válido") --- */
/* Nova sugestão: Torna a mensagem de erro vista na modified_image (5).png mais limpa e moderna */
.rapid_contact .error, 
.rapid_contact label.error,
.rapid_contact .rapid_contact_error {
    color: #e11d48 !important; /* Vermelho suave e moderno */
    font-size: 13px !important;
    font-weight: 600 !important;
    margin-bottom: 10px !important;
    display: block !important;
}

/* --- CAIXAS DE TEXTO (INPUTS E TEXTAREA) --- */
.rapid_contact input[type="text"],
.rapid_contact input[type="email"],
.rapid_contact textarea {
    width: 100% !important;
    padding: 14px 18px;
    border: 1px solid #e2e8f0 !important; /* Sugestão: Cinza mais suave que o original */
    border-radius: 8px;
    font-size: 15px;
    background: #f8fafc !important; /* Sugestão: Fundo levemente contrastado */
    transition: all .3s ease;
    box-sizing: border-box !important;
}

/* Efeito ao clicar para escrever (Focus) */
.rapid_contact input[type="text"]:focus,
.rapid_contact input[type="email"]:focus,
.rapid_contact textarea:focus {
    border-color: #00B140 !important;
    background: #ffffff !important; /* Fundo volta a branco puro */
    box-shadow: 0 0 0 4px rgba(0, 177, 64, .12) !important; /* Brilho mais moderno */
    outline: none;
}

/* Área da Mensagem */
.rapid_contact textarea {
    min-height: 160px;
    resize: vertical;
}

/* Espaçamento entre as linhas/parágrafos */
.rapid_contact p,
.rapid_contact .form-group {
    margin-bottom: 20px !important; /* Aumentado ligeiramente para equilibrar com a altura do mapa */
    max-width: 100% !important;
    box-sizing: border-box !important;
}

/* Cor do texto explicativo dentro dos campos (Placeholder) */
.rapid_contact ::placeholder {
    color: #9aa6b2;
    opacity: 1;
}

/* --- CAPTCHA / ANTISPAM --- */
.rapid_contact .captcha,
.rapid_contact .rapid-contact-captcha {
    margin-top: 15px;
    margin-bottom: 20px;
}

.rapid_contact .captcha input,
.rapid_contact .rapid-contact-captcha input {
    max-width: 120px;
}

/* Sugestão: Suavizar o texto azul da pergunta de segurança para cinza profissional */
.rapid_contact p:has(input) {
    color: #64748b !important;
    font-size: 14px;
}

/* --- BOTÃO ENVIAR (CORRIGIDO + MELHORADO) --- */
.rapid_contact input[type="submit"],
.rapid_contact button {
    background: #00B140 !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 8px !important;
    padding: 15px 35px !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: .5px !important;
    cursor: pointer !important;
    transition: all .3s ease !important;

    /* Forçar a largura total correta obtida na correção anterior */
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    margin: 15px 0 0 0 !important;
    float: none !important;
    clear: both !important;
}

/* Efeito ao passar o rato (Hover) e clicar no Botão */
.rapid_contact input[type="submit"]:hover,
.rapid_contact button:hover {
    background: #009638 !important; /* Verde original ligeiramente mais escuro */
    transform: translateY(-2px);   /* Mantive o seu efeito elegante de "levantar" */
    box-shadow: 0 6px 18px rgba(0, 177, 64, .3) !important; /* Sombra envolvente */
}

.rapid_contact input[type="submit"]:active,
.rapid_contact button:active {
    transform: translateY(0); /* Botão afunda ao clicar */
}

/* --- RESPONSIVIDADE (TELEMÓVEIS) --- */
@media (max-width: 768px) {
    .rapid_contact input[type="text"],
    .rapid_contact input[type="email"],
    .rapid_contact textarea {
        font-size: 16px !important; /* Evita o zoom automático do iOS ao clicar */
    }
}

