/**
 * ============================================================
 * Retratos de Assentamentos
 * Tema 3 Colunas Responsivo - OJS 3.5
 *
 * GERADO pelo app SBM Tech (modelo tema-3colunas v1.24.0) em 2026-10-12.
 * Editar aqui funciona, mas o proximo "gerar" sobrescreve. Para mudar a
 * identidade, altere as variaveis no app e gere de novo.
 *
 * Estrutura: Sidebar (20%) | Conteudo (60%) | Menu (20%)
 * ============================================================
 */

:root {
  /* --- Cores --- */
  --retratos-primary:      #921e1e;  /* Titulos, botoes, menu e rodape */
  --retratos-primary-dark: #6e1616;  /* Hover e estados ativos */
  --retratos-primary-mid:  #a32b2b;
  --retratos-accent:       #d7b10e;  /* Definida mas nao aplicada: aplicar mudaria o desenho do layout */
  --retratos-tint:         #f3e9e4;  /* Fundo de blocos */
  --retratos-bg:           #f5f5f5;
  --retratos-bg-soft:      #f9f9f9;
  --retratos-border:       #e0e0e0;
  --retratos-border-soft:  #dddddd;
  --retratos-text:         #333333;
  --retratos-text-muted:   #666666;
  --retratos-text-faint:   #888888;
  --retratos-btn:          #921e1e;  /* Por padrao e a cor principal */
  --retratos-btn-hover:    #1c5619;

  /* --- Tipografia --- */
  --retratos-font-body:    "Lato", sans-serif;
  --retratos-font-heading: "Lato", sans-serif;

  /* creditos */
  --retratos-credito-cor:  #cde6a0;  /* Sobre o fundo escuro do rodape */

  /* extras */
  --retratos-menu-align:   right;  /* right ou center */

  /* --- Escala tipografica (fluida: cresce de ~1280px a ~1920px) --- */
  --retratos-fs-xs:        clamp(12px, 10px + 0.15625vw, 13px);  /* 12 - 13px  miudezas: submenus, links de galley, "leia mais" */
  --retratos-fs-sm:        clamp(14px, 12px + 0.15625vw, 15px);  /* 14 - 15px  apoio: blocos, menus, botoes, rodape, metadados */
  --retratos-fs-md:        clamp(15px, 11px + 0.3125vw, 17px);  /* 15 - 17px  texto corrido e resumos */
  --retratos-fs-lg:        clamp(17px, 13px + 0.3125vw, 19px);  /* 17 - 19px  h3 e titulo de artigo na lista */
  --retratos-fs-xl:        clamp(20px, 12px + 0.625vw, 24px);  /* 20 - 24px  h2 */
  --retratos-fs-2xl:       clamp(26px, 14px + 0.9375vw, 32px);  /* 26 - 32px  h1 */
  --retratos-fs-3xl:       clamp(28px, 16px + 0.9375vw, 34px);  /* 28 - 34px  titulo do banner */
}

/* ===========================================
   1. RESET E BASE
   =========================================== */
body {
    margin: 0;
    padding: 0;
    font-family: var(--retratos-font-body);
    background: var(--retratos-bg);
}

/* ===========================================
   2. HEADER - BANNER ÚNICO
   =========================================== */
.retratos-header {
    background: #fff;
    border-bottom: 1px solid var(--retratos-border-soft);
    width: 100%;
}

.retratos-header-banner {
    width: 100%;
    text-align: center;
}

.retratos-banner-link {
    display: block;
    width: 100%;
}

.retratos-banner-img {
    width: 100%;
    max-width: 100%;
    height: auto;
    display: block;
    margin: 0 auto;
}

/* Esconde a navegacao do tema pai: este tema poe o menu na coluna direita,
   e sem isto o menu apareceria duas vezes. */
.navbar-default,
.navbar {
    display: none !important;
}

/* ===========================================
   2b. MENU NO TOPO (menu_posicao=topo)
   Barra horizontal logo abaixo do banner, com o menu principal a esquerda
   e o do usuario a direita. Nada fica fixo ao rolar.
   =========================================== */
.retratos-menu-topo {
    background: var(--retratos-primary);
    border-bottom: 3px solid var(--retratos-primary-dark);
}

.retratos-menu-topo-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    padding: 0 20px;
}

.retratos-nav-topo {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
}

.retratos-nav-topo > li {
    position: relative;
}

.retratos-nav-topo > li > a {
    display: block;
    padding: 13px 16px;
    color: #fff;
    font-size: var(--retratos-fs-sm);
    font-weight: 600;
    text-transform: uppercase;
    text-decoration: none;
    transition: background 0.2s ease;
}

.retratos-nav-topo > li > a:hover,
.retratos-nav-topo > li > a:focus,
.retratos-nav-topo > li.open > a {
    background: var(--retratos-primary-dark);
    color: #fff;
    text-decoration: none;
}

.retratos-nav-topo .caret {
    display: inline-block;
    width: 0;
    height: 0;
    margin-left: 5px;
    vertical-align: middle;
    border-top: 4px solid;
    border-right: 4px solid transparent;
    border-left: 4px solid transparent;
}

.retratos-nav-topo .dropdown-menu {
    display: none;
    position: absolute;
    left: 0;
    top: 100%;
    min-width: 230px;
    margin: 0;
    padding: 6px 0;
    list-style: none;
    background: #fff;
    border: 1px solid var(--retratos-border-soft);
    border-top: 3px solid var(--retratos-primary);
    box-shadow: 0 6px 16px rgba(0,0,0,0.15);
    z-index: 1000;
    text-align: left;
}

.retratos-nav-topo li.dropdown:hover > .dropdown-menu,
.retratos-nav-topo li.open > .dropdown-menu {
    display: block;
}

.retratos-nav-topo .dropdown-menu li a {
    display: block;
    padding: 8px 16px;
    color: var(--retratos-primary);
    font-size: var(--retratos-fs-xs);
    text-decoration: none;
    white-space: nowrap;
}

.retratos-nav-topo .dropdown-menu li a:hover {
    background: var(--retratos-tint);
    color: var(--retratos-primary-dark);
}

.retratos-nav-topo-user > li > a {
    font-weight: 400;
    font-size: var(--retratos-fs-xs);
}

.retratos-nav-topo-user .dropdown-menu {
    left: auto;
    right: 0;
}

/* Coluna direita so com blocos (menu no topo): nada fixo. */
.retratos-col-right-blocos .retratos-blocos-direita {
    margin-top: 0;
}

/* ===========================================
   3. ESTRUTURA DE 3 COLUNAS (20% | 60% | 20%)
   =========================================== */
