/* ==========================================================================
   Journal of Sustainable Competitive Intelligence (JSCI) – Folha de estilo do OJS
   Alvo: OJS 3.3 + tema Health Sciences (Bootstrap 4)
   Paleta: azul-marinho e amarelo das capas, com laranja do banner como acento
   Instalação: Configurações > Site > Aparência > Avançado > Folha de estilo
   do periódico > Enviar arquivo .css
   Versão: 1.0 – outubro/2026 (adaptada da folha da RAIE)
   ========================================================================== */

@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Source+Serif+4:opsz,wght@8..60,400;8..60,600;8..60,700&display=swap");

/* --------------------------------------------------------------------------
   1. Tokens de design
   -------------------------------------------------------------------------- */
:root {
  --jl-navy: #16294d;
  --jl-navy-2: #24467a;
  --jl-blue: #1f5fa8;
  --jl-gold: #f2b705;
  --jl-gold-dark: #8a5d00;
  --jl-gold-bright: #ffd24a;
  --jl-gold-soft: #fff4cf;
  --jl-ink: #121c2f;
  --jl-muted: #566177;
  --jl-line: #dde3ee;
  --jl-mist: #f4f6fa;
  --jl-accent: #e8721a;
  --jl-white: #ffffff;
  --jl-card: #f9f7f0;

  --jl-sans: "Inter", "Fira Sans", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --jl-serif: "Source Serif 4", "PT Serif", Georgia, "Times New Roman", serif;

  --jl-radius: 14px;
  --jl-radius-sm: 10px;
  --jl-shadow-sm: 0 1px 2px rgba(22, 41, 77, .06), 0 1px 3px rgba(22, 41, 77, .08);
  --jl-shadow-md: 0 6px 20px rgba(22, 41, 77, .10);
  --jl-shadow-lg: 0 18px 44px rgba(22, 41, 77, .18);
  --jl-ease: cubic-bezier(.2, .7, .2, 1);
}

/* --------------------------------------------------------------------------
   2. Base e tipografia
   -------------------------------------------------------------------------- */
html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

body {
  font-family: var(--jl-sans);
  font-size: 16px;
  line-height: 1.65;
  color: var(--jl-ink);
  background: var(--jl-white);
  overflow-wrap: break-word;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: var(--jl-serif);
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: -.01em;
  color: var(--jl-navy);
  text-wrap: balance;
}

p { text-wrap: pretty; }

a {
  color: var(--jl-blue);
  text-decoration-thickness: 1px;
  text-underline-offset: .18em;
  transition: color .2s var(--jl-ease);
}

a:hover,
a:focus {
  color: var(--jl-gold-dark);
}

img,
video,
iframe,
embed,
object {
  max-width: 100%;
}

img { height: auto; }

iframe { border: 0; }

::selection {
  background: #fde9a8;
  color: var(--jl-navy);
}

:focus-visible {
  outline: 3px solid var(--jl-accent);
  outline-offset: 2px;
  border-radius: 4px;
}

.container {
  max-width: 1180px;
  padding-left: 1.25rem;
  padding-right: 1.25rem;
}

/* --------------------------------------------------------------------------
   3. Cabeçalho e navegação
   -------------------------------------------------------------------------- */
.main-header {
  background:
    linear-gradient(90deg, var(--jl-navy-2), var(--jl-accent) 55%, var(--jl-gold)) top / 100% 4px no-repeat,
    var(--jl-white);
  border-top: 0;
  border-bottom: 1px solid var(--jl-line);
  box-shadow: 0 1px 0 rgba(22, 41, 77, .03);
}

body .navbar-logo-text {
  font-family: var(--jl-serif);
  font-weight: 600;
  font-size: 18px;
  line-height: 1.3;
  letter-spacing: -.01em;
  color: var(--jl-navy);
  border: 0;
  margin-left: 0;
  padding-left: 0;
  padding-right: 0;
}

body .navbar-logo-text:hover { color: var(--jl-navy); }

.navbar-logo img,
.navbar-brand img { max-width: 100%; }

body .navbar-nav .nav-link,
body .navbar-nav .dropdown-item {
  font-family: var(--jl-sans);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .06em;
}

body .navbar-light .navbar-nav .nav-link {
  position: relative;
  color: var(--jl-navy);
}

body .navbar-light .navbar-nav .nav-link:hover,
body .navbar-light .navbar-nav .nav-link:focus {
  background: var(--jl-mist);
  color: var(--jl-navy);
}

.navbar-toggler {
  padding: .45rem .65rem;
  border: 1px solid var(--jl-line);
  border-radius: var(--jl-radius-sm);
  background: var(--jl-white);
}

.navbar-toggler:focus { outline: 3px solid var(--jl-accent); outline-offset: 2px; }

/* Opcional: com o banner novo o título aparece duas vezes (cabeçalho e banner).
   Remova o comentário para ocultar o título só do cabeçalho em telas grandes.
@media (min-width: 992px) {
  body .navbar-logo { display: none; }
  .main-header .container { padding-top: 1.25rem; }
}
*/

/* Menu recolhido (celular e tablet) */
@media (max-width: 991.98px) {
  .main-header .container { padding-top: .5rem; padding-bottom: .5rem; }

  .navbar-collapse {
    margin-top: .5rem;
    padding: .5rem 0 1rem;
    border-top: 1px solid var(--jl-line);
  }

  body .navbar-nav .nav-link {
    padding: .8rem .25rem;
    border-bottom: 1px solid var(--jl-line);
  }

  body .navbar-nav .dropdown-menu {
    position: static;
    float: none;
    margin: 0 0 .5rem;
    padding: .25rem 0 .25rem .75rem;
    background: transparent;
    border: 0;
    box-shadow: none;
  }

  body .navbar-nav .dropdown-item {
    padding: .6rem .5rem;
    font-weight: 500;
    letter-spacing: .02em;
    text-transform: none;
    color: var(--jl-ink);
    background: transparent;
  }

  body .navbar-nav .dropdown-item:hover,
  body .navbar-nav .dropdown-item:focus {
    background: var(--jl-mist);
    color: var(--jl-navy);
  }
}

