/**
 * Theme Name: Projetisa
 * Version: 10.2.1 (Refatorado e Corrigido)
 * Author: Projetisa Engenharia
 * Description: Arquivo de estilo principal, unificado e otimizado.
 */

/* ===================================================================
   ÍNDICE
   ===================================================================
   1.  VARIÁVEIS GLOBAIS (A Base do Design)
   2.  RESET E ESTILOS DE BASE
   3.  CLASSES UTILITÁRIAS
   4.  LAYOUT PRINCIPAL (HEADER, FOOTER, MENU MOBILE)
   5.  COMPONENTES GERAIS (Botões, Cards, Formulários)
   6.  SEÇÕES DA PÁGINA HOME
   7.  PÁGINAS INTERNAS (Archive, Single, etc.)
   8.  COMPONENTES ESPECÍFICOS (WhatsApp, Paginação, etc.)
   9.  ANIMAÇÕES
   10. RESPONSIVIDADE FINAL
   =================================================================== */

/* ========================================
   1. VARIÁVEIS GLOBAIS
   ======================================== */
:root {
    /* Cores Principais */
    --verde-principal: #00A651; /* Cor principal da marca */
    --verde-escuro: #00592B; /* Novo Verde Escuro para profundidade */
    --verde-claro: #4ade80;
    --laranja: #f97316;
    --azul: #3b82f6; /* Adicionado para borda */
    
    /* Cores Neutras */
    --cinza-escuro: #1f2937;
    --cinza-medio: #6b7280;
    --cinza-claro: #d1d5db;
    --cinza-muito-claro: #FAF9F6; /* Novo Creme Suave para fundo */
    --branco: #ffffff;

    /* Tipografia */
    --font-primary: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --font-heading: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    
    /* Tamanhos de Fonte */
    --text-xs: 0.75rem;
    --text-sm: 0.875rem;
    --text-base: 1rem;
    --text-lg: 1.125rem;
    --text-xl: 1.25rem;
    --text-2xl: 1.5rem;
    --text-3xl: 1.875rem;
    --text-4xl: 2.25rem;
    --text-5xl: 3rem;
    
    /* Espaçamentos */
    --spacing-xs: 0.5rem;
    --spacing-sm: 1rem;
    --spacing-md: 1.5rem;
    --spacing-lg: 2rem;
    --spacing-xl: 3rem;
    --spacing-2xl: 4rem;
    
    /* Transições */
    --transition-fast: 150ms ease;
    --transition-normal: 300ms ease;
    --transition-slow: 500ms ease;
    
    /* Sombras */
    --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
    --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
    --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
    --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
    
    /* Border Radius */
    --radius-sm: 0.25rem;
    --radius-md: 0.5rem;
    --radius-lg: 0.75rem;
    --radius-xl: 1rem;
    --radius-full: 9999px;
}

/* ========================================
   2. RESET E ESTILOS DE BASE
   ======================================== */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    font-size: 16px; /* Adicionado */
}

body {
    background-color: var(--cinza-muito-claro); /* Usa o novo creme suave */
    font-family: var(--font-primary);
    font-size: var(--text-base); /* Adicionado */
    line-height: 1.7;
    color: var(--cinza-escuro);
    overflow-x: hidden;
    padding-top: 0;
    scroll-padding-top: 100px; /* Compensa o header fixo */
}

body.menu-open {
    overflow: hidden;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-heading);
    line-height: 1.3;
    font-weight: 700;
    color: var(--cinza-escuro); /* Adicionado */
}

/* Adicionados tamanhos H padronizados */
h1 { font-size: var(--text-4xl); }
h2 { font-size: var(--text-3xl); }
h3 { font-size: var(--text-2xl); }
h4 { font-size: var(--text-xl); }
h5 { font-size: var(--text-lg); }
h6 { font-size: var(--text-base); }

a {
    color: var(--verde-principal);
    text-decoration: none;
    transition: var(--transition-fast);
}

a:hover {
    color: var(--verde-escuro);
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

ul, ol { /* Adicionado ol */
    list-style: none;
}

button { /* Adicionado */
    font-family: inherit;
    cursor: pointer;
    border: none;
    background: none;
}


/* ========================================
   3. CLASSES UTILITÁRIAS
   ======================================== */
.container {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 1.5rem; /* Equivalente a --spacing-md */
}

.text-center {
    text-align: center;
}

.highlight {
    color: var(--verde-claro);
    font-weight: 700; /* Adicionado */
}

/* Grid System */
.grid { display: grid; gap: var(--spacing-lg); }
.grid-cols-2 { grid-template-columns: repeat(2, 1fr); }
.grid-cols-3 { grid-template-columns: repeat(3, 1fr); }
.grid-cols-4 { grid-template-columns: repeat(4, 1fr); }

/* Seções */
.section { padding: var(--spacing-2xl) 0; }
.section-bg-white { background-color: var(--branco); } /* Usa o branco puro para contraste */
.section-bg-gray { background-color: var(--cinza-muito-claro); } /* Usa o novo creme suave */
.section-bg-green { background-color: var(--verde-principal); } /* Adicionado */
.section-header { text-align: center; margin-bottom: var(--spacing-xl); }
.section-title { 
    font-size: var(--text-3xl); 
    margin-bottom: var(--spacing-sm); 
    position: relative;
    display: inline-block;
    padding-bottom: 12px;
}
.section-subtitle { font-size: var(--text-lg); color: var(--cinza-medio); max-width: 700px; margin: 0 auto; }

.section-title::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%; /* Centraliza o sublinhado */
    transform: translateX(-50%);
    width: 60px; /* Largura da linha amarela */
    height: 4px;
    background-color: #FFC900; /* Amarelo do estilo de serviço */
    border-radius: 2px;
}

/* ========================================
   4. LAYOUT PRINCIPAL (HEADER & FOOTER)
   ======================================== */
/* --- HEADER --- */

.site-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 998;
    background: transparent;
    transition: all 0.3s ease;
    padding: 1.25rem 0;
}

