/* página de módulo */
.modulo-cabeca { border-bottom: 2px solid var(--qmq-line); padding: var(--e-8) 0 var(--e-8); }
.modulo-cabeca .wrap { display: flex; flex-direction: column; gap: var(--e-4); container-type: inline-size; }
.modulo-cabeca .etiqueta a { text-decoration: none; }
.modulo-cabeca h1 { max-width: 16ch; }
.modulo-abertura { max-width: var(--largura-leitura); }
.modulo-abertura p:first-child { font-size: clamp(19px, 1.4vw, 22px); line-height: 1.45; }
.modulo-abertura .tempo { display: inline-flex; align-items: center; gap: var(--e-2); font-style: normal; }
.modulo-cabeca .imagem { margin-top: var(--e-2); max-width: 900px; }
@media (prefers-reduced-motion: no-preference) {
  .modulo-cabeca .wrap > * { opacity: 0; transform: translateY(16px); animation: entra 400ms var(--curva) forwards; }
  .modulo-cabeca .wrap > :nth-child(2) { animation-delay: 80ms; }
  .modulo-cabeca .wrap > :nth-child(3) { animation-delay: 160ms; }
  .modulo-cabeca .wrap > :nth-child(4) { animation-delay: 240ms; }
  @keyframes entra { to { opacity: 1; transform: none; } }
}

.modulo-corpo { display: grid; grid-template-columns: 1fr; gap: var(--e-6); padding-top: var(--e-6); padding-bottom: var(--e-14); }
@media (min-width: 1080px) { .modulo-corpo { grid-template-columns: 260px minmax(0, 1fr); gap: var(--e-14); padding-top: var(--e-11); } }
.modulo-texto { max-width: var(--largura-leitura); min-width: 0; }
.secao-modulo { padding-top: var(--e-6); scroll-margin-top: var(--e-6); }
.secao-modulo + .secao-modulo { margin-top: var(--e-6); border-top: 1px solid var(--qmq-line-2); }
.secao-modulo h2 { margin-bottom: var(--e-4); }
.secao-modulo h3 { margin: var(--e-6) 0 var(--e-3); scroll-margin-top: var(--e-6); }
.secao-modulo h3::before { content: ""; display: inline-block; width: 10px; height: 10px; background: var(--qmq-acao); margin-right: var(--e-2); vertical-align: 2px; }
.secao-modulo ol, .secao-modulo ul { padding-left: 1.3em; }
.secao-modulo li { margin-bottom: var(--e-2); }

/* índice lateral */
.modulo-indice { min-width: 0; }
.indice-desktop { display: none; }
.indice-celular { border: 2px solid var(--qmq-line); border-radius: var(--r-card); }
.indice-celular summary { display: flex; align-items: center; gap: var(--e-2); padding: var(--e-3) var(--e-4); min-height: var(--toque); font-weight: 700; cursor: pointer; list-style: none; }
.indice-celular summary::-webkit-details-marker { display: none; }
.indice-celular summary .apoio { margin-left: auto; }
.indice-celular ol { margin: 0; padding: 0 var(--e-4) var(--e-3) var(--e-4); list-style: none; counter-reset: sec; }
.indice-celular li { counter-increment: sec; margin: 0; }
.indice-celular a { display: flex; gap: var(--e-2); min-height: var(--toque); align-items: center; text-decoration: none; border-top: 1px solid var(--qmq-line-2); }
.indice-celular a::before { content: counter(sec, decimal-leading-zero); font-family: var(--f-display); font-weight: 800; color: var(--qmq-ink-2); }
@media (min-width: 1080px) {
  .indice-celular { display: none; }
  .indice-desktop { display: block; position: sticky; top: var(--e-6); }
  .indice-desktop ol { list-style: none; padding: 0; margin: var(--e-3) 0; counter-reset: sec; border-top: 2px solid var(--qmq-line); }
  .indice-desktop li { counter-increment: sec; margin: 0; }
  .indice-desktop a { display: flex; gap: var(--e-2); align-items: baseline; padding: var(--e-2) 0; text-decoration: none; font-size: var(--t-apoio); color: var(--qmq-ink-2); border-bottom: 1px solid var(--qmq-line-2); line-height: 1.3; }
  .indice-desktop a::before { content: counter(sec, decimal-leading-zero); font-family: var(--f-display); font-weight: 800; flex: none; }
  .indice-desktop a:hover { color: var(--qmq-ink); }
  .indice-desktop a[aria-current="true"] { color: var(--qmq-ink); font-weight: 700; box-shadow: inset 3px 0 0 var(--qmq-acao); padding-left: var(--e-2); }
  .progresso-linha { margin-top: var(--e-3); }
}

