/* ══════════════════════════════════════════════════════════════
   Campanhas de arrecadação

   Toda cor vem das custom properties do tema do clube
   (`config/tema.py`). Nenhum hexadecimal de marca escrito aqui: trocar
   `CLUBE_PERFIL` tem de trocar a cor desta página junto com o resto do
   site, sem editar CSS.

   As únicas cores fixas são as de estado (verde de aprovado, âmbar de
   pendente, vermelho de recusado), que são semânticas e não da marca.
   ══════════════════════════════════════════════════════════════ */

/* ── Espaço para o cabeçalho fixo ─────────────────────────────── */
/*
  `.site-header` é `position: fixed`, então ele não ocupa espaço no fluxo:
  sem um recuo no topo, a primeira seção da página nasce ATRÁS dele. Cada
  página do site resolve isso no seu próprio primeiro bloco — `page-hero`
  usa 11.5rem, `shop-hero` usa 6.5rem no mobile.

  As páginas de campanha que NÃO têm hero (detalhe e retorno do pagamento)
  usam este invólucro. Um wrapper em vez de `:first-child` porque o primeiro
  elemento muda: com patrocinador é a faixa de banners, sem ele é a chamada,
  e em rascunho é o aviso de pré-visualização.
*/
.camp-pagina {
  /* A logo avança 24px para fora do header; a folga acompanha a altura real
     do menu em vez de depender de um valor fixo por breakpoint. */
  padding-top: calc(var(--header-h, 156px) + 1.5rem);
}

/* ── Faixa de apoiadores ──────────────────────────────────────── */
.camp-apoiadores {
  padding: 2rem 0 0;
}

.camp-apoiadores__grid {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 1.25rem;
}

.camp-banner {
  position: relative;
  border-radius: 18px;
  overflow: hidden;
  background: var(--cor-escura);
  border: 1px solid rgba(var(--tinta-rgb), .10);
  /* Proporção fixa: sem ela, arte de 400px e arte de 1200px deixam os dois
     cards com alturas diferentes e a faixa fica torta. */
  aspect-ratio: 16 / 7;
}

.camp-banner__media {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: var(--cor-escura);
}

.camp-banner__fundo {
  position: absolute;
  inset: -1rem;
  width: calc(100% + 2rem);
  height: calc(100% + 2rem);
  object-fit: cover;
  filter: blur(16px) brightness(.72) saturate(.9);
  transform: scale(1.04);
  pointer-events: none;
}

.camp-banner__img {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  /* Preserva a arte inteira mesmo quando sua proporção difere de 16:7. */
  object-fit: contain;
  object-position: center;
  display: block;
  background: transparent;
}

/* Quando o banner tem link, o elemento clicável também precisa ocupar todo
   o card para que a altura percentual da imagem seja calculada corretamente. */
.camp-banner > a:not(.camp-banner--vazio),
.camp-carrossel__slide > a {
  display: block;
  width: 100%;
  height: 100%;
}

.camp-banner__tag {
  position: absolute;
  top: .75rem;
  left: .75rem;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .3rem .7rem;
  border-radius: 999px;
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  background: var(--cor-destaque);
  color: var(--cor-escura);
}

.camp-banner__tag--suave {
  background: rgba(255, 255, 255, .92);
  color: var(--cor-escura);
}

.camp-banner__formato {
  position: absolute;
  top: .75rem;
  right: .75rem;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  padding: .3rem .7rem;
  border: 1px solid rgba(var(--cor-escura-rgb), .12);
  border-radius: 999px;
  background: rgba(255, 255, 255, .92);
  color: var(--cor-escura);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .06em;
  line-height: 1;
  text-transform: uppercase;
  white-space: nowrap;
}

.camp-banner__formato i {
  color: var(--cor-primaria);
  font-size: .64rem;
}

.camp-banner__formato--slideshow {
  gap: .2rem;
}

.camp-banner--vazio {
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255, 255, 255, .45);
  font-size: .85rem;
  text-align: center;
  padding: 1rem;
}

