/* LL Cultural: artigos e cases. Complementa o estilo.css, que traz os tokens, o topo, os botões,
   as perguntas e o rodapé. Mesmo conceito da home: palco, coxia, refletor e ingresso.
   Sem cerquilha no arquivo inteiro: cores só em rgb() e rgba(). */

/* ---------- ribalta: a linha vermelha acende conforme a leitura ---------- */
.ribalta { position: fixed; left: 0; right: 0; top: 0; z-index: 52; height: 3px; pointer-events: none; }
.ribalta i { display: block; height: 100%; transform: scaleX(var(--lido, 0)); transform-origin: 0 50%; background: linear-gradient(90deg, var(--vermelho-profundo), var(--vermelho-ll)); box-shadow: 0 0 16px rgba(236, 28, 36, 0.75); }

/* ---------- trilha de navegação ---------- */
.trilha { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: 0 0 22px; padding: 0; list-style: none; font-size: 14px; color: var(--texto-3); }
.trilha a { color: var(--texto-2); text-decoration: none; }
.trilha a:hover { color: var(--texto); text-decoration: underline; text-decoration-color: var(--vermelho-ll); text-underline-offset: 4px; }
.trilha li + li::before { content: ""; display: inline-block; width: 5px; height: 5px; margin-right: 10px; border-radius: 50%; background: var(--vermelho-ll); vertical-align: middle; }
.trilha [aria-current] { color: var(--texto-2); }

/* ---------- abertura do artigo: texto na boca de cena, foto na moldura ---------- */
.palco-topo { position: relative; isolation: isolate; overflow: hidden; padding-block: calc(var(--topo-altura) + clamp(28px, 5vw, 64px)) clamp(52px, 7vw, 100px); background: var(--luz-refletor), var(--luz-lateral), var(--n-950); border-bottom: 1px solid var(--linha); }
.palco-topo::after { content: ""; position: absolute; left: -10%; right: -10%; bottom: -2px; height: 46%; z-index: -1; pointer-events: none; background: repeating-linear-gradient(90deg, rgba(246, 244, 241, 0.04) 0 1px, transparent 1px 110px), linear-gradient(0deg, rgba(236, 28, 36, 0.12), transparent 80%); transform: perspective(700px) rotateX(62deg); transform-origin: 50% 100%; }
.palco-topo-grade { display: grid; grid-template-columns: 1.05fr 0.95fr; gap: clamp(32px, 5vw, 76px); align-items: center; }
.palco-titulo { font-size: clamp(36px, 4.4vw, 62px); line-height: 1.04; letter-spacing: -0.035em; margin-bottom: 26px; }
.palco-titulo > span { display: block; }
.resposta { max-width: 62ch; padding-left: 20px; border-left: 3px solid var(--vermelho-ll); font-size: clamp(17px, 1.4vw, 19.5px); line-height: 1.6; color: var(--texto); }
.ficha-artigo { list-style: none; margin: 28px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.ficha-artigo li { display: inline-flex; align-items: center; gap: 8px; padding: 7px 14px; border-radius: 999px; border: 1px solid var(--linha-forte); font-size: 14px; line-height: 1.3; color: var(--texto-2); }
.ficha-artigo b { font-weight: 600; color: var(--texto); }

.moldura { position: relative; margin: 0; max-width: 100%; }
.moldura-quadro { position: relative; overflow: hidden; aspect-ratio: 3 / 2; max-width: 100%; border-radius: 18px; background: var(--n-950); box-shadow: 0 50px 90px -40px rgba(0, 0, 0, 0.95), 0 0 0 1px var(--linha); }
.moldura-quadro img { width: 100%; height: 100%; object-fit: cover; }
.moldura-quadro::before { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: radial-gradient(ellipse 70% 60% at 30% 0%, rgba(246, 244, 241, 0.16), transparent 70%), linear-gradient(0deg, rgba(12, 12, 12, 0.72), transparent 42%); }
.moldura figcaption { position: absolute; left: 18px; right: 18px; bottom: 14px; z-index: 2; display: flex; gap: 10px; align-items: baseline; font-size: 13px; line-height: 1.4; color: var(--n-100); text-shadow: 0 1px 8px rgba(0, 0, 0, 0.8); }
.moldura figcaption::before { content: ""; flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--vermelho-ll); transform: translateY(-1px); }
@media (prefers-reduced-motion: no-preference) {
  .moldura-quadro img, .case-topo-foto img { animation: respira 16s ease-in-out infinite alternate; }
}
@keyframes respira { from { transform: scale(1.02); } to { transform: scale(1.1) translate(-1.2%, -1%); } }

.selo-giro { position: absolute; z-index: 3; right: -22px; top: -30px; display: grid; place-items: center; width: 112px; height: 112px; border-radius: 50%; background: var(--vermelho-ll); box-shadow: 0 18px 40px -16px rgba(236, 28, 36, 0.8); pointer-events: none; }
.selo-giro svg { position: absolute; inset: 5px; width: calc(100% - 10px); height: calc(100% - 10px); animation: gira 26s linear infinite; }
.selo-giro text { font-family: var(--corpo); font-size: 9.2px; font-weight: 600; letter-spacing: 0.11em; text-transform: uppercase; fill: var(--branco); }
.selo-giro img { width: 30px; height: auto; filter: brightness(0) invert(1); }

@media (max-width: 900px) {
  .palco-topo-grade { grid-template-columns: 1fr; }
  .selo-giro { width: 84px; height: 84px; right: 10px; top: -22px; }
  .selo-giro text { font-size: 8.6px; }
  .selo-giro img { width: 22px; }
}