/* Cabeçalho em telas grandes */
@media (min-width: 992px) {
  .main-header .container { padding-top: 2.25rem; }

  body .navbar-logo {
    max-width: 92%;
    padding-top: .5rem;
    padding-bottom: 1rem;
  }

  /* Logotipo em imagem (se houver): um pouco maior que o padrão do tema */
  body .navbar-logo img {
    width: auto;
    max-height: 88px;
  }

  body .navbar-logo-text {
    font-size: clamp(24px, 2.3vw, 30px);
  }

  body #primaryNav {
    padding-top: .25rem;
    padding-bottom: .5rem;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0 .15rem;
    border-top: 1px solid var(--jl-line);
  }

  /* Menu longo (10 ou mais itens): quebra em duas linhas em vez de estourar a largura */
  body #primaryNav .nav-item { white-space: normal; }

  body #primaryNav .nav-link {
    padding: .8rem .62rem;
    border: 0;
    background: transparent;
    color: var(--jl-navy);
    font-size: 12px;
    letter-spacing: .04em;
  }

  body #primaryNav .nav-link::after {
    content: "";
    position: absolute;
    left: .7rem;
    right: .7rem;
    bottom: .4rem;
    height: 2px;
    background: var(--jl-gold);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .25s var(--jl-ease);
  }

  body #primaryNav .nav-link:hover,
  body #primaryNav .nav-link:focus,
  body #primaryNav .show > .nav-link {
    background: transparent;
    color: var(--jl-navy);
    border: 0;
  }

  body #primaryNav .nav-link:hover::after,
  body #primaryNav .nav-link:focus::after,
  body #primaryNav .show > .nav-link::after {
    transform: scaleX(1);
  }

  /* Submenu em barra azul-marinho */
  body #primaryNav .dropdown-menu.show {
    gap: .25rem .5rem;
    padding: .9rem 1.25rem;
    background-color: var(--jl-navy);
    border: 0;
    border-radius: 0 0 var(--jl-radius) var(--jl-radius);
    box-shadow: var(--jl-shadow-lg);
    z-index: 1040;
  }

  body #primaryNav .dropdown-item {
    padding: .55rem .9rem;
    border: 0;
    border-radius: var(--jl-radius-sm);
    font-size: 15px;
    font-weight: 500;
    letter-spacing: .01em;
    text-transform: none;
    color: #fff;
    background: transparent;
  }

  body #primaryNav .dropdown-item:hover,
  body #primaryNav .dropdown-item:focus {
    background: rgba(255, 255, 255, .12);
    color: var(--jl-gold-bright);
    border: 0;
  }

  /* Menu do usuário e idioma, nos cantos */
  body #userNav .nav-link,
  body .language-toggle .dropdown-toggle {
    padding: .35rem .6rem;
    border: 0;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 500;
    letter-spacing: .02em;
    color: var(--jl-muted);
    background: transparent;
  }

  body #userNav .nav-link:hover,
  body #userNav .nav-link:focus,
  body .language-toggle .dropdown-toggle:hover,
  body .language-toggle .dropdown-toggle:focus {
    background: var(--jl-mist);
    color: var(--jl-navy);
    border: 0;
  }

  body #userNav .dropdown-item,
  body .language-toggle .dropdown-item {
    padding: .5rem .75rem;
    font-size: 14px;
    color: var(--jl-ink);
  }

  body #userNav .dropdown-item:hover,
  body #userNav .dropdown-item:focus,
  body .language-toggle .dropdown-item:hover,
  body .language-toggle .dropdown-item:focus {
    background: var(--jl-mist);
    color: var(--jl-navy);
  }
}

/* --------------------------------------------------------------------------
   3b. Menu limpo: só texto, sublinhado dourado e submenu leve (sem caixas)
   -------------------------------------------------------------------------- */
@keyframes jl-menu-in {
  from { opacity: 0; transform: translateX(-50%) translateY(6px); }
  to   { opacity: 1; transform: translateX(-50%) translateY(0); }
}

/* Se a revista passar a usar logotipo em imagem: contorno fino para dar leitura sobre o fundo claro */
body .navbar-logo img,
body .navbar-brand img {
  filter: drop-shadow(0 0 .5px rgba(22, 41, 77, .75));
}

body .navbar-brand img { max-height: 44px; }

@media (min-width: 992px) {
  .main-header .container { padding-bottom: .5rem; }

  /* Sem trilho nem borda: apenas uma linha fina separando o logotipo dos itens */
  body #primaryNav {
    margin-top: .25rem;
    padding: .25rem 0 0;
    gap: 0 .2rem;
    background: none;
    border: 0;
    border-top: 1px solid var(--jl-line);
    border-radius: 0;
    box-shadow: none;
  }

  body #primaryNav .nav-item { position: relative; white-space: normal; }

  body #primaryNav .nav-link {
    padding: .8rem .62rem;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    transform: none;
    font-size: 12px;
    letter-spacing: .04em;
    color: var(--jl-navy);
    transition: color .2s var(--jl-ease);
  }

  /* Sublinhado dourado que cresce do centro */
  body #primaryNav .nav-link::after {
    content: "";
    position: absolute;
    left: .62rem;
    right: .62rem;
    bottom: .5rem;
    height: 2px;
    width: auto;
    background: var(--jl-gold);
    border: 0;
    transform: scaleX(0);
    transform-origin: center;
    transition: transform .28s var(--jl-ease);
  }

  body #primaryNav .nav-link:hover,
  body #primaryNav .nav-link:focus,
  body #primaryNav .show > .nav-link,
  body #primaryNav .show > .nav-link:hover,
  body #primaryNav .show > .nav-link:focus {
    background: transparent;
    box-shadow: none;
    transform: none;
    color: var(--jl-blue);
  }

  body #primaryNav .nav-link:hover::after,
  body #primaryNav .nav-link:focus::after,
  body #primaryNav .show > .nav-link::after { transform: scaleX(1); }

  /* Setinha discreta nos itens com submenu (imagem de fundo, sem usar ::after) */
  body #primaryNav .nav-link.dropdown-toggle {
    padding-right: 1.5rem;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%2316294d' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right .6rem center / 9px;
  }

  /* Submenu: painel branco só com sombra, sem borda nem seta */
  body #primaryNav .dropdown-menu.show {
    display: block;
    position: absolute;
    top: calc(100% + 2px);
    left: 50%;
    right: auto;
    width: max-content;
    min-width: 230px;
    max-width: min(92vw, 320px);
    margin: 0;
    padding: .5rem 0;
    background-color: var(--jl-white);
    border: 0;
    border-radius: 12px;
    box-shadow: 0 14px 40px rgba(22, 41, 77, .18);
    transform: translateX(-50%);
    animation: jl-menu-in .2s var(--jl-ease);
    z-index: 1040;
  }

  body #primaryNav .dropdown-menu.show::before { content: none; }

  body #primaryNav .dropdown-item {
    display: block;
    width: 100%;
    padding: .55rem 1.25rem;
    border: 0;
    border-radius: 0;
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0;
    text-align: left;
    white-space: normal;
    color: var(--jl-ink);
    background: transparent;
    transition: color .15s, padding .2s var(--jl-ease);
  }

  /* Pontinho dourado que aparece ao passar o mouse */
  body #primaryNav .dropdown-item::before {
    content: "";
    display: inline-block;
    width: 0;
    height: 6px;
    margin-right: 0;
    vertical-align: middle;
    background: var(--jl-gold);
    border-radius: 50%;
    transition: width .2s var(--jl-ease), margin .2s var(--jl-ease);
  }

  body #primaryNav .dropdown-item:hover,
  body #primaryNav .dropdown-item:focus {
    background: transparent;
    border: 0;
    color: var(--jl-blue);
  }

  body #primaryNav .dropdown-item:hover::before,
  body #primaryNav .dropdown-item:focus::before {
    width: 6px;
    margin-right: .6rem;
  }
}

/* Menu recolhido: lista simples com linhas finas */
@media (max-width: 991.98px) {
  body .navbar-collapse {
    margin-top: .5rem;
    padding: .25rem 0 .75rem;
    background: none;
    border: 0;
    border-top: 1px solid var(--jl-line);
    border-radius: 0;
    box-shadow: none;
  }

  body .navbar-nav .nav-link {
    padding: .8rem .25rem;
    border: 0;
    border-bottom: 1px solid var(--jl-line);
    border-radius: 0;
  }

  body .navbar-light .navbar-nav .nav-link { color: var(--jl-navy); }

  body .navbar-light .navbar-nav .nav-link:hover,
  body .navbar-light .navbar-nav .nav-link:focus {
    background: transparent;
    color: var(--jl-blue);
  }

  body .navbar-nav .dropdown-menu {
    margin: 0 0 .25rem .75rem;
    padding: .1rem 0;
    border: 0;
    border-left: 2px solid var(--jl-gold);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  body .navbar-light .navbar-nav .dropdown-item {
    padding: .55rem .75rem;
    border-radius: 0;
    color: var(--jl-ink);
    background: transparent;
  }

  body .navbar-light .navbar-nav .dropdown-item:hover,
  body .navbar-light .navbar-nav .dropdown-item:focus {
    background: transparent;
    color: var(--jl-blue);
  }
}

/* Idioma no menu recolhido */
body #languageSmallNav .btn,
body #languageSmallNav .dropdown-item { font-size: 13px; }

body #languageSmallNav .dropdown-item:hover,
body #languageSmallNav .dropdown-item:focus {
  background: var(--jl-mist);
  color: var(--jl-navy);
}

