/*
 * Theme Name:   ACML – Academia Catarinense Maçônica de Letras
 * Theme URI:    https://acml.org.br
 * Description:  Tema filho do Hello Elementor para o portal da ACML.
 *               Herda todo o funcionamento do tema pai e aplica a identidade
 *               visual institucional: paleta maçônica (azul-royal + dourado),
 *               tipografia acessível (mínimo 14px, sem serifa) e estilos
 *               específicos para os Custom Post Types do plugin acml-core.
 * Author:       Desenvolvedor ACML
 * Author URI:   https://acml.org.br
 * Template:     hello-elementor
 * Version:      1.0.0
 * License:      GPL-2.0+
 * Text Domain:  acml-child
 *
 * ════════════════════════════════════════════════════════════════
 * COMO ATIVAR ESTE TEMA FILHO:
 *  1. Certifique-se de que o tema "Hello Elementor" está instalado.
 *  2. Copie a pasta /acml-child/ para /wp-content/themes/
 *  3. Painel WP → Aparência → Temas → Ativar "ACML"
 * ════════════════════════════════════════════════════════════════
 */

/* ── VARIÁVEIS CSS GLOBAIS ──────────────────────────────────────────────────
   Ajuste aqui as cores e fontes principais sem precisar alterar o CSS abaixo.
   ──────────────────────────────────────────────────────────────────────────── */
:root {
    /* Paleta institucional da ACML */
    --acml-azul-principal:  #1a237e;   /* Azul-Royal Maçônico */
    --acml-azul-claro:      #3949ab;   /* Azul secundário (hover) */
    --acml-dourado:         #c9a23d;   /* Dourado simbólico */
    --acml-dourado-claro:   #f0d080;   /* Dourado para textos sobre fundo escuro */
    --acml-branco:          #ffffff;
    --acml-cinza-fundo:     #f5f5f5;
    --acml-cinza-borda:     #e0e0e0;
    --acml-texto:           #212121;   /* Contraste alto (≥ 4.5:1 sobre branco) */
    --acml-texto-suave:     #555555;

    /* Tipografia acessível – mínimo 14px para o público sênior */
    --acml-fonte-familia:   'Arial', 'Helvetica Neue', sans-serif;
    --acml-fonte-base:      16px;      /* 1rem = 16px; componentes usam rem */
    --acml-fonte-titulo:    1.8rem;    /* ~29px */
    --acml-fonte-subtitulo: 1.3rem;    /* ~21px */
    --acml-linha:           1.7;       /* Espaçamento de linha confortável */

    /* Bordas e sombras */
    --acml-raio-borda:      6px;
    --acml-sombra-card:     0 2px 12px rgba(0, 0, 0, 0.1);
    --acml-sombra-hover:    0 6px 24px rgba(26, 35, 126, 0.18);
}

/* ── BASE GLOBAL ─────────────────────────────────────────────────────────── */

body {
    font-family: var(--acml-fonte-familia);
    font-size:   var(--acml-fonte-base);
    color:       var(--acml-texto);
    line-height: var(--acml-linha);
    background:  var(--acml-branco);
}

/* Garante que todos os cabeçalhos usem a família sem serifa */
h1, h2, h3, h4, h5, h6 {
    font-family: var(--acml-fonte-familia);
    color:       var(--acml-azul-principal);
    line-height: 1.3;
}

a {
    color: var(--acml-azul-principal);
    text-decoration: underline;
    transition: color 0.2s ease;
}
a:hover, a:focus {
    color: var(--acml-azul-claro);
    text-decoration: none;
}

/* Área de foco visível (acessibilidade de teclado – WCAG 2.4.7) */
:focus-visible {
    outline: 3px solid var(--acml-dourado);
    outline-offset: 2px;
}

/* ── BOTÕES DO PLUGIN ────────────────────────────────────────────────────── */

.acml-btn {
    display:         inline-block;
    padding:         10px 22px;
    border-radius:   var(--acml-raio-borda);
    font-size:       1rem;
    font-weight:     700;
    text-decoration: none;
    cursor:          pointer;
    border:          2px solid transparent;
    transition:      background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
    min-height:      44px; /* WCAG – área mínima de toque */
    line-height:     1.4;
}

.acml-btn-primario {
    background: var(--acml-azul-principal);
    color:      var(--acml-branco);
    border-color: var(--acml-azul-principal);
}
.acml-btn-primario:hover,
.acml-btn-primario:focus {
    background:   var(--acml-azul-claro);
    border-color: var(--acml-azul-claro);
    color:        var(--acml-branco);
}