/* Espaço vazio que convida a empresa: leva ao card da cota corporativa */
.camp-banner--convite {
  position: absolute;
  inset: 0;
  flex-direction: column;
  gap: .35rem;
  color: rgba(255, 255, 255, .85);
  text-decoration: none;
  border: 2px dashed rgba(255, 255, 255, .22);
  border-radius: inherit;
  background:
    radial-gradient(circle at 30% 20%, rgba(var(--cor-destaque-rgb), .16), transparent 60%),
    var(--cor-escura);
  transition: border-color .25s ease, color .25s ease;
}

.camp-banner--convite:hover,
.camp-banner--convite:focus-visible {
  color: #fff;
  border-color: var(--cor-destaque);
}

.camp-banner__convite-icone {
  font-size: 1.6rem;
  color: var(--cor-destaque);
}

.camp-banner__convite-titulo {
  font-family: var(--font-heading);
  font-size: 1.15rem;
  letter-spacing: .02em;
  text-transform: uppercase;
}

.camp-banner__convite-texto {
  font-size: .82rem;
  opacity: .85;
}

.camp-banner--convite:hover .camp-banner__convite-texto .bi-arrow-right {
  transform: translateX(3px);
}

.camp-banner__convite-texto .bi-arrow-right {
  display: inline-block;
  transition: transform .2s ease;
}

/* Card destacado ao chegar pelo convite do banner */
.camp-cota.is-realce {
  animation: campRealce 2.4s ease;
}

@keyframes campRealce {
  0%, 100% { box-shadow: 0 0 0 0 rgba(var(--cor-destaque-rgb), 0); }
  15%, 60% { box-shadow: 0 0 0 5px rgba(var(--cor-destaque-rgb), .55); }
}

@media (prefers-reduced-motion: reduce) {
  .camp-cota.is-realce { animation: none; outline: 3px solid var(--cor-destaque); }
}

/* Carrossel dos rotativos */
.camp-carrossel {
  position: relative;
  height: 100%;
}

.camp-carrossel__slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity .5s ease;
  pointer-events: none;
}

.camp-carrossel__slide.is-ativo {
  opacity: 1;
  pointer-events: auto;
}

.camp-carrossel__controles {
  position: absolute;
  right: .75rem;
  bottom: .75rem;
  z-index: 3;
  display: flex;
  align-items: center;
  gap: .5rem;
}

.camp-carrossel__pontos {
  display: flex;
  gap: .3rem;
}

.camp-carrossel__ponto {
  width: 7px;
  height: 7px;
  border-radius: 999px;
  border: 0;
  padding: 0;
  background: rgba(255, 255, 255, .45);
  cursor: pointer;
  transition: all .2s ease;
}

.camp-carrossel__ponto.is-ativo {
  width: 18px;
  background: var(--cor-destaque);
}

.camp-carrossel__seta {
  width: 26px;
  height: 26px;
  border-radius: 999px;
  border: 0;
  display: grid;
  place-items: center;
  background: rgba(255, 255, 255, .18);
  color: #fff;
  cursor: pointer;
  transition: background .2s ease;
}

.camp-carrossel__seta:hover {
  background: rgba(255, 255, 255, .34);
}

/* ── Chamada da campanha ──────────────────────────────────────── */
.camp-chamada {
  padding: 2.5rem 0 1.5rem;
}

.camp-chamada__etiqueta {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .35rem .85rem;
  border-radius: 999px;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  background: rgba(var(--cor-destaque-rgb), .16);
  color: var(--cor-primaria);
  margin-bottom: 1rem;
}

.camp-chamada__titulo {
  font-family: var(--font-heading, inherit);
  font-size: clamp(1.9rem, 4vw, 2.9rem);
  font-weight: 800;
  line-height: 1.12;
  margin-bottom: .9rem;
}

.camp-chamada__descricao {
  font-size: 1.02rem;
  line-height: 1.65;
  color: rgba(var(--cor-texto-rgb), .78);
  max-width: 62ch;
  margin-bottom: 1.5rem;
}

