/* ==========================================================================
   bibliapergunta - estilo tech editorial
   CSS puro, responsivo, linhas finas no lugar de sombras pesadas.
   As cores da marca chegam do config.php como variaveis no <head>.
   Este bloco define apenas a camada de design: escala, ritmo e superficies.
   ========================================================================== */

:root {
    /* espacamento -------------------------------------------------------- */
    --e1: 4px;
    --e2: 8px;
    --e3: 12px;
    --e4: 16px;
    --e5: 20px;
    --e6: 24px;
    --e7: 32px;
    --e8: 40px;
    --e9: 48px;

    /* ritmo de secao ----------------------------------------------------- */
    --pad-secao: 48px;
    --pad-secao-mobile: 32px;
    --gap-grade: 24px;
    --gap-coluna: 32px;

    /* raio --------------------------------------------------------------- */
    --r1: 3px;
    --r2: 4px;
    --r3: 6px;

    /* controles ---------------------------------------------------------- */
    --altura-controle: 44px;
    --altura-controle-mini: 34px;

    /* medidas ------------------------------------------------------------ */
    --largura-area: 1200px;
    --largura-texto: 720px;
    --pad-area: 24px;
    --pad-area-mobile: 18px;

    /* tipografia --------------------------------------------------------- */
    --fonte: "Inter", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;
    --t-micro: .72rem;
    --t-mini: .8rem;
    --t-peq: .88rem;
    --t-base: 1rem;
    --t-med: 1.06rem;
    --t-gr: 1.2rem;

    /* superficies derivadas - valores de seguranca ----------------------- */
    --tinta-fraca: var(--fundo-alt);
    --tinta-media: var(--fundo-alt);
    --linha-suave: var(--linha);
    --sombra-1: 0 1px 2px rgba(15, 42, 61, .05);
    --sombra-2: 0 8px 20px -12px rgba(15, 42, 61, .32);
    --foco: var(--link);
}

/* Navegadores com color-mix recebem superficies derivadas da propria marca,
   entao a paleta continua coerente se as cores do config mudarem. */
@supports (color: color-mix(in srgb, red 50%, white)) {
    :root {
        --tinta-fraca: color-mix(in srgb, var(--marca) 3%, var(--branco));
        --tinta-media: color-mix(in srgb, var(--marca) 7%, var(--branco));
        --linha-suave: color-mix(in srgb, var(--linha) 62%, var(--branco));
        --sombra-1: 0 1px 2px color-mix(in srgb, var(--marca) 8%, transparent);
        --sombra-2: 0 8px 20px -12px color-mix(in srgb, var(--marca) 38%, transparent);
    }
}
/* ------- reset */

*,
*::before,
*::after { box-sizing: border-box; }

html {
    -webkit-text-size-adjust: 100%;
    scroll-behavior: smooth;
}

body {
    margin: 0;
    background: var(--fundo);
    color: var(--texto);
    font-family: var(--fonte);
    font-size: 17px;
    line-height: 1.6;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }

a { color: var(--link); text-decoration: none; transition: color .18s ease; }
a:hover,
a:focus { color: var(--link-hover); text-decoration: underline; }

/* ------- tipografia raiz */

h1, h2, h3, h4 {
    margin: 0 0 .5em;
    color: var(--marca);
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: -.02em;
    text-wrap: balance;
}
h1 { font-size: 2.6rem; }
h2 { font-size: 1.9rem; }
h3 { font-size: 1.4rem; }
h4 { font-size: 1.15rem; }

p { margin: 0 0 1.1em; }
ul, ol { margin: 0 0 1.1em; padding-left: 1.25em; }

button, input, select, textarea { font: inherit; color: inherit; }

::selection { background: var(--marca); color: var(--branco); }

:focus-visible {
    outline: 2px solid var(--foco);
    outline-offset: 2px;
}

hr {
    border: 0;
    border-top: 1px solid var(--linha);
    margin: var(--e6) 0;
}

/* ------- utilitarios */

.oculto {
    position: absolute;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}

.pular {
    position: absolute;
    left: -9999px;
    top: 0;
    z-index: 200;
    padding: var(--e3) var(--e4);
    border-radius: var(--r2);
    background: var(--marca);
    color: var(--branco);
}
.pular:focus { left: var(--e2); top: var(--e2); }

/* ------- layout base */

.area {
    width: 100%;
    max-width: var(--largura-area);
    margin-inline: auto;
    padding: 0 var(--pad-area);
}

.area-texto { max-width: var(--largura-texto); }

.secao { padding: var(--pad-secao) 0; border-top: 1px solid var(--linha); }
.secao-alt { background: var(--tinta-fraca); }

.secao-cabecalho {
    position: relative;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: var(--gap-grade);
    margin-bottom: var(--e6);
    padding-bottom: var(--e4);
    border-bottom: 1px solid var(--linha);
}
.secao-cabecalho::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -1px;
    width: 56px;
    height: 3px;
    background: var(--marca);
}

.secao-titulo {
    margin: 0;
    font-size: 1.5rem;
    line-height: 1.25;
}

.rotulo {
    margin: 0 0 var(--e1);
    font-size: var(--t-micro);
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--link);
}

/* ------- botoes */

.botao {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: var(--altura-controle);
    padding: 0 var(--e5);
    border: 1px solid var(--marca);
    border-radius: var(--r2);
    background: transparent;
    color: var(--marca);
    font-size: var(--t-peq);
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    transition: background .18s ease, color .18s ease, border-color .18s ease;
}
.botao:hover,
.botao:focus {
    background: var(--marca);
    color: var(--branco);
    border-color: var(--marca);
    text-decoration: none;
}

