/**
 * Overrides para casar o nosso CSS com o markup REAL que o Elementor
 * Loop Grid + Container + Shortcode emitem.
 *
 * Carregado depois de blog-page.css e blog-card.css.
 *
 * Estrutura Elementor:
 *   - Containers PARENT (e-parent + e-con-boxed) têm <div class="e-con-inner">
 *     envolvendo todo o conteúdo.
 *   - Containers CHILD (e-child + e-con-full) NÃO têm e-con-inner — o
 *     conteúdo é direto.
 *   - O Elementor define `--display: flex` via inline <style> usando o
 *     ID do elemento, e o .e-flex class aplica `display: var(--display)`.
 *     Para sobrescrever precisamos de !important ou de mexer na variável.
 */

/* =================================================================
 * LAYOUT 2-COL (grid principal + sidebar)
 * .layout é e-parent → conteúdo no .e-con-inner
 * ================================================================= */
.layout > .e-con-inner {
    display: grid !important;
    grid-template-columns: 1fr;
    gap: 2.5rem;
    width: 100%;
    max-width: 100%;
}
@media (min-width: 1024px) {
    .layout > .e-con-inner {
        grid-template-columns: minmax(0, 1fr) 18rem !important;
        gap: 3rem;
    }
}
/* Children diretos do layout precisam de min-width:0 pra não estourar */
.layout > .e-con-inner > * {
    min-width: 0;
    max-width: 100%;
}

/* Zerar padding default do layout outer */
.layout.e-con-boxed {
    --padding-block-start: 0;
    --padding-block-end: 0;
    --padding-inline-start: 0;
    --padding-inline-end: 0;
}

/* =================================================================
 * FEATURED 50/50
 * .featured-body é e-parent → conteúdo no .e-con-inner
 * Primeiro filho (Shortcode com .featured-media) ocupa coluna 1;
 * resto vai pra coluna 2 empilhado.
 * ================================================================= */
.featured-body > .e-con-inner {
    display: flex !important;
    flex-direction: column !important;
    width: 100%;
    padding: 0;
    gap: 0;
}
@media (min-width: 880px) {
    .featured-body > .e-con-inner {
        display: grid !important;
        grid-template-columns: 1.05fr 1fr !important;
        gap: 0 !important;
        align-items: stretch;
    }
    .featured-body > .e-con-inner > :first-child {
        grid-row: 1 / -1;
        grid-column: 1;
    }
    .featured-body > .e-con-inner > *:not(:first-child) {
        grid-column: 2;
    }
}
/* Zerar padding do featured-body outer */
.featured-body.e-con-boxed {
    --padding-block-start: 0;
    --padding-block-end: 0;
    --padding-inline-start: 0;
    --padding-inline-end: 0;
    padding: 0;
}

/* Padding interno dos filhos não-media (lado direito do featured) */
.featured-body > .e-con-inner > *:not(:first-child) {
    padding-left: 2rem;
    padding-right: 2rem;
}
.featured-body > .e-con-inner > :nth-child(2) {
    padding-top: 2rem;
}
.featured-body > .e-con-inner > :last-child {
    padding-bottom: 2rem;
}
@media (min-width: 880px) {
    .featured-body > .e-con-inner > *:not(:first-child) {
        padding-left: 2.75rem;
        padding-right: 2.75rem;
    }
    .featured-body > .e-con-inner > :nth-child(2) {
        padding-top: 2.75rem;
    }
    .featured-body > .e-con-inner > :last-child {
        padding-bottom: 2.75rem;
    }
}

/* Loop Grid Featured wrapper visual */
.featured.elementor-widget-loop-grid {
    margin-bottom: 3rem;
}
.featured .elementor-loop-container.elementor-grid {
    grid-template-columns: 1fr;
    gap: 0;
}
.featured .e-loop-item {
    background: #fff;
    border: 1px solid var(--slate-200);
    border-radius: 1.25rem;
    overflow: hidden;
    box-shadow: 0 4px 24px rgba(15, 23, 42, 0.04);
    transition: box-shadow 0.25s ease, transform 0.25s ease;
}
.featured .e-loop-item:hover {
    box-shadow: 0 18px 40px rgba(52, 132, 196, 0.12);
    transform: translateY(-2px);
}

/* Featured media — aspect-ratio fixo evita esticar verticalmente
 * quando o body do featured for alto */
