
/* 
 * ============================================================================
 * WAVE THEME - BRUTALISM OVERRIDES
 * ============================================================================
 * Overwrites all glassmorphism definitions above with hard, brutalist styles.
 */

:root {
    --wave-blur: none !important;
    --wave-blur-strong: none !important;
    --wave-radius-sm: 0px !important;
    --wave-radius-md: 0px !important;
    --wave-radius-lg: 0px !important;
    --wave-radius-pill: 0px !important;
    --radius-sm: 0px !important;
    --radius-md: 0px !important;
    --radius-lg: 0px !important;
    --radius-xl: 0px !important;
    --card-radius: 0px !important;
    
    --wave-surface: var(--wave-bg-deep) !important;
    --wave-surface-strong: var(--wave-bg-deep) !important;
    --glass-bg: var(--wave-bg-deep) !important;
    --card-bg: var(--wave-bg-deep) !important;
    --bg-card: var(--wave-bg-deep) !important;
    
    --wave-glass-border: #000 !important;
    --glass-border: #000 !important;
    --border-color: #000 !important;
    --border-light: #000 !important;
    
    --shadow-sm: 4px 4px 0 var(--color-primary) !important;
    --shadow-md: 4px 4px 0 var(--color-primary) !important;
    --shadow-lg: 4px 4px 0 var(--color-primary) !important;
    --glass-shadow: 4px 4px 0 var(--color-primary) !important;
    
    --wave-glow-pink-sm: none !important;
    --wave-glow-pink-md: none !important;
    --wave-glow-cyan-sm: none !important;
    --wave-glow-cyan-md: none !important;
}

body {
    background: var(--wave-bg-deep) !important;
    font-weight: 500;
}

body.theme-light {
    --wave-surface: #ffffff !important;
    --wave-surface-strong: #ffffff !important;
    --glass-bg: #ffffff !important;
    --card-bg: #ffffff !important;
    --bg-card: #ffffff !important;
    --wave-glass-border: #000 !important;
    --glass-border: #000 !important;
    --border-color: #000 !important;
    --border-light: #000 !important;
    --shadow-sm: 4px 4px 0 var(--color-primary) !important;
    --shadow-md: 4px 4px 0 var(--color-primary) !important;
    --shadow-lg: 4px 4px 0 var(--color-primary) !important;
    --glass-shadow: 4px 4px 0 var(--color-primary) !important;
}

body.theme-light {
    background: var(--wave-bg-deep) !important;
}

/* Force Borders and Remove Rounded Corners universally */
* {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

/* --- HEADER --- */
.wave-header {
    box-sizing: border-box !important;
    border-bottom: 3px solid var(--wave-glass-border) !important;
    background: var(--bg-primary) !important;
    box-shadow: none !important;
}

/* Corrigir largura do header desktop para não vazar e alinhar com as demos neon/pulse */
@media (min-width: 1025px) {
    .wave-header__inner {
        max-width: 1440px !important;
        gap: 16px !important;
        padding: 0 16px !important;
    }
    .wave-nav {
        gap: 12px !important;
    }
    .wave-nav__link {
        padding: 8px 12px !important;
        font-size: 0.82rem !important;
    }
    .wave-header__actions {
        gap: 12px !important;
    }
}

.wave-nav__link {
    text-transform: uppercase;
    font-weight: 800 !important;
    border-radius: 0 !important;
    background: none !important;
    border: 2px solid transparent;
}
.wave-nav__link:hover {
    border: 2px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    background: var(--color-secondary) !important;
    color: #000 !important;
}
.wave-nav__link--active {
    border: 2px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    background: var(--color-secondary) !important;
    color: #000 !important;
}

.wave-mobile__link--active {
    color: var(--wave-pink) !important;
    background: rgba(0, 0, 0, 0.08) !important;
    border-left: 4px solid var(--color-secondary) !important;
}

/* Mobile actions (Buscar, etc) sem gradiente de fundo ou pill shape */
.wave-search__btn, .wave-header__mobile-btn, .wave-header__mobile-action {
    border-radius: 0 !important;
    border: 3px solid #000 !important;
    background: var(--wave-surface-strong) !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
}
.wave-search__btn:hover, .wave-header__mobile-btn:hover, .wave-header__mobile-action:hover {
    transform: translate(-2px, -2px) !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    background: var(--color-secondary) !important;
}


/* --- CARDS (News, Team, Promo, etc) --- */
.wave-news-card, .wave-team-card, .wave-promo-card, .wave-podcast-card, .wave-event-card {
    border: 3px solid #000 !important;
    border-radius: 0 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    transition: transform 0.1s ease, box-shadow 0.1s ease !important;
    background: var(--wave-surface) !important;
}

/* O fundo com malha e filter escuro deve sumir no brutalismo (para manter a cor solida ou a foto nÃ­tida) */
.wave-news-card__bg, .wave-promo-card__bg, .wave-event-card__bg {
    filter: brightness(0.9) grayscale(1) !important;
    mix-blend-mode: hard-light !important;
}

/* Hovers de deslocamento Brutalista */
.wave-news-card:hover, .wave-team-card:hover, .wave-promo-card:hover, .wave-podcast-card:hover, .wave-event-card:hover {
    transform: translate(-4px, -4px) !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-color: #000 !important;
    background: var(--color-secondary) !important;
}

/* Imagens circulares da Equipe => Imagens Quadradas no Brutalismo */
.wave-team-card__avatar, .wave-team-card__avatar-initials {
    border-radius: 0 !important;
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
}
.wave-team-card__avatar-glow {
    display: none !important; /* Remove ambient glow effect */
}


/* --- TYPOGRAPHY --- */
h1, h2, h3, h4, h5, h6, .wave-news-header__title, .wave-team-header__title, .wave-section-title {
    text-transform: uppercase !important;
    letter-spacing: -1px !important;
    font-weight: 900 !important;
}

.wave-news-header__bar, .wave-promo-header__bar, .wave-team-header__bar {
    background: var(--wave-text) !important;
    width: 12px !important;
    border-radius: 0 !important;
}


/* --- PLAYER --- */
.wave-player {
    border-top: 4px solid #000 !important;
    background: var(--wave-surface-strong) !important;
    box-shadow: none !important;
}

.wave-player-controls__play {
    border-radius: 0 !important;
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    background: var(--color-primary) !important;
    color: #000 !important; /* brutalist loud contrast */
}

body.theme-light .wave-player-controls__play {
    color: #000 !important;
}

.wave-player-controls__play:hover {
    transform: translate(-2px, -2px) !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    background: var(--color-secondary) !important;
}

.wave-volume-slider__track {
    border-radius: 0 !important;
    border: 3px solid #000 !important;
    height: 12px !important;
    background: var(--wave-bg-deep) !important;
}
.wave-volume-slider__thumb {
    border-radius: 0 !important;
    border: 3px solid #000 !important;
    background: var(--color-primary) !important;
    width: 18px !important;
    height: 24px !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
}

/* Mobile Video Player Wrapper Pill */
.wave-mobile-player {
    border-radius: 0 !important;
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    background: var(--wave-surface-strong) !important;
}


/* --- BUTTONS --- */
.wave-news-card__link, .wave-promo-card__cta, .btn, .wave-btn {
    border-radius: 0 !important;
    text-transform: uppercase !important;
    font-weight: 800 !important;
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    transition: transform 0.1s ease, box-shadow 0.1s ease, background 0.1s ease !important;
    padding: 10px 20px !important;
    background: var(--wave-surface-strong) !important;
    color: var(--wave-text) !important;
    display: inline-flex;
    align-items: center;
}
.wave-news-card__link:hover, .wave-promo-card__cta:hover, .btn:hover, .wave-btn:hover {
    transform: translate(-2px, -2px) !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    background: var(--color-secondary) !important;
    color: #000 !important;
}


/* Labels and Pills (Borders instead of background) */
.wave-news-card__pill, .wave-promo-card__pill, .wave-onair__label {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    background: var(--wave-bg-deep) !important;
    color: var(--wave-text) !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
    font-weight: 800 !important;
}

/* Forms and Inputs */
input, select, textarea, .form-control {
    border: 2px solid #000 !important;
    border-radius: 0 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    background: var(--wave-surface) !important;
    color: var(--wave-text) !important;
}
input:focus, select:focus, textarea:focus, .form-control:focus {
    outline: none !important;
    border-color: #000 !important;
    box-shadow: 4px 4px 0 var(--color-secondary) !important;
}

/* Footer structure overrides */
.wave-footer {
    border-top: 4px solid var(--color-primary) !important;
    background: var(--wave-bg-deep) !important;
}
.wave-footer__col-title {
    text-transform: uppercase;
    font-weight: 900;
    font-size: 1.5rem;
    border-bottom: 2px solid var(--color-primary);
    padding-bottom: 8px;
    margin-bottom: 24px;
}

/* Banners sem radius/borda/shadow (Cantos Retos) */
.banner-wrapper, .banner-slot, .banner-section, .home-banner img, .banner img, img[src*="banners"], a[class*="banner"] img {
    border-radius: 0 !important;
    border: none !important;
    box-shadow: none !important;
}

/* ============================================================================
 * WAVE BRUTALISM â€” SEÃ‡ÃƒO 1: HERO / SLIDER
 * ============================================================================ */

/* Borda inferior brutalista na seÃ§Ã£o hero */
.wave-slider {
    border-bottom: 4px solid var(--wave-glass-border) !important;
    border-radius: 0 !important;
    overflow: hidden !important;
}

/* Remover border-radius de todos os containers do slider */
.wave-slider--rounded,
.wave-slider--contained,
.wave-slider__container,
.wave-slider__track,
.wave-slider__carousel {
    border-radius: 0 !important;
    overflow: hidden !important;
}

/* TÃ­tulo do hero: peso brutalista */
.wave-slide__title {
    font-weight: 900 !important;
    text-transform: uppercase !important;
    letter-spacing: -0.02em !important;
}

/* BotÃ£o CTA do hero: estilo brutalista */
.wave-slide__cta {
    border: 3px solid var(--wave-glass-border) !important;
    border-radius: 0 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    background: var(--wave-surface-strong) !important;
    color: var(--wave-text) !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    transition: transform 0.1s ease, box-shadow 0.1s ease !important;
}
.wave-slide__cta:hover {
    transform: translate(-2px, -2px) !important;
    box-shadow: 6px 6px 0 var(--color-primary) !important;
    background: var(--color-secondary) !important;
    color: var(--wave-bg-deep) !important;
}

/* Dots do slider: quadrados brutalistas */
.wave-slider__dot {
    border-radius: 0 !important;
    border: 2px solid var(--wave-glass-border) !important;
    background: var(--wave-surface) !important;
}
.wave-slider__dot.active {
    background: var(--color-primary) !important;
    border-color: var(--color-primary) !important;
    border-radius: 0 !important;
    box-shadow: 2px 2px 0 var(--wave-bg-deep) !important;
}

/* Setas do slider: quadradas brutalistas */
.wave-slider__arrow {
    border-radius: 0 !important;
    border: 3px solid var(--wave-glass-border) !important;
    background: var(--wave-surface-strong) !important;
    box-shadow: 3px 3px 0 var(--color-primary) !important;
    backdrop-filter: none !important;
}
.wave-slider__arrow:hover {
    background: var(--color-primary) !important;
    border-color: var(--color-primary) !important;
    box-shadow: 3px 3px 0 var(--wave-bg-deep) !important;
    transform: translate(-2px, -2px) !important;
}

/* Mobile: sem border-radius no slider */
@media (max-width: 768px) {
    body .wave-slider.slider-fullscreen,
    body .hero-slider.slider-fullscreen {
        margin: 0 !important;
        width: 100% !important;
    }
    body .wave-slider,
    body .wave-slider.slider-fullscreen,
    body .wave-slider--contained,
    body .wave-slider__container,
    body .wave-slider__track,
    body .wave-slider__carousel,
    body .wave-slide,
    body .wave-slide__img,
    body .hero-slider,
    body .hero-slider.slider-fullscreen,
    body .hero-slider--contained,
    body .hero-slide,
    body .hero-slide__media,
    body .hero-slide__media img {
        border-radius: 0 !important;
    }
}


/* ============================================================================
 * WAVE BRUTALISM â€” SEÃ‡ÃƒO 2: NO AR AGORA
 * ============================================================================ */

/* Card principal brutalist */
.wave-onair-card {
    border: 2px solid var(--wave-glass-border) !important;
    border-radius: 0 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    background: var(--wave-surface-strong) !important;
}

/* Foto do locutor: sem border-radius */
.wave-onair-card__photo,
.wave-onair-card__photo-wrap,
.wave-onair-card__photo-glow,
.wave-onair-card__photo-placeholder {
    border-radius: 0 !important;
}

/* Remover o glow circular da foto */
.wave-onair-card__photo-glow {
    display: none !important;
}

/* Foto: borda brutalista */
.wave-onair-card__photo {
    border: 3px solid var(--wave-glass-border) !important;
    box-shadow: 3px 3px 0 var(--color-primary) !important;
}

/* Badge "NO AR AGORA" / live-badge: tag brutalista */
.wave-onair-card__live-badge {
    border-radius: 0 !important;
    background: var(--color-primary) !important;
    color: var(--wave-bg-deep) !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    padding: 2px 8px !important;
    border: none !important;
    box-shadow: none !important;
}

/* Label "AO VIVO" do header da seÃ§Ã£o */
.wave-onair__label,
.wave-news-header__label {
    text-transform: uppercase !important;
    font-weight: 800 !important;
}

/* Nome do programa e locutor: uppercase */
.wave-onair-card__name,
.wave-onair-card__host {
    text-transform: uppercase !important;
}

/* Placeholder sem arredondamento */
.wave-onair-card__photo-placeholder {
    border-radius: 0 !important;
    border: 3px solid var(--wave-glass-border) !important;
}


/* ============================================================================
 * WAVE BRUTALISM â€” SEÃ‡ÃƒO 3: TOP MÃšSICAS
 * ============================================================================ */

/* Cada item da lista */
.wave-chart-track {
    border: 2px solid var(--wave-glass-border) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: var(--wave-surface) !important;
    transition: transform 0.1s ease, box-shadow 0.1s ease !important;
}

/* Hover com offset sÃ³lido */
.wave-chart-track:hover {
    box-shadow: 3px 3px 0 var(--color-primary) !important;
    transform: translate(-2px, -2px) !important;
    border-color: var(--color-primary) !important;
}

/* Estado ativo */
.wave-chart-track.wave-chart-active {
    border-color: var(--color-primary) !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
}

/* Thumbnail/cover da mÃºsica: recorte quadrado, sem border-radius */
.wave-chart-track__cover,
.wave-chart-track__cover-img {
    border-radius: 0 !important;
}

/* BotÃ£o play overlay: sem border-radius */
.wave-chart-track__play-overlay {
    border-radius: 0 !important;
}

/* NumeraÃ§Ã£o: peso brutalista */
.wave-chart-track__rank {
    font-weight: 900 !important;
    font-size: 1.4rem !important;
    line-height: 1 !important;
}

/* Separador entre itens: sÃ³lido, sem opacity reduzida */
.wave-chart-track + .wave-chart-track {
    border-top: 1px solid var(--wave-glass-border) !important;
}

/* BotÃµes de voto: sem border-radius */
.wave-vote-btn {
    border-radius: 0 !important;
    border: 2px solid var(--wave-glass-border) !important;
}
.wave-vote-btn:hover,
.wave-vote-btn.voted {
    border-color: var(--color-primary) !important;
    background: var(--color-primary) !important;
    color: var(--wave-bg-deep) !important;
}

/* Player inline brutalista */
.wave-inline-player {
    border-radius: 0 !important;
    border-top: 2px solid var(--wave-glass-border) !important;
}

.wave-inline-player__btn {
    border-radius: 0 !important;
    border: 2px solid var(--wave-glass-border) !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
}

.wave-inline-player__bar {
    border-radius: 0 !important;
    border: 2px solid var(--wave-glass-border) !important;
}

.wave-inline-player__progress {
    border-radius: 0 !important;
    background: var(--color-primary) !important;
}

/* CTA do chart (Ver Todas) */
.wave-chart-header__cta {
    border-radius: 0 !important;
    border: 2px solid var(--wave-glass-border) !important;
    box-shadow: 3px 3px 0 var(--color-primary) !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    padding: 6px 16px !important;
    color: var(--wave-text) !important;
    text-decoration: none !important;
    transition: transform 0.1s ease, box-shadow 0.1s ease !important;
}
.wave-chart-header__cta:hover {
    transform: translate(-2px, -2px) !important;
    box-shadow: 5px 5px 0 var(--color-primary) !important;
    background: var(--color-primary) !important;
    color: var(--wave-bg-deep) !important;
    border-color: var(--color-primary) !important;
}


/* ============================================================================
 * WAVE BRUTALISM â€” SEÃ‡ÃƒO 4: FOOTER
 * ============================================================================ */

/* Borda superior grossa de destaque */
.wave-footer {
    border-top: 4px solid var(--color-primary) !important;
    background: var(--wave-bg-deep) !important;
    border-radius: 0 !important;
}

/* TÃ­tulos das colunas */
.wave-footer__heading,
.wave-footer__col-title {
    text-transform: uppercase !important;
    font-weight: 800 !important;
    letter-spacing: 0.1em !important;
    border-radius: 0 !important;
}

/* Links do footer */
.wave-footer__links a,
.wave-footer__contact a,
.wave-footer__privacy-link {
    text-decoration: none !important;
    text-transform: uppercase !important;
    font-size: 0.8rem !important;
    border-radius: 0 !important;
    display: inline-block;
}
.wave-footer__links a:hover,
.wave-footer__contact a:hover {
    color: var(--color-primary) !important;
    text-decoration: none !important;
}

/* Ãcones de redes sociais: containers quadrados brutalistas */
.wave-footer__social-btn {
    width: 28px !important;
    height: 28px !important;
    border-radius: 0 !important;
    border: 2px solid var(--wave-glass-border) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: none !important;
    transition: border-color 0.1s ease, box-shadow 0.1s ease, transform 0.1s ease !important;
    background: var(--wave-surface) !important;
    color: var(--wave-text) !important;
}
.wave-footer__social-btn:hover {
    border-color: var(--color-primary) !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
    transform: translate(-1px, -1px) !important;
    background: var(--color-primary) !important;
    color: var(--wave-bg-deep) !important;
}

/* Linha inferior do footer */
.wave-footer__bottom {
    border-top: 2px solid var(--wave-glass-border) !important;
    border-radius: 0 !important;
}

/* Logo do dev no footer: sem arredondamento */
.wave-footer__dev-logo,
.wave-footer__logo img {
    border-radius: 0 !important;
}

/* Copyright e crÃ©dito */
.wave-footer__copyright,
.wave-footer__credit-text,
.wave-footer__credit-link {
    text-transform: uppercase !important;
    font-size: 0.75rem !important;
}

/* Accent line no topo do footer (caso exista) */
.wave-footer__accent-line {
    height: 0 !important;
    display: none !important;
}

/* ============================================================================
 * WAVE BRUTALISM â€” SEÃ‡ÃƒO 5: SETAS DO SLIDER
 * ============================================================================ */

/* Setas sempre visÃ­veis â€” sem opacity: 0 nem visibility: hidden */
.wave-slider__arrow,
.wave-slider__arrow--prev,
.wave-slider__arrow--next {
    opacity: 1 !important;
    visibility: visible !important;
    display: flex !important;
    /* Container quadrado brutalista */
    width: 44px !important;
    height: 44px !important;
    border-radius: 0 !important;
    border: 3px solid var(--wave-glass-border) !important;
    background: var(--wave-surface-strong) !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    color: var(--wave-text) !important;
    cursor: pointer !important;
    transition: transform 0.1s ease, box-shadow 0.1s ease !important;
    align-items: center !important;
    justify-content: center !important;
    pointer-events: auto !important;
}

/* Hover brutalista: deslocamento + swap de cor */
.wave-slider__arrow:hover,
.wave-slider__arrow--prev:hover,
.wave-slider__arrow--next:hover {
    transform: translate(-2px, -2px) !important;
    box-shadow: 6px 6px 0 var(--color-primary) !important;
    background: var(--color-primary) !important;
    border-color: var(--color-primary) !important;
    color: var(--wave-bg-deep) !important;
}


/* ============================================================================
 * WAVE BRUTALISM â€” SEÃ‡ÃƒO 6: BANNERS â€” CANTOS RETOS
 * ============================================================================ */

/* Base: sem border-radius, sem glow em todos os elementos internos */
.banner-slot *,
.banner-html-content {
    border-radius: 0 !important;
    box-shadow: none !important;
}

/* Wrapper do slot: sem border aqui â€” ele estica pela cÃ©lula do grid,
   a borda ficaria solta abaixo do conteÃºdo real */
.banner-slot {
    border-radius: 0 !important;
    border: none !important;
    overflow: hidden !important;
    padding: 0 !important;
}

/* A BORDA vai nos elementos de conteÃºdo interno, que tÃªm a altura real */
.banner-slot > a,
.banner-slot > img,
.banner-slot > .banner-html-content {
    border: 2px solid var(--wave-glass-border) !important;
    border-radius: 0 !important;
    display: block !important;
    overflow: hidden !important;
}

/* Imagens de banner: sem arredondamento, preenche o container */
.banner-slot img,
.banner-slot a img {
    display: block !important;
    width: 100% !important;
    border-radius: 0 !important;
    object-fit: cover !important;
}

/* Slots de POSIÃ‡ÃƒO FIXA (fora de grid): borda e aspect-ratio no container */

/* Billboard — dimensões livres, container se ajusta à altura da imagem */
.banner-slot--topo,
.banner-slot--entre_blocos {
    width: 100% !important;
    border: 2px solid var(--wave-glass-border) !important;
}

/* RodapÃ© â€” RetÃ¢ngulo PadrÃ£o 728Ã—90 */
.banner-slot--rodape {
    aspect-ratio: 728 / 90 !important;
    width: 100% !important;
    border: 2px solid var(--wave-glass-border) !important;
}

/*
 * In-grid: shrink-wrap ao conteÃºdo real para que a borda (no <a>/<img> interno)
 * nÃ£o fique solta abaixo do banner.
 */
.banner-slot--in_grid_noticias,
.banner-slot--in_grid_eventos,
.banner-slot--in_grid_podcasts,
.banner-slot--in_grid_promocoes,
.banner-slot--in_grid_top_musicas,
.banner-slot--in_grid_equipe {
    width: 100% !important;
    height: fit-content !important;      /* contrai ao tamanho do conteÃºdo */
    align-self: start !important;        /* nÃ£o estica na cÃ©lula do grid */
}


/* ============================================================================
 * WAVE BRUTALISM â€” SEÃ‡ÃƒO 7: BOTÃ•ES â€” ZERO border-radius GLOBAL
 * ============================================================================ */

/* Zero border-radius em TODOS os botÃµes do tema */
button,
[type="button"],
[type="submit"],
[type="reset"],
.btn,
.btn-primary,
.btn-secondary,
.btn-outline,
.wave-btn,
.button,
a.btn,
a[class*="btn"],
.wave-news-card__link,
.wave-promo-card__cta,
.wave-chart-header__cta,
.wave-slide__cta,
.wave-team-card__social,
.wave-team-card__modal-cta,
.wave-event-card__cta,
.s-event-card__cta,
.wave-header__cta,
.wave-player-controls__play,
.wave-search__btn,
.wave-header__mobile-btn {
    border-radius: 0 !important;
}


/* ============================================================================
 * WAVE BRUTALISM â€” SEÃ‡ÃƒO 8: CARDS DE EVENTO E DETALHES
 * ============================================================================ */

/* Remover fundo da seÃ§Ã£o Eventos */
.wave-events-section,
.wave-events-section.section-alt {
    background: var(--cor-fundo, transparent) !important;
}

/* Override do CTA: de pill com glow para botÃ£o brutalista preto */
.wave-event-card__cta,
.s-event-card__cta {
    border-radius: 0 !important;
    border: 2px solid var(--cor-texto-primario, var(--text-primary, #000)) !important;
    background: transparent !important;
    color: var(--cor-texto-primario, var(--text-primary, #000)) !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    padding: 8px 16px !important;
    box-shadow: none !important;
    transition: transform 0.1s ease, box-shadow 0.1s ease, background 0.1s ease, color 0.1s ease !important;
    /* Remover box-shadow com blur do glassmorphism */
    filter: none !important;
}

/* Hover: offset sÃ³lido sem blur */
.wave-event-card__cta:hover,
.s-event-card__cta:hover {
    box-shadow: 3px 3px 0 var(--cor-texto-primario, var(--text-primary, #000)) !important;
    transform: translate(-2px, -2px) !important;
    background: var(--cor-texto-primario, var(--text-primary, #000)) !important;
    color: var(--cor-fundo, var(--wave-bg-deep, #fff)) !important;
    border-color: var(--cor-texto-primario, var(--text-primary, #000)) !important;
}

/* Ãcone dentro do CTA: mantÃ©m tamanho, sem mudanÃ§a */
.wave-event-card__cta i,
.s-event-card__cta i {
    font-size: 0.75rem !important;
}

/* ============================================================================
 * WAVE BRUTALISM â€” SEÃ‡ÃƒO 9: PLAYER ARTWORK (CAPA DO TOCADOR)
 * ============================================================================ */

/* Garante que a capa do player fique contida em 52x52 e mantenha a estÃ©tica brutalista */
.wave-player__artwork {
    width: 52px !important;
    height: 52px !important;
    min-width: 52px !important;
    min-height: 52px !important;
    max-width: 52px !important;
    max-height: 52px !important;
    border-radius: 0 !important;
    border: 2px solid var(--wave-glass-border) !important;
    overflow: hidden !important;
    display: block !important;
    flex-shrink: 0 !important;
    position: relative !important;
}

.wave-player__artwork img {
    width: 100% !important;
    height: 100% !important;
    max-width: 52px !important;
    max-height: 52px !important;
    object-fit: cover !important;
    display: block !important;
    border-radius: 0 !important;
    position: static !important;
}

/* ============================================================================
 * WAVE BRUTALISM â€” SEÃ‡ÃƒO 10: PLAYER DESKTOP E MINI PLAYER MOBILE
 * ============================================================================ */

/* 1. PLAYER DESKTOP (BARRA FIXA) E ESTRUTURA GERAL */

/* Container Principal do Player */
html body #player.wave-player {
    border-radius: 0 !important;
    border-top: 3px solid #000000 !important; /* Retornado para a cor preta padrÃ£o dos cards */
}

/* ForÃ§a a remoÃ§Ã£o incondicional da forma circular declarada inline no player */
html body #player.wave-player .round-btn,
html body #player.wave-player .wave-btn {
    border-radius: 0 !important;
}

/* Substitui a regra de artwork com opacity conforme solicitado e blinda totalmente o eixo dimensional */
html body #player .wave-player__artwork,
html body #player #playerArtwork,
html body #player.wave-player .wave-player__artwork,
html body #player.wave-player #playerArtwork {
    border-radius: 0 !important;
    border: 2px solid #000000 !important;
    width: 52px !important;
    height: 52px !important;
    min-width: 52px !important;
    max-width: 52px !important;
    overflow: hidden !important;
    display: block !important;
    position: relative !important;
    flex-shrink: 0 !important;
}

html body #player .wave-player__artwork img,
html body #player #playerArtwork img,
html body #player.wave-player .wave-player__artwork img,
html body #player.wave-player #playerArtwork img {
    width: 100% !important;
    height: 100% !important;
    max-width: 52px !important;
    max-height: 52px !important;
    object-fit: cover !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    margin: 0 !important;
    border-radius: 0 !important;
}

/* BotÃµes do painel play (Play, RÃ¡dio, Volume) -> Formato brutalista + Borda PRETA */
html body #player.wave-player #playBtn,
html body #player.wave-player #zmpLiveBtn,
html body #player.wave-player #volumeBtn,
html body #player.wave-player .zmp-btn {
    border-radius: 0 !important;
    border: 2px solid #000000 !important;
    background: transparent !important;
    box-shadow: none !important;
}

/* Efeito tÃ¡til de pressÃ£o / mouse no hover */
html body #player.wave-player #playBtn:hover,
html body #player.wave-player #zmpLiveBtn:hover,
html body #player.wave-player #volumeBtn:hover {
    box-shadow: 3px 3px 0 #000000 !important; /* Sombra preta para acompanhar a borda */
    transform: translate(-1px, -1px) !important;
}

/* Slider de Volume - Manter background livre de overrides para o JS colorir o progresso! */
html body #player .zmp-volume-slider {
    border-radius: 0 !important;
    outline: none !important;
}

/* Limpar o track interno do navegador para evitar a duplicaÃ§Ã£o na renderizaÃ§Ã£o */
html body #player .zmp-volume-slider::-webkit-slider-runnable-track {
    background: transparent !important;
    border: none !important;
}

/* Thumb do slider de volume (O indicador quadradinho) */
html body #player .zmp-volume-slider::-webkit-slider-thumb {
    -webkit-appearance: none !important;
    appearance: none !important;
    width: 14px !important;
    height: 14px !important;
    border-radius: 0 !important;
    border: 2px solid #000000 !important;
    background: var(--player-bg) !important;
    box-shadow: none !important;
    margin-top: -5px !important; /* Alinha no centro do track original (media de -5px pra centralizar os 14px na linha de 4px) */
}
html body #player .zmp-volume-slider::-moz-range-thumb {
    appearance: none !important;
    width: 14px !important;
    height: 14px !important;
    border-radius: 0 !important;
    border: 2px solid #000000 !important;
    background: var(--player-bg) !important;
    box-shadow: none !important;
}

/* BotÃ£o "ASSISTIR AO VIVO" */
html body #player .wave-player__watch-btn {
    border-radius: 0 !important;
    border: 2px solid #000000 !important;
    background: transparent !important;
    color: var(--player-text-color) !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    box-shadow: none !important;
    transition: all 0.1s ease !important;
}
html body #player .wave-player__watch-btn:hover {
    background: #000000 !important;
    color: var(--color-primary) !important;
    box-shadow: 3px 3px 0 var(--color-primary) !important;
    transform: translate(-2px, -2px) !important;
}
html body #player .wave-player__watch-btn:hover .wave-watch-label {
    color: var(--color-primary) !important;
}
html body #player .wave-player__watch-btn:hover .wave-watch-dot {
    background: var(--color-primary) !important;
}