.botao-solido {
    background: var(--marca);
    color: var(--branco);
}
.botao-solido:hover,
.botao-solido:focus {
    background: var(--link);
    border-color: var(--link);
    color: var(--branco);
}

.botao-mini {
    min-height: var(--altura-controle-mini);
    padding: 0 var(--e3);
    font-size: var(--t-mini);
}

/* ------- chips e etiquetas */

.chip {
    display: inline-flex;
    align-items: center;
    gap: var(--e2);
    min-height: var(--altura-controle-mini);
    padding: 0 var(--e4);
    border: 1px solid var(--linha-forte);
    border-radius: var(--r2);
    background: var(--branco);
    color: var(--marca);
    font-size: var(--t-peq);
    font-weight: 700;
    letter-spacing: .02em;
    transition: background .18s ease, color .18s ease, border-color .18s ease;
}
.chip:hover,
.chip:focus {
    border-color: var(--link);
    color: var(--link);
    text-decoration: none;
}

.chip-ativo {
    background: var(--marca);
    border-color: var(--marca);
    color: var(--branco);
}
.chip-ativo:hover,
.chip-ativo:focus {
    background: var(--link);
    border-color: var(--link);
    color: var(--branco);
}

.chip-total {
    padding: 1px var(--e2);
    border-radius: var(--r1);
    background: var(--tinta-media);
    font-size: var(--t-micro);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}
/* fallback solido: legivel mesmo sem color-mix */
.chip-ativo .chip-total {
    background: var(--branco);
    color: var(--marca);
}
@supports (color: color-mix(in srgb, red 50%, white)) {
    .chip-ativo .chip-total {
        background: color-mix(in srgb, var(--branco) 25%, transparent);
        color: var(--branco);
        border: 1px solid color-mix(in srgb, var(--branco) 35%, transparent);
    }
}

.chip-mini {
    padding: 0 var(--e3);
    font-size: var(--t-mini);
    font-weight: 600;
}

.tag-categoria {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    height: var(--e6);
    padding: 0 var(--e2);
    border: 1px solid var(--link);
    border-radius: var(--r1);
    color: var(--link);
    font-size: var(--t-micro);
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
    transition: background .18s ease, color .18s ease;
}
.tag-categoria:hover {
    background: var(--link);
    color: var(--branco);
    text-decoration: none;
}

/* ------- responsivo */

@media (max-width: 640px) {
    body { font-size: 16px; }
    .area { padding: 0 var(--pad-area-mobile); }
    .secao { padding: var(--pad-secao-mobile) 0; }
    .secao-cabecalho {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--e3);
    }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    * { transition: none !important; }
}
/* ==========================================================================
   bibliapergunta - bloco 2: cromo do site
   cabecalho, faixa de marca, navegacao, sidebar mobile, migalhas,
   rodape e aviso de cookies.
   ========================================================================== */

/* --------------------------------------------------------------- header */

/* O cabecalho e estatico de proposito: com faixa de marca, linha da logo e
   navegacao ele passa de 140px, e fixar tudo isso no topo comeria a dobra em
   telas baixas. O filete inferior de 1px fecha o bloco tambem no mobile,
   onde a navegacao horizontal some. */
.cabecalho {
    position: static;
    background: var(--branco);
    border-bottom: 1px solid var(--linha);
}

.faixa-marca {
    background: var(--marca);
    color: var(--branco);
}
.faixa-marca-int {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--e4);
    min-height: var(--altura-controle-mini);
    font-size: var(--t-mini);
    letter-spacing: .04em;
}
.faixa-texto { text-transform: uppercase; font-weight: 600; }
.faixa-link { color: var(--branco); text-decoration: underline; font-weight: 600; }
.faixa-link:hover { color: var(--branco); }

.cabecalho-int {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--e6);
    padding-top: var(--e4);
    padding-bottom: var(--e4);
}

.logo {
    display: flex;
    align-items: center;
    gap: var(--e3);
    text-decoration: none;
}
.logo:hover { text-decoration: none; }
.logo img {
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    border-radius: var(--r2);
    display: block;
}
.logo-texto {
    display: flex;
    flex-direction: column;
    line-height: 1.1;
}
.logo-texto strong {
    color: var(--marca);
    font-size: 1.28rem;
    font-weight: 800;
    letter-spacing: -.02em;
}
.logo-texto small {
    color: var(--texto-suave);
    font-size: var(--t-micro);
    letter-spacing: .06em;
    text-transform: uppercase;
}

/* controle unico de busca: a borda vive no wrapper, input e botao ficam
   sem borda propria para nao criar costura dupla; :focus-within troca a
   cor da borda inteira de uma vez. */
.busca-topo {
    display: flex;
    align-items: stretch;
    flex: 1 1 320px;
    max-width: 420px;
    height: var(--altura-controle);
    border: 1px solid var(--linha-forte);
    border-radius: var(--r2);
    background: var(--branco);
    overflow: hidden;
    transition: border-color .18s ease;
}
.busca-topo:focus-within { border-color: var(--link); }
.busca-topo input {
    flex: 1;
    min-width: 0;
    padding: 0 var(--e3);
    border: 0;
    background: transparent;
    color: var(--texto);
}
.busca-topo input::placeholder { color: var(--texto-suave); opacity: 1; }
.busca-topo button {
    padding: 0 var(--e4);
    border: 0;
    border-left: 1px solid var(--linha-forte);
    background: var(--marca);
    color: var(--branco);
    font-size: var(--t-peq);
    font-weight: 700;
    cursor: pointer;
    transition: background .18s ease;
}
.busca-topo button:hover { background: var(--link); }