.acml-btn-secundario {
    background:   var(--acml-dourado);
    color:        var(--acml-azul-principal);
    border-color: var(--acml-dourado);
}
.acml-btn-secundario:hover,
.acml-btn-secundario:focus {
    background:   var(--acml-dourado-claro);
    border-color: var(--acml-dourado-claro);
}

.acml-btn-outline {
    background:   transparent;
    color:        var(--acml-azul-principal);
    border-color: var(--acml-azul-principal);
}
.acml-btn-outline:hover,
.acml-btn-outline:focus {
    background:   var(--acml-azul-principal);
    color:        var(--acml-branco);
}

.acml-btn-grande  { padding: 14px 32px; font-size: 1.1rem; }
.acml-btn-pequeno { padding: 6px  14px; font-size: 0.9rem; }

/* ── GRID DE CADEIRAS ────────────────────────────────────────────────────── */

.acml-grid-cadeiras {
    padding: 24px 0;
}

/* Responsividade do grid de cadeiras */
@media (max-width: 1024px) {
    .acml-grid-cols-4 { grid-template-columns: repeat(3, 1fr) !important; }
}
@media (max-width: 768px) {
    .acml-grid-cols-4,
    .acml-grid-cols-3 { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 480px) {
    .acml-grid-cols-4,
    .acml-grid-cols-3,
    .acml-grid-cols-2 { grid-template-columns: 1fr !important; }
}

/* Card individual de cadeira */
.acml-card-cadeira {
    background:    var(--acml-branco);
    border:        1px solid var(--acml-cinza-borda);
    border-radius: var(--acml-raio-borda);
    overflow:      hidden;
    box-shadow:    var(--acml-sombra-card);
    transition:    box-shadow 0.2s ease, transform 0.2s ease;
    display:       flex;
    flex-direction: column;
}
.acml-card-cadeira:hover {
    box-shadow: var(--acml-sombra-hover);
    transform:  translateY(-3px);
}

.acml-card-numero {
    background: var(--acml-azul-principal);
    color:      var(--acml-dourado-claro);
    padding:    10px 16px;
    display:    flex;
    align-items: center;
    gap:        8px;
    font-weight: 700;
}
.acml-card-numero .acml-numero-label {
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    opacity: 0.8;
}
.acml-card-numero .acml-numero-valor {
    font-size: 1.4rem;
}

.acml-card-foto img {
    width:      100%;
    height:     200px;
    object-fit: cover;
    display:    block;
}

.acml-card-info {
    padding: 16px;
    flex:    1;
}
.acml-card-nome {
    font-size:   1rem;
    margin:      0 0 8px;
}
.acml-card-nome a {
    color:           var(--acml-azul-principal);
    text-decoration: none;
    font-weight:     700;
}
.acml-card-nome a:hover { text-decoration: underline; }

.acml-card-patrono {
    font-size: 0.85rem;
    color:     var(--acml-texto-suave);
    margin:    0;
}

/* Status da cadeira */
.acml-card-cadeira.acml-status-vaga {
    border-color: #ef9a9a;
    opacity: 0.75;
}
.acml-card-cadeira.acml-status-honora {
    border-color: var(--acml-dourado);
}

/* ── GRID DA BIBLIOTECA ──────────────────────────────────────────────────── */

.acml-card-publicacao {
    background:    var(--acml-branco);
    border:        1px solid var(--acml-cinza-borda);
    border-radius: var(--acml-raio-borda);
    overflow:      hidden;
    box-shadow:    var(--acml-sombra-card);
    transition:    box-shadow 0.2s ease, transform 0.2s ease;
    display:       flex;
    flex-direction: column;
}
.acml-card-publicacao:hover {
    box-shadow: var(--acml-sombra-hover);
    transform:  translateY(-3px);
}
.acml-card-capa img {
    width:      100%;
    height:     240px;
    object-fit: cover;
    display:    block;
}
.acml-card-publicacao .acml-card-info {
    padding: 16px;
    flex:    1;
    display: flex;
    flex-direction: column;
}
.acml-card-titulo {
    font-size: 1rem;
    margin:    0 0 8px;
}
.acml-card-titulo a {
    color:           var(--acml-azul-principal);
    text-decoration: none;
    font-weight:     700;
}
.acml-card-autores,
.acml-card-ano {
    font-size: 0.85rem;
    color:     var(--acml-texto-suave);
    margin:    4px 0;
}
.acml-card-acoes {
    margin-top: auto;
    padding-top: 12px;
    display:    flex;
    gap:        8px;
    flex-wrap:  wrap;
}
.acml-badge-restrito {
    font-size: 0.8rem;
    color:     #1565c0;
    font-weight: bold;
}

/* ── SEÇÕES DO SINGLE (perfil de cadeira / publicação) ───────────────────── */

.acml-secao {
    margin: 32px 0;
    padding: 24px;
    background: var(--acml-cinza-fundo);
    border-radius: var(--acml-raio-borda);
}
.acml-secao-titulo {
    font-size:   var(--acml-fonte-subtitulo);
    color:       var(--acml-azul-principal);
    border-bottom: 2px solid var(--acml-dourado);
    padding-bottom: 8px;
    margin-top:  0;
}

/* Cabeçalho do single-cadeira */
.acml-cadeira-header {
    background:    var(--acml-azul-principal);
    color:         var(--acml-branco);
    padding:       32px;
    border-radius: var(--acml-raio-borda);
    margin-bottom: 24px;
    display:       flex;
    align-items:   center;
    gap:           24px;
    flex-wrap:     wrap;
}
.acml-cadeira-numero-badge {
    background:    var(--acml-dourado);
    color:         var(--acml-azul-principal);
    border-radius: 50%;
    width:         80px;
    height:        80px;
    display:       flex;
    flex-direction: column;
    align-items:   center;
    justify-content: center;
    font-weight:   bold;
    flex-shrink:   0;
}
.acml-cadeira-titulo { color: var(--acml-branco); margin: 0; font-size: var(--acml-fonte-titulo); }
.acml-cadeira-subtitulo { color: var(--acml-dourado-claro); margin: 8px 0 0; }

/* Breadcrumb */
.acml-breadcrumb {
    font-size:   0.85rem;
    color:       rgba(255,255,255,0.7);
    width:       100%;
    margin-top:  8px;
}
.acml-breadcrumb a { color: rgba(255,255,255,0.85); }
.acml-breadcrumb a:hover { color: var(--acml-dourado-claro); }

/* Grid do acadêmico */
.acml-academico-grid {
    display: flex;
    gap:     32px;
    flex-wrap: wrap;
}
.acml-academico-foto {
    flex:        0 0 200px;
    text-align:  center;
}
.acml-academico-foto img {
    width:         100%;
    border-radius: var(--acml-raio-borda);
    border:        3px solid var(--acml-dourado);
}
.acml-foto-legenda {
    font-size:   0.75rem;
    color:       var(--acml-texto-suave);
    margin-top:  4px;
}
.acml-academico-dados { flex: 1; min-width: 240px; }
.acml-academico-nome  { font-size: 1.4rem; margin: 0 0 12px; }

/* Tabela de histórico */
.acml-tabela-historico {
    width:           100%;
    border-collapse: collapse;
    font-size:       0.95rem;
}
.acml-tabela-historico th,
.acml-tabela-historico td {
    padding: 10px 14px;
    border:  1px solid var(--acml-cinza-borda);
    text-align: left;
}
.acml-tabela-historico th {
    background: var(--acml-azul-principal);
    color:      var(--acml-branco);
}
.acml-tabela-historico tr:nth-child(even) {
    background: var(--acml-cinza-fundo);
}

/* Navegação entre cadeiras */
.acml-paginacao-cadeiras {
    display:         flex;
    justify-content: space-between;
    gap:             16px;
    margin-top:      32px;
    padding-top:     24px;
    border-top:      1px solid var(--acml-cinza-borda);
}
.acml-paginacao-cadeiras a {
    background:      var(--acml-cinza-fundo);
    padding:         10px 20px;
    border-radius:   var(--acml-raio-borda);
    text-decoration: none;
    font-weight:     bold;
    color:           var(--acml-azul-principal);
    border:          1px solid var(--acml-cinza-borda);
    transition:      background 0.2s ease;
}
.acml-paginacao-cadeiras a:hover {
    background: var(--acml-azul-principal);
    color:      var(--acml-branco);
}

/* ── FORMULÁRIO DE SUBMISSÃO ─────────────────────────────────────────────── */

.acml-form-wrapper { max-width: 860px; margin: 0 auto; }

.acml-fieldset {
    border:        1px solid var(--acml-cinza-borda);
    border-radius: var(--acml-raio-borda);
    padding:       24px;
    margin:        0 0 24px;
}
.acml-legend {
    font-size:   1.1rem;
    font-weight: bold;
    color:       var(--acml-azul-principal);
    padding:     0 8px;
}
.acml-form-row {
    display:   flex;
    gap:       16px;
    flex-wrap: wrap;
    margin-bottom: 16px;
}
.acml-form-col        { flex: 1; min-width: 240px; }
.acml-form-col.acml-full { flex: 100%; }

.acml-label {
    display:     block;
    font-weight: 600;
    margin-bottom: 4px;
    font-size:   0.95rem;
}
.acml-obrigatorio { color: #c62828; margin-left: 2px; }

.acml-input {
    width:         100%;
    padding:       10px 14px;
    border:        1px solid var(--acml-cinza-borda);
    border-radius: var(--acml-raio-borda);
    font-size:     1rem;          /* Mínimo 14px para legibilidade sênior */
    font-family:   var(--acml-fonte-familia);
    box-sizing:    border-box;
    transition:    border-color 0.2s ease;
    min-height:    44px;          /* Área de toque mínima (WCAG) */
}
.acml-input:focus {
    outline:      none;
    border-color: var(--acml-azul-principal);
    box-shadow:   0 0 0 3px rgba(26, 35, 126, 0.15);
}
textarea.acml-input { min-height: 120px; resize: vertical; }

.acml-label-checkbox {
    display:     flex;
    align-items: flex-start;
    gap:         10px;
    font-size:   0.95rem;
    cursor:      pointer;
}
.acml-label-checkbox input[type="checkbox"] {
    width:     20px;
    height:    20px;
    margin-top: 2px;
    flex-shrink: 0;
    cursor:    pointer;
    accent-color: var(--acml-azul-principal);
}

.acml-help-text { font-size: 0.82rem; color: var(--acml-texto-suave); margin: 6px 0 0; }

.acml-form-submit {
    display:     flex;
    align-items: center;
    gap:         16px;
    margin-top:  8px;
}

/* Mensagem de feedback do formulário */
.acml-form-feedback {
    padding:       16px 20px;
    border-radius: var(--acml-raio-borda);
    font-size:     1rem;
    font-weight:   bold;
    margin-bottom: 16px;
}
.acml-form-feedback.acml-sucesso {
    background: #e8f5e9;
    color:      #1b5e20;
    border:     1px solid #a5d6a7;
}
.acml-form-feedback.acml-erro {
    background: #ffebee;
    color:      #b71c1c;
    border:     1px solid #ef9a9a;
}

/* ── ACTION BOX ──────────────────────────────────────────────────────────── */

.acml-action-box {
    border-left:   5px solid var(--acml-azul-principal);
}

/* ── FILTROS DA BIBLIOTECA ───────────────────────────────────────────────── */

.acml-filtros-biblioteca {
    display:     flex;
    gap:         16px;
    flex-wrap:   wrap;
    align-items: center;
    margin-bottom: 24px;
    padding:     16px;
    background:  var(--acml-cinza-fundo);
    border-radius: var(--acml-raio-borda);
}
.acml-filtros-biblioteca select {
    padding:       8px 12px;
    border:        1px solid var(--acml-cinza-borda);
    border-radius: var(--acml-raio-borda);
    font-size:     1rem;
    background:    var(--acml-branco);
    cursor:        pointer;
}

/* ── PAGINAÇÃO ───────────────────────────────────────────────────────────── */

.acml-paginacao { text-align: center; margin: 32px 0; }
.acml-paginacao .page-numbers {
    display:       inline-block;
    padding:       8px 14px;
    margin:        0 2px;
    border:        1px solid var(--acml-cinza-borda);
    border-radius: 4px;
    text-decoration: none;
    color:         var(--acml-azul-principal);
}
.acml-paginacao .page-numbers.current,
.acml-paginacao .page-numbers:hover {
    background:  var(--acml-azul-principal);
    color:       var(--acml-branco);
    border-color: var(--acml-azul-principal);
}

/* ── LISTA DE OBRAS ──────────────────────────────────────────────────────── */

.acml-lista-obras {
    list-style:  none;
    padding:     0;
    margin:      0;
}
.acml-obra-item {
    padding:     8px 0;
    border-bottom: 1px solid var(--acml-cinza-borda);
    font-size:   0.95rem;
}
.acml-obra-item:last-child { border-bottom: none; }
.acml-obra-ano { color: var(--acml-texto-suave); font-size: 0.85rem; }

/* ── AVISO DE ACESSO RESTRITO ────────────────────────────────────────────── */

.acml-aviso {
    color:      #1565c0;
    font-weight: bold;
    font-size:  0.9rem;
}

/* ── MODO MOBILE GERAL ───────────────────────────────────────────────────── */

@media (max-width: 768px) {
    .acml-cadeira-header { flex-direction: column; text-align: center; }
    .acml-academico-grid { flex-direction: column; }
    .acml-academico-foto { flex: none; width: 100%; max-width: 200px; margin: 0 auto; }
    .acml-paginacao-cadeiras { flex-direction: column; }
}