/* Badge "AO VIVO" (geral da interface) e mini dot */
html body #player .wave-player__live-badge,
html body #player .wave-player__status,
html body #player #mobileReturnLiveBtn {
    border-radius: 0 !important;
}


/* 2. MINI PLAYER MOBILE ESPECÃFICO */
@media (max-width: 768px) {
    /* Container PÃ­lula -> RetÃ¢ngulo RÃ­gido com Shadow Preta Brutalista */
    html body #player.wave-player {
        border-radius: 0 !important;
        border: 3px solid #000000 !important; /* PadrÃ£o solicitado */
        box-shadow: 4px 4px 0 #000000 !important;
    }

    /* Album art no mini player */
    html body #player.wave-player .wave-player__artwork,
    html body #player.wave-player #playerArtwork,
    html body #player.wave-player .nmp-fallback-logo,
    html body #player.wave-player #epArtworkImg {
        border-radius: 0 !important;
        border: 2px solid #000000 !important;
    }

    /* BotÃ£o Play no mini player (EspecÃ­fico estado Active) */
    html body #player.wave-player #playBtn {
        border-radius: 0 !important;
        border: 2px solid #000000 !important;
        box-shadow: none !important;
    }
    html body #player.wave-player #playBtn:active {
        opacity: 0.8 !important;
        box-shadow: none !important;
        transform: translate(2px, 2px) !important;
    }

    /* Layout da Informação da Faixa Mobile: Reset flex handling for global rules */
    html body #player.wave-player .wave-player__artist,
    html body #player.wave-player .wave-player__title {
        display: block;
    }
}

/* =========================================
   3. VIDEO PLAYER (DESKTOP E MOBILE)
   ========================================= */
/* Bordas quadradas do Video Player apenas no Wave */
html body .vmp-widget,
html body .video-mobile-section {
    border-radius: 0 !important;
}

/* BotÃµes utilitÃ¡rios do Video Player alinhados ao visual quadrangular */
html body .vmp-ctrl-btn,
html body .vmp-hd-badge,
html body .vmp-live-badge,
html body .vms-play-btn,
html body .vms-float-btn,
html body .vms-status-pill,
html body #vms-fs-close {
    border-radius: 0 !important;
}

/* ============================================================================
 * WAVE BRUTALISM â€” CHARTS/TOP MUSICS (CAPAS AUMENTADAS)
 * ============================================================================ */

/* Aumentar para 72px e aplicar brutalismo na capa */
.wave-chart-track__cover,
.wave-chart-track__cover img,
.wave-chart-track__cover-img {
    width: 72px !important;
    height: 72px !important;
    object-fit: cover !important;
    flex-shrink: 0 !important;
    border-radius: 0 !important;
}

.wave-chart-track__cover {
    border: 2px solid var(--text-primary, #000) !important;
    box-shadow: 3px 3px 0 var(--color-primary, #f00) !important;
}

/* Altura mÃ­nima do container para acomodar a capa ampliada */
.wave-chart-track,
.wave-chart-track__row {
    min-height: 80px !important;
    align-items: center !important;
}

/* ReduÃ§Ã£o para mobile conforme solicitado (56px) */
@media (max-width: 768px) {
    .wave-chart-track__cover,
    .wave-chart-track__cover img,
    .wave-chart-track__cover-img {
        width: 56px !important;
        height: 56px !important;
    }
    
    .wave-chart-track,
    .wave-chart-track__row {
        min-height: 64px !important;
    }
}

/* ============================================================================
 * WAVE BRUTALISM â€” MOBILE OVERRIDES (BORDER RADIUS & ESPAÃ‡AMENTO)
 * ============================================================================ */
@media (max-width: 768px) {
    /* 1. Zerar vazamento de cantos arredondados dentro dos cards */
    
    /* Containers primÃ¡rios */
    .wave-promo-card, .wave-podcast-card, .wave-event-card, .wave-team-card, .team-card, .wave-news-card-item {
        border-radius: 0 !important;
    }

    /* Imagens e EnvoltÃ³rios com overflow que forÃ§am curvatura */
    .wave-promo-card__img, .wave-promo-card__img img,
    .wave-event-card__img, .wave-event-card__img img, .wave-event-card__img-ph,
    .wave-podcast-card__cover, .wave-podcast-card__cover img, .wave-podcast-card__play, .wave-podcast-card__play-circle,
    .wave-team-card__avatar-wrap, .wave-team-card__avatar, .team-avatar-wrapper, .team-avatar-img, .wave-team-card__avatar-initials {
        border-radius: 0 !important;
        object-fit: cover !important;
    }

    /* Badges e Tags */
    .wave-promo-badge, 
    .wave-event-card__date-badge {
        border-radius: 0 !important;
    }

    /* 2. Nossa Equipe - Ajustes e Efeito Peek */
    /* Proteger os dots do carrossel da regra global de botÃ£o brutalista */
    .team-carousel-dots button {
        border-radius: 50% !important;
        background: var(--text-primary) !important;
        opacity: 0.5 !important;
    }
    
    .team-carousel-dots button:hover, .team-carousel-dots button[style*="scale(1.2)"] {
        opacity: 1 !important;
        background: var(--color-primary) !important;
    }

    /* Transformar o slider da Equipe e forÃ§ar Peek mantendo o Slider JS ativo */
    .wave-team-section .team-carousel-wrapper {
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        
        /* Limitamos a largura lida pelo JS a 72vw (idÃªntico a PromoÃ§Ãµes) */
        width: 72vw !important;
        overflow: visible !important;
        
        /* Garantir que o scroll native fique desligado para o JS agir livremente */
        overflow-x: visible !important;
    }

    /* Manter a lacuna (gap) idÃªntica Ã  das PromoÃ§Ãµes (12px) */
    .wave-team-section .team-carousel-inner {
        gap: 12px !important;
    }

    /* O JS injetarÃ¡ o flex baseado nos 72vw, mas garantimos esse fallback caso nÃ£o pegue de primeira */
    .wave-team-section .wave-team-card {
        flex: 0 0 72vw !important;
        min-width: 72vw !important;
    }
}


/* ============================================================================
 * WAVE BRUTALISM â€” SEÃ‡ÃƒO 11: PAGE HEADER GLOBAL (partials/page-header.php)
 * Aplica-se a todas as listing pages e pÃ¡ginas internas
 * ============================================================================ */

.page-header,
.pd-page-hero {
    border: 4px solid #000 !important;
    box-shadow: 6px 6px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--color-primary) !important;
    padding: 2.5rem 1.5rem !important;
    margin-bottom: 32px !important;
}

.page-header h1,
.page-header .page-header__title,
.pd-page-hero__title,
.pd-page-hero h1 {
    text-transform: uppercase !important;
    font-family: var(--page-title-font-family) !important;
    font-weight: var(--page-title-font-weight, 900) !important;
    letter-spacing: -0.02em !important;
    border-radius: 0 !important;
    color: var(--bg-primary, #fff) !important;
}

.page-header p,
.page-header .page-header__subtitle,
.pd-page-hero__desc {
    font-family: var(--body-font-family) !important;
    font-size: var(--body-font-size) !important;
    font-weight: var(--body-font-weight) !important;
    color: var(--bg-primary, #fff) !important;
    opacity: 0.85;
}

/* Page body spacing */
.page-body {
    padding-bottom: 60px;
}


/* ============================================================================
 * WAVE BRUTALISM â€” SEÃ‡ÃƒO 12: LISTING PAGES (nl-*, el-*, pl-*, pod-l-*)
 * Brutalist override dos cards e hero das pÃ¡ginas de listagem
 * ============================================================================ */

/* â”€â”€ Filtros de categoria â”€â”€ */
.nl-chip,
.nl-filter-chip {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    box-shadow: 3px 3px 0 var(--color-primary) !important;
    background: var(--bg-card) !important;
    color: var(--text-primary) !important;
    font-family: var(--nav-font-family) !important;
    font-weight: var(--nav-font-weight, bold) !important;
    text-transform: uppercase !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease !important;
}

.nl-chip:hover {
    transform: translate(-2px, -2px) !important;
    box-shadow: 5px 5px 0 var(--color-secondary) !important;
    background: var(--color-secondary) !important;
    color: #000 !important;
    border-color: #000 !important;
}

.nl-chip--active {
    background: var(--color-primary) !important;
    color: var(--bg-primary, #fff) !important;
    border-color: #000 !important;
    box-shadow: 3px 3px 0 #000 !important;
}

/* â”€â”€ Hero card de notÃ­cia â”€â”€ */
.nl-hero {
    border: 4px solid #000 !important;
    box-shadow: 6px 6px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--bg-card) !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}

.nl-hero:hover {
    transform: translate(-2px, -2px) !important;
    box-shadow: 8px 8px 0 var(--color-secondary) !important;
    border-color: #000 !important;
}

.nl-hero__img {
    border-radius: 0 !important;
    border-bottom: 3px solid #000 !important;
}

.nl-hero__img-wrap {
    border-radius: 0 !important;
    overflow: hidden !important;
}

.nl-hero__overlay {
    background: none !important;
}

.nl-hero__title {
    font-family: var(--page-title-font-family) !important;
    font-weight: var(--page-title-font-weight, 900) !important;
    text-transform: uppercase !important;
    color: var(--text-primary) !important;
}

.nl-hero:hover .nl-hero__title {
    color: var(--color-primary) !important;
}

.nl-hero__excerpt {
    font-family: var(--body-font-family) !important;
    font-size: var(--body-font-size) !important;
    font-weight: var(--body-font-weight) !important;
    color: var(--text-secondary) !important;
}

/* â”€â”€ Grid de cards de notÃ­cia â”€â”€ */
.nl-grid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 24px !important;
}

.nl-card {
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--bg-card) !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}

.nl-card:hover {
    transform: translate(-2px, -2px) !important;
    box-shadow: 6px 6px 0 var(--color-secondary) !important;
    border-color: #000 !important;
}

.nl-card__img-wrap {
    border-radius: 0 !important;
    overflow: hidden !important;
}

.nl-card__img {
    border-radius: 0 !important;
    border-bottom: 3px solid #000 !important;
}

.nl-card:hover .nl-card__img {
    transform: none !important;
}

.nl-card__title {
    font-family: var(--card-title-font-family) !important;
    font-size: var(--card-title-font-size) !important;
    font-weight: var(--card-title-font-weight, bold) !important;
    text-transform: uppercase !important;
    color: var(--card-title-color, var(--text-primary)) !important;
}

.nl-card:hover .nl-card__title {
    color: var(--color-primary) !important;
}

.nl-card__excerpt {
    font-family: var(--body-font-family) !important;
    font-size: var(--body-font-size) !important;
    font-weight: var(--body-font-weight) !important;
    color: var(--text-secondary) !important;
}

.nl-card__date {
    border-top: 2px solid #000 !important;
    font-family: var(--body-font-family) !important;
    color: var(--text-muted) !important;
}

.nl-card__date i {
    color: var(--color-primary) !important;
}

/* â”€â”€ Badge de categoria â”€â”€ */
.nl-badge {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
    background: var(--color-primary) !important;
    color: var(--bg-primary, #fff) !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
}

/* â”€â”€ Load more button â”€â”€ */
#loadMoreBtn {
    border-radius: 0 !important;
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    background: var(--bg-card) !important;
    color: var(--text-primary) !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}

#loadMoreBtn:hover {
    transform: translate(-2px, -2px) !important;
    box-shadow: 6px 6px 0 var(--color-secondary) !important;
    background: var(--color-secondary) !important;
    color: #000 !important;
}

/* â”€â”€ Responsive grid â”€â”€ */
@media (max-width: 1024px) {
    .nl-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

@media (max-width: 768px) {
    .nl-grid {
        grid-template-columns: 1fr !important;
    }
    .nl-hero {
        box-shadow: 3px 3px 0 var(--color-primary) !important;
    }
    .nl-card {
        box-shadow: 3px 3px 0 var(--color-primary) !important;
    }
    .nl-card:hover {
        box-shadow: 5px 5px 0 var(--color-secondary) !important;
    }
}


/* ============================================================================
 * WAVE BRUTALISM â€” SEÃ‡ÃƒO 13: SINGLE PAGES (ns-*, ev-*, pr-*, ep-*)
 * ============================================================================ */

/* â”€â”€ Hero da single page (notÃ­cia, evento, promoÃ§Ã£o, podcast) â”€â”€ */
.ns-hero,
.ev-hero,
.pr-hero,
.ep-hero,
.on-air-hero {
    border: 4px solid #000 !important;
    box-shadow: 6px 6px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--bg-card) !important;
    margin-bottom: 32px !important;
}

/* â”€â”€ Imagem de destaque da single â”€â”€ */
.ns-hero img,
.ev-hero img,
.pr-hero img,
.ep-hero img {
    width: 100% !important;
    border-radius: 0 !important;
    border-bottom: 4px solid #000 !important;
    display: block !important;
    object-fit: cover !important;
}

/* â”€â”€ TÃ­tulo principal da single â”€â”€ */
.ns-title,
.ev-title,
.pr-title,
.ep-title,
.on-air-title {
    text-transform: uppercase !important;
    font-family: var(--page-title-font-family) !important;
    font-weight: var(--page-title-font-weight, 900) !important;
    color: var(--page-title-color, var(--text-primary)) !important;
    border-radius: 0 !important;
}

/* â”€â”€ Meta (data, categoria, autor) â”€â”€ */
.ns-meta,
.ev-meta,
.pr-meta,
.ep-meta,
.ns-meta-row,
.ev-meta-row {
    font-family: var(--body-font-family) !important;
    font-size: var(--body-font-size) !important;
    text-transform: uppercase !important;
    color: var(--color-primary) !important;
}

/* â”€â”€ Badge de categoria na single â”€â”€ */
.ns-badge,
.ev-badge,
.pr-badge,
.ep-badge,
.ns-category-badge,
.news-category-badge {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
    background: var(--color-primary) !important;
    color: var(--bg-primary, #fff) !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
}

/* â”€â”€ Container do corpo de conteÃºdo â”€â”€ */
.ns-body,
.ev-body,
.pr-body,
.ep-body,
.ns-content,
.ns-body-content,
.ev-description,
.pr-description,
.ep-desc-content {
    border: 3px solid #000 !important;
    padding: 1.5rem !important;
    border-radius: 0 !important;
    background: var(--bg-card) !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    margin-bottom: 24px !important;
}

/* â”€â”€ Texto do corpo â”€â”€ */
.ns-body-content p,
.ev-description p,
.pr-description p,
.ep-desc-content p,
.pr-rules-body p,
.ns-lead {
    font-family: var(--body-font-family) !important;
    font-size: var(--body-font-size) !important;
    font-weight: var(--body-font-weight) !important;
    color: var(--body-font-color, var(--text-primary)) !important;
}

/* â”€â”€ Headings internos do corpo â”€â”€ */
.ns-body-content h2,
.ns-body-content h3,
.ev-description h2,
.ev-description h3,
.pr-description h2,
.pr-description h3,
.ep-desc-content h2,
.ep-desc-content h3 {
    font-family: var(--page-title-font-family) !important;
    font-weight: var(--page-title-font-weight, 900) !important;
    text-transform: uppercase !important;
    border-bottom: 2px solid #000 !important;
    padding-bottom: 0.5rem !important;
    margin-bottom: 1rem !important;
    border-radius: 0 !important;
}

/* â”€â”€ Blockquote â”€â”€ */
.ns-body-content blockquote,
.ev-description blockquote,
.pr-description blockquote {
    border-left: 6px solid var(--color-primary) !important;
    background: var(--bg-card) !important;
    border-radius: 0 !important;
    padding: 1rem 1.5rem !important;
    margin: 1.5rem 0 !important;
    border-right: none !important;
    border-top: none !important;
    border-bottom: none !important;
}

/* â”€â”€ Links inline â”€â”€ */
.ns-body-content a,
.ev-description a,
.pr-description a,
.ep-desc-content a {
    color: var(--color-primary) !important;
    text-decoration: underline !important;
}

.ns-body-content a:hover,
.ev-description a:hover,
.pr-description a:hover,
.ep-desc-content a:hover {
    color: var(--color-secondary) !important;
}

/* â”€â”€ Sidebar / Relacionados â”€â”€ */
.ns-sidebar,
.ev-sidebar,
.ep-sidebar {
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--bg-card) !important;
    padding: 1.5rem !important;
}

.ns-sidebar-title,
.ev-sidebar-title,
.ep-sidebar-title,
.ns-sidebar-heading {
    font-family: var(--page-title-font-family) !important;
    font-weight: var(--page-title-font-weight, 900) !important;
    text-transform: uppercase !important;
    border-bottom: 3px solid #000 !important;
    padding-bottom: 0.5rem !important;
    margin-bottom: 1rem !important;
    border-radius: 0 !important;
}

.ns-sidebar-card,
.ns-sidebar-card-item {
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--bg-card) !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}

.ns-sidebar-card:hover,
.ns-sidebar-card-item:hover {
    transform: translate(-2px, -2px) !important;
    box-shadow: 6px 6px 0 var(--color-secondary) !important;
}

.ns-sidebar-card-title {
    font-family: var(--card-title-font-family) !important;
    font-weight: var(--card-title-font-weight, bold) !important;
    text-transform: uppercase !important;
    color: var(--card-title-color, var(--text-primary)) !important;
}

/* â”€â”€ BotÃµes de aÃ§Ã£o da single â”€â”€ */
.ns-share-btn,
.ev-share-btn,
.pr-share-btn,
.ep-share-btn,
.ns-back-btn,
.ev-back-btn,
.pr-back-btn,
.ep-back-btn {
    border-radius: 0 !important;
    border: 3px solid #000 !important;
    box-shadow: 3px 3px 0 var(--color-primary) !important;
    background: var(--bg-card) !important;
    color: var(--text-primary) !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}

.ns-share-btn:hover,
.ev-share-btn:hover,
.pr-share-btn:hover,
.ep-share-btn:hover,
.ns-back-btn:hover,
.ev-back-btn:hover,
.pr-back-btn:hover,
.ep-back-btn:hover {
    transform: translate(-2px, -2px) !important;
    box-shadow: 5px 5px 0 var(--color-secondary) !important;
    background: var(--color-secondary) !important;
    color: #000 !important;
}

/* â”€â”€ Mobile single â”€â”€ */
@media (max-width: 768px) {
    .ns-body,
    .ns-body-content,
    .ev-description,
    .pr-description,
    .ep-desc-content {
        padding: 1rem !important;
    }
}


/* ============================================================================
 * WAVE BRUTALISM â€” SEÃ‡ÃƒO 14: PÃGINA EQUIPE (pages/team.php)
 * ============================================================================ */

/* Cards de membro (version pÃ¡ginas globais) */
.team-card,
.team-member-card,
.team-grid-card {
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--bg-card) !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}

.team-card:hover,
.team-member-card:hover,
.team-grid-card:hover {
    transform: translate(-2px, -2px) !important;
    box-shadow: 6px 6px 0 var(--color-secondary) !important;
}

/* Avatar quadrado */
.team-avatar,
.team-avatar-img,
.team-avatar-wrapper img,
.team-member-photo,
.team-member-photo img {
    border-radius: 0 !important;
    border: 4px solid #000 !important;
    box-shadow: 3px 3px 0 var(--color-primary) !important;
    object-fit: cover !important;
}

/* Nome do membro */
.team-name,
.team-member-name,
.team-card__name {
    text-transform: uppercase !important;
    font-family: var(--card-title-font-family) !important;
    font-weight: var(--card-title-font-weight, bold) !important;
    color: var(--card-title-color, var(--text-primary)) !important;
}

/* Cargo */
.team-role,
.team-member-role,
.team-card__role {
    font-family: var(--body-font-family) !important;
    font-size: var(--body-font-size) !important;
    color: var(--body-font-color, var(--text-secondary)) !important;
    text-transform: uppercase !important;
}

/* Bio */
.team-bio,
.team-member-bio,
.team-card__bio {
    font-family: var(--body-font-family) !important;
    font-size: var(--body-font-size) !important;
    font-weight: var(--body-font-weight) !important;
    color: var(--body-font-color, var(--text-secondary)) !important;
}

/* Ãcones de social */
.team-social-btn,
.team-social-icon,
.team-social a {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    background: var(--bg-card) !important;
    color: var(--text-primary) !important;
    transition: transform 0.15s ease, background 0.15s ease !important;
}

.team-social-btn:hover,
.team-social-icon:hover,
.team-social a:hover {
    background: var(--color-secondary) !important;
    color: #000 !important;
    transform: translate(-1px, -1px) !important;
    box-shadow: 2px 2px 0 #000 !important;
}

/* Modal de equipe */
.team-modal,
.team-modal-backdrop {
    border-radius: 0 !important;
}

.team-modal-inner,
.team-modal-content {
    border: 4px solid #000 !important;
    box-shadow: 8px 8px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--bg-card) !important;
}

.team-modal__close {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
}


/* ============================================================================
 * WAVE BRUTALISM â€” SEÃ‡ÃƒO 15: PROGRAMAÃ‡ÃƒO (pages/programacao.php)
 * ============================================================================ */

/* Tabs de dia da semana */
.prog-tabs,
.schedule-tabs,
.prog-tab-list {
    border-radius: 0 !important;
    border-bottom: 3px solid #000 !important;
    gap: 4px !important;
}

.prog-tab,
.schedule-tab,
.prog-tab-btn {
    border-radius: 0 !important;
    border: 3px solid #000 !important;
    background: var(--bg-card) !important;
    color: var(--text-primary) !important;
    font-family: var(--nav-font-family) !important;
    font-size: var(--nav-font-size) !important;
    font-weight: var(--nav-font-weight, bold) !important;
    text-transform: uppercase !important;
    box-shadow: none !important;
    transition: transform 0.1s ease, background 0.1s ease !important;
    cursor: pointer !important;
}

.prog-tab:hover,
.schedule-tab:hover,
.prog-tab-btn:hover {
    background: var(--color-primary) !important;
    color: var(--bg-primary, #fff) !important;
    box-shadow: 3px 3px 0 #000 !important;
    transform: translate(-1px, -1px) !important;
}

.prog-tab--active,
.schedule-tab--active,
.prog-tab-btn.active,
.prog-tab.active,
.schedule-tab.active {
    background: var(--color-primary) !important;
    color: var(--bg-primary, #fff) !important;
    border-color: #000 !important;
    box-shadow: 3px 3px 0 #000 !important;
}

/* Linhas de programaÃ§Ã£o */
.prog-item,
.schedule-item,
.prog-row,
.schedule-row {
    border-bottom: 2px solid #000 !important;
    border-radius: 0 !important;
    padding: 12px 0 !important;
    transition: background 0.1s ease !important;
}

.prog-item:hover,
.schedule-item:hover,
.prog-row:hover,
.schedule-row:hover {
    background: rgba(var(--primary-rgb, 0,0,0), 0.08) !important;
}

/* HorÃ¡rio */
.prog-time,
.schedule-time {
    font-family: var(--page-title-font-family) !important;
    font-weight: var(--page-title-font-weight, 900) !important;
    color: var(--color-primary) !important;
    text-transform: uppercase !important;
}

/* Nome do programa */
.prog-name,
.schedule-name,
.prog-show-name {
    font-family: var(--card-title-font-family) !important;
    font-weight: var(--card-title-font-weight, bold) !important;
    color: var(--card-title-color, var(--text-primary)) !important;
    text-transform: uppercase !important;
}

/* DescriÃ§Ã£o do programa */
.prog-desc,
.schedule-desc,
.prog-show-desc {
    font-family: var(--body-font-family) !important;
    font-size: var(--body-font-size) !important;
    font-weight: var(--body-font-weight) !important;
    color: var(--body-font-color, var(--text-secondary)) !important;
}

/* Tabs scroll no mobile */
@media (max-width: 768px) {
    .prog-tabs,
    .schedule-tabs,
    .prog-tab-list {
        overflow-x: auto !important;
        white-space: nowrap !important;
        display: flex !important;
    }
}


/* ============================================================================
 * WAVE BRUTALISM â€” SEÃ‡ÃƒO 16: CONTATO (pages/contact.php)
 * ============================================================================ */

/* Container do formulÃ¡rio */
.contact-form,
.contact-container,
.contact-section {
    border: 3px solid #000 !important;
    box-shadow: 6px 6px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--bg-card) !important;
    padding: 2rem !important;
}

/* Labels */
.contact-form label,
.contact-label {
    text-transform: uppercase !important;
    font-family: var(--body-font-family) !important;
    font-weight: bold !important;
    color: var(--text-primary) !important;
    display: block !important;
    margin-bottom: 6px !important;
}

/* Inputs, textareas, selects â€” jÃ¡ cobertos pela regra global, reforÃ§ar aqui */
.contact-form input,
.contact-form textarea,
.contact-form select {
    border: 3px solid #000 !important;
    border-radius: 0 !important;
    background: var(--bg-card) !important;
    color: var(--body-font-color, var(--text-primary)) !important;
    font-family: var(--body-font-family) !important;
    font-size: var(--body-font-size) !important;
    width: 100% !important;
    padding: 12px 14px !important;
    transition: box-shadow 0.15s ease !important;
    box-shadow: none !important;
}

.contact-form input:focus,
.contact-form textarea:focus,
.contact-form select:focus {
    outline: none !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-color: #000 !important;
}

/* BotÃ£o de envio */
.contact-submit,
.contact-form [type="submit"] {
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--color-primary) !important;
    color: var(--bg-primary, #fff) !important;
    font-family: var(--body-font-family) !important;
    font-weight: bold !important;
    text-transform: uppercase !important;
    padding: 12px 24px !important;
    cursor: pointer !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}

.contact-submit:hover,
.contact-form [type="submit"]:hover {
    transform: translate(-2px, -2px) !important;
    box-shadow: 6px 6px 0 var(--color-secondary) !important;
    background: var(--color-secondary) !important;
    color: #000 !important;
}

/* Info de contato lateral */
.contact-info,
.contact-info-block {
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--bg-card) !important;
    padding: 1.5rem !important;
}