/* exemplo e marcas */
.exemplo { background: var(--qmq-bg-2); border-radius: var(--r-card); padding: var(--e-4); border-left: 6px solid var(--qmq-estado); }
.exemplo strong:first-child { display: block; margin-bottom: var(--e-1); font-family: var(--f-display); font-weight: 800; font-stretch: 112%; text-transform: uppercase; font-size: var(--t-apoio); letter-spacing: 1px; color: var(--qmq-estado); text-align: left; }
.marca-nao-oficial { font-size: var(--t-apoio); color: var(--qmq-alerta); font-style: italic; }
.custo .marca-nao-oficial { color: #E07A55; }
.secao-modulo a.nao-oficial { text-decoration-style: dotted; text-decoration-color: var(--qmq-alerta); }

/* mitos */
.mitos { display: flex; flex-direction: column; gap: var(--e-3); }
.secao-mitos .mito { border-left-color: var(--qmq-municipio); }

/* glossário */
.glossario { margin: 0; display: flex; flex-direction: column; }
.glossario > div { padding: var(--e-3) 0; border-top: 1px solid var(--qmq-line-2); }
.glossario dt { font-family: var(--f-display); font-weight: 800; font-stretch: 112%; text-transform: uppercase; font-size: var(--t-apoio); letter-spacing: 1px; margin-bottom: var(--e-1); text-align: left; }
.glossario dd { margin: 0; }

/* fontes */
.fontes ul { padding-left: 1.2em; }
.fontes li { margin-bottom: var(--e-2); font-size: var(--t-apoio); color: var(--qmq-ink); text-align: left; hyphens: manual; }

/* quiz: chamada */
.quiz-chamada { border: 2px solid var(--qmq-line); border-radius: var(--r-bloco); padding: var(--e-5) !important; margin-top: var(--e-8) !important; background: var(--qmq-bg-2); }
.quiz-chamada p:last-child { margin: 0; }
.voltar-quiz { position: fixed; right: var(--gutter); bottom: calc(var(--e-5) + env(safe-area-inset-bottom)); z-index: 40; display: inline-flex; align-items: center; gap: var(--e-2); background: var(--qmq-acao); color: var(--qmq-acao-ink); border-radius: var(--r-pilula); padding: var(--e-3) var(--e-5); min-height: var(--toque); font-weight: 700; text-decoration: none; border: 2px solid var(--qmq-ink); }
.voltar-quiz[hidden] { display: none; }
@media (max-width: 719px) { .voltar-quiz { bottom: calc(72px + env(safe-area-inset-bottom)); } }

/* navegação entre módulos */
.modulo-nav { display: grid; gap: var(--e-3); grid-template-columns: 1fr; margin-top: var(--e-11); }
@media (min-width: 720px) { .modulo-nav { grid-template-columns: 1fr 1fr; } }
.modulo-nav .atalho { text-align: left; }
.modulo-nav .atalho small { color: var(--qmq-ink-2); font-size: var(--t-apoio); font-weight: 400; }
.modulo-nav .atalho-prox { justify-content: flex-end; text-align: right; }

/* diagramas */
.diagrama { margin: var(--e-5) 0 var(--e-6); }
.diagrama figcaption { margin-top: var(--e-3); }
.diagrama-pendente .placeholder { border: 2px dashed var(--qmq-neutro); border-radius: var(--r-card); padding: var(--e-6); display: flex; flex-direction: column; align-items: center; gap: var(--e-2); color: var(--qmq-ink-2); text-align: center; }
.diagrama-pendente .placeholder svg { width: 40px; height: 40px; }
.diagrama .grade { margin-top: var(--e-2); }

/* fluxo "quem escolhe quem" */
.fluxo-colunas { display: grid; grid-template-columns: 1fr; gap: var(--e-6); }
@media (min-width: 720px) { .fluxo-colunas { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--e-4); } }
.fluxo-coluna { display: flex; flex-direction: column; align-items: stretch; gap: var(--e-1); }
.fluxo-coluna .etiqueta { margin-bottom: var(--e-2); }
.fluxo-no { border-radius: var(--r-card); padding: var(--e-3) var(--e-4); display: flex; flex-direction: column; gap: 2px; text-align: left; hyphens: manual; }
.fluxo-no strong { line-height: 1.2; }
.fluxo-no span { font-size: var(--t-apoio); opacity: .92; }
.fluxo-eleitor { border: 2px solid var(--qmq-line); background: var(--qmq-bg); flex-direction: row; align-items: center; gap: var(--e-3); flex-wrap: wrap; }
.fluxo-eleitor svg { width: 28px; height: 28px; }
.fluxo-eleitor span { width: 100%; color: var(--qmq-ink-2); }
.fluxo-lista { background: var(--qmq-bg-2); }
.fluxo-lista ul { margin: var(--e-1) 0 0; padding-left: 1.1em; font-size: var(--t-apoio); }
.fluxo-lista li { margin-bottom: var(--e-1); }
.fluxo-lista em { color: var(--qmq-ink-2); }
.fluxo-seta { display: flex; justify-content: center; color: var(--qmq-ink-2); }
.fluxo-seta svg { width: 24px; height: 24px; }
@media (prefers-reduced-motion: no-preference) {
  .fluxo-coluna > * { opacity: 0; transform: translateY(8px); transition: opacity 350ms var(--curva), transform 350ms var(--curva); }
  .fluxo.visto .fluxo-coluna > * { opacity: 1; transform: none; }
  .fluxo.visto .fluxo-coluna > :nth-child(2) { transition-delay: 100ms; }
  .fluxo.visto .fluxo-coluna > :nth-child(3) { transition-delay: 200ms; }
  .fluxo.visto .fluxo-coluna > :nth-child(4) { transition-delay: 300ms; }
  .fluxo.visto .fluxo-coluna > :nth-child(5) { transition-delay: 400ms; }
  .fluxo.visto .fluxo-coluna > :nth-child(6) { transition-delay: 500ms; }
}

