.cpx-news-hub{max-width:1144px;padding-top:28px}
.cpx-tool.cpx-news-hub-archive{max-width:none;margin:0 0 24px;padding:0}
@media(max-width:700px){.cpx-tool.cpx-news-hub-archive{padding:0 16px}}
.cpx-news-hub [hidden]{display:none!important}
.cpx-news-hub-head{padding:0 0 20px;border-bottom:1px solid var(--cpx-line)}
.cpx-news-hub-head .cpx-tool-eyebrow{color:#176e9a;font-size:11px;letter-spacing:.12em}
.cpx-news-hub-head h1{margin:6px 0 15px;color:var(--cpx-primary);font-family:var(--cpx-font-interface);font-size:clamp(32px,4vw,46px);font-weight:800;line-height:1.08;letter-spacing:-.04em}
.cpx-news-hub-head-rule{display:flex;align-items:center}
.cpx-news-hub-countdown{display:flex;align-items:center;flex-wrap:wrap;gap:12px 24px;min-height:58px;padding:11px 18px;border-radius:8px;background:var(--cpx-primary);color:#fff}
.cpx-news-hub-countdown-caption{display:flex;align-items:center;gap:9px;font-size:12px;font-weight:750;white-space:nowrap}
.cpx-news-hub-countdown-caption::before{width:16px;border-top:2px solid var(--cpx-accent);content:""}
.cpx-news-hub-countdown-units{display:flex;align-items:center;gap:17px}
.cpx-news-hub-countdown-units>span{display:flex;align-items:baseline;gap:4px;min-width:0}
.cpx-news-hub-countdown-units strong{font-family:var(--cpx-font-interface);font-size:22px;font-weight:850;font-variant-numeric:tabular-nums;letter-spacing:-.04em;line-height:1}
.cpx-news-hub-countdown-units small{color:#d6e5fa;font-size:10px;font-weight:700;text-transform:uppercase}
.cpx-news-hub-countdown-finished{font-size:13px;font-weight:750}
.cpx-news-hub-tools{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:20px 0 28px}
.cpx-news-hub-tool{display:flex;align-items:center;gap:13px;min-width:0;min-height:92px;padding:17px;border:1px solid var(--cpx-line);border-radius:10px;background:#fff;color:var(--cpx-primary);text-decoration:none;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}
.cpx-news-hub-tool:hover,.cpx-news-hub-tool:focus-visible{border-color:#9bc9dc;box-shadow:var(--cpx-shadow-soft);transform:translateY(-2px)}
.cpx-news-hub-tool-icon{display:grid;flex:none;width:45px;height:45px;place-items:center;border-radius:9px;background:var(--cpx-accent-soft);color:#087ca9}
.cpx-news-hub-tool-icon svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.cpx-news-hub-tool-copy{display:grid;gap:4px;min-width:0}
.cpx-news-hub-tool-copy strong{font-size:16px;font-weight:780;line-height:1.15}
.cpx-news-hub-tool-copy small{color:var(--cpx-muted);font-size:12px;line-height:1.3}
.cpx-news-hub-tool-arrow{align-self:flex-start;margin-left:auto;color:#087ca9;font-size:18px;line-height:1}
.cpx-news-hub-layout{margin-top:0}
.cpx-news-hub-feed{max-width:900px;margin:0 auto}
.cpx-news-hub-feed-head{padding:0 0 13px;border-bottom:2px solid var(--cpx-primary)}
.cpx-news-hub-feed-head h2{margin:0;font-family:Georgia,"Times New Roman",serif;font-size:25px;line-height:1.2}
.cpx-news-hub-empty a{color:var(--cpx-primary);font-size:13px;font-weight:750;text-underline-offset:3px}
.cpx-news-hub-story{display:grid;grid-template-columns:minmax(185px,40%) minmax(0,1fr);gap:22px;padding:18px 0;border-bottom:1px solid var(--cpx-line)}
.cpx-news-hub-story-image{display:block;overflow:hidden;align-self:start;aspect-ratio:16/9;border-radius:5px;background:#e8edf5;text-decoration:none}
.cpx-news-hub-story-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .22s ease}
.cpx-news-hub-story-image:hover img{transform:scale(1.025)}
.cpx-news-hub-story-image.is-empty{display:grid;place-items:center;color:var(--cpx-primary);font-family:Georgia,"Times New Roman",serif;font-size:34px;font-weight:700}
.cpx-news-hub-story-copy{display:flex;flex-direction:column;align-items:start;min-width:0}
.cpx-news-hub-story-copy time{margin-bottom:7px;color:var(--cpx-muted);font-size:12px}
.cpx-news-hub-story-copy h3{margin:0;color:var(--cpx-primary-strong);font-family:"Cortex Interface",Arial,sans-serif;font-size:clamp(18px,1.8vw,23px);font-weight:770;line-height:1.22;letter-spacing:-.015em}
.cpx-news-hub-story-copy h3 a{color:inherit;text-decoration:none}
.cpx-news-hub-story-copy h3 a:hover{color:var(--cpx-primary);text-decoration:underline;text-decoration-color:var(--cpx-accent);text-underline-offset:3px}
.cpx-news-hub-story-copy p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;margin:10px 0 0;color:var(--cpx-muted);font-size:13px;line-height:1.45}
.cpx-news-hub-more{display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;margin-top:22px;border:1px solid var(--cpx-line);border-radius:7px;color:var(--cpx-primary);font-size:13px;font-weight:750;text-decoration:none}
.cpx-news-hub-more:hover{border-color:var(--cpx-accent);background:var(--cpx-accent-soft)}
.cpx-news-hub-loading,.cpx-news-hub-end{margin:20px 0 0;color:var(--cpx-muted);font-size:13px;text-align:center}
.cpx-news-hub-loading::before{display:inline-block;width:13px;height:13px;margin-right:7px;border:2px solid var(--cpx-line);border-top-color:var(--cpx-accent);border-radius:50%;vertical-align:-3px;animation:cpx-spin .8s linear infinite;content:""}
.cpx-news-hub-loading.is-error::before{display:none}
.cpx-news-hub-empty{padding:26px 0;color:var(--cpx-muted)}
@media(max-width:900px){.cpx-news-hub-feed{max-width:740px}.cpx-news-hub-story{grid-template-columns:minmax(140px,40%) minmax(0,1fr);gap:15px}.cpx-news-hub-story-copy p{display:none}.cpx-news-hub-tool{gap:9px;padding:12px}.cpx-news-hub-tool-icon{width:40px;height:40px}.cpx-news-hub-tool-copy strong{font-size:14px}}
@media(max-width:700px){
  .cpx-news-hub{padding:20px 16px 0}
  .cpx-news-hub-head{padding:0 0 17px}
  .cpx-news-hub-head h1{margin:5px 0 14px;font-size:34px}
  .cpx-news-hub-countdown{width:100%;gap:10px;padding:12px 14px}
  .cpx-news-hub-countdown-caption{width:100%;font-size:11px}
  .cpx-news-hub-countdown-units{width:100%;justify-content:space-between;gap:8px}
  .cpx-news-hub-countdown-units strong{font-size:21px}
  .cpx-news-hub-tools{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:17px 0 24px}
  .cpx-news-hub-tool{align-items:flex-start;flex-direction:column;gap:9px;min-height:126px;padding:13px}
  .cpx-news-hub-tool:last-child:nth-child(odd){grid-column:1/-1;align-items:center;flex-direction:row;min-height:76px}
  .cpx-news-hub-tool-icon{width:38px;height:38px}
  .cpx-news-hub-tool-icon svg{width:21px;height:21px}
  .cpx-news-hub-tool-copy strong{font-size:14px}
  .cpx-news-hub-tool-copy small{font-size:11px}
  .cpx-news-hub-tool-arrow{display:none}
  .cpx-news-hub-feed-head h2{font-size:23px}
  .cpx-news-hub-story{grid-template-columns:104px minmax(0,1fr);gap:12px;padding:14px 0}
  .cpx-news-hub-story-image{aspect-ratio:1}
  .cpx-news-hub-story-copy time{order:2;margin:6px 0 0;font-size:11px}
  .cpx-news-hub-story-copy h3{font-size:16px;line-height:1.3}
  .cpx-news-hub-story-copy p{display:none}
}
@media(max-width:370px){.cpx-news-hub-story{grid-template-columns:90px minmax(0,1fr)}.cpx-news-hub-story-copy h3{font-size:15px}.cpx-news-hub-countdown-units strong{font-size:19px}}
@media(prefers-reduced-motion:reduce){.cpx-news-hub-story-image img,.cpx-news-hub-tool,.cpx-news-hub-loading::before{transition:none;animation:none}}

/* ---- Topo igual ao do g1 (06/10/2026): barra, régua, chamada e mapa (medidos em g1.globo.com/politica/eleicoes/2026/) ---- */
.cpx-news-hub .cpx-hub-g1-faixa { margin: 0 0 8px; background: #fff; }
.cpx-news-hub .cpx-hub-g1-regua { margin: 0 0 24px; }
.cpx-news-hub .cpx-hub-g1-destaque { display: block; margin: 0 0 32px; color: #0d1d96; text-decoration: none; }
.cpx-news-hub .cpx-hub-g1-destaque__chapeu { display: block; margin: 12px 0 24px; font-family: "Open Sans", Arial, sans-serif; font-size: 20px; font-weight: 400; line-height: 22px; letter-spacing: -0.6px; color: #333; }
.cpx-news-hub .cpx-hub-g1-destaque__titulo { display: block; font-family: "Open Sans", Arial, sans-serif; font-size: 48px; font-weight: 700; line-height: 57.6px; letter-spacing: -2.4px; color: #0d1d96; }
.cpx-news-hub .cpx-hub-g1-destaque:hover .cpx-hub-g1-destaque__titulo { text-decoration: underline; text-decoration-thickness: 2px; }
.cpx-news-hub .cpx-hub-g1-mapa { margin: 0 0 32px; }
/* O tema pinta botões de azul-marinho nesta página: o "X" da gaveta volta a ser o do g1 (vermelho, sem fundo). */
.apr-menu .apr-menu__fechar { background: transparent; color: #0d1d96; border-radius: 0; box-shadow: none; }
.cpx-news-hub .cpx-hub-g1-faixa .apr-faixa__menu { background: transparent; color: #0d1d96; border: 0; border-radius: 0; box-shadow: none; }
@media (max-width: 767px) {
    /* g1, página de Eleições no celular: só "Eleições ⋮⋮⋮" à direita (na apuração é o contrário). */
    .cpx-news-hub .cpx-hub-g1-faixa .apr-faixa { justify-content: flex-end; }
    .cpx-news-hub .cpx-hub-g1-faixa .apr-faixa__titulo { display: none; }
    .cpx-news-hub .cpx-hub-g1-faixa .apr-faixa__menu { display: flex; }
    .cpx-news-hub .cpx-hub-g1-destaque { margin: 0 0 24px; padding: 0 8px; }
    .cpx-news-hub .cpx-hub-g1-destaque__chapeu { margin: 8px 0 6px; font-size: 16px; line-height: 22px; letter-spacing: -0.32px; }
    .cpx-news-hub .cpx-hub-g1-destaque__titulo { font-size: 32px; line-height: 35.2px; letter-spacing: -1.28px; }
}

/* ---- Corpo igual ao feed do g1 (06/10/2026): lista de matérias + coluna "Guia do Eleitor" ----
   Valores medidos por getComputedStyle em g1.globo.com/politica/eleicoes/2026/ (1366x900 e 390x844).
   Única troca deliberada: o vermelho do g1 (c4170c) vira o azul de ação do Conexão (#0d1d96).
   Serve ao hub /eleicoes/2026/ e à editoria /eleicoes-2026/ (mesmo template engagement-hub-feed.php). */
.cpx-hub-g1-feed {
    --cpx-g1-acao: #0d1d96;
    --cpx-g1-sangria: 0px;
    --cpx-g1-largura: min(1226px, calc(100vw - 48px));
    display: grid;
    grid-template-columns: minmax(0, 1fr) 393px;
    column-gap: 24px;
    align-items: start;
    width: var(--cpx-g1-largura);
    margin: 0 0 0 calc((100% - var(--cpx-g1-largura)) / 2);
    font-family: "Open Sans Apuracao", "Open Sans", Arial, sans-serif;
    color: #333;
}
.cpx-hub-g1-feed .cpx-hub-g1-feed__lista { max-width: none; margin: 0; min-width: 0; }
.cpx-hub-g1-feed .cpx-news-hub-list { margin: 0; padding: 0; }

/* Item do feed (g1: .feed-post) — 809 px; foto 45% (364x205, raio 12) à esquerda, texto à direita, fio #c8c8c8 32 px abaixo. */
.cpx-hub-g1-feed .cpx-hub-g1-post {
    display: grid;
    grid-template-columns: 45% minmax(0, 1fr);
    gap: 0 16px; /* o .cpx-news-hub-story antigo punha 22 px (12 px no celular) entre as linhas */
    margin: 32px 0 0;
    padding: 0;
    border: 0;
    font-size: 14px;
    line-height: 14px;
    letter-spacing: -0.21px;
    color: #333;
}
.cpx-hub-g1-feed .cpx-news-hub-list > .cpx-hub-g1-post:first-child { margin-top: 0; }
.cpx-hub-g1-feed .cpx-hub-g1-post::after {
    content: "";
    grid-column: 1 / -1;
    display: block;
    height: 1px;
    margin: 32px 0 0;
    background: #c8c8c8;
}
.cpx-hub-g1-feed .cpx-hub-g1-post__midia {
    grid-column: 1;
    grid-row: 1;
    position: relative;
    display: block;
    align-self: start;
    overflow: hidden;
    aspect-ratio: 16 / 9;
    border-radius: 12px;
    background: #ccc;
    box-shadow: inset 0 0 10px 0 rgba(0, 0, 0, 0.1);
}
.cpx-hub-g1-feed .cpx-hub-g1-post__midia img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 12px; transition: none; }
.cpx-hub-g1-feed .cpx-hub-g1-post__midia:hover img { transform: none; }
.cpx-hub-g1-feed .cpx-hub-g1-post__texto { grid-column: 2; grid-row: 1; display: flex; flex-direction: column; min-width: 0; }
.cpx-hub-g1-feed .cpx-hub-g1-post__titulo {
    margin: 12px 0 0; /* g1: cabeçalho vazio de 8 px + 4 px de margem do título */
    font-family: inherit;
    font-size: 24px;
    font-weight: 700;
    line-height: 26.4px;
    letter-spacing: -0.84px;
    color: #333;
}
.cpx-hub-g1-feed .cpx-hub-g1-post__titulo a { display: block; color: var(--cpx-g1-acao); text-decoration: none; }
.cpx-hub-g1-feed .cpx-hub-g1-post__titulo a:hover { color: var(--cpx-g1-acao); text-decoration: underline; }
.cpx-hub-g1-feed .cpx-hub-g1-post__resumo {
    display: block;
    overflow: visible;
    margin: 10px 0 7px;
    font-size: 16px;
    font-weight: 400;
    line-height: 24px;
    letter-spacing: -0.32px;
    color: #555;
    -webkit-line-clamp: unset;
}
.cpx-hub-g1-feed .cpx-hub-g1-post__meta {
    margin: 6px 0 0;
    font-size: 12px;
    font-weight: 400;
    line-height: 18px;
    letter-spacing: -0.12px;
    color: #555;
}
.cpx-hub-g1-feed .cpx-hub-g1-post__meta time { margin: 0; font-size: inherit; color: inherit; }

/* "Mostrar mais" (g1: .load-more) — botão cheio na cor de ação, 51 px, raio 12, caixa-alta. */
.cpx-hub-g1-feed .cpx-news-hub-pagination { margin: 32px 0 0; }
.cpx-hub-g1-feed .cpx-news-hub-more {
    display: block;
    width: 100%;
    min-height: 0;
    margin: 0;
    padding: 15px 0;
    border: 0;
    border-radius: 12px;
    background: var(--cpx-g1-acao);
    box-shadow: inset 0 -2px 0 0 rgba(0, 0, 0, 0.2);
    font-family: inherit;
    font-size: 14px;
    font-weight: 700;
    line-height: 21px;
    letter-spacing: -0.21px;
    text-align: center;
    text-transform: uppercase;
    text-decoration: none;
    color: #fff;
}
.cpx-hub-g1-feed .cpx-news-hub-more:hover { border: 0; background: var(--cpx-g1-acao); color: #fff; filter: brightness(1.12); }
.cpx-hub-g1-feed .cpx-news-hub-loading { margin: 0; font-size: 12px; line-height: 18px; color: #555; }
.cpx-hub-g1-feed .cpx-news-hub-end { display: none; } /* o g1 não avisa o fim da lista */
.cpx-hub-g1-feed .cpx-news-hub-empty { padding: 24px 0; font-size: 16px; line-height: 24px; color: #555; }

/* Coluna (g1: .bastian-feed-item, 393 px) e cartão "Guia do Eleitor". */
.cpx-hub-g1-feed .cpx-hub-g1-feed__coluna { min-width: 0; }
.cpx-hub-g1-cartao {
    overflow: hidden;
    border: 1px solid #e6e6e6;
    border-radius: 12px;
    background: #fff;
    font-family: "Open Sans Apuracao", "Open Sans", Arial, sans-serif;
    font-size: 16px;
    line-height: 16px;
    color: #333;
}
.cpx-hub-g1-cartao + .cpx-hub-g1-cartao { margin-top: 16px; }
.cpx-hub-g1-cartao__topo { padding: 16px 24px; border-bottom: 1px solid #eee; }
.cpx-hub-g1-cartao__topo h2 { margin: 0; font-family: inherit; font-size: 16px; font-weight: 700; line-height: 20px; letter-spacing: -0.4px; color: #333; }
.cpx-hub-g1-cartao ul { margin: 0; padding: 0 24px; list-style: none; }
.cpx-hub-g1-cartao li { display: flex; justify-content: space-between; margin: 0; padding: 24px 0; }
.cpx-hub-g1-cartao li[hidden] { display: none; }
.cpx-hub-g1-cartao li + li { border-top: 1px solid #eee; }
.cpx-hub-g1-cartao li a { font-size: 16px; font-weight: 700; line-height: 20px; letter-spacing: -1px; color: var(--cpx-g1-acao, #0d1d96); text-decoration: none; }
.cpx-hub-g1-cartao li a:hover { text-decoration: underline; }
.cpx-hub-g1-cartao__foto { flex: none; display: block; }
.cpx-hub-g1-cartao__foto img { display: block; width: 94px; height: 94px; margin: 0 0 0 16px; border-radius: 12px; object-fit: cover; }
.cpx-hub-g1-cartao__mais { padding: 16px 24px; border-top: 1px solid #eee; }
.cpx-hub-g1-cartao__mais a,
.cpx-hub-g1-cartao__mais button {
    display: inline;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: none;
    box-shadow: none;
    font-family: inherit;
    font-size: 14px;
    font-weight: 700;
    line-height: 15.96px;
    letter-spacing: -0.7px;
    color: var(--cpx-g1-acao, #0d1d96);
    text-decoration: none;
    cursor: pointer;
    min-width: 0;
    min-height: 0; /* o .cpx-tool dá 44 px de altura mínima a botões */
}
.cpx-hub-g1-cartao__seta { margin: 0 0 0 6px; }
.cpx-hub-g1-cartao__seta svg { display: inline; width: 14px; height: 14px; vertical-align: -2px; fill: currentColor; }
.cpx-hub-g1-cartao__mais[hidden] { display: none; }
/* A cópia do cartão dentro da lista só existe no celular (g1 intercala o "Guia do Eleitor" no feed). */
.cpx-hub-g1-feed .cpx-hub-g1-cartao--lista { display: none; }

/* Hub: o <main> tem 32 px de respiro (16 px no celular); a lista do celular encosta nas bordas da tela como no g1. */
.cpx-news-hub .cpx-hub-g1-feed { --cpx-g1-sangria: 32px; }

@media (max-width: 1023px) {
    .cpx-hub-g1-feed { grid-template-columns: minmax(0, 1fr); }
    .cpx-hub-g1-feed .cpx-hub-g1-feed__coluna { display: none; }
    .cpx-hub-g1-feed .cpx-hub-g1-cartao--lista { display: block; margin: 32px 0 0; }
}

/* Celular (g1 abaixo de 768 px): cartões brancos de ponta a ponta sobre fundo #eee, foto 16:9 abaixo do resumo. */
@media (max-width: 767px) {
    .cpx-hub-g1-feed {
        --cpx-g1-largura: calc(100% + 2 * var(--cpx-g1-sangria));
        /* g1: 12 px entre o "Confira também" e o 1º cartão; o mapa do topo já deixa 32 px, então a faixa cinza sobe 32. */
        margin: -32px calc(-1 * var(--cpx-g1-sangria)) 0;
        padding: 12px 0 0;
        background: #eee;
    }
    .cpx-hub-g1-feed .cpx-hub-g1-post {
        display: flex;
        flex-direction: column;
        gap: 0;
        margin: 16px 0 0;
        padding: 24px 24px 0;
        background: #fff;
    }
    .cpx-hub-g1-feed .cpx-hub-g1-post::after { display: none; }
    /* g1 no celular: título, resumo, foto e metadado, nesta ordem. */
    .cpx-hub-g1-feed .cpx-hub-g1-post__texto { display: contents; }
    .cpx-hub-g1-feed .cpx-hub-g1-post__titulo { order: 1; }
    .cpx-hub-g1-feed .cpx-hub-g1-post__resumo { order: 2; }
    .cpx-hub-g1-feed .cpx-hub-g1-post__midia { order: 3; }
    .cpx-hub-g1-feed .cpx-hub-g1-post__meta { order: 4; }
    .cpx-hub-g1-feed .cpx-hub-g1-post__titulo { margin: 8px 0 0; font-size: 20px; line-height: 22px; letter-spacing: -0.6px; }
    .cpx-hub-g1-feed .cpx-hub-g1-post__resumo { margin: 8px 0 0; }
    .cpx-hub-g1-feed .cpx-hub-g1-post__midia { align-self: stretch; margin: 24px -24px 0; border-radius: 0; box-shadow: none; }
    .cpx-hub-g1-feed .cpx-hub-g1-post__midia img { border-radius: 0; }
    .cpx-hub-g1-feed .cpx-hub-g1-post__meta { margin: 0; padding: 16px 0; }
    .cpx-hub-g1-feed .cpx-hub-g1-cartao--lista { margin: 16px 0 0; border: 0; border-radius: 0; }
    .cpx-hub-g1-feed .cpx-news-hub-pagination { margin: 0; padding: 16px 24px 32px; }
}
@media (max-width: 700px) {
    .cpx-news-hub .cpx-hub-g1-feed { --cpx-g1-sangria: 16px; }
}

/* ---- Larguras do topo iguais às do g1 no computador (06/10/2026, medidas a 1366 px) ----
   g1: barra "Apuração · Eleições" e régua com 1360 px (x=3); chamada com 1228 px (x=69); mapa e "Confira também"
   com 1225 px (x=70,5); feed com 1226 px (x=71). O contêiner do hub/editoria tem 1080 px, então cada bloco sai
   dele centralizado. --cpx-barra-rolagem (gravada pelo engagement-hub-intro.php) desconta a barra de rolagem
   do Windows, que o 100vw inclui; sem ela os blocos largos seriam cortados nas bordas. */
@media (min-width: 768px) {
    .cpx-news-hub .cpx-hub-g1-faixa,
    .cpx-news-hub .cpx-hub-g1-regua,
    .cpx-news-hub .cpx-hub-g1-destaque,
    .cpx-news-hub .cpx-hub-g1-mapa {
        --cpx-g1-tela: calc(100vw - var(--cpx-barra-rolagem, 0px));
        width: var(--cpx-g1-bloco);
        max-width: none;
        margin-left: calc((100% - var(--cpx-g1-bloco)) / 2);
        margin-right: 0;
        box-sizing: border-box;
    }
    .cpx-news-hub .cpx-hub-g1-faixa,
    .cpx-news-hub .cpx-hub-g1-regua { --cpx-g1-bloco: min(1360px, calc(var(--cpx-g1-tela) - 6px)); }
    .cpx-news-hub .cpx-hub-g1-destaque { --cpx-g1-bloco: min(1228px, calc(var(--cpx-g1-tela) - 32px)); }
    .cpx-news-hub .cpx-hub-g1-mapa { --cpx-g1-bloco: min(1225px, calc(var(--cpx-g1-tela) - 32px)); }
    .cpx-hub-g1-feed { --cpx-g1-largura: min(1226px, calc(100vw - var(--cpx-barra-rolagem, 0px) - 32px)); }
    /* g1 (Eleições): o "Confira também" tem a largura do mapa; na home ele fica recuado 13,5 px, aqui não. */
    .cpx-news-hub .cpx-hub-g1-mapa .aph-mapa__secao,
    .cpx-news-hub .cpx-hub-g1-mapa .aph-mapa__recirc { margin-left: 0; margin-right: 0; }
}

/* ---- Anúncios do feed nas posições e tamanhos reservados do g1 (06/10/2026) ----
   Lista (computador): bloco de 809 px com área reservada de 454 px em #eee, 32 px abaixo do fio e 48 px antes do
   item seguinte. Lista (celular): 16 px de respiro e 250 px reservados. Coluna: logo abaixo do "Guia do Eleitor",
   16 px acima, grudado a 100 px do topo, sem área reservada (o g1 também não reserva). */
.cpx-hub-g1-anuncio { display: flex; flex-direction: column; align-items: center; justify-content: center; }
.cpx-hub-g1-anuncio .cpam-ad-wrap,
.cpx-hub-g1-anuncio .cpst-ad-slot { margin: 0 auto !important; } /* o CP Ads põe margin:24px em estilo inline */
.cpx-hub-g1-anuncio:not(:has(.cpam-ad, img, iframe)),
.cpx-hub-g1-anuncio:has(> [data-cpam-ad-wrapper][style*="display: none"]) { display: none !important; }
.cpx-hub-g1-feed .cpx-news-hub-list > .cpx-hub-g1-anuncio { min-height: 454px; margin: 32px 0 0; background: #eee; }
.cpx-hub-g1-feed .cpx-news-hub-list > .cpx-hub-g1-anuncio + .cpx-hub-g1-post { margin-top: 48px; } /* g1: 16 px do contêiner + 32 px do item */
.cpx-hub-g1-feed .cpx-hub-g1-feed__coluna { align-self: stretch; }
.cpx-hub-g1-feed .cpx-hub-g1-feed__coluna > .cpx-hub-g1-anuncio { position: sticky; top: 100px; margin: 16px 0 0; }
@media (max-width: 767px) {
    .cpx-hub-g1-feed .cpx-news-hub-list > .cpx-hub-g1-anuncio { min-height: 250px; margin: 16px 0 0; }
    .cpx-hub-g1-feed .cpx-news-hub-list > .cpx-hub-g1-anuncio + .cpx-hub-g1-post { margin-top: 16px; }
}
.cpx-hub-g1-feed__coluna > .cpx-hub-g1-anuncio + .cpx-hub-g1-cartao { margin-top: 16px; }
.cpx-hub-g1-anuncio img { max-width: 100%; height: auto; }

/* Banner antes do feed (g1: banner_slb_meio) — 1228 px como a chamada, 250 px reservados sem fundo, 40 px até a lista.
   No celular o g1 não tem anúncio aqui; o script do feed tira o espaço do documento. */
.cpx-hub-g1-anuncio[data-cpx-anuncio="antes-do-feed"] {
    --cpx-g1-bloco: min(1228px, calc(100vw - var(--cpx-barra-rolagem, 0px) - 32px));
    width: var(--cpx-g1-bloco);
    min-height: 250px;
    margin: 0 0 40px calc((100% - var(--cpx-g1-bloco)) / 2);
}
@media (max-width: 767px) { .cpx-hub-g1-anuncio[data-cpx-anuncio="antes-do-feed"] { display: none !important; } }