.contact-info-label {
    text-transform: uppercase !important;
    font-family: var(--body-font-family) !important;
    font-weight: bold !important;
    color: var(--color-primary) !important;
}

/* Mobile */
@media (max-width: 768px) {
    .contact-form input,
    .contact-form textarea,
    .contact-form select {
        width: 100% !important;
    }
}


/* ============================================================================
 * WAVE BRUTALISM â€” SEÃ‡ÃƒO 17: PÃGINAS DINÃ‚MICAS / SOBRE / PAGE-DEFAULT
 * ============================================================================ */

/* Blocos de texto */
.bloco-texto,
.pd-compat-text,
.pd-compat-rich,
.pd-page-content,
.about-content,
.sobre-content {
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--bg-card) !important;
    padding: 1.5rem !important;
    margin-bottom: 24px !important;
}

/* Imagens institucionais */
.about-image,
.sobre-image,
.institutional-img,
.pd-page-image {
    border: 4px solid #000 !important;
    border-radius: 0 !important;
    box-shadow: 6px 6px 0 var(--color-primary) !important;
    display: block !important;
    max-width: 100% !important;
    object-fit: cover !important;
}

/* PaginaÃ§Ã£o global â€” para todas as listing pages */
.pagination,
.paginacao {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    justify-content: center !important;
    margin-top: 40px !important;
}

.pagination a,
.pagination button,
.paginacao a,
.paginacao button {
    border: 3px solid #000 !important;
    box-shadow: 3px 3px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--bg-card) !important;
    color: var(--text-primary) !important;
    font-family: var(--nav-font-family) !important;
    font-weight: var(--nav-font-weight, bold) !important;
    text-transform: uppercase !important;
    padding: 8px 16px !important;
    text-decoration: none !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}

.pagination a:hover,
.pagination button:hover,
.paginacao a:hover,
.paginacao button:hover {
    transform: translate(-2px, -2px) !important;
    box-shadow: 5px 5px 0 var(--color-secondary) !important;
    background: var(--color-secondary) !important;
    color: #000 !important;
}

.pagination .active,
.pagination .current,
.paginacao .active,
.paginacao .current {
    background: var(--color-primary) !important;
    color: var(--bg-primary, #fff) !important;
    border-color: #000 !important;
    box-shadow: 3px 3px 0 #000 !important;
}


/* ============================================================================
 * WAVE BRUTALISM â€” SEÃ‡ÃƒO 18: PAGE BUILDER â€” PÃGINAS DINÃ‚MICAS
 * Seletores confirmados contra pages/page-default.php
 * Classes reais: .pd-cover-image, .pd-page-section, .pd-page-content,
 *                .pd-blocos-wrapper, .bloco, .bloco-{tipo},
 *                .pd-compat-text, .pd-compat-rich, .pd-back-btn
 * ============================================================================ */


/* â”€â”€ 18A: Imagem de capa (.pd-cover-image) â”€â”€ */

.pd-cover-image {
    border: 4px solid #000 !important;
    box-shadow: 6px 6px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    overflow: hidden !important;
    margin-bottom: 2rem !important;
}

.pd-cover-image img {
    display: block !important;
    width: 100% !important;
    border-radius: 0 !important;
    object-fit: cover !important;
}


/* â”€â”€ 18B: Estrutura da seÃ§Ã£o e conteÃºdo â”€â”€ */

.pd-page-section {
    padding: 0 0 3rem 0 !important;
}

.pd-page-content {
    padding: 0 !important;
}

.pd-blocos-wrapper {
    display: flex !important;
    flex-direction: column !important;
    gap: 2rem !important;
}


/* â”€â”€ 18C: Wrapper externo de cada bloco (.bloco) â”€â”€
   Estrutura de page-default.php linha 198:
   <div class="bloco bloco-{tipo}">â€¦conteÃºdoâ€¦</div>
   Sem borda no .bloco wrapper â€” a borda vai no conteÃºdo interno
   para evitar dupla moldura â”€â”€ */

.bloco {
    border: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    background: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
}


/* â”€â”€ 18D: Bloco de texto (.bloco-texto) â”€â”€
   Uma Ãºnica moldura no container, sem bordas nos elementos internos â”€â”€ */

.bloco-texto {
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--bg-card) !important;
    padding: 1.5rem !important;
}

/* Remover bordas residuais em qualquer elemento filho direto */
.bloco-texto > * {
    border: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    background: transparent !important;
}

/* ParÃ¡grafos */
.bloco-texto p {
    font-family: var(--body-font-family) !important;
    font-size: var(--body-font-size) !important;
    font-weight: var(--body-font-weight) !important;
    color: var(--body-font-color, var(--text-primary)) !important;
    line-height: 1.7 !important;
    margin-bottom: 1rem !important;
    border: none !important;
    box-shadow: none !important;
}

.bloco-texto p:last-child {
    margin-bottom: 0 !important;
}

/* Headings internos */
.bloco-texto h2,
.bloco-texto h3 {
    font-family: var(--page-title-font-family) !important;
    font-weight: var(--page-title-font-weight, 900) !important;
    color: var(--page-title-color, var(--text-primary)) !important;
    text-transform: uppercase !important;
    border-bottom: 2px solid #000 !important;
    padding-bottom: 0.4rem !important;
    margin-bottom: 1rem !important;
    border-top: none !important;
    border-left: none !important;
    border-right: none !important;
    box-shadow: none !important;
    background: transparent !important;
}

.bloco-texto h4,
.bloco-texto h5,
.bloco-texto h6 {
    font-family: var(--page-title-font-family) !important;
    font-weight: var(--page-title-font-weight, 900) !important;
    color: var(--page-title-color, var(--text-primary)) !important;
    text-transform: uppercase !important;
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
    margin-bottom: 0.75rem !important;
}

/* Links dentro do texto */
.bloco-texto a {
    color: var(--color-primary) !important;
    text-decoration: underline !important;
    border: none !important;
    box-shadow: none !important;
}

.bloco-texto a:hover {
    color: var(--color-secondary) !important;
}

/* Listas */
.bloco-texto ul,
.bloco-texto ol {
    padding-left: 1.5rem !important;
    margin-bottom: 1rem !important;
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
}

.bloco-texto li {
    font-family: var(--body-font-family) !important;
    font-weight: var(--body-font-weight) !important;
    color: var(--body-font-color, var(--text-primary)) !important;
    margin-bottom: 0.4rem !important;
    border: none !important;
    box-shadow: none !important;
}

/* Blockquote */
.bloco-texto blockquote {
    border-left: 6px solid var(--color-primary) !important;
    border-top: none !important;
    border-right: none !important;
    border-bottom: none !important;
    box-shadow: none !important;
    background: transparent !important;
    border-radius: 0 !important;
    padding: 0.75rem 1.25rem !important;
    margin: 1rem 0 !important;
}

/* CÃ³digo inline */
.bloco-texto code {
    border: 1px solid #000 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    background: var(--bg-secondary, var(--bg-card)) !important;
    padding: 0.15em 0.4em !important;
}

/* Bloco de cÃ³digo */
.bloco-texto pre {
    border: 2px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--bg-secondary, var(--bg-card)) !important;
    padding: 1rem !important;
    overflow-x: auto !important;
}


/* â”€â”€ 18E: Bloco de imagem (.bloco-imagem) â”€â”€ */

.bloco-imagem {
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    overflow: hidden !important;
}

.bloco-imagem-full {
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    overflow: hidden !important;
    width: 100% !important;
}

.bloco-imagem img,
.bloco-imagem-full img {
    display: block !important;
    width: 100% !important;
    border-radius: 0 !important;
    object-fit: cover !important;
}

.bloco-imagem figcaption,
.bloco-imagem-full figcaption {
    padding: 0.5rem 0.75rem !important;
    border-top: 2px solid #000 !important;
    font-family: var(--body-font-family) !important;
    font-size: var(--body-font-size) !important;
    color: var(--text-secondary) !important;
    background: var(--bg-card) !important;
}


/* â”€â”€ 18F: Bloco de vÃ­deo (.bloco-video) â”€â”€ */

.bloco-video {
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    overflow: hidden !important;
    position: relative !important;
    aspect-ratio: 16 / 9 !important;
}

.bloco-video iframe {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    border: none !important;
    border-radius: 0 !important;
}


/* â”€â”€ 18G: Bloco CTA (.bloco-cta) â”€â”€ */

.bloco-cta {
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    padding: 2rem !important;
    text-align: center !important;
}

.bloco-cta h2 {
    font-family: var(--page-title-font-family) !important;
    font-weight: var(--page-title-font-weight, 900) !important;
    text-transform: uppercase !important;
    color: var(--page-title-color, var(--text-primary)) !important;
    margin-bottom: 0.75rem !important;
    border: none !important;
    box-shadow: none !important;
}

.bloco-cta p {
    font-family: var(--body-font-family) !important;
    font-size: var(--body-font-size) !important;
    color: var(--body-font-color, var(--text-secondary)) !important;
    margin-bottom: 1.25rem !important;
    border: none !important;
    box-shadow: none !important;
}

.bloco-cta-btn {
    display: inline-block !important;
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--bg-card) !important;
    color: var(--text-primary) !important;
    font-family: var(--body-font-family) !important;
    font-weight: bold !important;
    text-transform: uppercase !important;
    padding: 0.75rem 1.5rem !important;
    text-decoration: none !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}

.bloco-cta-btn:hover {
    transform: translate(-2px, -2px) !important;
    box-shadow: 6px 6px 0 var(--color-secondary) !important;
    background: var(--color-secondary) !important;
    color: #000 !important;
    text-decoration: none !important;
}


/* â”€â”€ 18H: Bloco botÃ£o (.bloco-botao / .bloco-botao-link) â”€â”€ */

.bloco-botao {
    border: none !important;
    box-shadow: none !important;
}

.bloco-botao-link {
    display: inline-block !important;
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--color-primary) !important;
    color: var(--bg-primary, #fff) !important;
    font-family: var(--body-font-family) !important;
    font-weight: bold !important;
    text-transform: uppercase !important;
    padding: 0.75rem 2rem !important;
    text-decoration: none !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}

.bloco-botao-link.botao-secundario {
    background: var(--bg-card) !important;
    color: var(--text-primary) !important;
}

.bloco-botao-link:hover {
    transform: translate(-2px, -2px) !important;
    box-shadow: 6px 6px 0 var(--color-secondary) !important;
    background: var(--color-secondary) !important;
    color: #000 !important;
    text-decoration: none !important;
}

.bloco-botao.align-left  { text-align: left !important; }
.bloco-botao.align-right { text-align: right !important; }
.bloco-botao.align-center { text-align: center !important; }


/* â”€â”€ 18I: Bloco formulÃ¡rio (.bloco-formulario) â”€â”€ */

.bloco-formulario {
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--bg-card) !important;
    padding: 1.5rem !important;
}

.bloco-formulario .form-titulo {
    font-family: var(--page-title-font-family) !important;
    font-weight: var(--page-title-font-weight, 900) !important;
    text-transform: uppercase !important;
    border-bottom: 3px solid #000 !important;
    padding-bottom: 0.5rem !important;
    margin-bottom: 1.25rem !important;
    box-shadow: none !important;
    background: transparent !important;
}

.bloco-formulario .form-field-wrap {
    display: flex !important;
    flex-direction: column !important;
    gap: 4px !important;
    margin-bottom: 1rem !important;
    border: none !important;
    box-shadow: none !important;
}

.bloco-formulario label {
    font-family: var(--body-font-family) !important;
    font-weight: bold !important;
    text-transform: uppercase !important;
    color: var(--text-primary) !important;
    border: none !important;
    box-shadow: none !important;
}

.bloco-formulario .req-star {
    color: var(--color-primary) !important;
}

.bloco-formulario input,
.bloco-formulario textarea,
.bloco-formulario select {
    border: 3px solid #000 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: var(--bg-card) !important;
    color: var(--body-font-color, var(--text-primary)) !important;
    font-family: var(--body-font-family) !important;
    font-size: var(--body-font-size) !important;
    padding: 10px 14px !important;
    width: 100% !important;
    transition: box-shadow 0.15s ease !important;
}

.bloco-formulario input:focus,
.bloco-formulario textarea:focus,
.bloco-formulario select:focus {
    outline: none !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
}

.bloco-formulario .form-submit-btn {
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--color-primary) !important;
    color: var(--bg-primary, #fff) !important;
    font-family: var(--body-font-family) !important;
    font-weight: bold !important;
    text-transform: uppercase !important;
    padding: 0.75rem 1.75rem !important;
    cursor: pointer !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
    margin-top: 0.5rem !important;
}

.bloco-formulario .form-submit-btn:hover {
    transform: translate(-2px, -2px) !important;
    box-shadow: 6px 6px 0 var(--color-secondary) !important;
    background: var(--color-secondary) !important;
    color: #000 !important;
}

.bloco-formulario .form-msg.error {
    border: 2px solid #000 !important;
    border-radius: 0 !important;
    box-shadow: 3px 3px 0 var(--color-primary) !important;
    padding: 0.75rem 1rem !important;
    margin-top: 0.75rem !important;
    color: var(--text-primary) !important;
    background: var(--bg-card) !important;
}

.bloco-formulario .form-success {
    border: 3px solid #000 !important;
    border-radius: 0 !important;
    box-shadow: 4px 4px 0 var(--color-secondary) !important;
    padding: 1rem !important;
    background: var(--bg-card) !important;
    color: var(--text-primary) !important;
    font-weight: bold !important;
    text-transform: uppercase !important;
}


/* â”€â”€ 18J: Divisor (.bloco-divisor) â”€â”€ */

.bloco-divisor {
    border: none !important;
    border-top: 3px solid #000 !important;
    box-shadow: none !important;
    margin: 0 !important;
}


/* â”€â”€ 18K: Compatibilidade retroativa (.pd-compat-text / .pd-compat-rich) â”€â”€ */

.pd-compat-text {
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--bg-card) !important;
    padding: 1.5rem !important;
    font-family: var(--body-font-family) !important;
    font-size: var(--body-font-size) !important;
    color: var(--body-font-color, var(--text-primary)) !important;
    margin-bottom: 1.5rem !important;
}

.pd-compat-rich {
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--bg-card) !important;
    padding: 1.5rem !important;
    margin-bottom: 1.5rem !important;
}

/* Elementos internos do rich sem bordas adicionais */
.pd-compat-rich p,
.pd-compat-rich li,
.pd-compat-rich a {
    border: none !important;
    box-shadow: none !important;
}

.pd-compat-rich a {
    color: var(--color-primary) !important;
    text-decoration: underline !important;
}

.pd-compat-rich a:hover {
    color: var(--color-secondary) !important;
}

.pd-compat-rich h2,
.pd-compat-rich h3 {
    text-transform: uppercase !important;
    border-bottom: 2px solid #000 !important;
    border-top: none !important;
    border-left: none !important;
    border-right: none !important;
    box-shadow: none !important;
    padding-bottom: 0.4rem !important;
    margin-bottom: 1rem !important;
}


/* â”€â”€ 18L: BotÃ£o Voltar (.pd-back-btn) â”€â”€ */

.pd-back-btn {
    margin-top: 2.5rem !important;
    border-top: 2px solid #000 !important;
    padding-top: 1.5rem !important;
}

.pd-back-btn .btn {
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--bg-card) !important;
    color: var(--text-primary) !important;
    font-weight: bold !important;
    text-transform: uppercase !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
    text-decoration: none !important;
}

.pd-back-btn .btn:hover {
    transform: translate(-2px, -2px) !important;
    box-shadow: 6px 6px 0 var(--color-secondary) !important;
    background: var(--color-secondary) !important;
    color: #000 !important;
}

.pd-empty {
    font-family: var(--body-font-family) !important;
    color: var(--text-muted) !important;
    font-style: italic !important;
    padding: 2rem 0 !important;
}


/* â”€â”€ 18M: Mobile â”€â”€ */

@media (max-width: 768px) {
    .pd-blocos-wrapper {
        gap: 1.5rem !important;
    }

    .pd-cover-image {
        margin-bottom: 1.5rem !important;
        box-shadow: 3px 3px 0 var(--color-primary) !important;
    }

    .bloco-texto {
        padding: 1rem !important;
        box-shadow: 3px 3px 0 var(--color-primary) !important;
    }

    .bloco-imagem,
    .bloco-imagem-full {
        box-shadow: 3px 3px 0 var(--color-primary) !important;
    }

    .bloco-video {
        box-shadow: 3px 3px 0 var(--color-primary) !important;
    }

    .bloco-cta {
        padding: 1.25rem !important;
        box-shadow: 3px 3px 0 var(--color-primary) !important;
    }

    .bloco-formulario {
        padding: 1rem !important;
        box-shadow: 3px 3px 0 var(--color-primary) !important;
    }

    .pd-compat-text,
    .pd-compat-rich {
        padding: 1rem !important;
        box-shadow: 3px 3px 0 var(--color-primary) !important;
    }

    /* Garantir que NÃƒO hÃ¡ override de font-size no mobile */
}


/* ============================================================================
 * WAVE BRUTALISM â€” SEÃ‡ÃƒO 19: REFINAMENTO MINIMALISTA â€” PAGE BUILDER (revisÃ£o 2)
 * Sobrescreve pontos especÃ­ficos da SeÃ§Ã£o 18.
 * Hierarquia visual: imagem=pesado / botÃ£o=mÃ©dio / texto=leve / form=leve
 * Classes reais confirmadas via pages/page-default.php:
 *   .pd-cover-image, .pd-blocos-wrapper, .bloco, .bloco-{tipo},
 *   .bloco-texto, .bloco-imagem, .bloco-imagem-full, .bloco-video,
 *   .bloco-cta, .bloco-cta-btn, .bloco-botao, .bloco-botao-link,
 *   .bloco-formulario, .pd-compat-text, .pd-compat-rich
 * ============================================================================ */


/* â”€â”€ 19A: Gap entre blocos â€” espaÃ§o como separador principal â”€â”€ */

.pd-blocos-wrapper {
    gap: 2rem !important;
}


/* â”€â”€ 19B: Wrapper .bloco â€” sem qualquer marca visual â”€â”€ */

.bloco {
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
}


/* â”€â”€ 19C: Imagem de capa (.pd-cover-image) â€” Ã¢ncora visual mÃ¡xima â”€â”€
   MantÃ©m peso total: 4px + sombra 6px â€” sem alteraÃ§Ã£o da SeÃ§Ã£o 18 â”€â”€ */

.pd-cover-image {
    border: 4px solid #000 !important;
    box-shadow: 6px 6px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    overflow: hidden !important;
    margin-bottom: 2rem !important;
}

.pd-cover-image img {
    display: block !important;
    width: 100% !important;
    border-radius: 0 !important;
    object-fit: cover !important;
}


/* â”€â”€ 19D: Bloco de texto (.bloco-texto) â€” caixa sutil, sem sombra â”€â”€
   Sobrescreve: border 3pxâ†’1px, remove box-shadow, fundo transparente â”€â”€ */

.bloco-texto {
    border: 1px solid #000 !important;
    box-shadow: none !important;
    background: transparent !important;
    border-radius: 0 !important;
    padding: 1.5rem !important;
}

/* Filhos diretos do bloco de texto: sem nenhuma moldura prÃ³pria */
.bloco-texto > * {
    border: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    background: transparent !important;
}

/* ParÃ¡grafos */
.bloco-texto p {
    font-family: var(--body-font-family) !important;
    font-size: var(--body-font-size) !important;
    font-weight: var(--body-font-weight) !important;
    color: var(--body-font-color, var(--text-primary)) !important;
    line-height: 1.7 !important;
    margin-bottom: 1rem !important;
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
}

.bloco-texto p:last-child {
    margin-bottom: 0 !important;
}

/* Headings: Ãºnica exceÃ§Ã£o â€” borda inferior como separador */
.bloco-texto h2,
.bloco-texto h3 {
    font-family: var(--page-title-font-family) !important;
    font-weight: var(--page-title-font-weight, 900) !important;
    color: var(--page-title-color, var(--text-primary)) !important;
    text-transform: uppercase !important;
    border-top: none !important;
    border-left: none !important;
    border-right: none !important;
    border-bottom: 2px solid #000 !important;    /* Ãºnica borda intencional */
    box-shadow: none !important;
    background: transparent !important;
    padding-bottom: 0.4rem !important;
    margin-bottom: 1rem !important;
}

.bloco-texto h4,
.bloco-texto h5,
.bloco-texto h6 {
    font-family: var(--page-title-font-family) !important;
    font-weight: var(--page-title-font-weight, 900) !important;
    color: var(--page-title-color, var(--text-primary)) !important;
    text-transform: uppercase !important;
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
    margin-bottom: 0.75rem !important;
}

/* Links dentro do texto */
.bloco-texto a {
    color: var(--color-primary) !important;
    text-decoration: underline !important;
    border: none !important;
    box-shadow: none !important;
}

.bloco-texto a:hover {
    color: var(--color-secondary) !important;
}

/* Listas */
.bloco-texto ul,
.bloco-texto ol {
    padding-left: 1.5rem !important;
    margin-bottom: 1rem !important;
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
}

.bloco-texto li {
    font-family: var(--body-font-family) !important;
    font-weight: var(--body-font-weight) !important;
    color: var(--body-font-color, var(--text-primary)) !important;
    margin-bottom: 0.4rem !important;
    border: none !important;
    box-shadow: none !important;
}

/* Blockquote: apenas borda esquerda como acento */
.bloco-texto blockquote {
    border-left: 4px solid var(--color-primary) !important;
    border-top: none !important;
    border-right: none !important;
    border-bottom: none !important;
    box-shadow: none !important;
    background: transparent !important;
    border-radius: 0 !important;
    padding: 0.75rem 1.25rem !important;
    margin: 1rem 0 !important;
}

/* CÃ³digo inline */
.bloco-texto code {
    border: 1px solid #000 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    background: transparent !important;
    padding: 0.15em 0.4em !important;
}

/* Bloco de cÃ³digo */
.bloco-texto pre {
    border: 1px solid #000 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    background: transparent !important;
    padding: 1rem !important;
    overflow-x: auto !important;
}


/* â”€â”€ 19E: Bloco de imagem interna (.bloco-imagem / .bloco-imagem-full) â”€â”€
   Peso intermediÃ¡rio â€” mantido da SeÃ§Ã£o 18 â”€â”€ */

.bloco-imagem,
.bloco-imagem-full {
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    overflow: hidden !important;
}

.bloco-imagem img,
.bloco-imagem-full img {
    display: block !important;
    width: 100% !important;
    border-radius: 0 !important;
    object-fit: cover !important;
}

.bloco-imagem figcaption,
.bloco-imagem-full figcaption {
    border-top: 2px solid #000 !important;
    border-left: none !important;
    border-right: none !important;
    border-bottom: none !important;
    box-shadow: none !important;
    padding: 0.5rem 0.75rem !important;
    font-family: var(--body-font-family) !important;
    color: var(--text-secondary) !important;
    background: transparent !important;
}


/* â”€â”€ 19F: Bloco de vÃ­deo (.bloco-video) â€” peso intermediÃ¡rio â”€â”€ */

.bloco-video {
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    overflow: hidden !important;
    aspect-ratio: 16 / 9 !important;
    position: relative !important;
}

.bloco-video iframe {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}


/* â”€â”€ 19G: Bloco CTA (.bloco-cta / .bloco-cta-btn) â”€â”€ */

.bloco-cta {
    border: 1px solid #000 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    padding: 2rem !important;
    background: transparent !important;
    text-align: center !important;
}

.bloco-cta h2 {
    font-family: var(--page-title-font-family) !important;
    font-weight: var(--page-title-font-weight, 900) !important;
    text-transform: uppercase !important;
    color: var(--page-title-color, var(--text-primary)) !important;
    margin-bottom: 0.75rem !important;
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
}

.bloco-cta p {
    font-family: var(--body-font-family) !important;
    font-size: var(--body-font-size) !important;
    color: var(--body-font-color, var(--text-secondary)) !important;
    margin-bottom: 1.25rem !important;
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
}

/* BotÃ£o CTA: peso mÃ©dio */
.bloco-cta-btn {
    display: inline-block !important;
    border: 3px solid #000 !important;
    box-shadow: 3px 3px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--color-primary) !important;
    color: var(--bg-primary, #fff) !important;
    font-family: var(--body-font-family) !important;
    font-weight: bold !important;
    text-transform: uppercase !important;
    padding: 0.7rem 1.5rem !important;
    text-decoration: none !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}

.bloco-cta-btn:hover {
    transform: translate(-2px, -2px) !important;
    box-shadow: 5px 5px 0 var(--color-secondary) !important;
    background: var(--color-secondary) !important;
    color: #000 !important;
    text-decoration: none !important;
}


/* â”€â”€ 19H: Bloco de botÃ£o (.bloco-botao / .bloco-botao-link) â€” peso mÃ©dio â”€â”€ */

.bloco-botao {
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
}

.bloco-botao-link {
    display: inline-block !important;
    border: 3px solid #000 !important;
    box-shadow: 3px 3px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--color-primary) !important;
    color: var(--bg-primary, #fff) !important;
    font-family: var(--body-font-family) !important;
    font-weight: bold !important;
    text-transform: uppercase !important;
    padding: 0.7rem 2rem !important;
    text-decoration: none !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}

.bloco-botao-link.botao-secundario {
    background: transparent !important;
    color: var(--text-primary) !important;
    border-color: #000 !important;
}

.bloco-botao-link:hover {
    transform: translate(-2px, -2px) !important;
    box-shadow: 5px 5px 0 var(--color-secondary) !important;
    background: var(--color-secondary) !important;
    color: #000 !important;
    text-decoration: none !important;
}


/* â”€â”€ 19I: FormulÃ¡rio (.bloco-formulario) â€” moldura sutil + inputs com borda â”€â”€
   Sobrescreve: border 3pxâ†’1px, remove box-shadow do bloco â”€â”€ */

.bloco-formulario {
    border: 1px solid #000 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    background: transparent !important;
    padding: 1.5rem !important;
}

.bloco-formulario .form-titulo {
    font-family: var(--page-title-font-family) !important;
    font-weight: var(--page-title-font-weight, 900) !important;
    text-transform: uppercase !important;
    border-top: none !important;
    border-left: none !important;
    border-right: none !important;
    border-bottom: 2px solid #000 !important;
    box-shadow: none !important;
    background: transparent !important;
    padding-bottom: 0.5rem !important;
    margin-bottom: 1.25rem !important;
}

.bloco-formulario .form-field-wrap {
    display: flex !important;
    flex-direction: column !important;
    gap: 4px !important;
    margin-bottom: 1rem !important;
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
}

.bloco-formulario label {
    font-family: var(--body-font-family) !important;
    font-weight: bold !important;
    text-transform: uppercase !important;
    color: var(--text-primary) !important;
    border: none !important;
    box-shadow: none !important;
}

.bloco-formulario .req-star {
    color: var(--color-primary) !important;
}

