/*
Theme Name: Mais de Deus
Theme URI: https://maisdedeus.com
Author: Luiz Lab Academy
Author URI: https://github.com/luizlabacademy
Description: Tema clássico para o portal Mais de Deus. Home com slider de posts destacados, coluna de categorias e busca, coluna de mais lidos, página de categoria com destaque do post mais lido e busca interna.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 8.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: maisdedeus
Tags: blog, news, two-columns, three-columns, right-sidebar, custom-menu, featured-images, translation-ready
*/

/* ==========================================================================
   1. Tokens
   ========================================================================== */

:root {
    --md-primary: #1c3d5a;
    --md-primary-dark: #142c42;
    --md-accent: #c8a24a;
    --md-accent-soft: #f0e4c8;
    --md-ink: #14202e;
    --md-body: #384656;
    --md-muted: #6f7b8a;
    --md-bg: #ffffff;
    --md-soft: #f7f4ef;
    --md-line: #e6ded2;
    /* Contorno de campo de formulário. O --md-line é claro demais para
       delimitar uma caixa em que se digita: o campo sumia no fundo. */
    --md-line-campo: #a79e90;
    --md-shadow: 0 1px 2px rgba(20, 32, 46, .06), 0 8px 24px rgba(20, 32, 46, .06);
    --md-radius: 10px;
    --md-max: 1200px;
    --md-serif: Georgia, "Times New Roman", serif;
    --md-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    /* Títulos de artigo e de slide. Só eles saem da serifada: em Georgia o
       título ficava com cara de miolo de livro. */
    --md-titulo: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

/* ==========================================================================
   2. Base
   ========================================================================== */

*, *::before, *::after { box-sizing: border-box; }

/* Mobile-first: as regras base valem para o celular; as telas maiores
   recebem incrementos nos @media (min-width) no fim do arquivo. */

body {
    margin: 0;
    background: var(--md-bg);
    color: var(--md-body);
    font-family: var(--md-sans);
    font-size: 16px;
    line-height: 1.7;
    /* Suavização em todas as plataformas: sem o par grayscale/antialiased o
       texto claro sobre fundo escuro sai serrilhado e "duro". */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
    /* Trava o balanço horizontal em telas estreitas sem esconder conteúdo. */
    overflow-wrap: break-word;
}

/* Títulos de artigo, de slide e de assunto: humanista leve, sem serifa, com
   entressombra levemente negativa. É o que dá o ar "editorial elegante" que a
   serifada de tela não entrega em corpo grande. */
.md-slide-title,
.md-tile-title,
.md-card-title,
.md-entry-title,
.md-featured-title,
.md-rank-title,
.md-related-title,
.md-assunto-nome {
    font-family: var(--md-titulo);
    font-weight: 600;
    letter-spacing: -.012em;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--md-serif);
    color: var(--md-ink);
    line-height: 1.25;
    margin: 0 0 .5em;
    font-weight: 700;
    /* Títulos longos em coluna estreita não podem estourar a caixa. */
    overflow-wrap: break-word;
}

h1 { font-size: 1.8rem; }
h2 { font-size: 1.4rem; }
h3 { font-size: 1.15rem; }

a { color: var(--md-primary); text-decoration: none; }
a:hover, a:focus { color: var(--md-accent); text-decoration: underline; }

img { max-width: 100%; height: auto; display: block; }

p { margin: 0 0 1.2em; }

:focus-visible {
    outline: 3px solid var(--md-accent);
    outline-offset: 2px;
}

.md-container {
    width: 100%;
    max-width: var(--md-max);
    margin: 0 auto;
    padding: 0 20px;
}

.screen-reader-text {
    position: absolute !important;
    width: 1px; height: 1px;
    overflow: hidden; clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    white-space: nowrap;
}

.md-skip-link {
    position: absolute;
    left: -9999px;
    top: 0;
    background: var(--md-primary);
    color: #fff;
    padding: 12px 20px;
    z-index: 999;
}
.md-skip-link:focus { left: 0; }

/* ==========================================================================
   3. Cabeçalho
   ========================================================================== */

.md-header {
    background: var(--md-primary);
    color: #fff;
    border-bottom: 3px solid var(--md-accent);
}

.md-header a { color: #fff; }
.md-header a:hover { color: var(--md-accent-soft); }

.md-header-inner {
    display: flex;
    align-items: center;
    /* Hambúrguer e marca encostados à esquerda; o menu é empurrado para a
       direita pela margem automática da marca. */
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 12px;
    padding-top: 16px;
    padding-bottom: 16px;
}

.md-brand { display: flex; align-items: center; gap: 12px; min-width: 0; margin-right: auto; }

/* A logo é vetorial: manda a altura e a largura acompanha. */
.md-brand-logo { display: block; line-height: 0; }

.md-brand-logo picture { display: block; }

.md-brand-logo img,
.md-brand .custom-logo {
    display: block;
    height: 46px;
    width: auto;
    max-width: 100%;
}

.md-brand-title {
    font-family: var(--md-serif);
    font-size: 1.7rem;
    font-weight: 700;
    margin: 0;
    line-height: 1.1;
    letter-spacing: -.01em;
}

.md-brand-title a:hover { text-decoration: none; }

.md-brand-tagline {
    margin: 2px 0 0;
    font-size: .82rem;
    color: rgba(255, 255, 255, .72);
    line-height: 1.3;
}

/* No celular o menu nasce fechado e vira lista vertical ao abrir. */
.md-nav {
    flex-basis: 100%;
    display: none;
    padding-bottom: 8px;
}

.md-nav.is-open { display: block; }

.md-nav ul {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 0;
    margin: 0;
    padding: 0;
}

.md-nav li { border-top: 1px solid rgba(255, 255, 255, .15); }

.md-nav a {
    font-size: .95rem;
    font-weight: 600;
    letter-spacing: .01em;
    /* 44px de altura de toque no celular. */
    padding: 12px 0;
    display: block;
    width: 100%;
    border-bottom: 2px solid transparent;
}

.md-nav a:hover,
.md-nav .current-menu-item > a {
    border-bottom-color: var(--md-accent);
    text-decoration: none;
}

/* Hambúrguer, à esquerda da marca. Sem rótulo escrito: o nome acessível vem
   do aria-label, então leitor de tela continua anunciando "Abrir menu". */
.md-nav-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: 0;
    color: #fff;
    /* 44px de alvo de toque, recuado para o traço alinhar com a margem. */
    width: 44px; height: 44px;
    margin-left: -10px;
    padding: 0;
    cursor: pointer;
    flex: none;
}

.md-burger {
    position: relative;
    display: block;
    width: 22px; height: 2px;
    background: currentColor;
    transition: background .2s ease;
}

.md-burger::before,
.md-burger::after {
    content: "";
    position: absolute;
    left: 0;
    width: 22px; height: 2px;
    background: currentColor;
    transition: transform .25s ease;
}

.md-burger::before { top: -7px; }
.md-burger::after { top: 7px; }

/* Aberto: os três traços viram um X. */
.md-nav-toggle[aria-expanded="true"] .md-burger { background: transparent; }
.md-nav-toggle[aria-expanded="true"] .md-burger::before { transform: translateY(7px) rotate(45deg); }
.md-nav-toggle[aria-expanded="true"] .md-burger::after { transform: translateY(-7px) rotate(-45deg); }

/* ==========================================================================
   4. Slider de destaques
   ========================================================================== */

