/* Faixa da campanha, igual em todos os modelos. As fotos e o vídeo vêm do cadastro. */
.lume-campanha {
  width: min(1120px, calc(100% - 40px));
  margin: 28px auto 8px;
  display: grid;
  grid-template-columns: minmax(200px, 320px) 1fr;
  gap: 22px;
  align-items: start;
}
.lume-campanha:not(:has(.lume-campanha__lado)) { grid-template-columns: 1fr; }
.lume-campanha__lado:not(:has(img)):not(:has(video:not([hidden]))) { display: none; }
.lume-campanha:not(:has(.lume-campanha__lado img)):not(:has(video:not([hidden]))) { grid-template-columns: 1fr; }
.lume-campanha__lado img,
.lume-campanha__lado video {
  width: 100%;
  border-radius: 16px;
  display: block;
  background: #0b1a2b;
}
.lume-campanha__lado img { aspect-ratio: 9 / 16; object-fit: cover; object-position: center top; }
.lume-campanha__lado video { margin-top: 12px; max-height: 70vh; }
.lume-campanha__lado:not(:has(img)) video { margin-top: 0; aspect-ratio: 9 / 16; object-fit: cover; }
.lume-campanha__lado:has(video:not([hidden])) img { display: none; }
.lume-campanha__eventos {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.lume-campanha:not(:has(.lume-campanha__lado)) .lume-campanha__eventos,
.lume-campanha:not(:has(video:not([hidden]))):not(:has(.lume-campanha__lado img)) .lume-campanha__eventos {
  grid-template-columns: repeat(4, 1fr);
}
.lume-campanha__eventos img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: center top;
  border-radius: 14px;
  display: block;
}
.lume-campanha__eventos span {
  display: block;
  margin-top: 6px;
  font: 700 0.85rem/1.3 system-ui, sans-serif;
}
@media (max-width: 800px) {
  .lume-campanha,
  .lume-campanha:not(:has(.lume-campanha__lado)),
  .lume-campanha:not(:has(video:not([hidden]))):not(:has(.lume-campanha__lado img)) { grid-template-columns: 1fr; }
  .lume-campanha__eventos,
  .lume-campanha:not(:has(.lume-campanha__lado)) .lume-campanha__eventos { grid-template-columns: 1fr 1fr; }
}