.camp-chamada__acoes {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
}

/* ── Termômetro ───────────────────────────────────────────────── */
.camp-termometro {
  background: var(--cor-superficie);
  border: 1px solid rgba(var(--tinta-rgb), .10);
  border-radius: 20px;
  padding: 1.6rem;
  box-shadow: 0 18px 40px rgba(var(--cor-escura-rgb), .07);
}

.camp-termometro__topo {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 1rem;
}

.camp-termometro__rotulo {
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: rgba(var(--cor-texto-rgb), .55);
  margin-bottom: .2rem;
}

.camp-termometro__valor {
  font-size: clamp(1.6rem, 3vw, 2.1rem);
  font-weight: 800;
  line-height: 1;
}

.camp-termometro__selo {
  padding: .35rem .8rem;
  border-radius: 999px;
  font-size: .8rem;
  font-weight: 700;
  background: rgba(var(--cor-primaria-rgb), .12);
  color: var(--cor-primaria);
  white-space: nowrap;
}

.camp-barra {
  height: 12px;
  border-radius: 999px;
  background: rgba(var(--tinta-rgb), .09);
  overflow: hidden;
  margin-bottom: 1.25rem;
}

.camp-barra__preenchimento {
  height: 100%;
  border-radius: 999px;
  background: var(--gradiente-marca,
    linear-gradient(90deg, var(--cor-primaria), var(--cor-destaque)));
  transition: width .8s cubic-bezier(.4, 0, .2, 1);
}

.camp-termometro__numeros {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: .75rem;
}

.camp-numero {
  border: 1px solid rgba(var(--tinta-rgb), .10);
  border-radius: 14px;
  padding: .85rem;
  background: rgba(var(--tinta-rgb), .02);
}

.camp-numero__icone {
  width: 30px;
  height: 30px;
  border-radius: 9px;
  display: grid;
  place-items: center;
  background: rgba(var(--cor-primaria-rgb), .10);
  color: var(--cor-primaria);
  margin-bottom: .55rem;
  font-size: .85rem;
}

.camp-numero__rotulo {
  font-size: .66rem;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: rgba(var(--cor-texto-rgb), .52);
  margin-bottom: .15rem;
}

.camp-numero__valor {
  font-size: 1.02rem;
  font-weight: 800;
}

/* ── Cotas ────────────────────────────────────────────────────── */
.camp-cotas {
  padding: 3rem 0;
}

.camp-cotas__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 1.1rem;
  align-items: stretch;
}