.featured .featured-media {
    width: 100%;
    aspect-ratio: 16 / 10;
    margin: 0;
    overflow: hidden;
    height: auto;
}
.featured .featured-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
/* Em desktop a media é a primeira coluna do grid 50/50 do .e-con-inner;
 * deixamos ela esticar até a altura da coluna body, mantendo cover */
@media (min-width: 880px) {
    .featured-body > .e-con-inner > :first-child {
        align-self: stretch;
        display: flex;
    }
    .featured-body > .e-con-inner > :first-child .elementor-widget-container,
    .featured-body > .e-con-inner > :first-child .elementor-shortcode {
        display: flex;
        width: 100%;
        height: 100%;
    }
    .featured-body > .e-con-inner > :first-child .featured-media {
        aspect-ratio: auto;
        width: 100%;
        height: 100%;
        max-height: 26rem;
    }
}

/* Featured title (h3 dentro do widget Heading) */
.featured .featured-title .elementor-heading-title {
    font-size: clamp(1.5rem, 2.6vw, 2rem) !important;
    font-weight: 800 !important;
    letter-spacing: -0.025em;
    line-height: 1.18;
    color: var(--slate-900) !important;
    margin-bottom: 0.875rem;
    font-family: 'Inter', ui-sans-serif, system-ui, sans-serif !important;
}
.featured .featured-title .elementor-heading-title a {
    color: inherit;
    transition: color 0.15s;
}
.featured .featured-title .elementor-heading-title a:hover { color: var(--blue); }

/* Featured excerpt */
.featured .featured-excerpt,
.featured .featured-excerpt.elementor-widget-theme-post-excerpt {
    font-size: 0.9375rem !important;
    color: var(--slate-500) !important;
    line-height: 1.7 !important;
    margin-bottom: 1.5rem;
    font-family: 'Inter', ui-sans-serif, system-ui, sans-serif !important;
}

/* Featured author-row */
.featured .author-row.e-con,
.featured .author-row {
    --padding-block-start: 0;
    --padding-block-end: 0;
    --padding-inline-start: 0;
    --padding-inline-end: 0;
    --gap: 0.75rem;
    padding: 0 !important;
    gap: 0.75rem;
    align-items: center;
    display: flex !important;
    flex-direction: row !important;
}

/* =================================================================
 * POST CARD do grid
 * .post-card é e-parent → conteúdo no .e-con-inner
 * O .e-con-inner deve ser flex column ocupando toda altura
 * ================================================================= */
.post-card.e-con-boxed {
    --padding-block-start: 0;
    --padding-block-end: 0;
    --padding-inline-start: 0;
    --padding-inline-end: 0;
    padding: 0 !important;
    background: #fff;
    border: 1px solid var(--slate-200);
    border-radius: 1rem;
    overflow: hidden;
    transition: border-color 0.2s, box-shadow 0.25s, transform 0.25s;
}
.post-card.e-con-boxed:hover {
    border-color: var(--blue-200);
    box-shadow: 0 14px 30px rgba(52, 132, 196, 0.10);
    transform: translateY(-3px);
}
.post-card > .e-con-inner {
    display: flex !important;
    flex-direction: column !important;
    width: 100%;
    padding: 0;
    gap: 0;
    height: 100%;
}

/* Capa do card */
.post-card .post-card-media {
    width: 100%;
    margin: 0;
}

/* post-card-body é o que dá padding interno aos widgets de texto */
.post-card .post-card-body.e-con {
    --padding-block-start: 1.25rem !important;
    --padding-block-end: 1.375rem !important;
    --padding-inline-start: 1.25rem !important;
    --padding-inline-end: 1.25rem !important;
    padding: 1.25rem 1.25rem 1.375rem !important;
    flex: 1;
    display: flex !important;
    flex-direction: column !important;
    gap: 0;
}

/* Post Title widget (h3 dentro) */
.post-card .post-card-title .elementor-heading-title {
    font-size: 1rem !important;
    font-weight: 700 !important;
    letter-spacing: -0.015em;
    line-height: 1.35;
    color: var(--slate-900) !important;
    margin: 0.75rem 0 0.5rem !important;
    font-family: 'Inter', ui-sans-serif, system-ui, sans-serif !important;
}
.post-card .post-card-title .elementor-heading-title a {
    color: inherit;
    text-decoration: none;
    transition: color 0.15s;
}
.post-card .post-card-title .elementor-heading-title a:hover { color: var(--blue); }