/* Inputs: 2px (vs 3px da SeÃ§Ã£o 18) â€” peso leve */
.bloco-formulario input,
.bloco-formulario textarea,
.bloco-formulario select {
    border: 2px solid #000 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: var(--bg-card) !important;
    color: var(--body-font-color, var(--text-primary)) !important;
    font-family: var(--body-font-family) !important;
    font-size: var(--body-font-size) !important;
    padding: 0.6rem 0.8rem !important;
    width: 100% !important;
    margin-bottom: 1rem !important;
    transition: box-shadow 0.15s ease !important;
}

.bloco-formulario input:focus,
.bloco-formulario textarea:focus,
.bloco-formulario select:focus {
    outline: none !important;
    box-shadow: 3px 3px 0 var(--color-primary) !important;
    border-color: #000 !important;
}

/* BotÃ£o submit: peso mÃ©dio */
.bloco-formulario .form-submit-btn {
    border: 3px solid #000 !important;
    box-shadow: 3px 3px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--color-primary) !important;
    color: var(--bg-primary, #fff) !important;
    font-family: var(--body-font-family) !important;
    font-weight: bold !important;
    text-transform: uppercase !important;
    padding: 0.7rem 1.5rem !important;
    cursor: pointer !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
    margin-top: 0.5rem !important;
}

.bloco-formulario .form-submit-btn:hover {
    transform: translate(-2px, -2px) !important;
    box-shadow: 5px 5px 0 var(--color-secondary) !important;
    background: var(--color-secondary) !important;
    color: #000 !important;
}

.bloco-formulario .form-msg.error {
    border: 1px solid #000 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    padding: 0.75rem 1rem !important;
    margin-top: 0.75rem !important;
    background: transparent !important;
}

.bloco-formulario .form-success {
    border: 2px solid #000 !important;
    box-shadow: 3px 3px 0 var(--color-secondary) !important;
    border-radius: 0 !important;
    padding: 1rem !important;
    background: transparent !important;
    font-weight: bold !important;
    text-transform: uppercase !important;
}


/* â”€â”€ 19J: Divisor (.bloco-divisor) â”€â”€ */

.bloco-divisor {
    border: none !important;
    border-top: 2px solid #000 !important;
    box-shadow: none !important;
    margin: 0 !important;
}


/* â”€â”€ 19K: Compatibilidade retroativa (.pd-compat-text / .pd-compat-rich) â”€â”€
   Mesma lÃ³gica: bordas sutis, sem sombra â”€â”€ */

.pd-compat-text {
    border: 1px solid #000 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    background: transparent !important;
    padding: 1.5rem !important;
    font-family: var(--body-font-family) !important;
    font-size: var(--body-font-size) !important;
    color: var(--body-font-color, var(--text-primary)) !important;
    margin-bottom: 1.5rem !important;
}

.pd-compat-rich {
    border: 1px solid #000 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    background: transparent !important;
    padding: 1.5rem !important;
    margin-bottom: 1.5rem !important;
}

.pd-compat-rich > * {
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
}

.pd-compat-rich a {
    color: var(--color-primary) !important;
    text-decoration: underline !important;
}

.pd-compat-rich a:hover {
    color: var(--color-secondary) !important;
}

.pd-compat-rich h2,
.pd-compat-rich h3 {
    text-transform: uppercase !important;
    border-top: none !important;
    border-left: none !important;
    border-right: none !important;
    border-bottom: 2px solid #000 !important;
    box-shadow: none !important;
    background: transparent !important;
    padding-bottom: 0.4rem !important;
    margin-bottom: 1rem !important;
}


/* â”€â”€ 19L: Mobile â€” apenas layout, sem font-size â”€â”€ */

@media (max-width: 768px) {
    .pd-blocos-wrapper {
        gap: 1.5rem !important;
    }

    .pd-cover-image {
        margin-bottom: 1.5rem !important;
    }

    /* Reduzir padding nos blocos leves */
    .bloco-texto,
    .bloco-formulario,
    .bloco-cta,
    .pd-compat-text,
    .pd-compat-rich {
        padding: 1rem !important;
    }

    /* Manter sombras menores nos blocos pesados */
    .bloco-imagem,
    .bloco-imagem-full,
    .bloco-video {
        box-shadow: 3px 3px 0 var(--color-primary) !important;
    }

    /* NÃƒO sobrescrever font-size */
}


/* ============================================================================
 * WAVE BRUTALISM â€” SEÃ‡ÃƒO 20: FIX â€” LINHAS DUPLAS + RESTAURAÃ‡ÃƒO DO VÃDEO
 * DiagnÃ³stico:
 *  - Linhas duplas: .bloco-texto e .bloco-formulario com border:1px solid #000
 *    (SeÃ§Ãµes 18-19) geram borda visÃ­vel nos dois lados adjacentes.
 *    Fix: remover todas as bordas desses blocos â€” separaÃ§Ã£o fica sÃ³ pelo gap.
 *  - VÃ­deo sumido: aspect-ratio:16/9 + position:relative + overflow:hidden
 *    + iframe position:absolute quebrando o embed em alguns navegadores.
 *    Fix: usar padding-bottom:56.25% + height:0 (mÃ©todo clÃ¡ssico, cross-browser).
 * ============================================================================ */


/* â”€â”€ 20A: Eliminar linhas duplas â€” blocos de texto sem borda â”€â”€
   Sobrescreve SeÃ§Ãµes 18D e 19D completamente â”€â”€ */

.bloco-texto {
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
    border-radius: 0 !important;
    padding: 0 !important;
}

/* Headings dentro do texto: sÃ³ borda inferior (separador intencional) */
.bloco-texto h2,
.bloco-texto h3 {
    border-top: none !important;
    border-left: none !important;
    border-right: none !important;
    border-bottom: 2px solid #000 !important;
    box-shadow: none !important;
    background: transparent !important;
    font-family: var(--page-title-font-family) !important;
    font-weight: var(--page-title-font-weight, 900) !important;
    color: var(--page-title-color, var(--text-primary)) !important;
    text-transform: uppercase !important;
    padding-bottom: 0.4rem !important;
    margin-bottom: 1rem !important;
}

.bloco-texto h4,
.bloco-texto h5,
.bloco-texto h6 {
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
}

/* Todos os outros filhos: nenhuma borda prÃ³pria */
.bloco-texto p,
.bloco-texto ul,
.bloco-texto ol,
.bloco-texto li,
.bloco-texto a {
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
}

.bloco-texto blockquote {
    border-top: none !important;
    border-right: none !important;
    border-bottom: none !important;
    border-left: 4px solid var(--color-primary) !important;
    box-shadow: none !important;
    background: transparent !important;
}


/* â”€â”€ 20B: Eliminar linhas duplas â€” formulÃ¡rios sem borda â”€â”€
   Sobrescreve SeÃ§Ãµes 18I e 19I â€” a moldura some, inputs mantÃªm borda â”€â”€ */

.bloco-formulario {
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
    border-radius: 0 !important;
    padding: 0 !important;
}

/* TÃ­tulo do formulÃ¡rio: sÃ³ borda inferior */
.bloco-formulario .form-titulo {
    border-top: none !important;
    border-left: none !important;
    border-right: none !important;
    border-bottom: 2px solid #000 !important;
    box-shadow: none !important;
    background: transparent !important;
    padding-bottom: 0.5rem !important;
    margin-bottom: 1.25rem !important;
}

/* Inputs mantÃªm borda prÃ³pria (2px) â€” sÃ£o os elementos Ã¢ncora do form */
.bloco-formulario input,
.bloco-formulario textarea,
.bloco-formulario select {
    border: 2px solid #000 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: var(--bg-card) !important;
    color: var(--body-font-color, var(--text-primary)) !important;
    font-family: var(--body-font-family) !important;
    font-size: var(--body-font-size) !important;
    padding: 0.6rem 0.8rem !important;
    width: 100% !important;
    margin-bottom: 1rem !important;
    transition: box-shadow 0.15s ease !important;
}

.bloco-formulario input:focus,
.bloco-formulario textarea:focus,
.bloco-formulario select:focus {
    outline: none !important;
    box-shadow: 3px 3px 0 var(--color-primary) !important;
    border-color: #000 !important;
}

/* Submit: moldura pesada mantida â€” Ã© o CTA do form */
.bloco-formulario .form-submit-btn {
    border: 3px solid #000 !important;
    box-shadow: 3px 3px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--color-primary) !important;
    color: var(--bg-primary, #fff) !important;
    font-weight: bold !important;
    text-transform: uppercase !important;
    cursor: pointer !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}

.bloco-formulario .form-submit-btn:hover {
    transform: translate(-2px, -2px) !important;
    box-shadow: 5px 5px 0 var(--color-secondary) !important;
    background: var(--color-secondary) !important;
    color: #000 !important;
}


/* â”€â”€ 20C: CTA sem borda â€” separaÃ§Ã£o sÃ³ por gap â”€â”€ */

.bloco-cta {
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
    padding: 0 !important;
}

/* BotÃ£o CTA: mantÃ©m bordas fortes â€” Ã© o elemento Ã¢ncora */
.bloco-cta-btn {
    display: inline-block !important;
    border: 3px solid #000 !important;
    box-shadow: 3px 3px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--color-primary) !important;
    color: var(--bg-primary, #fff) !important;
    font-weight: bold !important;
    text-transform: uppercase !important;
    padding: 0.7rem 1.5rem !important;
    text-decoration: none !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}

.bloco-cta-btn:hover {
    transform: translate(-2px, -2px) !important;
    box-shadow: 5px 5px 0 var(--color-secondary) !important;
    background: var(--color-secondary) !important;
    color: #000 !important;
    text-decoration: none !important;
}

.bloco-cta h2,
.bloco-cta p {
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
}


/* â”€â”€ 20D: RestauraÃ§Ã£o do bloco de vÃ­deo (.bloco-video) â”€â”€
   Problema: aspect-ratio:16/9 + overflow:hidden + iframe position:absolute
   quebravam o embed. SoluÃ§Ã£o: mÃ©todo clÃ¡ssico padding-bottom:56.25% + height:0
   que Ã© cross-browser e garante o iframe visÃ­vel. â”€â”€ */

.bloco-video {
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    /* MÃ©todo clÃ¡ssico de aspect-ratio 16:9 cross-browser */
    position: relative !important;
    padding-bottom: 56.25% !important;
    height: 0 !important;
    overflow: hidden !important;
    /* Remover aspect-ratio que causava o problema */
    aspect-ratio: unset !important;
}

.bloco-video iframe {
    /* Preenche absolutamente o container .bloco-video */
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: #000 !important;
}


/* â”€â”€ 20E: Gap entre blocos â€” Ãºnico separador visual â”€â”€ */

.pd-blocos-wrapper {
    display: flex !important;
    flex-direction: column !important;
    gap: 2.5rem !important;   /* aumentado para compensar ausÃªncia de bordas */
}


/* â”€â”€ 20F: Mobile â”€â”€ */

@media (max-width: 768px) {
    .pd-blocos-wrapper {
        gap: 2rem !important;
    }

    .pd-cover-image {
        margin-bottom: 2rem !important;
    }

    /* NÃƒO sobrescrever font-size */
}


/* ============================================================================
 * WAVE BRUTALISM â€” SEÃ‡ÃƒO 21: PAGE BUILDER â€” PADRÃƒO VISUAL DA SINGLE
 * Replica exatamente o padrÃ£o da single de notÃ­cias (.ns-body-content):
 *   border: 3px solid #000  +  box-shadow: 4px 4px 0 var(--color-primary)
 *   margin-bottom em cada bloco (nÃ£o gap no pai) â†’ zero linhas duplas
 *
 * Sobrescreve as SeÃ§Ãµes 18-20 inteiramente para os blocos do page builder.
 * Classes reais confirmadas via pages/page-default.php:
 *   .pd-blocos-wrapper, .bloco, .bloco-{tipo}
 * ============================================================================ */


/* â”€â”€ 21A: Neutralizar o gap do pai â€” espaÃ§amento migra para margin-bottom
   de cada .bloco, que Ã© o modelo da single â”€â”€ */

.pd-blocos-wrapper {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;           /* gap zerado â€” margin-bottom de cada bloco faz o trabalho */
}


/* â”€â”€ 21B: Wrapper .bloco â€” sem visual prÃ³prio, apenas margin-bottom â”€â”€
   A borda vai no elemento interno (.bloco-texto, .bloco-imagem, etc.) â”€â”€ */

.bloco {
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
    padding: 0 !important;
    margin-bottom: 1.5rem !important;    /* espaÃ§o logo abaixo de cada bloco */
}

.bloco:last-child {
    margin-bottom: 0 !important;
}


/* â”€â”€ 21C: Bloco de texto (.bloco-texto) â”€â”€ padrÃ£o caixa da single â”€â”€
   Mesma lÃ³gica de .ns-body-content: borda 3px + sombra offset + padding interno â”€â”€ */

.bloco-texto {
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--bg-card) !important;
    padding: 1.5rem !important;
}

/* Filhos sem borda prÃ³pria â€” conteÃºdo limpo dentro da caixa */
.bloco-texto p,
.bloco-texto ul,
.bloco-texto ol,
.bloco-texto li,
.bloco-texto a {
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
}

.bloco-texto p {
    font-family: var(--body-font-family) !important;
    font-size: var(--body-font-size) !important;
    font-weight: var(--body-font-weight) !important;
    color: var(--body-font-color, var(--text-primary)) !important;
    line-height: 1.7 !important;
    margin-bottom: 1rem !important;
}

.bloco-texto p:last-child {
    margin-bottom: 0 !important;
}

/* Headings internos: borda inferior como separador de seÃ§Ã£o */
.bloco-texto h2,
.bloco-texto h3 {
    font-family: var(--page-title-font-family) !important;
    font-weight: var(--page-title-font-weight, 900) !important;
    color: var(--page-title-color, var(--text-primary)) !important;
    text-transform: uppercase !important;
    border-top: none !important;
    border-left: none !important;
    border-right: none !important;
    border-bottom: 2px solid #000 !important;
    box-shadow: none !important;
    background: transparent !important;
    padding-bottom: 0.4rem !important;
    margin-bottom: 1rem !important;
}

.bloco-texto h4,
.bloco-texto h5,
.bloco-texto h6 {
    font-family: var(--page-title-font-family) !important;
    font-weight: var(--page-title-font-weight, 900) !important;
    color: var(--page-title-color, var(--text-primary)) !important;
    text-transform: uppercase !important;
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
    margin-bottom: 0.75rem !important;
}

.bloco-texto a {
    color: var(--color-primary) !important;
    text-decoration: underline !important;
}

.bloco-texto a:hover {
    color: var(--color-secondary) !important;
}

.bloco-texto ul,
.bloco-texto ol {
    padding-left: 1.5rem !important;
    margin-bottom: 1rem !important;
}

.bloco-texto li {
    margin-bottom: 0.4rem !important;
}

/* Blockquote: acento lateral */
.bloco-texto blockquote {
    border-left: 6px solid var(--color-primary) !important;
    border-top: none !important;
    border-right: none !important;
    border-bottom: none !important;
    box-shadow: none !important;
    background: transparent !important;
    border-radius: 0 !important;
    padding: 0.75rem 1.25rem !important;
    margin: 1rem 0 !important;
}

/* CÃ³digo */
.bloco-texto code {
    border: 1px solid rgba(0,0,0,0.2) !important;
    background: transparent !important;
    border-radius: 0 !important;
    padding: 0.15em 0.4em !important;
}

.bloco-texto pre {
    border: 1px solid #000 !important;
    background: transparent !important;
    border-radius: 0 !important;
    padding: 1rem !important;
    overflow-x: auto !important;
    box-shadow: none !important;
}


/* â”€â”€ 21D: Imagem (.bloco-imagem / .bloco-imagem-full) â€” caixa mais pesada â”€â”€ */

.bloco-imagem,
.bloco-imagem-full {
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    overflow: hidden !important;
    background: transparent !important;
}

.bloco-imagem img,
.bloco-imagem-full img {
    display: block !important;
    width: 100% !important;
    border-radius: 0 !important;
    object-fit: cover !important;
    border: none !important;
    box-shadow: none !important;
}

.bloco-imagem figcaption,
.bloco-imagem-full figcaption {
    border-top: 2px solid #000 !important;
    border-left: none !important;
    border-right: none !important;
    border-bottom: none !important;
    box-shadow: none !important;
    background: transparent !important;
    padding: 0.5rem 0.75rem !important;
    font-family: var(--body-font-family) !important;
    color: var(--text-secondary) !important;
}


/* â”€â”€ 21E: VÃ­deo (.bloco-video) â€” mÃ©todo padding-bottom cross-browser â”€â”€ */

.bloco-video {
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    /* Aspect-ratio 16:9 pelo mÃ©todo clÃ¡ssico, compatÃ­vel com todos os browsers */
    position: relative !important;
    padding-bottom: 56.25% !important;
    height: 0 !important;
    overflow: hidden !important;
    aspect-ratio: unset !important;   /* cancela qualquer aspect-ratio anterior */
    background: #000 !important;
}

.bloco-video iframe {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    border: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
}


/* â”€â”€ 21F: CTA (.bloco-cta) â€” caixa leve, botÃ£o pesado â”€â”€ */

.bloco-cta {
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--bg-card) !important;
    padding: 2rem !important;
    text-align: center !important;
}

.bloco-cta h2 {
    font-family: var(--page-title-font-family) !important;
    font-weight: var(--page-title-font-weight, 900) !important;
    text-transform: uppercase !important;
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
    margin-bottom: 0.75rem !important;
}

.bloco-cta p {
    font-family: var(--body-font-family) !important;
    font-size: var(--body-font-size) !important;
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
    margin-bottom: 1.25rem !important;
}

.bloco-cta-btn {
    display: inline-block !important;
    border: 3px solid #000 !important;
    box-shadow: 3px 3px 0 var(--color-secondary) !important;
    border-radius: 0 !important;
    background: var(--color-primary) !important;
    color: var(--bg-primary, #fff) !important;
    font-weight: bold !important;
    text-transform: uppercase !important;
    padding: 0.7rem 1.5rem !important;
    text-decoration: none !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}

.bloco-cta-btn:hover {
    transform: translate(-2px, -2px) !important;
    box-shadow: 5px 5px 0 var(--color-secondary) !important;
    background: var(--color-secondary) !important;
    color: #000 !important;
    text-decoration: none !important;
}


/* â”€â”€ 21G: BotÃ£o avulso (.bloco-botao / .bloco-botao-link) â”€â”€ */

.bloco-botao {
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
}

.bloco-botao-link {
    display: inline-block !important;
    border: 3px solid #000 !important;
    box-shadow: 3px 3px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--color-primary) !important;
    color: var(--bg-primary, #fff) !important;
    font-weight: bold !important;
    text-transform: uppercase !important;
    padding: 0.7rem 2rem !important;
    text-decoration: none !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}

.bloco-botao-link.botao-secundario {
    background: transparent !important;
    color: var(--text-primary) !important;
}

.bloco-botao-link:hover {
    transform: translate(-2px, -2px) !important;
    box-shadow: 5px 5px 0 var(--color-secondary) !important;
    background: var(--color-secondary) !important;
    color: #000 !important;
    text-decoration: none !important;
}

.bloco-botao.align-left  { text-align: left !important; }
.bloco-botao.align-center { text-align: center !important; }
.bloco-botao.align-right { text-align: right !important; }


/* â”€â”€ 21H: FormulÃ¡rio (.bloco-formulario) â€” caixa padrÃ£o + inputs com borda â”€â”€ */

.bloco-formulario {
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--bg-card) !important;
    padding: 1.5rem !important;
}

.bloco-formulario .form-titulo {
    font-family: var(--page-title-font-family) !important;
    font-weight: var(--page-title-font-weight, 900) !important;
    text-transform: uppercase !important;
    border-top: none !important;
    border-left: none !important;
    border-right: none !important;
    border-bottom: 2px solid #000 !important;
    box-shadow: none !important;
    background: transparent !important;
    padding-bottom: 0.5rem !important;
    margin-bottom: 1.25rem !important;
}

.bloco-formulario .form-field-wrap {
    display: flex !important;
    flex-direction: column !important;
    gap: 4px !important;
    margin-bottom: 1rem !important;
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
}

.bloco-formulario label {
    font-family: var(--body-font-family) !important;
    font-weight: bold !important;
    text-transform: uppercase !important;
    color: var(--text-primary) !important;
    border: none !important;
    box-shadow: none !important;
}

.bloco-formulario input,
.bloco-formulario textarea,
.bloco-formulario select {
    border: 2px solid #000 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: var(--bg-primary, #fff) !important;
    color: var(--body-font-color, var(--text-primary)) !important;
    font-family: var(--body-font-family) !important;
    font-size: var(--body-font-size) !important;
    padding: 0.6rem 0.8rem !important;
    width: 100% !important;
    margin-bottom: 1rem !important;
    transition: box-shadow 0.15s ease !important;
}

.bloco-formulario input:focus,
.bloco-formulario textarea:focus,
.bloco-formulario select:focus {
    outline: none !important;
    box-shadow: 3px 3px 0 var(--color-primary) !important;
    border-color: #000 !important;
}

.bloco-formulario .form-submit-btn {
    border: 3px solid #000 !important;
    box-shadow: 3px 3px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--color-primary) !important;
    color: var(--bg-primary, #fff) !important;
    font-weight: bold !important;
    text-transform: uppercase !important;
    padding: 0.7rem 1.75rem !important;
    cursor: pointer !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
    margin-top: 0.5rem !important;
}

.bloco-formulario .form-submit-btn:hover {
    transform: translate(-2px, -2px) !important;
    box-shadow: 5px 5px 0 var(--color-secondary) !important;
    background: var(--color-secondary) !important;
    color: #000 !important;
}


/* â”€â”€ 21I: Divisor (.bloco-divisor) â”€â”€ */

.bloco-divisor {
    border: none !important;
    border-top: 3px solid #000 !important;
    box-shadow: none !important;
    margin: 0 !important;
}


/* â”€â”€ 21J: Compabilidade retroativa (.pd-compat-text / .pd-compat-rich) â”€â”€
   Mesmo padrÃ£o de caixa da single â”€â”€ */

.pd-compat-text,
.pd-compat-rich {
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--bg-card) !important;
    padding: 1.5rem !important;
    margin-bottom: 1.5rem !important;
}

.pd-compat-rich > *:not(h2):not(h3):not(h4):not(h5):not(h6):not(blockquote) {
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
}

.pd-compat-rich h2,
.pd-compat-rich h3 {
    text-transform: uppercase !important;
    border-top: none !important;
    border-left: none !important;
    border-right: none !important;
    border-bottom: 2px solid #000 !important;
    box-shadow: none !important;
    padding-bottom: 0.4rem !important;
    margin-bottom: 1rem !important;
    background: transparent !important;
}

.pd-compat-rich a {
    color: var(--color-primary) !important;
    text-decoration: underline !important;
}

.pd-compat-rich a:hover {
    color: var(--color-secondary) !important;
}


/* â”€â”€ 21K: BotÃ£o Voltar (.pd-back-btn) â”€â”€ */

.pd-back-btn {
    margin-top: 2rem !important;
    border-top: 2px solid #000 !important;
    padding-top: 1.5rem !important;
}

.pd-back-btn .btn {
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--bg-card) !important;
    color: var(--text-primary) !important;
    font-weight: bold !important;
    text-transform: uppercase !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
    text-decoration: none !important;
}

.pd-back-btn .btn:hover {
    transform: translate(-2px, -2px) !important;
    box-shadow: 6px 6px 0 var(--color-secondary) !important;
    background: var(--color-secondary) !important;
    color: #000 !important;
}


/* â”€â”€ 21L: Mobile â”€â”€ */

@media (max-width: 768px) {
    .bloco {
        margin-bottom: 1.25rem !important;
    }

    .bloco-texto,
    .bloco-formulario,
    .bloco-cta {
        padding: 1rem !important;
        box-shadow: 3px 3px 0 var(--color-primary) !important;
    }

    .bloco-imagem,
    .bloco-imagem-full,
    .bloco-video {
        box-shadow: 3px 3px 0 var(--color-primary) !important;
    }

    .pd-compat-text,
    .pd-compat-rich {
        padding: 1rem !important;
        box-shadow: 3px 3px 0 var(--color-primary) !important;
    }

    /* NÃƒO sobrescrever font-size */
}


/* ============================================================================
 * WAVE BRUTALISM ï¿½ SEï¿½ï¿½O 22: SINGLE DE NOTï¿½CIAS ï¿½ ZERO border-radius
 * Os estilos abaixo residem no <style> interno do news-single.php com a
 * mesma especificidade, mas por vir depois no CSS cascade (brutalism_override
 * ï¿½ carregado apï¿½s) + !important, sobrescrevem corretamente.
 *
 * Elementos corrigidos (confirmados via news-single.php):
 *  .ns-main              border-radius: var(--ns-radius-card) = 8px ? 0
 *  .ns-category-pill     border-radius: 100px ? 0  (pill ? retï¿½ngulo)
 *  .ns-cover-fig         border-radius: var(--ns-radius-card) ? 0
 *  .ns-cover-img         border-radius: var(--ns-radius-card) ? 0
 *  .ns-author-bio-card   border-radius: 10px ? 0
 *  .ns-author-bio-avatar border-radius: 50% ? 0  (cï¿½rculo ? quadrado)
 *  .ns-social-icon       border-radius: 50% ? 0
 *  .ns-sidebar-inner     border-radius: var(--ns-radius-card) ? 0
 *  .ns-sidebar-accent    border-radius: 2px ? 0
 *  .ns-btn-outline       border-radius: 4px ? 0
 *  .ns-share-btn         border-radius: 50% ? 0
 * ============================================================================ */


/* -- 22A: Wrapper principal ï¿½ caixa brutalista -- */

.ns-main {
    border-radius: 0 !important;
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
}


/* -- 22B: Pill de categoria ï¿½ retï¿½ngulo brutalista -- */

.ns-category-pill {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
    background: var(--color-primary) !important;
    color: var(--bg-primary, #fff) !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    padding: 3px 10px !important;
}


/* -- 22C: Imagem de capa -- */

.ns-cover-fig {
    border-radius: 0 !important;
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    overflow: hidden !important;
}

.ns-cover-img {
    border-radius: 0 !important;
    transition: none !important;
}

.ns-cover-fig:hover .ns-cover-img {
    transform: none !important;
}


/* -- 22D: Card de autor dinï¿½mico -- */

.ns-author-bio-card {
    border-radius: 0 !important;
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    background: var(--bg-card) !important;
}

.ns-author-bio-avatar {
    border-radius: 0 !important;
    border: 3px solid #000 !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
}

.ns-author-bio-avatar img {
    border-radius: 0 !important;
}


/* -- 22E: ï¿½cones sociais ï¿½ quadrado -- */

.ns-social-icon {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
    color: var(--text-primary) !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}

.ns-social-icon:hover {
    border-color: #000 !important;
    color: var(--color-primary) !important;
    transform: translate(-1px, -1px) !important;
    box-shadow: 3px 3px 0 var(--color-secondary) !important;
}


/* -- 22F: Botï¿½es de compartilhar ï¿½ quadrado -- */

.ns-share-btn {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}

.ns-share-btn:hover {
    color: var(--color-primary) !important;
    border-color: #000 !important;
    transform: translate(-1px, -1px) !important;
    box-shadow: 3px 3px 0 var(--color-secondary) !important;
}


/* -- 22G: Sidebar interna -- */

.ns-sidebar-inner {
    border-radius: 0 !important;
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
}

.ns-sidebar-accent {
    border-radius: 0 !important;
    height: 3px !important;
    background: #000 !important;
}


/* -- 22H: Botï¿½o Fonte e links de rodapï¿½ -- */

.ns-btn-outline {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}

.ns-btn-outline:hover {
    border-color: #000 !important;
    color: var(--color-primary) !important;
    transform: translate(-1px, -1px) !important;
    box-shadow: 3px 3px 0 var(--color-secondary) !important;
}


/* -- 22I: Avatar fallback (genï¿½rico, sem autor vinculado) -- */

.ns-author-avatar {
    border-radius: 0 !important;
    border: 3px solid #000 !important;
}


/* -- 22J: Imagens inline no corpo do artigo -- */

.ns-body-content img {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    box-shadow: 3px 3px 0 var(--color-primary) !important;
}


/* ============================================================================
 * WAVE BRUTALISM ï¿½ SEï¿½ï¿½O 23: SIDEBAR ï¿½ ELIMINAR BORDA DUPLA
 * Problema: .ns-sidebar (Seï¿½ï¿½o 13) + .ns-sidebar-inner (Seï¿½ï¿½o 22G) ambos
 * com border:3px solid #000 criam duas caixas aninhadas = linha dupla visï¿½vel.
 * Soluï¿½ï¿½o: .ns-sidebar ï¿½ apenas container de layout (sem visual prï¿½prio).
 *          Toda a aparï¿½ncia fica em .ns-sidebar-inner.
 * ============================================================================ */

/* Container externo: apenas posicionamento, sem visual */
.ns-sidebar {
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
    padding: 0 !important;
}

/* Container interno sticky: ï¿½nica caixa visual da sidebar */
.ns-sidebar-inner {
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--bg-card) !important;
    padding: 1.5rem !important;
}