.camp-cota {
  display: flex;
  flex-direction: column;
  background: var(--cor-superficie);
  border: 1px solid rgba(var(--tinta-rgb), .11);
  border-radius: 18px;
  padding: 1.35rem;
  position: relative;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.camp-cota:hover {
  transform: translateY(-4px);
  border-color: rgba(var(--cor-primaria-rgb), .35);
  box-shadow: 0 18px 38px rgba(var(--cor-escura-rgb), .10);
}

.camp-cota--destaque {
  border-color: var(--cor-destaque);
  box-shadow: 0 0 0 3px rgba(var(--cor-destaque-rgb), .16);
}

.camp-cota__etiquetas {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .45rem;
  align-self: stretch;
  margin-bottom: .75rem;
}

.camp-cota__etiqueta {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .28rem .65rem;
  border-radius: 999px;
  font-size: .64rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  background: rgba(var(--cor-primaria-rgb), .10);
  color: var(--cor-primaria);
  line-height: 1;
  white-space: nowrap;
}

.camp-cota--destaque .camp-cota__etiqueta {
  background: var(--cor-destaque);
  color: #fff;
}

.camp-cota__etiqueta--corporativo,
.camp-cota--destaque .camp-cota__etiqueta--corporativo {
  background: rgba(var(--cor-primaria-rgb), .10);
  color: var(--cor-primaria);
}

.camp-cota__etiqueta--formato,
.camp-cota--destaque .camp-cota__etiqueta--formato {
  background: var(--cor-destaque);
  color: #fff;
}

.camp-cota__etiqueta--formato i {
  color: inherit;
  font-size: .6rem;
}

.camp-cota__etiqueta--slideshow {
  gap: .2rem;
}

.camp-cota__nome {
  font-size: 1.05rem;
  font-weight: 800;
  margin-bottom: .35rem;
}

.camp-cota__descricao {
  font-size: .82rem;
  line-height: 1.5;
  color: rgba(var(--cor-texto-rgb), .62);
  margin-bottom: .9rem;
}

.camp-cota__imagem {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 12px;
  background: rgba(var(--tinta-rgb), .04);
  margin-bottom: .9rem;
}

.camp-cota__valor {
  font-size: 1.55rem;
  font-weight: 800;
  color: var(--cor-primaria);
  line-height: 1.1;
  margin-bottom: .9rem;
}

.camp-cota__valor--livre {
  font-size: 1.25rem;
}

.camp-cota__beneficios {
  list-style: none;
  padding: 0;
  margin: 0 0 1rem;
  display: flex;
  flex-direction: column;
  gap: .5rem;
  /* Empurra o botão para a base: sem isto, cards com quantidades
     diferentes de benefício terminam com o botão em alturas diferentes. */
  flex: 1 1 auto;
}

.camp-cota__beneficio {
  display: flex;
  gap: .45rem;
  font-size: .8rem;
  line-height: 1.45;
  color: rgba(var(--cor-texto-rgb), .78);
}

.camp-cota__beneficio i {
  color: var(--cor-primaria);
  font-size: .85rem;
  flex-shrink: 0;
  margin-top: .12rem;
}

.camp-cota__vagas {
  font-size: .72rem;
  font-weight: 700;
  color: #b45309;
  background: rgba(245, 158, 11, .12);
  padding: .3rem .6rem;
  border-radius: 8px;
  margin-bottom: .75rem;
  text-align: center;
}

.camp-cota__vagas--esgotado {
  color: #b91c1c;
  background: rgba(239, 68, 68, .12);
}

/* Atalhos de valor do apoio livre */
.camp-livre__atalhos {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  margin-bottom: .6rem;
}

.camp-livre__atalho {
  border: 1px solid rgba(var(--tinta-rgb), .18);
  background: transparent;
  color: inherit;
  border-radius: 10px;
  padding: .35rem .6rem;
  font-size: .78rem;
  font-weight: 700;
  cursor: pointer;
  transition: all .18s ease;
}

.camp-livre__atalho:hover,
.camp-livre__atalho.is-ativo {
  border-color: var(--cor-primaria);
  background: rgba(var(--cor-primaria-rgb), .10);
  color: var(--cor-primaria);
}

.camp-livre__campo {
  width: 100%;
  border: 1px solid rgba(var(--tinta-rgb), .18);
  border-radius: 10px;
  padding: .55rem .7rem;
  font-size: .95rem;
  font-weight: 700;
  margin-bottom: .75rem;
  background: var(--cor-fundo);
  color: inherit;
}

.camp-livre__campo:focus {
  outline: 0;
  border-color: var(--cor-primaria);
  box-shadow: 0 0 0 3px rgba(var(--cor-primaria-rgb), .14);
}

/* ── Abas ─────────────────────────────────────────────────────── */
.camp-abas {
  padding: 3rem 0 4rem;
}

.camp-abas__nav {
  display: flex;
  gap: .4rem;
  flex-wrap: wrap;
  border-bottom: 1px solid rgba(var(--tinta-rgb), .12);
  margin-bottom: 2rem;
}

.camp-abas__botao {
  border: 0;
  background: transparent;
  color: rgba(var(--cor-texto-rgb), .6);
  font-size: .92rem;
  font-weight: 700;
  padding: .8rem 1.15rem;
  cursor: pointer;
  position: relative;
  border-radius: 10px 10px 0 0;
  transition: color .2s ease, background .2s ease;
}

.camp-abas__botao:hover {
  color: var(--cor-primaria);
  background: rgba(var(--cor-primaria-rgb), .05);
}

.camp-abas__botao.is-ativa {
  color: var(--cor-primaria);
}

/* Sublinhado da aba ativa: `::after` em vez de `border-bottom` para o
   traço cobrir a borda do container sem deslocar o texto em 1px. */
.camp-abas__botao.is-ativa::after {
  content: '';
  position: absolute;
  left: 1.15rem;
  right: 1.15rem;
  bottom: -1px;
  height: 3px;
  border-radius: 3px 3px 0 0;
  background: var(--cor-primaria);
}

.camp-abas__painel {
  display: none;
  animation: campFade .3s ease;
}

.camp-abas__painel.is-ativo {
  display: block;
}

@keyframes campFade {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: none; }
}