/* Post Excerpt widget */
.post-card .post-card-excerpt,
.post-card .post-card-excerpt.elementor-widget-theme-post-excerpt {
    font-size: 0.8125rem !important;
    color: var(--slate-500) !important;
    line-height: 1.6 !important;
    margin-bottom: 1rem;
    flex: 1;
    font-family: 'Inter', ui-sans-serif, system-ui, sans-serif !important;
}

/* post-meta-top: container row */
.post-card .post-meta-top.e-con,
.featured .post-meta-top.e-con {
    --padding-block-start: 0;
    --padding-block-end: 0;
    --padding-inline-start: 0;
    --padding-inline-end: 0;
    --gap: 0.625rem;
    padding: 0 !important;
    gap: 0.625rem;
    margin-bottom: 1rem;
    align-items: center;
    flex-wrap: wrap;
    display: flex !important;
    flex-direction: row !important;
}

/* post-card-footer */
.post-card .post-card-footer.e-con {
    --padding-block-start: 0.875rem !important;
    --padding-block-end: 0;
    --padding-inline-start: 0;
    --padding-inline-end: 0;
    padding-top: 0.875rem !important;
    border-top: 1px solid var(--slate-100);
    --gap: 0.5rem;
    gap: 0.5rem;
    align-items: center;
    justify-content: space-between;
    display: flex !important;
    flex-direction: row !important;
}

/* post-card-author (dentro do footer) */
.post-card .post-card-author.e-con {
    --padding-block-start: 0;
    --padding-block-end: 0;
    --padding-inline-start: 0;
    --padding-inline-end: 0;
    padding: 0 !important;
    --gap: 0.5rem;
    gap: 0.5rem;
    align-items: center;
    flex: 0 0 auto;
    width: auto;
    display: flex !important;
    flex-direction: row !important;
}

/* Author Profile Picture: forçar círculo + tamanho exato */
.post-card .avatar.avatar--xs img,
.post-card .avatar.elementor-widget img {
    border-radius: 9999px !important;
    width: 1.625rem !important;
    height: 1.625rem !important;
    object-fit: cover;
}
.featured .author-row .elementor-widget-author-box img,
.featured .author-row img.attachment-thumbnail,
.featured .author-row .avatar img {
    border-radius: 9999px !important;
    width: 2.25rem !important;
    height: 2.25rem !important;
    object-fit: cover;
}

/* Author Name (widget Heading) */
.post-card .post-card-author-name .elementor-heading-title,
.post-card .post-card-author-name {
    font-size: 0.75rem !important;
    font-weight: 600 !important;
    color: var(--slate-700) !important;
    font-family: 'Inter', ui-sans-serif, system-ui, sans-serif !important;
}

/* Post Date (widget Post Info) */
.post-card .post-card-read,
.post-card .post-card-read .elementor-icon-list-text,
.post-card .post-card-read .elementor-post-info__item {
    font-size: 0.6875rem !important;
    color: var(--slate-400) !important;
    font-weight: 500 !important;
}
.post-card .post-card-read.e-con,
.post-card .post-card-read.elementor-widget {
    margin-left: auto;
    flex: 0 0 auto;
    width: auto;
}

/* Largura dos widgets dentro do card.
 * Widgets que são filhos diretos da coluna principal (post-card-body)
 * ocupam 100%. Já widgets DENTRO de containers row (.post-meta-top,
 * .post-card-author, .post-card-footer) ficam com width: auto para
 * permitir que tag de categoria + tempo de leitura fiquem lado-a-lado
 * em vez de um por linha.
 */
.post-card > .e-con-inner > .elementor-widget,
.post-card > .e-con-inner > .elementor-widget-shortcode,
.post-card .post-card-body > .elementor-widget,
.post-card .post-card-body > .elementor-widget-shortcode {
    width: 100% !important;
}
.post-card .post-meta-top > .elementor-widget,
.post-card .post-meta-top > .elementor-widget-shortcode,
.post-card .post-card-author > .elementor-widget,
.post-card .post-card-author > .elementor-widget-shortcode,
.post-card .post-card-footer > .elementor-widget {
    width: auto !important;
    flex: 0 0 auto;
}
.post-card .elementor-widget-container,
.post-card .elementor-widget-shortcode .elementor-widget-container {
    padding: 0;
}
.post-card .elementor-shortcode {
    line-height: 0;
}
.post-card .elementor-shortcode > div,
.post-card .elementor-shortcode > span {
    line-height: 1.55;
}