/* ---------- corpo do artigo: programa da peça ao lado e o texto ---------- */
.artigo-corpo { position: relative; padding-block: clamp(56px, 8vw, 110px); background: var(--fundo); }
.artigo-grade { display: grid; grid-template-columns: 270px minmax(0, 1fr); gap: clamp(32px, 5vw, 80px); align-items: start; }
.programa { position: sticky; top: calc(var(--topo-altura) + 28px); padding: 24px 22px; border-radius: var(--raio); border: 1px solid var(--linha); background: var(--luz-refletor), var(--n-850); }
.programa-rotulo { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 14px; font-size: 12px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--acento-texto); }
.programa-rotulo::after { content: ""; flex: 1; height: 1px; background: var(--linha-forte); }
.programa ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; counter-reset: cena; }
.programa li { counter-increment: cena; }
.programa a { display: grid; grid-template-columns: 30px 1fr; gap: 8px; padding: 8px 10px 8px 0; border-radius: 8px; font-size: 14.5px; line-height: 1.35; color: var(--texto-2); text-decoration: none; transition: color 0.2s, background 0.2s; }
.programa a::before { content: counter(cena, decimal-leading-zero); padding-left: 8px; font-family: var(--titulo); font-weight: 700; font-size: 12px; line-height: 1.8; color: var(--texto-3); }
.programa a:hover { color: var(--texto); }
.programa a[aria-current] { color: var(--texto); background: rgba(236, 28, 36, 0.12); }
.programa a[aria-current]::before { color: var(--acento-texto); }
.programa .botao { width: 100%; margin-top: 18px; white-space: normal; text-align: center; }

.texto { min-width: 0; max-width: 72ch; font-size: 18px; line-height: 1.75; color: var(--texto-2); }
.texto > * + * { margin-top: 22px; }
.texto p strong { color: var(--texto); }
.texto a:not(.botao) { color: var(--texto); text-decoration: underline; text-decoration-color: var(--vermelho-ll); text-decoration-thickness: 1.5px; text-underline-offset: 4px; }
.texto a:not(.botao):hover { color: var(--r-300); }
.texto h2 { margin-top: clamp(56px, 7vw, 84px); font-size: clamp(28px, 3vw, 40px); line-height: 1.1; letter-spacing: -0.03em; color: var(--texto); scroll-margin-top: calc(var(--topo-altura) + 24px); }
.texto h2 .cena { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; font-family: var(--corpo); font-size: 12px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--acento-texto); }
.texto h2 .cena::before { content: ""; width: 28px; height: 2px; background: var(--acento); }
.texto h3 { margin-top: 36px; font-size: clamp(20px, 1.9vw, 24px); line-height: 1.25; letter-spacing: -0.015em; color: var(--texto); }
.texto ul:not([class]), .texto ol:not([class]) { margin-bottom: 0; padding: 0; list-style: none; display: grid; gap: 12px; }
.texto ul:not([class]) li { position: relative; padding-left: 26px; }
.texto ul:not([class]) li::before { content: ""; position: absolute; left: 0; top: 14px; width: 12px; height: 2px; background: var(--acento-texto); }
.texto ol:not([class]) { counter-reset: item; }
.texto ol:not([class]) li { position: relative; padding-left: 40px; counter-increment: item; }
.texto ol:not([class]) li::before { content: counter(item); position: absolute; left: 0; top: 3px; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--r-800); font-family: var(--titulo); font-weight: 700; font-size: 13px; line-height: 1; color: var(--branco-quente); }
.texto li strong { color: var(--texto); }

/* nota da coxia: bastidor real da produção */
.coxia-nota { position: relative; margin-block: 36px; padding: 26px 28px 26px 30px; border-radius: var(--raio); background: var(--degrade-cortina); color: var(--r-100); overflow: hidden; }
.coxia-nota::after { content: ""; position: absolute; right: -40px; top: -40px; width: 180px; height: 180px; border-radius: 50%; background: radial-gradient(circle, rgba(246, 244, 241, 0.16), transparent 70%); pointer-events: none; }
.coxia-rotulo { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; font-size: 12px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--branco-quente); }
.coxia-rotulo::before { content: ""; width: 22px; height: 22px; flex: none; background: url("/assets/ll-cultural-simbolo.png") center / contain no-repeat; filter: brightness(0) invert(1); }
.coxia-nota p + p { margin-top: 12px; }
.coxia-nota strong, .coxia-nota a { color: var(--branco); }

/* número grande no meio do texto */
.numero-palco { margin: 40px 0; padding: clamp(24px, 3vw, 36px); border-radius: var(--raio); border: 1px solid var(--linha); background: var(--luz-refletor), var(--n-850); display: grid; grid-template-columns: auto 1fr; gap: 10px clamp(18px, 3vw, 36px); align-items: center; }
.numero-palco p { font-family: var(--titulo); font-weight: 800; font-size: clamp(46px, 6vw, 84px); line-height: 0.95; letter-spacing: -0.05em; color: var(--branco-quente); white-space: nowrap; }
.numero-palco p span { color: var(--acento-texto); }
.numero-palco figcaption { font-size: 16px; line-height: 1.55; color: var(--texto-2); }
@media (max-width: 620px) { .numero-palco { grid-template-columns: 1fr; } }

/* citação */
.texto blockquote { margin: 40px 0; padding: 0 0 0 26px; border-left: 3px solid var(--vermelho-ll); }
.texto blockquote p { font-family: var(--titulo); font-weight: 700; font-size: clamp(22px, 2.3vw, 30px); line-height: 1.25; letter-spacing: -0.02em; color: var(--texto); }
.texto blockquote footer { margin-top: 12px; font-size: 15px; color: var(--texto-3); }

/* régua da temporada: marcações de semana, como no roteiro de luz */
.regua { list-style: none; margin: 36px 0; padding: 0; position: relative; display: grid; gap: 14px; }
.regua::before { content: ""; position: absolute; left: 21px; top: 10px; bottom: 10px; width: 2px; background: linear-gradient(var(--vermelho-ll), var(--linha-forte)); }
.regua li { position: relative; display: grid; grid-template-columns: 44px 1fr; gap: 18px; align-items: start; }
.regua-marca { position: relative; z-index: 1; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; border: 2px solid var(--vermelho-ll); background: var(--n-900); font-family: var(--titulo); font-weight: 800; font-size: 14px; line-height: 1; color: var(--texto); }
.regua li.estreia-marca .regua-marca { background: var(--vermelho-ll); color: var(--branco); box-shadow: 0 0 0 6px rgba(236, 28, 36, 0.2); }
.regua-caixa { padding: 16px 20px 18px; border-radius: 12px; border: 1px solid var(--linha); background: var(--n-850); }
.regua-caixa b { display: block; margin-bottom: 4px; font-family: var(--titulo); font-size: 17px; line-height: 1.3; color: var(--texto); }
.regua-caixa span { display: block; font-size: 16px; line-height: 1.6; color: var(--texto-2); }
.regua-horas::before { left: 37px; }
.regua-horas li { grid-template-columns: 76px 1fr; }
.regua-horas .regua-marca { width: 76px; border-radius: 999px; font-size: 15px; letter-spacing: -0.02em; }