/* Cards da sidebar: mantï¿½m borda prï¿½pria como itens independentes */
.ns-sidebar-card,
.ns-sidebar-card-item {
    border: 2px solid #000 !important;
    box-shadow: 3px 3px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--bg-card) !important;
    padding: 0.75rem !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}

.ns-sidebar-card:hover,
.ns-sidebar-card-item:hover {
    transform: translate(-2px, -2px) !important;
    box-shadow: 4px 4px 0 var(--color-secondary) !important;
}

/* Tï¿½tulo da sidebar: borda inferior como separador */
.ns-sidebar-title,
.ns-sidebar-heading {
    font-family: var(--page-title-font-family) !important;
    font-weight: var(--page-title-font-weight, 900) !important;
    text-transform: uppercase !important;
    color: var(--text-primary) !important;
    border-top: none !important;
    border-left: none !important;
    border-right: none !important;
    border-bottom: 3px solid #000 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    padding-bottom: 0.5rem !important;
    margin-bottom: 1rem !important;
}

/* Accent bar: barra horizontal sï¿½lida brutalista */
.ns-sidebar-accent {
    border-radius: 0 !important;
    width: 40px !important;
    height: 3px !important;
    background: var(--color-primary) !important;
    margin-bottom: 1.25rem !important;
}


/* ============================================================================
 * WAVE BRUTALISM ï¿½ SEï¿½ï¿½O 24: LISTAGENS ï¿½ OCULTAR HERO + CARD TOTALMENTE CLICï¿½VEL
 *
 * Implementado 100% via CSS ï¿½ nenhum PHP global modificado.
 *
 * Elementos:
 *  .nl-hero / .ev-hero ? display:none (hero fullwidth removido visualmente)
 *  .nl-card            ? link posicionado sobre o card inteiro (notï¿½cias)
 *  .ev-card            ? link posicionado sobre o card inteiro (eventos)
 * ============================================================================ */


/* -- Remover hero card fullwidth das listagens -- */

.nl-hero,
.ev-hero {
    display: none !important;
}


/* -- Notï¿½cias: card totalmente clicï¿½vel -- */



/* -- Eventos: card totalmente clicï¿½vel -- */

.ev-card {
    position: relative !important;
    cursor: pointer !important;
}

/* O card de evento usa onclick e <a> interno ï¿½ tornar o article inteiro responsivo ao hover */
.ev-card:hover {
    transform: translate(-2px, -2px) !important;
    box-shadow: 6px 6px 0 var(--color-secondary) !important;
}

/* Garantir que botï¿½es/links internos sejam clicï¿½veis (z-index acima do hover zone) */
.ev-card__img-wrap,
.ev-card__body,
.ev-card__footer,
.ev-card__body > *,
.ev-card__footer > *,
.ev-cta,
.ev-ticket-badge,
.ev-free-badge {
    position: relative !important;
    z-index: 2 !important;
}


/* ============================================================================
 * WAVE BRUTALISM ï¿½ SEï¿½ï¿½O 25: PROMOï¿½ï¿½ES ï¿½ BORDAS BRUTALISTAS
 *
 * Arquivo referï¿½ncia: themes/wave/pages/promocoes.php
 * Classes: .wave-promo-card, .wave-promo-card__img, .wave-promo-card__body
 * ============================================================================ */


/* -- Card de promoï¿½ï¿½o: caixa brutalista -- */

.wave-promo-card {
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--bg-card) !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}

.wave-promo-card:hover {
    transform: translate(-2px, -2px) !important;
    box-shadow: 6px 6px 0 var(--color-secondary) !important;
}

/* Imagem do card: borda inferior separa do body */
.wave-promo-card__img {
    border-radius: 0 !important;
    border-bottom: 3px solid #000 !important;
    overflow: hidden !important;
}

.wave-promo-card__img img {
    border-radius: 0 !important;
    display: block !important;
    width: 100% !important;
}

/* Body do card */
.wave-promo-card__body {
    border-radius: 0 !important;
}

/* Tï¿½tulo */
.wave-promo-card__title {
    font-family: var(--card-title-font-family) !important;
    font-weight: var(--card-title-font-weight, 800) !important;
    text-transform: uppercase !important;
    color: var(--card-title-color, var(--text-primary)) !important;
}

/* Divider: linha brutalista sï¿½lida */
.wave-promo-card__divider {
    border: none !important;
    border-top: 2px solid #000 !important;
    margin: 0.75rem 0 !important;
}