.camp-sobre {
  font-size: 1rem;
  line-height: 1.75;
  color: rgba(var(--cor-texto-rgb), .82);
  max-width: 78ch;
}

.camp-sobre p { margin-bottom: 1.1rem; }
.camp-sobre h2,
.camp-sobre h3 { font-weight: 800; margin: 1.6rem 0 .7rem; }
.camp-sobre ul,
.camp-sobre ol { margin: 0 0 1.1rem 1.2rem; }
.camp-sobre li { margin-bottom: .4rem; }

/* Lista pública de apoiadores */
.camp-lista {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: .75rem;
}

.camp-lista__item {
  display: flex;
  align-items: center;
  gap: .85rem;
  background: var(--cor-superficie);
  border: 1px solid rgba(var(--tinta-rgb), .10);
  border-radius: 14px;
  padding: .85rem 1rem;
}

.camp-lista__inicial {
  width: 38px;
  height: 38px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  font-weight: 800;
  font-size: .9rem;
  flex-shrink: 0;
  background: rgba(var(--cor-primaria-rgb), .12);
  color: var(--cor-primaria);
}

.camp-lista__nome {
  font-weight: 700;
  font-size: .9rem;
  line-height: 1.2;
}

.camp-lista__cota {
  font-size: .75rem;
  color: rgba(var(--cor-texto-rgb), .55);
}

.camp-lista__cpf {
  font-size: .72rem;
  font-variant-numeric: tabular-nums;
  letter-spacing: .02em;
  color: rgba(var(--cor-texto-rgb), .62);
}

/* Aviso de anonimato abaixo dos cards de cota */
.camp-cotas__nota {
  display: flex;
  align-items: center;
  gap: .5rem;
  margin: 1.25rem 0 0;
  font-size: .86rem;
  color: rgba(var(--cor-texto-rgb), .7);
}

.camp-lista__valor {
  margin-left: auto;
  font-weight: 800;
  font-size: .88rem;
  color: var(--cor-primaria);
  white-space: nowrap;
}

/* Cards de "Outras informações" */
.camp-infos {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1rem;
}

.camp-info {
  background: var(--cor-superficie);
  border: 1px solid rgba(var(--tinta-rgb), .10);
  border-radius: 16px;
  padding: 1.5rem;
}

.camp-info__icone {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  background: rgba(var(--cor-primaria-rgb), .10);
  color: var(--cor-primaria);
  font-size: 1.15rem;
  margin-bottom: 1rem;
}

.camp-info__titulo {
  font-size: 1rem;
  font-weight: 800;
  margin-bottom: .5rem;
}

.camp-info__texto {
  font-size: .87rem;
  line-height: 1.6;
  color: rgba(var(--cor-texto-rgb), .68);
  margin: 0;
}

/* ── Cards da vitrine ─────────────────────────────────────────── */
.camp-vitrine {
  padding: 3rem 0 4rem;
}

.camp-vitrine__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 1.5rem;
}

.camp-card {
  display: flex;
  flex-direction: column;
  background: var(--cor-superficie);
  border: 1px solid rgba(var(--tinta-rgb), .10);
  border-radius: 18px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: transform .25s ease, box-shadow .25s ease;
}

.camp-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 20px 44px rgba(var(--cor-escura-rgb), .12);
  color: inherit;
}

