/* ==========================================================================
   Identidade Visual CIE Recife (Paleta Extraída do Logo)
   ========================================================================== */
:root {
    --primary-dark: #12346b;   /* Azul Royal */
    --primary-light: #1e73be;  /* Azul Médio */
    --accent-orange: #db400a;  /* Laranja Destaque */
    --accent-blue: #4a8eff;    /* Azul Claro */
    --warning: #ffc107;        /* Amarelo de Alerta */
    --body-bg: #f5f7fa;        /* Fundo Neutro Claro */
}

html {
    scroll-behavior: smooth;
}

body {
    background-color: var(--body-bg);
    font-family: 'Manrope', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
    padding-top: 78px; /* Espaçamento ajustado para a navbar contendo o logo + texto */
}

/* ==========================================================================
   Utilitários de Cores (Sobrescrita do Bootstrap)
   ========================================================================== */
.bg-primary-dark { background-color: var(--primary-dark) !important; }
.bg-primary-light { background-color: var(--primary-light) !important; }
.bg-body-custom { background-color: var(--body-bg) !important; }

.text-primary-dark { color: var(--primary-dark) !important; }
.text-primary-light { color: var(--primary-light) !important; }
.text-accent-orange { color: var(--accent-orange) !important; }
.text-accent-blue { color: var(--accent-blue) !important; }

/* O Bootstrap só gera utilitários border-* para as cores do próprio tema,
   então as cores da identidade CIE precisam ser declaradas aqui. */
.border-primary-dark { border-color: var(--primary-dark) !important; }
.border-primary-light { border-color: var(--primary-light) !important; }
.border-accent-orange { border-color: var(--accent-orange) !important; }
.border-accent-blue { border-color: var(--accent-blue) !important; }

.hover-white:hover { color: white !important; }

/* ==========================================================================
   Navbar e Botões
   ========================================================================== */
.navbar {
    box-shadow: 0 2px 10px rgba(0,0,0,0.1);
    transition: padding 0.3s ease, box-shadow 0.3s ease;
}

/* Logo institucional na navbar (fundo branco para contrastar com o azul royal) */
.navbar-logo {
    height: 52px;
    width: auto;
    background-color: #fff;
    padding: 4px 8px;
    border-radius: 8px;
}

@media (max-width: 575.98px) {
    .navbar-logo {
        height: 42px;
        padding: 3px 6px;
    }

    /* Logo menor => navbar menor: o padding do body acompanha para não
       abrir uma faixa do fundo claro abaixo da navbar fixa. */
    body {
        padding-top: 68px;
    }
}

/* Botões Globais */
.btn-accent-orange {
    background-color: var(--accent-orange);
    color: white;
    border: none;
    transition: all 0.3s ease;
}

.btn-accent-orange:hover {
    background-color: #b83508; 
    color: white;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(219, 64, 10, 0.4) !important;
}

.btn-outline-accent-blue {
    color: var(--accent-blue);
    border-color: var(--accent-blue);
}

.btn-outline-accent-blue:hover {
    background-color: var(--accent-blue);
    color: white;
}

/* Estilo específico para o botão de "Acesso Restrito" */
.btn-restricted {
    border: 2px solid var(--accent-blue);
    color: var(--accent-blue);
    background: transparent;
    transition: all 0.3s ease;
}

.btn-restricted:hover {
    background: var(--accent-blue);
    color: white;
    box-shadow: 0 4px 12px rgba(74, 142, 255, 0.3);
    transform: translateY(-2px);
}

/* ==========================================================================
   Hero Section (Área de Destaque Superior)
   ========================================================================== */
.hero-section {
    background: linear-gradient(135deg, var(--primary-dark) 0%, var(--primary-light) 100%);
    min-height: 45vh;
    padding: 80px 0; /* Ajuste no padding para compensar a base reta */
    /* A propriedade clip-path que inclinava a borda foi removida daqui */
}

/* Fotos da equipe ao fundo do hero da home (#inicio apenas: o gestao.html
   reaproveita .hero-section e não deve receber as fotos).
   O ::before empilha as três imagens dessaturadas e o gradiente azul por cima,
   mantendo o contraste do título — o texto fica no ::after/conteúdo acima. */
#inicio {
    position: relative;
    overflow: hidden;
    isolation: isolate;
}

/* Cada foto ocupa um terço da largura, em um flex item próprio, com
   object-fit: cover — assim a imagem é recortada em vez de esticada quando
   a tela é larga (background-size percentual deformava a proporção). */
#inicio .hero-photos {
    position: absolute;
    inset: 0;
    z-index: -1;
    display: flex;
    filter: grayscale(100%) contrast(105%);
    opacity: 0.22;
    pointer-events: none;
}

