/* --- Reset Básico e Variáveis --- */
:root {
    --pmjm-color: #AB5C18; /* Azul Escuro Institucional */
    --creser-color: #27ae60; /* Verde Esperança/Crescimento */
    --dae-color: #2980b9; /* Azul Água */
    --bg-color: #f4f7f6;
    --text-color: #333;
    --white: #ffffff;
}

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

body {
    font-family: 'Roboto', sans-serif;
    background-color: var(--bg-color);
    color: var(--text-color);
    line-height: 1.6;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

/* --- Cabeçalho --- */
header {
    background-color: var(--pmjm-color);
    color: var(--white);
    padding: 2rem 1rem;
    text-align: center;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}

header h1 {
    font-size: 1.8rem;
    margin-bottom: 0.5rem;
}

header p {
    font-size: 1rem;
    opacity: 0.9;
    font-weight: 300;
}

/* --- Container Principal --- */
main {
    flex: 1;
    display: flex;
    flex-direction: column; /* ADICIONAR ISSO: Faz ficar um em cima do outro */
    justify-content: center; /* Centraliza verticalmente se sobrar espaço */
    align-items: center;     /* Centraliza horizontalmente */
    padding: 2rem;
    gap: 20px;               /* Adiciona um espaço entre o Banner e os Cards */
}

.cards-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 2rem;
    max-width: 1200px;
    width: 100%;
}

/* --- Estilo dos Cards --- */
.card {
    background: var(--white);
    border-radius: 12px;
    box-shadow: 0 10px 20px rgba(0,0,0,0.05);
    width: 100%;
    max-width: 320px;
    overflow: hidden;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    display: flex;
    flex-direction: column;
    text-decoration: none; /* Remove sublinhado do link */
    color: var(--text-color);
    border-top: 5px solid transparent;
}

.card:hover {
    transform: translateY(-10px);
    box-shadow: 0 15px 30px rgba(0,0,0,0.15);
}

/* Cores Específicas de Borda e Ícones */
.card.pmjm { border-color: var(--pmjm-color); }
.card.creser { border-color: var(--creser-color); }
.card.dae { border-color: var(--dae-color); }

.card-icon {
    padding: 2rem 0 1rem;
    text-align: center;
    font-size: 3.5rem;
}

.card.pmjm .card-icon { color: var(--pmjm-color); }
.card.creser .card-icon { color: var(--creser-color); }
.card.dae .card-icon { color: var(--dae-color); }

.card-body {
    padding: 1rem 1.5rem 2rem;
    text-align: center;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.card-title {
    font-size: 1.25rem;
    font-weight: 700;
    margin-bottom: 0.5rem;
    color: #2c3e50;
}

.card-text {
    font-size: 0.9rem;
    color: #666;
    margin-bottom: 1.5rem;
}

.btn {
    margin-top: auto;
    display: inline-block;
    padding: 0.8rem 1.5rem;
    border-radius: 50px;
    font-weight: bold;
    text-transform: uppercase;
    font-size: 0.85rem;
    transition: background 0.3s ease;
    color: var(--white) !important;
}

/* Botões específicos */
.card.pmjm .btn { background-color: var(--pmjm-color); }
.card.creser .btn { background-color: var(--creser-color); }
.card.dae .btn { background-color: var(--dae-color); }

.card.pmjm .btn:hover { background-color: #774112; }
.card.creser .btn:hover { background-color: #1e8449; }
.card.dae .btn:hover { background-color: #1a5276; }

.banner-wrapper {
    width: 100%;
    max-width: 800px; /* Limita a largura para não ficar gigante em monitores */
    margin: 20px auto; /* Centraliza o bloco e dá espaçamento */
    text-align: center;
    padding: 0 15px; /* Margem de segurança para mobile */
}

.banner-wrapper img {
    width: 100%;
    height: auto;
    border-radius: 10px; /* Borda arredondada opcional */
    box-shadow: 0 4px 10px rgba(0,0,0,0.1); /* Sombra suave opcional */
}

/* --- Rodapé --- */
footer {
    text-align: center;
    padding: 1.5rem;
    background-color: #e9ecef;
    color: #6c757d;
    font-size: 0.85rem;
}

/* --- Responsividade --- */
@media (max-width: 768px) {
    header h1 { font-size: 1.5rem; }
    .cards-container { flex-direction: column; align-items: center; }
    .card { width: 100%; }
}