/* passos oficiais: trilho de paradas */
.trilho-passos { list-style: none; margin: 36px 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; counter-reset: parada; }
.trilho-passos li { position: relative; padding: 20px 18px 20px; border-radius: 12px; border: 1px solid var(--linha); background: var(--n-850); counter-increment: parada; }
.trilho-passos li::before { content: counter(parada); display: grid; place-items: center; width: 34px; height: 34px; margin-bottom: 12px; border-radius: 50%; background: var(--vermelho-ll); font-family: var(--titulo); font-weight: 800; font-size: 15px; line-height: 1; color: var(--branco); }
.trilho-passos b { display: block; font-family: var(--titulo); font-size: 17px; line-height: 1.25; color: var(--texto); margin-bottom: 6px; }
.trilho-passos span { display: block; font-size: 15px; line-height: 1.55; color: var(--texto-2); }

/* barras de regra, com escala de 0 a 100 */
.barras-regra { margin: 36px 0; padding: clamp(22px, 3vw, 32px); border-radius: var(--raio); border: 1px solid var(--linha); background: var(--n-850); display: grid; gap: 18px; }
.barras-regra h3 { margin: 0; font-size: 19px; }
.barra-regra { display: grid; grid-template-columns: minmax(0, 1fr) 64px; gap: 8px 14px; align-items: center; }
.barra-regra p { grid-column: 1 / -1; font-size: 15.5px; line-height: 1.45; color: var(--texto-2); }
.barra-trilho { position: relative; height: 12px; border-radius: 12px; background: rgba(246, 244, 241, 0.08); overflow: hidden; }
.barra-trilho i { position: absolute; inset: 0 auto 0 0; width: var(--v); min-width: 8px; border-radius: 12px; background: linear-gradient(90deg, var(--vermelho-profundo), var(--vermelho-ll)); transform-origin: 0 50%; }
.js .surge .barra-trilho i { transform: scaleX(0); transition: transform 1.2s var(--curva) 0.2s; }
.js .surge.visivel .barra-trilho i { transform: none; }
.barra-regra b { font-family: var(--titulo); font-weight: 800; font-size: 20px; text-align: right; color: var(--texto); white-space: nowrap; }
.barras-fonte { font-size: 14px; color: var(--texto-3); }

/* tabela com rolagem própria */
.tabela-rolagem { margin: 32px 0; overflow-x: auto; border-radius: var(--raio); border: 1px solid var(--linha); background: var(--n-850); }
.tabela-rolagem table { width: 100%; min-width: 560px; border-collapse: collapse; font-size: 15.5px; line-height: 1.45; }
.tabela-rolagem caption { padding: 16px 20px 0; text-align: left; font-size: 13px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--acento-texto); }
.tabela-rolagem th, .tabela-rolagem td { padding: 13px 20px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--linha); }
.tabela-rolagem thead th { font-family: var(--titulo); font-size: 14px; color: var(--texto); background: rgba(246, 244, 241, 0.04); }
.tabela-rolagem tbody tr:last-child td { border-bottom: 0; }
.tabela-rolagem td { color: var(--texto-2); }
.tabela-rolagem td:first-child { font-family: var(--titulo); font-weight: 700; color: var(--texto); white-space: nowrap; }

/* fonte oficial citada */
.fonte-oficial { margin: 32px 0; padding: 20px 22px; border-radius: 12px; border: 1px dashed var(--linha-forte); font-size: 15px; line-height: 1.6; color: var(--texto-2); }
.fonte-oficial b { display: block; margin-bottom: 6px; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--acento-texto); }
.fonte-oficial ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }

/* mapa de palco desenhado */
.mapa-palco { margin: 36px 0; border-radius: var(--raio); border: 1px solid var(--linha); background: var(--luz-refletor), var(--n-950); overflow: hidden; }
.mapa-palco-grade { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); }
.mapa-palco svg { display: block; width: 100%; height: auto; }
.mapa-palco .piso { fill: rgb(34, 34, 38); stroke: rgba(246, 244, 241, 0.25); stroke-width: 2; }
.mapa-palco .tabua { stroke: rgba(246, 244, 241, 0.05); stroke-width: 1; }
.mapa-palco .borda-frente { stroke: var(--vermelho-ll); stroke-width: 4; }
.mapa-palco .rotulo-palco { font-family: var(--corpo); font-size: 13px; font-weight: 600; letter-spacing: 0.18em; fill: rgb(136, 130, 124); text-transform: uppercase; }
.mapa-palco g[data-peca] { transition: opacity 0.3s; }
.mapa-palco g[data-peca] .forma { fill: rgb(66, 64, 66); stroke: rgba(246, 244, 241, 0.55); stroke-width: 2; transition: fill 0.3s, stroke 0.3s; }
.mapa-palco g[data-peca] .monitor { fill: rgb(117, 25, 27); stroke: rgb(239, 101, 106); stroke-width: 1.5; }
.mapa-palco g[data-peca] text { font-family: var(--corpo); font-size: 14px; font-weight: 600; fill: rgb(246, 244, 241); }
.mapa-palco g[data-peca] text.pequeno { font-size: 11px; font-weight: 500; fill: rgb(204, 200, 195); }
.mapa-palco.ativo g[data-peca]:not(.acesa) { opacity: 0.28; }
.mapa-palco g[data-peca].acesa .forma { fill: rgb(236, 28, 36); stroke: rgb(255, 255, 255); }
.mapa-legenda { list-style: none; margin: 0; padding: clamp(18px, 2.4vw, 26px); display: grid; align-content: center; gap: 6px; border-left: 1px solid var(--linha); }
.mapa-legenda button { display: grid; grid-template-columns: 30px 1fr; gap: 10px; align-items: start; width: 100%; padding: 9px 10px; border: 0; border-radius: 10px; background: transparent; text-align: left; font-size: 14.5px; line-height: 1.4; color: var(--texto-2); cursor: pointer; transition: background 0.2s, color 0.2s; }
.mapa-legenda button b { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; border: 1.5px solid var(--linha-forte); font-family: var(--titulo); font-size: 12px; color: var(--texto); }
.mapa-legenda button:hover, .mapa-legenda button[aria-pressed="true"] { background: rgba(236, 28, 36, 0.12); color: var(--texto); }
.mapa-legenda button[aria-pressed="true"] b { background: var(--vermelho-ll); border-color: var(--vermelho-ll); }
.mapa-nota { padding: 14px 20px; border-top: 1px solid var(--linha); font-size: 14px; color: var(--texto-3); }
@media (max-width: 760px) { .mapa-palco-grade { grid-template-columns: 1fr; } .mapa-legenda { border-left: 0; border-top: 1px solid var(--linha); } }

