/* ══════════════════════════════════════════════════════════
   NUVEM DE PALAVRAS — [nuvem_palavras]
   ══════════════════════════════════════════════════════════ */

@font-face {
  font-family: "Word Cloud Poppins";
  src: url(fonts/Poppins-Bold.woff2) format("woff2");
  font-weight: 700;
  font-display: swap;
}

@font-face {
  font-family: "Word Cloud Poppins";
  src: url(fonts/Poppins-Black.woff2) format("woff2");
  font-weight: 900;
  font-display: swap;
}

/* ── Cores: versão clara (padrão do site) — contraste ≥ 6:1 sobre branco ── */
.word-cloud {
  --wc-bg: transparent;
  --wc-projetos: #B0126F;     /* rosa   */
  --wc-livros: #00629B;       /* azul   */
  --wc-paginas: #7A5C00;      /* amarelo */
  --wc-publicacoes: #111111;  /* neutro */
  --wc-center: #111111;
  --wc-dot: #D0021B;
  --wc-hover: #D0021B;
  --wc-focus: #111111;
}

/* ── Versão escura — contraste ≥ 7,9:1 sobre preto ── */
html.theme-dark .word-cloud--auto,
.word-cloud--escuro {
  --wc-bg: transparent;
  --wc-projetos: #FF66C4;
  --wc-livros: #38B6FF;
  --wc-paginas: #FFDE59;
  --wc-publicacoes: #FFFFFF;
  --wc-center: #FFFFFF;
  --wc-dot: #FA0909;
  --wc-hover: #FF3131;
  --wc-focus: #FFFFFF;
}

/* Fundo claro forçado, mesmo no tema escuro */
html.theme-dark .word-cloud--claro {
  --wc-bg: #FFFFFF;
}

/* Até 1140px, mesmo dentro da coluna de conteúdo (768px); centralizada na tela */
.word-cloud.word-cloud {
  box-sizing: border-box;
  width: min(1140px, 100vw - 48px);
  max-width: none;
  margin-left: calc(50% - min(1140px, 100vw - 48px) / 2) !important;
  margin-right: 0 !important;
}

.word-cloud {
  background: var(--wc-bg);
  border-radius: 12px;
  padding: clamp(1rem, 3vw, 2.5rem);
  font-family: "Word Cloud Poppins", var(--wp--preset--font-family--poppins), sans-serif;
}

.word-cloud__stage {
  position: relative;
}

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

/* ── Palavras ── */
.word-cloud__word {
  display: inline-block;
  max-inline-size: 14em;
  font-weight: 700;
  line-height: 1.05;
  text-transform: uppercase;
  text-wrap: balance;
  text-decoration: none !important;
  border-radius: 4px;
  /* O tema anima todas as propriedades de links (a { transition: .3s });
     aqui a fonte precisa mudar na hora para o JS medir corretamente */
  transition: color 0.2s;
}

/* Hover/foco: só troca de cor (vence o sublinhado global do tema em a:hover) */
.word-cloud .word-cloud__stage a.word-cloud__word:hover,
.word-cloud .word-cloud__stage a.word-cloud__word:focus-visible {
  color: var(--wc-hover);
  text-decoration: none !important;
}

.word-cloud a.word-cloud__word:focus-visible {
  outline: 3px solid var(--wc-focus);
  outline-offset: 3px;
}

/* Tamanhos: sem JS usa rem; com JS, --wc-size × (≈ 1% da largura) */
.word-cloud__word--tier-1 { font-size: 1.5rem;  --wc-size: 3.4; }
.word-cloud__word--tier-2 { font-size: 1.3rem;  --wc-size: 2.7; }
.word-cloud__word--tier-3 { font-size: 1.15rem; --wc-size: 2.2; }
.word-cloud__word--tier-4 { font-size: 1rem;    --wc-size: 1.7; white-space: nowrap; }

.word-cloud__center[hidden] { display: none !important; }

.word-cloud__center {
  font-size: clamp(1.75rem, 9vw, 3.5rem);
  --wc-size: 6;
  font-weight: 900;
  line-height: 1;
  white-space: nowrap;
  max-inline-size: none;
  color: var(--wc-center);
}

.word-cloud__dot { color: var(--wc-dot); }

.word-cloud__group--projetos    .word-cloud__word { color: var(--wc-projetos); }
.word-cloud__group--livros      .word-cloud__word { color: var(--wc-livros); }
.word-cloud__group--paginas     .word-cloud__word { color: var(--wc-paginas); }
.word-cloud__group--publicacoes .word-cloud__word { color: var(--wc-publicacoes); }

/* ── Sem JS: palavras em fluxo, centralizadas ── */
.word-cloud__stage {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0.5rem 1.1rem;
  text-align: center;
}

.word-cloud__groups,
.word-cloud__group,
.word-cloud__group > ul,
.word-cloud__group li {
  display: contents;
}

/* Com JS: esconde até o layout ficar pronto, para não "pular" na tela */
@media (scripting: enabled) {
  .word-cloud__stage:not(.is-ready) { visibility: hidden; }
}

/* ── Modo nuvem (JS posiciona cada palavra) ── */
.word-cloud__stage.is-cloud {
  display: block;
  text-align: left;
}

.word-cloud__stage.is-cloud .word-cloud__word {
  position: absolute;
  top: 0;
  left: 0;
  /* Sem isso, palavras verticais quebrariam pela altura (ainda indefinida) do palco */
  inline-size: max-content;
}

.word-cloud__stage.is-cloud .word-cloud__word.is-vertical {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  white-space: nowrap;
}

.word-cloud__stage.is-ready .word-cloud__word {
  animation: word-cloud-in 0.5s ease both;
}

@keyframes word-cloud-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
  .word-cloud__stage.is-ready .word-cloud__word {
    animation: none;
  }
}

/* ══════════════════════════════════════════════════════════
   DESKTOP — layout fixo em SVG ("Núvem TORQUATO.ORG.pdf")
   ══════════════════════════════════════════════════════════ */

.word-cloud { container-type: inline-size; }

.word-cloud__map svg {
  display: block;
  width: 100%;
  height: auto;
  overflow: visible;
  font-family: "Word Cloud Poppins", var(--wp--preset--font-family--poppins), sans-serif;
  font-weight: 700;
}

.word-cloud__map a { cursor: pointer; }
.word-cloud__map a::after { display: none; }   /* sem o ícone de link externo do tema */

.word-cloud__map text { transition: fill 0.2s; }

.word-cloud__map .word-cloud__center text { fill: var(--wc-center); font-weight: 900; }
.word-cloud__map .word-cloud__dot { fill: var(--wc-dot); }
.word-cloud__map .word-cloud__group--projetos    text { fill: var(--wc-projetos); }
.word-cloud__map .word-cloud__group--livros      text { fill: var(--wc-livros); }
.word-cloud__map .word-cloud__group--paginas     text { fill: var(--wc-paginas); }
.word-cloud__map .word-cloud__group--publicacoes text { fill: var(--wc-publicacoes); }

/* Hover/foco: só troca de cor */
.word-cloud__map a:hover text,
.word-cloud__map a:focus-visible text {
  fill: var(--wc-hover);
}

.word-cloud__map a:focus-visible {
  outline: 3px solid var(--wc-focus);
  outline-offset: 4px;
}

/* Abaixo de 640px o layout fixo ficaria ilegível: usa a nuvem automática */
@container (min-width: 640px) {
  .word-cloud__stage { display: none !important; }
}

@container (max-width: 639.98px) {
  .word-cloud__map { display: none; }
}