/* O respiro maior embaixo separa o slider do primeiro bloco da home. Em
   cima, somado aos 36px do <main>, o total acima do slider fica em ~54px. */
.md-slider-section { background: var(--md-bg); padding: 18px 0 54px; }

.md-slider {
    position: relative;
    /* Sem canto arredondado: o slide encosta reto no fundo branco. */
    border-radius: 0;
    overflow: hidden;
    background: var(--md-primary-dark);
}

.md-slider-track {
    position: relative;
    /* Altura fixa evita salto de layout na troca de slides. */
    height: 320px;
}

.md-slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    visibility: hidden;
    transition: opacity .6s ease;
}

.md-slide.is-active { opacity: 1; visibility: visible; }

.md-slide-media { position: absolute; inset: 0; }

.md-slide-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Poça de sombra no canto de baixo à esquerda, onde vive o texto do slide, e
   uma faixa fraca na base só para os pontinhos não sumirem. O degradê que
   cobria a altura inteira apagava a foto — o contraste que falta vem do halo
   no próprio texto. */
.md-slide-media::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse 88% 118% at 4% 104%,
            rgba(10, 17, 26, .86) 0%,
            rgba(10, 17, 26, .56) 36%,
            rgba(10, 17, 26, .22) 62%,
            rgba(10, 17, 26, 0) 82%),
        linear-gradient(0deg, rgba(10, 17, 26, .34) 0%, rgba(10, 17, 26, 0) 20%);
}

.md-slide-body {
    position: absolute;
    left: 0; right: 0; bottom: 0;
    /* O respiro extra embaixo reserva a faixa dos dots. */
    padding: 20px 18px 46px;
    color: #fff;
    max-width: 780px;
}

/* Dourado sólido: aqui o selo fica logo acima do título, dentro do fluxo do
   texto, e o contraste cheio funciona bem. O selo vazado é o dos tiles, que
   flutua sobre a foto. */
.md-slide-badge {
    display: inline-block;
    background: var(--md-accent);
    color: var(--md-primary-dark);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
    padding: 5px 12px;
    border-radius: 100px;
    margin-bottom: 14px;
}

.md-slide-title {
    font-size: 1.35rem;
    color: #fff;
    margin: 0 0 8px;
    /* Halo, não só sombra deslocada: com o véu restrito ao canto, é ele que
       segura a leitura em qualquer direção. */
    text-shadow:
        0 0 4px rgba(8, 14, 22, .9),
        0 1px 3px rgba(8, 14, 22, .95),
        0 2px 18px rgba(8, 14, 22, .8);
}

.md-slide-title a { color: #fff; }
.md-slide-title a:hover { color: var(--md-accent-soft); text-decoration: none; }

/* No celular o resumo rouba espaço do título; volta a partir de 861px. */
.md-slide-excerpt {
    display: none;
    margin: 0 0 14px;
    color: rgba(255, 255, 255, .92);
    font-size: 1rem;
    text-shadow: 0 0 3px rgba(8, 14, 22, .9), 0 1px 3px rgba(8, 14, 22, .9);
}

/* O resumo inteiro é clicável, mas se comporta como texto. */
.md-slide-excerpt a {
    color: inherit;
    display: block;
}

.md-slide-excerpt a:hover { color: #fff; text-decoration: none; }

.md-slide-meta {
    font-size: .84rem;
    color: rgba(255, 255, 255, .85);
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
    align-items: center;
    text-shadow: 0 0 3px rgba(8, 14, 22, .9), 0 1px 3px rgba(8, 14, 22, .9);
}

/* No celular as setas caem exatamente sobre o selo da categoria e o
   título — some com elas e deixa o arrasto + os dots comandarem. */
/* Faixa clicável de 20% em cada lado, da altura inteira do slide: o alvo é
   a área, não o desenho. Sem caixa nem borda — só o sinal, grande, sobre a
   foto. */
.md-slider-arrow {
    /* Visível em qualquer largura. O arrasto continua funcionando: os
       eventos de toque escutam na raiz do slider e sobem do botão. */
    display: block;
    position: absolute;
    top: 0;
    bottom: 0;
    width: 20%;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: #fff;
    /* Zera o nó de texto do botão: quem desenha o sinal é o ::before, que
       pode ser posicionado sem arrastar a faixa junto. */
    font-size: 0;
    line-height: 1;
    cursor: pointer;
    padding: 0;
    transition: background .25s ease, opacity .2s ease;
    z-index: 3;
    opacity: .85;
}

/* O sinal fica no terço de cima, sobre a foto — a faixa continua valendo do
   topo à base. */
.md-slider-arrow::before {
    position: absolute;
    top: 30%;
    transform: translateY(-50%);
    font-size: 2.6rem;
    line-height: 1;
    text-shadow: 0 2px 10px rgba(10, 18, 28, .7);
}

.md-slider-prev::before { content: "\2039"; left: 18px; }
.md-slider-next::before { content: "\203A"; right: 18px; }

/* Um véu discreto revela até onde vai a faixa quando o ponteiro entra. */
.md-slider-prev {
    left: 0;
    background-image: linear-gradient(90deg, rgba(10, 18, 28, 0), rgba(10, 18, 28, 0));
}

.md-slider-next {
    right: 0;
    background-image: linear-gradient(270deg, rgba(10, 18, 28, 0), rgba(10, 18, 28, 0));
}

.md-slider-arrow:hover,
.md-slider-arrow:focus-visible { opacity: 1; }

.md-slider-prev:hover {
    background-image: linear-gradient(90deg, rgba(10, 18, 28, .35), rgba(10, 18, 28, 0));
}

.md-slider-next:hover {
    background-image: linear-gradient(270deg, rgba(10, 18, 28, .35), rgba(10, 18, 28, 0));
}

/* Com a faixa cobrindo a altura toda, é o bloco de texto que sobe acima
   dela — senão clicar no título avançaria o carrossel. Só o texto sobe; o
   .md-slide continua sem z-index, porque empilhá-lo escondia as setas e os
   pontinhos. */
.md-slide-body { z-index: 6; }

/* Centralizados em qualquer largura — inclusive no desktop, onde antes
   ficavam encostados à direita. Área de toque de 24px, ponto visível menor. */
.md-slider-dots {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 10px;
    display: flex;
    justify-content: center;
    gap: 4px;
    /* Acima do bloco de texto (z-index 6), que cobre a faixa de baixo. */
    z-index: 7;
}

.md-slider-dot {
    width: 24px; height: 24px;
    border-radius: 50%;
    border: 0;
    padding: 0;
    background: transparent;
    cursor: pointer;
    position: relative;
}

/* Branco quase cheio e com sombra: sobre foto clara o ponto a 50% sumia. */
.md-slider-dot::after {
    content: "";
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    width: 9px; height: 9px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .9);
    box-shadow: 0 1px 4px rgba(10, 18, 28, .7);
    transition: background .2s ease, width .2s ease, height .2s ease;
}

.md-slider-dot.is-active::after {
    background: var(--md-accent);
    width: 12px; height: 12px;
}

/* Sem JS: mostra todos os slides empilhados em vez de uma caixa vazia. */
.no-js .md-slide { position: relative; opacity: 1; visibility: visible; }
.no-js .md-slider-track { height: auto; }
.no-js .md-slider-arrow,
.no-js .md-slider-dots { display: none; }

/* ==========================================================================
   5. Grid da home
   ========================================================================== */

.md-main { padding: 36px 0 56px; }

/* Base (celular): tudo em uma coluna, conteúdo primeiro e as laterais
   descendo em ordem útil. As colunas laterais voltam nos @media do fim. */
.md-home-grid,
.md-content-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 30px;
    align-items: start;
}