/* checklist que se marca */
.checklist { margin: 40px 0; display: grid; gap: 14px; }
.checklist-painel { position: sticky; top: calc(var(--topo-altura) + 12px); z-index: 5; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 20px; padding: 16px 20px; border-radius: var(--raio); border: 1px solid var(--linha-forte); background: rgba(28, 28, 32, 0.94); box-shadow: 0 24px 40px -30px rgba(0, 0, 0, 0.9); }
@supports (backdrop-filter: blur(1px)) { .checklist-painel { background: rgba(28, 28, 32, 0.78); backdrop-filter: blur(12px); } }
.checklist-placar { font-family: var(--titulo); font-weight: 700; font-size: 17px; color: var(--texto-2); }
.checklist-placar b { font-size: 30px; letter-spacing: -0.03em; color: var(--texto); }
.checklist-regua { flex: 1 1 160px; height: 6px; border-radius: 6px; background: rgba(246, 244, 241, 0.1); overflow: hidden; }
.checklist-regua i { display: block; height: 100%; background: var(--vermelho-ll); transform: scaleX(var(--feito, 0)); transform-origin: 0 50%; transition: transform 0.4s var(--curva); }
.checklist-acoes { display: flex; flex-wrap: wrap; gap: 8px; }
.checklist-acoes .botao { min-height: 40px; padding: 8px 16px; font-size: 14px; }
.checklist-tempo { padding: clamp(20px, 2.6vw, 28px); border-radius: var(--raio); border: 1px solid var(--linha); background: var(--n-850); transition: border-color 0.3s; }
.checklist-tempo.completo { border-color: rgba(236, 28, 36, 0.6); background: linear-gradient(180deg, rgba(236, 28, 36, 0.08), transparent 60%), var(--n-850); }
.checklist-tempo header { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 16px; margin-bottom: 12px; }
.texto .checklist-tempo h3 { margin: 0; font-size: 21px; }
.checklist-tempo header span { font-size: 13px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--acento-texto); }
.checklist-tempo ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.checklist-tempo label { display: grid; grid-template-columns: 26px 1fr; gap: 12px; align-items: start; padding: 9px 8px; border-radius: 8px; font-size: 16px; line-height: 1.5; color: var(--texto-2); cursor: pointer; transition: background 0.2s; }
.checklist-tempo label:hover { background: rgba(246, 244, 241, 0.04); }
.checklist-tempo input { appearance: none; -webkit-appearance: none; width: 22px; height: 22px; margin: 2px 0 0; border-radius: 6px; border: 1.5px solid var(--linha-forte); background: transparent; cursor: pointer; display: grid; place-items: center; transition: background 0.2s, border-color 0.2s; }
.checklist-tempo input::after { content: ""; width: 10px; height: 5px; border-left: 2px solid var(--branco); border-bottom: 2px solid var(--branco); transform: rotate(-45deg) translate(1px, -1px) scale(0); transition: transform 0.2s var(--curva); }
.checklist-tempo input:checked { background: var(--vermelho-ll); border-color: var(--vermelho-ll); }
.checklist-tempo input:checked::after { transform: rotate(-45deg) translate(1px, -1px) scale(1); }
.checklist-tempo input:focus-visible { outline: 2px solid var(--branco-quente); outline-offset: 2px; }
.checklist-tempo input:checked + span { color: var(--texto-3); text-decoration: line-through; text-decoration-color: rgba(236, 28, 36, 0.6); }
.checklist-tempo label strong { color: var(--texto); }
@media (max-width: 620px) { .checklist-painel { position: static; } }

/* cartão de case dentro do texto */
.case-no-texto { margin: 36px 0; display: grid; grid-template-columns: 200px 1fr; overflow: hidden; border-radius: var(--raio); border: 1px solid var(--linha); background: var(--n-850); text-decoration: none; transition: border-color 0.3s, transform 0.4s var(--curva); }
.texto a.case-no-texto { text-decoration: none; color: inherit; }
.case-no-texto:hover { border-color: var(--linha-forte); transform: translateY(-3px); }
.case-no-texto img { width: 100%; height: 100%; min-height: 150px; object-fit: cover; }
.case-no-texto div { padding: 20px 22px; display: grid; gap: 6px; align-content: center; }
.case-no-texto small { font-size: 12px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--r-300); }
.case-no-texto b { font-family: var(--titulo); font-size: 20px; line-height: 1.2; color: var(--texto); }
.case-no-texto span { font-size: 15px; line-height: 1.5; color: var(--texto-2); }
@media (max-width: 560px) { .case-no-texto { grid-template-columns: 1fr; } .case-no-texto img { aspect-ratio: 16 / 9; min-height: 0; } }

/* autora */
.autora { margin-top: clamp(56px, 7vw, 84px); display: grid; grid-template-columns: 104px 1fr; gap: 22px; align-items: center; padding: 24px; border-radius: var(--raio); border: 1px solid var(--linha); background: var(--luz-lateral), var(--n-850); }
.autora img { width: 104px; height: 104px; border-radius: 50%; object-fit: cover; object-position: 50% 14%; border: 2px solid var(--vermelho-ll); }
.autora p { font-size: 15.5px; line-height: 1.6; color: var(--texto-2); }
.autora p b { display: block; margin-bottom: 4px; font-family: var(--titulo); font-size: 19px; color: var(--texto); }
.texto .autora a { color: var(--texto); }
@media (max-width: 520px) { .autora { grid-template-columns: 1fr; } }