/* Sem filete inferior proprio: o indicador do item ativo se apoia no filete
   do proprio cabecalho, entao as duas linhas nunca se duplicam. */
.nav-principal { border-top: 1px solid var(--linha); }
.nav-principal ul {
    display: flex;
    flex-wrap: wrap;
    gap: var(--e2) var(--e6);
    margin: 0;
    padding: 0;
    list-style: none;
}
.nav-principal a {
    display: inline-block;
    padding: var(--e3) 0;
    margin-bottom: -1px;
    color: var(--marca);
    font-size: var(--t-mini);
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    border-bottom: 2px solid transparent;
    transition: color .18s ease, border-color .18s ease;
}
.nav-principal a:hover,
.nav-principal a:focus { color: var(--link); border-bottom-color: var(--link); text-decoration: none; }
.nav-principal a.ativo { color: var(--link); border-bottom-color: var(--link); }

.abrir-sidebar,
.fechar-sidebar {
    display: none;
    align-items: center;
    justify-content: center;
    min-height: var(--altura-controle-mini);
    padding: 0 var(--e4);
    border: 1px solid var(--marca);
    border-radius: var(--r2);
    color: var(--marca);
    font-size: var(--t-mini);
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    cursor: pointer;
    user-select: none;
    transition: background .18s ease, color .18s ease;
}
.abrir-sidebar:hover,
.fechar-sidebar:hover { background: var(--marca); color: var(--branco); }

/* -------------------------------------------------------- sidebar mobile */

.menu-toggle { display: none; }

.sidebar-fundo {
    position: fixed;
    inset: 0;
    z-index: 90;
    background: rgba(15, 42, 61, .55);
    opacity: 0;
    visibility: hidden;
    transition: opacity .18s ease, visibility .18s ease;
}
@supports (backdrop-filter: blur(2px)) {
    .sidebar-fundo { backdrop-filter: blur(2px); }
}
/* O veu segue a cor da marca vinda do config, e nao um azul fixo. */
@supports (color: color-mix(in srgb, red 50%, white)) {
    .sidebar-fundo { background: color-mix(in srgb, var(--marca) 58%, transparent); }
}

.sidebar {
    position: fixed;
    top: 0;
    right: 0;
    z-index: 100;
    display: flex;
    flex-direction: column;
    width: min(88vw, 340px);
    height: 100%;
    padding: 0 var(--e5) var(--e7);
    overflow-y: auto;
    background: var(--branco);
    border-left: 1px solid var(--linha);
    transform: translateX(100%);
    transition: transform .18s ease;
}

.menu-toggle:checked ~ .sidebar-fundo { opacity: 1; visibility: visible; }
.menu-toggle:checked ~ .sidebar { transform: translateX(0); }
.menu-toggle:checked ~ .sidebar .fechar-sidebar { display: inline-flex; }

/* cabecalho do painel fica colado no topo mesmo com o resto rolando:
   sangra pelas laterais com margem negativa e repoe o padding por dentro. */
.sidebar-topo {
    position: sticky;
    top: 0;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--e3);
    min-height: 44px;
    margin: 0 calc(-1 * var(--e5));
    padding: var(--e4) var(--e5) var(--e3);
    background: var(--branco);
    border-bottom: 2px solid var(--marca);
}
.sidebar-titulo { color: var(--marca); font-size: 1.1rem; font-weight: 800; }

.busca-sidebar {
    display: flex;
    align-items: stretch;
    height: var(--altura-controle);
    margin: var(--e5) 0 var(--e4);
    border: 1px solid var(--linha-forte);
    border-radius: var(--r2);
    background: var(--branco);
    overflow: hidden;
    transition: border-color .18s ease;
}
.busca-sidebar:focus-within { border-color: var(--link); }
.busca-sidebar input {
    flex: 1;
    min-width: 0;
    padding: 0 var(--e3);
    border: 0;
    background: transparent;
    color: var(--texto);
}
.busca-sidebar button {
    padding: 0 var(--e4);
    border: 0;
    border-left: 1px solid var(--linha-forte);
    background: var(--marca);
    color: var(--branco);
    font-size: var(--t-peq);
    font-weight: 700;
    cursor: pointer;
    transition: background .18s ease;
}
.busca-sidebar button:hover { background: var(--link); }

.sidebar-rotulo {
    margin: var(--e6) 0 var(--e2);
    font-size: var(--t-micro);
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--link);
}
.sidebar ul { margin: 0; padding: 0; list-style: none; }
.sidebar ul li { border-bottom: 1px solid var(--linha-suave); }
.sidebar ul a {
    display: flex;
    align-items: center;
    min-height: 44px;
    padding: var(--e2) var(--e1);
    color: var(--marca);
    font-size: var(--t-base);
    font-weight: 600;
}
.sidebar ul a:hover { color: var(--link); text-decoration: none; }

/* ------------------------------------------------------------- migalhas */