.camp-card__capa {
  aspect-ratio: 16 / 9;
  width: 100%;
  object-fit: cover;
  background: rgba(var(--tinta-rgb), .05);
}

.camp-card__capa--vazia {
  display: grid;
  place-items: center;
  color: rgba(var(--cor-texto-rgb), .25);
  font-size: 2rem;
}

.camp-card__corpo {
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
}

.camp-card__titulo {
  font-size: 1.1rem;
  font-weight: 800;
  line-height: 1.25;
  margin-bottom: .45rem;
}

.camp-card__descricao {
  font-size: .85rem;
  line-height: 1.55;
  color: rgba(var(--cor-texto-rgb), .62);
  margin-bottom: 1rem;
  flex: 1 1 auto;
}

.camp-card__rodape {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
  font-size: .8rem;
  margin-top: .75rem;
}

.camp-card__pct {
  font-weight: 800;
  color: var(--cor-primaria);
}

.camp-card__dias {
  color: rgba(var(--cor-texto-rgb), .55);
}

.camp-selo {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  padding: .25rem .6rem;
  border-radius: 999px;
  font-size: .68rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .05em;
}

.camp-selo--encerrada {
  background: rgba(var(--tinta-rgb), .10);
  color: rgba(var(--cor-texto-rgb), .6);
}

.camp-selo--ativa {
  background: rgba(16, 185, 129, .14);
  color: #047857;
}

/* ── Estados de contribuição (semânticos, não de marca) ───────── */
.camp-status {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .3rem .7rem;
  border-radius: 999px;
  font-size: .75rem;
  font-weight: 700;
}

.camp-status--aprovada  { background: rgba(16, 185, 129, .14); color: #047857; }
.camp-status--pendente  { background: rgba(245, 158, 11, .16); color: #b45309; }
.camp-status--recusada  { background: rgba(239, 68, 68, .14);  color: #b91c1c; }
.camp-status--cancelada,
.camp-status--expirada  { background: rgba(100, 116, 139, .14); color: #475569; }
.camp-status--estornada { background: rgba(139, 92, 246, .14); color: #6d28d9; }

/* ── Vazio ────────────────────────────────────────────────────── */
.camp-vazio {
  text-align: center;
  padding: 4rem 1rem;
  color: rgba(var(--cor-texto-rgb), .55);
}

.camp-vazio i {
  font-size: 2.6rem;
  color: rgba(var(--cor-texto-rgb), .22);
  display: block;
  margin-bottom: .9rem;
}

/* ── Responsivo ───────────────────────────────────────────────── */
@media (max-width: 991px) {
  .camp-apoiadores__grid { grid-template-columns: 1fr; }
  .camp-termometro__numeros { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 767px) {
  .camp-chamada { padding: 1.75rem 0 1.25rem; }
  .camp-cotas { padding: 2rem 0; }
  .camp-abas { padding: 2rem 0 3rem; }
}

@media (max-width: 575px) {
  .camp-banner__tag,
  .camp-banner__formato {
    top: .6rem;
    padding: .25rem .55rem;
    font-size: .58rem;
  }

  .camp-banner__tag { left: .6rem; }
  .camp-banner__formato { right: .6rem; }

  .camp-termometro { padding: 1.15rem; }
  .camp-termometro__numeros { grid-template-columns: 1fr 1fr; gap: .5rem; }
  .camp-chamada__acoes .btn-clube { width: 100%; justify-content: center; }
  .camp-abas__nav { gap: 0; }
  .camp-abas__botao { flex: 1 1 auto; padding: .7rem .5rem; font-size: .82rem; }
  .camp-abas__botao.is-ativa::after { left: .5rem; right: .5rem; }

  /* O carrossel e o banner master ficam muito altos em 16:7 numa tela
     estreita; 16:9 aproxima da proporção das artes que as empresas mandam. */
  .camp-banner { aspect-ratio: 16 / 9; }

  .camp-lista__item { padding: .75rem .85rem; }
  .camp-lista__valor { font-size: .82rem; }
}