/* ---------- perguntas do artigo ---------- */
.perguntas-artigo { padding-block: clamp(64px, 9vw, 120px); background: var(--n-950); border-top: 1px solid var(--linha); }
.perguntas-artigo .titulo { font-size: clamp(32px, 3.8vw, 52px); }

/* ---------- ingresso: chamada para o WhatsApp ---------- */
.cta-palco { padding-block: clamp(64px, 9vw, 120px); background: var(--luz-ribalta), var(--fundo); border-top: 1px solid var(--linha); }
.cta-ingresso { position: relative; display: grid; grid-template-columns: 190px 1fr; border-radius: 20px; overflow: hidden; background: var(--branco-quente); color: var(--preto-cultural); box-shadow: 0 50px 90px -40px rgba(0, 0, 0, 0.9); }
.cta-ingresso-canhoto { position: relative; display: flex; flex-direction: column; justify-content: space-between; gap: 24px; padding: 26px 22px; background: var(--degrade-cortina); color: var(--branco-quente); border-right: 2px dashed rgba(246, 244, 241, 0.5); }
.cta-ingresso-canhoto span { font-size: 12px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--r-100); }
.cta-ingresso-canhoto b { font-family: var(--titulo); font-weight: 800; font-size: 40px; line-height: 1; letter-spacing: -0.04em; }
.cta-ingresso-canhoto img { width: 120px; height: auto; }
.cta-ingresso::before, .cta-ingresso::after { content: ""; position: absolute; left: 175px; width: 30px; height: 30px; border-radius: 50%; background: var(--fundo); z-index: 2; }
.cta-ingresso::before { top: -15px; }
.cta-ingresso::after { bottom: -15px; }
.cta-ingresso-corpo { padding: clamp(28px, 4vw, 52px); display: grid; gap: 18px; align-content: center; }
.cta-ingresso-corpo .chapeu { margin-bottom: 0; color: var(--vermelho-profundo); }
.cta-ingresso-corpo h2 { font-size: clamp(28px, 3.4vw, 46px); line-height: 1.05; letter-spacing: -0.03em; color: var(--preto-cultural); }
.cta-ingresso-corpo h2 em { color: var(--vermelho-profundo); }
.cta-ingresso-corpo p:not(.chapeu) { max-width: 60ch; font-size: 17px; color: var(--n-500); }
.cta-ingresso-corpo p a { color: var(--vermelho-profundo); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.cta-ingresso-corpo p a:hover { color: var(--preto-cultural); }
.cta-acoes { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 6px; }
.botao-zap svg { width: 22px; height: 22px; flex: none; }
.botao-escuro { background: transparent; border-color: var(--n-300); color: var(--preto-cultural); box-shadow: none; }
.botao-escuro:hover { background: var(--preto-cultural); border-color: var(--preto-cultural); color: var(--branco-quente); }
@media (max-width: 720px) {
  .cta-ingresso { grid-template-columns: 1fr; }
  .cta-ingresso-canhoto { flex-direction: row; align-items: center; border-right: 0; border-bottom: 2px dashed rgba(246, 244, 241, 0.5); }
  .cta-ingresso-canhoto img { width: 96px; }
  .cta-ingresso::before, .cta-ingresso::after { display: none; }
}

/* ---------- leia também ---------- */
.leia-tambem { padding-block: clamp(64px, 9vw, 110px); background: var(--n-950); border-top: 1px solid var(--linha); }
.leia-tambem .titulo { font-size: clamp(30px, 3.4vw, 46px); }
.cartazes-links { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.cartaz-link { position: relative; display: flex; flex-direction: column; justify-content: flex-end; min-height: 360px; overflow: hidden; isolation: isolate; border-radius: var(--raio); border: 1px solid var(--linha); background: var(--superficie); color: var(--texto); text-decoration: none; transition: border-color 0.35s, transform 0.5s var(--curva); }
.cartaz-link img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; filter: grayscale(0.3) brightness(0.8); transition: transform 1.1s var(--curva), filter 0.5s; }
.cartaz-link::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--veu-foto); }
.cartaz-link:hover { border-color: var(--linha-forte); transform: translateY(-4px); }
.cartaz-link:hover img { transform: scale(1.05); filter: grayscale(0) brightness(0.9); }
.cartaz-link > div { padding: 22px 24px 24px; display: grid; gap: 8px; }
.cartaz-link small { font-size: 12px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--r-300); }
.cartaz-link b { font-family: var(--titulo); font-weight: 700; font-size: clamp(20px, 1.8vw, 24px); line-height: 1.18; letter-spacing: -0.015em; }
.cartaz-link span { font-size: 15px; line-height: 1.5; color: var(--texto-2); }
.cartaz-link .seta-ler { display: inline-flex; align-items: center; gap: 10px; margin-top: 6px; font-size: 15px; font-weight: 600; color: var(--texto); }
.seta-ler i { position: relative; width: 30px; height: 30px; border-radius: 50%; border: 1.5px solid var(--linha-forte); transition: background 0.3s, border-color 0.3s; }
.seta-ler i::before { content: ""; position: absolute; left: 50%; top: 50%; width: 8px; height: 8px; border-top: 1.5px solid currentColor; border-right: 1.5px solid currentColor; transform: translate(-65%, -50%) rotate(45deg); }
.cartaz-link:hover .seta-ler i { background: var(--vermelho-ll); border-color: var(--vermelho-ll); }
.cartaz-texto-link { justify-content: space-between; background: var(--luz-refletor), var(--superficie); }
.cartaz-texto-link::before { display: none; }
.cartaz-link.cartaz-texto-link { min-height: 240px; }
.cartaz-texto-link .marca-irma { display: block; margin: 24px 24px 0; font-size: 12px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--texto-3); }
@media (max-width: 1000px) { .cartazes-links { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px) { .cartazes-links { grid-template-columns: 1fr; } .cartaz-link { min-height: 300px; } }

@media (max-width: 1000px) {
  .artigo-grade { grid-template-columns: 1fr; }
  .programa { position: static; }
  .programa ol { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 12px; }
  .programa .botao { width: auto; }
}
@media (max-width: 620px) {
  .programa ol { grid-template-columns: 1fr; }
  .texto { font-size: 17px; }
}

/* ---------- abertura de case: foto inteira de palco e o número em cena ---------- */
.case-topo { position: relative; isolation: isolate; overflow: hidden; display: flex; align-items: flex-end; min-height: min(94svh, 880px); padding-block: calc(var(--topo-altura) + 48px) clamp(44px, 6vw, 84px); background: var(--n-950); }
.case-topo-foto { position: absolute; inset: 0; z-index: -2; margin: 0; }
.case-topo-foto img { width: 100%; height: 100%; object-fit: cover; filter: brightness(0.66) saturate(1.05); }
.case-topo::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(23, 23, 25, 0.98) 6%, rgba(23, 23, 25, 0.62) 44%, rgba(23, 23, 25, 0.2) 72%, rgba(23, 23, 25, 0.7)), radial-gradient(ellipse 50% 45% at 72% 12%, rgba(246, 244, 241, 0.16), transparent 70%); }
.case-topo::after { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(90deg, rgba(86, 24, 27, 0.8), transparent 9%, transparent 91%, rgba(86, 24, 27, 0.8)); }
.case-topo-grade { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); gap: clamp(28px, 5vw, 72px); align-items: end; }
.case-titulo { font-size: clamp(40px, 6vw, 92px); line-height: 0.98; letter-spacing: -0.045em; margin-bottom: 22px; }
.case-titulo > span { display: block; }
.case-topo .resposta { background: rgba(12, 12, 12, 0.35); }
.placar-cena { justify-self: end; text-align: right; max-width: 100%; }
.placar-cena p { font-family: var(--titulo); font-weight: 800; font-size: clamp(52px, 6.6vw, 120px); line-height: 0.9; letter-spacing: -0.055em; color: var(--branco-quente); white-space: nowrap; text-shadow: 0 20px 60px rgba(0, 0, 0, 0.6); }
.placar-cena p span { color: var(--r-400); }
.placar-cena small { display: block; margin-top: 14px; margin-left: auto; max-width: 30ch; font-size: 16px; line-height: 1.45; color: var(--n-150); }
.placar-cena .foto-credito { margin-top: 18px; font-size: 12px; color: var(--n-300); }
@media (max-width: 900px) {
  .case-topo { min-height: 0; }
  .case-topo-grade { grid-template-columns: 1fr; }
  .placar-cena { justify-self: start; text-align: left; }
  .placar-cena small { margin-left: 0; }
}