.migalhas { border-bottom: 1px solid var(--linha); background: var(--tinta-fraca); }
.migalhas ol {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: var(--e2);
    margin: 0;
    padding: var(--e2) 0;
    list-style: none;
    font-size: var(--t-peq);
    color: var(--texto-suave);
    overflow-x: auto;
}
.migalhas li {
    display: flex;
    align-items: center;
    flex: 0 1 auto;
    min-width: 0;
}
.migalhas li:last-child { overflow: hidden; }
.migalhas li + li::before { content: "/"; margin-right: var(--e2); color: var(--linha-forte); }
.migalhas span {
    display: inline-block;
    max-width: 100%;
    color: var(--texto-suave);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ---------------------------------------------------------------- rodape */

.rodape {
    background: var(--marca);
    color: var(--branco);
    border-top: 4px solid var(--link);
}
.rodape-grade {
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) repeat(3, minmax(0, 1fr));
    align-items: start;
    gap: var(--gap-coluna);
    padding-top: var(--e8);
    padding-bottom: var(--e7);
}
.rodape-bloco { min-width: 0; }
.logo-rodape { margin-bottom: var(--e4); }
.logo-rodape .logo-texto strong { color: var(--branco); }
.rodape-texto { margin: 0 0 var(--e2); color: var(--branco); font-size: var(--t-peq); opacity: .9; }
.rodape-texto a { color: var(--branco); text-decoration: underline; }
.rodape-titulo {
    margin: 0 0 var(--e4);
    padding-bottom: var(--e3);
    border-bottom: 1px solid rgba(255, 255, 255, .28);
    color: var(--branco);
    font-size: var(--t-micro);
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}
.rodape-lista { margin: 0; padding: 0; list-style: none; }
.rodape-lista li { margin-bottom: var(--e2); }
.rodape-lista a { color: var(--branco); font-size: var(--t-peq); opacity: .92; transition: opacity .18s ease; }
.rodape-lista a:hover { color: var(--branco); opacity: 1; }

.rodape-base {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--e4);
    padding-top: var(--e5);
    padding-bottom: var(--e6);
    border-top: 1px solid rgba(255, 255, 255, .28);
}
.rodape-base p { margin: 0; color: var(--branco); font-size: var(--t-peq); opacity: .9; }

.botao-topo {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: var(--altura-controle-mini);
    padding: 0 var(--e4);
    border: 1px solid var(--branco);
    border-radius: var(--r2);
    color: var(--branco);
    font-size: var(--t-mini);
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    transition: background .18s ease, color .18s ease;
}
.botao-topo:hover { background: var(--branco); color: var(--marca); text-decoration: none; }

/* --------------------------------------------------------------- cookies */

.cookies {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 120;
    background: var(--branco);
    border-top: 3px solid var(--marca);
    box-shadow: var(--sombra-2);
}
.cookies[hidden] { display: none; }
.cookies-int {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--e5);
    max-width: var(--largura-area);
    margin: 0 auto;
    padding: var(--e4) var(--pad-area);
}
.cookies-texto { flex: 1 1 420px; }
.cookies-texto p { margin: 0; font-size: var(--t-peq); color: var(--texto-suave); }
.cookies-titulo {
    font-weight: 800 !important;
    color: var(--marca) !important;
    margin-bottom: var(--e1) !important;
    font-size: var(--t-base) !important;
}
.cookies-acoes { display: flex; flex-wrap: wrap; gap: var(--e3); }

/* ----------------------------------------------------------- responsivo */

@media (max-width: 980px) {
    .rodape-grade { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 860px) {
    .nav-principal { display: none; }
    .logo img { width: 34px; height: 34px; }
    .logo-texto strong { font-size: 1.06rem; }
    .logo-texto small { font-size: .62rem; letter-spacing: .04em; }
    .abrir-sidebar { display: inline-flex; }
    .cabecalho-int { flex-wrap: wrap; row-gap: var(--e4); }
    .busca-topo { order: 3; flex-basis: 100%; max-width: none; }
}

@media (max-width: 640px) {
    .rodape-grade { grid-template-columns: minmax(0, 1fr); gap: var(--e6); }
    .rodape-base { flex-direction: column; align-items: flex-start; gap: var(--e3); }
    .faixa-marca-int { font-size: var(--t-micro); }
    .faixa-link { display: none; }
    .cookies-int { padding: var(--e4) var(--pad-area-mobile); }
    .cookies-acoes { width: 100%; }
    .cookies-acoes .botao { flex: 1 1 auto; }
}
/* ==========================================================================
   bloco 3 - home, cartoes e listagens
   Hero, destaque, listas laterais, grades de cartao, categorias, seletor,
   paginacao, topo de pagina e busca grande.
   ========================================================================== */

/* ------------------------------------------------------------------ hero */

.hero { padding: var(--e8) 0 0; }

.hero-cabecalho {
    max-width: 740px;
    margin-bottom: var(--e7);
}
.hero-titulo {
    margin-bottom: .35em;
    font-size: clamp(2rem, 4.6vw, 3.1rem);
}
.hero-texto {
    max-width: 68ch;
    margin: 0;
    color: var(--texto-suave);
    font-size: var(--t-med);
}

.hero-grade {
    display: grid;
    grid-template-columns: minmax(0, 1.9fr) minmax(0, 1fr);
    gap: var(--gap-coluna);
    padding-bottom: var(--e8);
}
/* Sem artigos secundarios a coluna lateral some. Nesse caso o destaque deixa
   de ser vertical e vira um cartao horizontal: senao a imagem 16/9 ocuparia
   os 1200px inteiros e passaria de 600px de altura sozinha. */
.hero-grade-solo { grid-template-columns: minmax(0, 1fr); }
.hero-grade-solo .destaque {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
    align-items: start;
    gap: var(--gap-coluna);
}
.hero-grade-solo .destaque-corpo { padding-top: 0; }
.hero-grade-solo .destaque-titulo { margin-top: var(--e3); }

/* --------------------------------------------------------------- destaque */

.destaque {
    display: flex;
    flex-direction: column;
    border-top: 2px solid var(--marca);
    padding-top: var(--e5);
}
.destaque-imagem {
    display: block;
    aspect-ratio: 16 / 9;
    max-height: 460px;
    border-radius: var(--r3);
    overflow: hidden;
    background: var(--fundo-alt);
}
.destaque-imagem img {
    width: 100%;
    height: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}
.destaque-corpo {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding-top: var(--e4);
}
/* Numa coluna flex o botao esticaria de ponta a ponta; ele fica no tamanho
   do proprio rotulo, alinhado ao mesmo eixo esquerdo do titulo. */
.destaque-corpo .botao { align-self: flex-start; }
.destaque-titulo {
    margin: var(--e3) 0;
    font-size: clamp(1.5rem, 2.6vw, 2.1rem);
}
.destaque-titulo a { color: var(--marca); }
.destaque-titulo a:hover { color: var(--link); text-decoration: none; }
.destaque-resumo {
    margin: 0 0 var(--e3);
    color: var(--texto-suave);
    font-size: var(--t-base);
}
.destaque-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    margin: 0 0 var(--e5);
    color: var(--texto-suave);
    font-size: var(--t-mini);
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    font-variant-numeric: tabular-nums;
}
.destaque-meta time::before {
    content: "\00B7";
    margin: 0 var(--e2);
    color: var(--linha-forte);
}