/* Menus suspensos genéricos (idioma, citação, download) */
body .dropdown-menu {
  padding: .4rem;
  background: var(--jl-white);
  color: var(--jl-ink);
  border: 1px solid var(--jl-line);
  border-radius: var(--jl-radius-sm);
  box-shadow: var(--jl-shadow-md);
}

body .dropdown-item {
  padding: .5rem .75rem;
  color: var(--jl-ink);
  border: 0;
  border-radius: 8px;
}

body .dropdown-item:hover,
body .dropdown-item:focus {
  background: var(--jl-mist);
  color: var(--jl-navy);
  border: 0;
}

body .dropdown-header {
  margin-top: .5rem;
  font-family: var(--jl-sans);
  font-size: .75rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--jl-gold-dark);
}

/* Contador de tarefas */
.badge,
.badge-pill {
  padding: .3em .65em;
  border-radius: 999px;
  background: var(--jl-navy);
  color: #fff;
  font-weight: 600;
}

/* --------------------------------------------------------------------------
   4. Página inicial: faixa de destaque e edição atual
   -------------------------------------------------------------------------- */
.homepage-image {
  background: var(--jl-navy);
}

.homepage-image img {
  display: block;
  width: 100%;
  height: auto;
}

/* Banner com logos de indexadores (esquerda) e Qualis (direita): em telas estreitas,
   mantém o centro da imagem e evita cortar só um dos lados */
@media (max-width: 1199.98px) {
  .homepage-image img {
    min-height: 210px;
    object-fit: cover;
    object-position: center center;
  }
}

@media (max-width: 575.98px) {
  .homepage-image img { min-height: 190px; }
}

.container-homepage-issue {
  margin-top: 1.25rem;
  margin-bottom: 3rem;
}

/* Faixa da home: no fluxo normal da página, sem texto sobreposto à imagem */
@media (min-width: 1200px) {
  body .homepage-image-behind-issue {
    position: static;
    z-index: auto;
    max-height: none;
    overflow: visible;
  }

  body .homepage-image-behind-issue:after { display: none; }
}

/* O container vira grade: o tema entrega "Current Issue / Vol. / Data" antes da capa,
   e o "order" leva esse bloco para logo acima dos artigos */
.container-homepage-issue {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: stretch;
}

.container-homepage-issue > * { grid-column: 1 / -1; }

.container-homepage-issue > .homepage-issue-header { order: 1; }
.container-homepage-issue > .homepage-announcements { order: 2; }
.container-homepage-issue > .homepage-issue-current { order: 3; grid-column: 1; }
.container-homepage-issue > .homepage-issue-identifier { order: 4; grid-column: 2; }
.container-homepage-issue > .homepage-issue-published { order: 5; grid-column: 3; }
.container-homepage-issue > .issue-wrapper { order: 6; }
.container-homepage-issue > .text-center { order: 7; }
.container-homepage-issue > .homepage-additional-content { order: 8; }

/* Barra da edição: rótulo, volume e data de publicação em uma faixa azul-marinho */
body .container-homepage-issue.container-homepage-issue > .homepage-issue-current,
body .container-homepage-issue.container-homepage-issue > .homepage-issue-identifier,
body .container-homepage-issue.container-homepage-issue > .homepage-issue-published {
  display: flex;
  align-items: center;
  margin: 0 0 1.75rem;
  padding: 1.05rem 0;
  background: var(--jl-navy);
  box-shadow: inset 0 -3px 0 var(--jl-gold);
  text-align: left;
  text-shadow: none;
}

body .container-homepage-issue.container-homepage-issue > .homepage-issue-current {
  padding-left: 1.5rem;
  padding-right: .9rem;
  border-radius: var(--jl-radius) 0 0 var(--jl-radius);
  font-family: var(--jl-sans);
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  white-space: nowrap;
  color: var(--jl-gold-bright);
}

.homepage-issue-current::after {
  content: "";
  width: 1px;
  height: 1.5em;
  margin-left: .9rem;
  background: rgba(255, 255, 255, .28);
}

body .container-homepage-issue.container-homepage-issue > .homepage-issue-identifier {
  font-family: var(--jl-serif);
  font-size: clamp(1.35rem, 2.6vw, 1.9rem);
  font-weight: 700;
  line-height: 1.15;
  color: #ffffff;
}

body .container-homepage-issue.container-homepage-issue > .homepage-issue-published {
  justify-content: flex-end;
  padding-left: 1rem;
  padding-right: 1.5rem;
  border-radius: 0 var(--jl-radius) var(--jl-radius) 0;
  font-family: var(--jl-sans);
  font-size: .92rem;
  font-weight: 500;
  color: #dbe3f1;
}

@media (max-width: 575.98px) {
  .container-homepage-issue { grid-template-columns: 1fr; }

  .container-homepage-issue > .homepage-issue-current,
  .container-homepage-issue > .homepage-issue-identifier,
  .container-homepage-issue > .homepage-issue-published { grid-column: 1; }

  body .container-homepage-issue.container-homepage-issue > .homepage-issue-current {
    margin-bottom: 0;
    padding: 1rem 1.1rem .15rem;
    border-radius: var(--jl-radius) var(--jl-radius) 0 0;
    box-shadow: none;
  }

  body .container-homepage-issue.container-homepage-issue > .homepage-issue-identifier {
    margin-bottom: 0;
    padding: .1rem 1.1rem;
    box-shadow: none;
  }

  body .container-homepage-issue.container-homepage-issue > .homepage-issue-published {
    justify-content: flex-start;
    padding: .15rem 1.1rem 1rem;
    border-radius: 0 0 var(--jl-radius) var(--jl-radius);
  }

  .homepage-issue-current::after { display: none; }
}

.homepage-issue-header {
  align-items: center;
  margin-bottom: 2.5rem;
}

/* Capa em formato de livro: lombada, brilho, bordas de páginas e inclinação 3D */
.homepage-issue-header > .col-lg-3 > a {
  position: relative;
  display: block;
  width: fit-content;
  margin: 0 auto 1.75rem;
  border-radius: 5px 14px 14px 5px;
  box-shadow:
    5px 0 0 -1px #f1f1ee,
    9px 0 0 -2px #dcdcd6,
    20px 24px 40px rgba(22, 41, 77, .30);
  transition: transform .45s var(--jl-ease), box-shadow .45s var(--jl-ease);
  animation:
    jl-enter .9s var(--jl-ease) both,
    jl-float 6s ease-in-out .9s infinite alternate;
}

/* Movimento da capa: entrada suave, flutuação contínua e faixa de luz que atravessa o brilho */
@keyframes jl-enter {
  from { opacity: 0; scale: .9; }
  to   { opacity: 1; scale: 1; }
}

@keyframes jl-float {
  from { translate: 0 0; }
  to   { translate: 0 -12px; }
}