.site-header.scrolled {
    padding: 0.75rem 0;
    background: rgba(202, 162, 162, 0.562);
    backdrop-filter: blur(10px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

.header-container {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 1.5rem;
}
.page-title-solid{
    padding-bottom: 10px;
    padding-top: 50px;
}
.site-logo {
    grid-column: 1 / 2;
    justify-self: start;
    flex-shrink: 0;
}
.site-logo img {
    max-height: 80px;
    width: auto;
    transition: all 0.3s ease;
}
.site-header.scrolled .site-logo img {
    max-height: 60px;
}
.main-navigation {
    grid-column: 2 / 3;
    display: block; 
}
.mobile-menu-toggle {
    display: none; 
}

.main-navigation ul {
    display: flex;
    gap: 2rem;
}
.main-navigation a {
    color: var(--branco);
    font-weight: 600;
    text-shadow: 0 1px 2px rgba(0,0,0,0.4);
}
.site-header.scrolled .main-navigation a {
    color: var(--cinza-escuro);
    text-shadow: none;
}
.site-header.scrolled .main-navigation a:hover {
    color: var(--verde-principal);
}

/* Ajuste para âncoras (scroll-padding-top) */
.anchor-target {
    /* O elemento em si não precisa de altura, mas o CSS de scroll-padding-top precisa ser aplicado ao body/html */
    /* Adicionaremos o CSS ao body para compensar o header fixo */
}


/* --- FOOTER --- */
.site-footer {
    background: #1A1A1A;
    color: rgba(255,255,255,0.7);
    padding: 4rem 0 1.5rem;
}
.footer-grid {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1.5fr;
    gap: 3rem;
    margin-bottom: 3rem;
}
.footer-column .footer-logo-img {
    max-width: 100px;
    margin-bottom: 1rem;
}
.footer-column .footer-description {
    font-size: 0.938rem;
    line-height: 1.6;
}
.footer-title {
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--branco);
    margin-bottom: 1.5rem;
}
.footer-menu {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
.footer-menu a,
.footer-contact a {
    color: rgba(255,255,255,0.7);
}
.footer-menu a:hover,
.footer-contact a:hover {
    color: var(--verde-claro);
}
.footer-contact .contact-item {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    margin-bottom: 1rem;
}
.footer-contact .contact-item svg {
    flex-shrink: 0;
    margin-top: 4px;
    color: var(--verde-claro);
}
.footer-bottom {
    border-top: 1px solid rgba(255,255,255,0.1);
    padding-top: 1.5rem;
    text-align: center;
    font-size: 0.875rem;
    color: rgba(255,255,255,0.6);
    padding: var(--spacing-sm) 0;
}
.site-footer { 
    padding-top: var(--spacing-xl);
    font-size: 0.875rem;
}
.footer-grid { 
    gap: var(--spacing-lg);
    padding-bottom: var(--spacing-xl);
}
.footer-title { 
    margin-bottom: var(--spacing-md);
    font-size: var(--text-base);
}
.footer-menu { 
    gap: 0.6rem;
}
 .footer-contact, .footer-info { 
    gap: 0.8rem;
}


/* ========================================
   5. COMPONENTES GERAIS
   ======================================== */
/* --- BOTÕES --- */
.btn {
    display: inline-block;
    padding: 0.75rem 1.5rem;
    font-size: var(--text-base);
    font-weight: 700;
    text-align: center;
    border-radius: var(--radius-md);
    transition: var(--transition-normal);
    cursor: pointer;
    border: none;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.btn-primary { 
    background-color: #FFD700; color: black;
    center;
} 
.btn-primary:hover { background-color: rgba(0, 128, 0, 0.377); }
.btn-outline { background-color: green; color: var(--branco); border: 2px solid var(--branco); }
.btn-outline:hover { background-color: var(--branco); color: var(--verde-principal); }
.btn-success { background-color: #25d366; color: var(--branco); }
.btn-success:hover { background-color: #1da851; }
.btn-large { padding: 1rem 2rem; font-size: var(--text-lg); }
.btn-secondary { background-color: #FFD700; color: black; } 



/* --- CARDS (NOVO ESTILO UNIFICADO) --- */
/* Esta seção substitui o .card antigo e os estilos do .news-card */
.card {
    background: var(--branco);
    border-radius: var(--radius-lg);
    padding: var(--spacing-lg);
    box-shadow: var(--shadow-md);
    transition: var(--transition-normal);
    border-top: 4px solid transparent;
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    height: 100%;
}
.card:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow-xl);
}
.card.border-green { border-top-color: var(--verde-principal); }
.card.border-orange { border-top-color: var(--laranja); }
.card.border-blue { border-top-color:var(--verde-principal) } /* Usando a var --azul */
.card-badge {
    position: absolute;
    top: 1rem;
    right: 1rem;
    background: var(--verde-principal);
    color: var(--branco);
    padding: 0.25rem 0.75rem;
    border-radius: var(--radius-full);
    font-size: var(--text-xs);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    z-index: 2;
}
.card-image { /* Renomeado de .news-card .card-image */
    width: 100%;
    height: 200px;
    object-fit: cover;
    border-radius: var(--radius-md);
    margin-bottom: var(--spacing-md);
    transition: var(--transition-normal);
}
.card:hover .card-image { /* Renomeado de .news-card:hover .card-image */
    transform: scale(1.05);
}
.card-meta { /* Renomeado de .news-card .card-meta */
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
    color: var(--cinza-medio);
    font-size: var(--text-sm);
}
.card-meta svg { /* Renomeado de .news-card .card-meta svg */
    color: var(--verde-principal);
    flex-shrink: 0;
}
.card-title { /* Renomeado de .news-card .card-title */
    font-size: var(--text-lg);
    font-weight: 700;
    color: var(--cinza-escuro);
    margin-bottom: 0.75rem;
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.card-description { /* Renomeado de .news-card .card-description */
    font-size: var(--text-base);
    color: var(--cinza-medio);
    line-height: 1.6;
    margin-bottom: var(--spacing-md);
    flex-grow: 1;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.card-link { /* Renomeado de .news-card .card-link */
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--verde-principal);
    font-weight: 600;
    margin-top: auto;
    padding: 0.5rem 0;
    transition: var(--transition-fast);
    border-top: 1px solid var(--cinza-claro);
    padding-top: var(--spacing-md);
}
.card-link:hover { /* Renomeado de .news-card .card-link:hover */
    color: var(--verde-escuro);
    gap: 0.75rem;
}
.card-link svg { /* Renomeado de .news-card .card-link svg */
    transition: var(--transition-fast);
}
.card-link:hover svg { /* Renomeado de .news-card .card-link:hover svg */
    transform: translateX(3px);
}
/* Responsividade para Cards (Genérico) */
@media (max-width: 768px) {
    .card { /* Renomeado de .news-card */
        padding: var(--spacing-md);
    }
    .card-image { /* Renomeado de .news-card .card-image */
        height: 160px;
    }
    .card-badge { /* Mantido */
        top: 0.75rem;
        right: 0.75rem;
        font-size: 0.7rem;
        padding: 0.2rem 0.6rem;
    }
}




/* ========================================
   6. SEÇÕES DA PÁGINA HOME
   ======================================== */
/* --- HERO SECTION --- */
.hero-section {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    background-size: cover;
    background-position: center;
    padding: 120px 0 80px;
}
.hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(0,0,0,0.7) 0%, rgba(22, 163, 74, 0) 100%);
    z-index: 1;
}
.hero-section .container { position: relative; z-index: 2; }
.hero-content { color: var(--branco); }
.hero-title { font-size: var(--text-5xl); line-height: 1.1; margin-bottom: var(--spacing-md); color: var(--branco); }
.hero-subtitle { font-size: var(--text-xl); line-height: 1.6; margin-bottom: var(--spacing-lg); }
.hero-content .btn-outline {
    background-color: rgba(255, 255, 255, 0.15);
    backdrop-filter: blur(5px);
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}
.form-hero-card {
    background: var(--branco);
    border-radius: var(--radius-xl);
    padding: var(--spacing-xl);
    box-shadow: var(--shadow-xl);
}
.form-hero-title { font-size: var(--text-2xl); margin-bottom: var(--spacing-lg); text-align: center; }

/* --- URGENCY BANNER --- */
.urgency-banner { padding: 1rem 0; box-shadow: 0 4px 6px rgba(0,0,0,0.1); }
.urgency-content { display: flex; align-items: center; justify-content: center; gap: 1.5rem; flex-wrap: wrap; text-align: center; }
.urgency-text-wrapper { flex-grow: 1; }
.urgency-title { font-size: 1.25rem; font-weight: 700; color: #1A1A1A; display: block; }
.urgency-subtitle { font-size: 1rem; color: #1A1A1A; opacity: 0.9; }
.urgency-button { background: #1A1A1A; color: #FFD700; padding: 0.75rem 1.5rem; border-radius: var(--radius-md); font-weight: 700; white-space: nowrap; transition: all 0.3s ease; }
.urgency-button:hover { background: #000; transform: scale(1.05); }
.urgency-gradient-yellow { background: linear-gradient(135deg, #FFD700 0%, #FFA500 100%); }
.urgency-gradient-green { background: linear-gradient(135deg, #10B981 0%, #059669 100%); }
.urgency-solid-red { background: #dc2626; }
.urgency-gradient-red { background: linear-gradient(135deg, #ef4444 0%, #b91c1c 100%); }
.urgency-solid-red .urgency-title,
.urgency-solid-red .urgency-subtitle,
.urgency-gradient-red .urgency-title,
.urgency-gradient-red .urgency-subtitle { color: var(--branco); }
.urgency-solid-red .urgency-button,
.urgency-gradient-red .urgency-button { background: var(--branco); color: #b91c1c; }

/* --- BENEFÍCIOS (DESIGN REFINADO) --- */
.benefits-section { padding: 5rem 0 5rem 0; }
.benefit-card { background: var(--branco); border-radius: var(--radius-lg); padding: 2.5rem 2rem; text-align: center; box-shadow: 0 4px 15px rgba(0,0,0,0.05); border: 1px solid var(--cinza-claro); transition: all 0.3s ease; }
.benefit-card:hover { transform: translateY(-8px); box-shadow: 0 10px 25px rgba(0,0,0,0.1); border-color: var(--verde-principal); }
.benefit-icon { width: 70px; height: 70px; margin: 0 auto 1.5rem; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, rgba(22, 163, 74, 0.1), rgba(74, 222, 128, 0.1)); border-radius: 50%; color: var(--verde-principal); }
.benefit-icon svg { width: 36px; height: 36px; }
.benefit-title { font-size: 1.25rem; font-weight: 700; margin-bottom: 0.75rem; }
.benefit-description { font-size: 0.95rem; color: var(--cinza-medio); line-height: 1.6; }
.benefits-section .section-title { margin-bottom: 3rem; }

/* --- PROCESSO (DESIGN DE LINHA DO TEMPO COM IMAGEM) --- */
.process-section { 
    padding: 5rem 0; 

}

.process-grid-container { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: stretch; margin-top: 4rem; }
.process-section .container { max-width: 1600px; }
.process-image { height: 100%; }
.process-image img { width: 100%; height: 100%; object-fit: cover; border-radius: var(--radius-xl); }
.process-timeline { position: relative; border-left: 3px solid var(--cinza-claro); }
.process-step { position: relative; margin-left: 50px; margin-bottom: 3rem; padding: 1.5rem 2rem; background-color: var(--branco); border-radius: var(--radius-lg); border: 1px solid var(--cinza-claro); box-shadow: 0 4px 15px rgba(0,0,0,0.05); transition: all 0.3s ease; }
.process-step:last-child { margin-bottom: 0; }
.process-step:hover { border-color: var(--verde-principal); transform: translateY(-5px) translateX(5px); box-shadow: 0 8px 25px rgba(0,0,0,0.1); }
.process-number { position: absolute; top: 50%; left: -85px; transform: translateY(-50%); width: 70px; height: 70px; display: flex; align-items: center; justify-content: center; background-color: var(--verde-principal); color: var(--branco); border-radius: 50%; font-size: 2rem; font-weight: 700; border: 5px solid var(--cinza-muito-claro); }
.process-title { font-size: 1.25rem; font-weight: 700; margin-bottom: 0.5rem; }
.process-description { font-size: 0.95rem; color: var(--cinza-medio); line-height: 1.6; }

/* --- AJUSTES PARA DEPOIMENTOS DO INSTAGRAM --- */

.instagram-video-card {
  position: relative;
  width: 100%;
  
  /* ***** AJUSTE ESTE VALOR (tente 9/12, 9/14) ***** */
  /* Força o 'wrapper' a ser "mais curto" do que o iframe */
  aspect-ratio: 9 / 13;
  
  /* Esconde o que transbordar (a legenda) */
  overflow: hidden; 

  /* Estética (do seu código) */
  border-radius: 12px; /* Usei um valor, mas pode usar var(--radius-lg) */
  
}
.instagram-video-card .wp-block-embed__wrapper {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.instagram-video-card .instagram-media {
  /* O seu código, garantindo que o iframe se comporta bem */
  margin: 0 !important;
  min-width: 100% !important;
  
  /* O iframe do instagram pode ter uma altura mínima.
     Temos de forçá-lo a ser maior (ex: 120%)
     para a legenda "cair" para fora do 'wrapper'.
     Isto pode precisar de ajuste. */
  min-height: 110% !important; 
  height: 110% !important; /* Tente ajustar isto */
  
  /* Alinha o iframe ao topo do 'wrapper' */
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
}

/* --- SETAS DO CARROSSEL -- */
.testimonials-carousel { position: relative; padding: 0 4rem; }
.swiper-button-prev, .swiper-button-next { width: 50px; height: 50px; background: var(--branco); border-radius: 50%; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15); transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); display: flex; align-items: center; justify-content: center; top: 40%; }
.swiper-button-prev { left: 0.5rem; }
.swiper-button-next { right: 0.5rem; }
.swiper-button-prev::after, .swiper-button-next::after { display: none; }
.swiper-button-prev::before, .swiper-button-next::before { content: ''; width: 12px; height: 12px; border: 2px solid var(--verde-principal); border-bottom: none; border-right: none; transform: rotate(-45deg); transition: all 0.3s ease; }
.swiper-button-next::before { transform: rotate(135deg); }
.swiper-button-prev:hover, .swiper-button-next:hover { background: var(--verde-principal); transform: translateY(-50%) scale(1.1); box-shadow: 0 8px 30px rgba(22, 163, 74, 0.3); }
.swiper-button-prev:hover::before, .swiper-button-next:hover::before { border-color: var(--branco); transform: rotate(-45deg) scale(1.1); }
.swiper-button-next:hover::before { transform: rotate(135deg) scale(1.1); }

/* --- FAQ --- */
.faq-section { background: linear-gradient(135deg, var(--cinza-muito-claro) 0%, #f8fafc 100%); position: relative; }
.faq-list { max-width: 900px; margin: 3rem auto 0; background: var(--branco); border-radius: var(--radius-xl); box-shadow: 0 10px 40px rgba(0, 0, 0, 0.08); overflow: hidden; }
.faq-item { border-bottom: 1px solid rgba(0, 0, 0, 0.05); transition: all 0.3s ease; position: relative; }
.faq-item:last-child { border-bottom: none; }
.faq-item:hover { background: rgba(22, 163, 74, 0.02); }
.faq-item.active { background: rgba(22, 163, 74, 0.03); }
.faq-question { display: flex; justify-content: space-between; align-items: center; width: 100%; padding: 1.75rem 2rem; cursor: pointer; font-weight: 600; font-size: 1.125rem; background: none; border: none; text-align: left; color: var(--cinza-escuro); transition: all 0.3s ease; position: relative; }
.faq-question:hover { color: var(--verde-principal); padding-left: 2rem; }
.faq-question::before { display: none !important; }
.faq-icon { width: 20px; height: 20px; min-width: 20px; display: flex; align-items: center; justify-content: center; color: var(--verde-principal); transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); position: relative; }
.faq-icon::before { content: ''; width: 8px; height: 8px; border: 2px solid currentColor; border-left: none; border-top: none; transform: rotate(45deg); transition: all 0.4s ease; margin-bottom: 2px; }
.faq-item.active .faq-icon::before { transform: rotate(225deg); margin-bottom: -2px; }
.faq-icon:hover { color: var(--verde-escuro); }
.faq-answer { max-height: 0; overflow: hidden; transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); padding: 0 2rem; color: var(--cinza-medio); line-height: 1.7; background: transparent; }
.faq-item.active .faq-answer { max-height: 500px; padding: 0 2rem 2rem; }
.faq-answer p { margin-bottom: 1rem; }
.faq-answer p:last-child { margin-bottom: 0; }
.faq-item.active::after { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: linear-gradient(to bottom, var(--verde-principal), var(--verde-claro)); border-radius: 0 2px 2px 0; }
@media (max-width: 768px) {
    .faq-list { margin: 2rem auto 0; border-radius: var(--radius-lg); }
    .faq-question { padding: 1.5rem 1.25rem; font-size: 1rem; align-items: flex-start; }
    .faq-question:hover { padding-left: 1.25rem; }
    .faq-icon { width: 18px; height: 18px; min-width: 18px; }
    .faq-answer { padding: 0 1.25rem; }
    .faq-item.active .faq-answer { padding: 0 1.25rem 1.5rem; }
}


/* --- HOME - CARDS DE SERVIÇOS (service-highlight-card) --- */
/* --- Novo CSS Otimizado para Destaque de Serviços --- */
/* Título da Secção com o acento amarelo */
.services-section .section-header {
    text-align: center; /* Centraliza o título e o subtítulo */
}

.services-section .section-title {
    margin-bottom: 1rem;
}

.services-section .section-title::after {
    left: 50%; /* Centraliza o sublinhado */
    transform: translateX(-50%);
}

/* O Card de Serviço (O <a>) */
.service-card {
    display: flex;
    flex-direction: column;
    justify-content: flex-end; /* Alinha o conteúdo (o overlay) em baixo */
    
    height: 420px; /* Altura do card (ajuste se necessário) */
    
    background-size: cover;
    background-position: center;
    
    border-radius: 12px;
    overflow: hidden; /* Garante que o 'overlay' respeita o border-radius */
    
    text-decoration: none;
    color: #ffffff;
    
    position: relative;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

/* Efeito de hover no card */
.service-card:hover {
    transform: translateY(-5px) scale(1.02);
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
}

/* O Overlay (O gradiente escuro) */
.service-card-overlay {
    width: 100%;
    padding: 1.5rem;
    box-sizing: border-box; /* Garante que o padding não quebra o layout */
    
    /* Este é o gradiente (de transparente para preto) */
    background: linear-gradient(
        180deg, /* De cima para baixo */
        rgba(0, 0, 0, 0) 0%, 
        rgba(0, 0, 0, 0.6) 40%, 
        rgba(0, 0, 0, 0.9) 100%
    );
    
    /* Garante que o overlay está no fundo */
    position: absolute;
    bottom: 0;
    left: 0;
}

/* Título dentro do Card */
.service-card-title {
    font-size: 1.3rem;
    font-weight: 700;
    color: #ffffff;
    margin: 0 0 0.75rem 0; /* Espaço até o botão */
}

/* Botão "+ VER MAIS" */
.service-card-button {
    display: inline-block; /* Para o padding funcionar */
    padding: 8px 16px;
    background-color: #FFC900; /* Amarelo (ajuste à sua cor) */
    color: #1a1a1a; /* Texto escuro para contrastar */
    font-size: 0.875rem;
    font-weight: 700;
    text-transform: uppercase;
    border-radius: 6px;
    transition: background-color 0.2s ease;
}

.service-card:hover .service-card-button {
    background-color: #ffffff; /* Exemplo de efeito hover */
}

/* Botão "Ver Todos os Serviços" (do seu design original) */
.services-section .section-footer {
    text-align: center;
    margin-top: 2.5rem;
}

/* Ajuste dos controlos do Swiper (Setas) */
.services-carousel .swiper-button-prev,
.services-carousel .swiper-button-next {
    color: #FFC900; /* Cor amarela para as setas */
    top: 50%; /* Centraliza verticalmente */
    transform: translateY(-50%)
}

/* Ajuste para ecrãs mais pequenos (ex: 3 slides) */
@media (max-width: 768px) {
    .service-card {
        height: 380px; /* Altura menor no telemóvel */
    }
    
    .services-carousel .swiper-button-prev,
    .services-carousel .swiper-button-next {
        display: none; /* Esconde setas em telemóveis */
    }
}

/* ========================================
   CORREÇÃO DA PAGINAÇÃO (BOLINHAS)
   ======================================== */
 
/* * Este seletor ('.services-section .swiper-pagination-bullets') 
 * é forte o suficiente para ganhar do CSS padrão do Swiper.
 */
.services-section .swiper-pagination-bullets {
    position: relative; /* Tira do 'absolute' */
    bottom: auto; /* Remove o 'bottom: 8px' */
    top: auto; /* Remove o 'top: 40px' */
    margin-top: 2rem; /* Adiciona espaço para baixo dos cards */
}

/* Estilos das bolinhas */
.services-section .swiper-pagination-bullet {
    background-color: #CCCCCC; /* Cor cinza para inativas */
    opacity: 0.8;
}

.services-section .swiper-pagination-bullet-active {
    background-color: #FFC900; /* Cor amarela para a bolinha ativa */
    opacity: 1;
}

/* ========================================
   7. PÁGINAS INTERNAS
   ======================================== */

/* --- PÁGINA DE ARQUIVO DE SERVIÇOS --- */
.services-hero {
    background: linear-gradient(135deg, var(--verde-principal) 0%, var(--verde-escuro) 100%);
    color: var(--branco);
    padding: 120px 0 80px;
    text-align: center;
}
.services-hero .container { max-width: 800px; }
.services-hero-title { font-size: clamp(2.5rem, 5vw, 3.5rem); font-weight: 800; color: var(--branco); margin-bottom: 1.5rem; line-height: 1.1; }
.services-hero-subtitle { font-size: clamp(1.125rem, 2vw, 1.375rem); opacity: 0.9; line-height: 1.6; }
.services-main { padding: 5rem 0; }
.services-grid { /* Este seletor ainda estava aqui, mas não é mais usado se .grid for usado */
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
    gap: 2.5rem;
    margin-top: 3rem;
}

.services-cta {
    background: var(--verde-principal); /* Ajustado para fundo mais escuro */
    color: var(--branco);
    padding: 2rem 0; /* Ajustado */
    text-align: center;
}
.services-cta .cta-title { font-size: 2.25rem; font-weight: 700; margin-bottom: 1rem; color: var(--branco); }
.services-cta .cta-subtitle { font-size: 1.25rem; opacity: 0.9; margin-bottom: 2.5rem; max-width: 600px; margin-left: auto; margin-right: auto; color: var(--branco); }

/* Responsividade Serviços */
@media (max-width: 768px) {
    .services-grid {
        /* grid-template-columns: 1fr; (Removido, .grid já cuida disso) */
        gap: 1.5rem;
    }
    
    .services-hero {
        padding: 100px 0 60px;
    }
    .services-main {
        padding: 3rem 0;
    }
}

/* --- PÁGINA SINGLE SERVIÇO --- */
.service-single-hero { padding: 120px 0 60px; text-align: center; background: var(--cinza-muito-claro); }
.service-single-image { margin-bottom: 2rem; border-radius: var(--radius-xl); overflow: hidden; max-width: 600px; margin-left: auto; margin-right: auto; }
.service-featured-image { width: 100%; height: auto; border-radius: var(--radius-xl); }
.service-single-title { font-size: clamp(2rem, 4vw, 3rem); font-weight: 800; margin-bottom: 1rem; color: var(--cinza-escuro); }
.service-single-excerpt { font-size: 1.25rem; color: var(--cinza-medio); max-width: 600px; margin: 0 auto; line-height: 1.6; }
.service-single-content { padding: 5rem 0; }
.service-single-grid { display: grid; grid-template-columns: 1fr 300px; gap: 4rem; align-items: start; }
.service-content { font-size: 1.125rem; line-height: 1.7; color: var(--cinza-escuro); }
.service-content h2, .service-content h3, .service-content h4 { margin-top: 2.5rem; margin-bottom: 1rem; color: var(--cinza-escuro); }
.service-content p { margin-bottom: 1.5rem; }
.service-content ul, .service-content ol { margin-bottom: 1.5rem; padding-left: 1.5rem; }
.service-content li { margin-bottom: 0.5rem; }
.service-cta-card { background: var(--branco); padding: 2rem; border-radius: var(--radius-xl); box-shadow: var(--shadow-md); border: 1px solid var(--cinza-claro); text-align: center; position: sticky; top: 100px; }
.service-cta-card h3 { font-size: 1.375rem; margin-bottom: 1rem; color: var(--cinza-escuro); }
.service-cta-card p { margin-bottom: 1.5rem; color: var(--cinza-medio); }
@media (max-width: 1024px) {
    .service-single-grid { grid-template-columns: 1fr; gap: 3rem; }
    .service-cta-card { position: static; }
}

/* --- CTA FINAL --- */
.cta-section {
    padding: 5rem 0; /* Aumentado para 5rem para mais destaque */
    background: linear-gradient(135deg, var(--verde-escuro) 0%, var(--verde-principal) 100%);
    color: var(--branco);
    text-align: center;
}
.cta-section .cta-title { font-size: clamp(2rem, 4vw, 2.5rem); font-weight: 800; color: var(--branco); margin-bottom: 0.75rem; }
.cta-section .cta-subtitle { font-size: clamp(1rem, 2vw, 1.125rem); margin-bottom: 2rem; max-width: 600px; margin-left: auto; margin-right: auto; color: rgba(255, 255, 255, 0.9); }
.cta-section .btn-large {
    background: #FFC900; /* Amarelo do tema */
    color: #1A1A1A;
    border-radius: var(--radius-md);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
    transition: all 0.3s ease;
}
.cta-section .btn-large:hover {
    background: #FFD700; /* Um tom um pouco mais claro no hover */
    transform: translateY(-5px);
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.3);
}

/* --- PÁGINA SOBRE --- */
body.page-template-page-about .site-main { padding-top: 0px; }
.page-template-page-about .container { padding-top: 70px; }
.page-template-page-about .page-title-solid { text-align: center; color: white; }
.page-template-page-about .page-subtitle-solid{ text-align: center; color: white; padding-top: 10px; padding-bottom: 10px; }
.history-content .p{ text-align: justify; }
.history-stats-grid { display: grid; grid-template-columns: 2fr 1fr; gap: 4rem; align-items: start; }
.history-subsection { display: flex; align-items: flex-start; gap: 1.5rem; margin-top: 2rem; }
.history-subsection .subsection-icon { color: var(--verde-principal); background-color: var(--cinza-muito-claro); padding: 0.75rem; border-radius: var(--radius-full); display: flex; align-items: center; justify-content: center; }
.stats-cards-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem; }
.stat-card-compact {
    background-color: var(--branco);
    border: 1px solid var(--cinza-claro);
    border-radius: 8px;
    padding: var(--spacing-md);
    text-align: center;
    transition: all 0.3s ease; background-color: #fff; border: 1px solid var(--cinza-claro); border-radius: var(--radius-lg); padding: 1.5rem 1rem; text-align: center; box-shadow: var(--shadow-sm); }
.stat-number-compact { font-size: var(--text-3xl); font-weight: 700; color: var(--verde-principal); }
.stat-label-compact { font-size: var(--text-sm); color: var(--cinza-medio); margin-top: 0.5rem; }
.pillars-section.bg-light { background-color: var(--cinza-muito-claro) !important; }
.pillar-card { background-color: var(--branco); padding: 2.5rem 2rem; text-align: center; border-radius: var(--radius-lg); box-shadow: var(--shadow-md); transition: var(--transition-normal); }
.pillar-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-xl); }
.pillar-icon-large { color: var(--verde-principal); margin-bottom: 1.5rem; }
.location-section .location-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: center; }
.location-map img { border-radius: var(--radius-xl); }
.cta-section { padding: 1rem 0 !important; background: var(--verde-principal) !important; }

.location-section{
    background-color: white;

}
/* --- AJUSTE MAPA DE ATUAÇÃO V2 --- */

/* 1. Força o layout de 1 coluna (isso já funcionou) */
.page-template-page-about .location-section .location-grid {
    grid-template-columns: 1fr !important;
}

/* 2. Pega o 'div' do plugin (o primeiro 'div' dentro de .location-map) */
.location-map > div:first-child {
    /* * Esta é a mágica: 
     * Centraliza o 'div' do plugin 
     * e define o "bem maior" (max-width)
    */
    width: 100% !important;
    max-width: 800px !important;  /* <-- Mude este valor se quiser maior ou menor */
    height: auto !important;
    margin: 0 auto !important; /* <-- Centraliza o 'div' */
}

/* 3. Força o mapa (SVG) a preencher o 'div' do plugin */
.location-map svg {
    width: 100% !important;
    height: auto !important;
}

/* 4. (Bônus) Centraliza sua legenda e o texto para tudo ficar alinhado */
.location-map .map-legend,
.location-section .location-content {
    max-width: 800px; /* <-- Use o mesmo valor do mapa */
    margin-left: auto;
    margin-right: auto;
}

/* 5. (Bônus) Centraliza o texto da descrição */
.location-section .location-content {
    text-align: center;
}

@media (max-width: 992px) {
    .page-template-page-about .about-history-stats .history-stats-grid,
    .page-template-page-about .location-section .location-grid { grid-template-columns: 1fr; gap: 2.5rem; }
}
@media (max-width: 768px) {
    .page-template-page-about .stats-cards-grid { grid-template-columns: 1fr; }
}

/* --- HERO SIMPLES (Páginas Internas) --- */
.hero-simple {
    background: var(--verde-principal);
    color: var(--branco);
    padding: 120px 0 50px;
    text-align: center;
}
.hero-simple h1 {
    color: var(--branco);
    font-size: var(--text-4xl);
    margin-bottom: 0.5rem;
}
.hero-simple p {
    color: rgba(255, 255, 255, 0.9);
    max-width: 900px;
    font-size: 19px;
    margin-left: auto;
    margin-right: auto;
}

/* --- LAYOUT SINGLE (Projeto, Serviço, Notícia) --- */
.content-wrapper {
    background-color: var(--cinza-muito-claro); /* Cor de fundo para as páginas single */
    padding: var(--spacing-xl);
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.05);
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 3rem;
    align-items: flex-start;
}

@media (max-width: 992px) {
    .content-wrapper {
    background-color: var(--branco);
    padding: var(--spacing-xl);
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.05); grid-template-columns: 1fr; }
    aside { position: static; margin-top: 3rem; }
}

/* Conteúdo (Single) */
.content-main h2, .content-main h3, .content-main h4 { margin-top: 2.5rem; margin-bottom: 1rem; line-height: 1.3; }
.content-main p { line-height: 1.8; margin-bottom: 1.5rem; }
.content-main ul, .content-main ol { margin-bottom: 1.5rem; padding-left: 1.5rem; }
.content-main li { margin-bottom: 0.75rem; }
.content-main a { text-decoration: underline; font-weight: 600; }


.content-main .wp-block-gallery.has-nested-images { margin: 2rem 0; }
.content-main .wp-block-image img {
    width: 100%;
    height: auto;
    object-fit: cover;
    border-radius: var(--radius-md);
    transition: all 0.3s ease;
    border: none;
}

/* Sidebar (Single) */
.sidebar-card {
    background-color: var(--cinza-muito-claro);
    padding: var(--spacing-lg);
    border-radius: 8px;
    border: 1px solid var(--cinza-claro);
    background: var(--branco);
    border: 1px solid var(--cinza-claro);
    border-radius: var(--radius-lg);
    padding: 1.5rem;
}
.sidebar-card h3 {
    font-size: var(--text-lg);
    margin-bottom: 1rem;
    border-bottom: 1px solid var(--cinza-claro);
    padding-bottom: 0.75rem;
}
.sidebar-info { display: flex; flex-direction: column; gap: 1rem; }
.sidebar-info-item { display: flex; align-items: center; gap: 0.75rem; color: var(--cinza-escuro); }
.sidebar-info-item svg { color: var(--verde-principal); flex-shrink: 0; }
.sidebar-info-item strong { display: block; font-size: var(--text-sm); color: var(--cinza-medio); }
.sidebar-card.cta-card { background: var(--cinza-muito-claro); }
.cta-card p { font-size: var(--text-base); color: var(--cinza-medio); margin-bottom: 1.5rem; }

/* Sidebar Específica (Single Serviço) */

.other-services ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0.75rem; }
.other-services li a { display: block; color: var(--cinza-escuro); font-weight: 600; padding: 0.5rem; border-radius: var(--radius-md); transition: all 0.2s ease; }
.other-services li a:hover { background-color: var(--cinza-muito-claro); color: var(--verde-principal); }
@media (max-width: 1024px) {
    .service-single-sidebar { position: static; margin-top: 3rem; }
}

/* --- WHATSAPP FLUTUANTE --- */
@keyframes pulse {
    50% { box-shadow: 0 0 0 15px rgba(37, 211, 102, 0); }
}
.whatsapp-float { animation: pulse 2s infinite; } 

/* --- PORTFOLIO FILTER --- */
.portfolio-filter {
    display: flex;
    justify-content: center;
    gap: 1rem;
    margin-bottom: 3rem;
    flex-wrap: wrap;
}
.portfolio-filter a {
    padding: 0.5rem 1.25rem;
    border: 1px solid var(--cinza-claro);
    border-radius: var(--radius-full);
    color: var(--cinza-medio);
    font-weight: 600;
    transition: all 0.3s ease;
}
.portfolio-filter a:hover {
    background-color: var(--cinza-muito-claro);
    border-color: var(--verde-principal);
    color: var(--verde-principal);
}
.portfolio-filter a.active {
    background-color: var(--verde-principal);
    border-color: var(--verde-principal);
    color: var(--branco);
}

/* --- POST NAVIGATION --- */
.post-navigation {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 3rem;
    padding-top: 2rem;
    border-top: 1px solid var(--cinza-claro);
}
.post-navigation a { font-weight: 600; color: var(--cinza-medio); }
.post-navigation a:hover { color: var(--verde-principal); }
.post-navigation .nav-all a {
    padding: 0.5rem 1rem;
    border: 1px solid var(--cinza-claro);
    border-radius: var(--radius-md);
}

/* --- FILTRO DE NOTÍCIAS (News Filter) --- */
.news-filter-section {
    background: var(--cinza-muito-claro);
    padding: 2rem 0;
    margin-bottom: 2rem;
    border-bottom: 1px solid var(--cinza-claro);
}
.news-filter-header { text-align: center; margin-bottom: 1.5rem; }
.news-filter-header h3 { color: var(--cinza-escuro); font-size: var(--text-lg); font-weight: 600; margin: 0; }
.news-filter-tabs { display: flex; justify-content: center; gap: 0.75rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.filter-tab {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1.5rem;
    background: var(--branco);
    border: 2px solid var(--cinza-claro);
    border-radius: var(--radius-full);
    color: var(--cinza-medio);
    font-weight: 600;
    font-size: var(--text-sm);
    cursor: pointer;
    transition: all 0.3s ease;
    white-space: nowrap;
}
.filter-tab:hover {
    border-color: var(--verde-principal);
    color: var(--verde-principal);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}
.filter-tab.active {
    background: var(--verde-principal);
    border-color: var(--verde-principal);
    color: var(--branco);
    box-shadow: 0 4px 12px rgba(22, 163, 74, 0.2);
}
.filter-tab svg { flex-shrink: 0; }
.news-results-count { text-align: center; color: var(--cinza-medio); font-size: var(--text-sm); font-weight: 500; }
.news-card.filter-hidden { display: none; }
.news-card.filter-visible { display: block; animation: fadeInUp 0.5s ease; }
@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}
.news-grid-filtering .news-card { transition: all 0.3s ease; }
.news-grid-filtering .news-card.filter-hidden { opacity: 0; transform: scale(0.8); }

@media (max-width: 480px) {
    .news-filter-tabs { justify-content: flex-start; overflow-x: auto; padding-bottom: 0.5rem; }
    .filter-tab { flex-shrink: 0; }
}



/* ========================================
   10. RESPONSIVIDADE FINAL
   ======================================== */


/* --- Telas Médias (Tablets, Laptops Pequenos) --- */

@media (max-width: 1024px) {

    /* Layout Single Serviço */

    .service-single-grid { grid-template-columns: 1fr; gap: 3rem; } /* */

    .service-cta-card { position: static; } /* */

    .service-single-sidebar { position: static; margin-top: 3rem; } /* */

}

@media (max-width: 992px) {

    /* Grids Gerais */
    

    .grid-cols-4, .grid-cols-3 { grid-template-columns: repeat(2, 1fr); } /* */
    /* Footer */

    .footer-grid { grid-template-columns: 1fr 1fr; } /* */
    /* Seção Processo (Home) */

    .process-grid-container { grid-template-columns: 1fr; } /* */

    .process-image { height: 400px; } /* */

    .process-grid-container::before { display: none; } /* */
    /* Layout Single (Geral) */

    .content-wrapper {
    background-color: var(--branco);
    padding: var(--spacing-xl);
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.05); grid-template-columns: 1fr; } /* */

    aside { position: static; margin-top: 3rem; } /* */

}

/* --- Telas Médias (Tablets, Laptops Pequenos) --- */
@media (max-width: 1024px) {
    /* Layout Single Serviço */
    .service-single-grid { grid-template-columns: 1fr; gap: 3rem; } /* */
    .service-cta-card { position: static; } /* */
    .service-single-sidebar { position: static; margin-top: 3rem; } /* */
}

@media (max-width: 992px) {
    /* Grids Gerais */
    .grid-cols-4, .grid-cols-3 { grid-template-columns: repeat(2, 1fr); } /* */

    /* Footer */
    .footer-grid { grid-template-columns: 1fr 1fr; } /* */

    /* Seção Processo (Home) */
    .process-grid-container { grid-template-columns: 1fr; } /* */
    .process-image { height: 400px; } /* */
    .process-grid-container::before { display: none; } /* */

    /* Layout Single (Geral) */
    .content-wrapper {
    background-color: var(--branco);
    padding: var(--spacing-xl);
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.05); grid-template-columns: 1fr; } /* */
    aside { position: static; margin-top: 3rem; } /* */

    /* Menu Mobile */
    .main-navigation { display: none; } /* */
    .mobile-menu-toggle { display: block; } /* */
    .header-container { grid-template-columns: auto 1fr auto; } /* */

    /* Página Sobre */
    .page-template-page-about .about-history-stats .history-stats-grid,
    .page-template-page-about .location-section .location-grid { grid-template-columns: 1fr; gap: 2.5rem; } /* */
}

/* --- Telas Pequenas (Tablets Verticais, Celulares Grandes) --- */
@media (max-width: 768px) {
    /* Ajustes Gerais de Fonte */
    h1 { font-size: var(--text-3xl); }
    h2 { font-size: var(--text-2xl); }
    h3 { font-size: var(--text-xl); }
    .section-title { font-size: var(--text-2xl); }

    /* Seções */
    .section { padding: 3rem 0; } /* */

    /* Hero Section */
    .hero-section { min-height: auto; padding: 100px 0 60px; background-attachment: scroll; text-align: center; } /* */
    .hero-title { font-size: var(--text-4xl); line-height: 1.2; }
    .hero-subtitle { font-size: var(--text-lg); }

    /* Grids Gerais */
    .grid-cols-2, .grid-cols-3, .grid-cols-4 { grid-template-columns: 1fr; } /* */

    /* Urgency Banner */
    .urgency-content { flex-direction: column; gap: 1rem; } /* */

    /* Processo Mobile */
    .process-timeline { border-left: none; padding-left: 0; } /* */
    .process-step { margin-left: 0; padding: 1.5rem; padding-top: 4.5rem; margin-bottom: 3rem; } /* */
    .process-number { top: -35px; left: 50%; transform: translateX(-50%); width: 70px; height: 70px; font-size: 2rem; border-width: 3px; } /* */

    /* Carrossel Depoimentos */
    .testimonials-carousel { padding: 0 1rem; } /* */
    .swiper-button-prev, .swiper-button-next { display: none; } /* */

    /* FAQ */
    .faq-list { margin: 2rem auto 0; border-radius: var(--radius-lg); } /* */
    .faq-question { padding: 1.5rem 1.25rem; font-size: 1rem; align-items: flex-start; } /* */
    .faq-question:hover { padding-left: 1.25rem; } /* */
    .faq-icon { width: 18px; height: 18px; min-width: 18px; } /* */
    .faq-answer { padding: 0 1.25rem; } /* */
    .faq-item.active .faq-answer { padding: 0 1.25rem 1.5rem; } /* */

    /* Página Sobre */
    .page-template-page-about .stats-cards-grid { grid-template-columns: 1fr; } /* */

    /* Página Serviços (Archive) */
    .services-main { padding: 3rem 0; } /* */
    .services-hero { padding: 100px 0 60px; } /* */

    /* Card Universal */
    .card-content { padding: var(--spacing-md); }
    .card-image { height: 160px; }
    .card-badge { top: 0.75rem; right: 0.75rem; font-size: 0.7rem; padding: 0.2rem 0.6rem; }

    /* Filtro de Notícias */
    .news-filter-section { padding: 1.5rem 0; } /* */
    .news-filter-tabs { gap: 0.5rem; } /* */
    .filter-tab { padding: 0.6rem 1rem; font-size: var(--text-xs); } /* */
}

/* --- Telas Muito Pequenas (Celulares) --- */
@media (max-width: 480px) {
    /* Filtros com scroll horizontal */
    .news-filter-tabs, .portfolio-filter {
        justify-content: flex-start; /* */
        overflow-x: auto; /* */
        padding-bottom: 0.5rem; /* */
        -ms-overflow-style: none; scrollbar-width: none; /* Esconde scrollbar */
    }
    .news-filter-tabs::-webkit-scrollbar, .portfolio-filter::-webkit-scrollbar {
        display: none; /* Esconde scrollbar */
    }
    .filter-tab, .portfolio-filter a {
        flex-shrink: 0; /* Impede que botões encolham */
    }
}

/* ===== REGRA MAIS IMPORTANTE ===== */
.site-header {
  z-index: 100 !important; 
}


/* ===== Botão hamburguer ===== */
.mobile-menu-toggle {
  display: block;
  cursor: pointer;
  width: 30px;
  height: 22px;
  position: fixed;
  top: 18px;
  right: 20px;
  /* z-index alto para ficar acima do header (100) */
  z-index: 101;
  background: transparent;
  border: none;
}

.mobile-menu-toggle span {
  display: block;
  position: absolute;
  height: 2px;
  width: 100%;
  background: #141010;
  border-radius: 4px;
  left: 0;
  transition: all 0.35s cubic-bezier(0.645, 0.045, 0.355, 1);
}

.mobile-menu-toggle span:nth-child(1) { top: 0; }
.mobile-menu-toggle span:nth-child(2) { top: 10px; }
.mobile-menu-toggle span:nth-child(3) { top: 20px; }

/* Cor após rolagem */
.site-header.scrolled .mobile-menu-toggle span {
  background: var(--cinza-escuro);
}

/* Animação ao abrir (Não importa se aparece, já desistimos do X) */
body.menu-open .mobile-menu-toggle span:nth-child(1) {
  transform: translateY(10px) rotate(45deg);
}
body.menu-open .mobile-menu-toggle span:nth-child(2) {
  opacity: 0;
}
body.menu-open .mobile-menu-toggle span:nth-child(3) {
  transform: translateY(-10px) rotate(-45deg);
}

/* ===== Container lateral ===== */
.mobile-nav-container {
  position: fixed;
  top: 0;
  right: -100%; 
  
  /* OK: Largura automática baseada no texto */
  width: auto; 
  max-width: none;
  
  height: 100%;
  backdrop-filter: blur(10px);
  background: rgba(255, 255, 255, 0.8);
  border-left: 1px solid rgba(0, 0, 0, 0.1);
  box-shadow: -5px 0 25px rgba(0, 0, 0, 0.1);
  
  /* AJUSTE: O z-index MAIS ALTO de todos */
  z-index: 2000; 
  
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: 3rem 2rem; 
  opacity: 0;
  visibility: hidden;
  transition: right 0.5s ease, opacity 0.4s ease, visibility 0.4s;
}

/* Quando aberto */
body.menu-open .mobile-nav-container {
  right: 0;
  opacity: 1;
  visibility: visible;
}

/* ===== Navegação ===== */
.mobile-navigation ul {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.mobile-navigation ul a {
  color: #141010;
  text-decoration: none;
  font-size: 1.3rem;
  font-weight: 500;
  transition: color 0.2s ease-in-out, transform 0.25s ease;
  white-space: nowrap; 
}

.mobile-navigation ul a:hover {
  color: var(--verde-principal);
  transform: translateX(5px);
}

/* ===== Overlay ===== */
.menu-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(20, 16, 16, 0.3);
  backdrop-filter: blur(2px);
  opacity: 0;
  visibility: hidden;
  
  /* AJUSTE: z-index acima do header (100) e abaixo do menu (2000) */
  z-index: 1999;
  
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

body.menu-open .menu-overlay {
  opacity: 1;
  visibility: visible;
  /* Adiciona o atributo para o JS saber que ele existe */
  aria-hidden: "false";
}
body:not(.menu-open) .menu-overlay {
    aria-hidden: "true";
}


/* ===== Desktop ===== */
@media (min-width: 1025px) {
  .mobile-menu-toggle,
  .mobile-nav-container,
  .menu-overlay {
    display: none;
  }
}



/* ========================================
   11. FLUENT FORMS
   ======================================== */
/* --- HERO FORM (VERSÃO MENOR) --- */
.form-hero-card .fluentform {
    padding-top: 0.5rem;
}
.form-hero-card .fluentform .ff-el-group {
    margin-bottom: 0.8rem !important;
}
.form-hero-card .fluentform .ff-el-group:last-of-type:not(.ff_submit_btn_wrapper) {
     margin-bottom: 1rem !important;
}
.form-hero-card .fluentform .ff-el-input--label label {
    font-size: 0.75rem;
    font-weight: 600;
    color: #1f2937;
    margin-bottom: 0.25rem;
    display: block;
}
.form-hero-card .fluentform .ff-el-input--label.ff-el-is-required.asterisk-right label::after {
    content: " *";
    color: #cf2e2e;
    font-weight: normal;
    margin-left: 2px;
}
.form-hero-card .fluentform .ff-el-form-control {
    border: 1px solid #d1d5db;
    border-radius: 0.4rem;
    padding: 0.5rem 0.8rem;
    font-size: 0.875rem;
    color: #1f2937;
    width: 100%;
    box-sizing: border-box;
    transition: border-color 150ms ease, box-shadow 150ms ease;
    margin: 0;
}
.form-hero-card .fluentform .ff-el-form-control::placeholder {
    color: #6b7280;
    opacity: 0.8;
    font-size: 0.875rem;
}
.form-hero-card .fluentform .ff-el-form-control:focus {
    border-color: #16a34a !important;
    box-shadow: 0 0 0 2px rgba(22, 163, 74, 0.1) !important;
    outline: none;
}
.form-hero-card .fluentform select.ff-el-form-control {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%236b7280%22%20d%3D%22M287%2069.4a17.6%2C17.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.6-3.5%205.4-7.8%205.4-12.8%200-5-1.8-9.2-5.4-12.8z%22%2F%3E%3C%2Fsvg%3E');
    background-repeat: no-repeat;
    background-position: right 0.8rem center;
    background-size: 0.6em auto;
    padding-right: 2.5rem;
    height: auto;
}
.form-hero-card .fluentform .ff-btn-submit {
    background-color: #16a34a !important;
    color: #ffffff !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    padding: 0.6rem 1.2rem !important;
    border: none !important;
    border-radius: 0.4rem !important;
    cursor: pointer;
    transition: background-color 300ms ease, transform 300ms ease, box-shadow 300ms ease !important;
    width: 100%;
    box-sizing: border-box;
    font-size: 0.875rem;
    text-align: center;
}
.form-hero-card .fluentform .ff-btn-submit:hover {
    background-color: #15803d !important;
    transform: translateY(-1px);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);
}
.form-hero-card .fluentform .ff_submit_btn_wrapper {
    text-align: inherit;
    margin-top: 0.8rem;
}

/* --- FORMULÁRIO PÁGINA CONTATO --- */
.page-template-page-contact .fluentform .ff-btn-submit {
    background-color: #16a34a !important;
    color: #ffffff !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    padding: 0.9rem 1.5rem !important;
    border: none !important;
    border-radius: 0.5rem !important;
    cursor: pointer;
    transition: background-color 300ms ease, transform 300ms ease, box-shadow 300ms ease !important;
    width: 100%;
    box-sizing: border-box;
    font-size: 1rem;
    text-align: center;
    line-height: normal;
}
.page-template-page-contact .fluentform .ff-btn-submit:hover {
    background-color: #15803d !important;
    transform: translateY(-2px);
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
}
.page-template-page-contact .fluentform .ff-el-form-control {
    border-radius: 0.5rem;
    padding: 0.8rem 1rem;
    font-size: 1rem;
    border: 1px solid #d1d5db;
    transition: border-color 150ms ease, box-shadow 150ms ease;
}
.page-template-page-contact .fluentform .ff-el-form-control:focus {
    border-color: #16a34a !important;
    box-shadow: 0 0 0 3px rgba(22, 163, 74, 0.15) !important;
    outline: none;
}
.page-template-page-contact .fluentform .ff-el-input--label label {
    font-weight: 600;
    color: #1f2937;
    margin-bottom: 0.4rem;
}
.page-template-page-contact .sidebar-card .footer-social .social-link svg {
    color: #16a34a !important;
    transition: color 150ms ease;
}
.page-template-page-contact .sidebar-card .footer-social .social-link:hover svg {
    color: #15803d !important;
}
.page-template-page-about .team-section .section-subtitle {
    margin-bottom: 3rem;
}



/* Melhorias na Apresentação do Texto (Single Serviço) */
.content-main h3 {
    margin-top: 2.5rem;
    margin-bottom: 1.5rem;
    font-size: var(--text-2xl);
    padding-bottom: 0.5rem;
    border-bottom: 2px solid var(--cinza-claro);
}

.content-main ul {
    list-style: none;
    padding: 0;
    margin-top: 2rem;
}

.content-main ul li {
    background-color: var(--cinza-muito-claro);
    padding: 1.5rem;
    border-radius: 8px;
    margin-bottom: 1rem;
    border-left: 4px solid var(--verde-principal);
    transition: all 0.3s ease;
}

.content-main ul li:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 20px rgba(0,0,0,0.08);
}


/* ========================================
   BACKGROUNDS COM IMAGENS E CORES ALTERNADAS
   ======================================== */

/* Background com imagem */
.section-bg-image {
    position: relative;
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
}

.section-bg-image::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.6);
    z-index: 1;
}

.section-bg-image .container {
    position: relative;
    z-index: 2;
}

.section-bg-image .section-title,
.section-bg-image .section-subtitle,
.section-bg-image .title-accent {
    color: var(--branco);
}

/* Background verde escuro */
.section-bg-dark-green {
    background-color: var(--verde-escuro);
    color: var(--branco);
}

.section-bg-dark-green .section-title,
.section-bg-dark-green .section-subtitle {
    color: var(--branco);
}

/* Background com gradiente */
.section-bg-gradient {
    background: linear-gradient(135deg, var(--verde-principal) 0%, var(--verde-escuro) 100%);
    color: var(--branco);
}

.section-bg-gradient .section-title,
.section-bg-gradient .section-subtitle {
    color: var(--branco);
}

/* ========================================
   ESTILOS PARA SEÇÃO DE SOBRE NA HOME
   ======================================== */

.about-content-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    align-items: start;
    margin-top: 2rem;
}

.about-text {
    font-size: var(--text-lg);
    line-height: 1.8;
    color: var(--cinza-escuro);
}

.about-text p {
    margin-bottom: 1.5rem;
}

.about-stats {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem;
}

.stat-card-home {
    background: var(--branco);
    padding: 2rem 1.5rem;
    border-radius: var(--radius-lg);
    text-align: center;
    box-shadow: var(--shadow-md);
    transition: var(--transition-normal);
    border-top: 4px solid var(--verde-principal);
}

.stat-card-home:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow-xl);
}

