/*
 * Publicidade de parceiros: banners Topo e Lateral (docs/publicidade.md).
 *
 * O espaço fica reservado antes de o banner chegar (aspect-ratio na caixa),
 * para a página não saltar.
 */

.rv-pub {
  display: block;
  width: 100%;
  margin: 0 auto;
  text-align: center;
}
.rv-pub[hidden],
.rv-pub-envolver[hidden] {
  display: none !important;
}

.rv-pub .rv-pub__rotulo {
  margin: 0 0 6px;
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 10px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #8a8a8a;
  text-align: center;
}

.rv-pub .rv-pub__caixa {
  position: relative;
  width: 100%;
  margin: 0 auto;
  overflow: hidden;
  background: #f3f3f1;
}
/* Os banners empilhados na caixa; só o activo se vê (e se clica). Troca com fade. */
.rv-pub .rv-pub__slide {
  position: absolute;
  inset: 0;
  display: block;
  opacity: 0;
  visibility: hidden;
  text-decoration: none;
  transition: opacity 0.6s ease, visibility 0s linear 0.6s;
}
.rv-pub .rv-pub__slide.is-activo {
  z-index: 1;
  opacity: 1;
  visibility: visible;
  transition: opacity 0.6s ease, visibility 0s linear 0s;
}
.rv-pub picture {
  display: block;
  width: 100%;
  height: 100%;
}
@media (prefers-reduced-motion: reduce) {
  .rv-pub .rv-pub__slide,
  .rv-pub .rv-pub__slide.is-activo {
    transition: none;
  }
}
/* Proporção errada corta em vez de deformar; as regras de imagens do tema não entram aqui */
.rv-pub .rv-pub__caixa img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  margin: 0;
  object-fit: cover;
  border-radius: 0;
}

.rv-pub--topo .rv-pub__caixa {
  max-width: 1200px;
  aspect-ratio: 1200 / 150;
}
.rv-pub--lateral .rv-pub__caixa {
  max-width: 350px;
  aspect-ratio: 350 / 450;
}

/* Os pontos do carrossel: pequenos, por baixo, e cada um leva a um banner */
.rv-pub .rv-pub__pontos {
  display: none;
}
.rv-pub--carrossel .rv-pub__pontos {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0;
  min-height: 18px;
  margin: 4px auto 0;
}
.rv-pub .rv-pub__ponto {
  box-sizing: border-box;
  width: 18px;
  min-width: 0;
  height: 18px;
  margin: 0;
  padding: 5px;
  border: 0;
  border-radius: 50%;
  background: #cfcfca;
  background-clip: content-box;
  box-shadow: none;
  line-height: 0;
  cursor: pointer;
  transition: background-color 0.2s;
}
.rv-pub .rv-pub__ponto:hover,
.rv-pub .rv-pub__ponto:focus-visible {
  background-color: #8d8d86;
}
.rv-pub .rv-pub__ponto[aria-pressed="true"] {
  background-color: #4a4a45;
}
.rv-pub .rv-pub__ponto:focus-visible {
  outline: 2px solid #4a4a45;
  outline-offset: 0;
}

@media (max-width: 767px) {
  .rv-pub--topo .rv-pub__caixa {
    max-width: 320px;
    aspect-ratio: 320 / 100;
  }
  .rv-pub--sem-telemovel {
    display: none !important;
  }
}

/* ── Faixa do Topo entre blocos (homepage e secções) ─────────────────── */
.rv-pub-faixa {
  padding: 34px 20px 10px;
}
@media (max-width: 767px) {
  .rv-pub-faixa {
    padding: 22px 16px 4px;
  }
}

/* Na homepage, logo a seguir ao hero: mais ar por cima, para não colar ao arco */
.rv-pub-faixa--hero {
  padding: 56px 20px 18px;
}
@media (max-width: 767px) {
  .rv-pub-faixa--hero {
    padding: 28px 16px 8px;
  }
}

/* ── Lateral 1 das secções: coluna direita dos destaques; no telemóvel desce para o meio da grelha seguinte ── */
.card-column-wrapper-list > .rv-pub--lateral {
  margin: 0 auto;
}
/* No telemóvel não se desenha na coluna (ficava logo abaixo do destaque e depois
   saltava): só aparece quando o script o põe no meio da grelha, fora do ecrã */
@media (max-width: 767px) {
  .card-column-wrapper-list > .rv-pub[data-rv-pub-mover] {
    display: none;
  }
}
.row > .rv-pub.rv-pub--mudado {
  flex: 0 0 100%;
  max-width: 100%;
  margin: 10px auto 30px;
  padding: 0 12px;
}