/* Mesma regra para o featured: post-meta-top tem 2 shortcode widgets
 * que precisam ficar lado-a-lado, não 100% width cada */
.featured .post-meta-top > .elementor-widget,
.featured .post-meta-top > .elementor-widget-shortcode,
.featured .author-row > .elementor-widget,
.featured .post-card-author > .elementor-widget,
.featured .post-card-author > .elementor-widget-shortcode {
    width: auto !important;
    flex: 0 0 auto;
}

/* Avatar via shortcode [atys_author_avatar] (recomendado).
 * O shortcode renderiza <div class="avatar avatar--<cor>">XX</div>
 * já com tamanho via inline style; só removemos qualquer wrapper que
 * adicione tamanho extra. */
.post-card .elementor-shortcode .avatar,
.featured .elementor-shortcode .avatar {
    line-height: 1;
}

/* Avatar via widget Image (fallback): garantir círculo e dimensões.
 * Usado quando o Loop Item ainda tem o widget Image em vez do shortcode. */
.post-card .avatar.elementor-widget-image img {
    border-radius: 9999px !important;
    width: 1.625rem !important;
    height: 1.625rem !important;
    object-fit: cover;
}
.featured .avatar.elementor-widget-image img,
.featured .author-row .elementor-widget-image img {
    border-radius: 9999px !important;
    width: 2.25rem !important;
    height: 2.25rem !important;
    object-fit: cover;
}

/* Featured author-name (widget Heading) */
.featured .author-name .elementor-heading-title,
.featured .author-name.elementor-widget-heading .elementor-heading-title {
    font-size: 0.8125rem !important;
    font-weight: 600 !important;
    color: var(--slate-800) !important;
    line-height: 1.2 !important;
    font-family: 'Inter', ui-sans-serif, system-ui, sans-serif !important;
    margin: 0 !important;
}

/* Featured author-date (widget Post Info) */
.featured .author-date,
.featured .author-date .elementor-post-info__item,
.featured .author-date .elementor-icon-list-text,
.featured .author-date .elementor-icon-list-item,
.featured .author-date time {
    font-size: 0.6875rem !important;
    color: var(--slate-500) !important;
    font-weight: 400 !important;
    font-family: 'Inter', ui-sans-serif, system-ui, sans-serif !important;
}

/* Featured author-row: agrupar avatar + nome + data verticalmente
 * (avatar à esquerda, nome em cima, data embaixo) */
.featured .author-row.e-con {
    display: flex !important;
    flex-direction: row !important;
    align-items: center;
    gap: 0.75rem;
}


/* =================================================================
 * POST GRID — usar o grid nativo do Elementor
 * .post-grid é e-child → conteúdo direto (sem .e-con-inner)
 * ================================================================= */
.post-grid.e-con {
    --padding-block-start: 0;
    --padding-block-end: 0;
    --padding-inline-start: 0;
    --padding-inline-end: 0;
    padding: 0;
    width: 100%;
    display: block;
}
.post-grid .elementor-loop-container.elementor-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 1.5rem !important;
}

/* Pagination — replica o estilo .pagination + .page-btn do mockup
 * (templates-html/blog.html linhas 791–832) */
.post-grid .elementor-pagination,
.elementor-widget-loop-grid .elementor-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.375rem;
    margin-top: 2.5rem;
    flex-wrap: wrap;
}
.post-grid .elementor-pagination .page-numbers,
.elementor-widget-loop-grid .elementor-pagination .page-numbers {
    min-width: 2.25rem;
    height: 2.25rem;
    padding: 0 0.5rem;
    background: #fff;
    border: 1px solid var(--slate-200);
    border-radius: 0.5rem;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--slate-600);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all 0.15s;
    text-decoration: none;
    font-family: 'Inter', ui-sans-serif, system-ui, sans-serif;
}
.post-grid .elementor-pagination .page-numbers:hover,
.elementor-widget-loop-grid .elementor-pagination .page-numbers:hover {
    border-color: var(--blue-200);
    color: var(--blue);
    background: var(--blue-50);
}
.post-grid .elementor-pagination .page-numbers.current,
.elementor-widget-loop-grid .elementor-pagination .page-numbers.current {
    background: var(--blue);
    border-color: var(--blue);
    color: #fff;
}
.post-grid .elementor-pagination .page-numbers.dots,
.elementor-widget-loop-grid .elementor-pagination .page-numbers.dots {
    background: transparent;
    border-color: transparent;
    color: var(--slate-400);
    cursor: default;
}
.post-grid .elementor-pagination .page-numbers.prev,
.post-grid .elementor-pagination .page-numbers.next,
.elementor-widget-loop-grid .elementor-pagination .page-numbers.prev,
.elementor-widget-loop-grid .elementor-pagination .page-numbers.next {
    padding: 0 0.75rem;
    gap: 0.375rem;
}
@media (min-width: 640px) {
    .post-grid .elementor-loop-container.elementor-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}