#inicio .hero-photos img {
    flex: 1 1 0;
    min-width: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    /* As três fotos são retrato (0,75 e 0,56) recortadas em painéis largos:
       o cover amplia muito e corta a altura. As pessoas estão na faixa central
       do enquadramento, então o recorte é ancorado em 48% — acima disso entrava
       teto/luminária e os rostos ficavam colados na borda inferior. */
    object-position: center 48%;
}

/* cie3.jpg é mais estreita (720x1280) que as outras duas, logo é ampliada com
   mais intensidade e seus rostos caem mais baixo: ancoragem própria. */
#inicio .hero-photos img:last-child {
    object-position: center 42%;
}

/* Véu azul por cima das fotos, para o texto branco continuar legível. */
#inicio::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(135deg, rgba(18, 52, 107, 0.82) 0%, rgba(30, 115, 190, 0.72) 100%);
}

@media (max-width: 767.98px) {
    /* Em telas estreitas as três fotos lado a lado viram faixas ilegíveis;
       mantém-se apenas a foto da equipe, ocupando todo o hero. */
    #inicio .hero-photos {
        opacity: 0.18;
    }

    #inicio .hero-photos img:not(:last-child) {
        display: none;
    }
}

/* ==========================================================================
   Página de Gestão (Estilos para gestao.html)
   ========================================================================== */
.restricted-area {
    background-color: #e9ecef;
}

.restricted-hero {
    background: linear-gradient(135deg, #0a1b35 0%, #12346b 100%) !important;
    border-bottom: 5px solid var(--warning);
}

.list-group-item-action:hover {
    background-color: rgba(30, 115, 190, 0.05);
    border-left: 4px solid var(--warning) !important;
}

/* ==========================================================================
   Cards de Atividades (Assimetria)
   ========================================================================== */
.activity-card {
    border-radius: 37px;
    border-top-right-radius: 0;
    box-shadow: 0 4px 6px rgba(0,0,0,0.05);
    border: 1px solid rgba(128, 128, 128, 0.1) !important;
}

.activity-card .icon-wrapper {
    background-color: #ebf1f7;
    width: 70px;
    height: 70px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.3s, background-color 0.3s, color 0.3s;
}

.activity-card:hover .icon-wrapper {
    transform: scale(1.1);
    background-color: var(--primary-light);
    color: white !important;
}

/* ==========================================================================
   Equipe
   ========================================================================== */
.team-member {
    max-width: 300px;
    margin: 0 auto;
}

/* object-fit: cover recorta sem distorcer (as fotos têm proporções diferentes)
   e o position 50% 20% mantém o rosto enquadrado nas fotos em retrato. */
.team-photo {
    width: 160px;
    height: 160px;
    border-radius: 50%;
    object-fit: cover;
    object-position: 50% 20%;
    border: 4px solid #fff;
    box-shadow: 0 0 0 3px var(--primary-light), 0 6px 16px rgba(18, 52, 107, 0.18);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.team-member:hover .team-photo {
    transform: translateY(-4px) scale(1.03);
    box-shadow: 0 0 0 3px var(--accent-orange), 0 10px 22px rgba(18, 52, 107, 0.28);
}

.team-role {
    color: var(--primary-light);
    font-size: 0.9rem;
}

.team-bio {
    line-height: 1.5;
    text-align: justify;
    text-align-last: center;
}

@media (max-width: 575.98px) {
    .team-photo {
        width: 135px;
        height: 135px;
    }
}

/* ==========================================================================
   Página da Equipe (equipe.html)
   ========================================================================== */
/* Página dividida ao meio: institucional em branco à esquerda, equipe em
   cinza à direita. Abaixo de lg as metades empilham — lado a lado elas
   ficariam estreitas demais para as fotos e para o texto corrido. */
.equipe-split {
    display: flex;
    flex-direction: column;
}

.equipe-split-info {
    background-color: #ffffff;
}

.equipe-split-team {
    background-color: #e9ecef; /* mesmo cinza usado na área restrita */
}

.equipe-split-inner {
    max-width: 620px;
    margin: 0 auto;
    padding: 48px 24px;
}

/* A coluna da equipe comporta duas fotos por linha, então precisa de mais
   largura útil que a coluna de texto. */
.equipe-split-team .equipe-split-inner {
    max-width: 720px;
}

@media (min-width: 992px) {
    .equipe-split {
        flex-direction: row;
        align-items: stretch;
        /* Preenche a janela para que a divisão de cores leia como uma página
           partida ao meio mesmo quando o conteúdo é curto (78px = navbar). */
        min-height: calc(100vh - 78px);
    }

    .equipe-split-info,
    .equipe-split-team {
        flex: 1 1 50%;
        min-width: 0;
    }

    .equipe-split-inner {
        padding: 64px 40px;
    }
}

/* ── Blocos institucionais: SEVS, GESP, CIE ───────────────────────────── */
.org-block + .org-block {
    margin-top: 32px;
    padding-top: 32px;
    border-top: 1px solid rgba(18, 52, 107, 0.12);
}

.org-acronym {
    display: inline-block;
    background-color: var(--primary-dark);
    color: #ffffff;
    font-weight: 700;
    font-size: 0.75rem;
    letter-spacing: 0.06em;
    padding: 4px 10px;
    border-radius: 4px;
    margin-bottom: 10px;
}

.org-name {
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--primary-dark);
    margin-bottom: 10px;
}

.org-text {
    color: #5a6270;
    line-height: 1.65;
    text-align: justify;
    margin-bottom: 0;
}

/* ==========================================================================
   Painéis de Monitoramento (Botões Avançados)
   ========================================================================== */
.btn-panel {
    background-color: white;
    color: var(--primary-dark);
    border: 1px solid rgba(30, 115, 190, 0.2); 
    border-radius: 50px !important; 
    padding: 0.6rem 1.4rem;
    font-size: 0.95rem;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1); 
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
    text-decoration: none;
}

