/* ======================================================================
   BANNERS DO TEMA — CENTRALIZAÇÃO E RESPONSIVIDADE
   Aplicado a single, arquivos/categorias/tags, busca e banner do cabeçalho.
   ====================================================================== */

.ad-slot-leaderboard,
.ad-slot-inline,
.ad-slot-sidebar,
.banner-topo,
.banner-single,
.sidebar-ad-top,
.ad-in-content {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}

.ad-slot-leaderboard,
.ad-slot-inline,
.ad-slot-sidebar,
.banner-topo,
.banner-single,
.sidebar-ad-top {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

/* O shortcode do CS Banner usa um wrapper próprio. Impede largura/posição
   herdadas do tema ou do construtor de páginas de deslocarem o banner. */
.ad-slot-leaderboard .csites-banner-container,
.ad-slot-inline .csites-banner-container,
.ad-slot-sidebar .csites-banner-container,
.banner-topo .csites-banner-container,
.banner-single .csites-banner-container,
.sidebar-ad-top .csites-banner-container,
.ad-in-content .csites-banner-container {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-left: auto !important;
    margin-right: auto !important;
    left: auto !important;
    right: auto !important;
}

.ad-slot-leaderboard .csites-banner-slider,
.ad-slot-inline .csites-banner-slider,
.ad-slot-sidebar .csites-banner-slider,
.banner-topo .csites-banner-slider,
.banner-single .csites-banner-slider,
.sidebar-ad-top .csites-banner-slider,
.ad-in-content .csites-banner-slider {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    justify-content: center !important;
    align-items: center !important;
}

.ad-slot-leaderboard .csites-banner-item,
.ad-slot-inline .csites-banner-item,
.ad-slot-sidebar .csites-banner-item,
.banner-topo .csites-banner-item,
.banner-single .csites-banner-item,
.sidebar-ad-top .csites-banner-item,
.ad-in-content .csites-banner-item {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-left: auto !important;
    margin-right: auto !important;
    float: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
}

.ad-slot-leaderboard .csites-banner-item > a,
.ad-slot-inline .csites-banner-item > a,
.ad-slot-sidebar .csites-banner-item > a,
.banner-topo .csites-banner-item > a,
.banner-single .csites-banner-item > a,
.sidebar-ad-top .csites-banner-item > a,
.ad-in-content .csites-banner-item > a {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    float: none !important;
}

.ad-slot-leaderboard img,
.ad-slot-inline img,
.ad-slot-sidebar img,
.banner-topo img,
.banner-single img,
.sidebar-ad-top img,
.ad-in-content img,
.ad-slot-leaderboard picture,
.ad-slot-inline picture,
.ad-slot-sidebar picture,
.banner-topo picture,
.banner-single picture,
.sidebar-ad-top picture,
.ad-in-content picture {
    display: block;
    box-sizing: border-box;
    width: auto;
    max-width: 100% !important;
    height: auto !important;
    margin-left: auto !important;
    margin-right: auto !important;
    float: none !important;
}

.ad-slot-leaderboard iframe,
.ad-slot-inline iframe,
.ad-slot-sidebar iframe,
.banner-topo iframe,
.banner-single iframe,
.sidebar-ad-top iframe,
.ad-in-content iframe,
.ad-slot-leaderboard ins.adsbygoogle,
.ad-slot-inline ins.adsbygoogle,
.ad-slot-sidebar ins.adsbygoogle,
.banner-topo ins.adsbygoogle,
.banner-single ins.adsbygoogle,
.sidebar-ad-top ins.adsbygoogle,
.ad-in-content ins.adsbygoogle,
.ad-slot-leaderboard .csites-banner-adsense,
.ad-slot-inline .csites-banner-adsense,
.ad-slot-sidebar .csites-banner-adsense,
.banner-topo .csites-banner-adsense,
.banner-single .csites-banner-adsense,
.sidebar-ad-top .csites-banner-adsense,
.ad-in-content .csites-banner-adsense {
    box-sizing: border-box;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.ad-in-content > .ad-in-content-label {
    align-self: stretch;
    width: 100%;
}

/* Banner do topo: espaço reservado sem impor uma altura fixa ao anúncio. */
.banner-topo {
    margin-top: 10px;
    margin-bottom: 14px;
    padding: 6px 12px;
    overflow: visible;
}

@media (max-width: 768px) {
    .ad-slot-leaderboard,
    .ad-slot-inline,
    .ad-slot-sidebar,
    .banner-single,
    .sidebar-ad-top,
    .ad-in-content {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin-left: auto !important;
        margin-right: auto !important;
        box-sizing: border-box !important;
        text-align: center !important;
    }

    .ad-slot-leaderboard .csites-banner-container,
    .ad-slot-inline .csites-banner-container,
    .ad-slot-sidebar .csites-banner-container,
    .banner-single .csites-banner-container,
    .sidebar-ad-top .csites-banner-container,
    .ad-in-content .csites-banner-container {
        width: 100% !important;
        max-width: 100% !important;
        padding: 0 !important;
    }

    /* O banner do cabeçalho ocupa a largura disponível e mantém proporção.
       Imagens são limitadas em altura; anúncios AdSense não são cortados. */
    .banner-topo {
        display: flex !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        min-height: 90px !important;
        height: auto !important;
        max-height: none !important;
        margin: 8px auto 12px !important;
        padding: 6px 10px !important;
        align-items: center !important;
        justify-content: center !important;
        overflow: visible !important;
        box-sizing: border-box !important;
    }

    .banner-topo .csites-banner-container,
    .banner-topo .csites-banner-slider,
    .banner-topo .csites-banner-item {
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
    }

    .banner-topo .csites-banner-image,
    .banner-topo .csites-banner-item img {
        width: auto !important;
        max-width: 100% !important;
        max-height: 140px !important;
        height: auto !important;
        object-fit: contain !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    .banner-topo .csites-banner-adsense,
    .banner-topo ins.adsbygoogle,
    .banner-topo iframe {
        max-width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    .ad-slot-leaderboard,
    .ad-slot-inline,
    .ad-slot-sidebar {
        min-height: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        overflow-x: clip !important;
    }
}

@media (max-width: 480px) {
    .banner-topo {
        min-height: 80px !important;
        padding: 4px 8px !important;
    }

    .banner-topo .csites-banner-image,
    .banner-topo .csites-banner-item img {
        max-height: 120px !important;
    }
}

/* ======================================================================
   CENTRALIZAÇÃO DENTRO DA COLUNA (desktop, tablet e mobile)
   Todos os banners ficam centralizados na largura da PRÓPRIA coluna em que
   estão (conteúdo ou lateral), em single, arquivo, categoria, tag, busca,
   cabeçalho e rodapé. Nada depende da largura da tela (sem 100vw/translate).
   ====================================================================== */

/* Colunas do grid podem encolher; evita que um banner largo alargue a coluna
   e empurre o banner para fora do centro. */
.layout-grid > .content-area,
.layout-grid > .content-post,
.layout-grid > .sidebar-area,
.single-layout .sidebar-area {
    min-width: 0;
}

/* Lateral: cada bloco de publicidade ocupa 100% da coluna e centraliza o conteúdo. */
.sidebar-area > .banner-single,
.sidebar-area > .sidebar-ad-top,
.sidebar-area > .ad-slot-sidebar {
    align-self: stretch;
    width: 100%;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: 0;
    padding-right: 0;
    left: auto;
    right: auto;
    transform: none;
    overflow-x: clip;
}

/* Sem margens laterais negativas nem deslocamentos nas imagens dos banners. */
.sidebar-ad-top img,
.sidebar-ad-top iframe,
.sidebar-ad-top ins,
.banner-single img,
.banner-single iframe,
.banner-single ins {
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Banners no meio do conteúdo (arquivo/busca/single): centralizados na coluna. */
.archive-posts-grid > .ad-slot-inline,
.content-area > .ad-slot-leaderboard,
.content-area > .ad-slot-inline,
.content-post .ad-in-content {
    justify-self: center;
    align-self: center;
}

/* Banner flutuante do rodapé. */
.banner-csites__content {
    justify-content: center;
    align-items: center;
    text-align: center;
}

.banner-csites__content .csites-banner-container,
.banner-csites__content .csites-banner-slider,
.banner-csites__content .csites-banner-item,
.banner-csites__content .csites-banner-item > a {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-left: auto;
    margin-right: auto;
    max-width: 100%;
}

/* Banner do topo: centralizado dentro do .container. */
.container > .banner-topo {
    margin-left: auto;
    margin-right: auto;
}

@media screen and (max-width: 1024px) {
    /* Sidebar vira linha única abaixo do conteúdo: o banner continua
       centralizado na largura da coluna. */
    .layout-grid > .sidebar-area,
    .single-layout.layout-grid > .sidebar-area {
        justify-items: center;
    }
}

@media screen and (max-width: 768px) {
    .layout-grid.single-layout > .sidebar-area > .banner-single,
    .layout-grid.single-layout > .sidebar-area > .sidebar-ad-top,
    .layout-grid.single-layout > .sidebar-area > .ad-slot-sidebar {
        position: relative !important;
        left: auto !important;
        right: auto !important;
        transform: none !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin: 0 auto 2rem !important;
        padding: 0 !important;
        box-sizing: border-box !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        text-align: center !important;
        overflow-x: clip !important;
        overflow-y: visible !important;
    }

    .layout-grid.single-layout > .sidebar-area > .banner-single .csites-banner-container,
    .layout-grid.single-layout > .sidebar-area > .sidebar-ad-top .csites-banner-container {
        position: relative !important;
        left: auto !important;
        right: auto !important;
        transform: none !important;
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 auto !important;
        padding: 0 !important;
        box-sizing: border-box !important;
    }

    .layout-grid.single-layout > .sidebar-area > .banner-single .csites-banner-slider,
    .layout-grid.single-layout > .sidebar-area > .banner-single .csites-banner-item,
    .layout-grid.single-layout > .sidebar-area > .sidebar-ad-top .csites-banner-slider,
    .layout-grid.single-layout > .sidebar-area > .sidebar-ad-top .csites-banner-item {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin-left: auto !important;
        margin-right: auto !important;
        justify-content: center !important;
        align-items: center !important;
        float: none !important;
    }

    .layout-grid.single-layout > .sidebar-area > .banner-single .csites-banner-item > a,
    .layout-grid.single-layout > .sidebar-area > .banner-single picture,
    .layout-grid.single-layout > .sidebar-area > .sidebar-ad-top .csites-banner-item > a,
    .layout-grid.single-layout > .sidebar-area > .sidebar-ad-top picture {
        width: auto !important;
        max-width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
        justify-content: center !important;
    }

    .layout-grid.single-layout > .sidebar-area > .banner-single img,
    .layout-grid.single-layout > .sidebar-area > .banner-single .csites-banner-image,
    .layout-grid.single-layout > .sidebar-area > .sidebar-ad-top img,
    .layout-grid.single-layout > .sidebar-area > .sidebar-ad-top .csites-banner-image {
        display: block !important;
        width: auto !important;
        max-width: 100% !important;
        height: auto !important;
        margin-left: auto !important;
        margin-right: auto !important;
        float: none !important;
        object-fit: contain !important;
    }

    .layout-grid.single-layout > .sidebar-area > .banner-single .csites-banner-adsense,
    .layout-grid.single-layout > .sidebar-area > .banner-single ins.adsbygoogle,
    .layout-grid.single-layout > .sidebar-area > .banner-single iframe,
    .layout-grid.single-layout > .sidebar-area > .sidebar-ad-top ins.adsbygoogle,
    .layout-grid.single-layout > .sidebar-area > .sidebar-ad-top iframe {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin-left: auto !important;
        margin-right: auto !important;
        box-sizing: border-box !important;
    }
}

/* ======================================================================
   CS BANNER — IMAGENS CENTRALIZADAS COM RESPIRO LATERAL DE 2.4rem
   O plugin mantém os itens em 100% por padrão. Para banners com imagem,
   reduzimos apenas o item visual e o centralizamos; anúncios AdSense
   continuam ocupando a largura normal.
   ====================================================================== */

.csites-banner-container .csites-banner-slider .csites-banner-item:has(.csites-banner-image) {
    box-sizing: border-box !important;
    width: calc(100% - 4.8rem) !important;
    max-width: calc(100% - 4.8rem) !important;
    min-width: 0 !important;
    margin-left: auto !important;
    margin-right: auto !important;
    justify-content: center !important;
}

/* Evita somar os 8–10px antigos do topo aos 2.4rem do próprio banner. */
.banner-topo:has(.csites-banner-image) {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

@media screen and (max-width: 768px) {
    /* Reforço para as regras mais específicas da lateral no single. */
    .layout-grid.single-layout > .sidebar-area > .banner-single .csites-banner-container .csites-banner-slider .csites-banner-item:has(.csites-banner-image),
    .layout-grid.single-layout > .sidebar-area > .sidebar-ad-top .csites-banner-container .csites-banner-slider .csites-banner-item:has(.csites-banner-image),
    .layout-grid.single-layout > .sidebar-area > .ad-slot-sidebar .csites-banner-container .csites-banner-slider .csites-banner-item:has(.csites-banner-image) {
        width: calc(100% - 4.8rem) !important;
        max-width: calc(100% - 4.8rem) !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }
}

