/* Tela inicial e cabeçalhos de tela: bandeira que tremula, carrossel, capítulos. */

/* ============================================================= bandeira que tremula
   assets/bandeira.svg desenhada num canvas, coluna a coluna (ver bandeiraViva em app.js). */
.bandeira-viva { position: relative; margin: 0; padding-left: 14px; }
.bandeira-viva .haste {
  position: absolute; left: 0; top: -6%; bottom: -14%; width: 7px; border-radius: 4px;
  background: linear-gradient(90deg, #6b6862, #c9c4b6 45%, #4a4843);
}
.bandeira-viva .haste::before { content: ""; position: absolute; left: -3px; top: -9px; width: 13px; height: 13px; border-radius: 50%; background: var(--chama); }
.bandeira-viva .pano { position: relative; display: flex; aspect-ratio: 3 / 2; }
.bandeira-viva .sombra-pano { position: absolute; inset: 8% 2% -6% 6%; background: #000; opacity: .35; filter: blur(22px); z-index: -1; }
.bandeira-viva .pano-canvas { position: absolute; left: 0; top: -5.5%; width: 100%; height: 111%; }
.bandeira-viva figcaption { margin-top: 1.6rem; font-size: .8rem; color: var(--tinta-2); padding-left: .25rem; }

/* ============================================================= números (interlúdio) */
.numeros { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); border-bottom: 1px solid var(--fio); }
.numeros div { padding: 1.1rem var(--gutter) 1.2rem; display: grid; gap: .15rem; }
.numeros div + div { border-left: 1px solid var(--fio); }
.numeros b { font: 700 clamp(2rem, 1.6rem + 1.6vw, 3rem)/1 var(--voz); }
.numeros span { font-size: .84rem; color: var(--tinta-2); }
@media (max-width: 560px) {
  .numeros { grid-template-columns: 1fr 1fr; }
  .numeros div:nth-child(odd) { border-left: 0; }
  .numeros div:nth-child(n+3) { border-top: 1px solid var(--fio); }
}

/* ============================================================= capítulos numerados */
.capitulo-cabeca { display: grid; grid-template-columns: auto 1fr auto; gap: .35rem 1.25rem; align-items: end; margin-bottom: 1.5rem; }
.capitulo-cabeca .indice { grid-row: span 2; font: 700 clamp(3rem, 2.2rem + 3vw, 5rem)/.8 var(--voz); color: transparent; -webkit-text-stroke: 1.5px var(--vermelho-texto); }
.capitulo-cabeca .rotulo { grid-column: 2; }
.capitulo-cabeca h2 { font-size: var(--t-1); grid-column: 2; }
.capitulo-cabeca p:not(.rotulo) { color: var(--tinta-2); grid-column: 2; max-width: 56ch; }
.capitulo-cabeca .mais { grid-column: 3; grid-row: 1 / span 3; align-self: end; white-space: nowrap; }
.capitulo-cabeca:has(p:not(.rotulo)) .indice { grid-row: span 3; }
@media (max-width: 640px) {
  .capitulo-cabeca { grid-template-columns: auto 1fr; }
  .capitulo-cabeca .mais { grid-column: 1 / -1; grid-row: auto; justify-self: start; }
  .capitulo-cabeca p:not(.rotulo) { grid-column: 1 / -1; }
}

/* ============================================================= carrossel de destaques */
.carrossel { position: relative; }
.carrossel-trilho {
  display: grid; grid-auto-flow: column; grid-auto-columns: 100%; gap: 1rem;
  overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth;
  overscroll-behavior-x: contain; scrollbar-width: none;
}
.carrossel-trilho::-webkit-scrollbar { display: none; }
.carrossel-trilho:focus-visible { outline-offset: 6px; }
@media (max-width: 700px) { .carrossel-trilho { grid-auto-columns: 90%; } }
.slide {
  scroll-snap-align: start; min-height: 380px; position: relative; overflow: hidden;
  display: grid; align-content: end; padding: clamp(1.4rem, 1rem + 2.5vw, 3rem);
  clip-path: polygon(0 0, calc(100% - var(--corte-g)) 0, 100% var(--corte-g), 100% 100%, 0 100%);
}
.slide .conteudo-slide { position: relative; z-index: 1; display: grid; gap: .85rem; max-width: 58%; justify-items: start; }
.slide h3 { font-size: clamp(1.9rem, 1.3rem + 2.2vw, 3.3rem); line-height: .95; text-transform: uppercase; max-width: 18ch;
  display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.slide p { max-width: 50ch; font: 400 1.05rem/1.5 var(--leitura); }
.slide p.rotulo { font: 600 var(--t-mini)/1.2 var(--rotulo); color: inherit; opacity: .9; }
.slide.brasa { background: var(--brasa); color: #fff; }
.slide.brasa .botao { --fundo: var(--carvao); --texto: #F3F0E7; --wipe: var(--chama); --texto-hover: var(--carvao); }
.slide.chama { background: var(--chama); color: var(--carvao); }
.slide.chama .rotulo { color: var(--carvao); }
.slide.carvao { background: var(--carvao) url("../assets/grao-carvao.png"); color: #F3F0E7; }
.slide.carvao .rotulo { color: var(--vermelho-claro); }
.slide.papel { background: var(--papel-2) url("../assets/grao-papel.png"); color: var(--tinta); }
.slide.papel .rotulo { color: var(--vermelho-texto); }
.slide .arte { position: absolute; right: 6%; top: 50%; translate: 0 -50%; pointer-events: none; }
.slide .arte.foto { right: 0; top: 0; translate: none; width: 50%; height: 100%; }
.slide .arte.foto img { width: 100%; height: 100%; object-fit: cover; }
.slide .arte.foto::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--carvao) 0%, transparent 60%); }
.slide .data-gigante { font: 700 clamp(6rem, 3rem + 9vw, 11rem)/.78 var(--voz); color: var(--chama); letter-spacing: -.02em; text-align: right; }
.slide .data-gigante small { display: block; font-size: .24em; letter-spacing: .14em; text-transform: uppercase; color: #F3F0E7; margin-top: .6rem; }
.slide .lombada.grande { width: clamp(130px, 18vw, 210px); font-size: 1.15rem; padding: .8rem; box-shadow: 18px 18px 0 -2px var(--brasa); }
.slide blockquote { margin: 0; font: 400 clamp(1.45rem, 1.1rem + 1.5vw, 2.3rem)/1.25 var(--leitura); max-width: 26ch; }
.slide blockquote s { text-decoration-thickness: 3px; }
.slide .marca-slide { width: clamp(150px, 22vw, 260px); }
@media (max-width: 700px) {
  .slide { min-height: 440px; }
  .slide .conteudo-slide { max-width: 100%; }
  .slide .arte { top: 1.4rem; right: 1.4rem; translate: none; opacity: .3; }
  .slide .arte.foto { top: 0; right: 0; width: 100%; height: 55%; opacity: .5; }
  .slide .arte.foto::after { background: linear-gradient(0deg, var(--carvao) 5%, transparent); }
  .slide .data-gigante { opacity: 1; }
}
.carrossel-controles { display: flex; align-items: center; gap: .5rem; margin-top: .9rem; }
.carrossel-controles .pontos { display: flex; gap: .15rem; margin-right: auto; }
.carrossel-controles .ponto { width: 32px; height: 32px; border: 0; padding: 0; background: none; display: grid; place-items: center; }
.carrossel-controles .ponto::before { content: ""; width: 20px; height: 5px; background: var(--fio); transition: background-color var(--rapido); }
.carrossel-controles .ponto[aria-current="true"]::before { background: var(--brasa); }
.carrossel-controles .seta { width: 44px; height: 44px; border: 1.5px solid var(--tinta); background: transparent; display: grid; place-items: center;
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 9px), calc(100% - 9px) 100%, 0 100%); transition: background-color var(--rapido), color var(--rapido); }
.carrossel-controles .seta:hover { background: var(--tinta); color: var(--papel); }
.carrossel-controles .seta svg { width: 18px; height: 18px; }
.carrossel-controles .seta.volta svg { transform: scaleX(-1); }
.carrossel-controles .pausa { min-height: 44px; border: 0; background: none; font-size: .82rem; font-weight: 600; color: var(--tinta-2); text-decoration: underline; text-underline-offset: 3px; padding: 0 .5rem; }
.progresso-slide { height: 3px; background: var(--fio); margin-top: .6rem; overflow: hidden; }
.progresso-slide span { display: block; height: 100%; background: var(--brasa); transform-origin: left; transform: scaleX(0); }
.progresso-slide.correndo span { animation: corre var(--intervalo, 7s) linear forwards; }
.progresso-slide.correndo.parado span { animation-play-state: paused; }
@keyframes corre { to { transform: scaleX(1); } }

/* ============================================================= novidades: uma em destaque + lista */
.editorial { display: grid; gap: 1.75rem; }
@media (min-width: 900px) { .editorial { grid-template-columns: 1.3fr 1fr; align-items: start; } }
.editorial .principal-post h3 { font-size: var(--t-1); }
.editorial .principal-post .corpo { font-size: 1.12rem; }
.editorial .lista-lateral { display: grid; }
.editorial .lista-lateral .post { padding: 1.1rem 0; border-bottom: 1px solid var(--fio); gap: .45rem; }
.editorial .lista-lateral .post:first-child { padding-top: 0; }
.editorial .lista-lateral h3 { font-size: 1.4rem; }

/* ============================================================= interlúdio: citação */
.citacao { padding-block: clamp(2.75rem, 2rem + 4vw, 5.5rem); position: relative; overflow: hidden; border-block: 1px solid var(--fio); }
.citacao figure { margin: 0 auto; position: relative; }   /* .conteudo centraliza; margin: 0 desfazia isso */
.citacao blockquote { margin: 0 auto; max-width: 32ch; text-align: center; font: 400 clamp(1.5rem, 1.1rem + 2vw, 2.6rem)/1.3 var(--leitura); }
.citacao blockquote s { text-decoration-color: var(--brasa); text-decoration-thickness: 3px; }
.citacao blockquote em { font-style: normal; color: var(--vermelho-texto); }
.citacao figcaption { text-align: center; margin-top: 1.4rem; }
.citacao .marca-dagua { position: absolute; left: 50%; top: 50%; width: min(70vw, 520px); translate: -50% -50%; opacity: .05; pointer-events: none; }

/* ============================================================= estante (formação) */
.estante { display: flex; gap: .55rem; overflow-x: auto; padding: 1.25rem .25rem 0; scroll-snap-type: x proximity; scrollbar-width: thin; align-items: end; border-bottom: 8px solid var(--carvao); }
.estante a { flex: 0 0 auto; width: 98px; text-decoration: none; scroll-snap-align: start; transition: transform var(--medio) var(--sai); position: relative; z-index: 0; }
.estante a:nth-child(3n) { width: 86px; }
.estante a:nth-child(4n+1) .lombada { aspect-ratio: 2 / 3.3; }
.estante a:nth-child(5n+2) .lombada { aspect-ratio: 2 / 2.8; }
.estante a:hover, .estante a:focus-visible { transform: translateY(-12px); z-index: 2; }
.estante .lombada { font-size: .78rem; }
.lombada span { position: relative; z-index: 1; overflow-wrap: anywhere; }

/* ============================================================= chamada final */
.chamada { display: grid; gap: 1.25rem; align-items: center; padding: clamp(1.5rem, 1rem + 3vw, 3rem); border: 2px solid var(--tinta);
  clip-path: polygon(0 0, calc(100% - var(--corte-g)) 0, 100% var(--corte-g), 100% 100%, 0 100%); }
@media (min-width: 860px) { .chamada { grid-template-columns: 1fr auto; } }
.chamada h2, .chamada h3 { font-size: var(--t-2); }
.chamada p { color: var(--tinta-2); max-width: 56ch; margin-top: .5rem; }
.chamada .botoes-chamada { display: flex; gap: .6rem; flex-wrap: wrap; }

/* ============================================================= cabeçalho de tela */
.cabeca-tela { position: relative; overflow: hidden; padding: clamp(.5rem, .2rem + 1.5vw, 1.5rem) 0 1.75rem; margin-bottom: 1.75rem; border-bottom: 1px solid var(--fio); }
.cabeca-tela .indice-tela { font: 600 var(--t-mini)/1 var(--rotulo); letter-spacing: .14em; text-transform: uppercase; color: var(--vermelho-texto); display: flex; gap: .6rem; align-items: center; }
.cabeca-tela .indice-tela::after { content: ""; width: 40px; height: 2px; background: var(--brasa); }
.cabeca-tela h1 { font-size: var(--t-mega); text-transform: uppercase; line-height: .92; margin-top: .7rem; max-width: 16ch; }
.cabeca-tela p.lead-tela { font: 400 clamp(1.02rem, .98rem + .3vw, 1.2rem)/1.5 var(--leitura); color: var(--tinta-2); max-width: 54ch; margin-top: .9rem; }
.cabeca-tela .marca-dagua { position: absolute; right: -2%; bottom: -35%; width: min(40vw, 380px); opacity: .06; pointer-events: none; }
.topo .titulo-topo { display: none; }
@media (min-width: 960px) {
  .topo .titulo-topo { display: block; font: 600 var(--t-mini)/1 var(--rotulo); letter-spacing: .14em; text-transform: uppercase; color: var(--tinta-2); }
}

@media (prefers-reduced-motion: reduce) {
  .carrossel-trilho { scroll-behavior: auto; }
  .progresso-slide { display: none; }
}