/* ficha técnica do case */
.case-ficha { padding-block: clamp(40px, 5vw, 64px); background: var(--n-950); border-block: 1px solid var(--linha); }
.ficha-tecnica { margin: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; }
.ficha-tecnica div { padding: 6px clamp(14px, 2vw, 26px); border-left: 1px solid var(--linha); }
.ficha-tecnica div:first-child { border-left: 0; padding-left: 0; }
.ficha-tecnica dt { margin-bottom: 8px; font-size: 12px; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--acento-texto); }
.ficha-tecnica dd { margin: 0; font-size: 16px; line-height: 1.5; color: var(--texto); }
@media (max-width: 900px) {
  .ficha-tecnica { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 22px; }
  .ficha-tecnica div:nth-child(3) { border-left: 0; padding-left: 0; }
}
@media (max-width: 520px) {
  .ficha-tecnica { grid-template-columns: 1fr; }
  .ficha-tecnica div { border-left: 0; padding-left: 0; padding-top: 16px; border-top: 1px solid var(--linha); }
  .ficha-tecnica div:first-child { border-top: 0; padding-top: 0; }
}

/* três atos do case */
.case-atos { padding-block: clamp(72px, 10vw, 130px); background: var(--fundo); }
.atos-case { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.ato-case { position: relative; overflow: hidden; padding: clamp(26px, 3vw, 38px); border-radius: var(--raio); border: 1px solid var(--linha); background: var(--luz-refletor), var(--n-850); }
.ato-case-num { display: block; margin-bottom: 18px; font-family: var(--titulo); font-weight: 800; font-size: clamp(64px, 7vw, 96px); line-height: 0.85; letter-spacing: -0.04em; color: transparent; -webkit-text-stroke: 1.5px var(--r-400); }
.ato-case h2 { margin-bottom: 14px; font-size: clamp(22px, 2.1vw, 28px); line-height: 1.15; letter-spacing: -0.02em; }
.ato-case p { color: var(--texto-2); font-size: 16.5px; }
.ato-case p + p, .ato-case p + ul, .ato-case ul + p { margin-top: 12px; }
.ato-case .lista-traco li { font-size: 15.5px; }
.ato-case-final { border-color: transparent; background: var(--degrade-cortina); }
.ato-case-final .ato-case-num { -webkit-text-stroke-color: var(--branco-quente); }
.ato-case-final p, .ato-case-final .lista-traco li { color: var(--r-100); }
.ato-case-final .lista-traco li::before { background: var(--branco-quente); }
@media (max-width: 900px) { .atos-case { grid-template-columns: 1fr; } }

/* placar de resultados */
.case-placar { padding-block: clamp(64px, 9vw, 120px); background: var(--luz-ribalta), var(--n-950); border-top: 1px solid var(--linha); }
.placar-grade { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; }
.placar-item { display: grid; gap: 10px; align-content: start; padding: clamp(24px, 3vw, 34px); border-radius: var(--raio); border: 1px solid var(--linha); background: var(--n-850); }
.placar-item b { font-family: var(--titulo); font-weight: 800; font-size: clamp(40px, 4.4vw, 62px); line-height: 1; letter-spacing: -0.045em; color: var(--texto); overflow-wrap: anywhere; }
.placar-item b span { color: var(--acento-texto); }
.placar-item p { font-size: 15.5px; line-height: 1.5; color: var(--texto-2); }
.placar-item-destaque { border-color: transparent; background: var(--luz-refletor), var(--r-800); }
.placar-item-destaque b span { color: var(--branco-quente); }
.placar-item-destaque p { color: var(--r-100); }
.placar-fonte { margin-top: 20px; font-size: 14px; line-height: 1.6; color: var(--texto-3); max-width: 90ch; }
.placar-fonte a { color: var(--texto-2); text-underline-offset: 3px; }

/* comparativo de antes e depois em barras */
.comparativo { margin-top: 16px; padding: clamp(22px, 3vw, 36px); border-radius: var(--raio); border: 1px solid var(--linha); background: var(--n-850); display: grid; gap: 22px; }
.comparativo h3 { font-size: clamp(20px, 2vw, 26px); letter-spacing: -0.02em; }
.comparativo-linha { display: grid; grid-template-columns: 190px minmax(0, 1fr) auto; gap: 8px 18px; align-items: center; }
.comparativo-linha span { font-size: 14.5px; line-height: 1.4; color: var(--texto-2); }
.comparativo-linha b { font-family: var(--titulo); font-weight: 800; font-size: clamp(22px, 2.4vw, 32px); letter-spacing: -0.03em; color: var(--texto); white-space: nowrap; text-align: right; }
.comparativo-linha .barra-trilho { height: 16px; }
.comparativo-linha-depois .barra-trilho i { background: linear-gradient(90deg, var(--vermelho-profundo), var(--vermelho-ll)); box-shadow: 0 0 20px rgba(236, 28, 36, 0.5); }
.comparativo-linha-antes .barra-trilho i { background: var(--n-400); }
@media (max-width: 640px) {
  .comparativo-linha { grid-template-columns: minmax(0, 1fr) auto; }
  .comparativo-linha span { grid-column: 1 / -1; }
}

/* lições do case e depoimento */
.case-licoes { padding-block: clamp(72px, 10vw, 130px); background: var(--fundo); border-top: 1px solid var(--linha); }
.licoes { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; counter-reset: licao; }
.licoes li { counter-increment: licao; padding: 26px 26px 28px; border-top: 2px solid var(--vermelho-ll); background: linear-gradient(180deg, rgba(236, 28, 36, 0.07), transparent 50%); }
.licoes li::before { content: counter(licao, decimal-leading-zero); display: block; margin-bottom: 14px; font-family: var(--titulo); font-weight: 800; font-size: 15px; color: var(--acento-texto); }
.licoes b { display: block; margin-bottom: 8px; font-family: var(--titulo); font-size: 21px; line-height: 1.2; letter-spacing: -0.015em; color: var(--texto); }
.licoes p { font-size: 16px; color: var(--texto-2); }

.fala-case { margin: clamp(40px, 6vw, 72px) 0 0; padding: clamp(28px, 4vw, 52px); border-radius: var(--raio); background: var(--branco-quente); color: var(--preto-cultural); display: grid; gap: 22px; position: relative; overflow: hidden; }
.fala-case::before { content: ""; position: absolute; right: -60px; bottom: -80px; width: 280px; height: 280px; border-radius: 50%; background: radial-gradient(circle, rgba(236, 28, 36, 0.22), transparent 70%); pointer-events: none; }
.fala-case blockquote { margin: 0; position: relative; }
.fala-case blockquote p { font-family: var(--titulo); font-weight: 700; font-size: clamp(24px, 2.8vw, 40px); line-height: 1.18; letter-spacing: -0.025em; overflow-wrap: break-word; }
.fala-case figcaption { display: grid; gap: 2px; font-size: 15px; color: var(--n-500); position: relative; }
.fala-case figcaption b { font-size: 17px; color: var(--preto-cultural); }

/* navegação entre cases */
.proximo-case { padding-block: 0; background: var(--n-950); border-top: 1px solid var(--linha); }
.proximo-case a { display: grid; grid-template-columns: 1fr auto; gap: 20px; align-items: center; padding-block: clamp(36px, 5vw, 60px); color: var(--texto); text-decoration: none; }
.proximo-case small { display: block; margin-bottom: 8px; font-size: 12px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--acento-texto); }
.proximo-case b { font-family: var(--titulo); font-weight: 800; font-size: clamp(30px, 5vw, 72px); line-height: 1; letter-spacing: -0.04em; transition: color 0.3s; }
.proximo-case a:hover b { color: var(--r-300); }
.proximo-case .seta-ler i { width: 64px; height: 64px; }
.proximo-case .seta-ler i::before { width: 14px; height: 14px; }
.proximo-case a:hover .seta-ler i { background: var(--vermelho-ll); border-color: var(--vermelho-ll); }

