/*
 * Nômade Publi — exibição no site
 *
 * O bloco ocupa 100% da largura disponível, até no máximo o tamanho do espaço
 * (--np-w, ou sem limite se "ocupar toda a largura"). A mídia fica no fluxo
 * normal, com width: 100% e a proporção do espaço (--np-ratio, ex.: 728/90),
 * então o bloco sempre tem tamanho próprio (nunca zera) e nunca passa da área
 * disponível, inclusive dentro de layouts flex/grid do tema no celular. Os !important evitam que estilos de imagem do tema
 * (height:auto, width:auto, margens, float...) desalinhem o anúncio.
 */
.nomade-publi,
.nomade-publi *,
.nomade-publi-wrap { box-sizing: border-box; }

.nomade-publi-wrap { width: 100%; max-width: var(--np-w); margin: 0 auto; }

/* Bloco: 100% da largura disponível, no máximo o tamanho do espaço */
.nomade-publi.np-single,
.nomade-publi.np-carousel,
.nomade-publi .np-grid__item {
    display: block;
    width: 100%;
    max-width: var(--np-w);
    margin-left: auto;
    margin-right: auto;
    padding: 0;
    overflow: hidden;
    line-height: 0;
}

.nomade-publi a {
    display: block !important;
    position: static !important;
    width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    float: none !important;
}

/* Mídia: 100% da largura do bloco, sempre na proporção do espaço */
.nomade-publi .np-media {
    display: block !important;
    position: static !important;
    float: none !important;
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    min-width: 0 !important;
    max-height: none !important;
    aspect-ratio: var(--np-ratio) !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0;
    box-shadow: none !important;
    object-fit: cover;
    object-position: center;
}
.nomade-publi.np-fit-contain .np-media { object-fit: contain; }
.nomade-publi.np-fit-fill .np-media { object-fit: fill; }

/* Carrossel: slides empilhados na mesma célula (sem position absolute) */
.nomade-publi.np-carousel { display: grid; }
.nomade-publi .np-slide {
    grid-area: 1 / 1;
    min-width: 0;
    opacity: 0;
    visibility: hidden;
    transition: opacity .5s ease, visibility .5s;
}
.nomade-publi .np-slide.is-active { opacity: 1; visibility: visible; }

/* Grade: itens lado a lado, cada um com a largura do espaço */
.nomade-publi.np-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    width: 100%;
    margin: 0 auto;
}
.nomade-publi .np-grid__item { flex: 0 1 var(--np-w); min-width: 0; margin: 0; }

/* Rótulo "PUBLICIDADE" (pode ser sobrescrito pela class personalizada) */
.nomade-publi-wrap .np-label {
    text-align: center; font-size: 12px; line-height: 1.4; letter-spacing: .06em;
    text-transform: uppercase; color: #757575; margin: 0 0 6px;
}

@media (prefers-reduced-motion: reduce) {
    .nomade-publi .np-slide { transition: none; }
}