@keyframes jl-shine {
  0%, 55% { background-position: 150% 0, 0 0; }
  100%    { background-position: -50% 0, 0 0; }
}

.homepage-issue-header > .col-lg-3 > a::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 16px;
  z-index: 2;
  border-radius: 5px 0 0 5px;
  background: linear-gradient(90deg, rgba(0, 0, 0, .38), rgba(255, 255, 255, .20) 45%, rgba(0, 0, 0, 0));
  pointer-events: none;
}

.homepage-issue-header > .col-lg-3 > a::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  border-radius: 5px 14px 14px 5px;
  background:
    linear-gradient(115deg, rgba(255, 255, 255, 0) 38%, rgba(255, 255, 255, .5) 50%, rgba(255, 255, 255, 0) 62%) 150% 0 / 300% 100% no-repeat,
    linear-gradient(115deg, rgba(255, 255, 255, .30) 0%, rgba(255, 255, 255, 0) 38%);
  pointer-events: none;
  animation: jl-shine 6s ease-in-out 1.2s infinite;
}

body .homepage-issue-header .homepage-issue-cover {
  display: block;
  width: auto;
  max-width: min(240px, 62vw);
  max-height: none;
  margin: 0;
  border-radius: 5px 14px 14px 5px;
  box-shadow: none;
}

/* Capa e cartão de descrição com a mesma altura */
@media (min-width: 992px) {
  .homepage-issue-header { align-items: stretch; }

  .homepage-issue-header > .col-lg-3 {
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .homepage-issue-header > .col-lg-3 > a {
    margin: 0;
    transform: perspective(1100px) rotateY(18deg) rotateX(2deg);
    transform-origin: center center;
  }

  .homepage-issue-header > .col-lg-3 > a:hover {
    transform: perspective(1100px) rotateY(6deg) rotateX(0) translateY(-6px) scale(1.03);
    box-shadow:
      5px 0 0 -1px #f1f1ee,
      9px 0 0 -2px #dcdcd6,
      26px 32px 54px rgba(22, 41, 77, .36);
  }

  .homepage-issue-header > .col-lg-9 > .homepage-issue-description-wrapper {
    display: flex;
    flex-direction: column;
    justify-content: center;
    height: 100%;
  }
}

/* Cartão de descrição: filete dourado, aspas decorativas e fundo em degradê */
body .homepage-issue-description-wrapper {
  position: relative;
  overflow: hidden;
  padding: clamp(2.75rem, 4.5vw, 3.5rem) clamp(1.25rem, 3.5vw, 3rem) clamp(1.25rem, 3vw, 2rem);
  background: var(--jl-card);
  border: 1px solid var(--jl-line);
  border-top: 4px solid var(--jl-gold);
  border-radius: 16px;
  box-shadow: var(--jl-shadow-md);
}

body .homepage-issue-description-wrapper::before {
  content: "\201C";
  position: absolute;
  top: -.35rem;
  left: 1.1rem;
  font-family: var(--jl-serif);
  font-size: 7rem;
  font-weight: 700;
  line-height: 1;
  color: var(--jl-gold);
  opacity: .22;
  pointer-events: none;
}

body .homepage-issue-description:after {
  height: 7rem;
  background-image: linear-gradient(to bottom, transparent, var(--jl-card) 72%);
  transition: opacity .3s;
}

/* Texto da edição: recolhido com degradê. Abre ao passar o mouse, ao focar com o teclado
   e, em telas de toque, já aparece aberto. (Clique para alternar exigiria JavaScript.) */
body .homepage-issue-description {
  max-height: 17rem;
  padding-bottom: 4.5rem;
  transition: max-height .8s var(--jl-ease);
}

body .homepage-issue-description:hover,
body .homepage-issue-description:focus-within,
body .homepage-issue-description-wrapper:hover .homepage-issue-description {
  max-height: 150rem;
}

body .homepage-issue-description:hover:after,
body .homepage-issue-description:focus-within:after,
body .homepage-issue-description-wrapper:hover .homepage-issue-description:after {
  opacity: 0;
  pointer-events: none;
}

/* Botão "More" com seta que gira quando o texto abre */
body .homepage-issue-description-more {
  bottom: 1.25rem;
  width: auto;
}

body .homepage-issue-description-more a { background: var(--jl-white); }

body .homepage-issue-description-more a::before {
  content: "\25BE";
  display: inline-block;
  margin-right: .45rem;
  transition: transform .3s var(--jl-ease);
}

body .homepage-issue-description:hover .homepage-issue-description-more a::before,
body .homepage-issue-description-wrapper:hover .homepage-issue-description-more a::before {
  transform: rotate(180deg);
}

@media (hover: none) {
  body .homepage-issue-description { max-height: none; }
  body .homepage-issue-description:after { display: none; }
  body .homepage-issue-description-more { position: static; margin-top: 1rem; }
  body .homepage-issue-description { padding-bottom: 0; }
}

/* Para mostrar sempre o texto completo, remova o comentário:
body .homepage-issue-description { max-height: none; padding-bottom: 0; }
body .homepage-issue-description:after { display: none; }
body .homepage-issue-description-more { position: static; margin-top: 1rem; }
*/

.homepage-issue-description .h2 { margin-bottom: 1rem; }

.homepage-journal-description p:first-child { margin-top: 0; }

.homepage-journal-description {
  font-size: 1.02rem;
  line-height: 1.8;
}

.homepage-description-buttons { margin-top: 1rem; }

body #homepageDescriptionMore,
body #homepageDescriptionLess,
.homepage-issue-description-more a {
  display: inline-block;
  padding: .35rem 1rem;
  border: 1.5px solid var(--jl-navy);
  border-radius: 999px;
  font-size: .85rem;
  font-weight: 600;
  color: var(--jl-navy);
  text-decoration: none;
  cursor: pointer;
  transition: background .2s, color .2s;
}

body #homepageDescriptionMore:hover,
body #homepageDescriptionLess:hover,
.homepage-issue-description-more a:hover {
  background: var(--jl-navy);
  color: #fff;
}

.homepage-issue-galleys { padding-bottom: 1rem; }

.homepage-announcement {
  padding: 1.25rem;
  margin-bottom: 1rem;
  border: 1px solid var(--jl-line);
  border-radius: var(--jl-radius-sm);
}

.homepage-additional-content {
  margin-top: 3rem;
  margin-bottom: 3rem;
}

@media (min-width: 992px) {
  .homepage-issue-header { margin-top: 1rem; }
}

/* Remove o vão de 150px/320px que o tema deixa acima do sumário quando há imagem na home */
@media (min-width: 1200px) {
  body .issue-image-cover,
  body .issue-only-image,
  body .issue-full-data { margin-top: 0; }
}

/* --------------------------------------------------------------------------
   5. Sumário da edição: grade de cartões numerados
   -------------------------------------------------------------------------- */
body .issue-wrapper > [class*="col-"] {
  flex: 0 0 100%;
  max-width: 100%;
}

.issue-toc-section {
  counter-reset: jl-art;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 420px), 1fr));
  gap: 1.25rem;
  margin-bottom: 2rem;
}

.issue-toc-section + .issue-toc-section { border-top: 0; }

body .issue-toc-section-title {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 1rem;
  margin: 0 0 .25rem;
  font-family: var(--jl-serif);
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 700;
  letter-spacing: -.01em;
  text-transform: none;
  color: var(--jl-navy);
}

.issue-toc-section-title::before {
  content: "";
  flex: 0 0 6px;
  align-self: stretch;
  min-height: 1.6em;
  background: linear-gradient(180deg, var(--jl-gold-bright), var(--jl-gold));
  border-radius: 6px;
}