/* ---------- vitrines: índice de cases e de artigos ---------- */
.vitrine-topo { position: relative; isolation: isolate; overflow: hidden; padding-block: calc(var(--topo-altura) + clamp(40px, 6vw, 80px)) clamp(48px, 7vw, 90px); background: var(--luz-refletor), var(--luz-lateral), var(--n-950); border-bottom: 1px solid var(--linha); }
.vitrine-topo::after { content: ""; position: absolute; left: -10%; right: -10%; bottom: -2px; height: 40%; z-index: -1; pointer-events: none; background: repeating-linear-gradient(90deg, rgba(246, 244, 241, 0.04) 0 1px, transparent 1px 110px), linear-gradient(0deg, rgba(236, 28, 36, 0.12), transparent 80%); transform: perspective(700px) rotateX(62deg); transform-origin: 50% 100%; }
.vitrine-titulo { max-width: 16ch; font-size: clamp(42px, 6.4vw, 96px); line-height: 0.98; letter-spacing: -0.045em; }
.vitrine-titulo > span { display: block; }
.vitrine-topo .lead { max-width: 58ch; }

.placar-faixa { list-style: none; margin: clamp(40px, 5vw, 64px) 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--linha); }
.placar-faixa li { padding: 26px clamp(12px, 2vw, 26px) 0; border-left: 1px solid var(--linha); }
.placar-faixa li:first-child { border-left: 0; padding-left: 0; }
.placar-faixa b { display: block; font-family: var(--titulo); font-weight: 800; font-size: clamp(32px, 3.4vw, 50px); line-height: 1; letter-spacing: -0.045em; color: var(--texto); white-space: nowrap; }
.placar-faixa b span { color: var(--acento-texto); }
.placar-faixa small { display: block; margin-top: 10px; font-size: 14.5px; line-height: 1.45; color: var(--texto-2); max-width: 26ch; }
@media (max-width: 900px) {
  .placar-faixa { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 26px; }
  .placar-faixa li:nth-child(3) { border-left: 0; padding-left: 0; }
}
@media (max-width: 440px) {
  .placar-faixa { grid-template-columns: 1fr; }
  .placar-faixa li { border-left: 0; padding-left: 0; }
}