/* ---------------------------------------------------------- hero lateral */

.hero-lateral {
    border-top: 2px solid var(--linha-forte);
    padding-top: var(--e5);
}

.linha {
    padding: var(--e4) 0;
    border-bottom: 1px solid var(--linha);
}
.linha:first-child { padding-top: 0; }
.linha:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}
.linha-titulo {
    margin: var(--e2) 0 var(--e1);
    font-size: var(--t-med);
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.linha-titulo a { color: var(--marca); }
.linha-titulo a:hover { color: var(--link); text-decoration: none; }
.linha-meta {
    margin: 0;
    color: var(--texto-suave);
    font-size: var(--t-mini);
    font-variant-numeric: tabular-nums;
}

/* --------------------------------------------------------------- seletor */

.seletor {
    padding: var(--e5) 0;
    border-top: 1px solid var(--linha);
    border-bottom: 1px solid var(--linha);
    background: var(--tinta-fraca);
}
.seletor-titulo {
    margin: 0 0 var(--e4);
    font-size: var(--t-med);
}
.seletor-lista {
    display: flex;
    flex-wrap: wrap;
    gap: var(--e2);
}

/* ----------------------------------------------------------------- grade */

.grade {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: var(--gap-grade);
}

.cartao {
    display: flex;
    flex-direction: column;
    height: 100%;
    background: var(--branco);
    border: 1px solid var(--linha);
    border-radius: var(--r3);
    box-shadow: var(--sombra-1);
    overflow: hidden;
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.cartao:hover {
    border-color: var(--linha-forte);
    box-shadow: var(--sombra-2);
    transform: translateY(-2px);
}
.cartao-imagem {
    display: block;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: var(--marca);
}
.cartao-imagem img {
    width: 100%;
    height: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}
.cartao-imagem-vazia {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, var(--marca), var(--marca-escura));
    color: var(--branco);
    font-size: var(--t-gr);
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.cartao-corpo {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: var(--e5);
}
.cartao-titulo {
    margin: var(--e3) 0 var(--e2);
    font-size: var(--t-med);
    line-height: 1.28;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.cartao-titulo a { color: var(--marca); }
.cartao-titulo a:hover { color: var(--link); text-decoration: none; }
.cartao-resumo {
    margin: 0 0 var(--e3);
    color: var(--texto-suave);
    font-size: var(--t-peq);
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.cartao-meta {
    margin: auto 0 0;
    padding-top: var(--e3);
    border-top: 1px solid var(--linha-suave);
    color: var(--texto-suave);
    font-size: var(--t-mini);
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    font-variant-numeric: tabular-nums;
}

/* ------------------------------------------------------------ categorias */

.grade-categorias {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: var(--gap-grade);
}
.categoria-cartao {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--e2);
    padding: var(--e5);
    background: var(--branco);
    border: 1px solid var(--linha);
    border-radius: var(--r3);
    box-shadow: var(--sombra-1);
    color: var(--texto);
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.categoria-cartao:hover {
    border-color: var(--linha-forte);
    box-shadow: var(--sombra-2);
    transform: translateY(-2px);
    text-decoration: none;
}
.categoria-nome {
    color: var(--marca);
    font-size: var(--t-med);
    font-weight: 800;
}
.categoria-total {
    color: var(--link);
    font-size: var(--t-micro);
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    font-variant-numeric: tabular-nums;
}
.categoria-desc {
    color: var(--texto-suave);
    font-size: var(--t-peq);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ------------------------------------------------------------ paginacao */

.paginacao {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: var(--e3);
    margin-top: var(--e8);
    padding-top: var(--e6);
    border-top: 1px solid var(--linha);
}
.paginacao > a:first-child:not(:last-child) {
    grid-column: 1;
    justify-self: start;
}
.paginacao > a:last-child:not(:first-child) {
    grid-column: 3;
    justify-self: end;
}
.paginacao-numeros {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    grid-column: 2;
    gap: var(--e2);
}
.paginacao-numeros a,
.paginacao-atual {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: var(--altura-controle-mini);
    height: var(--altura-controle-mini);
    padding: 0 var(--e2);
    border: 1px solid var(--linha-forte);
    border-radius: var(--r2);
    font-size: var(--t-peq);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}
.paginacao-numeros a { color: var(--marca); }
.paginacao-numeros a:hover { border-color: var(--link); color: var(--link); text-decoration: none; }
.paginacao-atual {
    background: var(--marca);
    border-color: var(--marca);
    color: var(--branco);
}
.paginacao-corte { padding: 0 var(--e1); color: var(--texto-suave); }

/* -------------------------------------------------------- topo de pagina */

.topo-pagina { padding: var(--e8) 0 var(--e6); }
.pagina-titulo {
    margin: 0 0 var(--e3);
    font-size: clamp(1.8rem, 3.6vw, 2.6rem);
}
.pagina-texto {
    max-width: var(--largura-texto);
    margin: 0 0 var(--e2);
    color: var(--texto-suave);
    font-size: var(--t-med);
}
.pagina-info {
    margin: var(--e2) 0 0;
    color: var(--texto-suave);
    font-size: var(--t-mini);
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.aviso-vazio { color: var(--texto-suave); font-size: var(--t-base); }
.busca-contagem {
    margin: 0 0 var(--e6);
    color: var(--texto-suave);
    font-size: var(--t-peq);
}

.busca-grande {
    display: flex;
    max-width: 620px;
    margin-top: var(--e5);
}
.busca-grande input {
    flex: 1;
    min-width: 0;
    height: var(--altura-controle);
    padding: 0 var(--e4);
    border: 1px solid var(--linha-forte);
    border-right: 0;
    border-radius: var(--r2) 0 0 var(--r2);
    background: var(--branco);
    color: var(--texto);
    transition: border-color .18s ease;
}
.busca-grande:focus-within input { border-color: var(--link); }
.busca-grande .botao {
    height: var(--altura-controle);
    border-radius: 0 var(--r2) var(--r2) 0;
}

/* ----------------------------------------------------------- responsivo */

@media (max-width: 980px) {
    .hero-grade {
        grid-template-columns: minmax(0, 1fr);
        gap: var(--e6);
    }
}

@media (max-width: 860px) {
    .hero-cabecalho { max-width: 100%; }
    .destaque-titulo { font-size: clamp(1.4rem, 3.4vw, 1.9rem); }
    .hero-grade-solo .destaque {
        grid-template-columns: minmax(0, 1fr);
        gap: var(--e4);
    }
    .hero-grade-solo .destaque-titulo { margin-top: var(--e2); }
    .grade-categorias { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
}

@media (max-width: 640px) {
    .hero { padding: var(--pad-secao-mobile) 0 0; }
    .hero-cabecalho { margin-bottom: var(--e6); }
    .hero-grade { padding-bottom: var(--e6); }
    .grade {
        grid-template-columns: minmax(0, 1fr);
        gap: var(--e6);
    }
    .grade-categorias { grid-template-columns: minmax(0, 1fr); }
    .topo-pagina { padding: var(--pad-secao-mobile) 0 var(--e5); }
    .paginacao {
        grid-template-columns: 1fr;
        justify-items: center;
        gap: var(--e3);
        margin-top: var(--e6);
    }
    .paginacao > a:first-child:not(:last-child),
    .paginacao > a:last-child:not(:first-child) {
        grid-column: 1;
        justify-self: center;
    }
    .paginacao-numeros { grid-column: 1; }
    .busca-grande { max-width: none; }
}
/* ==========================================================================
   bibliapergunta - bloco 4: artigo, texto longo e blocos editoriais
   Fragmento a concatenar apos bloco-1, bloco-2 e bloco-3 em assets/style.css.
   Nao redefine tokens - apenas consome os tokens ja declarados no :root.
   ========================================================================== */

/* ---------------------------------------------------------------- artigo */

.artigo-cabecalho {
    padding: var(--e8) 0 var(--e6);
}

.artigo-titulo {
    margin: var(--e4) 0 var(--e4);
    font-size: clamp(1.9rem, 4vw, 2.75rem);
}

.artigo-linha-fina {
    margin: 0 0 var(--e5);
    color: var(--texto-suave);
    font-size: var(--t-med);
    line-height: 1.5;
}

.artigo-assinatura {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: var(--e1) 0;
    padding-top: var(--e4);
    border-top: 1px solid var(--linha);
    color: var(--texto-suave);
    font-size: var(--t-mini);
    letter-spacing: .02em;
}
.artigo-assinatura time {
    font-variant-numeric: tabular-nums;
}
.artigo-assinatura .separador {
    display: none;
}
.artigo-assinatura > *:not(:first-child)::before {
    content: "\00b7";
    display: inline-block;
    margin: 0 var(--e2);
    color: var(--linha-forte);
    font-weight: 700;
}

.artigo-imagem {
    margin: 0 0 var(--e7);
}
.artigo-imagem img {
    width: 100%;
    border-radius: var(--r3);
}
.artigo-imagem figcaption {
    margin-top: var(--e2);
    color: var(--texto-suave);
    font-size: var(--t-mini);
    text-align: left;
}

.artigo-conteudo {
    margin-bottom: var(--e7);
}

.artigo-tags {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--e2);
    margin: var(--e7) 0;
    padding-top: var(--e5);
    border-top: 1px solid var(--linha);
}

/* ------------------------------------------------------------ compartilhar */

.compartilhar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--e2);
    padding: var(--e3) 0;
    border-top: 1px solid var(--linha);
    border-bottom: 1px solid var(--linha);
    margin-bottom: var(--e7);
}
.compartilhar-rotulo {
    margin-right: var(--e1);
    color: var(--marca);
    font-size: var(--t-micro);
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

/* --------------------------------------------------------------- texto */

.texto {
    color: var(--texto);
    font-size: 1.06rem;
    line-height: 1.75;
}
.texto h2 {
    position: relative;
    margin: 2em 0 .6em;
    padding-bottom: .3em;
    border-bottom: 1px solid var(--linha);
    font-size: 1.5rem;
}
.texto h2::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -1px;
    width: 32px;
    height: 2px;
    background: var(--marca);
}
.texto h3 {
    margin: 1.6em 0 .5em;
    font-size: 1.22rem;
}
.texto h4 {
    margin: 1.4em 0 .5em;
    font-size: 1.06rem;
}
.texto p {
    margin: 0 0 1.15em;
}
.texto ul,
.texto ol {
    margin: 0 0 1.15em;
    padding-left: 1.2em;
}
.texto li {
    margin-bottom: .5em;
}
.texto ul li::marker,
.texto ol li::marker {
    color: var(--link);
    font-weight: 700;
}
.texto strong {
    color: var(--marca);
    font-weight: 700;
}
.texto a {
    text-decoration: underline;
    text-underline-offset: 2px;
}
.texto hr {
    margin: 2em 0;
    border: 0;
    border-top: 1px solid var(--linha);
}
.texto blockquote {
    margin: 1.6em 0;
    padding: var(--e4) var(--e5);
    border-left: 3px solid var(--marca);
    border-radius: var(--r2);
    background: var(--tinta-fraca);
    color: var(--texto-suave);
    font-size: 1.1rem;
}
.texto blockquote p:last-child {
    margin-bottom: 0;
}
.texto table {
    width: 100%;
    margin: 1.6em 0;
    border-collapse: collapse;
    font-size: var(--t-peq);
}
.texto th,
.texto td {
    padding: var(--e3);
    border: 1px solid var(--linha);
    text-align: left;
}
.texto th {
    background: var(--tinta-media);
    color: var(--marca);
    font-weight: 700;
}
.texto tbody tr:nth-child(even) td {
    background: var(--tinta-fraca);
}
.texto img {
    margin: 1.4em 0;
    border-radius: var(--r3);
}
.texto code {
    padding: 1px 5px;
    border: 1px solid var(--linha);
    border-radius: var(--r1);
    background: var(--tinta-fraca);
    font-size: .92em;
}
.texto pre {
    margin: 1.6em 0;
    padding: var(--e4);
    border: 1px solid var(--linha);
    border-radius: var(--r2);
    background: var(--tinta-fraca);
    overflow-x: auto;
}
.texto pre code {
    padding: 0;
    border: 0;
    background: none;
}

/* ------------------------------------------------------------- caixa autor */

.caixa-autor {
    display: flex;
    align-items: flex-start;
    gap: var(--e5);
    margin: var(--e7) 0;
    padding: var(--e6);
    border: 1px solid var(--linha);
    border-radius: var(--r3);
    background: var(--tinta-fraca);
}
.caixa-autor img {
    flex-shrink: 0;
    width: 72px;
    height: 72px;
    border-radius: var(--r3);
    object-fit: cover;
}
.caixa-autor p {
    margin: 0 0 .5em;
    color: var(--texto-suave);
    font-size: var(--t-peq);
}
.caixa-autor-nome {
    color: var(--marca) !important;
    font-size: var(--t-med) !important;
    font-weight: 700;
}

/* -------------------------------------------------------- navegacao artigos */

.navegacao-artigos {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--e4);
    margin: var(--e8) 0 var(--e9);
}
.nav-artigo {
    display: flex;
    flex-direction: column;
    gap: var(--e2);
    padding: var(--e5) var(--e6);
    border: 1px solid var(--linha);
    border-radius: var(--r3);
    background: var(--branco);
    transition: border-color .18s ease;
}
.nav-artigo:hover {
    border-color: var(--link);
    text-decoration: none;
}
.nav-anterior {
    text-align: left;
}
.nav-proximo {
    text-align: right;
}
.nav-vazio {
    border: 1px solid var(--linha);
    border-radius: var(--r3);
    background: var(--tinta-fraca);
}
.nav-rotulo {
    color: var(--link);
    font-size: var(--t-micro);
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.nav-titulo {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    color: var(--marca);
    font-size: var(--t-base);
    font-weight: 700;
    line-height: 1.3;
}

/* ------------------------------------------------------------- ficha autor */

.ficha-autor {
    display: grid;
    grid-template-columns: 160px minmax(0, 1fr);
    align-items: start;
    gap: var(--e7);
    padding: var(--e7);
    border: 1px solid var(--linha);
    border-radius: var(--r3);
    background: var(--tinta-fraca);
}
.ficha-foto img {
    width: 100%;
    max-width: 160px;
    aspect-ratio: 1 / 1;
    border-radius: var(--r3);
    object-fit: cover;
}
.ficha-dados {
    min-width: 0;
}
.ficha-nome {
    margin: 0 0 var(--e1);
    font-size: 1.5rem;
}
.ficha-cargo {
    margin: 0 0 var(--e5);
    color: var(--link);
    font-size: var(--t-mini);
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.ficha-resumo {
    color: var(--texto-suave);
}
.ficha-lista {
    display: grid;
    gap: var(--e3);
    margin: var(--e5) 0 0;
}
.ficha-lista > div {
    display: grid;
    grid-template-columns: 170px minmax(0, 1fr);
    gap: var(--e3);
    padding-bottom: var(--e3);
    border-bottom: 1px solid var(--linha);
}
.ficha-lista dt {
    color: var(--marca);
    font-size: var(--t-mini);
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.ficha-lista dd {
    align-self: start;
    margin: 0;
    color: var(--texto-suave);
    font-size: var(--t-base);
}

/* --------------------------------------------------------- blocos institucionais */

.bloco-texto {
    margin-bottom: var(--e8);
}
.bloco-texto:last-child {
    margin-bottom: 0;
}
.bloco-texto h2 {
    margin: 0 0 var(--e4);
    padding-bottom: var(--e2);
    border-bottom: 2px solid var(--marca);
    font-size: 1.4rem;
}
.lista-marcada {
    margin: 0;
    padding-left: 1.2em;
    color: var(--texto);
}
.lista-marcada li {
    margin-bottom: .6em;
}
.lista-marcada li::marker {
    color: var(--link);
}

/* ------------------------------------------------------------ newsletter */

.newsletter {
    padding: var(--e8) 0;
    background: var(--marca);
    color: var(--branco);
}
.newsletter-int {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: center;
    gap: var(--gap-coluna);
}
.newsletter .rotulo {
    color: var(--branco);
    opacity: .85;
}
.newsletter h2 {
    margin: 0 0 var(--e2);
    color: var(--branco);
    font-size: 1.6rem;
}
.newsletter-texto p {
    margin: 0;
    color: var(--branco);
    opacity: .92;
}
.newsletter-form {
    display: flex;
    height: var(--altura-controle);
    margin-bottom: var(--e3);
}
.newsletter-form input {
    flex: 1;
    min-width: 0;
    height: 100%;
    padding: 0 var(--e4);
    border: 1px solid var(--branco);
    border-right: 0;
    border-radius: var(--r2) 0 0 var(--r2);
    background: var(--branco);
    color: var(--texto);
}
.newsletter-form .botao {
    height: 100%;
    padding: 0 var(--e5);
    border-radius: 0 var(--r2) var(--r2) 0;
    background: var(--link);
    border-color: var(--link);
    color: var(--branco);
}
.newsletter-form .botao:hover {
    background: var(--branco);
    color: var(--marca);
    border-color: var(--branco);
}
.newsletter-aviso {
    margin: 0;
    color: var(--branco);
    font-size: var(--t-mini);
    opacity: .82;
}

/* ------------------------------------------------------------------- faq */

.faq {
    padding: var(--pad-secao) 0;
    border-top: 1px solid var(--linha);
}
.faq-lista {
    display: grid;
    gap: var(--e2);
    margin-top: var(--e6);
}
.faq-item {
    padding: var(--e4) var(--e5);
    border: 1px solid var(--linha);
    border-radius: var(--r3);
    background: var(--branco);
    box-shadow: var(--sombra-1);
}
.faq-item summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--e4);
    color: var(--marca);
    font-size: var(--t-med);
    font-weight: 700;
    line-height: 1.35;
    list-style: none;
    cursor: pointer;
}
.faq-item summary::-webkit-details-marker {
    display: none;
}
.faq-item summary::after {
    content: "";
    flex-shrink: 0;
    width: 14px;
    height: 14px;
    background:
        linear-gradient(var(--link), var(--link)),
        linear-gradient(var(--link), var(--link));
    background-size: 100% 2px, 2px 100%;
    background-position: center;
    background-repeat: no-repeat;
    transition: background-size .18s ease;
}
/* Aberto: a barra vertical encolhe e o sinal vira um menos, sem trocar de icone. */
.faq-item[open] summary::after {
    background-size: 100% 2px, 0 100%;
}
.faq-resposta {
    margin-top: var(--e3);
    padding-top: var(--e3);
    border-top: 1px solid var(--linha);
}
.faq-resposta p {
    margin: 0;
    color: var(--texto-suave);
}

/* ----------------------------------------------------------- responsivo */

@media (max-width: 980px) {
    .newsletter-int { grid-template-columns: minmax(0, 1fr); gap: var(--e6); }
}

@media (max-width: 860px) {
    .ficha-autor { grid-template-columns: minmax(0, 1fr); gap: var(--e5); }
    .ficha-foto img { max-width: 120px; }
    .ficha-lista > div { grid-template-columns: minmax(0, 1fr); gap: var(--e1); padding-bottom: var(--e2); }
}

@media (max-width: 640px) {
    .artigo-cabecalho { padding: var(--e6) 0 var(--e5); }
    .artigo-imagem { margin-bottom: var(--e5); }
    .compartilhar { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; }
    .compartilhar-rotulo,
    .compartilhar .botao { flex-shrink: 0; }
    .texto table { display: block; overflow-x: auto; }
    .caixa-autor { flex-direction: column; gap: var(--e3); }
    .navegacao-artigos { grid-template-columns: minmax(0, 1fr); }
    .nav-proximo { text-align: left; }
    .nav-vazio { display: none; }
    .faq { padding: var(--pad-secao-mobile) 0; }
    .newsletter { padding: var(--pad-secao-mobile) 0; }
}

/* ==========================================================================
   Juncoes entre secoes
   Quando duas faixas com filete se encostam, o site desenha duas linhas de
   1px e o alinhamento vertical quebra. Estas regras deixam apenas um filete
   em cada emenda, sem mexer no espacamento de nenhuma delas.
   ========================================================================== */

.seletor + .secao,
.migalhas + .secao,
.migalhas + .topo-pagina,
.topo-pagina + .seletor,
.seletor + .faq,
.hero + .seletor { border-top: 0; }

.secao + .secao-alt,
.secao-alt + .secao { border-top: 1px solid var(--linha); }

/* Faixas escuras nao precisam de filete de separacao. */
.newsletter + .faq,
.newsletter + .secao,
.rodape { border-top-color: var(--link); }
.newsletter + .faq,
.newsletter + .secao { border-top: 0; }

/* A primeira secao logo apos as migalhas ja tem o filete das migalhas. */
.migalhas + .artigo .artigo-cabecalho { padding-top: var(--e7); }

/* Ultimo bloco antes do rodape nunca encosta na faixa escura. */
main > :last-child { margin-bottom: 0; }