.pkp_structure_page {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

.pkp_structure_content {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

.pkp_structure_content > .container-fluid,
.pkp_structure_content > .container {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

.container,
.container-fluid {
    max-width: 100% !important;
    width: 100% !important;
}

/* Row das 3 colunas */
.retratos-three-col,
.pkp_structure_content .row {
    display: flex !important;
    flex-wrap: nowrap !important;
    width: 100% !important;
    max-width: 100% !important;
    
    margin: 0 !important;
    padding: 0 !important;
    justify-content: flex-start !important;
}

/* Sidebar Esquerda - 20% */
#sidebar,
.pkp_structure_sidebar,
.retratos-col-left {
    flex: 0 0 20% !important;
    max-width: 20% !important;
    width: 20% !important;
    min-width: 200px !important;
    background: #fff;
    border-right: 1px solid var(--retratos-border-soft);
    padding: 20px;
    order: 1 !important;
    box-sizing: border-box;
    margin: 0 !important;
}

/* Conteúdo Central - 60% */
.pkp_structure_main,
.retratos-col-center {
    flex: 1 1 auto !important;
    background: #fff;
    padding: 20px !important;
    order: 2 !important;
    min-width: 0 !important;
    box-sizing: border-box;
    margin: 0 !important;
}

/* Menu Direito - 20% */
.retratos-col-right {
    flex: 0 0 20% !important;
    max-width: 20% !important;
    width: 20% !important;
    min-width: 200px !important;
    background: #fff !important;
    border-left: 1px solid var(--retratos-border-soft) !important;
    padding: 20px !important;
    order: 3 !important;
    text-align: var(--retratos-menu-align) !important;
    box-sizing: border-box;
    margin: 0 !important;
}

/* ===========================================
   4. BLOCOS DA SIDEBAR ESQUERDA
   =========================================== */
.pkp_block {
    background-color: #fff !important;
    border: 1px solid var(--retratos-border) !important;
    margin-bottom: 15px !important;
    border-radius: 4px !important;
    overflow: hidden !important;
    box-shadow: 0 1px 3px rgba(0,0,0,0.04) !important;
}

.pkp_block .title,
.panel-default > .panel-heading {
    color: var(--retratos-primary) !important;
    background-color: var(--retratos-tint) !important;
    border-color: var(--retratos-tint) !important;
    padding: 10px 15px !important;
    border-bottom: 1px solid transparent !important;
    border-top-left-radius: 3px !important;
    border-top-right-radius: 3px !important;
    display: block !important;
    font-size: var(--retratos-fs-sm) !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    margin-bottom: 0 !important;
}

.pkp_block .content {
    padding: 15px !important;
}

.pkp_block a {
    color: var(--retratos-primary) !important;
    display: block;
    padding: 5px 0;
    font-size: var(--retratos-fs-sm);
    text-decoration: none;
    transition: color 0.2s ease;
}

.pkp_block a:hover {
    color: var(--retratos-primary-dark) !important;
}

.pkp_block ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.pkp_block li {
    margin-bottom: 3px;
    padding: 5px 0;
    border-bottom: 1px solid var(--retratos-bg);
}

.pkp_block li:last-child {
    border-bottom: none;
}

/* ---- Selos de indexacao na sidebar ----
   Mesmo tratamento dos apoiadores do rodape (.footer-indexadores): cartao
   branco, sombra leve, e no hover sobe 2px e ganha sombra. Vai no HTML do
   bloco personalizado: <div class="retratos-indexadores"><a><img>...</a></div>.
   Os seletores levam .pkp_block porque as regras gerais de link do bloco
   (display:block, padding) tem de ser vencidas aqui. */
.pkp_block .retratos-indexadores {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

/* Sem cartao: fundo transparente, sem borda. O destaque e so na imagem, ao
   passar o mouse ou ao focar pelo teclado - sombra difusa ("esfumacado") e
   uma leve subida, o mesmo das bandeiras. O anel preto de foco do navegador
   sai (outline) e o foco visivel vira a mesma sombra; assim clicar num selo
   nao deixa contorno. (Pedido do editor da Index Law, 21/09.) */
.pkp_block .retratos-indexadores a {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 70px;
    padding: 12px;
    background: transparent;
    border: 0;
    border-radius: 8px;
    box-shadow: none;
    text-decoration: none;
    outline: none;
}

.pkp_block .retratos-indexadores img {
    height: 50px;
    width: auto;
    max-width: 100%;
    opacity: 0.9;
    transition: filter 0.3s ease, transform 0.3s ease, opacity 0.3s ease;
}

.pkp_block .retratos-indexadores a:hover img,
.pkp_block .retratos-indexadores a:focus-visible img {
    opacity: 1;
    filter: drop-shadow(0 4px 10px rgba(0,0,0,0.35));
    transform: translateY(-2px);
}

.pkp_block .retratos-indexadores span {
    font-size: var(--retratos-fs-sm);
    font-weight: 600;
    color: var(--retratos-text-muted);
}

/* Variante em grade de dois cartoes por linha, para blocos com muitos
   indexadores (a Index Law tem 20): <div class="retratos-indexadores grade2">.
   Mesmo cartao e mesmo hover; so a disposicao muda. */
.pkp_block .retratos-indexadores.grade2 {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 10px;
}

.pkp_block .retratos-indexadores.grade2 a {
    width: calc(50% - 5px);
    box-sizing: border-box;
    min-height: 56px;
    padding: 6px;
}

.pkp_block .retratos-indexadores.grade2 img {
    height: auto;
    max-height: 44px;
    max-width: 100%;
}

/* ---- Selo solto (ex. Qualis CAPES) ----
   Aqui o destaque e SO na imagem, nao num cartao: drop-shadow segue o
   contorno do PNG, entao a sombra aparece onde ha desenho e nao num
   retangulo em volta. HTML: <div class="retratos-selo"><a><img></a></div>. */
.pkp_block .retratos-selo {
    text-align: center;
}

.pkp_block .retratos-selo a {
    display: inline-block;
    padding: 0;
}

.pkp_block .retratos-selo img {
    max-width: 100%;
    height: auto;
    transition: filter 0.3s ease, transform 0.3s ease;
}

.pkp_block .retratos-selo a:hover img {
    filter: drop-shadow(0 4px 10px rgba(0,0,0,0.35));
    transform: translateY(-2px);
}

/* Titulo do grafico de downloads (opcao displayStats do tema pai).

   O OJS marca o titulo como <h2 class="label">. No Bootstrap 3 `.label` NAO e
   um rotulo semantico: e o componente de pilula, usado em <span>, e a regra
   `.label, .badge` mais abaixo pinta-o com o azul da marca - o titulo virava
   uma pilula com cara de botao, inline, encostada no eixo do grafico.

   A pilula e desfeita SO quando `.label` esta num titulo (h1-h6). Pilulas de
   verdade (<span class="label">) ficam como estao: o Bootstrap nunca as
   aplica a h1-h6. Regra feita a mao na ABOD em 09/2026 e trazida ao modelo
   em 14/09/2026, quando a ANNEP ligou o grafico. O tamanho e menor que o
   dos titulos de secao (20px): rotula um grafico, nao uma secao. */
h1.label, h2.label, h3.label, h4.label, h5.label, h6.label {
    background: transparent !important;
    color: var(--retratos-primary) !important;
    display: block;
    padding: 0;
    margin: 24px 0 4px;
    font-size: var(--retratos-fs-md);
    font-weight: 600;
    line-height: 1.3;
    border-radius: 0;
}

/* Badge Dimensions.ai, injetado por hook na pagina do artigo. */
.retratos-dimensions {
    margin: 20px 0;
    text-align: center;
}

/* Botao Crossmark (Crossref), injetado por hook na pagina do artigo. */
.retratos-crossmark {
    margin: 12px 0 20px;
    text-align: center;
}
.retratos-crossmark img {
    display: inline-block;
    vertical-align: middle;
}

/* ===========================================
   5. CONTEÚDO CENTRAL
   =========================================== */
.retratos-col-center h1,
.pkp_structure_main h1 {
    color: var(--retratos-primary);
    font-size: var(--retratos-fs-2xl);
    margin-bottom: 20px;
}

.retratos-col-center h2,
.pkp_structure_main h2 {
    color: var(--retratos-primary);
    font-size: var(--retratos-fs-xl);
    margin-top: 25px;
}

.retratos-col-center h3,
.pkp_structure_main h3 {
    color: var(--retratos-primary);
    font-size: var(--retratos-fs-lg);
}

.retratos-col-center a,
.pkp_structure_main a {
    color: var(--retratos-primary);
    transition: color 0.2s ease;
}

.retratos-col-center a:hover,
.pkp_structure_main a:hover {
    color: var(--retratos-primary-dark);
}

.retratos-col-center p,
.pkp_structure_main p {
    line-height: 1.7;
    margin-bottom: 15px;
}

/* ===========================================
   6. BLOCOS PRINCIPAIS - COM ESTILO
   =========================================== */
.journal-description,
.current_issue,
.cmp_announcements {
    padding: 25px !important;
    background-color: #fff !important;
    border: 1px solid var(--retratos-border) !important;
    border-radius: 4px !important;
    margin-bottom: 20px !important;
    box-shadow: 0 1px 3px rgba(0,0,0,0.04) !important;
}

.current_issue .page-header {
    border-bottom: 2px solid var(--retratos-primary) !important;
    padding-bottom: 10px !important;
    margin-bottom: 20px !important;
}

.current_issue .page-header h2 {
    color: var(--retratos-primary) !important;
    margin: 0 !important;
    font-size: var(--retratos-fs-xl) !important;
}

/* Remover margin-top da descrição */
.pkp_page_index .journal-description,
.pkp_page_index .additional_content {
    margin-top: 0 !important;
}

/* ===========================================
   7. MENU LATERAL DIREITO
   =========================================== */
.retratos-menu-lateral {
    position: sticky;
    top: 20px;
    text-align: var(--retratos-menu-align);
}

/* Blocos movidos para baixo do menu (blocos_direita). Herdam o visual dos
   blocos da esquerda (.pkp_block e global); so o alinhamento volta a ser o
   de bloco, porque a coluna e alinhada a direita para o menu. */
.retratos-blocos-direita {
    margin-top: 20px;
    text-align: var(--retratos-menu-align);
}

/* Qualis lado a lado: <div class="retratos-selo retratos-qualis"><a><img capes><img b1></a></div>.
   As duas imagens com a mesma altura - o selo B1 e alto e estreito, e
   empilhado tomava a coluna inteira. */
.pkp_block .retratos-qualis a {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 14px;
}

.pkp_block .retratos-qualis img {
    height: 84px;
    width: auto;
    max-width: none;
}

/* Os dois logotipos estao num so link; o destaque e por IMAGEM, nao pelo
   link, senao CAPES e B1 sobem juntos ao passar o mouse em qualquer um. */
.pkp_block .retratos-qualis a:hover img {
    filter: none;
    transform: none;
}

.pkp_block .retratos-qualis a img:hover {
    filter: drop-shadow(0 4px 10px rgba(0,0,0,0.35));
    transform: translateY(-2px);
}

/* Bandeiras do seletor de idioma (plugin languageToggleByFlag), na coluna da
   direita: bandeira maior, lista alinhada a esquerda e nome do idioma com
   inicial maiuscula (o OJS entrega "espanol"/"portugues" em minusculas).
   Vale para o portal e para as revistas - nos dois o bloco fica a direita,
   logo abaixo do "Siga-nos". */
.retratos-blocos-direita .block_language .content ul {
    text-align: left;
    padding-left: 10px;
}

.retratos-blocos-direita .block_language li {
    text-align: left;
}

.retratos-blocos-direita .block_language li a {
    display: inline-flex !important;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
    text-transform: capitalize;
}

.retratos-blocos-direita .block_language .flagToggle {
    float: none;
    display: inline-block;
    width: 30px;
    height: 20px;
    margin: 0;
    background-position: center;
    transition: filter 0.3s ease, transform 0.3s ease;
}

/* Mesmo destaque do selo Qualis (.retratos-selo a:hover img): sombra e leve
   subida so na bandeira, nao no texto. */
.retratos-blocos-direita .block_language li a:hover .flagToggle,
.retratos-blocos-direita .block_language li a:focus-visible .flagToggle {
    filter: drop-shadow(0 4px 10px rgba(0,0,0,0.35));
    transform: translateY(-2px);
}
.retratos-blocos-direita .block_language li a { outline: none; }

/* Mesma formatacao do titulo dos blocos (secao 4): o MENU nao e um bloco do
   OJS, mas fica lado a lado com eles na coluna - com estilo proprio, a coluna
   parecia montada por duas pessoas diferentes. */
.retratos-menu-lateral h4 {
    color: var(--retratos-primary);
    background-color: var(--retratos-tint);
    padding: 10px 15px;
    border-top-left-radius: 3px;
    border-top-right-radius: 3px;
    display: block;
    font-size: var(--retratos-fs-sm);
    font-weight: 700;
    text-transform: uppercase;
    margin-bottom: 0;
    margin-top: 0;
    text-align: var(--retratos-menu-align);
}

/* Menu Principal */
.retratos-nav-menu {
    list-style: none;
    padding: 0;
    margin: 0;
    text-align: var(--retratos-menu-align);
}

.retratos-nav-menu > li {
    border-bottom: 1px solid #f0f0f0;
}

.retratos-nav-menu > li > a {
    display: block;
    padding: 12px 15px;
    color: var(--retratos-primary);
    font-size: var(--retratos-fs-sm);
    text-transform: uppercase;
    text-decoration: none;
    font-weight: 500;
    text-align: var(--retratos-menu-align);
    transition: all 0.2s ease;
}

.retratos-nav-menu > li > a:hover {
    background: var(--retratos-primary);
    color: #fff;
}

.retratos-nav-menu > li.current > a {
    background: var(--retratos-primary);
    color: #fff;
}

/* Menu do usuario, logo abaixo do principal: um filete mais forte separa os
   dois sem precisar de segundo titulo. */
.retratos-nav-user {
    margin-top: 6px;
    border-top: 2px solid var(--retratos-tint);
}

.retratos-nav-user > li > a {
    font-size: var(--retratos-fs-xs);
    color: var(--retratos-text-muted);
}

/* Sub-menus */
.retratos-nav-menu ul,
.retratos-nav-menu .dropdown-menu {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
    background: var(--retratos-bg-soft) !important;
    text-align: var(--retratos-menu-align) !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    position: relative !important;
    left: auto !important;
    right: 0 !important;
    float: none !important;
    min-width: 100% !important;
}

.retratos-nav-menu ul li,
.retratos-nav-menu .dropdown-menu li {
    border-bottom: 1px solid var(--retratos-border-soft) !important;
    text-align: var(--retratos-menu-align) !important;
}

.retratos-nav-menu ul li:last-child,
.retratos-nav-menu .dropdown-menu li:last-child {
    border-bottom: none !important;
}

.retratos-nav-menu ul li a,
.retratos-nav-menu .dropdown-menu li a {
    display: block !important;
    padding: 8px 15px 8px 10px !important;
    color: var(--retratos-primary) !important;
    font-size: var(--retratos-fs-xs) !important;
    text-transform: none !important;
    text-decoration: none !important;
    text-align: var(--retratos-menu-align) !important;
    transition: all 0.2s ease;
}

.retratos-nav-menu ul li a:hover,
.retratos-nav-menu .dropdown-menu li a:hover {
    background: #e8e8e8 !important;
    color: var(--retratos-primary-dark) !important;
}

/* Sub-sub-menus (3º nível) */
.retratos-nav-menu ul ul li a {
    padding-right: 25px !important;
    font-size: var(--retratos-fs-xs) !important;
}

/* ===========================================
   8. BLOCO KEYWORDS CLOUD
   =========================================== */
.block_Keywordcloud {
    margin-bottom: 25px;
}

.block_Keywordcloud .title {
    display: block;
    color: var(--retratos-primary) !important;
    font-size: var(--retratos-fs-sm);
    font-weight: 700;
    text-transform: uppercase;
    background-color: var(--retratos-tint) !important;
    padding: 10px 15px !important;
    border-top-left-radius: 3px;
    border-top-right-radius: 3px;
    margin-bottom: 0;
}

.block_Keywordcloud .content {
    background: var(--retratos-bg-soft);
    border-radius: 0 0 4px 4px;
    padding: 10px;
}

.block_Keywordcloud svg {
    width: 100%;
    height: auto;
    min-height: 180px;
}

.block_Keywordcloud text {
    font-family: var(--retratos-font-heading) !important;
    transition: opacity 0.2s ease;
}

.block_Keywordcloud text:hover {
    opacity: 1 !important;
}

/* Contorno de foco.

   O Lumen (Bootstrap 3) usa `a:focus { outline: -webkit-focus-ring-color auto }`,
   que e o anel AZUL padrao do navegador - dai a caixa azul em volta de um
   resultado de busca depois do clique. Azul nao e cor da marca, e o anel
   aparecia tambem para quem usa mouse, onde nao serve a ninguem.

   Aqui ele sai no clique e volta no TECLADO (:focus-visible), na cor do tema.
   Nao e enfeite: sem contorno de foco, quem navega por Tab perde a referencia
   de onde esta - e isso e criterio de acessibilidade (WCAG 2.4.7). */
a:focus {
    outline: none;
}

a:focus-visible,
button:focus-visible,
[tabindex]:focus-visible {
    outline: 2px solid var(--retratos-primary);
    outline-offset: 2px;
    border-radius: 2px;
}

/* ===========================================
   9. BOTÕES E BADGES
   =========================================== */
.btn,
.btn-primary,
.pkp_button {
    background: var(--retratos-btn) !important;
    border: 2px solid var(--retratos-btn) !important;
    color: #fff !important;
    padding: 10px 20px;
    border-radius: 4px;
    text-decoration: none;
    transition: all 0.2s ease;
}

/* Os subtemas do Bootstrap3 (Lumen, Spacelab...) "afundam" o botao ao passar
   o mouse: mudam a borda inferior e, em alguns, a margem do topo, e o texto
   pula. A regra base acima ja crava `border: 2px` nos tres estados, o que
   resolve a borda. NAO mexer na margem aqui: ela pertence ao contexto (na
   pagina do artigo, `.article-details .download .btn` tem `margin-top: .5em`)
   e zera-la no hover fazia o botao SALTAR meia linha para cima - foi o que
   aconteceu na ANNEP com o Spacelab. O que se neutraliza e so a borda e a
   sombra, que nao deslocam nada. */
.btn:hover,
.btn-primary:hover,
.pkp_button:hover {
    background: var(--retratos-btn-hover) !important;
    border-color: var(--retratos-btn-hover) !important;
    color: #fff !important;
    border-width: 2px !important;
    /* O Lumen tem `.btn:hover { margin-top: 1px }`: o botao desce 1 px ao
       passar o mouse, e numa lista de galleys o salto e visivel. Zeramos aqui
       (mesma especificidade da regra dele, e a nossa folha vem depois) e
       devolvemos abaixo a margem propria da pagina de artigo - foi a falta
       desse segundo passo que, na ANNEP, fez o botao saltar meia linha. */
    margin-top: 0;
}

/* Restaura, no hover, a mesma margem que o botao ja tem parado nesta pagina
   (`.article-details .download .btn { margin: .5em 0 }`, do proprio Lumen). */
.article-details .download .btn:hover,
.article-details .download .btn:focus,
.article-details .download .btn:active {
    margin: 0.5em 0;
}

.btn:active,
.btn.active,
.btn-primary:active,
.pkp_button:active {
    border-width: 2px !important;
    box-shadow: none !important;
}

.label,
.badge {
    background: var(--retratos-primary) !important;
    color: #fff !important;
}

/* Botao "Enviar submissao" do bloco lateral. E um <a> dentro de .pkp_block,
   e a regra de link do bloco pintava o texto com a cor da marca por cima do
   fundo escuro - ficava azul sobre cinza. Aqui ele vira botao de verdade. */
.pkp_block .block_make_submission_link,
#sidebar .pkp_block .block_make_submission_link,
.pkp_structure_sidebar .pkp_block .block_make_submission_link,
.retratos-col-left .pkp_block .block_make_submission_link {
    display: inline-block !important;
    background: var(--retratos-btn) !important;
    border: 2px solid var(--retratos-btn) !important;
    color: #fff !important;
    padding: 10px 20px !important;
    border-radius: 4px;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.2s ease;
}

.pkp_block .block_make_submission_link:hover,
#sidebar .pkp_block .block_make_submission_link:hover {
    background: var(--retratos-btn-hover) !important;
    border-color: var(--retratos-btn-hover) !important;
    color: #fff !important;
}

/* ===========================================
   10. FOOTER
   =========================================== */
.retratos-footer {
    background: var(--retratos-tint);
    width: 100%;
    clear: both;
}

.retratos-footer-content {
    padding: 20px !important;
}

.retratos-footer-content table {
    width: 100%;
    border-collapse: collapse;
}

.retratos-footer-content td {
    vertical-align: top;
    padding: 10px;
}

.retratos-footer-content td:first-child {
    text-align: left;
}

.retratos-footer-content td:last-child {
    text-align: right;
}

.retratos-footer-content a {
    color: var(--retratos-primary);
    transition: color 0.2s ease;
}

.retratos-footer-content a:hover {
    color: var(--retratos-primary-dark);
}

/* Duas colunas do rodapé: contato à esquerda, apoiadores à direita.

   Flex, e não a tabela de 50%+50% que veio do tema da BAR: a tabela não quebra
   no celular - as duas colunas continuam espremidas lado a lado, e os logos
   dos apoiadores ficam ilegíveis. Com `flex-wrap` elas empilham sozinhas
   quando não cabem. */
.footer-wrapper {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
    gap: 24px;
}

/* `min-width: 0` é o que permite ao item encolher abaixo do próprio conteúdo;
   sem isso um logo largo impede a quebra e estoura a linha. */
.footer-wrapper > * {
    min-width: 0;
}

/* O contato é texto curto; os apoiadores são quatro logos lado a lado. Dividir
   o rodapé ao meio deixava o último logo caindo sozinho na linha de baixo, e
   sobrava espaço vazio à esquerda. Daí a proporção 1:2 - em vez de encolher os
   logos com uma altura fixa, que quebraria de novo ao entrar um patrocinador. */
.footer-contact {
    flex: 1 1 260px;
}

.footer-apoiadores {
    flex: 2 1 480px;
    text-align: right;
}

.footer-apoiadores-titulo {
    color: var(--retratos-primary);
    font-size: var(--retratos-fs-sm);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    margin-bottom: 12px;
}

/* Informações de contato */
.footer-contact {
    line-height: 1.8;
    color: var(--retratos-text-muted);
}

.footer-contact a {
    color: var(--retratos-primary) !important;
    font-weight: 600;
    text-decoration: none;
}

.footer-contact a:hover {
    color: var(--retratos-primary-dark) !important;
    text-decoration: underline;
}

/* Licença Creative Commons */
.footer-license {
    margin-top: 15px;
    font-size: var(--retratos-fs-sm);
    color: var(--retratos-text-muted);
}

.footer-license img {
    vertical-align: middle;
    margin-right: 8px;
}

/* Indexadores do footer */
.footer-indexadores {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    gap: 15px;
}

.footer-indexadores a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    box-shadow: none;
    outline: none;
}

/* Cada apoiador ocupa uma caixa de 200x80: a altura manda, mas um logotipo
   muito horizontal (o da ANNEP e 898x219, ou seja 4:1 - a 80px de altura
   sairia com 328px de largura) seria o dobro da largura dos outros e
   roubaria a fila. Com a largura no teto e `object-fit: contain`, ele encolhe
   proporcionalmente em vez de esticar. Logos de ate 2,5:1 nao sao afetados. */
.footer-indexadores img {
    height: 80px !important;
    width: auto !important;
    max-width: 200px !important;
    object-fit: contain;
    opacity: 0.9;
    transition: filter 0.3s ease, transform 0.3s ease, opacity 0.3s ease;
}

/* Logotipo muito horizontal (a partir de ~4:1, como o da ANNEP): mesmo dentro
   da caixa de 200px ele ainda le como o maior da fila, porque a tinta ocupa a
   largura toda enquanto os outros tem folga interna. A classe aperta so ele,
   sem encolher os logos dos outros sites. Marcar no HTML do rodape:
   <img class="logo-largo" ...>. */
.footer-indexadores img.logo-largo {
    max-width: 150px !important;
}

.footer-indexadores a:hover img,
.footer-indexadores a:focus-visible img {
    opacity: 1;
    filter: drop-shadow(0 4px 10px rgba(0,0,0,0.35));
    transform: translateY(-2px);
}

/* Créditos do desenvolvedor */
.retratos-footer-credits {
    background: var(--retratos-primary);
    color: #fff;
    text-align: center;
    padding: 15px;
    font-size: var(--retratos-fs-sm);
}

.retratos-footer-credits a {
    color: var(--retratos-credito-cor);
}

.retratos-footer-credits a:hover {
    color: #fff;
}

footer[role="contentinfo"] {
    padding: 0 !important;
    margin-top: 0 !important;
}

/* ===========================================
   11. RESPONSIVO - TABLET (768px - 1199px)
   =========================================== */
@media (max-width: 1199px) and (min-width: 768px) {
    #sidebar,
    .pkp_structure_sidebar,
    .retratos-col-left {
        flex: 0 0 22% !important;
        max-width: 22% !important;
        width: 22% !important;
        min-width: 180px;
        padding: 15px 10px;
    }
    
    .pkp_structure_main,
    .retratos-col-center {
        padding: 20px 15px !important;
    }
    
    .retratos-col-right {
        flex: 0 0 22% !important;
        max-width: 22% !important;
        width: 22% !important;
        min-width: 180px;
        padding: 15px 10px !important;
    }
    
    .retratos-col-center h1 {
        font-size: var(--retratos-fs-xl);
    }
    
    .footer-indexadores img {
        height: 80px !important;
    }
}

/* ===========================================
   12. RESPONSIVO - MOBILE (<768px)
   =========================================== */
@media (max-width: 767px) {
    /* Rodapé empilhado: com uma coluna só, alinhar os apoiadores à direita
       deixaria os logos soltos na borda, longe do texto que os antecede. */
    .footer-apoiadores,
    .retratos-footer-content td:last-child {
        text-align: left !important;
    }

    /* O tamanho e o alinhamento dos logos no celular ficam mais abaixo, no
       bloco que já existia para o rodapé - duas regras para a mesma coisa no
       mesmo @media só criam a dúvida de qual está valendo. */

    /* Layout empilhado */
    .retratos-three-col,
    .pkp_structure_content .row {
        flex-direction: column !important;
        flex-wrap: wrap !important;
    }

    /* Empilhar a `.row` do OJS vira flex-column, e af o filho .col-* deixa de
       herdar a largura da linha: passa a se dimensionar pelo conteudo e vaza
       para a direita (23px na pagina de artigo do Indexlaw, 129px na da ANNEP,
       onde ha URL longo nas referencias). Some-se a isso a margem negativa de
       15px que o Bootstrap poe na `.row` para compensar o padding das colunas -
       compensacao que nao faz sentido com uma coluna so.
       Visto em 23/09/2026; sem isto a pagina do artigo arrasta para os lados no
       celular, o que o Google conta como falha de usabilidade movel. */
    .pkp_structure_content .row {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    .pkp_structure_content .row > [class*="col-"] {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;   /* deixa o item flex encolher abaixo do conteudo */
    }

    /* Zerar o padding só nas colunas do Bootstrap (class="col-md-9" etc.).
       [class*="col-"] também pega retratos-col-center/-left/-right por substring
       e, com especificidade maior, anulava o respiro de 16px das três colunas:
       titulo e texto encostados na borda da tela em todas as paginas.
       Visto em 24/09/2026 no Indexlaw (replica e producao). */
    .pkp_structure_content .row > [class^="col-"],
    .pkp_structure_content .row > [class*=" col-"] {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    #sidebar,
    .pkp_structure_sidebar,
    .retratos-col-left,
    .pkp_structure_main,
    .retratos-col-center,
    .retratos-col-right {
        flex: 0 0 100% !important;
        max-width: 100% !important;
        width: 100% !important;
        min-width: 100% !important;
        border: none !important;
        border-bottom: 1px solid var(--retratos-border-soft) !important;
    }
    
    /* Ordem: Conteúdo primeiro, depois sidebars */
    .pkp_structure_main,
    .retratos-col-center {
        order: 1 !important;
        padding: 20px 16px !important;
    }
    
    #sidebar,
    .pkp_structure_sidebar,
    .retratos-col-left {
        order: 2 !important;
        padding: 20px 16px !important;
    }
    
    .retratos-col-right {
        order: 3 !important;
        padding: 20px 16px !important;
        text-align: left !important;
    }
    
    /* Menu lateral em mobile */
    .retratos-menu-lateral {
        position: relative;
        top: 0;
        text-align: left;
    }
    
    .retratos-menu-lateral h4 {
        text-align: left;
    }
    
    .retratos-nav-menu,
    .retratos-nav-menu > li > a,
    .retratos-nav-menu ul li a {
        text-align: left !important;
    }
    
    /* Tipografia */
    .retratos-col-center h1 {
        font-size: var(--retratos-fs-xl);
    }
    
    .retratos-col-center h2 {
        font-size: var(--retratos-fs-lg);
    }
    
    /* Footer */
    .retratos-footer-content {
        padding: 20px 16px !important;
    }
    
    .retratos-footer-content table,
    .retratos-footer-content tbody,
    .retratos-footer-content tr,
    .retratos-footer-content td {
        display: block;
        width: 100%;
    }
    
    .retratos-footer-content td {
        text-align: center !important;
        padding: 15px 10px;
    }
    
    /* Alinhados à esquerda, junto com o resto do rodapé empilhado: centralizar
       só os logos os deixaria fora de prumo com o texto acima. */
    .footer-indexadores {
        justify-content: flex-start;
        margin-top: 20px;
    }

    /* 60px e não 80px: na largura de um celular, dois logos de 80px não cabem
       lado a lado e cada um ocupa uma linha inteira. */
    .footer-indexadores img {
        height: 60px !important;
    }
}

/* ===========================================
   13. RESPONSIVO - MOBILE PEQUENO (<480px)
   =========================================== */
@media (max-width: 480px) {
    .retratos-col-center h1 {
        font-size: var(--retratos-fs-xl);
    }
    
    .pkp_block .title,
    .panel-default > .panel-heading,
    .retratos-menu-lateral h4 {
        font-size: var(--retratos-fs-xs) !important;
        padding: 8px 12px !important;
    }
    
    .btn,
    .btn-primary,
    .pkp_button {
        padding: 8px 15px;
        font-size: var(--retratos-fs-sm);
    }
    
    /* Menor ainda que os 60px do bloco de 767px: aqui a tela tem no máximo
       480px e o logo precisa caber com a margem do rodapé. */
    .footer-indexadores img {
        height: 52px !important;
    }

    .footer-indexadores {
        gap: 10px;
    }
}

/* ===========================================
   14. PRINT
   =========================================== */
@media print {
    #sidebar,
    .pkp_structure_sidebar,
    .retratos-col-right,
    .retratos-footer,
    .retratos-header {
        display: none !important;
    }
    
    .pkp_structure_main,
    .retratos-col-center {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    
    .retratos-three-col {
        display: block !important;
    }
}

/* ===========================================
   FIM DO CSS - SBM Tech © Jan 2026
   =========================================== */


/* ===========================================
   17. PÁGINA DE INDEXAÇÃO
   =========================================== */
.indexing-page {
    font-family: var(--retratos-font-body);
    color: var(--retratos-text);
    line-height: 1.7;
}

.indexing-page h2 {
    color: var(--retratos-primary);
    font-size: var(--retratos-fs-xl);
    font-weight: 700;
    text-transform: uppercase;
    border-bottom: 3px solid var(--retratos-primary);
    padding-bottom: 10px;
    margin: 30px 0 20px 0;
}

.indexing-page h2:first-child {
    margin-top: 0;
}

.indexing-page p {
    text-align: justify;
    margin-bottom: 15px;
    color: var(--retratos-text-muted);
}

.indexing-page a {
    color: var(--retratos-primary);
    text-decoration: none;
    font-weight: 600;
}

.indexing-page a:hover {
    color: var(--retratos-primary-dark);
    text-decoration: underline;
}

/* Grid de logos */
.indexing-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 20px;
    margin: 25px 0;
}

.indexing-item {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    border: 1px solid var(--retratos-border);
    border-radius: 8px;
    padding: 20px;
    min-height: 100px;
    transition: all 0.3s ease;
    box-shadow: 0 2px 4px rgba(0,0,0,0.04);
}

.indexing-item:hover {
    box-shadow: 0 6px 16px rgba(0,0,0,0.1);
    transform: translateY(-3px);
    border-color: var(--retratos-primary);
}

.indexing-item img {
    max-width: 160px;
    max-height: 70px;
    width: auto;
    height: auto;
    object-fit: contain;
    opacity: 0.9;
    transition: opacity 0.3s ease;
}

.indexing-item:hover img {
    opacity: 1;
}

/* Seção de descrição */
.indexing-description {
    background: var(--retratos-bg-soft);
    border-left: 4px solid var(--retratos-primary);
    padding: 20px 25px;
    margin: 20px 0;
    border-radius: 0 8px 8px 0;
}

/* Sponsors */
.sponsors-section {
    background: linear-gradient(135deg, var(--retratos-bg) 0%, var(--retratos-tint) 100%);
    padding: 30px;
    border-radius: 8px;
    text-align: center;
    margin: 30px 0;
}

.sponsors-section p {
    text-align: center;
    font-size: var(--retratos-fs-sm);
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--retratos-text-muted);
    margin-bottom: 20px;
}

.sponsors-section img {
    max-width: 100%;
    height: auto;
}

/* Update note */
.update-note {
    text-align: right;
    font-style: italic;
    color: var(--retratos-text-faint);
    font-size: var(--retratos-fs-sm);
    margin-top: 30px;
    padding-top: 20px;
    border-top: 1px solid var(--retratos-border-soft);
}

/* Responsivo - Indexing Page */
@media (max-width: 768px) {
    .indexing-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 15px;
    }
    
    .indexing-item {
        padding: 15px;
        min-height: 80px;
    }
    
    .indexing-item img {
        max-width: 120px;
        max-height: 50px;
    }
}

@media (max-width: 480px) {
    .indexing-grid {
        grid-template-columns: 1fr;
    }
    
    .indexing-page h2 {
        font-size: var(--retratos-fs-lg);
    }
}

/* ===========================================
   18. BLOCO FOLLOW US - REDES SOCIAIS
   =========================================== */

.block_social .title {
    text-align: right;
}


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


.social-follow-icons a {
    background: var(--retratos-primary) !important;
    color: #fff !important;
}


/* ===========================================
   18. BLOCO FOLLOW US - REDES SOCIAIS
   =========================================== */
.block_social {
    margin-bottom: 20px;
    background: #fff;
    border: 1px solid var(--retratos-border);
    border-radius: 4px;
    overflow: hidden;
    box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}

.block_social .title {
    color: var(--retratos-primary) !important;
    background-color: var(--retratos-tint) !important;
    padding: 10px 15px !important;
    display: block !important;
    font-size: var(--retratos-fs-sm) !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    border-bottom: 1px solid var(--retratos-border-soft);
}

.block_social .content {
    padding: 15px;
    background: #fff;
}

.social-follow-icons {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 15px;
    flex-wrap: wrap;
}

.social-follow-icons a {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    text-decoration: none !important;
    transition: all 0.3s ease;
    font-size: 24px;
    padding: 0 !important;
}

.social-follow-icons a:hover {
    transform: translateY(-4px) scale(1.1);
    box-shadow: 0 8px 20px rgba(0,0,0,0.25);
}

/* Instagram - Gradiente colorido */
.social-follow-icons a.social-instagram {
    background: linear-gradient(45deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888) !important;
    color: #fff !important;
}

.social-follow-icons a.social-instagram:hover {
    background: linear-gradient(45deg, #e6683c, #dc2743, #cc2366, #bc1888, #f09433) !important;
}

/* LinkedIn - Azul */
.social-follow-icons a.social-linkedin {
    background: #0077b5 !important;
    color: #fff !important;
}

.social-follow-icons a.social-linkedin:hover {
    background: #005885 !important;
}

/* X/Twitter - Preto */
.social-follow-icons a.social-twitter {
    background: #000 !important;
    color: #fff !important;
}

.social-follow-icons a.social-twitter:hover {
    background: var(--retratos-text) !important;
}

.social-follow-icons i {
    color: #fff !important;
    line-height: 1;
}

/* Responsivo */
@media (max-width: 767px) {
    .social-follow-icons {
        gap: 12px;
    }
    
    .social-follow-icons a {
        width: 42px;
        height: 42px;
        font-size: 20px;
    }
}


/* ===========================================
   19. CENTRALIZAÇÃO DOS BLOCOS
   =========================================== */

/* Títulos dos blocos - centralizados */
.pkp_block .title,
.panel-default > .panel-heading,
.block_social .title {
    text-align: center !important;
}

/* Conteúdo dos blocos da sidebar esquerda - centralizado */
#sidebar .pkp_block .content,
.pkp_structure_sidebar .pkp_block .content,
.retratos-col-left .pkp_block .content {
    text-align: center !important;
}

#sidebar .pkp_block ul,
.pkp_structure_sidebar .pkp_block ul,
.retratos-col-left .pkp_block ul {
    text-align: center !important;
}

#sidebar .pkp_block li,
.pkp_structure_sidebar .pkp_block li,
.retratos-col-left .pkp_block li {
    text-align: center !important;
}

#sidebar .pkp_block a,
.pkp_structure_sidebar .pkp_block a,
.retratos-col-left .pkp_block a {
    text-align: center !important;
    display: block !important;
}

/* Os selos (secao 4) precisam de flex/inline-block, e a regra acima tem
   !important com id: sem esta excecao os cartoes voltam a ser bloco. */
#sidebar .pkp_block .retratos-indexadores a,
.pkp_structure_sidebar .pkp_block .retratos-indexadores a,
.retratos-col-left .pkp_block .retratos-indexadores a {
    display: flex !important;
}

#sidebar .pkp_block .retratos-selo a,
.pkp_structure_sidebar .pkp_block .retratos-selo a,
.retratos-col-left .pkp_block .retratos-selo a {
    display: inline-block !important;
}

/* Keywords cloud - centralizado */
.block_Keywordcloud .content {
    text-align: center !important;
}

/* Current Issue - centralizado */
.block_browse .content,
.block_information .content {
    text-align: center !important;
}

/* Menu direito - títulos centralizados, itens à direita */
.retratos-col-right .retratos-menu-lateral h4 {
    text-align: center !important;
}

/* Follow Us - já está centralizado, manter */
.block_social .content {
    text-align: center !important;
}

/* ===========================================
   20. MENU HAMBURGER - MOBILE
   =========================================== */

/* Botão hamburger - escondido em desktop */
.mobile-menu-toggle {
    display: none;
    position: fixed;
    top: 15px;
    right: 15px;
    z-index: 9999;
    background: var(--retratos-primary);
    border: none;
    border-radius: 4px;
    padding: 10px;
    cursor: pointer;
    width: 44px;
    height: 44px;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 5px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.2);
}

.hamburger-line {
    display: block;
    width: 24px;
    height: 3px;
    background: #fff;
    border-radius: 2px;
    transition: all 0.3s ease;
}

/* Animação do X quando ativo */
.mobile-menu-toggle.active .hamburger-line:nth-child(1) {
    transform: rotate(45deg) translate(6px, 6px);
}

.mobile-menu-toggle.active .hamburger-line:nth-child(2) {
    opacity: 0;
}

.mobile-menu-toggle.active .hamburger-line:nth-child(3) {
    transform: rotate(-45deg) translate(6px, -6px);
}

/* Mobile - mostrar hamburger e esconder menu */
@media (max-width: 767px) {
    .mobile-menu-toggle {
        display: flex;
    }
    
    /* Menu lateral direito (ou a barra do topo) - escondido por padrão */
    .retratos-menu-topo,
    .retratos-col-right {
        position: fixed !important;
        top: 0 !important;
        right: -100% !important;
        width: 280px !important;
        max-width: 80% !important;
        height: 100vh !important;
        background: #fff !important;
        z-index: 9998 !important;
        overflow-y: auto !important;
        transition: right 0.3s ease !important;
        box-shadow: -5px 0 20px rgba(0,0,0,0.15) !important;
        padding-top: 70px !important;
        border-left: 3px solid var(--retratos-primary) !important;
    }
    
    /* Menu aberto */
    .retratos-menu-topo.mobile-menu-open,
    .retratos-col-right.mobile-menu-open {
        right: 0 !important;
    }

    /* Barra do topo aberta no mobile: lista vertical, submenu embutido */
    .retratos-menu-topo-inner {
        display: block;
        padding: 0 10px;
    }
    .retratos-nav-topo {
        display: block;
    }
    .retratos-nav-topo > li > a {
        color: var(--retratos-primary);
        border-bottom: 1px solid var(--retratos-border-soft);
    }
    .retratos-nav-topo .dropdown-menu {
        position: static;
        display: block;
        box-shadow: none;
        border: none;
        background: var(--retratos-bg-soft);
    }
    /* No mobile a coluna de blocos nao vira painel escondido: fica embaixo
       do conteudo, como a sidebar esquerda. */
    .retratos-col-right-blocos {
        position: static !important;
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        box-shadow: none !important;
        padding-top: 20px !important;
        border-left: none !important;
    }
    
    /* Overlay quando menu aberto */
    body.menu-open::before {
        content: '';
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: rgba(0,0,0,0.5);
        z-index: 9997;
    }
    
    /* Ajustes do menu em mobile */
    .retratos-col-right .retratos-menu-lateral {
        position: relative;
        top: 0;
    }
    
    .retratos-col-right .retratos-menu-lateral h4 {
        text-align: center !important;
        padding: 15px;
        margin: 0;
        background: var(--retratos-tint);
    }
    
    .retratos-col-right .retratos-nav-menu > li > a {
        text-align: left !important;
        padding: 15px 20px !important;
        font-size: var(--retratos-fs-sm) !important;
    }
    
    .retratos-col-right .retratos-nav-menu ul li a {
        text-align: left !important;
        padding: 12px 20px 12px 35px !important;
    }
    
    /* Follow Us em mobile */
    .retratos-col-right .block_social {
        margin: 20px 15px;
    }
    
    .retratos-col-right .block_social .title {
        text-align: center !important;
    }
}

/* Tablet - ajuste intermediário */
@media (max-width: 991px) and (min-width: 768px) {
    .mobile-menu-toggle {
        display: none;
    }
}

/* ===========================================
   21. ABSTRACT NO SUMÁRIO
   =========================================== */
.obj_article_summary {
    padding: 20px 0;
    border-bottom: 1px solid var(--retratos-border-soft);
    margin-bottom: 15px;
}

.obj_article_summary:last-child {
    border-bottom: none;
}

.obj_article_summary .title {
    font-size: var(--retratos-fs-lg);
    margin: 0 0 8px 0;
    line-height: 1.4;
}

.obj_article_summary .title a {
    color: var(--retratos-primary) !important;
    text-decoration: none;
}

.obj_article_summary .title a:hover {
    color: var(--retratos-primary-dark) !important;
    text-decoration: underline;
}

.obj_article_summary .authors {
    font-size: var(--retratos-fs-sm);
    color: var(--retratos-text-muted);
    margin-bottom: 5px;
}

.obj_article_summary .pages {
    font-size: var(--retratos-fs-sm);
    color: var(--retratos-text-faint);
    margin-bottom: 10px;
}

.obj_article_summary .doi {
    font-size: var(--retratos-fs-sm);
    color: var(--retratos-text-faint);
    margin-bottom: 10px;
}

.obj_article_summary .doi-link {
    color: var(--retratos-primary);
    word-break: break-all;
}

.obj_article_summary .galleys {
    margin: 10px 0;
}

.obj_article_summary .galley-link {
    font-size: var(--retratos-fs-xs);
    padding: 6px 15px;
}

/* Abstract styling */
.obj_article_summary .article-abstract {
    margin-top: 25px;
    padding: 15px;
    background: var(--retratos-bg-soft);
    border-left: 3px solid var(--retratos-primary);
    border-radius: 0 4px 4px 0;
}

.obj_article_summary .abstract-label {
    font-weight: 700;
    color: var(--retratos-primary);
    font-size: var(--retratos-fs-sm);
    text-transform: uppercase;
    display: block;
    margin-bottom: 10px;
    letter-spacing: 0.5px;
}

.obj_article_summary .abstract-text {
    font-size: var(--retratos-fs-md);
    line-height: 1.6;
    color: var(--retratos-text-muted);
    margin: 0 0 10px 0;
    text-align: justify;
}

.obj_article_summary .read-more {
    font-size: var(--retratos-fs-xs);
    color: var(--retratos-primary) !important;
    font-weight: 600;
    text-decoration: none;
}

.obj_article_summary .read-more:hover {
    text-decoration: underline;
}

/* Responsivo */
@media (max-width: 767px) {
    .obj_article_summary .article-abstract {
        padding: 12px;
    }
    
    .obj_article_summary .abstract-text {
        font-size: var(--retratos-fs-sm);
    }
}


/* ============================================================
   NOTA SOBRE --retratos-accent
   ------------------------------------------------------------
   O tema BAR nao tinha cor de destaque: usava so o verde e suas
   variacoes. A revista pode ter cor de destaque propria, entao a
   variavel esta definida acima mas NAO esta aplicada em lugar
   nenhum - aplicar por conta propria mudaria o desenho, e a
   combinacao pedida foi manter o layout do BAR.

   Se quiser usar o dourado, os pontos naturais sao:
     .retratos-menu-lateral h4        (titulo MENU)
     .pkp_block .title           (titulo dos blocos)
     .btn-primary:hover
   ============================================================ */

/* ===========================================
   22. REDES SOCIAIS - CORES DE CADA REDE
   -------------------------------------------
   Cores abaixo sao a identidade de cada rede, por isso NAO
   usam as variaveis da revista.

   Vem no fim do arquivo de proposito: a secao "FOLLOW US" aparece
   duplicada no CSS herdado (secao 18, duas vezes), e so o que vem depois
   das duas copias tem efeito garantido.
   =========================================== */
.social-follow-icons a.social-facebook:hover {
    background: #1877f2 !important;
}

.social-follow-icons a.social-youtube:hover {
    background: #ff0000 !important;
}

/* Texto so para leitor de tela: os links sao icones, e sem isso quem usa
   leitor ouve "link" sem saber para onde. */
.social-follow-icons .sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Banner em texto, quando a revista ainda nao subiu logo. */
.retratos-banner-titulo {
    display: block;
    padding: 30px 15px;
    font-family: var(--retratos-font-heading);
    font-size: var(--retratos-fs-3xl);
    font-weight: 700;
    color: var(--retratos-primary);
    text-align: center;
}

/* Icone do ORCID na pagina do artigo. O tamanho vem do CSS do tema pai
   (bootstrapTheme-*.less), servido numa URL sem versao - quem visitou o site
   no 3.3 fica com o CSS antigo em cache, sem esta regra, e o SVG toma a
   coluna inteira. Repetida aqui, numa URL versionada, para nao depender do
   cache do leitor. Visto na ANNEP em 13/09/2026. */
.article-details .orcid_icon,
.obj_article_details .orcid_icon {
    display: inline-block;
    width: 24px;
    height: 24px;
    margin-right: 0.25em;
    vertical-align: middle;
}
