/* DDAnime r14-r40 — ubicación individual de anuncios y convivencia correcta con el footer. */

/* El contenedor de agrupación no introduce espacio cuando sólo contiene elementos fixed/flotantes. */
.dd-announcement-zone.is-main{display:contents}
.dd-announcement-zone.is-after_footer{display:block;width:100%}

/* Nueva ubicación estática: el aviso vive después del footer y nunca lo cubre. */
.dd-announcement-stack.is-after-footer{
  position:relative;
  z-index:1;
  width:100%;
  display:grid;
  gap:0;
  padding:0;
  border:0;
  border-top:1px solid var(--dd-border);
  background:var(--dd-surface);
}
.dd-announcement-stack.is-after-footer .dd-announcement{
  width:100%;
  max-width:none;
  margin:0;
  min-height:54px;
  border-radius:0;
  border-left:0;
  border-right:0;
  border-bottom:0;
  padding-left:max(50px,calc((100vw - 1600px)/2 + 50px));
  padding-right:max(50px,calc((100vw - 1600px)/2 + 50px));
  box-shadow:none;
}
.dd-announcement-stack.is-after-footer .dd-announcement::before{
  left:max(14px,calc((100vw - 1600px)/2 + 14px));
}
.dd-announcement-stack.is-after-footer .dd-announcement>button{
  right:max(12px,calc((100vw - 1600px)/2 + 12px));
}

/* Si se mantiene la barra fixed inferior, reservamos exactamente su altura para que el footer no quede debajo. */
.dd-app-frame.dd-r40-reserve-bottom{
  padding-bottom:calc(var(--dd-r40-announcement-reserve,0px) + env(safe-area-inset-bottom));
}

/* En edición cada anuncio gana un selector de ubicación sin comprimir los controles existentes. */
body.dd-r32-announcements .dd-r32-announcement-existing .dd-admin-inline-fields{
  grid-template-columns:repeat(auto-fit,minmax(155px,1fr))!important;
}

@media(max-width:760px){
  .dd-announcement-stack.is-after-footer .dd-announcement{
    min-height:52px;
    padding-left:44px;
    padding-right:42px;
  }
  .dd-announcement-stack.is-after-footer .dd-announcement::before{left:12px}
  .dd-announcement-stack.is-after-footer .dd-announcement>button{right:8px}
}
