/* ==========================================================================
   Festival de Curtas Nova Acrópole — tema de blocos
   --------------------------------------------------------------------------
   Ordem: nova-acropole-tokens.css (gerado pelo design system) → este arquivo.
   O theme.json já cuida de paleta, tipos, espaçamentos e estilo base dos
   blocos nativos. Aqui mora o que o protótipo inventou, reescrito sobre a
   marcação dos blocos (cover, group, list, details, buttons, navigation) e
   dos blocos dinâmicos do plugin.

   Veio do protótipo (festival-de-curtas/assets/css/base.css + festival.css),
   sem Bulma: as ~30 variáveis `--bulma-*` que ele lia viraram os tokens
   `--na-*` equivalentes. Os contrastes anotados foram medidos lá e valem
   aqui porque as cores são as mesmas.
   ========================================================================== */

:root {
  /* Geometria do site (não existe no design system) */
  --site-gutter: 48px;
  --site-radius-card: 24px;
  --site-radius-btn: 16px;
  --site-radius-tag: 12px;
  --site-ease: cubic-bezier(.22, .61, .36, 1);
  --site-dur: 200ms;
  --site-logo-w: 320px;
  --site-logo-w-min: 280px;

  /* Hovers: 5 pontos de luminosidade abaixo da base (regra 4 do design system) */
  --site-heket-hover: var(--na-action-primary-hover);   /* #064B42 */
  --site-kefer-hover: var(--na-action-link-hover);      /* #007A6E */
  --site-helios-hover: hsl(var(--na-warning-h) var(--na-warning-s) calc(var(--na-warning-l) - 5%));   /* #E6B600 */

  --site-heket-20: var(--na-brand-verde-heket-20);      /* #CEE0DD */
  --site-heket-80: var(--na-brand-verde-heket-80);      /* #398279 */
  --site-heket-deep: #004339;                           /* rodapé; branco em cima 10,9:1 */
  --site-linha: var(--na-border-weak);                  /* #D8D9DB */
  --site-tinta-titulo: var(--na-text-strong);           /* #111213 */

  /* CTA sólida: Turquesa Kefer com rótulo branco — 3,77:1, passa só em texto
     grande (20px/700 ou 24px). Decisão registrada no institucional. */
  --site-cta: var(--na-action-link);
  --site-cta-hover: var(--site-kefer-hover);             /* 5,24:1 com branco */

  /* Tag: Verde Heket 20 com tinta Verde Heket — 5,23:1 */
  --site-tag-bg: var(--site-heket-20);
  --site-tag-ink: var(--na-action-primary);

  /* Identidade da edição (o plugin sobrescreve na página de cada edição) */
  --ed-destaque: var(--site-tag-bg);
  --ed-tinta: var(--site-tag-ink);
}

@media (max-width: 1087px) {
  :root { --site-gutter: 24px; }
}

/* --------------------------------------------------------------------------
   Base
   -------------------------------------------------------------------------- */

/* O Bulma trazia border-box global; sem ele, padding soma à largura máxima */
*, *::before, *::after { box-sizing: border-box; }

/* `hidden` perdia para qualquer `display` de classe (defeito P0 da v1) */
[hidden] { display: none !important; }

.is-sr-only,
.screen-reader-text {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%);
  white-space: nowrap; border: 0;
}

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body { -webkit-font-smoothing: antialiased; }