.vitrine { padding-block: clamp(64px, 9vw, 120px); background: var(--fundo); }
.vitrine + .vitrine { border-top: 1px solid var(--linha); }
.vitrine-alt { background: var(--n-950); }

/* cartaz grande de case, alternando lado */
.case-vitrine { position: relative; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 64px); align-items: center; margin-bottom: clamp(48px, 7vw, 96px); color: var(--texto); text-decoration: none; }
.case-vitrine:last-child { margin-bottom: 0; }
.case-vitrine-invertido { grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); }
.case-vitrine-invertido .case-vitrine-foto { order: 2; }
.case-vitrine-foto { position: relative; margin: 0; overflow: hidden; aspect-ratio: 16 / 10; max-width: 100%; border-radius: var(--raio); box-shadow: 0 40px 80px -40px rgba(0, 0, 0, 0.9), 0 0 0 1px var(--linha); }
.case-vitrine-foto img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--curva), filter 0.5s; filter: brightness(0.86); }
.case-vitrine-foto::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(23, 23, 25, 0.75), transparent 50%); pointer-events: none; }
.case-vitrine:hover .case-vitrine-foto img { transform: scale(1.05); filter: brightness(1); }
.case-vitrine-numero { position: absolute; left: clamp(18px, 3vw, 30px); bottom: clamp(14px, 2.4vw, 24px); z-index: 1; font-family: var(--titulo); font-weight: 800; font-size: clamp(38px, 5.4vw, 80px); line-height: 1; letter-spacing: -0.05em; color: var(--branco-quente); white-space: nowrap; }
.case-vitrine-numero span { color: var(--r-400); }
.case-vitrine-texto { display: grid; gap: 14px; align-content: center; }
.case-vitrine-texto small { font-size: 13px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--acento-texto); }
.case-vitrine-texto h2, .case-vitrine-texto h3 { font-size: clamp(30px, 3.6vw, 50px); line-height: 1.02; letter-spacing: -0.035em; transition: color 0.3s; }
.case-vitrine:hover h2, .case-vitrine:hover h3 { color: var(--r-300); }
.case-vitrine-texto p { color: var(--texto-2); max-width: 52ch; }
.case-vitrine-texto .seta-ler { display: inline-flex; align-items: center; gap: 12px; font-weight: 600; }
.case-vitrine:hover .seta-ler i { background: var(--vermelho-ll); border-color: var(--vermelho-ll); }
@media (max-width: 900px) {
  .case-vitrine, .case-vitrine-invertido { grid-template-columns: 1fr; }
  .case-vitrine-invertido .case-vitrine-foto { order: 0; }
}

/* evento com depoimento, dentro da vitrine */
.evento-destaque { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; }
.evento-destaque-foto { position: relative; margin: 0; overflow: hidden; min-height: 320px; border-radius: var(--raio); }
.evento-destaque-foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.evento-destaque-foto::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(23, 23, 25, 0.9), transparent 55%); }
.evento-destaque-foto figcaption { position: absolute; left: 22px; right: 22px; bottom: 20px; z-index: 1; display: grid; gap: 6px; }
.evento-destaque-foto figcaption small { font-size: 12px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--r-300); }
.evento-destaque-foto figcaption b { font-family: var(--titulo); font-size: clamp(24px, 2.6vw, 34px); line-height: 1.1; letter-spacing: -0.02em; color: var(--branco-quente); }
.evento-destaque .fala-case { margin: 0; align-content: space-between; }
.evento-numeros { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px 26px; position: relative; }
.evento-numeros li { display: grid; gap: 2px; }
.evento-numeros b { font-family: var(--titulo); font-weight: 800; font-size: clamp(28px, 3vw, 40px); line-height: 1; letter-spacing: -0.04em; color: var(--vermelho-profundo); }
.evento-numeros span { font-size: 14px; color: var(--n-500); }
.fala-case .botao { justify-self: start; position: relative; }
@media (max-width: 900px) { .evento-destaque { grid-template-columns: 1fr; } }

/* estante de artigos */
.estante { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.estante > li:first-child { grid-column: 1 / -1; }
.estante > li:first-child .cartaz-link { min-height: clamp(380px, 46vw, 560px); }
.estante > li:first-child .cartaz-link b { font-size: clamp(30px, 4vw, 56px); line-height: 1.02; letter-spacing: -0.035em; max-width: 18ch; }
.estante > li:first-child .cartaz-link span { max-width: 62ch; font-size: 17px; }
.estante .cartaz-link { min-height: 420px; }
.estante-meta { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 13.5px; color: var(--texto-3); }
@media (max-width: 760px) { .estante { grid-template-columns: 1fr; } .estante .cartaz-link { min-height: 340px; } }

.nota-fotos-conteudo { margin-top: 28px; font-size: 13px; line-height: 1.6; color: var(--texto-3); }

/* ---------- impressão do checklist ---------- */
@media print {
  .ribalta, .programa, .cta-palco, .leia-tambem, .perguntas-artigo, .rodape, .zap, .palco-topo .moldura, .checklist-acoes, .checklist-regua { display: none !important; }
  .palco-topo, .artigo-corpo { padding: 0; background: rgb(255, 255, 255); }
  .artigo-grade { display: block; }
  .texto, .texto h2, .texto h3, .checklist-tempo label, .resposta, .palco-titulo { color: rgb(0, 0, 0) !important; }
  .checklist-painel { position: static; background: rgb(255, 255, 255); border-color: rgb(0, 0, 0); }
  .checklist-tempo { break-inside: avoid; background: rgb(255, 255, 255); border-color: rgb(120, 120, 120); }
  .checklist-tempo input { border-color: rgb(0, 0, 0); }
  .js [data-linhas] > span > i, .js .surge { transform: none !important; opacity: 1 !important; }
}
