#promo-especial {
  display: none;
  position: fixed;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 99999;
  background: #02104a;
  pointer-events: none;
}
#promo-especial.on {
  display: block;
}
#promo-especial img {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  object-fit: cover;
}
#promo-especial .promo-fundo {
  display: none;
}
/* Celular em pé: imagem inteira (sem cortar) com fundo desfocado ao redor. TV e telas deitadas continuam em tela cheia. */
@media (orientation: portrait) {
  #promo-especial .promo-fundo {
    display: block;
    -webkit-filter: blur(18px) brightness(0.8);
    filter: blur(18px) brightness(0.8);
    transform: scale(1.1);
  }
  #promo-especial img.promo-frente {
    top: 50%;
    height: auto;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    object-fit: contain;
  }
}
/* Online: dentro da área das cartelas */
#promo-especial.area {
  border-radius: 10px;
  overflow: hidden;
}
#promo-especial.area .promo-fundo {
  display: block;
  -webkit-filter: blur(14px) brightness(0.8);
  filter: blur(14px) brightness(0.8);
  transform: scale(1.1);
}
#promo-especial.area img.promo-frente {
  top: 0;
  height: 100%;
  -webkit-transform: none;
  transform: none;
  object-fit: contain;
}
/* Animação (só nas propagandas com anim: true): entra girando, pulsa e sai girando */
#promo-especial[data-anim="entra"] {
  -webkit-animation: promo-entra 0.9s ease-out both;
  animation: promo-entra 0.9s ease-out both;
}
#promo-especial[data-anim="pulsa"] {
  -webkit-animation: promo-pulsa 1s ease-in-out infinite;
  animation: promo-pulsa 1s ease-in-out infinite;
}
#promo-especial[data-anim="sai"] {
  -webkit-animation: promo-sai 0.9s ease-in both;
  animation: promo-sai 0.9s ease-in both;
}
@-webkit-keyframes promo-entra {
  from { -webkit-transform: rotate(-360deg) scale(0.1); opacity: 0; }
  to { -webkit-transform: rotate(0deg) scale(1); opacity: 1; }
}
@keyframes promo-entra {
  from { transform: rotate(-360deg) scale(0.1); opacity: 0; }
  to { transform: rotate(0deg) scale(1); opacity: 1; }
}
@-webkit-keyframes promo-pulsa {
  0%, 100% { -webkit-transform: scale(1); }
  50% { -webkit-transform: scale(0.94); }
}
@keyframes promo-pulsa {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(0.94); }
}
@-webkit-keyframes promo-sai {
  from { -webkit-transform: rotate(0deg) scale(1); opacity: 1; }
  to { -webkit-transform: rotate(360deg) scale(0.1); opacity: 0; }
}
@keyframes promo-sai {
  from { transform: rotate(0deg) scale(1); opacity: 1; }
  to { transform: rotate(360deg) scale(0.1); opacity: 0; }
}
/* Propagandas animadas: imagem sempre inteira (sem cortar em cima/embaixo), com fundo desfocado nas sobras */
#promo-especial[data-anim]:not([data-anim=""]) .promo-fundo {
  display: block;
  -webkit-filter: blur(18px) brightness(0.8);
  filter: blur(18px) brightness(0.8);
}
#promo-especial[data-anim]:not([data-anim=""]) img.promo-frente {
  object-fit: contain;
}