.stat-number-home {
    font-size: var(--text-4xl);
    font-weight: 800;
    color: var(--verde-principal);
    margin-bottom: 0.5rem;
}

.stat-label-home {
    font-size: var(--text-sm);
    color: var(--cinza-medio);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* ========================================
   ESTILOS PARA SEÇÃO DE PROJETOS NA HOME
   ======================================== */

.projects-carousel {
    position: relative;
    padding: 2rem 0;
}

.project-card-carousel {
    background: var(--branco);
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-md);
    transition: var(--transition-normal);
    height: 100%;
    display: flex;
    flex-direction: column;
}

.project-card-carousel:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow-xl);
}

.project-card-image {
    width: 100%;
    height: 250px;
    background-size: cover;
    background-position: center;
    position: relative;
}

.project-location-badge {
    position: absolute;
    bottom: 1rem;
    left: 1rem;
    background: rgba(0, 0, 0, 0.7);
    color: var(--branco);
    padding: 0.5rem 1rem;
    border-radius: var(--radius-full);
    font-size: var(--text-sm);
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.project-location-badge svg {
    color: var(--verde-claro);
}

.project-card-content {
    padding: 1.5rem;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.project-card-title {
    font-size: var(--text-xl);
    font-weight: 700;
    color: var(--cinza-escuro);
    margin-bottom: 1rem;
}

.project-card-description {
    font-size: var(--text-base);
    color: var(--cinza-medio);
    line-height: 1.6;
    margin-bottom: 1.5rem;
    flex: 1;
}

.project-card-link {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--verde-principal);
    font-weight: 600;
    text-decoration: none;
    transition: var(--transition-fast);
}

.project-card-link:hover {
    gap: 0.75rem;
}

.project-card-link svg {
    transition: var(--transition-fast);
}

/* ========================================
   ESTILOS PARA SEÇÃO DE NOTÍCIAS NA HOME
   ======================================== */

.news-grid-home {
    margin-top: 2rem;
}
/* --- Correção da Seção de Notícias (Home) --- */

/* 1. Centraliza o botão "VER TODAS AS NOTÍCIAS" */
.news-section .section-footer {
    text-align: center;
    margin-top: 2.5rem; /* Adiciona um espaço abaixo do carrossel */
}

/* 2. Tira as "bolinhas" (paginação) de dentro da imagem */
.news-section .swiper-pagination {
    position: relative; /* Tira do 'position: absolute' padrão */
    bottom: auto;       /* Reseta a posição 'bottom' */
    margin-top: 2rem;   /* Joga as bolinhas para baixo */
}

/* 3. (Opcional) Estiliza as bolinhas para combinar com o resto do site */
.news-section .swiper-pagination-bullet {
    background-color: #CCCCCC;
    opacity: 0.8;
}

.news-section .swiper-pagination-bullet-active {
    /* (Use sua cor principal, estou chutando a do seu botão) */
    background-color: #FFC900; 
    opacity: 1;
}

/* Responsividade para seções novas */
@media (max-width: 768px) {
    .about-content-grid {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
    
    .about-stats {
        grid-template-columns: 1fr;
    }
    
    .project-card-image {
        height: 200px;
    }
}

/* ===== AJUSTE DEFINITIVO PARA A PÁGINA DE SERVIÇOS ===== */

/* 1. Aumenta o espaço entre os cards */
.archive-servicos .grid {
    gap: 2.5rem !important;
}

/* 2. Cards mais altos e proporcionais */
.archive-servicos .card {
    height: auto !important;
    min-height: 480px;
    display: flex;
    flex-direction: column;
}

/* 3. Imagem maior e uniforme */
.archive-servicos .card-image {
    height: 260px !important;
    border-radius: 12px;
    object-fit: cover;
    width: 100%;
}

/* 4. Título pode ocupar até 3 linhas */
.archive-servicos .card-title {
    -webkit-line-clamp: 3 !important;
}

/* 5. Descrição pode ocupar até 5 linhas */
.archive-servicos .card-description {
    -webkit-line-clamp: 5 !important;
    flex-grow: 1;
}

/* 6. Link sempre alinhado ao final */
.archive-servicos .card-link {
    margin-top: auto;
}

/* 7. Responsivo */
@media (max-width: 768px) {
    .archive-servicos .grid {
        grid-template-columns: 1fr !important;
        gap: 2rem !important;
    }

    .archive-servicos .card-image {
        height: 200px !important;
    }

    .archive-servicos .card {
        min-height: auto;
    }
}