/* CTA primï¿½rio: botï¿½o brutalista */
.wave-promo-card__cta--primary {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
    background: var(--color-primary) !important;
    color: var(--bg-primary, #fff) !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}

.wave-promo-card__cta--primary:hover {
    transform: translate(-1px, -1px) !important;
    box-shadow: 3px 3px 0 #000 !important;
}

/* CTA encerrado */
.wave-promo-card__cta--ended {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    color: var(--text-muted) !important;
}

/* Badge da promoï¿½ï¿½o */
.wave-promo-badge {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
}


/* ============================================================================
 * WAVE BRUTALISM ï¿½ SEï¿½ï¿½O 26: PROGRAMAï¿½ï¿½O ï¿½ TABS BRUTALISTAS + SEM GLOW
 *
 * Arquivo referï¿½ncia: pages/programacao.php
 * Classes: .pg-day-btn, .pg-day-btn--active, .pg-item, .pg-item--live,
 *          .pg-featured__card, .pg-featured__card:hover
 * ============================================================================ */


/* -- Tabs de dias da semana: zero glow, estilo brutalista -- */

.pg-day-btn {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
    background: var(--bg-card) !important;
    color: var(--text-primary) !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}

.pg-day-btn:hover {
    background: var(--bg-card) !important;
    border-color: #000 !important;
    color: var(--color-primary) !important;
    transform: translate(-1px, -1px) !important;
    box-shadow: 3px 3px 0 var(--color-primary) !important;
}

/* Tab ativo: preenchido brutalista ï¿½ SEM glow/blur */
.pg-day-btn--active {
    background: var(--color-primary) !important;
    color: var(--bg-primary, #fff) !important;
    border: 2px solid #000 !important;
    /* Remove o box-shadow tipo glow: "0 4px 16px rgba(var(--primary-rgb), 0.35)" */
    box-shadow: 3px 3px 0 #000 !important;
}

.pg-day-btn--active:hover {
    color: var(--bg-primary, #fff) !important;
    transform: translate(-1px, -1px) !important;
    box-shadow: 4px 4px 0 #000 !important;
}

/* Badge "Hoje" do tab ativo */
.pg-day-btn__today {
    border-radius: 0 !important;
    background: #000 !important;
    color: var(--color-primary) !important;
}

.pg-day-btn--active .pg-day-btn__today {
    background: var(--bg-primary, #fff) !important;
    color: #000 !important;
}


/* -- Itens da programaï¿½ï¿½o semanal (.pg-item) -- */

.pg-item {
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--bg-card) !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}

.pg-item:hover {
    /* Remove translateY e box-shadow blur ï¿½ substitui por offset brutalista */
    transform: translate(-2px, -2px) !important;
    box-shadow: 6px 6px 0 var(--color-secondary) !important;
    border-color: #000 !important;
}

/* Item ao vivo: destaque brutalista sem glow */
.pg-item--live {
    background: var(--bg-card) !important;
    border: 3px solid var(--color-primary) !important;
    /* Remove: box-shadow: 0 0 15px rgba(var(--primary-rgb), 0.2) */
    box-shadow: 4px 4px 0 #000 !important;
}

.pg-item--live:hover {
    box-shadow: 6px 6px 0 #000 !important;
}


/* -- Cards de programas em destaque (.pg-featured__card) -- */

.pg-featured__card {
    border-radius: 0 !important;
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}

.pg-featured__card:hover {
    /* Remove translateY e box-shadow blur */
    transform: translate(-2px, -2px) !important;
    box-shadow: 6px 6px 0 var(--color-secondary) !important;
    border-color: #000 !important;
}

/* Pills de horï¿½rio dentro dos cards de destaque */
.pg-time-pill {
    border-radius: 0 !important;
    background: rgba(0, 0, 0, 0.6) !important;
    backdrop-filter: none !important;
    border: 1px solid rgba(255, 255, 255, 0.4) !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
}

/* Toggle dos itens da schedule */
.pg-item__toggle {
    border-radius: 0 !important;
}

/* Avatar do host no hero da programaï¿½ï¿½o */
.pg-hero__circle {
    border-radius: 0 !important;
}

.pg-hero__avatar {
    border-radius: 0 !important;
    border: 3px solid #000 !important;
}

.pg-hero__avatar-placeholder {
    border-radius: 0 !important;
    border: 3px solid #000 !important;
}

/* Remove pulse rings circulares ï¿½ brutalismo nï¿½o usa animaï¿½ï¿½es circulares */
.pg-hero__pulse {
    display: none !important;
}

/* Badge "No Ar" brutalista */
.pg-hero__badge {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
    background: var(--bg-card) !important;
    color: var(--color-primary) !important;
}

/* Botï¿½o podcast dentro do hero */
.pg-hero__podcast-btn {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
}

/* Empty state icon */
.pg-empty__icon {
    border-radius: 0 !important;
    border: 3px solid #000 !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
}


/* ============================================================================
 * WAVE BRUTALISM ï¿½ SEï¿½ï¿½O 27: PODCASTS ï¿½ BORDAS BRUTALISTAS
 *
 * Cobre dois contextos:
 *  A) Home (wave-podcast-card): themes/wave/pages/podcasts.php
 *  B) Pï¿½gina /podcasts (pc-series-card, pc-card): pages/podcasts.php
 * ============================================================================ */


/* -- A) Card da home: .wave-podcast-card -- */

.wave-podcast-card {
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--bg-card) !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}

.wave-podcast-card:hover {
    transform: translate(-2px, -2px) !important;
    box-shadow: 6px 6px 0 var(--color-secondary) !important;
}

.wave-podcast-card__cover {
    border-radius: 0 !important;
    overflow: hidden !important;
}

.wave-podcast-card__cover img {
    border-radius: 0 !important;
    display: block !important;
}

/* Play circle ï¿½ quadrado brutalista */
.wave-podcast-card__play-circle {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
}


/* -- B-1) Cards de sï¿½ries: .pc-series-card -- */

.pc-series-card {
    border-radius: 0 !important;
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    background: var(--bg-card) !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}

.pc-series-card:hover {
    /* Remove translateY e blur box-shadow ? offset brutalista */
    transform: translate(-2px, -2px) !important;
    box-shadow: 6px 6px 0 var(--color-secondary) !important;
    border-color: #000 !important;
}

.pc-series-card--active {
    border-color: var(--color-primary) !important;
    box-shadow: 4px 4px 0 #000 !important;
}

.pc-series-card__cover {
    border-radius: 0 !important;
    overflow: hidden !important;
}

.pc-series-card__cover img {
    border-radius: 0 !important;
}

/* Play button da sï¿½rie ï¿½ quadrado */
.pc-series-card__play {
    border-radius: 0 !important;
    backdrop-filter: none !important;
}

/* Contador de episï¿½dios */
.pc-series-card__count {
    border-radius: 0 !important;
    backdrop-filter: none !important;
    border: 1px solid rgba(255, 255, 255, 0.4) !important;
}


/* -- B-2) Cards de episï¿½dios: .pc-card -- */

.pc-card {
    border-radius: 0 !important;
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    background: var(--bg-card) !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}

.pc-card:hover {
    /* Remove translateY e blur box-shadow ? offset brutalista */
    transform: translate(-2px, -2px) !important;
    box-shadow: 6px 6px 0 var(--color-secondary) !important;
    border-color: #000 !important;
}

.pc-card__cover {
    border-radius: 0 !important;
    overflow: hidden !important;
}

.pc-card__img {
    border-radius: 0 !important;
}

/* Badge de categoria do episï¿½dio */
.pc-card__badge {
    border-radius: 0 !important;
    border: 1px solid rgba(255, 255, 255, 0.4) !important;
}

/* Nï¿½mero do episï¿½dio */
.pc-card__ep-num {
    border-radius: 0 !important;
    backdrop-filter: none !important;
    border: 1px solid rgba(255, 255, 255, 0.3) !important;
}

/* Duraï¿½ï¿½o */
.pc-card__duration {
    border-radius: 0 !important;
    backdrop-filter: none !important;
    border: 1px solid rgba(255, 255, 255, 0.3) !important;
}

/* Botï¿½o de play overlay */
.pc-card__play {
    border-radius: 0 !important;
    border: 2px solid #fff !important;
    box-shadow: 2px 2px 0 #000 !important;
}

/* Botï¿½o Ouvir agora */
.pc-card__listen-btn {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
    background: var(--color-primary) !important;
    color: var(--bg-primary, #fff) !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
}

.pc-card__listen-btn:hover {
    transform: translate(-1px, -1px) !important;
    box-shadow: 3px 3px 0 #000 !important;
}

/* Botï¿½o de detalhes */
.pc-card__details-btn {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
}

/* Filtros / Pills */
.pc-pill {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}

.pc-pill:hover {
    border-color: #000 !important;
    color: var(--color-primary) !important;
    background: var(--bg-card) !important;
    transform: translate(-1px, -1px) !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
}

.pc-pill--active {
    background: var(--color-primary) !important;
    color: var(--bg-primary, #fff) !important;
    border: 2px solid #000 !important;
    box-shadow: 2px 2px 0 #000 !important;
}

/* Select de sï¿½ries */
.pc-select {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
}

/* Botï¿½o CTA */
.pc-btn {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
}

/* Empty state icon */
.pc-empty__icon {
    border-radius: 0 !important;
    border: 3px solid #000 !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
}


/* ============================================================================
 * WAVE BRUTALISM ï¿½ SEï¿½ï¿½O 28: CORREï¿½ï¿½O DE FALLBACK DE COR
 *
 * Problema: o <style> inline do news-single.php usa var(--primary-color, #e65100)
 * com fallback laranja hardcoded (#e65100). Se --primary-color nï¿½o estiver
 * definida para o WAVE, o laranja aparece.
 *
 * Soluï¿½ï¿½o: remapear todos os usos inline de var(--primary-color) para
 * var(--color-primary) que ï¿½ garantidamente gerado pelo sistema WAVE.
 * Tambï¿½m garantir que var(--primary-rgb) usada em alguns contextos fique
 * consistente com o sistema de cores do WAVE.
 *
 * Arquivos com ocorrï¿½ncias:
 *  - pages/news-single.php (inline style, nï¿½o modificï¿½vel)
 *  - pages/podcasts.php (inline style)
 *  - pages/programacao.php (inline style)
 * ============================================================================ */

/* Remapear elementos que usam var(--primary-color) com fallback laranja
   para garantir que usem a cor primï¿½ria do WAVE via var(--color-primary) */

/* Single de notï¿½cia */
.ns-share-btn:hover { color: var(--color-primary) !important; }
.ns-body-content a { color: var(--color-primary) !important; }
.ns-sidebar-title { color: var(--color-primary) !important; }
.ns-back-link:hover { color: var(--color-primary) !important; }
.ns-btn-outline:hover { color: var(--color-primary) !important; }
.ns-lead { border-left-color: var(--color-primary) !important; }
.ns-sidebar-card:hover .ns-sidebar-card-title { color: var(--color-primary) !important; }

/* Programaï¿½ï¿½o */
.pg-hero__time i,
.pg-hero__host i { color: var(--color-primary) !important; }
.pg-item__hour { color: var(--color-primary) !important; }
.pg-section-title i { color: var(--color-primary) !important; }

/* Podcasts */
.pc-card__badge { background: var(--color-primary) !important; }
.pc-card__series { color: var(--color-primary) !important; }
.pc-section-title i { color: var(--color-primary) !important; }
.pc-series-card__cat { color: var(--color-primary) !important; }


/* ============================================================================
 * WAVE BRUTALISM ï¿½ SEï¿½ï¿½O 29: CORREï¿½ï¿½O COMPLETA DE BORDAS
 *                             /eventos e /promocoes
 *
 * Espelha exatamente o padrï¿½o visual de /noticias:
 *  - border: 3px solid #000 + box-shadow: 4px 4px 0 var(--color-primary)
 *  - Filtros/chips: retï¿½ngulos com borda + ativo preenchido
 *  - Badge: fundo primï¿½rio + borda preta
 *  - Separadores: border-top: 2px solid #000
 *
 * Causa raiz: regras da Seï¿½ï¿½o 24 adicionaram position/hover mas esqueceram
 * o border e box-shadow base. O <style> inline do PHP (que vem apï¿½s o CSS
 * externo no cascade) sobrescrevia com border-radius e box-shadow sem borda.
 * ============================================================================ */


/* --------------------------------------------------------
   /EVENTOS ï¿½ FILTROS (ev-chip)
   Referï¿½ncia visual: tabs de /noticias com borda preta sï¿½lida
   -------------------------------------------------------- */

.ev-chip {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
    background: var(--bg-card) !important;
    color: var(--text-primary) !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
    padding: 8px 18px !important;
}

.ev-chip:hover {
    background: var(--bg-card) !important;
    border-color: #000 !important;
    color: var(--color-primary) !important;
    transform: translate(-1px, -1px) !important;
    box-shadow: 3px 3px 0 var(--color-primary) !important;
}

/* Chip ativo: preenchido com cor primï¿½ria, sem glow */
.ev-chip--active,
.ev-chip.ev-chip--active {
    background: var(--color-primary) !important;
    color: var(--bg-primary, #fff) !important;
    border: 2px solid #000 !important;
    box-shadow: 3px 3px 0 #000 !important;
    transform: none !important;
}

.ev-chip--active:hover,
.ev-chip.ev-chip--active:hover {
    transform: translate(-1px, -1px) !important;
    box-shadow: 4px 4px 0 #000 !important;
}


/* --------------------------------------------------------
   /EVENTOS ï¿½ CARDS (ev-card)
   Borda: 3px solid #000 + shadow 4px offset
   -------------------------------------------------------- */

/* Card base: borda e shadow brutalistas (complementa Seï¿½ï¿½o 24) */
.ev-card {
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--bg-card) !important;
    overflow: visible !important;   /* garantir que shadow nï¿½o seja cortada */
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}

.ev-card:hover {
    transform: translate(-2px, -2px) !important;
    box-shadow: 6px 6px 0 var(--color-secondary) !important;
    border-color: #000 !important;
}

/* Imagem do card: borda inferior separa da ï¿½rea de texto */
.ev-card__img-wrap {
    border-radius: 0 !important;
    overflow: hidden !important;
    border-bottom: 3px solid #000 !important;
}

.ev-card__img {
    border-radius: 0 !important;
    display: block !important;
    width: 100% !important;
}

/* Placeholder (sem imagem) */
.ev-card__placeholder {
    border-radius: 0 !important;
    background: var(--bg-tertiary) !important;
}

/* Gradient overlay: sutileza mantida */
.ev-card__gradient {
    border-radius: 0 !important;
}

/* Body do card */
.ev-card__body {
    padding: 1rem !important;
}

/* Tï¿½tulo */
.ev-card__title {
    font-family: var(--card-title-font-family) !important;
    font-weight: var(--card-title-font-weight, 800) !important;
    text-transform: uppercase !important;
    color: var(--card-title-color, var(--text-primary)) !important;
}

/* Badge de categoria/status */
.ev-badge,
.ev-card .ev-badge,
.ev-card__badge {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    background: var(--color-primary) !important;
    color: var(--bg-primary, #fff) !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    box-shadow: 2px 2px 0 #000 !important;
    padding: 3px 10px !important;
}

/* Badges de ticket e gratuito */
.ev-ticket-badge,
.ev-free-badge {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    box-shadow: 1px 1px 0 #000 !important;
}

/* Meta (data, hora, local) */
.ev-card__meta {
    border-top: 2px solid #000 !important;
    padding-top: 0.75rem !important;
    margin-top: 0.75rem !important;
}

.ev-meta-item {
    color: var(--text-secondary) !important;
}

/* Footer / CTA */
.ev-card__footer {
    border-top: 2px solid #000 !important;
    padding-top: 0.75rem !important;
    margin-top: 0.75rem !important;
}

/* CTA link */
.ev-cta {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
    background: var(--bg-card) !important;
    color: var(--text-primary) !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
    padding: 6px 14px !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
}

.ev-cta:hover {
    background: var(--color-primary) !important;
    color: var(--bg-primary, #fff) !important;
    transform: translate(-1px, -1px) !important;
    box-shadow: 3px 3px 0 #000 !important;
}

/* Countdown no card de evento */
.ev-countdown {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    background: var(--bg-card) !important;
    color: var(--text-primary) !important;
}

/* Location tag */
.ev-card__location {
    font-size: 0.82rem !important;
    color: var(--text-muted) !important;
}


/* --------------------------------------------------------
   /PROMOCOES ï¿½ CARDS ï¿½ REFORï¿½O COMPLETO (wave-promo-card)
   Complementa Seï¿½ï¿½o 25 garantindo que inline style seja
   sobrescrito em todos os sub-elementos
   -------------------------------------------------------- */

/* Grid: 3 colunas uniforme */
.wave-promo-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
}

/* Card: borda brutalista completa */
.wave-promo-card {
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--bg-card) !important;
    overflow: visible !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
    display: flex !important;
    flex-direction: column !important;
}

.wave-promo-card:hover {
    transform: translate(-2px, -2px) !important;
    box-shadow: 6px 6px 0 var(--color-secondary) !important;
    border-color: #000 !important;
}

/* Imagem */
.wave-promo-card__img {
    border-radius: 0 !important;
    border-bottom: 3px solid #000 !important;
    overflow: hidden !important;
    background: var(--bg-tertiary) !important;
}

.wave-promo-card__img img {
    border-radius: 0 !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}

/* Placeholder da imagem */
.wave-promo-card__img-ph {
    border-radius: 0 !important;
}

/* Body */
.wave-promo-card__body {
    border-radius: 0 !important;
    padding: 1rem !important;
    flex: 1 !important;
    display: flex !important;
    flex-direction: column !important;
}

/* Tï¿½tulo */
.wave-promo-card__title {
    font-family: var(--card-title-font-family) !important;
    font-weight: var(--card-title-font-weight, 800) !important;
    text-transform: uppercase !important;
    color: var(--card-title-color, var(--text-primary)) !important;
    margin-bottom: 0.5rem !important;
}

/* Descriï¿½ï¿½o */
.wave-promo-card__desc {
    color: var(--text-secondary) !important;
    font-size: 0.9rem !important;
    line-height: 1.5 !important;
    flex: 1 !important;
}

/* Separador interno */
.wave-promo-card__divider {
    border: none !important;
    border-top: 2px solid #000 !important;
    margin: 0.75rem 0 !important;
}

/* Footer */
.wave-promo-card__footer {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    margin-top: auto !important;
}

/* CTA primï¿½rio */
.wave-promo-card__cta--primary {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
    background: var(--color-primary) !important;
    color: var(--bg-primary, #fff) !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    padding: 6px 14px !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    text-decoration: none !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}

.wave-promo-card__cta--primary:hover {
    transform: translate(-1px, -1px) !important;
    box-shadow: 3px 3px 0 #000 !important;
    color: var(--bg-primary, #fff) !important;
}

/* CTA encerrado */
.wave-promo-card__cta--ended {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    color: var(--text-muted) !important;
    background: var(--bg-card) !important;
    padding: 6px 14px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
}

/* Badge da promoï¿½ï¿½o */
.wave-promo-badge {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
    background: var(--color-primary) !important;
    color: var(--bg-primary, #fff) !important;
    font-weight: 800 !important;
    padding: 3px 10px !important;
}

/* Mobile */
@media (max-width: 768px) {
    .wave-promo-grid {
        grid-template-columns: 1fr !important;
    }
    .ev-card {
        box-shadow: 3px 3px 0 var(--color-primary) !important;
    }
    .wave-promo-card {
        box-shadow: 3px 3px 0 var(--color-primary) !important;
    }
}


/* ============================================================================
 * WAVE BRUTALISM ï¿½ SEï¿½ï¿½O 30: Pï¿½GINA /promocoes ï¿½ BORDAS BRUTALISTAS COMPLETAS
 *
 * Arquivo referï¿½ncia: pages/promotions.php
 * Prefixo de classes: pm- (PageManager promo)
 *
 * Problema: Seï¿½ï¿½es 25 e 29 visavam .wave-promo-card (mï¿½dulo da HOME),
 * mas a URL /promocoes usa pages/promotions.php com classes .pm-*.
 *
 * Replicar exatamente o padrï¿½o visual de /noticias:
 *  - border: 3px solid #000 + box-shadow: 4px 4px 0 var(--color-primary)
 *  - Badge: fundo primï¿½rio + 2px solid #000
 *  - Countdown: 2px solid #000
 *  - Separadores internos: border-top: 2px solid #000
 *  - Hover: translate(-2px, -2px) + shadow secundï¿½ria
 * ============================================================================ */


/* -- Grid: 3 colunas uniforme -- */

.pm-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
}

@media (max-width: 900px) {
    .pm-grid { grid-template-columns: repeat(2, 1fr) !important; }
}

@media (max-width: 600px) {
    .pm-grid { grid-template-columns: 1fr !important; }
}


/* -- Card principal: borda + shadow brutalistas -- */

.pm-card {
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--bg-card) !important;
    overflow: visible !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
    display: flex !important;
    flex-direction: column !important;
    position: relative !important;
}

.pm-card:hover {
    transform: translate(-2px, -2px) !important;
    box-shadow: 6px 6px 0 var(--color-secondary) !important;
    border-color: #000 !important;
}


/* -- Link que cobre o card (clicabilidade total) -- */

.pm-card__link {
    position: absolute !important;
    inset: 0 !important;
    z-index: 1 !important;
    display: block !important;
    text-indent: -9999px !important;
    overflow: hidden !important;
}

.pm-card__img-wrap,
.pm-card__body,
.pm-card__body > *,
.pm-card__footer,
.pm-badge,
.pm-countdown,
.pm-cta {
    position: relative !important;
    z-index: 2 !important;
}


/* -- Imagem: borda inferior separa do texto -- */

.pm-card__img-wrap {
    border-radius: 0 !important;
    overflow: hidden !important;
    border-bottom: 3px solid #000 !important;
}

.pm-card__img {
    border-radius: 0 !important;
    display: block !important;
    width: 100% !important;
}

.pm-card__placeholder {
    border-radius: 0 !important;
    background: var(--bg-tertiary) !important;
}

.pm-card__gradient {
    border-radius: 0 !important;
}


/* -- Badge "PROMOï¿½ï¿½O": fundo primï¿½rio + borda preta -- */

.pm-badge {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    background: var(--color-primary) !important;
    color: var(--bg-primary, #fff) !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    box-shadow: 2px 2px 0 #000 !important;
    padding: 4px 10px !important;
}


/* -- Countdown "Faltam X dias": borda preta -- */

.pm-countdown {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
    background: var(--bg-card) !important;
    color: var(--text-primary) !important;
    font-weight: 700 !important;
    font-size: 0.78rem !important;
    padding: 4px 10px !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 5px !important;
}

/* Countdown urgente (<= 3 dias) */
.pm-countdown--urgent {
    border-color: #000 !important;
    background: var(--color-primary) !important;
    color: var(--bg-primary, #fff) !important;
    box-shadow: 2px 2px 0 #000 !important;
}


/* -- Body e texto -- */

.pm-card__body {
    border-radius: 0 !important;
    padding: 1rem !important;
    flex: 1 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 0.5rem !important;
}

.pm-card__title {
    font-family: var(--card-title-font-family) !important;
    font-weight: var(--card-title-font-weight, 800) !important;
    text-transform: uppercase !important;
    color: var(--card-title-color, var(--text-primary)) !important;
    margin: 0 !important;
}

.pm-card__excerpt {
    color: var(--text-secondary) !important;
    font-size: 0.9rem !important;
    line-height: 1.5 !important;
}

/* Meta (data de expiraï¿½ï¿½o) */
.pm-card__meta,
.pm-card__expiry {
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    color: var(--text-muted) !important;
    font-size: 0.82rem !important;
    font-weight: 600 !important;
}

.pm-card__expiry {
    color: var(--color-primary) !important;
}


/* -- Separador interno + footer -- */

.pm-card__footer {
    border-top: 2px solid #000 !important;
    padding-top: 0.75rem !important;
    margin-top: auto !important;
    padding-bottom: 0 !important;
}


/* -- CTA "Participar ?": botï¿½o brutalista -- */

.pm-cta {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
    background: var(--color-primary) !important;
    color: var(--bg-primary, #fff) !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    padding: 8px 18px !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    text-decoration: none !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}

.pm-cta:hover,
.pm-cta--sm:hover {
    transform: translate(-1px, -1px) !important;
    box-shadow: 3px 3px 0 #000 !important;
    color: var(--bg-primary, #fff) !important;
}

.pm-cta--sm {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
    background: var(--color-primary) !important;
    color: var(--bg-primary, #fff) !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    font-size: 0.85rem !important;
}


/* -- Empty state -- */

.pm-empty__icon {
    border-radius: 0 !important;
    border: 3px solid #000 !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
}


/* ============================================================================
 * WAVE BRUTALISM ï¿½ SEï¿½ï¿½O 31: HOTFIX ï¿½ REVERTER DANOS DA SEï¿½ï¿½O 30
 *                             + BORDAS CORRETAS PARA /promocoes
 *
 * PROBLEMA DA SEï¿½ï¿½O 30:
 *   .pm-card__link tem position: absolute + text-indent: -9999px
 *   ERRADO ï¿½ pm-card__link ï¿½ o container principal (envolve todo o conteï¿½do)
 *   Resultado: todo o texto ficou invisï¿½vel, layout colapsou
 *
 * CORREï¿½ï¿½O:
 *   Remover position/text-indent do link
 *   Restaurar overflow: hidden no card (para conter as imagens)
 *   Manter apenas o visual brutalista (border, shadow, border-radius: 0)
 * ============================================================================ */


/* -- REVERTER erros da Seï¿½ï¿½o 30 -- */

/* Link ï¿½ container normal ï¿½ NOT an overlay */
.pm-card__link {
    position: static !important;
    inset: auto !important;
    text-indent: 0 !important;
    overflow: visible !important;
    display: block !important;
    text-decoration: none !important;
    color: inherit !important;
    z-index: auto !important;
}

/* Restaurar overflow para conter as imagens dentro do card */
.pm-card {
    overflow: hidden !important;
}

/* Restaurar posiï¿½ï¿½o estï¿½tica dos elementos internos */
.pm-card__img-wrap,
.pm-card__body,
.pm-card__body > *,
.pm-card__footer,
.pm-badge,
.pm-countdown,
.pm-cta {
    position: static !important;
    z-index: auto !important;
}


/* -- VISUAL CORRETO: replicar /noticias -- */

/* Card: border + shadow offset brutalista */
.pm-card {
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--bg-card) !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}

.pm-card:hover {
    transform: translate(-2px, -2px) !important;
    box-shadow: 6px 6px 0 var(--color-secondary) !important;
    border-color: #000 !important;
}

/* Imagem: borda inferior separa visualmente do texto */
.pm-card__img-wrap {
    border-radius: 0 !important;
    overflow: hidden !important;
    border-bottom: 3px solid #000 !important;
}

.pm-card__img {
    border-radius: 0 !important;
    display: block !important;
    width: 100% !important;
}

/* Badge "PROMOï¿½ï¿½O": fundo primï¿½rio + borda preta */
.pm-badge {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    background: var(--color-primary) !important;
    color: var(--bg-primary, #fff) !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    box-shadow: 2px 2px 0 #000 !important;
}

/* Countdown "Faltam X dias" */
.pm-countdown {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    background: var(--bg-card) !important;
    color: var(--text-primary) !important;
    font-weight: 700 !important;
}

.pm-countdown--urgent {
    background: var(--color-primary) !important;
    color: var(--bg-primary, #fff) !important;
    border-color: #000 !important;
    box-shadow: 2px 2px 0 #000 !important;
}

/* Tï¿½tulo */
.pm-card__title {
    font-family: var(--card-title-font-family) !important;
    font-weight: var(--card-title-font-weight, 800) !important;
    text-transform: uppercase !important;
    color: var(--card-title-color, var(--text-primary)) !important;
}

/* Separador + footer */
.pm-card__footer {
    border-top: 2px solid #000 !important;
    padding-top: 0.75rem !important;
}

/* CTA "Participar ?" */
.pm-cta {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
    background: var(--color-primary) !important;
    color: var(--bg-primary, #fff) !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}

.pm-cta:hover {
    transform: translate(-1px, -1px) !important;
    box-shadow: 3px 3px 0 #000 !important;
    color: var(--bg-primary, #fff) !important;
}

.pm-cta--sm {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
}


/* ============================================================================
 * WAVE BRUTALISM ï¿½ SEï¿½ï¿½O 32: SINGLES DE EVENTO e PROMOï¿½ï¿½O
 *                             Zero border-radius + bordas brutalistas
 *
 * Arquivos referï¿½ncia:
 *   pages/event-single.php      ? prefixo ev-
 *   pages/promotion-single.php  ? prefixo pr-
 * ============================================================================ */


/* --------------------------------------------------------
   /evento/[slug] ï¿½ EVENT SINGLE
   -------------------------------------------------------- */

/* Imagem de capa */
.ev-cover-img {
    border-radius: 0 !important;
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    display: block !important;
    width: 100% !important;
}

/* Badges (status + categoria) */
.ev-badge,
.ev-badge--live,
.ev-badge--closed,
.ev-badge--upcoming,
.ev-badge--cat {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    box-shadow: 2px 2px 0 #000 !important;
}

.ev-badge--live {
    background: var(--danger, #ef4444) !important;
    color: #fff !important;
    box-shadow: 2px 2px 0 #000 !important;
}

.ev-badge--upcoming {
    background: var(--color-primary) !important;
    color: var(--bg-primary, #fff) !important;
}

.ev-badge--closed {
    background: var(--text-muted) !important;
    color: #fff !important;
}

.ev-badge--cat {
    background: var(--bg-card) !important;
    color: var(--text-primary) !important;
}

/* Bloco de metadados (data, local, preï¿½o) */
.ev-meta-block {
    border-radius: 0 !important;
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    background: var(--bg-card) !important;
}

/* Divider */
.ev-divider {
    border: none !important;
    border-top: 2px solid #000 !important;
}

/* Descriï¿½ï¿½o */
.ev-description {
    border-radius: 0 !important;
}

/* Botï¿½o de aï¿½ï¿½o principal (comprar ingresso, inscrever, etc.) */
.ev-cta-btn {
    border-radius: 0 !important;
    border: 3px solid #000 !important;
    box-shadow: 3px 3px 0 var(--color-primary) !important;
    background: var(--color-primary) !important;
    color: var(--bg-primary, #fff) !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}

.ev-cta-btn:hover:not(.ev-cta-btn--disabled) {
    transform: translate(-2px, -2px) !important;
    box-shadow: 5px 5px 0 #000 !important;
    color: var(--bg-primary, #fff) !important;
}

.ev-cta-btn--disabled {
    border: 3px solid #000 !important;
    box-shadow: 3px 3px 0 var(--text-muted) !important;
    border-radius: 0 !important;
    opacity: 0.6 !important;
}

/* Botï¿½es de compartilhamento (redes sociais) */
.ev-share-btn {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
    background: var(--bg-card) !important;
    color: var(--text-primary) !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}

.ev-share-btn:hover {
    transform: translate(-1px, -1px) !important;
    box-shadow: 3px 3px 0 #000 !important;
    color: var(--color-primary) !important;
    border-color: #000 !important;
}

/* Seï¿½ï¿½o de mapa */
.ev-map-wrap {
    border-radius: 0 !important;
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    overflow: hidden !important;
}

.ev-map-info {
    border-radius: 0 !important;
    border-bottom: 3px solid #000 !important;
}

.ev-map-btn {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
}

.ev-map-btn:hover {
    transform: translate(-1px, -1px) !important;
    box-shadow: 3px 3px 0 #000 !important;
}

.ev-map-iframe {
    border-radius: 0 !important;
    border: none !important;
    display: block !important;
}

/* Link voltar */
.ev-back-link {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
    background: var(--bg-card) !important;
    color: var(--text-primary) !important;
    font-weight: 700 !important;
    padding: 6px 14px !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    text-decoration: none !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}

.ev-back-link:hover {
    transform: translate(-1px, -1px) !important;
    box-shadow: 3px 3px 0 #000 !important;
    color: var(--color-primary) !important;
}


/* --------------------------------------------------------
   /promocao/[slug] ï¿½ PROMOTION SINGLE
   -------------------------------------------------------- */

/* Imagem de capa */
.pr-cover-img {
    border-radius: 0 !important;
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    display: block !important;
    width: 100% !important;
}

/* Badge de status */
.pr-status-badge,
.pr-status-badge--active,
.pr-status-badge--closed {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    box-shadow: 2px 2px 0 #000 !important;
}

.pr-status-badge--active {
    background: var(--color-primary) !important;
    color: var(--bg-primary, #fff) !important;
}

.pr-status-badge--closed {
    background: var(--text-muted) !important;
    color: #fff !important;
}

/* Validade */
.pr-validity {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
    background: var(--bg-card) !important;
    padding: 6px 14px !important;
    font-weight: 700 !important;
}

/* Divider */
.pr-divider {
    border: none !important;
    border-top: 2px solid #000 !important;
}

/* Caixa do regulamento */
.pr-rules-summary {
    border-radius: 0 !important;
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    background: var(--bg-card) !important;
    padding: 16px 20px !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    cursor: pointer !important;
}

.pr-rules-body {
    border-radius: 0 !important;
    border: 3px solid #000 !important;
    border-top: none !important;
    background: var(--bg-card) !important;
    padding: 16px 20px !important;
}

.pr-rules-details {
    border-radius: 0 !important;
}

/* Caixa do formulï¿½rio de participaï¿½ï¿½o */
.pr-form-wrap {
    border-radius: 0 !important;
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    background: var(--bg-card) !important;
}

/* Inputs / Selects / Textarea */
.pr-form-control {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    background: var(--bg-primary) !important;
    color: var(--text-primary) !important;
    transition: border-color 0.15s ease, box-shadow 0.15s ease !important;
}

.pr-form-control:focus {
    border-color: var(--color-primary) !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
    outline: none !important;
}

/* Radio options */
.pr-radio-option {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    background: var(--bg-card) !important;
    padding: 10px 14px !important;
    cursor: pointer !important;
    transition: border-color 0.15s ease, background 0.15s ease !important;
}

.pr-radio-option:has(input:checked) {
    border-color: var(--color-primary) !important;
    background: rgba(var(--primary-rgb), 0.06) !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
}

/* Botï¿½o submit do formulï¿½rio */
.pr-form-btn {
    border-radius: 0 !important;
    border: 3px solid #000 !important;
    box-shadow: 3px 3px 0 var(--color-primary) !important;
    background: var(--color-primary) !important;
    color: var(--bg-primary, #fff) !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}

.pr-form-btn:hover:not(:disabled) {
    transform: translate(-2px, -2px) !important;
    box-shadow: 5px 5px 0 #000 !important;
    color: var(--bg-primary, #fff) !important;
}

.pr-form-btn:disabled {
    opacity: 0.6 !important;
    border: 3px solid #000 !important;
}

/* Caixa de protocolo / sucesso */
.pr-protocol-box {
    border-radius: 0 !important;
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    background: var(--bg-card) !important;
}

.pr-success {
    border-radius: 0 !important;
}

.pr-success-icon {
    border-radius: 0 !important;
    border: 3px solid #000 !important;
    box-shadow: 3px 3px 0 var(--color-primary) !important;
    background: var(--color-primary) !important;
    color: var(--bg-primary, #fff) !important;
}

/* Nota de privacidade */
.pr-privacy-note {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    background: var(--bg-card) !important;
}

/* Aviso de promo expirada */
.pr-expired-notice {
    border-radius: 0 !important;
    border: 3px solid #000 !important;
    box-shadow: 3px 3px 0 var(--text-muted) !important;
}

/* Link voltar */
.pr-back-link {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
    background: var(--bg-card) !important;
    color: var(--text-primary) !important;
    font-weight: 700 !important;
    padding: 6px 14px !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    text-decoration: none !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}

.pr-back-link:hover {
    transform: translate(-1px, -1px) !important;
    box-shadow: 3px 3px 0 #000 !important;
    color: var(--color-primary) !important;
}


/* ============================================================================
 * WAVE BRUTALISM ï¿½ SEï¿½ï¿½O 33: PAGE BUILDER ï¿½ REDESIGN COMPLETO DOS BLOCOS
 *
 * Arquivo referï¿½ncia: pages/page-default.php
 * Referï¿½ncia visual: single page /promocao/ ï¿½ espaï¿½amento, tipografia, bordas
 *
 * Estrutura de wrapper:
 *   <div class="pd-blocos-wrapper">
 *     <div class="bloco bloco-[tipo]">
 *       conteï¿½do internoï¿½
 *     </div>
 *   </div>
 *
 * Tipos de bloco:
 *   bloco-texto        ? texto rico do editor
 *   bloco-imagem       ? figura com imagem
 *   bloco-imagem-full  ? imagem fullwidth
 *   bloco-video        ? iframe YouTube embed
 *   bloco-cta          ? call to action (tï¿½tulo + texto + botï¿½o)
 *   bloco-botao        ? botï¿½o isolado (primï¿½rio ou secundï¿½rio)
 *   bloco-divisor      ? <hr> separador
 *   bloco-formulario   ? formulï¿½rio de contato com campos dinï¿½micos
 *
 * Sobrescreve seï¿½ï¿½es anteriores (3, 14, 15, 16, 17) via cascade late-loading.
 * ============================================================================ */


/* --------------------------------------------------------
   WRAPPER GERAL + LAYOUT
   -------------------------------------------------------- */

.pd-page-section {
    padding: 0 !important;
    background: transparent !important;
}

.pd-page-content {
    padding: 0 !important;
    background: transparent !important;
}

.pd-blocos-wrapper {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
    max-width: 860px !important;
    margin: 32px auto !important;
    padding: 0 24px !important;
}

/* Cada bloco: margem inferior como ï¿½nico separador */
.bloco {
    margin-bottom: 28px !important;
    border-radius: 0 !important;
}

.bloco:last-child {
    margin-bottom: 0 !important;
}


/* --------------------------------------------------------
   BLOCO DE TEXTO RICO (.bloco-texto)
   Referï¿½ncia: caixa de descriï¿½ï¿½o da /promocao/
   -------------------------------------------------------- */

.bloco-texto {
    border: 2px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--bg-card) !important;
    padding: 24px 28px !important;
}

.bloco-texto p {
    color: var(--text-secondary) !important;
    font-size: 0.95rem !important;
    line-height: 1.7 !important;
    margin-bottom: 14px !important;
}

.bloco-texto p:last-child {
    margin-bottom: 0 !important;
}

.bloco-texto h2,
.bloco-texto h3,
.bloco-texto h4 {
    font-family: var(--card-title-font-family) !important;
    font-weight: var(--card-title-font-weight, 800) !important;
    text-transform: uppercase !important;
    color: var(--card-title-color, var(--text-primary)) !important;
    margin-bottom: 10px !important;
    border-bottom: 2px solid #000 !important;
    padding-bottom: 6px !important;
}

.bloco-texto a {
    color: var(--color-primary) !important;
    text-decoration: underline !important;
    font-weight: 600 !important;
}

.bloco-texto ul,
.bloco-texto ol {
    padding-left: 20px !important;
    margin-bottom: 14px !important;
    color: var(--text-secondary) !important;
}

.bloco-texto li {
    margin-bottom: 6px !important;
    line-height: 1.6 !important;
}

.bloco-texto blockquote {
    border-left: 4px solid var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--bg-primary) !important;
    margin: 16px 0 !important;
    padding: 12px 18px !important;
    color: var(--text-secondary) !important;
    font-style: italic !important;
}

/* Texto livre (.pd-compat-text) ï¿½ mesmo padrï¿½o */
.pd-compat-text,
.pd-compat-rich {
    border: 2px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--bg-card) !important;
    padding: 24px 28px !important;
    color: var(--text-secondary) !important;
    line-height: 1.7 !important;
}


/* --------------------------------------------------------
   BLOCO DE IMAGEM (.bloco-imagem / .bloco-imagem-full)
   Referï¿½ncia: capa da /promocao/ ï¿½ borda 3px + shadow
   -------------------------------------------------------- */

.bloco-imagem,
.bloco-imagem-full {
    border-radius: 0 !important;
    overflow: visible !important;
    margin-bottom: 0 !important;    /* usa sï¿½ o margin do .bloco pai */
}

.bloco-imagem img,
.bloco-imagem-full img {
    display: block !important;
    width: 100% !important;
    border-radius: 0 !important;
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
}

.bloco-imagem figcaption,
.bloco-imagem-full figcaption {
    font-size: 0.82rem !important;
    color: var(--text-muted) !important;
    margin-top: 8px !important;
    padding-left: 4px !important;
    border-left: 3px solid var(--color-primary) !important;
}


/* --------------------------------------------------------
   BLOCO DE Vï¿½DEO (.bloco-video)
   Referï¿½ncia: embed 16:9 sem cantos arredondados
   -------------------------------------------------------- */

.bloco-video {
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    overflow: hidden !important;
    position: relative !important;
    width: 100% !important;
    padding-bottom: 56.25% !important;  /* 16:9 cross-browser */
    height: 0 !important;
    background: #000 !important;
}

.bloco-video iframe {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    border: none !important;
    border-radius: 0 !important;
}


/* --------------------------------------------------------
   BLOCO CTA (.bloco-cta)
   Referï¿½ncia: caixa de formulï¿½rio da /promocao/ ï¿½
               border 3px, shadow, fundo card, tï¿½tulo uppercase
   -------------------------------------------------------- */

.bloco-cta {
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--bg-card) !important;
    padding: 32px 28px !important;
    text-align: center !important;
}

.bloco-cta h2 {
    font-family: var(--card-title-font-family) !important;
    font-weight: var(--card-title-font-weight, 800) !important;
    font-size: 1.5rem !important;
    text-transform: uppercase !important;
    color: var(--card-title-color, var(--text-primary)) !important;
    margin-bottom: 12px !important;
    border-bottom: 2px solid #000 !important;
    padding-bottom: 12px !important;
}

.bloco-cta p {
    font-size: 0.95rem !important;
    color: var(--text-secondary) !important;
    line-height: 1.6 !important;
    margin-bottom: 20px !important;
    max-width: 600px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Botï¿½o do CTA */
.bloco-cta-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    padding: 14px 32px !important;
    border-radius: 0 !important;
    border: 3px solid #000 !important;
    box-shadow: 3px 3px 0 var(--color-primary) !important;
    background: var(--color-primary) !important;
    color: var(--bg-primary, #fff) !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    font-size: 0.95rem !important;
    text-decoration: none !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
    letter-spacing: 0.04em !important;
}

.bloco-cta-btn:hover {
    transform: translate(-2px, -2px) !important;
    box-shadow: 5px 5px 0 #000 !important;
    color: var(--bg-primary, #fff) !important;
}


/* --------------------------------------------------------
   BLOCO BOTï¿½O (.bloco-botao)
   Referï¿½ncia: botï¿½o "? Voltar para Promoï¿½ï¿½es"
               + botï¿½o "Participar" brutalista
   -------------------------------------------------------- */

.bloco-botao {
    display: flex !important;
    justify-content: center !important;
}

.bloco-botao.align-left  { justify-content: flex-start !important; }
.bloco-botao.align-right { justify-content: flex-end !important; }

/* Botï¿½o primï¿½rio (padrï¿½o) */
.bloco-botao-link {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 12px 28px !important;
    border-radius: 0 !important;
    border: 3px solid #000 !important;
    box-shadow: 3px 3px 0 var(--color-primary) !important;
    background: var(--color-primary) !important;
    color: var(--bg-primary, #fff) !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    font-size: 0.9rem !important;
    text-decoration: none !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
    letter-spacing: 0.04em !important;
}

.bloco-botao-link:hover {
    transform: translate(-2px, -2px) !important;
    box-shadow: 5px 5px 0 #000 !important;
    color: var(--bg-primary, #fff) !important;
}

/* Botï¿½o secundï¿½rio (outline brutalista) */
.bloco-botao-link.botao-secundario {
    background: var(--bg-card) !important;
    color: var(--text-primary) !important;
    box-shadow: 3px 3px 0 var(--color-primary) !important;
}

.bloco-botao-link.botao-secundario:hover {
    background: var(--bg-card) !important;
    color: var(--color-primary) !important;
    box-shadow: 5px 5px 0 #000 !important;
}


/* --------------------------------------------------------
   BLOCO DIVISOR (.bloco-divisor)
   Referï¿½ncia: linha hr entre seï¿½ï¿½es da /promocao/
   -------------------------------------------------------- */

.bloco-divisor {
    border: none !important;
    border-top: 2px solid #000 !important;
    box-shadow: 0 2px 0 var(--color-primary) !important;
    margin: 4px 0 !important;
    background: none !important;
}


/* --------------------------------------------------------
   BLOCO FORMULï¿½RIO (.bloco-formulario)
   Referï¿½ncia: formulï¿½rio de participaï¿½ï¿½o da /promocao/
   Todos os elementos replicam o padrï¿½o brutalista
   -------------------------------------------------------- */

.bloco-formulario {
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--bg-card) !important;
    padding: 28px !important;
}

/* Tï¿½tulo do formulï¿½rio */
.form-titulo {
    font-family: var(--card-title-font-family) !important;
    font-weight: var(--card-title-font-weight, 800) !important;
    font-size: 1.15rem !important;
    text-transform: uppercase !important;
    color: var(--card-title-color, var(--text-primary)) !important;
    margin-bottom: 20px !important;
    padding-bottom: 12px !important;
    border-bottom: 2px solid #000 !important;
}

/* Grupo de campo */
.form-field-wrap {
    margin-bottom: 16px !important;
}

.form-field-wrap label {
    display: block !important;
    font-size: 0.85rem !important;
    font-weight: 700 !important;
    color: var(--text-primary) !important;
    margin-bottom: 6px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.03em !important;
}

.req-star {
    color: var(--color-primary) !important;
    font-weight: 900 !important;
}

/* Inputs, textarea, select */
.form-bloco input[type="text"],
.form-bloco input[type="email"],
.form-bloco input[type="tel"],
.form-bloco input[type="number"],
.form-bloco input[type="file"],
.form-bloco select,
.form-bloco textarea {
    width: 100% !important;
    display: block !important;
    padding: 12px 16px !important;
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    background: var(--bg-primary) !important;
    color: var(--text-primary) !important;
    font-size: 0.92rem !important;
    box-shadow: none !important;
    transition: border-color 0.15s ease, box-shadow 0.15s ease !important;
    box-sizing: border-box !important;
}

.form-bloco input:focus,
.form-bloco select:focus,
.form-bloco textarea:focus {
    outline: none !important;
    border-color: var(--color-primary) !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
}

.form-bloco textarea {
    resize: vertical !important;
    min-height: 100px !important;
}

/* Checkbox */
.checkbox-label {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    font-size: 0.9rem !important;
    color: var(--text-secondary) !important;
    cursor: pointer !important;
}

.checkbox-label input[type="checkbox"] {
    width: 18px !important;
    height: 18px !important;
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    accent-color: var(--color-primary) !important;
    cursor: pointer !important;
    flex-shrink: 0 !important;
}

/* Botï¿½o submit */
.form-submit-btn {
    width: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    padding: 14px 24px !important;
    margin-top: 8px !important;
    border-radius: 0 !important;
    border: 3px solid #000 !important;
    box-shadow: 3px 3px 0 var(--color-primary) !important;
    background: var(--color-primary) !important;
    color: var(--bg-primary, #fff) !important;
    font-weight: 800 !important;
    font-size: 1rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
    cursor: pointer !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}

.form-submit-btn:hover:not(:disabled) {
    transform: translate(-2px, -2px) !important;
    box-shadow: 5px 5px 0 #000 !important;
}

.form-submit-btn:disabled {
    opacity: 0.6 !important;
    cursor: not-allowed !important;
}

/* Mensagem de erro inline */
.form-msg {
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    padding: 12px 16px !important;
    font-weight: 700 !important;
    font-size: 0.88rem !important;
    margin-top: 12px !important;
    background: var(--bg-card) !important;
}

.form-msg.error {
    border-color: var(--danger, #ef4444) !important;
    color: var(--danger, #ef4444) !important;
    box-shadow: 2px 2px 0 var(--danger, #ef4444) !important;
}

.form-msg.success {
    border-color: var(--color-primary) !important;
    color: var(--color-primary) !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
}

/* Sucesso completo (formulï¿½rio enviado) */
.form-success {
    border-radius: 0 !important;
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    background: var(--bg-card) !important;
    padding: 28px !important;
    text-align: center !important;
    font-weight: 700 !important;
    font-size: 1rem !important;
    color: var(--color-primary) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 12px !important;
}

.form-success i {
    font-size: 1.5rem !important;
    color: var(--color-primary) !important;
}


/* --------------------------------------------------------
   BOTï¿½O VOLTAR (.pd-back-btn)
   Referï¿½ncia: "? Voltar para Promoï¿½ï¿½es" no rodapï¿½ da single
   -------------------------------------------------------- */

.pd-back-btn {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 8px 18px !important;
    border-radius: 0 !important;
    border: 2px solid #000 !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
    background: var(--bg-card) !important;
    color: var(--text-primary) !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    font-size: 0.85rem !important;
    text-decoration: none !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
    margin-top: 12px !important;
}

.pd-back-btn:hover {
    transform: translate(-1px, -1px) !important;
    box-shadow: 3px 3px 0 #000 !important;
    color: var(--color-primary) !important;
}


/* --------------------------------------------------------
   IMAGEM DE CAPA DA Pï¿½GINA (.pd-cover-image)
   -------------------------------------------------------- */

.pd-cover-image {
    border-radius: 0 !important;
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    display: block !important;
    width: 100% !important;
    margin-bottom: 28px !important;
}


/* --------------------------------------------------------
   RESPONSIVE ï¿½ Mobile
   -------------------------------------------------------- */

@media (max-width: 768px) {
    .pd-blocos-wrapper {
        padding: 0 16px !important;
        margin: 20px auto !important;
    }

    .bloco {
        margin-bottom: 20px !important;
    }

    .bloco-texto,
    .pd-compat-text,
    .pd-compat-rich,
    .bloco-cta,
    .bloco-formulario {
        padding: 18px 16px !important;
    }

    .bloco-cta-btn,
    .bloco-botao-link,
    .form-submit-btn {
        width: 100% !important;
        justify-content: center !important;
    }

    .bloco-video {
        box-shadow: 2px 2px 0 var(--color-primary) !important;
    }

    .bloco-imagem img,
    .bloco-imagem-full img {
        box-shadow: 3px 3px 0 var(--color-primary) !important;
    }
}


/* ============================================================================
 * WAVE BRUTALISM ï¿½ SEï¿½ï¿½O 34: HOTFIX PAGE BUILDER ï¿½ ELIMINAR BORDAS DUPLAS
 *
 * Problema: Seï¿½ï¿½o 3 (linha ~1942) adicionou .pd-page-content no mesmo
 * seletor de .bloco-texto com border: 3px solid #000, gerando uma borda
 * EXTERNA que envolve todos os blocos ï¿½ efeito "caixa dentro de caixa".
 *
 * Regra: UM bloco = UMA borda. O container NUNCA tem borda prï¿½pria.
 * Bordas ficam exclusivamente nos elementos internos (bloco-texto, etc.).
 * ============================================================================ */


/* -- Containers de pï¿½gina: SEM borda, SEM shadow -- */

.pd-page-section,
.pd-page-content,
.pd-blocos-wrapper,
.pd-page-wrap,
.pd-empty {
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
    padding: 0 !important;
}

/* Wrapper brutalista correto: sï¿½ espaï¿½amento */
.pd-blocos-wrapper {
    display: flex !important;
    flex-direction: column !important;
    gap: 28px !important;          /* ESPAï¿½O entre blocos como separador */
    max-width: 860px !important;
    margin: 40px auto !important;
    padding: 0 24px !important;
}

/* Cada bloco: SEM borda prï¿½pria no wrapper */
.bloco {
    border: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    background: transparent !important;
    margin-bottom: 0 !important;   /* usa o gap do flex-parent */
    padding: 0 !important;
}

/* Garantir que .about-content e .sobre-content nï¿½o herdem a borda de pï¿½gina */
.about-content,
.sobre-content {
    border: none !important;
    box-shadow: none !important;
}


/* -- Reafirmar: bordas apenas nos elementos internos -- */
/* (jï¿½ definidas na Seï¿½ï¿½o 33 ï¿½ repetidas aqui com + especificidade) */

.pd-blocos-wrapper .bloco-texto {
    border: 2px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--bg-card) !important;
    padding: 24px 28px !important;
}

.pd-blocos-wrapper .bloco-cta {
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--bg-card) !important;
    padding: 32px 28px !important;
}

.pd-blocos-wrapper .bloco-formulario {
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--bg-card) !important;
    padding: 28px !important;
}

.pd-blocos-wrapper .bloco-video {
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
}

.pd-blocos-wrapper .bloco-imagem img,
.pd-blocos-wrapper .bloco-imagem-full img {
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
}

/* .bloco-botao e .bloco-divisor: sem caixa, borda sï¿½ no elemento filho */
.pd-blocos-wrapper .bloco-botao {
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
}

.pd-blocos-wrapper .bloco-divisor {
    border: none !important;
    border-top: 2px solid #000 !important;
    box-shadow: 0 2px 0 var(--color-primary) !important;
    background: none !important;
    height: 0 !important;
}

/* -- Mobile -- */
@media (max-width: 768px) {
    .pd-blocos-wrapper {
        gap: 20px !important;
        padding: 0 16px !important;
        margin: 24px auto !important;
    }
}


/* ============================================================================
 * WAVE BRUTALISM ï¿½ SEï¿½ï¿½O 35: HOTFIX CRï¿½TICO ï¿½ DUPLA BORDA NO PAGE BUILDER
 *
 * CAUSA RAIZ DEFINITIVA:
 *   PHP gera: <div class="bloco bloco-texto"> <div class="bloco-texto">ï¿½</div> </div>
 *   O wrapper externo TAMBï¿½M tem classe "bloco-texto" ? recebe a borda ï¿½ 2
 *
 * SOLUï¿½ï¿½O: seletor filho direto (>)
 *   .bloco.bloco-texto       ? SEM borda (ï¿½ o wrapper)
 *   .bloco.bloco-texto > div ? COM borda (ï¿½ o conteï¿½do real)
 *
 * Mesma lï¿½gica para: cta, formulario, video, imagem, botao, divisor
 * ============================================================================ */


/* -- 1. ZERAR BORDER em todos os wrappers externos (.bloco.bloco-*) -- */

.bloco.bloco-texto,
.bloco.bloco-cta,
.bloco.bloco-formulario,
.bloco.bloco-video,
.bloco.bloco-imagem,
.bloco.bloco-imagem-full,
.bloco.bloco-botao,
.bloco.bloco-divisor {
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
    padding: 0 !important;
    border-radius: 0 !important;
}


/* -- 2. BORDA apenas no filho direto (conteï¿½do real) -- */

/* Texto rico */
.bloco.bloco-texto > .bloco-texto,
.bloco.bloco-texto > div {
    border: 2px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--bg-card) !important;
    padding: 24px 28px !important;
}

/* CTA */
.bloco.bloco-cta > .bloco-cta,
.bloco.bloco-cta > div {
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--bg-card) !important;
    padding: 32px 28px !important;
    text-align: center !important;
}

/* Formulï¿½rio */
.bloco.bloco-formulario > .bloco-formulario,
.bloco.bloco-formulario > div {
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    background: var(--bg-card) !important;
    padding: 28px !important;
}

/* Vï¿½deo ï¿½ mantï¿½m aspecto 16:9 */
.bloco.bloco-video > .bloco-video,
.bloco.bloco-video > div {
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    overflow: hidden !important;
    position: relative !important;
    width: 100% !important;
    padding-bottom: 56.25% !important;
    height: 0 !important;
    background: #000 !important;
}

/* Imagem: borda na <img>, nï¿½o na <figure> */
.bloco.bloco-imagem > figure,
.bloco.bloco-imagem-full > figure {
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* Botï¿½o: sem caixa no wrapper */
.bloco.bloco-botao > .bloco-botao,
.bloco.bloco-botao > div {
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
    padding: 0 !important;
}

/* Divisor: apenas linha */
.bloco.bloco-divisor > .bloco-divisor,
.bloco.bloco-divisor > hr {
    border: none !important;
    border-top: 2px solid #000 !important;
    box-shadow: 0 2px 0 var(--color-primary) !important;
    background: none !important;
    height: 0 !important;
    margin: 0 !important;
    display: block !important;
}


/* -- 3. Botï¿½o "Voltar ao Inï¿½cio" (.pd-back-btn) -----------------
   Sï¿½ o link/botï¿½o recebe borda ï¿½ sem wrapper externo
   --------------------------------------------------------------- */

.pd-back-btn {
    border: 2px solid #000 !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 8px 18px !important;
    background: var(--bg-card) !important;
    color: var(--text-primary) !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    font-size: 0.85rem !important;
    text-decoration: none !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}

.pd-back-btn:hover {
    transform: translate(-1px, -1px) !important;
    box-shadow: 3px 3px 0 #000 !important;
    color: var(--color-primary) !important;
}

/* Wrapper do botï¿½o voltar: SEM borda */
.pd-back-wrap {
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
    padding-top: 8px !important;
}


/* ============================================================================
 * WAVE BRUTALISM ï¿½ SEï¿½ï¿½O 36: HOTFIX BLOCO DE Vï¿½DEO
 *
 * PROBLEMA:
 *   Seï¿½ï¿½o 33 aplicou height: 0 no seletor .bloco-video (sem especificidade)
 *   ? atinge o wrapper externo .bloco.bloco-video
 *   Seï¿½ï¿½o 34 sobrescreveu padding: 0 no wrapper
 *   ? padre tem height:0 + padding:0, overflow:hidden ? vï¿½deo desaparece
 *
 * SOLUï¿½ï¿½O:
 *   Wrapper externo: height: auto + overflow: visible (nï¿½o recortar)
 *   Filho interno: ratio 16:9 com position: relative + height: 0 + padding-bottom
 *   iframe: position: absolute preenchendo o filho
 * ============================================================================ */


/* Wrapper externo: altura automï¿½tica, sem corte */
.bloco.bloco-video {
    height: auto !important;
    overflow: visible !important;
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
    padding: 0 !important;
    border-radius: 0 !important;
}

/* Selector genï¿½rico legado: tambï¿½m forï¿½ar auto no wrapper */
.bloco-video {
    height: auto !important;
    overflow: visible !important;
}

/* Apenas o FILHO DIRETO recebe o ratio 16:9 e a borda */
.bloco.bloco-video > .bloco-video {
    position: relative !important;
    width: 100% !important;
    height: 0 !important;
    padding-bottom: 56.25% !important;  /* ratio 16:9 */
    border: 3px solid #000 !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
    overflow: hidden !important;        /* cortar apenas dentro do filho */
    background: #000 !important;
}

/* iframe: preenche o filho absolutamente */
.bloco.bloco-video > .bloco-video iframe,
.bloco-video > iframe {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    border: none !important;
    border-radius: 0 !important;
    display: block !important;
}


/* ============================================================================
 * WAVE BRUTALISM ï¿½ SEï¿½ï¿½O 37: DARK MODE ï¿½ BORDAS E SOMBRAS COM CONTRASTE
 *
 * Seletor correto do WAVE: body:not(.theme-light)
 * (confirmado em themes/wave/style.css linha ~191037)
 *
 * Problema: no Light, border: X solid #000 tem contraste perfeito.
 * No Dark, #000 se perde no fundo escuro ? cards sem definiï¿½ï¿½o visual.
 *
 * Estratï¿½gia: Variï¿½veis CSS de borda/sombra definidas para dark,
 * depois sobrescrever border-color e box-shadow em todos os elementos
 * brutalistas via seletor de alta especificidade.
 *
 * Paleta dark:
 *   Borda principal: #aaaaaa  (cinza claro, contraste sobre fundo escuro)
 *   Sombra offset:   #666666  (cinza mï¿½dio, sombra visï¿½vel sem brutalizar)
 *   Borda leve:      #888888  (inputs, elementos secundï¿½rios)
 *   Sombra hover:    #888888  (hover mais suave que o light #000)
 * ============================================================================ */


/* --------------------------------------------------------
   VARIï¿½VEIS DARK ï¿½ disponï¿½veis para qualquer uso interno
   -------------------------------------------------------- */

body:not(.theme-light) {
    --brut-border:       #aaa;
    --brut-border-light: #888;
    --brut-shadow:       #555;
    --brut-shadow-hover: #777;
}


/* --------------------------------------------------------
   CARDS ï¿½ LISTAGENS
   -------------------------------------------------------- */

/* Notï¿½cias */
body:not(.theme-light) .nl-card {
    border-color: var(--brut-border) !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
}
body:not(.theme-light) .nl-card:hover {
    box-shadow: 6px 6px 0 var(--brut-shadow-hover) !important;
}

/* Eventos */
body:not(.theme-light) .ev-card {
    border-color: var(--brut-border) !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
}
body:not(.theme-light) .ev-card:hover {
    box-shadow: 6px 6px 0 var(--brut-shadow-hover) !important;
}

/* Promoï¿½ï¿½es (pm-card) */
body:not(.theme-light) .pm-card {
    border-color: var(--brut-border) !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
}
body:not(.theme-light) .pm-card:hover {
    box-shadow: 6px 6px 0 var(--brut-shadow-hover) !important;
}

/* Separadores internos dos cards */
body:not(.theme-light) .nl-card__footer,
body:not(.theme-light) .ev-card__footer,
body:not(.theme-light) .ev-card__meta,
body:not(.theme-light) .pm-card__footer {
    border-top-color: var(--brut-border) !important;
}

/* Imagens nos cards */
body:not(.theme-light) .nl-card__img-wrap,
body:not(.theme-light) .ev-card__img-wrap,
body:not(.theme-light) .pm-card__img-wrap {
    border-bottom-color: var(--brut-border) !important;
}


/* --------------------------------------------------------
   BADGES E CHIPS
   -------------------------------------------------------- */

body:not(.theme-light) .nl-tag,
body:not(.theme-light) .ev-badge,
body:not(.theme-light) .ev-badge--cat,
body:not(.theme-light) .ev-badge--upcoming,
body:not(.theme-light) .ev-badge--closed,
body:not(.theme-light) .pm-badge,
body:not(.theme-light) .pm-countdown,
body:not(.theme-light) .pc-badge,
body:not(.theme-light) .pg-badge {
    border-color: var(--brut-border) !important;
    box-shadow: 2px 2px 0 var(--brut-shadow) !important;
}

/* Chips de filtro (eventos) */
body:not(.theme-light) .ev-chip {
    border-color: var(--brut-border) !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
}
body:not(.theme-light) .ev-chip--active {
    border-color: var(--brut-border) !important;
    box-shadow: 3px 3px 0 var(--brut-shadow) !important;
}
body:not(.theme-light) .ev-chip:hover {
    box-shadow: 3px 3px 0 var(--color-primary) !important;
}


/* --------------------------------------------------------
   BOTï¿½ES CTA
   -------------------------------------------------------- */

body:not(.theme-light) .bloco-cta-btn,
body:not(.theme-light) .bloco-botao-link,
body:not(.theme-light) .form-submit-btn,
body:not(.theme-light) .pr-form-btn,
body:not(.theme-light) .ev-cta-btn,
body:not(.theme-light) .pm-cta,
body:not(.theme-light) .pm-cta--sm,
body:not(.theme-light) .wave-promo-card__cta--primary {
    border-color: var(--brut-border) !important;
    box-shadow: 3px 3px 0 var(--brut-shadow) !important;
}

body:not(.theme-light) .bloco-cta-btn:hover,
body:not(.theme-light) .bloco-botao-link:hover,
body:not(.theme-light) .form-submit-btn:hover,
body:not(.theme-light) .pr-form-btn:hover,
body:not(.theme-light) .ev-cta-btn:hover,
body:not(.theme-light) .pm-cta:hover {
    box-shadow: 5px 5px 0 var(--brut-shadow-hover) !important;
}

/* Botï¿½o secundï¿½rio outline */
body:not(.theme-light) .bloco-botao-link.botao-secundario {
    border-color: var(--brut-border) !important;
    box-shadow: 3px 3px 0 var(--color-primary) !important;
}

/* Botï¿½o voltar */
body:not(.theme-light) .pd-back-btn,
body:not(.theme-light) .pr-back-link,
body:not(.theme-light) .ev-back-link {
    border-color: var(--brut-border) !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
}

body:not(.theme-light) .pd-back-btn:hover,
body:not(.theme-light) .pr-back-link:hover,
body:not(.theme-light) .ev-back-link:hover {
    box-shadow: 3px 3px 0 var(--brut-shadow-hover) !important;
}


/* --------------------------------------------------------
   INPUTS E FORMULï¿½RIOS
   -------------------------------------------------------- */

body:not(.theme-light) .form-bloco input,
body:not(.theme-light) .form-bloco select,
body:not(.theme-light) .form-bloco textarea,
body:not(.theme-light) .pr-form-control,
body:not(.theme-light) .pr-radio-option {
    border-color: var(--brut-border-light) !important;
}

body:not(.theme-light) .form-bloco input:focus,
body:not(.theme-light) .form-bloco select:focus,
body:not(.theme-light) .form-bloco textarea:focus,
body:not(.theme-light) .pr-form-control:focus {
    border-color: var(--color-primary) !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
}

body:not(.theme-light) .checkbox-label input[type="checkbox"] {
    border-color: var(--brut-border-light) !important;
}


/* --------------------------------------------------------
   PAGE BUILDER ï¿½ BLOCOS
   -------------------------------------------------------- */

body:not(.theme-light) .pd-blocos-wrapper .bloco-texto,
body:not(.theme-light) .bloco.bloco-texto > div {
    border-color: var(--brut-border) !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
}

body:not(.theme-light) .pd-blocos-wrapper .bloco-cta,
body:not(.theme-light) .bloco.bloco-cta > div,
body:not(.theme-light) .pd-blocos-wrapper .bloco-formulario,
body:not(.theme-light) .bloco.bloco-formulario > div,
body:not(.theme-light) .bloco.bloco-video > .bloco-video {
    border-color: var(--brut-border) !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
}

body:not(.theme-light) .pd-blocos-wrapper .bloco-imagem img,
body:not(.theme-light) .pd-blocos-wrapper .bloco-imagem-full img {
    border-color: var(--brut-border) !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
}

body:not(.theme-light) .bloco-divisor,
body:not(.theme-light) .pd-blocos-wrapper .bloco-divisor {
    border-top-color: var(--brut-border) !important;
    box-shadow: 0 2px 0 var(--color-primary) !important;
}

body:not(.theme-light) .form-titulo {
    border-bottom-color: var(--brut-border) !important;
}

body:not(.theme-light) .form-success {
    border-color: var(--brut-border) !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
}


/* --------------------------------------------------------
   SINGLES ï¿½ /evento/, /promocao/, /noticia/
   -------------------------------------------------------- */

/* Imagens de capa */
body:not(.theme-light) .ev-cover-img,
body:not(.theme-light) .pr-cover-img,
body:not(.theme-light) .ns-cover {
    border-color: var(--brut-border) !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
}

/* Bloco de metadados */
body:not(.theme-light) .ev-meta-block {
    border-color: var(--brut-border) !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
}

body:not(.theme-light) .ev-divider,
body:not(.theme-light) .pr-divider {
    border-top-color: var(--brut-border) !important;
}

/* Badges das singles */
body:not(.theme-light) .ev-badge,
body:not(.theme-light) .pr-status-badge {
    border-color: var(--brut-border) !important;
    box-shadow: 2px 2px 0 var(--brut-shadow) !important;
}

/* Mapa */
body:not(.theme-light) .ev-map-wrap {
    border-color: var(--brut-border) !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
}

body:not(.theme-light) .ev-map-info {
    border-bottom-color: var(--brut-border) !important;
}

/* Formulï¿½rio de promoï¿½ï¿½o */
body:not(.theme-light) .pr-form-wrap {
    border-color: var(--brut-border) !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
}

body:not(.theme-light) .pr-rules-summary {
    border-color: var(--brut-border) !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
}

body:not(.theme-light) .pr-rules-body {
    border-color: var(--brut-border) !important;
}

body:not(.theme-light) .pr-protocol-box {
    border-color: var(--brut-border) !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
}

/* Botï¿½o share */
body:not(.theme-light) .ev-share-btn {
    border-color: var(--brut-border) !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
}


/* --------------------------------------------------------
   PODCASTS
   -------------------------------------------------------- */

body:not(.theme-light) .pc-series-card,
body:not(.theme-light) .pc-card,
body:not(.theme-light) .wave-podcast-card {
    border-color: var(--brut-border) !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
}
body:not(.theme-light) .pc-series-card:hover,
body:not(.theme-light) .pc-card:hover,
body:not(.theme-light) .wave-podcast-card:hover {
    box-shadow: 6px 6px 0 var(--brut-shadow-hover) !important;
}


/* --------------------------------------------------------
   PROGRAMAï¿½ï¿½O
   -------------------------------------------------------- */

body:not(.theme-light) .pg-day-btn {
    border-color: var(--brut-border) !important;
}
body:not(.theme-light) .pg-day-btn--active {
    border-color: var(--brut-border) !important;
    box-shadow: 3px 3px 0 var(--brut-shadow) !important;
}
body:not(.theme-light) .pg-item {
    border-color: var(--brut-border) !important;
    box-shadow: 3px 3px 0 var(--color-primary) !important;
}
body:not(.theme-light) .pg-item:hover {
    box-shadow: 5px 5px 0 var(--brut-shadow-hover) !important;
}


/* --------------------------------------------------------
   SEPARADORES E DIVISORES GLOBAIS
   -------------------------------------------------------- */

body:not(.theme-light) .nl-card__footer,
body:not(.theme-light) .ns-divider,
body:not(.theme-light) .pc-card__footer {
    border-top-color: var(--brut-border) !important;
}


/* ============================================================================


/* ============================================================================
 * WAVE BRUTALISM â€” SEÃ‡ÃƒO 38 (REESCRITA): DARK MODE â€” BORDAS ADAPTATIVAS
 *
 * CAUSA DO PROBLEMA ANTERIOR:
 *   rgba(var(--var-a), 0.85) onde --var-a contÃ©m outro var() Ã© descartado
 *   silenciosamente pelo browser â€” toda regra que dependia disso ficou inativa.
 *
 * SOLUÃ‡ÃƒO DEFINITIVA:
 *   Settings.php agora injeta variÃ¡veis simples (sem cadeia de var()) em :root:
 *   Light: --brut-border-color: #000000  --brut-shadow-color: #000000
 *   Dark:  --brut-border-color: #aaaaaa  --brut-shadow-color: #555555
 *
 *   Aqui usamos border: Xpx solid var(--brut-border-color) (shorthand completo)
 *   para garantir override robusto sobre qualquer border: solid #000 anterior.
 * ============================================================================ */


/* Fallback para quando nenhum tema estÃ¡ selecionado */
:root {
    --brut-border-color: #000000;
    --brut-border-light: #333333;
    --brut-shadow-color: #000000;
    --brut-shadow-hover: #000000;
}



/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   SEÃ‡ÃƒO 38 â€” PARTE 2: DARK MODE VIA body.theme-dark
   (seletor confirmado: index.php linha 213 gera body com
    class="theme-dark" quando o admin seleciona Dark mode)
   Especificidade: body.theme-dark .X = (0,2,1) > .X = (0,1,0)
   Garante override sobre todas as regras #000 anteriores.
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

/* â”€â”€ Cards de listagem â”€â”€ */

body.theme-dark .nl-card {
    border: 2px solid #aaaaaa !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
}
body.theme-dark .nl-card:hover {
    box-shadow: 6px 6px 0 #777777 !important;
}

body.theme-dark .ev-card {
    border: 2px solid #aaaaaa !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
}
body.theme-dark .ev-card:hover {
    box-shadow: 6px 6px 0 #777777 !important;
}

body.theme-dark .pm-card {
    border: 2px solid #aaaaaa !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
}
body.theme-dark .pm-card:hover {
    border-color: #aaaaaa !important;
    box-shadow: 6px 6px 0 #777777 !important;
}

body.theme-dark .pc-card,
body.theme-dark .pc-series-card,
body.theme-dark .wave-podcast-card {
    border: 2px solid #aaaaaa !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
}
body.theme-dark .pc-card:hover,
body.theme-dark .pc-series-card:hover,
body.theme-dark .wave-podcast-card:hover {
    box-shadow: 6px 6px 0 #777777 !important;
}

body.theme-dark .pg-item {
    border: 2px solid #aaaaaa !important;
    box-shadow: 3px 3px 0 var(--color-primary) !important;
}
body.theme-dark .pg-item:hover {
    box-shadow: 5px 5px 0 #777777 !important;
}

/* â”€â”€ Separadores â”€â”€ */

body.theme-dark .nl-card__footer,
body.theme-dark .ev-card__footer,
body.theme-dark .ev-card__meta,
body.theme-dark .pm-card__footer,
body.theme-dark .pc-card__footer {
    border-top: 1px solid #888888 !important;
}

body.theme-dark .ns-divider,
body.theme-dark .ev-divider,
body.theme-dark .pr-divider {
    border-top: 2px solid #aaaaaa !important;
}

body.theme-dark .bloco-divisor {
    border-top: 2px solid #aaaaaa !important;
    box-shadow: 0 2px 0 var(--color-primary) !important;
}

/* â”€â”€ Imagens â”€â”€ */

body.theme-dark .ev-cover-img,
body.theme-dark .pr-cover-img,
body.theme-dark .ns-cover {
    border: 3px solid #aaaaaa !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
}

body.theme-dark .pd-cover-image,
body.theme-dark .bloco-imagem img,
body.theme-dark .bloco-imagem-full img,
body.theme-dark .pd-blocos-wrapper .bloco-imagem img,
body.theme-dark .pd-blocos-wrapper .bloco-imagem-full img {
    border: 3px solid #aaaaaa !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
}

/* â”€â”€ Badges e chips â”€â”€ */

body.theme-dark .nl-tag,
body.theme-dark .ev-badge,
body.theme-dark .ev-badge--cat,
body.theme-dark .ev-badge--upcoming,
body.theme-dark .ev-badge--live,
body.theme-dark .ev-badge--closed,
body.theme-dark .pm-badge,
body.theme-dark .pm-countdown,
body.theme-dark .pc-badge,
body.theme-dark .pg-badge,
body.theme-dark .pr-status-badge {
    border: 2px solid #aaaaaa !important;
    box-shadow: 2px 2px 0 #555555 !important;
}

body.theme-dark .ev-chip {
    border: 2px solid #aaaaaa !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
}
body.theme-dark .ev-chip:hover,
body.theme-dark .ev-chip--active {
    box-shadow: 3px 3px 0 #555555 !important;
}

body.theme-dark .pg-day-btn {
    border: 2px solid #aaaaaa !important;
}
body.theme-dark .pg-day-btn--active {
    box-shadow: 3px 3px 0 #555555 !important;
}

/* â”€â”€ BotÃµes CTA â”€â”€ */

body.theme-dark .bloco-cta-btn,
body.theme-dark .bloco-botao-link,
body.theme-dark .form-submit-btn,
body.theme-dark .pr-form-btn,
body.theme-dark .ev-cta-btn,
body.theme-dark .pm-cta,
body.theme-dark .pm-cta--sm,
body.theme-dark .wave-promo-card__cta--primary {
    border: 3px solid #aaaaaa !important;
    box-shadow: 3px 3px 0 #555555 !important;
}

body.theme-dark .bloco-cta-btn:hover,
body.theme-dark .bloco-botao-link:hover,
body.theme-dark .form-submit-btn:hover:not(:disabled),
body.theme-dark .pr-form-btn:hover,
body.theme-dark .ev-cta-btn:hover,
body.theme-dark .pm-cta:hover {
    box-shadow: 5px 5px 0 #777777 !important;
}

body.theme-dark .bloco-botao-link.botao-secundario {
    border: 3px solid #aaaaaa !important;
}

body.theme-dark .ev-share-btn {
    border: 2px solid #aaaaaa !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
}

body.theme-dark .pd-back-btn,
body.theme-dark .pr-back-link,
body.theme-dark .ev-back-link {
    border: 2px solid #aaaaaa !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
}
body.theme-dark .pd-back-btn:hover,
body.theme-dark .pr-back-link:hover,
body.theme-dark .ev-back-link:hover {
    box-shadow: 3px 3px 0 #777777 !important;
}

/* â”€â”€ Inputs e formulÃ¡rios â”€â”€ */

body.theme-dark .form-bloco input,
body.theme-dark .form-bloco select,
body.theme-dark .form-bloco textarea,
body.theme-dark .pr-form-control,
body.theme-dark .pr-radio-option,
body.theme-dark .checkbox-label input[type="checkbox"] {
    border: 2px solid #888888 !important;
}

body.theme-dark .form-bloco input:focus,
body.theme-dark .form-bloco select:focus,
body.theme-dark .form-bloco textarea:focus,
body.theme-dark .pr-form-control:focus {
    border: 2px solid var(--color-primary) !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
}

body.theme-dark .form-titulo {
    border-bottom: 2px solid #aaaaaa !important;
}

body.theme-dark .form-success {
    border: 3px solid #aaaaaa !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
}

/* â”€â”€ Page Builder â”€â”€ */

body.theme-dark .bloco.bloco-texto > div,
body.theme-dark .pd-blocos-wrapper .bloco-texto {
    border: 2px solid #aaaaaa !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
}

body.theme-dark .bloco.bloco-cta > div,
body.theme-dark .pd-blocos-wrapper .bloco-cta {
    border: 3px solid #aaaaaa !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
}

body.theme-dark .bloco.bloco-formulario > div,
body.theme-dark .pd-blocos-wrapper .bloco-formulario {
    border: 3px solid #aaaaaa !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
}

body.theme-dark .bloco.bloco-video > .bloco-video {
    border: 3px solid #aaaaaa !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
}

/* â”€â”€ Singles â”€â”€ */

body.theme-dark .ev-meta-block {
    border: 3px solid #aaaaaa !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
}

body.theme-dark .ev-map-wrap {
    border: 3px solid #aaaaaa !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
}
body.theme-dark .ev-map-info {
    border-bottom: 2px solid #aaaaaa !important;
}

body.theme-dark .pr-form-wrap {
    border: 3px solid #aaaaaa !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
}

body.theme-dark .pr-rules-summary {
    border: 2px solid #aaaaaa !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
}
body.theme-dark .pr-rules-body {
    border: 2px solid #aaaaaa !important;
}

body.theme-dark .pr-protocol-box {
    border: 3px solid #aaaaaa !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
}


/* ============================================================================
 * WAVE BRUTALISM â€” SEÃ‡ÃƒO 39: DARK MODE â€” CARDS DA HOME (classes s-*)
 *
 * A home.php usa classes diferentes das listagens dedicadas:
 *   .s-promo-card    â†’ PromoÃ§Ãµes (home)
 *   .s-event-card    â†’ Eventos (home)
 *   .s-news-card     â†’ NotÃ­cias (home)
 *   .chart-track     â†’ Top MÃºsicas / Paradas
 *   .team-card-inner â†’ Equipe (carousel)
 *   .s-show-card     â†’ ProgramaÃ§Ã£o (home)
 *
 * Seletor: body.theme-dark (confirmado index.php L213)
 * Especificidade: (0,2,1) > (0,1,0) â€” garante override sobre todas as regras
 * ============================================================================ */

/* â”€â”€ PromoÃ§Ãµes da home (s-promo-card) â”€â”€ */

body.theme-dark .s-promo-card {
    border: 2px solid #aaaaaa !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
}
body.theme-dark .s-promo-card:hover {
    border-color: #aaaaaa !important;
    box-shadow: 6px 6px 0 #777777 !important;
}
body.theme-dark .s-promo-card__img {
    border-bottom: 2px solid #aaaaaa !important;
}

/* â”€â”€ Eventos da home (s-event-card) â”€â”€ */

body.theme-dark .s-event-card {
    border: 2px solid #aaaaaa !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
}
body.theme-dark .s-event-card:hover {
    border-color: #aaaaaa !important;
    box-shadow: 6px 6px 0 #777777 !important;
}
body.theme-dark .s-event-card__img-wrap {
    border-bottom: 2px solid #aaaaaa !important;
}

/* â”€â”€ NotÃ­cias da home (s-news-card) â”€â”€ */

body.theme-dark .s-news-card {
    border: 2px solid #aaaaaa !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
}
body.theme-dark .s-news-card:hover {
    border-color: #aaaaaa !important;
    box-shadow: 6px 6px 0 #777777 !important;
}
body.theme-dark .s-news-card__img-wrap {
    border-bottom: 2px solid #aaaaaa !important;
}
body.theme-dark .s-news-card__meta {
    border-top: 1px solid #888888 !important;
}

/* â”€â”€ Top MÃºsicas / Paradas (chart-track) â”€â”€ */

body.theme-dark .chart-track {
    border: 2px solid #aaaaaa !important;
    box-shadow: 3px 3px 0 var(--color-primary) !important;
    border-radius: 0 !important;
}
body.theme-dark .chart-track:hover {
    border-color: #aaaaaa !important;
    box-shadow: 5px 5px 0 #777777 !important;
}
body.theme-dark .chart-track-cover {
    border-right: 2px solid #aaaaaa !important;
}

/* â”€â”€ Equipe â€” carousel (team-card-inner) â”€â”€ */

body.theme-dark .team-card-inner {
    border: 2px solid #aaaaaa !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
}
body.theme-dark .team-card-inner:hover {
    border-color: #aaaaaa !important;
    box-shadow: 6px 6px 0 #777777 !important;
}
body.theme-dark .team-avatar-wrapper {
    border-bottom: 2px solid #aaaaaa !important;
}

/* â”€â”€ ProgramaÃ§Ã£o (s-show-card) â”€â”€ */

body.theme-dark .s-show-card {
    border: 2px solid #aaaaaa !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
}
body.theme-dark .s-show-card__photo {
    border-right: 2px solid #aaaaaa !important;
}

/* â”€â”€ BotÃ£o "Ver Todas" / CTA das seÃ§Ãµes â”€â”€ */

body.theme-dark .s-section-cta {
    border: 2px solid #aaaaaa !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
}
body.theme-dark .s-section-cta:hover {
    box-shadow: 4px 4px 0 #777777 !important;
}

/* â”€â”€ Badges (s-category-pill, s-event-date-badge, s-live-badge) â”€â”€ */

body.theme-dark .s-category-pill {
    border: 1px solid #aaaaaa !important;
    box-shadow: 2px 2px 0 #555555 !important;
}
body.theme-dark .s-event-date-badge {
    border: 2px solid #aaaaaa !important;
    box-shadow: 2px 2px 0 #555555 !important;
}

/* â”€â”€ BotÃµes internos das cards â”€â”€ */

body.theme-dark .s-btn-primary {
    border: 2px solid #aaaaaa !important;
    box-shadow: 2px 2px 0 #555555 !important;
    border-radius: 0 !important;
}
body.theme-dark .s-btn-primary:hover {
    box-shadow: 4px 4px 0 #777777 !important;
}


/* ============================================================================
 * WAVE BRUTALISM â€” SEÃ‡ÃƒO 40: DARK MODE â€” CLASSES REAIS (wave-* prefix)
 *
 * Mapeamento confirmado inspecionando os arquivos PHP de cada mÃ³dulo:
 *   themes/wave/pages/promocoes.php   â†’ .wave-promo-card
 *   themes/wave/pages/noticias.php    â†’ .wave-promo-card.wave-news-card-item
 *   themes/wave/pages/eventos.php     â†’ .wave-event-card
 *   themes/wave/modules/home_chart.php â†’ .wave-chart-track
 *   themes/wave/pages/equipe.php      â†’ .wave-team-card
 *
 * As SeÃ§Ãµes 38 e 39 falharam porque usavam classes .s-* e .pm-card
 * que NÃƒO existem nos mÃ³dulos reais do tema WAVE.
 * ============================================================================ */

/* â”€â”€ PromoÃ§Ãµes E NotÃ­cias (ambas usam .wave-promo-card) â”€â”€ */

body.theme-dark .wave-promo-card {
    border: 2px solid #aaaaaa !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
}
body.theme-dark .wave-promo-card:hover {
    border-color: #aaaaaa !important;
    box-shadow: 6px 6px 0 #777777 !important;
}
body.theme-dark .wave-promo-card__img {
    border-bottom: 2px solid #aaaaaa !important;
}

/* â”€â”€ Eventos (wave-event-card) â”€â”€ */

body.theme-dark .wave-event-card {
    border: 2px solid #aaaaaa !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
}
body.theme-dark .wave-event-card:hover {
    border-color: #aaaaaa !important;
    box-shadow: 6px 6px 0 #777777 !important;
}
body.theme-dark .wave-event-card__img {
    border-bottom: 2px solid #aaaaaa !important;
}

/* â”€â”€ Top MÃºsicas / Chart (wave-chart-track) â”€â”€ */

body.theme-dark .wave-chart-track {
    border: 2px solid #aaaaaa !important;
    box-shadow: 3px 3px 0 var(--color-primary) !important;
    border-radius: 0 !important;
}
body.theme-dark .wave-chart-track:hover {
    border-color: #aaaaaa !important;
    box-shadow: 5px 5px 0 #777777 !important;
}
body.theme-dark .wave-chart-track__cover {
    border-right: 2px solid #aaaaaa !important;
}

/* â”€â”€ Equipe (wave-team-card) â”€â”€ */

body.theme-dark .wave-team-card {
    border: 2px solid #aaaaaa !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
}
body.theme-dark .wave-team-card:hover {
    border-color: #aaaaaa !important;
    box-shadow: 6px 6px 0 #777777 !important;
}
body.theme-dark .wave-team-card__avatar-wrap {
    border-bottom: 2px solid #aaaaaa !important;
}

/* â”€â”€ Podcasts (wave-podcast-card â€” jÃ¡ coberto na SeÃ§Ã£o 38 mas reforÃ§ando) â”€â”€ */

body.theme-dark .wave-podcast-card {
    border: 2px solid #aaaaaa !important;
    box-shadow: 4px 4px 0 var(--color-primary) !important;
    border-radius: 0 !important;
}
body.theme-dark .wave-podcast-card:hover {
    border-color: #aaaaaa !important;
    box-shadow: 6px 6px 0 #777777 !important;
}

/* â”€â”€ Badges e elementos internos â”€â”€ */

body.theme-dark .wave-promo-badge {
    border: 1px solid #aaaaaa !important;
    box-shadow: 2px 2px 0 #555555 !important;
}
body.theme-dark .wave-event-card__date-badge {
    border: 2px solid #aaaaaa !important;
}

/* â”€â”€ BotÃµes CTA primÃ¡rios nas seÃ§Ãµes wave â”€â”€ */

body.theme-dark .wave-promo-card__cta,
body.theme-dark .wave-promo-card .cta-btn,
body.theme-dark .wave-event-card .btn,
body.theme-dark .wave-event-card .cta-btn {
    border: 2px solid #aaaaaa !important;
    box-shadow: 2px 2px 0 #555555 !important;
    border-radius: 0 !important;
}
body.theme-dark .wave-promo-card__cta:hover,
body.theme-dark .wave-event-card .cta-btn:hover {
    box-shadow: 4px 4px 0 #777777 !important;
}

/* â”€â”€ CTA de seÃ§Ã£o (wave-chart-header__cta, etc.) â”€â”€ */

body.theme-dark .wave-chart-header__cta {
    border: 2px solid #aaaaaa !important;
    box-shadow: 2px 2px 0 var(--color-primary) !important;
}
body.theme-dark .wave-chart-header__cta:hover {
    box-shadow: 4px 4px 0 #777777 !important;
}


/* ============================================================================
 * WAVE BRUTALISM â€” SEÃ‡ÃƒO 41: DARK MODE â€” PÃGINAS INTERNAS E SINGLES
 *
 * Cobertura:
 *   /equipe              â†’ .wave-team-card
 *   /noticia/{slug}      â†’ .ns-sidebar-card, .ns-main, artigo
 *   /promocao/{slug}     â†’ .pr-container, .pr-form-wrap, .pr-rules-details
 *   /programacao         â†’ .pg-day-btn--active .pg-day-btn__today (tipografia HOJE)
 *   Home NO AR AGORA     â†’ .wave-onair-card
 * ============================================================================ */

/* â”€â”€ /equipe â€” wave-team-card â”€â”€ */

body.theme-dark .wave-team-card {
    border: 2px solid #aaaaaa !important;
    box-shadow: 4px 4px 0 var(--color-primary, #e87722) !important;
    border-radius: 0 !important;
}
body.theme-dark .wave-team-card:hover {
    box-shadow: 6px 6px 0 #777777 !important;
}
body.theme-dark .wave-team-card__avatar-wrap {
    border-bottom: 2px solid #aaaaaa !important;
}

/* â”€â”€ HOME â€” "No Ar Agora" (wave-onair-card) â”€â”€ */

body.theme-dark .wave-onair-card {
    border: 2px solid #aaaaaa !important;
    box-shadow: 4px 4px 0 var(--color-primary, #e87722) !important;
    border-radius: 0 !important;
}
body.theme-dark .wave-onair-card:hover {
    box-shadow: 6px 6px 0 #777777 !important;
}
body.theme-dark .wave-onair-card__photo-wrap {
    border-right: 2px solid #aaaaaa !important;
}

/* â”€â”€ /noticia/{slug} â€” sidebar e artigo â”€â”€ */

body.theme-dark .ns-sidebar-card {
    border: 2px solid #aaaaaa !important;
    box-shadow: 3px 3px 0 var(--color-primary, #e87722) !important;
    border-radius: 0 !important;
    padding: 12px !important;
    margin-bottom: 12px !important;
}
body.theme-dark .ns-sidebar-card:hover {
    box-shadow: 5px 5px 0 #777777 !important;
}
body.theme-dark .ns-sidebar-card-title a {
    color: #eeeeee !important;
}
body.theme-dark .ns-sidebar-card-title a:hover {
    color: var(--color-primary, #e87722) !important;
}

/* Barra de destaque lateral */
body.theme-dark .ns-sidebar-accent {
    background: var(--color-primary, #e87722) !important;
}

/* TÃ­tulo da sidebar */
body.theme-dark .ns-sidebar-title {
    color: #ffffff !important;
    border-bottom: 2px solid #aaaaaa !important;
    padding-bottom: 8px !important;
}

/* â”€â”€ /promocao/{slug} â€” container e blocos â”€â”€ */

body.theme-dark .pr-rules-details {
    border: 2px solid #aaaaaa !important;
    box-shadow: 3px 3px 0 #555555 !important;
    border-radius: 0 !important;
}
body.theme-dark .pr-form-wrap {
    border: 2px solid #aaaaaa !important;
    box-shadow: 4px 4px 0 var(--color-primary, #e87722) !important;
    border-radius: 0 !important;
}
body.theme-dark .pr-form-control {
    border: 1.5px solid #888888 !important;
    border-radius: 0 !important;
}
body.theme-dark .pr-form-control:focus {
    border-color: var(--color-primary, #e87722) !important;
    box-shadow: 0 0 0 3px rgba(232, 119, 34, 0.2) !important;
}
body.theme-dark .pr-radio-option {
    border: 1.5px solid #888888 !important;
    border-radius: 0 !important;
}
body.theme-dark .pr-radio-option:has(input:checked) {
    border-color: var(--color-primary, #e87722) !important;
}
body.theme-dark .pr-form-btn {
    border: 2px solid #aaaaaa !important;
    border-radius: 0 !important;
}
body.theme-dark .pr-divider {
    border-top-color: #555555 !important;
}

/* ── /promocao/{slug} — light mode: neutraliza brutalismo nos campos ── */
body.theme-light .pr-form-wrap {
    border        : 0.5px solid rgba(0, 0, 0, 0.08) !important;
    border-radius : 12px !important;
    box-shadow    : none !important;
    background    : rgba(255, 255, 255, 0.95) !important;
    color-scheme  : light;
}
body.theme-light .pr-form-control {
    border              : 0.5px solid var(--color-border-tertiary) !important;
    border-radius       : var(--border-radius-lg) !important;
    background          : var(--bg-primary) !important;
    color               : var(--color-text-primary) !important;
    box-shadow          : none !important;
    -webkit-appearance  : none !important;
    appearance          : none !important;
}
body.theme-light input[type="date"].pr-form-control {
    -webkit-appearance: auto !important;
    appearance        : auto !important;
}
body.theme-light .pr-form-control:focus {
    border-color  : var(--color-border-primary) !important;
    box-shadow    : 0 0 0 3px rgba(var(--primary-rgb), 0.12) !important;
}
body.theme-light .pr-radio-option {
    border        : 0.5px solid var(--color-border-tertiary) !important;
    border-radius : var(--border-radius-lg) !important;
    background    : var(--color-background-secondary) !important;
    box-shadow    : none !important;
}
body.theme-light .pr-radio-option:has(input:checked) {
    border-color  : var(--color-border-primary) !important;
    box-shadow    : none !important;
}

/* Imagem de capa da promo single â€” borda no dark */
body.theme-dark .pr-cover-img {
    border: 2px solid #aaaaaa !important;
    border-radius: 0 !important;
    box-shadow: 4px 4px 0 #555555 !important;
}

/* â”€â”€ /programacao â€” Tab "HOJE" tipografia â”€â”€ */
/*
 * No dark, o tab ativo tem fundo laranja (--color-primary).
 * O texto "HOJE" (.pg-day-btn__today) tem cor escura ideal para o Light
 * mas no Dark queremos que contraste bem mesmo sobre o fundo laranja.
 * Deixamos #111 que jÃ¡ contrasta bem sobre laranja â€” mas o subtÃ­tulo
 * "TerÃ§a-feira" estava em cinza suave invisÃ­vel no laranja. Corrigimos:
 */
body.theme-dark .pg-day-btn--active .pg-day-btn__today {
    color: #111111 !important;
    font-weight: 700 !important;
}
body.theme-dark .pg-day-btn--active .pg-day-btn__full {
    color: #111111 !important;
    font-weight: 600 !important;
}
body.theme-dark .pg-day-btn--active .pg-day-btn__short {
    color: #111111 !important;
}

/* Tabs dos outros dias no dark â€” texto legÃ­vel */
body.theme-dark .pg-day-btn:not(.pg-day-btn--active) {
    border: 1px solid #aaaaaa !important;
    color: #cccccc !important;
}
body.theme-dark .pg-day-btn:not(.pg-day-btn--active):hover {
    border-color: var(--color-primary, #e87722) !important;
    color: var(--color-primary, #e87722) !important;
}

/* â”€â”€ Itens da programaÃ§Ã£o â€” pg-item no dark â”€â”€ */
body.theme-dark .pg-item {
    border: 2px solid #aaaaaa !important;
    box-shadow: 3px 3px 0 #555555 !important;
    border-radius: 0 !important;
}
body.theme-dark .pg-item--live {
    border-color: var(--color-primary, #e87722) !important;
    box-shadow: 3px 3px 0 var(--color-primary, #e87722) !important;
}


/* ============================================================================
 * WAVE BRUTALISM â€” SEÃ‡ÃƒO 42: TABS DE PROGRAMAÃ‡ÃƒO â€” HOVER DO DIA "HOJE"
 *
 * O tab ativo (dia atual) recebe .pg-day-btn--active.
 * O span interno .pg-day-btn__today exibe o rÃ³tulo "Hoje".
 * O hover padrÃ£o (.pg-day-btn--active:hover) nÃ£o tem destaque visual.
 * Esta seÃ§Ã£o adiciona efeito de destaque brutalista: sombra offset
 * + scale + brilho no label "Hoje" para ambos Light e Dark.
 * ============================================================================ */

/* â”€â”€ Hover no tab HOJE â€” efeito brutalista (ambos os temas) â”€â”€ */

.pg-day-btn--active:hover {
    transform   : translate(-2px, -2px) !important;
    box-shadow  : 4px 4px 0 rgba(0, 0, 0, 0.5) !important;
    filter      : brightness(1.12) !important;
    outline     : none !important;
    transition  : transform 0.15s ease, box-shadow 0.15s ease, filter 0.15s ease !important;
}

/* Label "Hoje" pulsa levemente ao hover */
.pg-day-btn--active:hover .pg-day-btn__today {
    background   : #fff !important;
    color        : var(--primary-color) !important;
    box-shadow   : 2px 2px 0 rgba(0, 0, 0, 0.35) !important;
    transform    : scale(1.08) !important;
    transition   : transform 0.15s ease, box-shadow 0.15s ease !important;
}

/* SubtÃ­tulo do dia (ex: "TerÃ§a-feira") fica visÃ­vel no hover */
.pg-day-btn--active:hover .pg-day-btn__full {
    display : block !important;
    color   : rgba(255, 255, 255, 0.9) !important;
    font-size: 0.68rem !important;
}

/* â”€â”€ Dark mode: hover com sombra mais clara â”€â”€ */

body.theme-dark .pg-day-btn--active:hover {
    box-shadow  : 4px 4px 0 #aaaaaa !important;
    filter      : brightness(1.08) !important;
    transform   : translate(-2px, -2px) !important;
}

body.theme-dark .pg-day-btn--active:hover .pg-day-btn__today {
    background: #111111 !important;
    color     : var(--color-primary, #e87722) !important;
    box-shadow: 2px 2px 0 #555555 !important;
}

/* â”€â”€ Idle state â€” deixa o tab HOJE levemente pulsando no idle â”€â”€ */
/* animaÃ§Ã£o sutil de glow no tab ativo para chamar atenÃ§Ã£o antes do hover */

@keyframes pg-today-pulse {
    0%   { box-shadow: 0 4px 16px rgba(var(--primary-rgb, 232,119,34), 0.35); }
    50%  { box-shadow: 0 4px 24px rgba(var(--primary-rgb, 232,119,34), 0.65); }
    100% { box-shadow: 0 4px 16px rgba(var(--primary-rgb, 232,119,34), 0.35); }
}

.pg-day-btn--active {
    animation: pg-today-pulse 2.5s ease-in-out infinite !important;
}

/* Para a animaÃ§Ã£o ao hover para nÃ£o conflitar */
.pg-day-btn--active:hover {
    animation: none !important;
}


/* ============================================================================
 * WAVE BRUTALISM â€” SEÃ‡ÃƒO 43: CORREÃ‡ÃƒO FUNDO LARANJA TAB HOJE (DARK MODE)
 *
 * No dark mode, o background do tab ativo perdia a cor laranja.
 * O dark theme do CMS sobrescreve o var(--primary-color) no background
 * de botÃµes. ForÃ§amos o fundo laranja explicitamente para garantir
 * que o dia HOJE sempre apareÃ§a laranja em qualquer tema.
 * ============================================================================ */

/* â”€â”€ Tab HOJE: mantÃ©m fundo laranja mesmo no dark â”€â”€ */

body.theme-dark .pg-day-btn--active {
    background   : var(--primary-color, #e87722) !important;
    background-color: var(--primary-color, #e87722) !important;
    border-color : var(--primary-color, #e87722) !important;
    color        : #111111 !important;
}

/* Textos dentro do tab ativo â€” preto para contrastar sobre laranja */
body.theme-dark .pg-day-btn--active .pg-day-btn__short {
    color: #111111 !important;
    font-weight: 800 !important;
}
body.theme-dark .pg-day-btn--active .pg-day-btn__full {
    color: rgba(0, 0, 0, 0.75) !important;
    font-weight: 600 !important;
}

/* Badge "HOJE" no canto â€” mantÃ©m contraste: fundo branco / texto laranja */
body.theme-dark .pg-day-btn--active .pg-day-btn__today {
    background: #111111 !important;
    color     : #ffffff !important;
    font-weight: 800 !important;
}

/* â”€â”€ Hover: levanta e adiciona sombra offset brutalista â”€â”€ */
body.theme-dark .pg-day-btn--active:hover {
    background   : var(--primary-color, #e87722) !important;
    transform    : translate(-2px, -2px) !important;
    box-shadow   : 4px 4px 0 #aaaaaa !important;
    filter       : brightness(1.1) !important;
    animation    : none !important;
}
body.theme-dark .pg-day-btn--active:hover .pg-day-btn__today {
    background  : #ffffff !important;
    color       : var(--primary-color, #e87722) !important;
    transform   : scale(1.1) !important;
    box-shadow  : 1px 1px 0 #555555 !important;
}

/* ============================================================================
 * WAVE BRUTALISM â€” SEÃ‡ÃƒO 44: TOP TRACKS
 * ============================================================================ */
/* === TOP TRACKS === */

/* 0. Wrapper Card */
.wave-chart-section .wave-chart-track {
    display: flex !important;
    align-items: center !important;
    flex-direction: row !important;
    padding: 12px 14px !important;
    border-radius: 0 !important;
    border: 2px solid var(--text-primary, #ffffff) !important;
    margin-bottom: 12px !important;
    background: transparent !important;
    backdrop-filter: none !important;
    box-shadow: 4px 4px 0 var(--color-primary, #FF6B00) !important;
}

/* 1. Container do card */
.wave-chart-section .wave-chart-track__row {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    width: 100% !important;
    padding: 0 !important;
    min-height: 0 !important;
    overflow: hidden !important;
}

/* 2. Coluna do nÃºmero (rank) */
.wave-chart-section .wave-chart-track__rank {
    width: 36px !important;
    min-width: 36px !important;
    flex-shrink: 0 !important;
    text-align: center !important;
    border-radius: 0 !important;
    font-size: 1.25rem !important;
}

/* 3. Thumbnail (imagem do Ã¡lbum) */
.wave-chart-section .wave-chart-track__cover {
    width: 60px !important;
    height: 60px !important;
    min-width: 60px !important;
    flex-shrink: 0 !important;
    border-radius: 0 !important;
    overflow: hidden !important;
    margin: 0 !important;
    border: 2px solid var(--text-primary, #ffffff) !important;
}
.wave-chart-section .wave-chart-track__cover-img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    border-radius: 0 !important;
}

/* 4. Coluna de texto */
.wave-chart-section .wave-chart-track__info {
    flex: 1 1 0% !important;
    min-width: 0 !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
}

/* 5. TÃ­tulo e artista dentro da coluna de texto */
.wave-chart-section .wave-chart-track__title,
.wave-chart-section .wave-chart-track__artist {
    display: block !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    max-width: 100% !important;
    width: 100% !important;
}
.wave-chart-section .wave-chart-track__title {
    font-size: 0.875rem !important;
    font-weight: 700 !important;
    color: var(--text-primary, #ffffff) !important;
    margin-bottom: 2px !important;
}
.wave-chart-section .wave-chart-track__artist {
    font-size: 0.75rem !important;
    color: var(--color-secondary, #cccccc) !important;
    margin-bottom: 0 !important;
}

/* 6. Coluna de votos */
.wave-chart-section .wave-chart-track__votes {
    flex-shrink: 0 !important;
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    margin-left: auto !important;
}

/* Category text color fix */
.wave-promo-badge span { color: #000000 !important; }

/* ── Tabs de categorias — Notícias Home (WAVE) ── */
.wave-news-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 24px;
}

.wave-news-tab {
    padding: 6px 16px;
    border: 3px solid #000;
    background: transparent;
    color: var(--text-primary);
    font-family: inherit;
    font-size: 0.82rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    cursor: pointer;
    border-radius: 0;
    box-shadow: 3px 3px 0 var(--color-primary);
    transition: background 0.1s, color 0.1s, box-shadow 0.1s;
    line-height: 1.3;
}

.wave-news-tab:hover {
    background: var(--color-secondary);
    color: #fff;
    box-shadow: 3px 3px 0 #000;
}

.wave-news-tab.active {
    background: var(--color-primary);
    color: #fff;
    box-shadow: 3px 3px 0 #000;
}

.wave-news-grid--loading {
    opacity: 0.4;
    pointer-events: none;
    transition: opacity 0.15s;
}

.wave-news-empty {
    padding: 24px 0;
    color: var(--text-secondary);
    font-style: italic;
    grid-column: 1 / -1;
}

/* ── Botão "Ver outras notícias" (WAVE) ── */
.wave-news-more {
    text-align: center;
    margin-top: 40px;
    width: 100%;
}

.wave-news-more__btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 24px;
    border: 3px solid #000;
    background: transparent;
    color: var(--color-primary);
    font-family: inherit;
    font-size: 0.88rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    text-decoration: none;
    border-radius: 0;
    box-shadow: 4px 4px 0 var(--color-primary);
    transition: background 0.1s, color 0.1s, box-shadow 0.1s;
}

.wave-news-more__btn:hover {
    background: var(--color-primary);
    color: #fff;
    box-shadow: 4px 4px 0 #000;
}

@media (max-width: 768px) {
    .wave-news-tabs { gap: 6px; margin-bottom: 16px; }
    .wave-news-tab { font-size: 0.75rem; padding: 5px 12px; }
}