@media (min-width: 1024px) {
    .post-grid .elementor-loop-container.elementor-grid {
        grid-template-columns: repeat(3, 1fr) !important;
    }
}

/* =================================================================
 * SIDEBAR (.sidebar é e-child)
 * ================================================================= */
.sidebar.e-con {
    --padding-block-start: 0;
    --padding-block-end: 0;
    --padding-inline-start: 0;
    --padding-inline-end: 0;
    --gap: 1.5rem;
    padding: 0;
    gap: 1.5rem;
    display: flex !important;
    flex-direction: column !important;
    align-self: start;
}

/* Side card */
.side-card.e-con {
    --padding-block-start: 1.375rem;
    --padding-block-end: 1.5rem;
    --padding-inline-start: 1.375rem;
    --padding-inline-end: 1.375rem;
    padding: 1.375rem 1.375rem 1.5rem;
    background: #fff;
    border: 1px solid var(--slate-200);
    border-radius: 1rem;
    display: flex !important;
    flex-direction: column !important;
    gap: 0;
}
.side-card .side-title .elementor-heading-title,
.side-card > h3.side-title {
    font-size: 0.6875rem !important;
    font-weight: 800 !important;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--slate-400) !important;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 1.125rem;
    font-family: 'Inter', ui-sans-serif, system-ui, sans-serif !important;
}
.side-card .side-title .elementor-heading-title::after,
.side-card > h3.side-title::after {
    content: '';
    flex: 1;
    height: 1px;
    background: var(--slate-100);
}

/* =================================================================
 * HERO
 * .blog-hero é e-parent → conteúdo no .e-con-inner
 * .blog-hero-inner é e-child dentro do .e-con-inner
 * ================================================================= */
.blog-hero.e-con-boxed {
    --padding-block-start: 4rem;
    --padding-block-end: 2.5rem;
    --padding-inline-start: 1.5rem;
    --padding-inline-end: 1.5rem;
    padding: 4rem 1.5rem 2.5rem;
    text-align: center;
    position: relative;
    overflow: hidden;
}
.blog-hero > .e-con-inner {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    position: relative;
    z-index: 1;
    width: 100%;
    padding: 0;
}
.blog-hero-inner.e-con {
    --padding-block-start: 0;
    --padding-block-end: 0;
    --padding-inline-start: 0;
    --padding-inline-end: 0;
    padding: 0;
    max-width: 44rem;
    margin: 0 auto;
    width: 100%;
    text-align: center;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 0;
}

/* Blog title (h1 do widget Heading) */
.blog-hero .blog-title .elementor-heading-title {
    font-size: clamp(2rem, 4.8vw, 3rem) !important;
    font-weight: 800 !important;
    letter-spacing: -0.03em;
    line-height: 1.12;
    color: var(--slate-900) !important;
    margin-bottom: 1rem;
    text-align: center;
    font-family: 'Inter', ui-sans-serif, system-ui, sans-serif !important;
}
.blog-hero .blog-title .elementor-heading-title .accent { color: var(--blue) !important; }

/* Blog subtitle (Text Editor) */
.blog-hero .blog-subtitle,
.blog-hero .blog-subtitle p,
.blog-hero .blog-subtitle.elementor-widget-text-editor p {
    font-size: 1.0625rem !important;
    color: var(--slate-500) !important;
    line-height: 1.6 !important;
    max-width: 36rem;
    margin: 0 auto;
    text-align: center;
}

/* =================================================================
 * CATEGORIES CHIPS (.categories é e-parent)
 * ================================================================= */
.categories.e-con-boxed {
    --padding-block-start: 1.25rem;
    --padding-block-end: 0;
    --padding-inline-start: 1.5rem;
    --padding-inline-end: 1.5rem;
    padding: 1.25rem 1.5rem 0;
    max-width: 72rem;
    margin-left: auto;
    margin-right: auto;
    width: 100%;
}
.categories > .e-con-inner {
    padding: 0;
    width: 100%;
}