.md-home-main { order: 1; }
.md-col-categories { order: 2; }
.md-col-mostread { order: 3; }

/* ---- "Escolha um assunto": cartões largos, um por categoria ------------- */

.md-assuntos-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
}

.md-assunto {
    position: relative;
    display: block;
    overflow: hidden;
    /* Imagem não arredonda em lugar nenhum do tema. */
    border-radius: 0;
    /* Faixa larga e baixa: o nome é o conteúdo, a foto é o clima. */
    aspect-ratio: 3 / 1;
    background: var(--md-primary-dark);
    color: #fff;
    text-decoration: none;
}

.md-assunto-media { position: absolute; inset: 0; }

.md-assunto-media img,
.md-assunto-media svg {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .65s cubic-bezier(.2, .7, .3, 1), filter .4s ease;
}

.md-assunto:hover .md-assunto-media img,
.md-assunto:focus-visible .md-assunto-media img {
    transform: scale(1.07);
    filter: saturate(1.1) brightness(1.05);
}

.md-assunto-nome { transition: transform .4s cubic-bezier(.2, .7, .3, 1); }

.md-assunto:hover .md-assunto-nome,
.md-assunto:focus-visible .md-assunto-nome { transform: translateX(3px); }

/* Poça de sombra só no canto de baixo à esquerda, onde o nome se apoia. Os
   dois degradês anteriores cobriam a largura e a altura inteiras e deixavam
   as seis fotos apagadas; o contraste que falta vem do halo no próprio
   texto, não de mais véu. */
.md-assunto-veil {
    position: absolute;
    inset: 0;
    background: radial-gradient(
        ellipse 78% 135% at 0% 106%,
        rgba(10, 17, 26, .76) 0%,
        rgba(10, 17, 26, .40) 42%,
        rgba(10, 17, 26, .12) 68%,
        rgba(10, 17, 26, 0) 84%);
}

.md-assunto-nome {
    position: absolute;
    left: 18px; right: 18px; bottom: 13px;
    z-index: 2;
    font-family: var(--md-sans);
    font-size: 1.18rem;
    font-weight: 600;
    line-height: 1.25;
    color: #fff;
    /* Halo em volta da letra: é ele que garante a leitura agora que o véu
       ficou restrito ao canto. */
    text-shadow:
        0 0 3px rgba(8, 14, 22, .95),
        0 1px 2px rgba(8, 14, 22, .95),
        0 0 14px rgba(8, 14, 22, .85);
}

.md-assunto:hover .md-assunto-nome,
.md-assunto:focus-visible .md-assunto-nome { text-decoration: underline; }

/* ---- Blocos empilhados da home (Destaques / Mais lidos / Últimas) ------- */

.md-bloco { margin-bottom: 42px; }
.md-bloco:last-child { margin-bottom: 0; }

.md-tile-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
}

/* No celular a lista abre com 3; do 4º em diante fica escondido até o
   "Ver mais" revelar. No desktop (861px+) todos aparecem de saída. */
.md-tile-grid[data-limite-celular] > .md-tile:nth-child(n+4):not(.md-revelado) {
    display: none;
}

.md-tile {
    position: relative;
    overflow: hidden;
    /* Imagem não arredonda em lugar nenhum do tema. */
    border-radius: 0;
    background: var(--md-primary-dark);
}

.md-tile-link {
    display: block;
    position: relative;
    /* Quadrada, como pedido — a foto é recortada para caber. */
    aspect-ratio: 1 / 1;
    color: #fff;
    text-decoration: none;
}

.md-tile-link:hover { text-decoration: none; }

.md-tile-media { position: absolute; inset: 0; }

.md-tile-media img,
.md-tile-media svg {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    /* Curva com desaceleração longa: o zoom "assenta" em vez de estancar. */
    transition: transform .65s cubic-bezier(.2, .7, .3, 1), filter .4s ease;
}

.md-tile-link:hover .md-tile-media img,
.md-tile-link:focus-visible .md-tile-media img {
    transform: scale(1.07);
    filter: saturate(1.1) brightness(1.05);
}

.md-tile-veil,
.md-tile-body { transition: opacity .4s ease, transform .4s cubic-bezier(.2, .7, .3, 1); }

/* O véu adensa e o texto sobe um fio: o cartão "acorda" sem pular. */
.md-tile-link:hover .md-tile-veil,
.md-tile-link:focus-visible .md-tile-veil { opacity: .94; }

.md-tile-link:hover .md-tile-body,
.md-tile-link:focus-visible .md-tile-body { transform: translateY(-5px); }

.md-tile-link:hover .md-tile-title,
.md-tile-link:focus-visible .md-tile-title {
    text-decoration: underline;
    text-decoration-color: var(--md-accent);
    text-decoration-thickness: 2px;
    text-underline-offset: 4px;
}

/* Degradê transparente sobre a própria foto: forte embaixo, sumindo para
   cima. É a única camada de contraste — nada de barra sólida atrás do texto.
   As paradas intermediárias evitam a "costura" visível que um degradê de
   dois pontos deixa no meio da imagem. */
.md-tile-veil {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg,
        rgba(18, 29, 42, 0)    28%,
        rgba(18, 29, 42, .12)  48%,
        rgba(18, 29, 42, .28)  66%,
        rgba(18, 29, 42, .46)  84%,
        rgba(18, 29, 42, .56) 100%);
    pointer-events: none;
}

/* Selo vazado: borda dourada, texto branco, fundo transparente. O desfoque
   com escurecimento é o que segura a leitura quando a foto atrás é clara ou
   puxa para o mesmo dourado da borda. */
/* Mesma marcação do "ASSUNTO" no cabeçalho da categoria: dourado em caixa
   alta, sem caixa nem borda. A sombra dupla é o que segura a leitura sobre
   foto clara. */
/* Na linha da meta, no lugar que era da data. */
.md-tile-cat {
    background: transparent;
    border: 0;
    padding: 0;
    /* Dourado mais claro que o da marca: o #c8a24a some em foto quente,
       como a do pôr do sol e a da bússola de cobre. */
    color: #f0cd83;
    font-family: var(--md-sans);
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    /* Halo escuro em volta da letra, não só uma sombra deslocada: é o que
       segura o contraste sobre fundo claro em qualquer direção. */
    text-shadow:
        0 0 3px rgba(8, 14, 22, .95),
        0 1px 2px rgba(8, 14, 22, .95),
        0 0 12px rgba(8, 14, 22, .85),
        0 2px 18px rgba(8, 14, 22, .7);
}

/* Sem backdrop-filter, um véu escuro discreto cumpre o mesmo papel. */
@supports not ((backdrop-filter: blur(2px)) or (-webkit-backdrop-filter: blur(2px))) {
    .md-tile-cat { background: rgba(14, 24, 36, .38); }
}

/* Véu próprio do bloco de texto, com forma: firme na altura da categoria,
   aliviado no miolo do título e firme de novo no rodapé. Começa em zero no
   topo, então não há linha marcando onde ele entra. */
.md-tile-body {
    position: absolute;
    left: 0; right: 0; bottom: 0;
    padding: 16px 16px 16px;
    z-index: 2;
    background: linear-gradient(180deg,
        rgba(12, 20, 30, 0)    0%,
        rgba(12, 20, 30, .52) 16%,
        rgba(12, 20, 30, .36) 46%,
        rgba(12, 20, 30, .58) 78%,
        rgba(12, 20, 30, .72) 100%);
}