.issue-toc-section-title::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--jl-line);
}

body .article-summary {
  position: relative;
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 1.35rem 1.5rem 1.25rem;
  overflow: hidden;
  background: var(--jl-white);
  border: 1px solid var(--jl-line);
  border-top: 3px solid var(--jl-gold);
  border-radius: var(--jl-radius);
  box-shadow: var(--jl-shadow-sm);
  counter-increment: jl-art;
  transition: box-shadow .3s var(--jl-ease), transform .3s var(--jl-ease), border-top-color .3s;
}

/* Número grande e discreto no canto do cartão */
.article-summary::before {
  content: counter(jl-art, decimal-leading-zero);
  position: absolute;
  right: 1rem;
  bottom: .15rem;
  font-family: var(--jl-serif);
  font-size: 4.75rem;
  font-weight: 700;
  line-height: 1;
  color: var(--jl-navy);
  opacity: .055;
  pointer-events: none;
}

.article-summary:hover {
  border-top-color: var(--jl-navy);
  box-shadow: var(--jl-shadow-md);
  transform: translateY(-3px);
}

.article-summary > .row {
  flex-wrap: nowrap;
  align-items: flex-start;
  margin: 0 0 .65rem;
}

.article-summary > .row > [class*="col"] { padding-left: 0; padding-right: 0; }

.article-summary > .row > .col-3 {
  flex: 0 0 auto;
  width: auto;
  max-width: none;
  padding-left: .75rem;
}

body .article-summary-title {
  flex: 1 1 auto;
  margin: 0 0 .85rem;
  font-family: var(--jl-serif);
  font-size: clamp(1.1rem, 1.6vw, 1.28rem);
  font-weight: 600;
  line-height: 1.38;
}

.article-summary-title a {
  color: var(--jl-navy);
  text-decoration: none;
  background: linear-gradient(var(--jl-gold), var(--jl-gold)) 0 100% / 0 2px no-repeat;
  transition: background-size .3s var(--jl-ease), color .2s;
}

.article-summary-title a:hover,
.article-summary-title a:focus {
  color: var(--jl-navy);
  background-size: 100% 2px;
  text-decoration: none;
}

.article-summary-authors {
  font-size: .85rem;
  font-weight: 500;
  line-height: 1.5;
  color: var(--jl-muted);
}

.article-summary-pages {
  display: inline-block;
  width: fit-content;
  margin-left: auto;
  padding: .12rem .65rem;
  border-radius: 999px;
  background: var(--jl-gold-soft);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .04em;
  font-variant-numeric: tabular-nums;
  color: var(--jl-gold-dark);
  white-space: nowrap;
}

.article-summary-date {
  margin-bottom: .5rem;
  font-size: .85rem;
  color: var(--jl-muted);
}

body .article-summary-doi {
  order: 2;
  margin: 0 0 .9rem;
  font-size: .8rem;
  line-height: 1.5;
  color: var(--jl-muted);
  overflow-wrap: anywhere;
}

.article-summary-doi *,
.article-summary-doi a { font-size: inherit; }

.article-summary-doi strong { font-weight: 600; color: var(--jl-navy); }

.article-summary-doi a { color: var(--jl-muted); }
.article-summary-doi a:hover { color: var(--jl-blue); }

.article-summary-galleys {
  order: 3;
  margin-top: auto;
  position: relative;
  z-index: 1;
}

.article-summary-galleys .btn,
.article-summary-galleys a.btn {
  margin: 0 .35rem .25rem 0;
  padding: .3em 1.1em;
  font-size: .75rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.article-details-doi,
.article-details-doi a,
.article-details-pubid-value,
.article-details-pubid-value a { overflow-wrap: anywhere; }

/* Botão "ver todas as edições" */
.container-homepage-issue > .text-center {
  margin-top: 2.5rem;
}

.container-homepage-issue > .text-center .btn::after {
  content: "\2192";
  display: inline-block;
  margin-left: .6rem;
  transition: transform .25s var(--jl-ease);
}

.container-homepage-issue > .text-center .btn:hover::after { transform: translateX(4px); }

@media (max-width: 575.98px) {
  body .article-summary { padding: 1.1rem 1.1rem 1rem; }
  .article-summary::before { font-size: 3.6rem; }
}

/* --------------------------------------------------------------------------
   6. Botões
   -------------------------------------------------------------------------- */
body .btn {
  padding: .55em 1.35em;
  font-family: var(--jl-sans);
  font-weight: 600;
  letter-spacing: .02em;
  color: var(--jl-navy);
  background: transparent;
  border: 1.5px solid var(--jl-navy);
  border-radius: 999px;
  transition: background .2s var(--jl-ease), color .2s var(--jl-ease), border-color .2s var(--jl-ease), transform .2s var(--jl-ease);
}

body .btn:hover,
body .btn:focus {
  background: var(--jl-navy);
  border-color: var(--jl-navy);
  color: #fff;
}

body .btn:active { transform: translateY(1px); }

body .btn-primary {
  background: var(--jl-navy);
  border-color: var(--jl-navy);
  color: #fff;
}

body .btn-primary:hover,
body .btn-primary:focus,
body .btn-primary:active {
  background: var(--jl-gold-dark) !important;
  border-color: var(--jl-gold-dark) !important;
  color: #fff;
}

body .btn-link,
body .btn-text {
  padding-left: 0;
  padding-right: 0;
  border-color: transparent !important;
  background: transparent !important;
  color: var(--jl-blue);
  border-radius: 6px;
}

body .btn-link:hover,
body .btn-link:focus,
body .btn-text:hover,
body .btn-text:focus {
  color: var(--jl-gold-dark);
  text-decoration: underline;
}

/* --------------------------------------------------------------------------
   7. Páginas de conteúdo (Sobre, Políticas, Indexação, etc.)
   -------------------------------------------------------------------------- */
.page-header {
  margin-top: 2.5rem;
  margin-bottom: 2rem;
}

.page-header h1 {
  font-size: clamp(1.6rem, 3.6vw, 2.35rem);
  font-weight: 700;
}

.page-header h1::after {
  content: "";
  display: block;
  width: 56px;
  height: 3px;
  margin: .9rem 0 0;
  background: var(--jl-gold);
  border-radius: 3px;
}

@media (min-width: 992px) {
  .page-header h1::after { margin-left: auto; margin-right: auto; }
}

body .page-content {
  padding-top: 1rem;
  border-top: 0;
  font-size: 1.0625rem;
  line-height: 1.75;
}

body .page-content p,
body .page-content li {
  font-size: 1.0625rem;
  line-height: 1.75;
}

.page-content h2:not(.issue-toc-section-title):not(.homepage-issue-current),
.page-content h3:not(.issue-toc-section-title),
.page-content h4 {
  margin-top: 2em;
  margin-bottom: .6em;
}

.page-content img { max-width: 100%; height: auto; border-radius: 6px; }

.page-content table { max-width: 100%; }

.page-content blockquote {
  margin: 1.5rem 0;
  padding: .75rem 1.25rem;
  border-left: 4px solid var(--jl-gold);
  background: var(--jl-gold-soft);
  border-radius: 0 var(--jl-radius-sm) var(--jl-radius-sm) 0;
}

.page-content iframe { width: 100%; }

/* Opcional: texto justificado nas páginas de conteúdo (remova o comentário para ativar)
.page-content p,
.page-content li {
  text-align: justify;
  hyphens: auto;
  -webkit-hyphens: auto;
}
*/

/* --------------------------------------------------------------------------
   8. Página do artigo
   -------------------------------------------------------------------------- */
.article-details h1 {
  font-size: clamp(1.5rem, 3.2vw, 2.15rem);
  font-weight: 700;
  line-height: 1.25;
}

.article-details-issue-identifier,
.article-details-issue-identifier a {
  font-family: var(--jl-sans);
  font-size: .85rem;
  font-weight: 600;
  letter-spacing: .04em;
  color: var(--jl-gold-dark);
}

.article-details-issue-section,
.article-details-published,
.article-details-doi {
  font-size: .85rem;
  color: var(--jl-muted);
}

.article-details-block,
.article-details .item { margin-bottom: 2.25rem; }

body .article-details-heading,
body .article-details .item > .label {
  margin-bottom: .6rem;
  font-family: var(--jl-sans);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--jl-gold-dark);
}