/* =================================================================
 * CONTAINER PRINCIPAL (.container é e-parent — class genérica!)
 * ================================================================= */
.elementor-widget-wrap .container.e-con-boxed,
.e-con > .container.e-con-boxed,
section.container.e-con-boxed {
    --padding-block-start: 2.5rem;
    --padding-block-end: 4rem;
    --padding-inline-start: 1.5rem;
    --padding-inline-end: 1.5rem;
    padding: 2.5rem 1.5rem 4rem;
}
.container.e-con-boxed {
    max-width: 72rem;
    margin-left: auto;
    margin-right: auto;
    width: 100%;
}

/* =================================================================
 * SECTION HEAD
 * ================================================================= */
.section-head.e-con {
    --padding-block-start: 0;
    --padding-block-end: 0;
    --padding-inline-start: 0;
    --padding-inline-end: 0;
    --gap: 1rem;
    padding: 0;
    gap: 1rem;
    align-items: baseline;
    justify-content: space-between;
    margin-bottom: 1.25rem;
    display: flex !important;
    flex-direction: row !important;
}
.section-head .section-title .elementor-heading-title {
    font-size: 1.125rem !important;
    font-weight: 800 !important;
    letter-spacing: -0.02em;
    color: var(--slate-900) !important;
}
.section-head .section-count,
.section-head .section-count p {
    font-size: 0.75rem !important;
    color: var(--slate-500) !important;
    font-weight: 500 !important;
}

/* =================================================================
 * NEWSLETTER (.newsletter é e-parent; .newsletter-inner é e-child)
 * ================================================================= */
/* .newsletter foi marcado como e-child no Elementor (não e-parent), então
 * não há .e-con-inner — todo o estilo precisa ir direto na .newsletter.e-con */
.newsletter.e-con,
.newsletter.e-con-boxed {
    --padding-block-start: 3rem;
    --padding-block-end: 3rem;
    --padding-inline-start: 1.75rem;
    --padding-inline-end: 1.75rem;
    --overflow: hidden;
    padding: 3rem 1.75rem !important;
    background: var(--slate-900);
    color: #fff;
    border-radius: 1.25rem;
    margin-top: 4rem;
    position: relative;
    overflow: hidden !important;
    isolation: isolate;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
}
/* Radial glow azul à direita (mockup linhas 702–710).
 * Aplicado direto na .newsletter porque é e-child sem .e-con-inner. */
.newsletter::after {
    content: '' !important;
    display: block !important;
    position: absolute !important;
    top: -120px;
    right: -120px;
    width: 320px;
    height: 320px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(52, 132, 196, 0.5), transparent 70%);
    pointer-events: none;
    z-index: 0;
}
/* Grid pattern de fundo (mockup linhas 691–701) */
.newsletter::before {
    content: '' !important;
    display: block !important;
    position: absolute !important;
    inset: 0;
    background-image:
        linear-gradient(rgba(255, 255, 255, 0.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.04) 1px, transparent 1px);
    background-size: 36px 36px;
    mask-image: radial-gradient(ellipse 60% 80% at 50% 50%, #000 30%, transparent 80%);
    -webkit-mask-image: radial-gradient(ellipse 60% 80% at 50% 50%, #000 30%, transparent 80%);
    pointer-events: none;
    z-index: 0;
}
.newsletter > .e-con-inner {
    position: relative;
    z-index: 1;
    width: 100%;
    padding: 0;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
}
.newsletter-inner.e-con {
    --padding-block-start: 0;
    --padding-block-end: 0;
    --padding-inline-start: 0;
    --padding-inline-end: 0;
    padding: 0;
    max-width: 36rem;
    margin: 0 auto;
    text-align: center;
    width: 100%;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
}
.newsletter .newsletter-title .elementor-heading-title {
    font-size: clamp(1.5rem, 3vw, 2rem) !important;
    font-weight: 800 !important;
    letter-spacing: -0.025em;
    line-height: 1.2;
    margin-bottom: 0.75rem;
    color: #fff !important;
    text-align: center;
    font-family: 'Inter', ui-sans-serif, system-ui, sans-serif !important;
}
.newsletter .newsletter-desc,
.newsletter .newsletter-desc p,
.newsletter .newsletter-desc.elementor-widget-text-editor p {
    font-size: 0.9375rem !important;
    color: rgba(255, 255, 255, 0.7) !important;
    line-height: 1.6 !important;
    margin-bottom: 1.75rem;
    text-align: center;
    max-width: 100%;
}