/* Verde Heket 50 na seleção, tinta fixa (7,97:1 em qualquer superfície) */
::selection { background: color-mix(in srgb, var(--na-action-primary) 50%, #fff); color: var(--na-text-strong); }

/* Foco: anel Kefer de 2px, 3:1 sobre branco (regra 30). Nunca outline:none sem substituto. */
:where(a, button, summary, input, select, textarea, [tabindex]):focus-visible {
  outline: 2px solid var(--na-action-link);
  outline-offset: 2px;
}

strong { color: inherit; }

.material-symbols-outlined {
  font-family: 'Material Symbols Outlined';
  font-weight: normal; font-style: normal;
  font-size: 1.5rem; line-height: 1;
  letter-spacing: normal; text-transform: none;
  display: inline-block; white-space: nowrap; direction: ltr;
  font-feature-settings: 'liga'; -webkit-font-feature-settings: 'liga';
  font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
  user-select: none;
}

/* Ícone em pseudo-elemento (listas e links de menu sem marcação extra) */
.icone-antes::before,
.wp-block-list.is-style-passos > li::before,
.wp-block-list.is-style-checklist > li::before,
.wp-block-navigation-item.icone-conta > a::before,
.wp-block-button.is-style-contorno > .wp-block-button__link::after,
.wp-block-button.is-style-contorno-claro > .wp-block-button__link::after,
.wp-block-details > summary::after {
  font-family: 'Material Symbols Outlined';
  font-weight: normal; font-style: normal;
  line-height: 1; letter-spacing: normal; text-transform: none;
  font-feature-settings: 'liga';
  font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
  speak: never;
}

/* Conteúdo das páginas: as seções encostam umas nas outras */
.wp-block-post-content > .alignfull { margin-block: 0; }

/* --------------------------------------------------------------------------
   Sublinhado (regra 28): link em texto corrido sublinha; navegação, botão e
   cartão não. Sublinhado volta no hover, para a cor não ser o único sinal.
   -------------------------------------------------------------------------- */
.wp-block-navigation a,
.sumario a,
.rodape a,
a.cartao-edicao,
a.btn,
.wp-block-button__link,
.topo__marca a,
.menu-area__item {
  text-decoration: none;
}

.wp-block-navigation a:not(.wp-block-button__link):hover,
.wp-block-navigation .current-menu-item > a,
.sumario a:hover,
.rodape a:hover {
  text-decoration: underline;
  text-underline-offset: .25em;
  text-decoration-thickness: .08em;
}

/* ==========================================================================
   Cabeçalho — branco, logo à esquerda, menu à direita, encolhe ao rolar
   ========================================================================== */
.wp-site-blocks > header.wp-block-template-part {
  position: sticky;
  top: var(--wp-admin--admin-bar--height, 0px);
  z-index: 60;
  background: var(--na-surface-main);
  transition: box-shadow var(--site-dur) var(--site-ease);
}

.wp-site-blocks > header.is-stuck { box-shadow: 0 6px 24px -14px rgba(0,0,0,.45); }

@media (max-width: 600px) {
  /* a barra do admin deixa de ser fixa no celular */
  .wp-site-blocks > header.wp-block-template-part { top: 0; }
}

.topo__interno {
  max-width: calc(var(--wp--style--global--content-size) + 2 * var(--site-gutter));
  margin-inline: auto;
  padding: 1.5rem var(--site-gutter);
  min-height: 130px;
  gap: 1rem 1.5rem;
  transition: min-height 260ms var(--site-ease), padding-block 260ms var(--site-ease);
}

.is-stuck .topo__interno { min-height: 80px; padding-block: 1rem; }

/* Logo oficial com a assinatura da NA (1137×202). A 320px a assinatura mede
   89px, abaixo dos 102px da marca — tamanho reduzido a pedido (ver README do
   protótipo). Rodapé usa a versão vertical sem assinatura. */
.topo__marca { margin: 0; flex: none; }
.topo__marca img { display: block; width: var(--site-logo-w) !important; height: auto; transition: width 260ms var(--site-ease); }
.is-stuck .topo__marca img { width: var(--site-logo-w-min) !important; }
.topo__marca a:focus-visible { outline-offset: 6px; border-radius: .25rem; }

@media (prefers-reduced-motion: reduce) {
  .topo__interno, .topo__marca img { transition: none; }
}

/* Menu */
.topo__nav { font-weight: 600; }
.topo__nav .wp-block-navigation__container { gap: .5rem; align-items: center; }
.topo__nav .wp-block-navigation-item__content {
  display: inline-flex; align-items: center; gap: .5rem;
  min-height: 2.75rem; padding: .5rem .75rem;
  color: var(--site-tinta-titulo);   /* 18,75:1 */
}
.topo__nav .wp-block-navigation-item__content:hover,
.topo__nav .wp-block-navigation-item__content:focus-visible { color: var(--na-action-primary); }
.wp-block-navigation-item.icone-conta > a::before { content: 'account_circle'; font-size: 1.5rem; color: var(--na-action-primary); }
.topo__nav .wp-block-buttons { margin-left: .5rem; }

/* Ícones de abrir/fechar do menu nativo: Verde Heket, alvo de 48px */
.topo__nav .wp-block-navigation__responsive-container-open,
.topo__nav .wp-block-navigation__responsive-container-close {
  width: 3rem; height: 3rem;
  align-items: center; justify-content: center;
  border-radius: var(--site-radius-btn);
  color: var(--na-action-primary);
}
.topo__nav .wp-block-navigation__responsive-container-open svg,
.topo__nav .wp-block-navigation__responsive-container-close svg { width: 2rem; height: 2rem; }
.topo__nav .wp-block-navigation__responsive-container-open:hover { background: var(--site-heket-20); }

/* O menu nativo vira hambúrguer a 600px; o do festival, a 1088px (o logo de
   320px + quatro links + botão não cabem antes disso). */
@media (min-width: 600px) and (max-width: 1087px) {
  .topo__nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
  .topo__nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}

@media (max-width: 1087px) {
  .topo__marca img,
  .is-stuck .topo__marca img { width: min(var(--site-logo-w-min), calc(100vw - 2 * var(--site-gutter) - 4.5rem)) !important; }
  .topo__interno { min-height: 96px; }
  .is-stuck .topo__interno { min-height: 72px; }
}

/* Menu aberto (sobreposição do bloco nativo) */
.topo__nav .wp-block-navigation__responsive-container.is-menu-open {
  padding: 1.5rem var(--site-gutter) 2rem;
  background: var(--na-surface-main);
  color: var(--site-tinta-titulo);
}
.topo__nav .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 4.5rem; }
.topo__nav .is-menu-open .wp-block-navigation__container { align-items: stretch !important; gap: 0; width: 100%; }
.topo__nav .is-menu-open .wp-block-navigation-item { width: 100%; }
.topo__nav .is-menu-open .wp-block-navigation-item__content {
  width: 100%; min-height: 3.5rem; padding: .75rem 0;
  border-bottom: 1px solid var(--site-linha);
  font-size: 1.25rem;
}
.topo__nav .is-menu-open .wp-block-buttons { margin: 1.5rem 0 0; width: 100%; }
.topo__nav .is-menu-open .wp-block-button,
.topo__nav .is-menu-open .wp-block-button__link { width: 100%; }

/* ==========================================================================
   Botões — os do institucional: raio 16px, hover que escurece 5 pontos e
   sobe 3px, rolo de letras (curtas.js) e, no contorno, preenchimento em swipe.
   `.btn` é usado pelos formulários do plugin; `.wp-block-button__link` é o
   botão nativo. As variantes do editor são os estilos de bloco.
   ========================================================================== */
.btn,
.wp-block-button__link {
  --btn-bg: var(--site-cta);
  --btn-bg-hover: var(--site-cta-hover);
  --btn-ink: #fff;
  --btn-lift: -3px;

  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .75rem;
  border: 2px solid transparent;
  border-radius: var(--site-radius-btn);
  background: var(--btn-bg);
  color: var(--btn-ink);
  font-family: inherit;
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 1.2;
  padding: 1.25rem 2.25rem;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  transition:
    background-color var(--site-dur) var(--site-ease),
    border-color var(--site-dur) var(--site-ease),
    color var(--site-dur) var(--site-ease),
    transform var(--site-dur) var(--site-ease),
    box-shadow var(--site-dur) var(--site-ease);
}

.btn:hover, .btn:focus-visible,
.wp-block-button__link:hover, .wp-block-button__link:focus-visible {
  background: var(--btn-bg-hover);
  color: var(--btn-ink);
  transform: translateY(var(--btn-lift));
  box-shadow: 0 10px 24px -8px color-mix(in srgb, var(--btn-bg) 65%, transparent);
}

.btn:active, .wp-block-button__link:active { transform: translateY(-1px); box-shadow: none; }
.btn:disabled { opacity: .6; cursor: progress; transform: none; }

/* Amarelo (CTA): tinta escura — #292000 sobre #FFCA00, 10,53:1 (regra 12) */
.btn.is-helios,
.is-style-helios > .wp-block-button__link {
  --btn-bg: var(--na-status-warning);
  --btn-bg-hover: var(--site-helios-hover);
  --btn-ink: var(--na-status-warning-invert);
}

/* Contorno: Kefer em 20px bold (texto grande, 3,77:1); no hover vira sólido */
.btn.is-outlined,
.is-style-contorno > .wp-block-button__link,
.is-style-contorno-claro > .wp-block-button__link {
  --btn-ink: var(--na-action-link);
  --btn-roll-atraso: 100ms;
  background: transparent;
  border-color: var(--na-action-link);
  font-weight: 700;
  padding: 1.25rem 2rem;
}

.btn.is-outlined:has(.material-symbols-outlined),
.is-style-contorno > .wp-block-button__link,
.is-style-contorno-claro > .wp-block-button__link { padding: 1.25rem 1.5rem 1.25rem 3rem; }

.btn.is-outlined::before,
.is-style-contorno > .wp-block-button__link::before,
.is-style-contorno-claro > .wp-block-button__link::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: var(--site-cta);
  transform: translateX(-100.5%);
  transition: transform 220ms var(--site-ease);
}

.btn.is-outlined:hover, .btn.is-outlined:focus-visible,
.is-style-contorno > .wp-block-button__link:hover, .is-style-contorno > .wp-block-button__link:focus-visible {
  background: transparent;
  border-color: var(--site-cta);
}

.btn.is-outlined:hover::before, .btn.is-outlined:focus-visible::before,
.is-style-contorno > .wp-block-button__link:hover::before, .is-style-contorno > .wp-block-button__link:focus-visible::before,
.is-style-contorno-claro > .wp-block-button__link:hover::before, .is-style-contorno-claro > .wp-block-button__link:focus-visible::before { transform: translateX(0); }

/* Seta dos botões de contorno do editor (o botão nativo não leva ícone) */
.is-style-contorno > .wp-block-button__link::after,
.is-style-contorno-claro > .wp-block-button__link::after { content: 'arrow_forward'; font-size: 1.5rem; transition: transform var(--site-dur) var(--site-ease); }
.is-style-contorno > .wp-block-button__link:hover::after,
.is-style-contorno-claro > .wp-block-button__link:hover::after { transform: translateX(4px); }