.md-tile-title {
    margin: 0 0 4px;
    color: #fff;
    font-size: 1.08rem;
    line-height: 1.35;
    /* Peso menor que o padrão dos títulos: em serifada branca sobre foto,
       700 engrossa e serrilha. A sombra difusa faz o papel do contraste
       que a barra sólida fazia antes. */
    font-weight: 600;
    letter-spacing: .002em;
    text-shadow: 0 1px 2px rgba(10, 18, 28, .55), 0 2px 14px rgba(10, 18, 28, .5);
}

.md-tile-meta {
    margin: 0;
    font-size: .78rem;
    font-weight: 400;
    color: rgba(255, 255, 255, .86);
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
    text-shadow: 0 1px 2px rgba(10, 18, 28, .55), 0 2px 10px rgba(10, 18, 28, .45);
}

.md-tile-sep { opacity: .6; }


/* ---- Cartão deitado: foto à esquerda, texto à direita ------------------- */

.md-hcard-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
}

.md-hcard { min-width: 0; }

.md-hcard-link {
    display: grid;
    /* Foto em largura fixa: com fração, título longo encolhe a imagem e a
       fileira perde o alinhamento. */
    grid-template-columns: 108px minmax(0, 1fr);
    gap: 14px;
    align-items: stretch;
    color: inherit;
    text-decoration: none;
}

.md-hcard-link:hover { text-decoration: none; }

.md-hcard-media {
    display: block;
    overflow: hidden;
    aspect-ratio: 1 / 1;
    background: var(--md-soft);
}

.md-hcard-media img,
.md-hcard-media svg {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .65s cubic-bezier(.2, .7, .3, 1), filter .4s ease;
}

.md-hcard-link:hover .md-hcard-media img,
.md-hcard-link:focus-visible .md-hcard-media img {
    transform: scale(1.07);
    filter: saturate(1.1) brightness(1.05);
}

.md-hcard-body {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
}

/* Sobre fundo branco o dourado da marca fica lavado; este puxa mais para o
   âmbar e se sustenta como etiqueta. */
.md-hcard-cat {
    display: block;
    margin-bottom: 5px;
    color: #b8860f;
    font-size: .88rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.md-hcard-title {
    display: block;
    font-family: var(--md-titulo);
    font-weight: 600;
    font-size: 1.02rem;
    line-height: 1.35;
    letter-spacing: -.012em;
    color: var(--md-ink);
    margin-bottom: 6px;
}

.md-hcard-link:hover .md-hcard-title,
.md-hcard-link:focus-visible .md-hcard-title {
    text-decoration: underline;
    text-decoration-color: var(--md-accent);
    text-decoration-thickness: 2px;
    text-underline-offset: 4px;
}

.md-hcard-meta {
    display: block;
    font-size: .78rem;
    color: var(--md-muted);
}

/* ---- Cabeçalho da página de categoria ---------------------------------- */

.md-cat-hero {
    position: relative;
    overflow: hidden;
    background: var(--md-primary-dark);
    display: flex;
    align-items: flex-end;
    min-height: 230px;
    margin-bottom: 30px;
}

/* O cabeçalho ilustrado encosta no menu: o respiro de topo do <main>
   deixava uma faixa branca entre os dois. */
.md-main > .md-cat-hero:first-child { margin-top: -36px; }

.md-cat-hero-media { position: absolute; inset: 0; }

.md-cat-hero-media img,
.md-cat-hero-media svg {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.md-cat-hero-veil {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(18, 29, 42, .88) 0%, rgba(18, 29, 42, .45) 60%, rgba(18, 29, 42, .2) 100%),
        linear-gradient(0deg, rgba(18, 29, 42, .8) 0%, rgba(18, 29, 42, 0) 70%);
}

.md-cat-hero-body {
    position: relative;
    z-index: 2;
    width: 100%;
    padding-top: 34px;
    padding-bottom: 26px;
    color: #fff;
}

.md-cat-hero-olho {
    margin: 0 0 6px;
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--md-accent);
}

.md-cat-hero-titulo {
    margin: 0 0 10px;
    color: #fff;
    font-size: 1.9rem;
    line-height: 1.15;
    text-shadow: 0 2px 14px rgba(10, 18, 28, .5);
}

.md-cat-hero-texto {
    margin: 0 0 10px;
    max-width: 60ch;
    color: rgba(255, 255, 255, .9);
    font-size: 1rem;
    text-shadow: 0 1px 8px rgba(10, 18, 28, .5);
}

.md-cat-hero-conta {
    margin: 0;
    font-size: .82rem;
    color: rgba(255, 255, 255, .72);
}

/* ---- Versículo do dia --------------------------------------------------- */

.md-versiculo-palco {
    /* Altura mínima evita o bloco pular de tamanho ao trocar de dia. */
    min-height: 150px;
    display: flex;
    align-items: center;
}

/* A barra abraça o bloco inteiro — aspa, referência e texto —, não só a
   citação: com o filete apenas no blockquote, o topo ficava solto fora dele. */
.md-versiculo-item {
    margin: 0;
    width: 100%;
    padding-left: 20px;
    border-left: 12px solid #e9e5df;
}

.md-versiculo-item[hidden] { display: none; }

.md-versiculo-texto {
    margin: 0;
    padding: 0;
    font-family: var(--md-serif);
    font-size: 1.2rem;
    line-height: 1.55;
    color: var(--md-ink);
    font-style: italic;
}

/* Linha de topo: aspa à esquerda, referência à direita, na mesma linha. */
.md-versiculo-ref {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    /* A aspa tem line-height zero, então a folga precisa vir daqui: sem ela
       a tinta da aspa quase encosta na primeira linha do versículo. */
    margin-bottom: 16px;
    font-size: .82rem;
    font-weight: 600;
    letter-spacing: .04em;
    color: var(--md-muted);
    text-transform: uppercase;
}

/* A aspa desenha só perto do topo da caixa da fonte. Com line-height 0 a
   caixa some e sobra a tinta, que o translate desce até a altura do texto
   ao lado — assim os dois ficam de fato na mesma linha, sem esticar a
   altura da fileira. */
.md-versiculo-aspa {
    flex: none;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 3.4rem;
    line-height: 0;
    color: #ddd8d1;
    text-transform: none;
    transform: translateY(.33em);
}

.md-versiculo-fonte { text-align: right; }

/* Sigla logo depois da referência, na mesma linha. */
.md-versiculo-versao {
    margin-left: 6px;
    font-size: .74rem;
    font-weight: 400;
    letter-spacing: .04em;
    color: #9aa3ad;
    cursor: help;
}

.md-versiculo-versao::before { content: "· "; }

.md-versiculo-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: 14px;
    padding-top: 8px;
    border-top: 1px solid var(--md-line);
}

.md-versiculo-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: 0;
    padding: 0;
    color: var(--md-primary);
    font-size: 1.95rem;
    line-height: 1;
    /* Alvo de toque confortável. */
    width: 40px; height: 34px;
    cursor: pointer;
    transition: color .2s ease, opacity .2s ease;
}

.md-versiculo-btn:hover { color: var(--md-accent); }
.md-versiculo-btn[disabled] { opacity: .3; cursor: default; }
.md-versiculo-btn[disabled]:hover { color: var(--md-primary); }