.article-details-abstract {
  font-size: 1.05rem;
  line-height: 1.85;
}

.article-details-author { margin-bottom: 1rem; }

.article-details-author-name { font-weight: 600; color: var(--jl-navy); }

.article-details-author-affiliation { font-size: .875rem; color: var(--jl-muted); }

body .article-details-bio-toggle {
  color: var(--jl-blue);
}

body .article-details-bio-toggle:hover,
body .article-details-bio-toggle:focus { color: var(--jl-gold-dark); }

.article-details-keywords-value { font-weight: 500; }

.article-details-references-value {
  font-size: .92rem;
  line-height: 1.7;
}

.article-details-references-value p { margin-bottom: .6rem; }

.article-details-cover {
  border-radius: 6px;
  box-shadow: var(--jl-shadow-md);
}

.article-details-galleys .btn { width: 100%; margin-bottom: .5rem; }

@media (min-width: 992px) {
  .article-details-galleys-sidebar { position: sticky; top: 1rem; }
}

.article-details-license img { max-width: 88px; }

/* --------------------------------------------------------------------------
   9. Arquivo de edições e página de edição
   -------------------------------------------------------------------------- */
.issue-summary {
  height: 100%;
  padding: 1rem;
  background: var(--jl-white);
  border: 1px solid var(--jl-line);
  border-radius: var(--jl-radius);
  box-shadow: var(--jl-shadow-sm);
  transition: box-shadow .25s var(--jl-ease), transform .25s var(--jl-ease);
}

.issue-summary:hover {
  box-shadow: var(--jl-shadow-md);
  transform: translateY(-3px);
}

.issue-summary-cover {
  border-radius: 6px;
  box-shadow: var(--jl-shadow-sm);
}

.issue-summary-series,
.issue-summary-series a {
  font-family: var(--jl-serif);
  font-weight: 600;
  color: var(--jl-navy);
}

.issue-summary-title,
.issue-summary-date { font-size: .85rem; color: var(--jl-muted); }

body .page-issue-description-wrapper {
  padding: clamp(1.25rem, 3vw, 2.5rem);
  background: var(--jl-mist);
  border-radius: var(--jl-radius);
}

.page-issue-cover {
  border-radius: 6px;
  box-shadow: var(--jl-shadow-md);
}

/* --------------------------------------------------------------------------
   10. Formulários, busca, login e registro
   -------------------------------------------------------------------------- */
label,
.label { font-weight: 600; font-size: .9rem; color: var(--jl-navy); }

legend {
  margin: 2rem 0 1rem;
  font-family: var(--jl-sans);
  font-size: .9rem;
  font-weight: 700;
  letter-spacing: .12em;
  color: var(--jl-gold-dark);
}

.form-group { margin-bottom: 1.5rem; }

body .form-control,
body select.form-control,
body textarea.form-control {
  padding: .65rem .95rem;
  background: var(--jl-white);
  color: var(--jl-ink);
  border: 1px solid #c8cfdc;
  border-radius: var(--jl-radius-sm);
  box-shadow: none;
  transition: border-color .2s, box-shadow .2s;
}

body .form-control:focus {
  border-color: var(--jl-blue);
  box-shadow: 0 0 0 3px rgba(31, 95, 168, .2);
  outline: 0;
}

::placeholder {
  color: #7b8494;
  font-style: normal;
  opacity: 1;
}

input[type="checkbox"],
input[type="radio"] { accent-color: var(--jl-navy); }

/* Janela de login */
body .modal-content {
  background: var(--jl-white);
  color: var(--jl-ink);
  border: 0;
  border-radius: 18px;
  box-shadow: var(--jl-shadow-lg);
}

body .modal-header { border-color: var(--jl-line); }

body .modal-content .close {
  color: var(--jl-navy);
  opacity: .8;
}

body .modal-content a {
  color: var(--jl-blue);
  text-decoration: underline;
}

body .modal-content a:hover { color: var(--jl-gold-dark); }

body .modal-content a.btn,
body .modal-content a.btn:hover { text-decoration: none; }

.modal-backdrop.show { opacity: .6; background: var(--jl-navy); }

/* --------------------------------------------------------------------------
   11. Alertas e paginação
   -------------------------------------------------------------------------- */
body .alert {
  border-radius: var(--jl-radius-sm);
  border: 1px solid transparent;
}

body .alert-primary {
  background: var(--jl-gold-soft);
  border-color: #f6dd9a;
  color: var(--jl-navy);
}

body .alert-primary a,
body .alert-primary a:hover,
body .alert-primary a:focus {
  color: var(--jl-navy);
  text-decoration: underline;
}

body .alert-danger {
  background: #fdeceb;
  border-color: #f3c1bd;
  color: #8a1c14;
}