/* Sem o rolo (celular, sem hover, menos movimento): o botão troca a cor */
.btn.is-outlined:not(:has(.btn__roll)):hover, .btn.is-outlined:not(:has(.btn__roll)):focus-visible,
.is-style-contorno > .wp-block-button__link:not(:has(.btn__roll)):hover,
.is-style-contorno > .wp-block-button__link:not(:has(.btn__roll)):focus-visible { color: #fff; }

/* Contorno claro, sobre foto ou verde: preenchimento branco, tinta Heket (7,16:1) */
.is-style-contorno-claro > .wp-block-button__link { --btn-ink: #fff; border-color: rgba(255,255,255,.72); }
.is-style-contorno-claro > .wp-block-button__link::before { background: #fff; }
.is-style-contorno-claro > .wp-block-button__link:hover,
.is-style-contorno-claro > .wp-block-button__link:focus-visible { --btn-ink: var(--na-action-primary); background: transparent; border-color: #fff; color: var(--na-action-primary); }

/* Ícone que anda junto */
.btn .material-symbols-outlined { transition: transform var(--site-dur) var(--site-ease); }
.btn:hover .material-symbols-outlined, .btn:focus-visible .material-symbols-outlined { transform: translateX(4px); }
.btn.is-outlined:hover .material-symbols-outlined, .btn.is-outlined:focus-visible .material-symbols-outlined { color: #fff; }

/* Tamanhos: compacto (menu, formulários) e capa */
.btn.is-compacto,
.wp-block-button.is-compacto > .wp-block-button__link { font-size: 1rem; padding: .75rem 1.5rem; }
.btn.is-outlined.is-compacto { padding: .75rem 1.5rem; }

.wp-block-cover .wp-block-button__link { font-size: 1.5rem; padding: 1.5rem 3rem; box-shadow: 0 4px 2px rgba(0,0,0,.25); }
.wp-block-cover .is-style-contorno-claro > .wp-block-button__link { padding: 1.5rem 1.5rem 1.5rem 3rem; box-shadow: none; }
.wp-block-cover .wp-block-button__link:hover { box-shadow: 0 14px 28px -10px rgba(0,0,0,.55); }

@media (max-width: 1087px) {
  .wp-block-cover .wp-block-button__link { font-size: 1.25rem; padding: 1.125rem 1.75rem; }
  .wp-block-cover .is-style-contorno-claro > .wp-block-button__link,
  .is-style-contorno > .wp-block-button__link,
  .btn.is-outlined:has(.material-symbols-outlined) { padding-left: 1.5rem; }
}

@media (max-width: 767px) {
  .wp-block-cover .wp-block-buttons,
  .wp-block-cover .wp-block-button { width: 100%; }
  .wp-block-cover .wp-block-button__link { width: 100%; }
}

/* --- Rolo de letras: duas cópias do rótulo empilhadas, escalonadas por letra */
.btn__roll { position: relative; display: inline-block; overflow: hidden; line-height: 1.4; vertical-align: bottom; }
.btn__line { display: flex; white-space: pre; }
.btn__line--in { position: absolute; inset: 0; }
.btn__ch {
  display: inline-block;
  transition: transform 320ms var(--site-ease);
  transition-delay: calc(var(--btn-roll-atraso, 0ms) + var(--i, 0) * var(--btn-step, 18ms));
}
.btn__line--in .btn__ch { transform: translateY(-110%); }
:is(.btn, .wp-block-button__link):is(:hover, :focus-visible) .btn__line--out .btn__ch { transform: translateY(110%); }
:is(.btn, .wp-block-button__link):is(:hover, :focus-visible) .btn__line--in .btn__ch { transform: translateY(0); }

/* No contorno a camada que entra é branca e vai recortada junto com o swipe */
:is(.btn.is-outlined, .is-style-contorno > .wp-block-button__link) .btn__line--in {
  color: #fff;
  clip-path: inset(0 100% 0 -20%);
  transition: clip-path 240ms var(--site-ease);
}
:is(.btn.is-outlined, .is-style-contorno > .wp-block-button__link):is(:hover, :focus-visible) .btn__line--in { clip-path: inset(0 -20% 0 -20%); }
.is-style-contorno-claro > .wp-block-button__link .btn__line--in { color: var(--na-action-primary); clip-path: inset(0 100% 0 -20%); transition: clip-path 240ms var(--site-ease); }
.is-style-contorno-claro > .wp-block-button__link:is(:hover, :focus-visible) .btn__line--in { clip-path: inset(0 -20% 0 -20%); }

@media (max-width: 1087px) {
  .btn__line { flex-wrap: wrap; justify-content: center; }
  .btn__line--in { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .btn, .wp-block-button__link, .btn .material-symbols-outlined { transition-duration: 1ms; }
  .btn:hover, .btn:focus-visible, .wp-block-button__link:hover, .wp-block-button__link:focus-visible { transform: none; }
  .btn__ch { transition: none; }
  .btn__line--in { display: none; }
  .btn.is-outlined::before,
  .is-style-contorno > .wp-block-button__link::before,
  .is-style-contorno-claro > .wp-block-button__link::before { transition: none; transform: translateX(0); opacity: 0; }
  .btn.is-outlined:hover::before,
  .is-style-contorno > .wp-block-button__link:hover::before,
  .is-style-contorno-claro > .wp-block-button__link:hover::before { opacity: 1; }
}

/* ==========================================================================
   Tipografia das seções
   ========================================================================== */

/* Etiqueta acima do título (o "eyebrow" do institucional) */
.is-style-etiqueta {
  display: inline-flex;
  align-self: flex-start;
  align-items: center;
  width: fit-content;
  margin: 0;
  padding: .375rem 1.25rem;
  border-radius: var(--site-radius-tag);
  background: var(--site-tag-bg);
  color: var(--site-tag-ink);          /* 5,23:1 */
  font-size: .875rem !important;
  font-weight: 700;
  letter-spacing: .08em;
  line-height: 1.6;
  text-transform: uppercase;
}
.is-layout-flex.is-vertical.is-content-justification-center > .is-style-etiqueta { align-self: center; }

/* Destaque abaixo do título: 5,43:1 sobre branco */
.is-style-lead,
.lead { font-size: 1.125rem !important; line-height: 1.5; color: var(--na-text-weak); max-width: 820px; }

.h-section { margin: 0; font-size: var(--wp--preset--font-size--titulo-secao); font-weight: 800; line-height: 1.1; letter-spacing: -.02em; color: var(--site-tinta-titulo); }
.h-bloco { margin: 0 0 1rem; font-size: 1.5rem; font-weight: 800; line-height: 1.3; color: var(--site-tinta-titulo); }

/* Cabeçalho de seção (etiqueta + título + destaque) */
.is-style-secao { margin-bottom: 3rem !important; }
.is-style-secao > * { margin: 0; }
.is-style-secao > h2 { max-width: 26ch; text-wrap: balance; }

/* Faixas: blocos de grupo de largura total, alternando branco e cinza */
.wp-block-group.alignfull[class*="-background-color"] { margin-block: 0; }
.wp-block-group.alignfull[id] { scroll-margin-top: calc(var(--topo-h, 5rem) + 3.5rem); }

/* Prosa: parágrafo de 17px/1,6 (texto padrão, 12,6:1) */
.wp-block-post-content p { text-wrap: pretty; }

/* ==========================================================================
   Capa (bloco Cover) — hero de largura total, título branco em Black
   ========================================================================== */
.wp-block-cover.is-style-capa,
.wp-block-cover.is-style-capa-simples,
.wp-block-cover.is-style-chamada {
  padding: 0;
  overflow: clip;   /* clip, não hidden: hidden viraria o "scroller" do parallax das tiras */
  color: #fff;
}

.wp-block-cover.is-style-capa { min-height: 46rem; align-items: center; }

.wp-block-cover.is-style-capa > .wp-block-cover__inner-container,
.wp-block-cover.is-style-capa-simples > .wp-block-cover__inner-container,
.wp-block-cover.is-style-chamada > .wp-block-cover__inner-container {
  width: 100%;
  max-width: calc(var(--wp--style--global--content-size) + 2 * var(--site-gutter));
  margin-inline: auto;
  padding: 7.5rem var(--site-gutter);
  z-index: 2;
}

/* Capa: pilha vertical alinhada à esquerda; o espaço vem do gap, não de margens */
.wp-block-cover.is-style-capa > .wp-block-cover__inner-container,
.wp-block-cover.is-style-capa-simples > .wp-block-cover__inner-container {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1.5rem;
}
.wp-block-cover:is(.is-style-capa, .is-style-capa-simples) > .wp-block-cover__inner-container > * { margin: 0 !important; }
.wp-block-cover.is-style-capa > .wp-block-cover__inner-container > .wp-block-columns { width: 100%; }
.capa-edicao__colunas > .wp-block-column:first-child { display: flex; flex-direction: column; align-items: flex-start; gap: 1.5rem; }
.capa-edicao__colunas > .wp-block-column:first-child > * { margin: 0 !important; }

.wp-block-cover h1 {
  max-width: 14ch;
  margin: 0;
  color: #fff;
  text-wrap: balance;
}
.wp-block-cover.is-home h1 { max-width: 22ch; }   /* frase longa: três linhas */

.wp-block-cover p { color: #fff; }
.wp-block-cover .capa-sub { max-width: 36rem; font-size: 1.25rem !important; font-weight: 500; line-height: 1.4; }

.is-style-capa-chamada {
  margin: 0;
  font-size: .9375rem !important;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

/* Sombra neutra da esquerda até o centro, sob o texto. Pior pixel 5,24:1
   (home, 1440×548). No celular o texto ocupa a largura toda: sombra uniforme. */
@media (max-width: 767px) {
  .wp-block-cover.is-style-capa { min-height: 0; }
  .wp-block-cover.is-style-capa > .wp-block-cover__inner-container { padding-block: 3rem; }
  .wp-block-cover.is-style-capa .wp-block-cover__background.has-background-gradient { background: rgba(0,0,0,.7) !important; opacity: 1; }   /* pior pixel 8,52:1 */
  .wp-block-cover.is-style-capa.sombra-leve .wp-block-cover__background.has-background-gradient { background: rgba(0,0,0,.6) !important; }  /* fundo claro (Jogos de Maya): 5,95:1 */
  .wp-block-cover .capa-sub { font-size: 1.125rem !important; }
}

/* Capa da edição: texto à esquerda, livro à direita */
.capa-edicao__colunas { align-items: center !important; gap: 3rem; }
.capa-edicao__livro img { display: block; width: 100%; max-width: 22rem; height: auto; border-radius: var(--site-radius-card); box-shadow: 0 16px 32px -16px rgba(0,0,0,.45); }
@media (max-width: 781px) { .capa-edicao__livro { display: none; } }

.capa-rotulo {
  margin: 0;
  padding: .25rem .875rem;
  border-radius: 999px;
  background: var(--ed-destaque);
  color: var(--ed-tinta) !important;
  font-size: .9375rem !important;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

/* Barra de acento sob o título: a identidade da edição, só na página dela */
.wp-block-cover.is-edicao h1::after {
  content: "";
  display: block;
  width: 6rem;
  height: .375rem;
  margin-top: 1.5rem;
  border-radius: 999px;
  background: var(--ed-destaque);
}

/* Capa simples (O Festival, Edições anteriores, Autora): verde, sem foto,
   com as tiras de filme à direita */
.wp-block-cover.is-style-capa-simples { min-height: 0 !important; }
.wp-block-cover.is-style-capa-simples > .wp-block-cover__inner-container { padding-block: 3rem; gap: 1rem; }
.wp-block-cover.is-style-capa-simples h1 { font-size: clamp(2.5rem, 1.4rem + 4.4vw, 4.5rem); }

/* --- Tiras de filme 35 mm (SVG autoral), branco a 14% sobre o verde.
   Pior caso do texto sobre a tira: 5,16:1. Parallax só em CSS
   (animation-timeline: view()); sem suporte ou com "menos movimento", param. */
.wp-block-cover.is-style-capa-simples::before,
.wp-block-cover.is-style-capa-simples::after,
.wp-block-cover.is-style-chamada::before,
.wp-block-cover.is-style-chamada::after {
  content: "";
  position: absolute;
  z-index: 1;
  left: -15%;
  width: 130%;
  height: 7.5rem;
  background: url("../img/tira-de-filme.svg") repeat-x center / auto 100%;
  opacity: .14;
  pointer-events: none;
}
.wp-block-cover.is-style-chamada::before { top: 6%; rotate: -6deg; }
.wp-block-cover.is-style-chamada::after { bottom: 4%; rotate: 4deg; }

.wp-block-cover.is-style-capa-simples::before,
.wp-block-cover.is-style-capa-simples::after { left: 50%; width: 80%; height: 6rem; }
.wp-block-cover.is-style-capa-simples::before { top: -1.25rem; rotate: -8deg; }
.wp-block-cover.is-style-capa-simples::after { bottom: -1.25rem; rotate: 5deg; }

@media (max-width: 767px) {
  .wp-block-cover.is-style-chamada::before, .wp-block-cover.is-style-chamada::after { height: 5rem; }
  .wp-block-cover.is-style-chamada::before { top: 2%; }
  .wp-block-cover.is-style-chamada::after { bottom: 1%; }
  .wp-block-cover.is-style-capa-simples::before, .wp-block-cover.is-style-capa-simples::after { left: 15%; width: 120%; height: 4.5rem; }
  .wp-block-cover.is-style-capa-simples::before { top: -1rem; }
  .wp-block-cover.is-style-capa-simples::after { bottom: -1rem; }
}

@keyframes tira-vai   { from { translate: -7% 0; } to { translate: 7% 0; } }
@keyframes tira-volta { from { translate: 7% 0; }  to { translate: -7% 0; } }

@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .wp-block-cover:is(.is-style-capa-simples, .is-style-chamada)::before,
    .wp-block-cover:is(.is-style-capa-simples, .is-style-chamada)::after {
      animation-timing-function: linear;
      animation-fill-mode: both;
      animation-timeline: view();
      animation-range: entry 0% exit 100%;
    }
    .wp-block-cover:is(.is-style-capa-simples, .is-style-chamada)::before { animation-name: tira-vai; }
    .wp-block-cover:is(.is-style-capa-simples, .is-style-chamada)::after { animation-name: tira-volta; }
  }
}

/* Chamada final: verde, centrada */
.wp-block-cover.is-style-chamada { text-align: center; }
.wp-block-cover.is-style-chamada > .wp-block-cover__inner-container { padding-block: var(--wp--preset--spacing--secao); }
.wp-block-cover.is-style-chamada h2 { max-width: 28ch; margin-inline: auto; color: #fff; text-wrap: balance; font-size: clamp(1.75rem, 1.2rem + 1.8vw, 2.5rem); }

/* ==========================================================================
   Selos, próxima data, datas
   ========================================================================== */
.selo {
  display: inline-flex;
  align-items: center;
  padding: .25rem .875rem;
  border-radius: 999px;
  background: var(--site-tag-bg);
  color: var(--site-tag-ink);                 /* 5,23:1 */
  font-size: .875rem;
  font-weight: 700;
  letter-spacing: .02em;
  line-height: 1.5;
  text-transform: none;
}
.selo.is-aberta { background: var(--na-action-primary); color: #fff; }                          /* 7,16:1 */
.selo.is-vencedor { background: var(--na-status-warning); color: var(--na-status-warning-invert); } /* 10,53:1 */
.selo-status { margin: 0; }

.proxima { display: flex; align-items: center; gap: .5rem; margin: 0; font-size: 1.125rem; color: var(--na-text-default); }
.proxima .material-symbols-outlined { color: var(--na-action-primary); }
.proxima.is-na-capa, .proxima.is-na-capa .material-symbols-outlined { color: #fff; }

.datas { display: grid; grid-template-columns: repeat(auto-fit, minmax(13.75rem, 1fr)); gap: 1rem; width: 100%; margin: 0; }
.datas__item { padding: 1rem 1.5rem; border-radius: var(--site-radius-btn); background: var(--na-surface-main-bis); }
.datas dt { font-size: .875rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--na-text-weak); }   /* 5,05:1 sobre #F4F5F5 */
.datas dd { margin: .25rem 0 0; font-size: 1.125rem; font-weight: 700; color: var(--site-tinta-titulo); overflow-wrap: anywhere; }
.datas dd.is-texto { font-weight: 400; font-size: 1rem; line-height: 1.5; }
.datas.is-coluna { grid-template-columns: minmax(0, 1fr); }

/* Linha do tempo com um ponto por data (verde: amarelo sobre branco dá 1,5:1) */
.rota { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; width: 100%; max-width: 40rem; margin: .5rem 0 0; padding: 0; list-style: none; position: relative; }
.rota::before { content: ""; position: absolute; top: .4375rem; left: .4375rem; right: 0; height: 2px; background: var(--site-linha); }
.rota__ponto { position: relative; display: flex; flex-direction: column; gap: .25rem; padding-top: 1.5rem; }
.rota__ponto::before { content: ""; position: absolute; top: 0; left: 0; width: .875rem; height: .875rem; border-radius: 50%; background: var(--na-action-primary); box-shadow: 0 0 0 4px var(--na-surface-main); }
.rota__rotulo { font-size: .875rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--na-text-weak); }
.rota__data { font-size: 1.25rem; font-weight: 800; line-height: 1.2; color: var(--site-tinta-titulo); }
.rota:has(> :only-child) { grid-template-columns: minmax(0, 1fr); }

@media (max-width: 767px) {
  .rota { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
  .rota::before { top: .4375rem; bottom: 1.5rem; left: .4375rem; right: auto; width: 2px; height: auto; }
  .rota__ponto { padding: 0 0 0 2rem; }
}

/* ==========================================================================
   Home — edição atual, passos, curta em destaque, cartões
   ========================================================================== */
.edicao-atual { background: var(--na-surface-main); overflow: clip; }
.edicao-atual__grade {
  display: grid;
  grid-template-columns: minmax(0, 20rem) minmax(0, 1fr);
  gap: clamp(2rem, 6vw, 5rem);
  align-items: center;
  max-width: calc(var(--wp--style--global--content-size) + 2 * var(--site-gutter));
  margin-inline: auto;
  padding: clamp(3.5rem, 8vw, 6.5rem) var(--site-gutter);
}
.edicao-atual__capa { justify-self: center; width: 100%; max-width: 20rem; transform: rotate(-2deg); }
.edicao-atual__capa .capa-livro__img { box-shadow: 0 28px 48px -20px rgba(0,0,0,.55), 0 8px 16px -8px rgba(0,0,0,.35); }
.edicao-atual__texto { display: flex; flex-direction: column; align-items: flex-start; gap: 1.5rem; min-width: 0; }
.edicao-atual__selo { display: flex; flex-wrap: wrap; gap: .75rem; margin: 0; }
.edicao-atual__titulo { margin: 0; font-size: clamp(2.25rem, 5vw, 3.75rem); font-weight: 800; line-height: 1.05; letter-spacing: -.02em; text-wrap: balance; color: var(--site-tinta-titulo); }
.edicao-atual__lead { margin: 0; max-width: 46ch; font-size: 1.1875rem; line-height: 1.5; color: var(--na-text-default); }

@media (max-width: 767px) {
  .edicao-atual__grade { grid-template-columns: minmax(0, 1fr); }
  .edicao-atual__capa { max-width: 13rem; justify-self: start; }
}
@media (prefers-reduced-motion: no-preference) {
  .edicao-atual__capa { transition: transform .5s cubic-bezier(.16,1,.3,1); }
  .edicao-atual__capa:hover { transform: rotate(0deg) translateY(-4px); }
}

/* Quatro passos: lista nativa, cada item vira cartão com ícone e número */
.wp-block-list.is-style-passos {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: passo;
}
.wp-block-list.is-style-passos > li {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin: 0;
  padding: 1.5rem;
  border: 1px solid var(--site-linha);
  border-radius: var(--site-radius-card);
  background: var(--na-surface-main);
  counter-increment: passo;
  font-size: 1.125rem;
  line-height: 1.4;
  color: var(--site-tinta-titulo);
}
.wp-block-list.is-style-passos > li::before {
  content: 'check';
  width: 3rem; height: 3rem;
  display: grid; place-items: center;
  border-radius: var(--site-radius-btn);
  background: var(--site-heket-20);
  color: var(--na-action-primary);           /* 5,23:1 */
  font-size: 1.75rem;
}
.wp-block-list.is-style-passos > li:nth-child(1)::before { content: 'groups'; }
.wp-block-list.is-style-passos > li:nth-child(2)::before { content: 'school'; }
.wp-block-list.is-style-passos > li:nth-child(3)::before { content: 'videocam'; }
.wp-block-list.is-style-passos > li:nth-child(4)::before { content: 'emoji_events'; }
.wp-block-list.is-style-passos > li::after {
  content: counter(passo);
  position: absolute; top: 1.5rem; right: 1.5rem;
  font-size: 1.5rem; font-weight: 900; line-height: 1;
  color: var(--na-action-primary);
}
@media (max-width: 1087px) { .wp-block-list.is-style-passos { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) { .wp-block-list.is-style-passos { grid-template-columns: minmax(0, 1fr); } }

/* Checklist com ícones ("Antes de enviar, confira") */
.wp-block-list.is-style-checklist,
.checklist { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin: 0; padding: 0; list-style: none; }
.wp-block-list.is-style-checklist > li,
.checklist li { display: flex; align-items: flex-start; gap: .75rem; margin: 0; line-height: 1.4; }
.wp-block-list.is-style-checklist > li::before { content: 'check_circle'; flex: none; font-size: 1.5rem; color: var(--na-action-primary); }
.wp-block-list.is-style-checklist > li:nth-child(1)::before { content: 'crop_landscape'; }
.wp-block-list.is-style-checklist > li:nth-child(2)::before { content: 'timer'; }
.wp-block-list.is-style-checklist > li:nth-child(3)::before { content: 'visibility_off'; }
.wp-block-list.is-style-checklist > li:nth-child(4)::before { content: 'music_note'; }
.checklist .material-symbols-outlined { flex: none; color: var(--na-action-primary); }
@media (max-width: 599px) { .wp-block-list.is-style-checklist, .checklist { grid-template-columns: minmax(0, 1fr); } }

/* Itens com fio Kefer à esquerda (caminhos do roteiro, livros da autora).
   Kefer 3,77:1: elemento de interface, piso 3:1. */
.wp-block-list.is-style-caminhos { display: flex; flex-direction: column; gap: .75rem; margin: 0; padding: 0; list-style: none; }
.wp-block-list.is-style-caminhos > li { padding-left: 1rem; border-left: .25rem solid var(--na-action-link); line-height: 1.4; }

/* Cartão com borda (o "livro" do protótipo, a caixa "confira") */
.wp-block-group.is-style-cartao {
  padding: 1.5rem;
  border: 1px solid var(--site-linha);
  border-radius: var(--site-radius-card);
  background: var(--na-surface-main);
}
.wp-block-group.is-style-cartao > * { margin-block: 0; }
.wp-block-group.is-style-cartao .isbn { font-size: .9375rem; color: var(--na-text-weak); }

/* Link com seta: sublinha (é texto corrido) */
.link-arrow,
.is-style-link-seta a {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  color: var(--na-action-primary);
  font-weight: 600;
  text-underline-offset: 3px;
  transition: color var(--site-dur) var(--site-ease), gap var(--site-dur) var(--site-ease);
}
.link-arrow:hover { color: var(--site-heket-hover); gap: .875rem; }
.link-arrow .material-symbols-outlined { font-size: 1.125rem; }
p.link-seta { margin: 0; font-weight: 600; }
p.link-seta a::after { content: " →"; }

.link-email { display: inline-flex; align-items: center; gap: .5rem; min-height: 2.75rem; font-size: 1.0625rem; font-weight: 600; color: var(--na-action-primary); }

/* Curta em destaque: player grande e centrado, legenda embaixo */
.assista { display: flex; flex-direction: column; align-items: center; gap: .875rem; }
.assista__video { --video-ratio: 16 / 9; width: 100%; max-width: 60rem; box-shadow: 0 16px 32px -16px rgba(0,0,0,.45); }
.assista__video .video__play span { width: 6rem; height: 6rem; font-size: 3.25rem; }
.assista__texto { display: flex; flex-direction: column; align-items: center; gap: 1.25rem; max-width: 46rem; text-align: center; }
.assista__texto .lead { margin: 0; font-size: .9375rem !important; }

/* Cartões das edições */
.cartoes { display: grid; grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr)); gap: 1.5rem; margin: 0; padding: 0; list-style: none; }
.cartoes > li { margin: 0; }
.cartao-edicao {
  display: flex;
  gap: 1.5rem;
  height: 100%;
  padding: 1.5rem;
  border: 1px solid var(--site-linha);
  border-radius: var(--site-radius-card);
  background: var(--na-surface-main);
  color: var(--site-tinta-titulo);
  transition: border-color var(--site-dur) var(--site-ease), box-shadow var(--site-dur) var(--site-ease);
}
.cartao-edicao:hover, .cartao-edicao:focus-visible { border-color: var(--na-action-link); box-shadow: 0 12px 26px -20px rgba(0,0,0,.5); color: var(--site-tinta-titulo); }
.cartao-edicao__corpo { display: flex; flex-direction: column; align-items: flex-start; gap: .75rem; min-width: 0; }
.cartao-edicao__rotulo { font-size: .875rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--na-text-weak); }
.cartao-edicao__livro { font-size: 1.5rem; font-weight: 800; line-height: 1.1; }
.cartao-edicao__meta { font-size: .9375rem; color: var(--na-text-weak); }
.cartao-edicao__chamada { display: inline-flex; align-items: center; gap: .5rem; margin-top: auto; font-weight: 700; color: var(--na-action-primary); transition: gap var(--site-dur) var(--site-ease); }
.cartao-edicao:hover .cartao-edicao__chamada { gap: .75rem; }

/* Capa de livro: componente do plugin e estilo do bloco de imagem */
.capa-livro { margin: 0; }
.capa-livro__img,
.wp-block-image.is-style-capa-livro img,
.wp-block-image.is-style-inclinada img {
  display: block; width: 100%; height: auto;
  border-radius: var(--site-radius-card);
  box-shadow: 0 16px 32px -16px rgba(0,0,0,.45);
}
.capa-livro.is-pequena { width: 6rem; flex: none; }
.capa-livro.is-pequena .capa-livro__img { border-radius: var(--site-radius-tag); box-shadow: none; }
.wp-block-image.is-style-inclinada { transform: rotate(-2deg); }

.wp-block-image.is-style-retrato img { width: 100%; max-width: 14rem; aspect-ratio: 1; object-fit: cover; border-radius: var(--site-radius-card); }

.wp-block-image.foto-arredondada img { border-radius: var(--site-radius-card); }

/* Linha do tempo das edições (página O Festival) */
.linha-tempo { display: flex; flex-direction: column; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--site-linha); }
.linha-tempo__item { display: grid; grid-template-columns: 7rem minmax(0, 1fr); gap: 1.5rem; margin: 0; padding: 1.5rem 0; border-bottom: 1px solid var(--site-linha); }
.linha-tempo__ano { font-size: 2rem; font-weight: 900; line-height: 1.1; color: var(--na-action-primary); }
.linha-tempo__livro { margin: 0; font-size: 1.25rem; font-weight: 800; color: var(--site-tinta-titulo); }
.linha-tempo__meta { margin: .25rem 0 .75rem; color: var(--na-text-weak); }
.linha-tempo .link-arrow { font-size: 1.0625rem; }
@media (max-width: 599px) { .linha-tempo__item { grid-template-columns: minmax(0, 1fr); gap: .5rem; } }

/* ==========================================================================
   Página da edição
   ========================================================================== */

/* Sumário: acompanha a rolagem e marca a seção atual (sublinhado grosso, não só cor) */
.sumario {
  position: sticky;
  top: calc(var(--topo-h, 5rem) + var(--wp-admin--admin-bar--height, 0px));
  z-index: 40;
  border-bottom: 1px solid var(--site-linha);
  background: var(--na-surface-main);
}
.sumario .wp-block-list {
  display: flex;
  gap: 1.5rem;
  max-width: var(--wp--style--global--content-size);
  margin: 0 auto;
  padding: .75rem 0;
  list-style: none;
  overflow-x: auto;
}
.sumario li { margin: 0; }
.sumario a {
  display: inline-flex; align-items: center;
  min-height: 2.75rem; padding: .5rem 0;
  border-bottom: .1875rem solid transparent;
  font-weight: 600; white-space: nowrap;
  color: var(--site-tinta-titulo);
}
.sumario a:hover, .sumario a:focus-visible { color: var(--na-action-primary); }
.sumario a[aria-current="true"] { color: var(--na-action-primary); border-bottom-color: var(--na-action-primary); font-weight: 800; }
@media (max-width: 767px) { .sumario .wp-block-list { padding-block: 0; mask-image: linear-gradient(90deg, #000 88%, transparent); } }

/* Cronograma: uma lista de verdade, na ordem do tempo */
.etapas { display: flex; flex-direction: column; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--site-linha); }
.etapa { display: grid; grid-template-columns: 16rem minmax(0, 1fr); gap: 1.5rem; margin: 0; padding: 1.5rem 0; border-bottom: 1px solid var(--site-linha); }
.etapa__data { margin: 0; align-self: start; font-weight: 700; color: var(--site-tinta-titulo); }
.etapa.is-marco .etapa__data { justify-self: start; padding: .25rem .875rem; border-radius: 999px; background: var(--ed-destaque); color: var(--ed-tinta); }
.etapa.is-abertura .etapa__data { background: var(--na-action-primary); color: #fff; }   /* o único marco em verde */
.etapa__nome { margin: 0 0 .25rem; font-size: 1.25rem; font-weight: 800; color: var(--site-tinta-titulo); }
.etapa__hora { margin: 0 0 .25rem; font-weight: 700; color: var(--site-tinta-titulo); }
.etapa__corpo p { margin: 0; line-height: 1.5; }
@media (max-width: 599px) { .etapa { grid-template-columns: minmax(0, 1fr); gap: .5rem; } }

/* FAQ e regulamento: bloco Detalhes nativo. O recuo mora no <summary> (a
   superfície inteira do cartão fechado é clicável). */
.wp-block-details {
  border: 1px solid #d7def0;
  border-radius: var(--site-radius-tag);
  padding: 0;
  background: var(--na-surface-main);
  transition: border-color 220ms var(--site-ease), box-shadow 220ms var(--site-ease);
}
.wp-block-details + .wp-block-details { margin-top: .75rem; }
.wp-block-details:hover { border-color: var(--na-action-link); box-shadow: 0 12px 26px -20px rgba(0,0,0,.5); }
.wp-block-details[open] { border-color: var(--na-action-link); }

.wp-block-details > summary {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 2.25rem;
  cursor: pointer;
  list-style: none;
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 1.2;
  color: var(--site-heket-deep);
}
.wp-block-details > summary::-webkit-details-marker { display: none; }
.wp-block-details > summary::marker { content: ""; }
.wp-block-details[open] > summary { padding-bottom: 1rem; }
.wp-block-details > summary:focus-visible { outline: 2px solid var(--na-action-link); outline-offset: -4px; border-radius: var(--site-radius-tag); }

/* "+" fechado (fio neutro, glifo Heket 7,16:1); aberto gira e enche de Kefer */
.wp-block-details > summary::after {
  content: 'add';
  margin-left: auto;
  flex: none;
  width: 24px; height: 24px;
  display: grid; place-items: center;
  border-radius: 50%;
  border: 1px solid var(--site-linha);
  background: var(--na-surface-main);
  color: var(--na-action-primary);
  font-size: 18px;
  transition: transform 220ms var(--site-ease), background-color 220ms var(--site-ease), border-color 220ms var(--site-ease), color 220ms var(--site-ease);
}
.wp-block-details[open] > summary::after { transform: rotate(45deg); background: var(--na-action-link); border-color: var(--na-action-link); color: #fff; }

.wp-block-details > :not(summary) { margin: 0; padding: 0 2.25rem; max-width: calc(66ch + 4.5rem); line-height: 1.5; }
.wp-block-details > :not(summary) + :not(summary) { margin-top: 1rem; }
.wp-block-details > :last-child:not(summary) { padding-bottom: 2.25rem; }
.wp-block-details[open] > :not(summary) { animation: faqAbre 260ms var(--site-ease); }
@keyframes faqAbre { from { opacity: 0; transform: translateY(-6px) } to { opacity: 1; transform: none } }
@media (prefers-reduced-motion: reduce) { .wp-block-details[open] > :not(summary) { animation: none } }

@media (max-width: 1087px) {
  .wp-block-details > summary { padding: 1.5rem; }
  .wp-block-details[open] > summary { padding-bottom: .75rem; }
  .wp-block-details > :not(summary) { padding-inline: 1.5rem; }
  .wp-block-details > :last-child:not(summary) { padding-bottom: 1.5rem; }
}

/* A lista ocupa a largura do conteúdo (alinhada à esquerda como o resto);
   quem limita a medida são os itens. Com max-width na lista, o layout
   "constrained" do WordPress a centralizaria. */
.lista-faq > *, .faq-contato { max-width: 52rem; }
.lista-faq > .wp-block-details { margin-top: 0; }

/* Grupos do regulamento: título maior */
.wp-block-details.is-style-regras > summary { align-items: center; padding: 1.5rem; font-size: 1.25rem; font-weight: 800; line-height: 1.3; color: var(--site-tinta-titulo); }
.wp-block-details.is-style-regras > :not(summary) { padding-inline: 1.5rem; max-width: none; }
.wp-block-details.is-style-regras > :last-child:not(summary) { padding-bottom: 1.5rem; }

/* Artigos numerados: lista ordenada nativa (respeita o "começar em") */
.wp-block-list.is-style-regulamento { display: flex; flex-direction: column; gap: 1.5rem; max-width: 52rem; padding-left: 2.5rem; line-height: 1.6; }
.wp-block-list.is-style-regulamento > li { padding-left: .25rem; }
/* Dentro do grupo de regras, o recuo do <details> (1,5rem) substituía o da
   lista e os números de dois dígitos ("10.") saíam da caixa: soma os dois. */
.wp-block-details.is-style-regras > .wp-block-list.is-style-regulamento { padding-left: calc(1.5rem + 2.5rem); }
.wp-block-list.is-style-regulamento > li::marker { font-weight: 800; color: var(--na-action-primary); }
.wp-block-list.is-style-regulamento strong { font-weight: 800; color: var(--site-tinta-titulo); }

/* Tabela de critérios */
.wp-block-table.criterios table { width: 100%; border-collapse: collapse; font-size: .9375rem; }
.wp-block-table.criterios :is(th, td) { padding: .75rem 1rem; border: 1px solid var(--site-linha); text-align: left; vertical-align: top; }
.wp-block-table.criterios thead { border: 0; }
.wp-block-table.criterios thead th { background: var(--site-heket-20); color: var(--site-tag-ink); }
.wp-block-table.criterios tbody td:first-child { font-weight: 700; color: var(--site-tinta-titulo); }

/* Os curtas */
.grade-curtas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; margin: 0 0 1.5rem; padding: 0; list-style: none; }
.grade-curtas + .h-bloco { margin-top: 3rem; }
.curta { display: flex; flex-direction: column; gap: .75rem; margin: 0; }
.curta__video { --video-ratio: 16 / 9; }
.curta .video__play span { width: 3.5rem; height: 3.5rem; font-size: 2rem; }
.curta__titulo { margin: 0; font-size: 1.0625rem; font-weight: 700; line-height: 1.3; letter-spacing: 0; color: var(--site-tinta-titulo); }
.curta__titulo a { display: inline-block; padding-block: .25rem; color: inherit; }
.curta__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: 0; font-size: .9375rem; color: var(--na-text-weak); }
@media (max-width: 1087px) { .grade-curtas { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) { .grade-curtas { grid-template-columns: minmax(0, 1fr); } }

/* Vídeo: pôster que só vira player no clique (youtube-nocookie) */
.video { position: relative; display: block; width: 100%; aspect-ratio: var(--video-ratio, 16 / 9); border-radius: var(--site-radius-card); overflow: hidden; background: var(--na-surface-main-bis); }
.video > img, .video > iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; object-fit: cover; display: block; }
.video__play { position: absolute; inset: 0; z-index: 3; display: none; place-items: center; border: 0; padding: 0; background: none; cursor: pointer; }
.video.tem-video .video__play { display: grid; }
.video__play span {
  width: 88px; height: 88px;
  display: grid; place-items: center;
  border-radius: 50%;
  background: var(--site-cta);
  color: #fff;
  font-size: 44px;
  box-shadow: 0 12px 28px -12px rgba(0,0,0,.55);
  transition: background-color var(--site-dur) var(--site-ease), scale var(--site-dur) var(--site-ease);
}
.video__play:hover span { background: var(--site-cta-hover); scale: 1.06; }

.aviso-status {
  display: inline-flex; align-items: center; gap: .75rem;
  margin: 0; padding: 1rem 1.5rem;
  border-radius: var(--site-radius-btn);
  background: var(--site-tag-bg); color: var(--site-tag-ink);
  font-weight: 600;
}

/* ==========================================================================
   Formulários — mensagens do design system (dizem o que houve E o que fazer)
   ========================================================================== */
.formulario { display: flex; flex-direction: column; gap: 1.5rem; max-width: 52rem; }
.formulario__grade { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
@media (max-width: 767px) { .formulario__grade { grid-template-columns: minmax(0, 1fr); } }
.formulario__acoes { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin: 0; }

.campo-grupo { display: flex; flex-direction: column; gap: .375rem; min-width: 0; }
.campo-grupo.is-largo { grid-column: 1 / -1; }
.campo-grupo > label, .campo-rotulo { margin: 0; font-size: .875rem; font-weight: 700; color: var(--site-tinta-titulo); }
.campo-grupo abbr { text-decoration: none; color: var(--na-status-danger); }
.campo-fixo { margin: 0; padding: .875rem 1.5rem; border-radius: var(--site-radius-btn); background: var(--na-surface-main-bis); }

.campo {
  width: 100%;
  height: 52px;
  border: 1px solid var(--na-text-weak);     /* 5,43:1: contorno de interface, piso 3:1 */
  border-radius: var(--site-radius-btn);
  background: var(--na-surface-main);
  color: var(--site-tinta-titulo);
  font-family: inherit;
  font-size: 1rem;
  padding: 0 1.5rem;
  transition: border-color var(--site-dur) var(--site-ease), box-shadow var(--site-dur) var(--site-ease);
}
.campo::placeholder { color: var(--na-text-weak); }
.campo:hover { border-color: var(--na-action-primary); }
.campo:focus-visible { outline: 2px solid var(--na-action-link); outline-offset: 2px; border-color: var(--na-action-primary); }
textarea.campo { height: auto; min-height: 6rem; padding-block: .875rem; line-height: 1.5; resize: vertical; }
select.campo { appearance: none; background-image: none; cursor: pointer; padding-right: 3rem; }
.campo[aria-invalid="true"] { border-color: var(--na-status-danger); box-shadow: inset 0 0 0 1px var(--na-status-danger); }   /* 5,72:1 */

.campo-wrap { position: relative; display: block; }
.campo-wrap .material-symbols-outlined { position: absolute; right: 1.25rem; top: 50%; translate: 0 -50%; pointer-events: none; color: var(--na-text-weak); }

.check-linha { display: flex; align-items: flex-start; gap: .625rem; cursor: pointer; }
.check-linha input { width: 1.5rem; height: 1.5rem; flex: none; margin-top: .05rem; accent-color: var(--na-action-primary); cursor: pointer; }   /* 24px: alvo mínimo (WCAG 2.5.8) */
.check-linha span { font-size: 1rem; line-height: 1.4; color: var(--site-tinta-titulo); }

.campo-ajuda { margin: 0; font-size: .9375rem; line-height: 1.4; color: var(--na-text-weak); }

/* O erro não depende de cor: prefixo "Erro:" no texto e borda mais grossa no campo */
.campo-erro { margin: 0; font-size: .9375rem; font-weight: 600; line-height: 1.4; color: var(--na-status-danger); }
.campo-erro::before { content: "Erro: "; font-weight: 800; }

.resumo-erros { padding: 1rem 1.5rem; border: 2px solid var(--na-status-danger); border-radius: var(--site-radius-btn); background: var(--na-status-danger-light); color: var(--na-status-danger-dark); }
.resumo-erros h2 { margin: 0 0 .5rem; font-size: 1.0625rem; font-weight: 800; line-height: 1.4; letter-spacing: 0; color: inherit; }
.resumo-erros ul { margin: 0; padding-left: 1.25rem; list-style: disc; }
.resumo-erros ul:empty { display: none; }
.resumo-erros a { color: inherit; }

.bloco-form__nota { margin: 0; line-height: 1.5; color: var(--na-text-weak); }

.alerta { display: flex; align-items: flex-start; gap: .75rem; padding: 1rem 1.5rem; border-radius: var(--site-radius-btn); }
.alerta p { margin: 0; line-height: 1.5; }
.alerta.is-info { background: var(--na-status-info-light); color: var(--na-status-info-dark); }
.alerta.is-warning { background: var(--na-status-warning-light); color: var(--na-status-warning-dark); }
.alerta.is-success { background: var(--na-status-success-light); color: var(--na-status-success-dark); }
.nota-inscricao { margin-bottom: 2rem; max-width: 52rem; }

/* Passos da inscrição */
.estado { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin: 0; padding: 0; list-style: none; }
.estado__etapa { display: flex; align-items: center; gap: .75rem; margin: 0; padding: 1rem; border: 1px solid var(--site-linha); border-radius: var(--site-radius-btn); background: var(--na-surface-main); color: var(--na-text-weak); }
.estado__marca { flex: none; width: 2.5rem; height: 2.5rem; display: grid; place-items: center; border: 1px solid var(--na-text-weak); border-radius: 50%; font-weight: 800; }
.estado__rotulo { font-weight: 700; line-height: 1.2; }
.estado__etapa.is-feita { color: var(--site-tinta-titulo); }
.estado__etapa.is-feita .estado__marca,
.estado__etapa.is-atual .estado__marca { background: var(--na-action-primary); border-color: var(--na-action-primary); color: #fff; }   /* 7,16:1 */
.estado__etapa.is-atual { border: 2px solid var(--na-action-primary); background: var(--site-heket-20); color: var(--site-tag-ink); }
@media (max-width: 767px) {
  .estado__etapa { flex-direction: column; text-align: center; padding: .75rem .5rem; gap: .5rem; }
  .estado__rotulo { font-size: .875rem; }
}

.passo-form { display: flex; flex-direction: column; gap: 1.25rem; }
.passo-form__titulo { margin: 0; font-size: 1.5rem; font-weight: 800; line-height: 1.2; letter-spacing: 0; color: var(--site-tinta-titulo); }

/* Sem JS os passos aparecem juntos: separa um do outro */
html:not(.js) .passo-form + .passo-form { padding-top: 1.5rem; border-top: 1px solid var(--site-linha); }
html:not(.js) [data-remover] { display: none; }

/* No celular os botões do passo ficam presos ao pé da tela */
@media (max-width: 767px) {
  .formulario__acoes.is-passos { position: sticky; bottom: 0; z-index: 30; margin-inline: -1rem; padding: .75rem 1rem; border-top: 1px solid var(--site-linha); background: var(--na-surface-main); }
  .formulario__acoes.is-passos .btn { flex: 1; }
}

.integrante { display: flex; flex-direction: column; align-items: flex-start; gap: 1rem; margin: 0 0 1rem; padding: 1.25rem; border: 1px solid var(--site-linha); border-radius: var(--site-radius-btn); background: var(--na-surface-main-bis); }
.integrante > legend { padding: 0 .5rem; font-weight: 800; color: var(--site-tinta-titulo); }
.integrante .formulario__grade { width: 100%; }
.integrante__papel { font-weight: 600; color: var(--na-text-weak); }
.integrante__resumo { margin: 0; display: flex; flex-wrap: wrap; gap: .25rem 1rem; }
.integrante__resumo span { color: var(--na-text-weak); }

.ajuda-inline { border: 1px solid var(--site-linha); border-radius: var(--site-radius-tag); }
.ajuda-inline > summary { display: flex; align-items: center; min-height: 2.75rem; padding: .5rem 1rem; font-weight: 600; color: var(--na-action-primary); cursor: pointer; }
.ajuda-inline > :not(summary) { margin: 0; padding: 0 1rem 1rem; line-height: 1.5; }
.ajuda-inline ol { padding-left: 2.25rem; list-style: decimal; }

.inscricao-fechada { display: flex; flex-direction: column; gap: 1.5rem; max-width: 52rem; }
.inscricao-fechada p { margin: 0; }

/* ==========================================================================
   Área da equipe
   ========================================================================== */
.painel-area { display: flex; flex-direction: column; gap: 2rem; }
.cartao-painel { display: flex; flex-direction: column; gap: 1rem; padding: 1.5rem; border: 1px solid var(--site-linha); border-radius: var(--site-radius-card); background: var(--na-surface-main); }
.cartao-painel > p, .cartao-painel > .h-bloco { margin: 0; }
.area-login { max-width: 40rem; }
.area-login__links { margin: 0; }

.painel-topo { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1.5rem; }
.painel-topo__linha { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; }
.painel-topo__equipe { margin: 0; font-size: 1.75rem; font-weight: 900; line-height: 1.1; letter-spacing: -.01em; color: var(--site-tinta-titulo); }
.painel-topo__edicao { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: .5rem 0 0; color: var(--na-text-weak); }
.painel-topo .aviso-status { margin-top: 1rem; }
.form-nome { max-width: 28rem; gap: 1rem; }

.link-texto { min-height: 1.5rem; padding: 0 .125rem; border: 0; background: none; cursor: pointer; font: inherit; font-weight: 600; color: var(--na-action-primary); text-decoration: underline; text-underline-offset: .25em; }
.link-texto:hover { color: var(--na-action-link); }

.menu-area { display: flex; gap: .5rem; margin-bottom: -.5rem; border-bottom: 1px solid var(--site-linha); }
.menu-area__item { display: flex; align-items: center; gap: .75rem; min-height: 3.5rem; padding: .5rem 1rem; margin-bottom: -1px; border-bottom: 3px solid transparent; font-weight: 700; line-height: 1.2; color: var(--site-tinta-titulo); }
.menu-area__item:hover { border-bottom-color: var(--na-action-link); color: var(--site-tinta-titulo); }
.menu-area__item[aria-current="page"] { border-bottom-color: var(--na-action-primary); color: var(--na-action-primary); }
html:not(.js) .menu-area { display: none; }
.menu-area__status { min-width: 1.75rem; padding: .125rem .625rem; border: 1px solid var(--site-linha); border-radius: 999px; background: var(--na-surface-main-bis); color: var(--site-tinta-titulo); font-size: .8125rem; font-weight: 700; line-height: 1.5; text-align: center; }
.menu-area__status.is-aviso { background: var(--na-status-warning-light); color: var(--na-status-warning-dark); border-color: transparent; }
.menu-area__status.is-ok { background: var(--site-heket-20); color: var(--site-tag-ink); border-color: transparent; }
@media (max-width: 599px) {
  .menu-area { gap: 0; }
  .menu-area__item { flex: 1 1 0; flex-direction: column; justify-content: center; gap: .25rem; padding: .5rem; text-align: center; font-size: .9375rem; }
}

.area-vista { display: flex; flex-direction: column; gap: 1.5rem; scroll-margin-top: calc(var(--topo-h, 5rem) + 1rem); }
.area-vista > .cartao-painel { gap: 1.25rem; padding: 2rem; }
@media (max-width: 599px) { .area-vista > .cartao-painel { padding: 1.5rem; } }
#integrantes .cartao-painel { max-width: 48rem; }
.conferir { padding: 1.5rem; border: 1px solid var(--site-linha); border-radius: var(--site-radius-card); background: var(--na-surface-main-bis); }

.lista-integrantes { display: flex; flex-direction: column; gap: .75rem; margin: .5rem 0 0; padding: 0; list-style: none; }
.lista-integrantes__item { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-bottom: .75rem; border-bottom: 1px solid var(--site-linha); }
.lista-integrantes__item form { margin: 0; }
.lista-integrantes__meta { display: block; font-size: .9375rem; color: var(--na-text-weak); overflow-wrap: anywhere; }
.formulario-add { margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px solid var(--site-linha); }

.participacoes__lista { display: grid; gap: 1rem; margin: 0; padding: 0; list-style: none; }
.participacoes__rotulo { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: 0; font-size: .875rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--na-text-weak); }
.participacoes .h-bloco { margin: 0; }
.area-ajuda { margin-top: 0; }

.aviso-editor { padding: 1rem 1.5rem; border: 2px dashed var(--site-linha); border-radius: var(--site-radius-btn); color: var(--na-text-weak); }

/* ==========================================================================
   Rodapé — Verde Heket profundo, logo branco. Branco sobre #004339: 10,9:1.
   ========================================================================== */
.rodape { color: #fff; }
.rodape a, .rodape a:hover { color: #fff; }
.rodape h2 { margin: 0 0 1rem; font-size: 1rem !important; font-weight: 700; letter-spacing: .08em; line-height: 1.4; text-transform: uppercase; color: #fff; }
.rodape p { margin: 0; line-height: 1.5; }
.rodape .wp-block-columns { gap: 3rem; }
.rodape__marca { display: flex; flex-direction: column; align-items: flex-start; gap: .75rem; }
.rodape__marca > * { margin: 0 !important; }
.rodape__marca > .wp-block-image:first-child { margin-bottom: .75rem !important; }
.rodape__marca img { height: auto; }
.rodape__fim { border-top: 1px solid var(--site-heket-80); }

.wp-block-list.is-style-links { display: flex; flex-direction: column; gap: .75rem; margin: 0; padding: 0; list-style: none; }
.wp-block-list.is-style-links a { display: inline-block; padding-block: .25rem; }   /* alvo de 30px (piso 24px) */
.rodape a[href^="mailto"] { display: inline-block; padding-block: .375rem; overflow-wrap: anywhere; }

/* ==========================================================================
   Editor: os blocos dinâmicos e os passos aparecem como no site
   ========================================================================== */
.editor-styles-wrapper .passo-form[hidden] { display: flex !important; }
.curtas-previa { min-height: 2rem; }

/* Ficha técnica: texto colado do Word, longo; cresce com o conteúdo */
textarea.campo.is-ficha { min-height: 16rem; field-sizing: content; max-height: 40rem; }