/* A data ocupa o vão e se centraliza sozinha, na mesma altura das setas. */
.md-versiculo-data {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 34px;
    font-size: .86rem;
    font-weight: 600;
    color: var(--md-body);
    font-variant-numeric: tabular-nums;
}

/* Sem JS as setas não fazem nada; fica o versículo de hoje. */
.no-js .md-versiculo-nav { display: none; }

/* ---- Formulários da coluna lateral (cadastro e contato) ---------------- */

/* ---- Coluna lateral da home: sem moldura ------------------------------- */

/* Cinco caixas empilhadas, cada uma com fundo, borda e canto arredondado,
   pesavam mais que o conteúdo. Aqui elas viram seções separadas por um fio,
   sobre o mesmo branco da página. */
/* Nada de linha separando os blocos: a régua sob cada título já marca onde
   um começa, e o espaço entre eles faz o resto. */
.md-home-grid .md-col-categories .md-widget {
    background: transparent;
    border: 0;
    border-radius: 0;
    padding: 0;
    margin-bottom: 0;
}

/* Respiro entre um bloco e o seguinte. */
.md-home-grid .md-col-categories .md-widget + .md-widget { padding-top: 22px; }

/* Sem a moldura, o título é o que ancora cada bloco. Usa a mesma régua dos
   títulos de seção do conteúdo — linha cinza inteira com um trecho dourado
   no começo — para as duas colunas conversarem. */
.md-home-grid .md-col-categories .md-widget-title {
    position: relative;
    font-family: var(--md-titulo);
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: .1em;
    color: var(--md-ink);
    padding-bottom: 10px;
    margin-bottom: 18px;
    border-bottom: 3px solid var(--md-line);
}

.md-home-grid .md-col-categories .md-widget-title::after {
    content: "";
    position: absolute;
    left: 0; bottom: -3px;
    width: 60px; height: 3px;
    background: var(--md-accent);
}

/* Título segue o padrão dos demais boxes da coluna; só o subtítulo é mais
   leve, para não competir com ele. */
.md-widget-sub {
    margin: -4px 0 14px;
    font-size: .88rem;
    line-height: 1.55;
    color: var(--md-body);
}

.md-campo { margin: 0 0 12px; }

/* Rótulo que só o leitor de tela vê: some da tela sem sumir da árvore de
   acessibilidade, como display:none faria. */
.md-so-leitor {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.md-campo label {
    display: block;
    margin-bottom: 4px;
    font-size: .78rem;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--md-body);
}

.md-campo-opcional {
    font-weight: 400;
    text-transform: none;
    letter-spacing: 0;
    color: var(--md-muted);
}

.md-campo input,
.md-campo textarea {
    width: 100%;
    padding: 9px 12px;
    border: 1px solid var(--md-line-campo);
    border-radius: 6px;
    background: #fff;
    font-family: inherit;
    font-size: .92rem;
    color: var(--md-ink);
}

/* Começa com a altura de uma linha e cresce com o texto (o JS ajusta a
   altura). overflow:hidden evita a barra de rolagem piscar a cada tecla. */
.md-campo textarea {
    resize: none;
    min-height: 44px;
    overflow: hidden;
    transition: height .12s ease, min-height .12s ease;
}

/* Ao receber o foco o campo abre para duas linhas, mesmo vazio: convida a
   escrever mais de uma frase. A partir daí o JS acompanha o conteúdo. */
.md-campo textarea:focus { min-height: 68px; }

/* Sem JS o campo não cresce sozinho; aí vale a altura fixa e o arraste. */
.no-js .md-campo textarea { resize: vertical; min-height: 96px; overflow: auto; }

.md-campo input:focus,
.md-campo textarea:focus {
    outline: 2px solid var(--md-accent);
    outline-offset: 1px;
    border-color: var(--md-accent);
}

.md-campo input[disabled] {
    background: var(--md-soft);
    color: var(--md-muted);
    cursor: not-allowed;
}

.md-check {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: -4px 0 14px;
    font-size: .88rem;
    color: var(--md-body);
}

.md-check input { width: 16px; height: 16px; flex: none; accent-color: var(--md-primary); }
.md-check label { cursor: pointer; }

/* Isca antirrobô: fora da tela, mas não display:none — alguns robôs pulam
   campo escondido dessa forma. */