body .alert-danger a,
body .alert-danger a:hover,
body .alert-danger a:focus { color: #8a1c14; }

body .page-link {
  margin: 0 2px;
  color: var(--jl-navy);
  border: 1px solid var(--jl-line);
  border-radius: 8px;
}

body .page-link:hover,
body .page-link:focus {
  background: var(--jl-navy);
  border-color: var(--jl-navy);
  color: #fff;
}

body .page-item.active .page-link {
  background: var(--jl-gold-soft);
  border-color: var(--jl-gold);
  color: var(--jl-navy);
}

/* --------------------------------------------------------------------------
   12. Rodapé e blocos laterais
   -------------------------------------------------------------------------- */
.site-footer {
  margin-top: 4rem;
  padding-top: 3rem;
  padding-bottom: 2.5rem;
  background: linear-gradient(180deg, #16294d 0%, #0d1a33 100%);
  border-top: 4px solid var(--jl-gold);
  color: #e6ebf4;
}

.site-footer a {
  color: #fff;
  text-decoration-color: rgba(255, 201, 64, .7);
  text-underline-offset: .2em;
}

.site-footer a:hover,
.site-footer a:focus { color: var(--jl-gold-bright); }

body .site-footer-sidebar {
  padding-bottom: 2rem;
  margin-bottom: 2rem;
  border-bottom: 1px solid rgba(255, 255, 255, .16);
}

body .site-footer-sidebar .row {
  flex-direction: row;
  flex-wrap: wrap;
  gap: 1rem;
  margin-left: 0;
  margin-right: 0;
}

body .pkp_block {
  flex: 1 1 240px;
  width: auto;
  max-width: 100%;
  margin: 0;
  padding: 1.25rem 1.4rem;
  background: rgba(255, 255, 255, .05);
  border: 1px solid rgba(255, 255, 255, .1);
  border-radius: var(--jl-radius);
}

body .pkp_block + .pkp_block { margin-top: 0; }

body .pkp_block .title {
  margin-bottom: .75rem;
  font-family: var(--jl-serif);
  font-size: 1.15rem;
  font-weight: 600;
  letter-spacing: .01em;
  color: var(--jl-gold-bright);
}

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

.pkp_block li { margin-bottom: .35rem; }

body .block_make_submission .block_make_submission_link {
  padding: .65em 1.5em;
  background: var(--jl-gold-bright);
  border: 1.5px solid var(--jl-gold-bright);
  border-radius: 999px;
  color: var(--jl-navy);
  font-weight: 700;
  text-decoration: none;
}

body .block_make_submission .block_make_submission_link:hover,
body .block_make_submission .block_make_submission_link:focus {
  background: #fff;
  border-color: #fff;
  color: var(--jl-navy);
}

.site-footer-content {
  font-size: .9rem;
  line-height: 1.75;
}

.site-footer-content img {
  max-width: 100%;
  height: auto;
  margin: .25rem .15rem;
  border-radius: 6px;
}

.footer-brand-image {
  max-width: 96px;
  opacity: .92;
}

/* --------------------------------------------------------------------------
   13. Telas muito pequenas
   -------------------------------------------------------------------------- */
@media (max-width: 575.98px) {
  .container { padding-left: 1rem; padding-right: 1rem; }

  .container-homepage-issue { margin-top: 1.75rem; }

  .page-header { margin-top: 1.75rem; margin-bottom: 1.25rem; }

  body .page-content,
  body .page-content p,
  body .page-content li { font-size: 1rem; }

  .site-footer { margin-top: 3rem; padding-top: 2rem; }

  body .pkp_block { flex-basis: 100%; }
}

/* --------------------------------------------------------------------------
   14. Acessibilidade e impressão
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }

  *,
  *::before,
  *::after {
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
  }

  .article-summary:hover,
  .issue-summary:hover,
  .homepage-issue-cover:hover { transform: none; }

  .homepage-issue-header > .col-lg-3 > a,
  .homepage-issue-header > .col-lg-3 > a::after { animation: none !important; }
}

@media print {
  .main-header,
  .site-footer,
  .homepage-image,
  .navbar,
  .btn { display: none !important; }

  body { color: #000; background: #fff; }

  a { color: #000; text-decoration: underline; }

  .article-summary { box-shadow: none; break-inside: avoid; }
}

/* ==========================================================================
   15. Ajustes de equilíbrio (cabeçalho, menu, banner, arquivo de edições)
   ========================================================================== */
@media (min-width: 992px) {
  body #primaryNav { flex-wrap: nowrap; justify-content: center; gap: 0; }
  body #primaryNav .nav-link { white-space: nowrap; }
  body .navbar-logo { padding-top: .35rem; padding-bottom: .6rem; }
}
@media (min-width: 992px) and (max-width: 1199px) {
  body #primaryNav .nav-link { padding-left: .45rem; padding-right: .45rem; font-size: 11.5px; letter-spacing: .02em; }
  body #primaryNav .nav-link::after { left: .45rem; right: .45rem; }
}

/* Banner: altura proporcional e centrado */
body .homepage-image img { width: 100%; height: 240px; object-fit: cover; object-position: center; }
@media (max-width: 767px) { body .homepage-image img { height: 150px; } }

/* Arquivo de edições: grade uniforme */
body .page-archives .row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.5rem;
  margin: 0 0 1.5rem;
  justify-content: stretch;
}
body .page-archives .row > [class*="col-"] {
  flex: none; width: auto; max-width: none; padding: 0; display: flex;
}
body .page-archives .row > [class*="col-"]:empty { display: none; }
@media (max-width: 991px) { body .page-archives .row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; } }
@media (max-width: 479px) { body .page-archives .row { grid-template-columns: 1fr; } }

body .issue-summary {
  display: flex; flex-direction: column; width: 100%; height: 100%;
  padding: .85rem; text-align: left; overflow: hidden;
}
body .issue-summary > a {
  display: block; aspect-ratio: 3 / 4; overflow: hidden;
  border-radius: 6px; background: var(--jl-mist); margin-bottom: .85rem;
}
body .issue-summary-cover {
  width: 100%; height: 100%; object-fit: cover; object-position: top center;
  border-radius: 0; box-shadow: none; margin: 0;
}
body .issue-summary .card-body { padding: 0; display: flex; flex-direction: column; flex: 1; }
body .issue-summary-series { font-size: 1.05rem; line-height: 1.3; margin: 0 0 .35rem; }
body .issue-summary .card-text { margin: 0; }
body .issue-summary-date {
  display: inline-block; margin: 0 0 .4rem; padding: .1rem .55rem;
  font-size: .75rem; font-weight: 600; letter-spacing: .03em;
  color: var(--jl-gold-dark); background: var(--jl-gold-soft); border-radius: 999px;
}
body .issue-summary-title {
  margin: 0; font-size: .85rem; line-height: 1.45; color: var(--jl-muted);
  text-align: left; hyphens: manual; word-spacing: normal;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}

/* ==========================================================================
   16. Menu arrojado, capa em destaque com transição e apresentação da edição
   ========================================================================== */

/* ---- Menu: itens em negrito com "faixa" dourada inclinada que varre o item ---- */
@media (min-width: 992px) {
  body #primaryNav {
    border-top: 0;
    padding: .35rem 0 0;
    background: linear-gradient(90deg, transparent, var(--jl-navy) 20%, var(--jl-accent) 50%, var(--jl-gold) 80%, transparent) top / 100% 2px no-repeat;
  }
  body #primaryNav .nav-link {
    position: relative;
    isolation: isolate;
    margin: .55rem .1rem;
    padding: .55rem .8rem;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .09em;
    text-transform: uppercase;
    color: var(--jl-navy);
    transition: color .25s var(--jl-ease), transform .25s var(--jl-ease);
  }
  body #primaryNav .nav-link::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    height: auto;
    background: linear-gradient(100deg, var(--jl-gold-bright), var(--jl-gold));
    border-radius: 3px;
    transform: skewX(-14deg) scaleX(0);
    transform-origin: left center;
    transition: transform .35s var(--jl-ease);
    box-shadow: 0 6px 14px rgba(242, 183, 5, .35);
  }
  body #primaryNav .nav-link:hover,
  body #primaryNav .nav-link:focus,
  body #primaryNav .show > .nav-link,
  body #primaryNav .nav-item.active > .nav-link,
  body #primaryNav .nav-link.current {
    color: var(--jl-navy);
    background: transparent;
    transform: translateY(-1px);
  }
  body #primaryNav .nav-link:hover::after,
  body #primaryNav .nav-link:focus::after,
  body #primaryNav .show > .nav-link::after,
  body #primaryNav .nav-item.active > .nav-link::after,
  body #primaryNav .nav-link.current::after {
    transform: skewX(-14deg) scaleX(1);
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  body #primaryNav .nav-link { padding: .55rem .5rem; font-size: 11px; letter-spacing: .05em; }
}