/* ===== passada visual "rua e jornal" ===== */
/* cabeçalho do módulo como cartaz: faixa de tinta, número gigante em ocre, título em papel */
.modulo-cabeca { background: var(--qmq-ink); color: #FBF7F0; border-bottom: 0; padding: var(--e-8) 0 0; }
.modulo-cabeca .wrap { gap: var(--e-3); padding-bottom: var(--e-8); }
.modulo-cabeca .etiqueta { color: #CFC8BE; }
.modulo-cabeca .etiqueta a { color: inherit; }
.modulo-cabeca h1 { max-width: 18ch; color: #FBF7F0; font-size: clamp(30px, 6cqw, 64px); }
.modulo-cabeca h1::before { content: attr(data-num); display: block; font-size: clamp(88px, 20vw, 200px); line-height: .8; color: var(--qmq-acao); letter-spacing: -0.04em; margin: var(--e-2) 0 var(--e-4) -0.04em; }
.modulo-abertura { color: #FBF7F0; }
.modulo-abertura p:first-child { font-size: clamp(19px, 1.5vw, 23px); }
.modulo-abertura .tempo { color: #CFC8BE; }
.modulo-abertura .termo { color: inherit; }
.modulo-cabeca .imagem { margin: var(--e-2) 0 0; border-top: 0; border-bottom: 0; background: #2A2724; }
.modulo-cabeca .imagem .placeholder { color: #CFC8BE; background: repeating-linear-gradient(135deg, transparent 0 14px, rgba(251, 247, 240, .05) 14px 16px); }
.modulo-cabeca .imagem .placeholder svg { color: #CFC8BE; }
/* seções separadas por fio grosso, como colunas de jornal */
.secao-modulo + .secao-modulo { border-top: var(--fio); margin-top: var(--e-8); padding-top: var(--e-5); }
.secao-modulo h2 { margin-bottom: var(--e-5); }
.secao-modulo h3::before { display: none; }
.secao-modulo h3 { border-bottom: 2px solid var(--qmq-ink); padding-bottom: var(--e-1); display: inline-block; }
.exemplo { background: transparent; border-left: 0; border-top: 3px solid var(--qmq-estado); border-bottom: var(--fio-fino); border-radius: 0; padding: var(--e-3) 0 var(--e-4); }
.indice-celular { border: 0; border-top: var(--fio); border-bottom: var(--fio-fino); border-radius: 0; }
.indice-celular summary { padding-left: 0; padding-right: 0; }
.indice-celular ol { padding-left: 0; padding-right: 0; }
.quiz-chamada { background: var(--qmq-ink); color: #FBF7F0; border: 0; border-radius: 0; }
.quiz-chamada h2 { color: var(--qmq-acao); }
.voltar-quiz { border-radius: 0; }
.modulo-nav { border-top: var(--fio); padding-top: var(--e-4); }
.modulo-nav .atalho { border: 0; padding: var(--e-3) 0; }
.glossario > div { border-top: var(--fio-fino); }
.glossario { border-top: var(--fio); }
.glossario > div:first-child { border-top: 0; }
.diagrama-pendente .placeholder { border-radius: 0; }
.fluxo-no, .fluxo-eleitor { border-radius: 0; }