.md-isca {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.md-form-btn {
    width: 100%;
    padding: 11px 16px;
    border: 0;
    border-radius: 6px;
    background: var(--md-primary);
    color: #fff;
    font-family: inherit;
    font-size: .9rem;
    font-weight: 600;
    letter-spacing: .03em;
    cursor: pointer;
    transition: background .2s ease;
}

.md-form-btn:hover { background: var(--md-primary-dark); }
.md-form-btn[disabled] { opacity: .6; cursor: default; }

.md-form-aviso {
    margin: 10px 0 0;
    font-size: .86rem;
    line-height: 1.45;
}

.md-form-aviso.is-ok { color: #1f6b45; }
.md-form-aviso.is-erro { color: #9a2b2b; }

/* ---- Formulário em passos --------------------------------------------- */

/* Sem indicador de progresso: numa caixa pequena da lateral, a barra pesava
   mais que o próprio formulário. */

.md-passo[hidden] { display: none; }

.md-passo-nav {
    display: flex;
    align-items: center;
    gap: 10px;
}

/* O botão de avançar (ou o de enviar) ocupa o resto da linha. */
.md-passo-nav .md-passo-avancar,
.md-passo-nav .md-form-btn { flex: 1 1 auto; }

/* Sem caixa nem borda: "Continuar" e "Voltar" são só texto. O botão cheio
   fica reservado para o que de fato envia, no último passo. */
.md-passo-avancar,
.md-passo-voltar {
    padding: 10px 2px;
    border: 0;
    border-radius: 0;
    background: transparent;
    font-family: inherit;
    font-size: .88rem;
    cursor: pointer;
    transition: color .2s ease;
}

.md-passo-avancar {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    color: var(--md-primary);
    font-weight: 600;
}

/* Seta com folga, mas alinhada ao rótulo: o line-height baixo impede que o
   corpo maior estique o botão, e o translate compensa o desenho do glifo,
   que nasce acima da linha de base. */
.md-passo-avancar::after {
    content: "\203A";
    font-size: 2.1em;
    line-height: .6;
    font-weight: 400;
    transform: translateY(-2px);
}

.md-passo-avancar:hover { color: var(--md-accent); }

.md-passo-voltar {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    flex: none;
    color: var(--md-muted);
}

.md-passo-voltar::before {
    content: "\2039";
    font-size: 2.1em;
    line-height: .6;
    transform: translateY(-2px);
}

.md-passo-voltar:hover { color: var(--md-primary); }
.md-passo-voltar[hidden],
.md-passo-avancar[hidden],
.md-passo-nav .md-form-btn[hidden] { display: none; }

/* ---- Botão "Ver mais" -------------------------------------------------- */

.md-more-wrap { margin-top: 20px; text-align: center; }

/* Sem borda e sem caixa: só o rótulo e a seta para baixo. */
.md-more {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: transparent;
    border: 0;
    padding: 8px 4px;
    color: var(--md-muted);
    font-family: var(--md-sans);
    font-size: .86rem;
    font-weight: 500;
    letter-spacing: .06em;
    text-transform: uppercase;
    cursor: pointer;
    transition: color .2s ease;
}

.md-more:hover,
.md-more:focus-visible {
    color: var(--md-primary);
    text-decoration: none;
}

.md-more-icone {
    width: 16px; height: 16px;
    flex: none;
    transition: transform .2s ease;
}

.md-more:hover .md-more-icone { transform: translateY(2px); }

.md-more[disabled] { opacity: .55; cursor: default; }
.md-more[disabled]:hover { color: var(--md-muted); }
.md-more[disabled] .md-more-icone { transform: none; }

/* Barra lateral que agrupa mais de um bloco (categoria, post, busca). */
.md-sidebar { display: grid; gap: 28px; align-items: start; }

.md-section-title {
    font-size: 1.15rem;
    text-transform: uppercase;
    letter-spacing: .07em;
    padding-bottom: 10px;
    margin-bottom: 20px;
    border-bottom: 2px solid var(--md-line);
    position: relative;
}

.md-section-title::after {
    content: "";
    position: absolute;
    left: 0; bottom: -2px;
    width: 60px; height: 2px;
    background: var(--md-accent);
}

/* ==========================================================================
   6. Cartões de post
   ========================================================================== */

.md-card-list { display: grid; gap: 26px; }

.md-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
    padding-bottom: 24px;
    border-bottom: 1px solid var(--md-line);
}

.md-card:last-child { border-bottom: 0; padding-bottom: 0; }

.md-card-thumb {
    display: block;
    border-radius: 0;
    overflow: hidden;
    background: var(--md-soft);
    aspect-ratio: 16 / 9;
}

.md-card-thumb img {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform .35s ease;
}

.md-card:hover .md-card-thumb img { transform: scale(1.04); }

.md-card-title { font-size: 1.28rem; margin: 0 0 8px; }

.md-card-excerpt { margin: 0 0 10px; font-size: .96rem; color: var(--md-body); }

.md-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 14px;
    align-items: center;
    font-size: .82rem;
    color: var(--md-muted);
}

.md-meta a { color: var(--md-muted); }
.md-meta a:hover { color: var(--md-accent); }

.md-cat-tag {
    display: inline-block;
    background: var(--md-accent-soft);
    color: var(--md-primary-dark);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    padding: 4px 10px;
    border-radius: 4px;
    margin-bottom: 8px;
}

.md-cat-tag:hover { background: var(--md-accent); color: #fff; text-decoration: none; }

/* Card em destaque (topo da categoria) */
.md-featured {
    background: var(--md-soft);
    border: 1px solid var(--md-line);
    /* A foto ocupa a borda do bloco: arredondar aqui arredonda a imagem. */
    border-radius: 0;
    overflow: hidden;
    margin-bottom: 30px;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
}

.md-featured-media { display: block; background: var(--md-primary-dark); aspect-ratio: 16 / 9; }
.md-featured-media img { width: 100%; height: 100%; object-fit: cover; }

.md-featured-body { padding: 20px 18px; align-self: center; }

.md-featured-flag {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    background: var(--md-primary);
    color: #fff;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    padding: 5px 12px;
    border-radius: 100px;
    margin-bottom: 14px;
}

.md-featured-title { font-size: 1.35rem; margin: 0 0 10px; }

/* ==========================================================================
   7. Colunas laterais
   ========================================================================== */

.md-col { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; }

.md-widget {
    background: var(--md-soft);
    border: 1px solid var(--md-line);
    border-radius: var(--md-radius);
    padding: 20px;
}

.md-widget-title {
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: .07em;
    margin: 0 0 16px;
    padding-bottom: 10px;
    border-bottom: 2px solid var(--md-accent);
}

.md-cat-list { list-style: none; margin: 0; padding: 0; }

.md-cat-list li { border-bottom: 1px solid var(--md-line); }
.md-cat-list li:last-child { border-bottom: 0; }

.md-cat-list a {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    padding: 9px 0;
    font-size: .94rem;
    font-weight: 600;
    color: var(--md-ink);
}

.md-cat-list a:hover { color: var(--md-accent); text-decoration: none; }

.md-cat-list .md-count {
    background: #fff;
    border: 1px solid var(--md-line);
    color: var(--md-muted);
    font-size: .74rem;
    font-weight: 700;
    padding: 1px 8px;
    border-radius: 100px;
    flex: none;
}

.md-cat-list .is-current > a { color: var(--md-accent); }

/* Lista de mais lidos */
.md-rank-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; }

.md-rank-item { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 12px; align-items: start; }

.md-rank-num {
    font-family: var(--md-titulo);
    font-size: 1.35rem;
    font-weight: 600;
    color: var(--md-accent);
    line-height: 1.25;
    text-align: center;
    font-variant-numeric: tabular-nums;
}

/* Sem font-family aqui: a regra do topo do arquivo já põe a humanista nos
   títulos de artigo. Repetir a serifada era o que deixava este bloco com
   peso diferente do resto da página. */
.md-rank-title {
    font-size: .98rem;
    line-height: 1.4;
    margin: 0 0 3px;
}

.md-rank-title a { color: var(--md-ink); }
.md-rank-title a:hover { color: var(--md-accent); text-decoration: none; }

.md-rank-meta { font-size: .78rem; color: var(--md-muted); }

/* ==========================================================================
   8. Busca
   ========================================================================== */

.md-search-form { display: flex; gap: 0; }

.md-search-form input[type="search"] {
    flex: 1 1 auto;
    min-width: 0;
    border: 1px solid var(--md-line-campo);
    border-right: 0;
    border-radius: 6px 0 0 6px;
    padding: 11px 13px;
    font-size: .94rem;
    font-family: inherit;
    color: var(--md-ink);
    background: #fff;
}

.md-search-form input[type="search"]:focus {
    outline: 0;
    border-color: var(--md-accent);
    box-shadow: 0 0 0 3px rgba(200, 162, 74, .22);
}

.md-search-form button {
    flex: none;
    border: 0;
    background: var(--md-primary);
    color: #fff;
    padding: 0 18px;
    border-radius: 0 6px 6px 0;
    font-size: .94rem;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    transition: background .2s ease;
}

.md-search-form button:hover { background: var(--md-accent); }

.md-search-scope {
    margin: 10px 0 0;
    font-size: .8rem;
    color: var(--md-muted);
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.md-search-scope a { color: var(--md-primary); font-weight: 600; }

.md-search-header {
    background: var(--md-soft);
    border: 1px solid var(--md-line);
    border-radius: var(--md-radius);
    padding: 24px 26px;
    margin-bottom: 30px;
}

.md-search-header h1 { margin: 0 0 6px; font-size: 1.6rem; }
.md-search-header p { margin: 0; color: var(--md-muted); font-size: .92rem; }
.md-search-header .md-search-form { margin-top: 16px; max-width: 520px; }

.md-no-results {
    background: var(--md-soft);
    border: 1px dashed var(--md-line);
    border-radius: var(--md-radius);
    padding: 34px 28px;
    text-align: center;
}

/* ==========================================================================
   9. Página do post
   ========================================================================== */

.md-breadcrumb {
    font-size: .82rem;
    color: var(--md-muted);
    margin-bottom: 18px;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.md-breadcrumb a { color: var(--md-muted); }
.md-breadcrumb a:hover { color: var(--md-accent); }
.md-breadcrumb .sep { opacity: .5; }

.md-entry-header { margin-bottom: 24px; }

.md-entry-title { font-size: 1.75rem; margin: 0 0 12px; letter-spacing: -.01em; }

.md-entry-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 20px;
    align-items: center;
    font-size: .86rem;
    color: var(--md-muted);
    padding-bottom: 18px;
    border-bottom: 1px solid var(--md-line);
}

/* Cada item vira ícone + rótulo na mesma linha. */
.md-entry-meta > * {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

/* Herda a cor do texto ao lado; o dourado marca sem gritar. */
.md-icone {
    width: 15px;
    height: 15px;
    flex: none;
    color: var(--md-accent);
}

.md-entry-thumb {
    margin: 0 0 26px;
    border-radius: 0;
    overflow: hidden;
}

.md-entry-thumb figcaption {
    font-size: .8rem;
    color: var(--md-muted);
    padding: 8px 2px 0;
}

.md-entry-content { font-size: 1.05rem; line-height: 1.75; }

.md-entry-content h2 { margin-top: 1.6em; font-size: 1.35rem; }
.md-entry-content h3 { margin-top: 1.4em; font-size: 1.15rem; }

.md-entry-content img,
.md-entry-content figure { margin: 1.6em 0; border-radius: 8px; }

.md-entry-content blockquote {
    margin: 1.6em 0;
    /* Recuo menor no celular: 24px comem largura demais em 360px. */
    padding: 4px 0 4px 16px;
    border-left: 4px solid var(--md-accent);
    font-family: var(--md-serif);
    font-size: 1.05rem;
    font-style: italic;
    color: var(--md-ink);
}

.md-entry-content blockquote p:last-child { margin-bottom: 0; }

.md-entry-content ul, .md-entry-content ol { padding-left: 1.3em; margin-bottom: 1.3em; }
.md-entry-content li { margin-bottom: .5em; }

.md-entry-content a { text-decoration: underline; text-underline-offset: 2px; }

.md-entry-content table { width: 100%; border-collapse: collapse; margin: 1.5em 0; }
.md-entry-content th, .md-entry-content td { border: 1px solid var(--md-line); padding: 10px 12px; text-align: left; }
.md-entry-content th { background: var(--md-soft); }

/* Roteiro de estudo: marcações de condução (quem fala, quanto dura) */
.md-cue {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin: 0 0 16px;
    padding: 0;
    list-style: none;
}

.md-cue span {
    background: var(--md-soft);
    border: 1px solid var(--md-line);
    border-radius: 100px;
    padding: 3px 12px;
    font-size: .76rem;
    font-weight: 700;
    color: var(--md-muted);
    letter-spacing: .01em;
    white-space: nowrap;
}

/* Citação bíblica com referência */
.md-entry-content blockquote.md-verse { font-style: normal; font-size: 1.05rem; }

.md-entry-content blockquote.md-verse sup {
    color: var(--md-accent);
    font-weight: 700;
    margin-right: 2px;
}

.md-entry-content blockquote.md-verse cite {
    display: block;
    margin-top: 10px;
    font-family: var(--md-sans);
    font-style: normal;
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--md-primary);
}

/* Abertura de seção do roteiro */
.md-entry-content .md-lead {
    font-size: 1.16rem;
    color: var(--md-ink);
    font-family: var(--md-serif);
}

/* Instrução dirigida a quem conduz o estudo */
.md-entry-content .md-note {
    background: var(--md-accent-soft);
    border-left: 3px solid var(--md-accent);
    border-radius: 0 6px 6px 0;
    padding: 10px 16px;
    font-size: .93rem;
    color: var(--md-ink);
}

.md-entry-content .md-part {
    margin-top: 2em;
    padding: 14px 20px;
    background: var(--md-primary);
    color: #fff;
    border-radius: var(--md-radius);
    font-size: 1.35rem;
}

.md-entry-footer {
    margin-top: 34px;
    padding-top: 22px;
    border-top: 1px solid var(--md-line);
}

.md-tags { display: flex; flex-wrap: wrap; gap: 8px; }

.md-tags a {
    font-size: .8rem;
    background: var(--md-soft);
    border: 1px solid var(--md-line);
    border-radius: 100px;
    padding: 4px 12px;
    color: var(--md-body);
}

.md-tags a:hover { background: var(--md-accent); color: #fff; border-color: var(--md-accent); text-decoration: none; }

.md-post-nav {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
    margin-top: 30px;
}

.md-post-nav a {
    display: block;
    background: var(--md-soft);
    border: 1px solid var(--md-line);
    border-radius: var(--md-radius);
    padding: 16px 18px;
}

.md-post-nav a:hover { border-color: var(--md-accent); text-decoration: none; }
.md-post-nav .label { display: block; font-size: .74rem; text-transform: uppercase; letter-spacing: .08em; color: var(--md-muted); margin-bottom: 6px; }
.md-post-nav .title { font-family: var(--md-serif); font-weight: 700; color: var(--md-ink); }
.md-post-nav .next { text-align: left; }

.md-related { margin-top: 44px; }

.md-related-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; }

.md-related-card .md-card-thumb { aspect-ratio: 16 / 10; margin-bottom: 10px; }
.md-related-card h3 { font-size: 1.02rem; margin: 0 0 6px; }

/* ==========================================================================
   9b. Comentários
   ========================================================================== */

.md-comments { margin-top: 48px; }

.md-comment-list { list-style: none; margin: 0 0 30px; padding: 0; }

.md-comment-list .comment-body {
    background: var(--md-soft);
    border: 1px solid var(--md-line);
    border-radius: var(--md-radius);
    padding: 18px 20px;
    margin-bottom: 16px;
}

.md-comment-list .children { list-style: none; margin: 0 0 0 26px; padding: 0; }
.md-comment-list .comment-meta { font-size: .82rem; color: var(--md-muted); margin-bottom: 8px; }
.md-comment-list .comment-author img { border-radius: 50%; display: inline-block; vertical-align: middle; margin-right: 8px; }
.md-comment-list .fn { font-style: normal; font-weight: 700; color: var(--md-ink); }

.md-comments .comment-form { display: grid; gap: 14px; max-width: 640px; }
.md-comments .comment-form label { font-size: .86rem; font-weight: 600; color: var(--md-ink); display: block; margin-bottom: 5px; }

.md-comments .comment-form input[type="text"],
.md-comments .comment-form input[type="email"],
.md-comments .comment-form input[type="url"],
.md-comments .comment-form textarea {
    width: 100%;
    border: 1px solid var(--md-line-campo);
    border-radius: 6px;
    padding: 11px 13px;
    font-family: inherit;
    font-size: .95rem;
    color: var(--md-ink);
    background: #fff;
}

.md-comments .comment-form textarea { min-height: 140px; resize: vertical; }

/* Nome e e-mail: empilhados no celular, lado a lado a partir de 600px. */
.md-comment-dupla {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0 18px;
}

.md-obrigatorio { color: var(--md-accent); }

/* O rótulo do "salvar meus dados" fica na mesma linha da caixa. */
.md-comments .comment-form-cookies-consent {
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 0 0 18px;
    font-size: .88rem;
    color: var(--md-body);
}

.md-comments .comment-form-cookies-consent input {
    width: 16px;
    height: 16px;
    flex: none;
    margin: 0;
    accent-color: var(--md-primary);
}

.md-comments .comment-form-cookies-consent label {
    margin: 0;
    cursor: pointer;
    line-height: 1.35;
}

.md-comments .comment-form input:focus,
.md-comments .comment-form textarea:focus {
    outline: 0;
    border-color: var(--md-accent);
    box-shadow: 0 0 0 3px rgba(200, 162, 74, .22);
}

.md-comments .form-submit input[type="submit"],
.md-comments .md-comment-submit {
    background: var(--md-primary);
    color: #fff;
    border: 0;
    border-radius: 6px;
    padding: 12px 26px;
    font-family: inherit;
    font-size: .95rem;
    font-weight: 600;
    cursor: pointer;
}

.md-comments .form-submit input[type="submit"]:hover { background: var(--md-accent); }

/* ==========================================================================
   10. Paginação
   ========================================================================== */

.md-pagination { margin-top: 38px; }

.md-pagination .nav-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
}

.md-pagination .page-numbers {
    display: inline-grid;
    place-items: center;
    min-width: 42px;
    height: 42px;
    padding: 0 12px;
    border: 1px solid var(--md-line);
    border-radius: 6px;
    background: #fff;
    color: var(--md-ink);
    font-weight: 600;
    font-size: .92rem;
}

.md-pagination .page-numbers:hover { border-color: var(--md-accent); color: var(--md-accent); text-decoration: none; }
.md-pagination .page-numbers.current { background: var(--md-primary); border-color: var(--md-primary); color: #fff; }
.md-pagination .page-numbers.dots { border-color: transparent; }

/* ==========================================================================
   11. Rodapé
   ========================================================================== */

.md-footer {
    background: var(--md-primary-dark);
    color: rgba(255, 255, 255, .78);
    margin-top: 20px;
    padding: 26px 0;
    font-size: .92rem;
    /* Espelha o filete dourado que fecha o cabeçalho: o conteúdo fica entre
       duas linhas iguais em vez de terminar no vazio. */
    border-top: 3px solid var(--md-accent);
}

.md-footer a { color: rgba(255, 255, 255, .9); }
.md-footer a:hover { color: var(--md-accent); }

.md-footer-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 26px;
    padding-bottom: 26px;
    border-bottom: 1px solid rgba(255, 255, 255, .14);
}

.md-footer h2 {
    color: #fff;
    font-size: .95rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    margin: 0 0 14px;
}

.md-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }

/* Sem colunas de links acima, a linha final é o rodapé inteiro. */
.md-footer-bottom {
    padding-top: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 10px 20px;
    justify-content: space-between;
    font-size: .84rem;
    color: rgba(255, 255, 255, .6);
}

/* ==========================================================================
   12. Responsivo
   ========================================================================== */

/* ---- 600px+: celular grande e phablet ---------------------------------- */
@media (min-width: 600px) {
    .md-slider-track { height: 380px; }
    .md-slide-body { padding: 24px 26px 46px; }
    .md-slide-title { font-size: 1.6rem; }

    .md-slider-arrow::before { font-size: 2.2rem; }

    .md-related-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

    .md-tile-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .md-assuntos-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

    /* Nome e e-mail dividem a linha; sozinhos ocupavam a largura toda para
       guardar meia dúzia de caracteres. */
    .md-comment-dupla { grid-template-columns: repeat(2, minmax(0, 1fr)); }

    .md-post-nav { grid-template-columns: 1fr 1fr; }
    .md-post-nav .next { text-align: right; }
}

/* ---- 861px+: tablet e desktop pequeno ---------------------------------- */
@media (min-width: 861px) {
    body { font-size: 17px; }

    h1 { font-size: 2.1rem; }
    h2 { font-size: 1.6rem; }
    h3 { font-size: 1.25rem; }

    .md-header-inner { flex-wrap: nowrap; gap: 24px; padding-top: 18px; padding-bottom: 18px; }

    .md-brand-logo img,
    .md-brand .custom-logo { height: 58px; }

    .md-nav-toggle { display: none; }
    .md-nav { flex-basis: auto; display: block; padding-bottom: 0; }
    .md-nav ul { flex-direction: row; flex-wrap: wrap; gap: 22px; }
    .md-nav li { border-top: 0; }
    .md-nav a { display: inline-block; width: auto; padding: 6px 0; font-size: .93rem; }

    .md-slider-track { height: 400px; }
    .md-slide-body { padding: 32px 40px 44px; }
    .md-slide-title { font-size: 2.1rem; }
    .md-slide-excerpt { display: block; }
    .md-slider-arrow::before { font-size: 3.2rem; }
    .md-slider-prev::before { left: 26px; }
    .md-slider-next::before { right: 26px; }
    .md-slider-dots { bottom: 14px; }

    .md-card { grid-template-columns: 220px minmax(0, 1fr); gap: 20px; padding-bottom: 26px; }
    .md-card-thumb { aspect-ratio: 3 / 2; }
    .md-card-title { font-size: 1.28rem; }

    .md-featured { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); }
    .md-featured-media { aspect-ratio: auto; min-height: 260px; }
    .md-featured-body { padding: 28px 30px; }
    .md-featured-title { font-size: 1.75rem; }

    .md-col { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
    .md-col-single { grid-template-columns: minmax(0, 1fr); }

    .md-related-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }

    .md-tile-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
    .md-tile-title { font-size: 1.14rem; }

    /* Desktop mostra os 6 de uma vez. O :not(.md-revelado) precisa estar
       aqui também: sem ele a regra base fica mais específica e vence mesmo
       dentro do media query. */
    .md-tile-grid[data-limite-celular] > .md-tile:nth-child(n+4):not(.md-revelado) { display: block; }

    /* Dois cartões deitados por linha. */
    .md-hcard-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 26px; }
    .md-hcard-link { grid-template-columns: 128px minmax(0, 1fr); gap: 16px; }

    .md-cat-hero { min-height: 300px; }
    .md-cat-hero-body { padding-top: 46px; padding-bottom: 34px; }
    .md-cat-hero-titulo { font-size: 2.5rem; }

    .md-assuntos-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
    .md-assunto-nome { font-size: 1.32rem; }

    .md-entry-title { font-size: 2.35rem; }
    .md-entry-content { font-size: 1.08rem; line-height: 1.8; }
    .md-entry-content h2 { font-size: 1.6rem; }
    .md-entry-content h3 { font-size: 1.3rem; }
    .md-entry-content blockquote { padding: 6px 0 6px 24px; font-size: 1.15rem; }
    .md-entry-content blockquote.md-verse { font-size: 1.05rem; }

    .md-footer-grid { grid-template-columns: 1.6fr 1fr 1fr; gap: 34px; padding-bottom: 30px; }
}

/* ---- 1081px+: desktop, com as duas colunas laterais -------------------- */
@media (min-width: 1081px) {
    /* Conteúdo à esquerda, busca e categorias à direita. A lateral perdeu a
       moldura, então é o vão que separa as duas colunas — 34px deixava os
       blocos parecendo parte da mesma lista. */
    .md-home-grid { grid-template-columns: minmax(0, 1fr) 300px; column-gap: 60px; row-gap: 34px; }
    .md-content-grid { grid-template-columns: minmax(0, 1fr) 300px; gap: 34px; }

    /* No desktop vale a ordem do HTML. */
    .md-home-main,
    .md-col-categories,
    .md-col-mostread { order: 0; }

    /* A coluna lateral acompanha a rolagem dos três blocos empilhados. */
    .md-home-grid .md-col-categories { position: sticky; top: 20px; }

    .md-tile-title { font-size: 1.04rem; }

    .md-col { grid-template-columns: minmax(0, 1fr); gap: 28px; }

    .md-slider-track { height: 460px; }
}

@media (prefers-reduced-motion: reduce) {
    * { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