/* ---- Apresentação da edição: palco para a capa + cartão de texto equilibrado ---- */
@media (min-width: 992px) {
  body .homepage-issue-header {
    display: grid;
    grid-template-columns: minmax(300px, 34%) 1fr;
    gap: clamp(1.5rem, 3vw, 2.75rem);
    align-items: stretch;
    margin: 1.5rem 0 2.5rem;
  }
  body .homepage-issue-header > .col-lg-3,
  body .homepage-issue-header > .col-lg-9 {
    flex: none; max-width: none; width: auto; padding: 0;
  }
  /* Palco: halo luminoso atrás da capa */
  body .homepage-issue-header > .col-lg-3 {
    position: relative;
    min-height: 430px;
    border-radius: 18px;
    background:
      radial-gradient(circle at 50% 42%, rgba(242, 183, 5, .30), transparent 58%),
      linear-gradient(160deg, var(--jl-navy), var(--jl-navy-2));
    overflow: hidden;
  }
  body .homepage-issue-header > .col-lg-3::before {
    content: "";
    position: absolute;
    left: 8%; right: 8%; bottom: 7%;
    height: 22px;
    background: radial-gradient(ellipse at center, rgba(0, 0, 0, .55), transparent 70%);
    filter: blur(4px);
  }
  body .homepage-issue-header .homepage-issue-cover {
    max-width: none;
    width: clamp(240px, 22vw, 290px);
  }
  /* Transição especial: a capa "abre" como um livro girando até a posição final */
  body .homepage-issue-header > .col-lg-3 > a {
    transform-style: preserve-3d;
    transform: perspective(1200px) rotateY(16deg) rotateX(2deg);
    animation: jl-open 1.4s cubic-bezier(.2, .9, .25, 1) both, jl-float 6s ease-in-out 1.4s infinite alternate;
  }
  body .homepage-issue-header > .col-lg-3 > a:hover {
    transform: perspective(1200px) rotateY(-8deg) rotateX(0) translateY(-8px) scale(1.05);
  }
}
@keyframes jl-open {
  0%   { opacity: 0; transform: perspective(1200px) rotateY(-80deg) translateX(-60px) scale(.82); }
  60%  { opacity: 1; transform: perspective(1200px) rotateY(28deg) scale(1.03); }
  100% { opacity: 1; transform: perspective(1200px) rotateY(16deg) rotateX(2deg) scale(1); }
}

/* Cartão de texto: título forte, texto alinhado à esquerda, sem espaçamento "esticado" */
body .homepage-issue-description-wrapper { border-radius: 18px; }
body .homepage-issue-description,
body .homepage-issue-description p {
  text-align: left;
  hyphens: manual;
  word-spacing: normal;
}
body .homepage-issue-description .h2,
body .homepage-issue-description h2 {
  position: relative;
  margin-bottom: 1.25rem;
  padding-bottom: .75rem;
  font-size: clamp(1.6rem, 2.4vw, 2.1rem);
  line-height: 1.2;
}
body .homepage-issue-description .h2::after,
body .homepage-issue-description h2::after {
  content: "";
  position: absolute;
  left: 0; bottom: 0;
  width: 64px; height: 4px;
  border-radius: 2px;
  background: linear-gradient(90deg, var(--jl-gold), var(--jl-accent));
}
body .homepage-issue-description p { font-size: 1rem; line-height: 1.75; }

@media (max-width: 991px) {
  body .homepage-issue-header > .col-lg-3 {
    padding: 2rem 1rem 1.5rem;
    margin-bottom: 1.5rem;
    border-radius: 16px;
    background:
      radial-gradient(circle at 50% 45%, rgba(242, 183, 5, .30), transparent 60%),
      linear-gradient(160deg, var(--jl-navy), var(--jl-navy-2));
  }
  body .homepage-issue-header .homepage-issue-cover { max-width: min(250px, 66vw); }
  body .homepage-issue-header > .col-lg-3 > a { animation: jl-enter .9s var(--jl-ease) both, jl-float 6s ease-in-out .9s infinite alternate; }
}
@media (prefers-reduced-motion: reduce) {
  body .homepage-issue-header > .col-lg-3 > a { animation: none !important; }
}

/* ==========================================================================
   17. Compactação: capa, cartão de apresentação e rodapé
   ========================================================================== */
@media (min-width: 992px) {
  body .homepage-issue-header { grid-template-columns: minmax(230px, 26%) 1fr; gap: 1.5rem; margin: 1rem 0 1.75rem; }
  body .homepage-issue-header > .col-lg-3 { min-height: 300px; border-radius: 14px; }
  body .homepage-issue-header .homepage-issue-cover { width: clamp(150px, 13vw, 175px); }
}
body .homepage-issue-description-wrapper { padding: 2.25rem clamp(1.25rem, 3vw, 2.25rem) 1.1rem; border-radius: 14px; }
body .homepage-issue-description-wrapper::before { font-size: 5rem; top: -.2rem; }
body .homepage-issue-description { max-height: 11.5rem; padding-bottom: 3.25rem; }
body .homepage-issue-description .h2,
body .homepage-issue-description h2 { font-size: clamp(1.3rem, 1.9vw, 1.6rem); margin-bottom: .85rem; padding-bottom: .55rem; }
body .homepage-issue-description p { font-size: .93rem; line-height: 1.6; margin-bottom: .5rem; }
body .homepage-issue-description:after { height: 4.5rem; }
body .homepage-issue-description-more { bottom: .75rem; }
@media (max-width: 991px) {
  body .homepage-issue-header > .col-lg-3 { padding: 1.25rem 1rem 1rem; }
  body .homepage-issue-header .homepage-issue-cover { max-width: min(170px, 48vw); }
}

/* Rodapé enxuto: blocos com altura própria e nuvem de palavras reduzida */
.site-footer { margin-top: 2rem; padding-top: 1.5rem; padding-bottom: 1.25rem; border-top-width: 3px; }
body .site-footer-sidebar { padding-bottom: 1rem; margin-bottom: 1rem; }
body .site-footer-sidebar .row { gap: .75rem; align-items: flex-start; }
body .pkp_block { flex: 1 1 220px; padding: .8rem 1rem; }
body .pkp_block .title { margin-bottom: .45rem; font-size: 1rem; }
.pkp_block li { margin-bottom: .2rem; }
body .pkp_block.block_web_feed img { margin: 0; }
body .pkp_block [class*="keyword"],
body .pkp_block .content > div[id*="cloud" i],
body .pkp_block canvas,
body .pkp_block svg { max-height: 170px; }
body .pkp_block [class*="keyword"] .content,
body .pkp_block [class*="keyword"] > div:not(.title) { max-height: 170px; overflow: hidden; zoom: .6; }
.site-footer-content { font-size: .82rem; line-height: 1.55; }
.site-footer-content img { max-height: 40px; width: auto; margin: .1rem; }
.site-footer-content p { margin-bottom: .4rem; }

/* ==========================================================================
   18. Capa sem palco escuro: fundo claro, halo suave e base de sombra
   ========================================================================== */
@media (min-width: 992px) {
  body .homepage-issue-header > .col-lg-3 {
    background:
      radial-gradient(ellipse 70% 55% at 50% 48%, rgba(242, 183, 5, .20), rgba(242, 183, 5, 0) 70%),
      radial-gradient(ellipse 60% 45% at 50% 55%, rgba(31, 95, 168, .10), rgba(31, 95, 168, 0) 75%);
    border: 0;
    border-radius: 0;
    overflow: visible;
    min-height: 300px;
  }
  body .homepage-issue-header > .col-lg-3::before {
    left: 18%; right: 18%; bottom: 6%;
    background: radial-gradient(ellipse at center, rgba(22, 41, 77, .28), transparent 70%);
  }
}
@media (max-width: 991px) {
  body .homepage-issue-header > .col-lg-3 {
    background:
      radial-gradient(ellipse 70% 60% at 50% 48%, rgba(242, 183, 5, .20), rgba(242, 183, 5, 0) 70%);
    border-radius: 0;
  }
}