/* ── Lateral 1 da homepage: seis cartões em duas colunas e o banner ao lado ── */
@media (min-width: 992px) {
  /* acompanha a leitura das seis notícias (a coluna tem a altura da grelha) */
  .rv-pub-coluna--l1 > .rv-pub {
    position: sticky;
    top: 110px;
  }
}
@media (max-width: 767px) {
  /* no telemóvel só aparece quando o script o põe depois do 3.º cartão */
  .rv-pub-coluna--l1 > .rv-pub {
    display: none;
  }
  .rv-pub-coluna--l1:not(:has(.rv-pub)) {
    margin: 0;
  }
}

/* ── Lateral 2 da homepage: 4 cartões e o banner ao lado ─────────────── */
.rv-pub-grelha > .row > .col-md-6 {
  margin-bottom: 24px;
}
@media (max-width: 991px) {
  .rv-pub-coluna {
    margin: 10px 0 30px;
  }
}

/* As seis notícias ao lado do Lateral 1: o mesmo espaço entre filas e entre
   colunas (24 px; 15 px no telemóvel, como a coluna dos destaques), e os dois
   cartões de cada fila com a mesma altura */
section.news-block-medium .rv-pub-grelha--l1 > .row {
  row-gap: 24px;
}
section.news-block-medium .rv-pub-grelha--l1 > .row > .col-md-6 {
  display: flex;
  margin-bottom: 0;
}
section.news-block-medium .rv-pub-grelha--l1 > .row > .col-md-6 > .common-news-card {
  width: 100%;
  margin-bottom: 0;
}
/* Entre 992 e 1439 px os cartões ficam estreitos (a coluna do banner come um
   terço) e o título saía do cartão: a fotografia e o título encolhem com o ecrã */
@media (min-width: 992px) and (max-width: 1439px) {
  section.news-block-medium .rv-pub-grelha--l1 .common-news-card.small-news-card-wrap {
    column-gap: 12px;
  }
  section.news-block-medium .rv-pub-grelha--l1 .common-news-card.small-news-card-wrap .img {
    min-width: clamp(90px, 9.7vw, 140px);
    max-width: clamp(90px, 9.7vw, 140px);
  }
  section.news-block-medium .rv-pub-grelha--l1 .common-news-card.small-news-card-wrap .img img {
    max-width: 100%;
    height: clamp(90px, 9.7vw, 140px);
    min-height: 0;
  }
  section.news-block-medium .rv-pub-grelha--l1 .common-news-card.small-news-card-wrap .content .card-title h5 {
    font-size: 16px;
    line-height: 19px;
  }
}
@media (max-width: 767px) {
  section.news-block-medium .rv-pub-grelha--l1 > .row {
    row-gap: 15px;
  }
  section.news-block-medium .rv-pub-grelha--l1 > .row > .rv-pub--mudado {
    margin: 16px auto;
  }
}

/* ── Artigos do arquivo: coluna à direita a partir de 1200 px ──────────── */
.arquivo__pub-topo {
  margin-bottom: 28px;
}
.arquivo__cabecalho .arquivo__pub-topo {
  margin-bottom: 36px;
}
@media (min-width: 1200px) {
  .arquivo--com-lateral .arquivo__medida {
    max-width: 1200px;
  }
  /* A secção da imagem tem 90 px de margem dos lados; sem isto, a 1200-1300 px a
     imagem e o Topo ficavam desalinhados do título e do texto */
  .arquivo--com-lateral .arquivo__hero {
    padding-left: 0;
    padding-right: 0;
  }
  .arquivo--com-lateral .arquivo__colunas {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 350px;
    column-gap: 56px;
    align-items: start;
  }
  .arquivo__lateral {
    position: sticky;
    top: 110px;
  }
}
@media (max-width: 1199px) {
  .arquivo__lateral {
    display: none;
  }
}
/* Dentro do texto (abaixo de 1200 px, e nos artigos em blocos) */
.rv-pub-ancora {
  margin: 34px auto;
  clear: both;
}
.rv-pub-ancora:empty {
  display: none;
}
/* Enquanto não muda de sítio, o lateral dos artigos em blocos não se vê */
.rv-pub-guarda {
  display: none;
}

/* ── Artigos em blocos (17/9/2026): nunca dentro de uma coluna ──────────
 * Entre dois blocos, sozinho e centrado; ou como mais uma casa na primeira
 * galeria de 2 ou 3 fotos (parceiros-rv.js, ancoraBlocos). Nessa
 * galeria as casas deixam a altura fixa do tema e ficam todas com a proporção
 * do banner (350×450 + rótulo e pontos): o banner ocupa a largura da casa e as
 * fotos ficam à mesma altura.
 */
.rv-pub-ancora--blocos {
  margin: 10px auto 60px;
  padding: 0 16px;
}
section.block-gallery .rv-pub-ancora--galeria {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 0 1.5rem;
}
@media (min-width: 576px) {
  section.block-gallery .row.rv-pub-na-galeria .img-wrap {
    height: auto;
    aspect-ratio: 350 / 496;
  }
}
@media (max-width: 575px) {
  section.block-gallery .rv-pub-ancora--galeria {
    display: block;
    height: auto;
  }
}