.btn-panel i {
    font-size: 1.15rem;
    transition: color 0.3s ease;
}

.btn-panel:hover {
    background-color: var(--primary-dark);
    color: white !important;
    transform: translateY(-3px); 
    box-shadow: 0 8px 15px rgba(18, 52, 107, 0.25);
    border-color: var(--primary-dark);
}

.btn-panel:hover i {
    color: white !important;
}

/* A seção do Observatório ficava espremida: os botões quase encostavam nas
   bordas dos cartões e os dois grupos de baixo mal passavam da altura de uma
   linha de botões. Aqui só se ganha altura — nada de largura ou cor muda.
   O !important é necessário porque os utilitários de espaçamento do Bootstrap
   (py-5, p-4) já vêm com !important. */
#paineis {
    padding-top: 5rem !important;
    padding-bottom: 5rem !important;
}

/* Texto de apresentação ao lado da busca: sem limite de largura ele se
   esticaria por toda a seção, deixando linhas longas demais para ler. */
.observatorio-intro {
    max-width: 760px;
}

/* Dois formatos de cartão convivem aqui: nos grupos de largura total o
   .panel-group é o próprio cartão; nos grupos em coluna (Laboratorial e
   Ambiental) ele é a coluna e o cartão é o filho. Os dois recebem o mesmo
   respiro vertical para manter a altura consistente entre as linhas. */
#paineis .panel-group.rounded-4,
#paineis .panel-group > .rounded-4 {
    padding-top: 2.75rem !important;
    padding-bottom: 2.75rem !important;
}

/* Espaço entre linhas de botões quando eles quebram para a linha seguinte
   (o gap-3 do Bootstrap vale para os dois eixos, mas aqui a vertical precisa
   de mais folga para acompanhar a altura maior do cartão). */
#paineis .panel-container {
    row-gap: 1.35rem;
}

/* ==========================================================================
   Rodapé — Réguas Institucionais
   ========================================================================== */
.footer-divider {
    width: 120px;
    border: 0;
    border-top: 2px solid rgba(255, 255, 255, 0.25);
    opacity: 1;
}

/* Faixa cinza (mesmo tom da seção da Ouvidoria) para dar contraste às logos:
   a arte dos PNGs é azul-marinho e some sobre o fundo azul do rodapé.
   823px = régua (647) + logo CIE (103) + gap (24) + padding (48), o suficiente
   para as duas logos ficarem na mesma linha. Abaixo disso elas empilham. */
.footer-logos {
    background-color: #ebf1f7;
    border-radius: 12px;
    width: 100%;
    max-width: 823px;
}

.footer-email {
    color: #a1b8db;
    transition: color 0.3s ease;
}

.footer-email:hover {
    color: #fff;
}

/* O PNG da régua tem muita margem transparente, por isso a altura maior
   para equilibrar o peso visual com o logo do CIE ao lado. */
.footer-regua {
    height: 115px;
    width: auto;
    max-width: 100%;
}

.footer-cielogo {
    height: 68px;
    width: auto;
    max-width: 100%;
}

/* Em telas estreitas as logos escalam pela largura (height: auto preserva a
   proporção) e empilham, senão a faixa branca estoura a viewport. */
@media (max-width: 575.98px) {
    .footer-regua {
        height: auto;
        width: 100%;
        max-width: 250px;
    }

    .footer-cielogo {
        height: auto;
        width: 105px;
    }
}

#filterPaineis:focus {
    box-shadow: none;
    border-color: var(--primary-light);
}