.ad-slot {
  margin: 0 0 18px;
  text-align: center;
}
.ad-slot[hidden],
.ad-slot:empty { display: none !important; }
.ad-label {
  display: block;
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #8a847a;
  margin-bottom: 6px;
  font-weight: 700;
}
.ad-unit {
  display: block;
  max-width: 100%;
  overflow: hidden;
  background: #f6f3ee;
  border: 1px solid #ece7de;
}
/* Vários anúncios na mesma posição: lado a lado no desktop (um do lado do
   outro) e empilhados no mobile (um embaixo do outro).
   O min-width de 300px (limitado à largura do slot) faz o item recusar
   encolhimento: em slots estreitos como a sidebar de 300px não há espaço para
   dois lado a lado, então o segundo quebra para a linha seguinte em vez de
   espremer o banner. */
.ad-slot__list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: flex-start;
  gap: 14px;
}
.ad-slot__list > * {
  flex: 1 1 300px;
  min-width: min(100%, 300px);
  max-width: 100%;
}
.ad-unit img {
  display: block;
  width: 100%;
  height: auto;
  margin: 0 auto;
}
/* Criativo em imagem: o banner mantém o formato da posição e a imagem
   destacada é ajustada ao espaço (corte central), em vez de o slot crescer
   na proporção da foto. */
.ad-unit--image img {
  height: 100%;
  object-fit: cover;
}
.ad-slot--ad_header,
.ad-slot--ad_home_top,
.ad-slot--ad_home_middle,
.ad-slot--ad_footer,
.ad-slot--ad_article_top,
.ad-slot--ad_article_bottom {
  max-width: 970px;
  margin-inline: auto;
}
/* Leaders: 970x90 / 728x90 */
.ad-slot--ad_header .ad-unit--image,
.ad-slot--ad_home_top .ad-unit--image,
.ad-slot--ad_home_middle .ad-unit--image,
.ad-slot--ad_footer .ad-unit--image,
.ad-slot--ad_article_top .ad-unit--image,
.ad-slot--ad_article_bottom .ad-unit--image {
  height: 90px;
}
/* Sidebar: posição única AD_SIDEBAR_300x250 (uma caixa por chamada) */
.ad-slot--ad_sidebar_300x250 {
  width: 300px;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
}
.ad-slot--ad_sidebar_300x250 .ad-unit { min-height: 250px; }
.ad-slot--ad_sidebar_300x250 .ad-unit--image { height: 250px; }
/* Retângulo do meio do texto: 300x250 */
.ad-slot--ad_article_middle {
  width: 300px;
  max-width: 100%;
  margin-inline: auto;
}
.ad-slot--ad_article_middle .ad-unit--image { height: 250px; }
/* Coluna de destaques da home (fato-hero-side): entra no lugar da notícia do
   meio e acompanha a largura da coluna (322px no desktop, 364px no mobile).
   A altura segue a proporção do criativo (366x135) em vez de um tamanho fixo,
   para nunca cortar a arte — no desktop o bloco fica com a mesma altura de uma
   linha de notícia (rótulo + 119 + 18px = 165px, como as linhas vizinhas). */
.ad-slot--ad_hero_side {
  width: 100%;
  max-width: none;
  margin: 0;
}
.ad-slot--ad_hero_side .ad-unit,
.ad-slot--ad_hero_side .ad-unit--image { height: auto; }
.ad-slot--ad_hero_side .ad-unit--image img {
  width: 100%;
  height: auto;
  object-fit: contain;
}
.ad-slot--ad_mobile_top,
.ad-slot--ad_mobile_feed { display: none; }
/* Mobile: 320x100 */
.ad-slot--ad_mobile_top .ad-unit--image,
.ad-slot--ad_mobile_feed .ad-unit--image { height: 100px; }

@media (max-width: 980px) {
  .ad-slot--ad_sidebar_300x250 { display: none !important; }
  .ad-slot--ad_mobile_top,
  .ad-slot--ad_mobile_feed { display: block; }
  .ad-slot { max-width: 100%; }
  /* Mobile: um embaixo do outro, ocupando a largura toda. */
  .ad-slot__list {
    flex-direction: column;
    align-items: stretch;
  }
  .ad-slot__list > * {
    flex: 0 0 auto;
    min-width: 0;
    width: 100%;
  }
}
