/*
Theme Name: Rota das Nações
Theme URI: https://rotadasnacoes.com
Description: Portal cristão internacional de mobilização missionária
Author: Rota das Nações
Template: kadence
Version: 1.0.0
Text Domain: kadence-child
*/

/* ============================================================
   DESIGN TOKENS — única fonte de verdade para cores e tipografia
   ============================================================ */
:root {
    --color-azul:   #13283E;
    --color-ouro:   #CE783B;
    --color-ambar:  #F2B776;
    --color-bege:   #FAF8F2;
    --color-oliva:  #556046;

    --font-titulo: 'Playfair Display', Georgia, serif;
    --font-corpo:  'Inter', 'DM Sans', system-ui, sans-serif;

    --container-max: 1200px;
    --container-pad: 1.5rem;

    --radius-card: 0.75rem;
    --shadow-card: 0 2px 12px rgba(19, 40, 62, 0.10);

    --transition-base: 0.2s ease;

    /* Tokens semânticos (claro = padrão). O tema escuro só remapeia estes,
       mantendo azul/bege fixos (usados como fundo escuro / texto claro). */
    --bg: var(--color-bege);       /* fundo da página */
    --surface: #ffffff;            /* fundo de cards */
    --surface-2: var(--color-bege);/* fundo de apoio (chips, listas) */
    --text: var(--color-azul);     /* texto principal */
    --text-soft: #5c6b78;          /* texto secundário */
    --border: rgba(19, 40, 62, 0.12);
    --panel-warm: #E7DCC6;         /* seção de destaque (tom quente) */
    --label-muted: var(--color-oliva); /* rótulos/etiquetas (oliva no claro) */
}

/* ============================================================
   TEMA ESCURO — remapeia apenas os tokens semânticos
   ============================================================ */
[data-theme="dark"] {
    --bg: #0d1825;
    --surface: #16273b;
    --surface-2: #1d2f46;
    --text: #e8edf2;
    --text-soft: #bccada;
    --border: rgba(255, 255, 255, 0.13);
    --shadow-card: 0 2px 16px rgba(0, 0, 0, 0.5);
    --color-ambar: #f4c089;
    --panel-warm: #1d2f46;
    --label-muted: #aebccb;        /* rótulos legíveis no escuro */
}

/* ============================================================
   RESET GLOBAL
   ============================================================ */
*, *::before, *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
    /* Trava qualquer deslizamento horizontal da página (sem afetar position:sticky,
       pois clip não cria contexto de rolagem como overflow:hidden faria). */
    overflow-x: clip;
}

body {
    background-color: var(--bg);
    color: var(--text);
    font-family: var(--font-corpo);
    font-size: 1rem;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    transition: background-color var(--transition-base), color var(--transition-base);
    overflow-x: clip;
    max-width: 100%;
    /* Quebra palavras/URLs longas para não empurrarem a largura no celular */
    overflow-wrap: break-word;
}

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

a {
    color: var(--color-ouro);
    text-decoration: none;
    transition: color var(--transition-base);
}

a:hover {
    color: var(--color-ambar);
}

ul {
    list-style: none;
}

/* ============================================================
   TIPOGRAFIA
   ============================================================ */
h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-titulo);
    line-height: 1.25;
    color: var(--text);
}

h1 { font-size: clamp(2rem, 5vw, 3.5rem); }
h2 { font-size: clamp(1.5rem, 3.5vw, 2.5rem); }
h3 { font-size: clamp(1.2rem, 2.5vw, 1.75rem); }
h4 { font-size: 1.25rem; }

p {
    margin-bottom: 1rem;
}

/* ============================================================
   LAYOUT UTILITÁRIOS
   ============================================================ */
.container {
    max-width: var(--container-max);
    margin-inline: auto;
    padding-inline: var(--container-pad);
}

.section-title {
    font-family: var(--font-titulo);
    color: var(--text);
    margin-bottom: 2rem;
    text-align: center;
}

.section-title--light {
    color: var(--color-bege);
}

.section-subtitle {
    text-align: center;
    max-width: 600px;
    margin: -1.5rem auto 2.5rem;
    color: var(--label-muted);
    opacity: 0.85;
    font-size: 1.05rem;
}

.section-title--light + .section-subtitle {
    color: var(--color-bege);
    opacity: 0.8;
}

/* ============================================================
   BOTÕES
   ============================================================ */
.btn-primary,
.btn-secondary {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1.75rem;
    border-radius: 2rem;
    font-family: var(--font-corpo);
    font-size: 0.95rem;
    font-weight: 600;
    cursor: pointer;
    border: 2px solid transparent;
    transition: background-color var(--transition-base),
                color var(--transition-base),
                border-color var(--transition-base);
    text-decoration: none;
    white-space: nowrap;
}

.btn-primary {
    background-color: var(--color-ouro);
    color: var(--color-bege);
    border-color: var(--color-ouro);
}

.btn-primary:hover {
    background-color: var(--color-ambar);
    border-color: var(--color-ambar);
    color: var(--text);
}

.btn-secondary {
    background-color: transparent;
    color: var(--color-bege);
    border-color: var(--color-bege);
}

.btn-secondary:hover {
    background-color: var(--surface-2);
    color: var(--text);
}

/* ============================================================
   CARDS
   ============================================================ */
.card {
    position: relative;
    background: var(--surface);
    border-radius: var(--radius-card);
    box-shadow: var(--shadow-card);
    overflow: hidden;
    transition: transform var(--transition-base), box-shadow var(--transition-base);
}

.card:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 24px rgba(19, 40, 62, 0.15);
}

/* Card inteiro clicável: o link do título cobre toda a caixa.
   Mantém o <a> real no título (acessibilidade + SEO). */
.card__title a::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
}

.card__img {
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}

.card__img--placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--color-azul) 0%, var(--color-oliva) 100%);
    font-size: 2.5rem;
}

/* Card de Pessoa (horizontal: foto à esquerda + nome à direita) */
.card--pessoa {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    padding: 1rem;
}

.card--pessoa__media {
    flex: 0 0 auto;
    width: 96px;
    height: 120px;
    border-radius: 0.5rem;
    overflow: hidden;
}

.card--pessoa__img,
.card--pessoa__placeholder {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.card--pessoa__placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--color-azul) 0%, var(--color-oliva) 100%);
    color: var(--color-bege);
    font-size: 2rem;
}

.card--pessoa__body {
    min-width: 0;
}

.card--pessoa .card__tag {
    margin-bottom: 0.35rem;
}

.card--pessoa .card__title {
    margin-bottom: 0;
    font-size: 1.4rem;
    line-height: 1.2;
}

.card__body {
    padding: 1.25rem;
}

.card__tag {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--color-ouro);
    margin-bottom: 0.5rem;
}
.nacao-card__territorio {
    color: var(--text-soft);
    font-weight: 600;
}

.card__title {
    font-family: var(--font-titulo);
    font-size: 1.1rem;
    color: var(--text);
    margin-bottom: 0.5rem;
}

.card__title a {
    color: inherit;
    text-decoration: none;
}

.card:hover .card__title a {
    color: var(--color-ouro);
}

.card__meta {
    font-size: 0.85rem;
    color: var(--text-soft);
}

/* ============================================================
   NAVBAR (placeholder — classes travadas na Stage 3)
   ============================================================ */
.site-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    background-color: var(--color-azul);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
}

.navbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.875rem var(--container-pad);
    max-width: var(--container-max);
    margin-inline: auto;
}

.navbar__logo {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    color: var(--color-bege);
    font-family: var(--font-titulo);
    font-size: 1.15rem;
    font-weight: 700;
    text-decoration: none;
}

.navbar__logo:hover {
    color: var(--color-ambar);
}

.navbar__menu {
    display: flex;
    align-items: center;
    gap: 2rem;
    margin: 0;
    padding: 0;
}

.navbar__menu a {
    color: var(--color-bege);
    font-size: 0.9rem;
    font-weight: 500;
    letter-spacing: 0.03em;
    text-decoration: none;
    transition: color var(--transition-base);
}

.navbar__menu a:hover,
.navbar__menu a.active {
    color: var(--color-ambar);
}

/* Marcadores (•) dos itens do menu: no escuro herdavam o texto claro e ficavam
   muito visíveis. Deixa-os discretos como já são no claro. */
[data-theme="dark"] .navbar__menu li { color: rgba(255, 255, 255, 0.18); }

.navbar__actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.navbar__search-btn,
.navbar__hamburger {
    background: none;
    border: none;
    color: var(--color-bege);
    cursor: pointer;
    padding: 0.375rem;
    display: flex;
    align-items: center;
    transition: color var(--transition-base);
}

.navbar__search-btn:hover,
.navbar__hamburger:hover {
    color: var(--color-ambar);
}

/* Botão de tema claro/escuro */
.navbar__theme {
    background: none;
    border: none;
    color: var(--color-bege);
    cursor: pointer;
    padding: 0.375rem;
    display: flex;
    align-items: center;
    transition: color var(--transition-base);
}
.navbar__theme:hover { color: var(--color-ambar); }
.navbar__theme-ic { display: block; }
.navbar__theme-ic--sun { display: none; }
[data-theme="dark"] .navbar__theme-ic--moon { display: none; }
[data-theme="dark"] .navbar__theme-ic--sun { display: block; }

/* Hambúrguer só aparece quando o menu não cabe (mobile/tablet) */
.navbar__hamburger {
    display: none;
}

/* Barra de busca (alternada pela lupa) */
.navbar__search {
    background-color: var(--color-azul);
    border-top: 1px solid rgba(250, 248, 242, 0.12);
    padding: 1rem var(--container-pad);
}

.navbar__search-form {
    display: flex;
    gap: 0.5rem;
    justify-content: flex-end;
    max-width: var(--container-max);
    margin-inline: auto;
}

.navbar__search-form input[type="search"] {
    width: 100%;
    font-family: var(--font-corpo);
    font-size: 1rem;
    padding: 0.8rem 1.25rem;
    border: none;
    border-radius: 2rem;
    background: var(--surface-2);
    color: var(--text);
}

.navbar__search-form input[type="search"]:focus {
    outline: 2px solid var(--color-ouro);
}

/* Campo + dropdown de sugestões (autocomplete) */
.navbar__search-field {
    position: relative;
    flex: 0 1 680px;
}

.navbar__suggest {
    position: absolute;
    top: calc(100% + 0.3rem);
    left: 0;
    right: 0;
    z-index: 30;
    list-style: none;
    margin: 0;
    padding: 0.25rem 0;
    background: var(--surface);
    border-radius: 0.5rem;
    box-shadow: 0 8px 24px rgba(19, 40, 62, 0.18);
    max-height: 340px;
    overflow-y: auto;
}

.navbar__suggest-item {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    padding: 0.55rem 1rem;
    text-decoration: none;
    color: var(--text);
}

.navbar__suggest-item:hover,
.navbar__suggest-item:focus {
    background: var(--surface-2);
}

.navbar__suggest-flag {
    margin-right: 0.5rem;
    font-size: 1.1rem;
    line-height: 1;
}

.navbar__suggest-titulo {
    font-weight: 600;
}

.navbar__suggest-tipo {
    font-size: 0.8rem;
    color: var(--label-muted);
    opacity: 0.85;
}

.navbar__suggest-tipo::before {
    content: "◦";
    margin: 0 0.4rem;
    opacity: 0.6;
}

/* Breakpoint: links ficam apertados → vira hambúrguer */
@media (max-width: 820px) {
    .navbar__hamburger {
        display: flex;
    }

    .navbar__menu {
        display: none;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        background-color: var(--color-azul);
        padding: 0.5rem 0;
        border-top: 1px solid rgba(250, 248, 242, 0.12);
        box-shadow: 0 8px 16px rgba(0, 0, 0, 0.25);
    }

    .navbar__menu.is-open {
        display: flex;
    }

    .navbar__menu a {
        display: block;
        padding: 0.85rem var(--container-pad);
        font-size: 1rem;
    }
}

/* ============================================================
   FOOTER (placeholder — classes travadas na Stage 3)
   ============================================================ */
.site-footer {
    background-color: #0C2A40;
    color: var(--color-bege);
    padding: 3rem var(--container-pad) 1.75rem;
}

.site-footer a { color: var(--color-ambar); }
.site-footer a:hover { color: var(--color-bege); }

/* Topo: 3 blocos com espaçamento IGUAL entre eles (space-between) */
.footer__top {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 2.5rem;
    align-items: flex-start;
}
.footer__top > * { flex: 0 1 auto; }
.footer__brand { max-width: 360px; }

/* Marca */
.footer__logo { display: inline-flex; align-items: center; gap: 0.6rem; text-decoration: none; }
.footer__logo-text { display: flex; flex-direction: column; line-height: 1.05; }
.footer__logo-text span { font-size: 0.8rem; font-weight: 600; letter-spacing: 0.16em; color: #fff; }
.footer__logo-text span:last-child { color: var(--color-ouro); }
.footer__mission { font-size: 0.85rem; line-height: 1.65; color: rgba(250,248,242,0.6); margin: 0.9rem 0 1rem; max-width: 30ch; }
.footer__actions { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.footer__btn-doar { display: inline-flex; align-items: center; gap: 0.4rem; }
.footer__btn-tg {
    display: inline-flex; align-items: center; gap: 0.4rem;
    padding: 0.55rem 1rem; border-radius: 0.5rem; font-size: 0.9rem; font-weight: 600;
    color: var(--color-bege) !important; background: rgba(255,255,255,0.06);
    border: 1px solid rgba(255,255,255,0.18); transition: all 0.15s;
}
.footer__btn-tg:hover { background: #229ED9; border-color: #229ED9; color: #fff !important; }

/* Colunas */
.footer__col-title { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--color-ambar); margin: 0 0 0.9rem; font-family: var(--font-corpo); font-weight: 600; }
.footer__nav { display: flex; flex-direction: column; gap: 0.55rem; }
.footer__nav a { font-size: 0.88rem; color: rgba(250,248,242,0.78); }
.footer__nav a:hover { color: #fff; }
.footer__contact { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.6rem; }
.footer__contact li { display: flex; align-items: center; gap: 0.5rem; font-size: 0.85rem; color: rgba(250,248,242,0.78); }
.footer__contact li i { color: var(--color-ouro); font-size: 1rem; flex-shrink: 0; }
.footer__contact a { color: rgba(250,248,242,0.78); }
.footer__contact a:hover { color: #fff; }

/* CTA + idiomas */
.footer__cta-text { font-size: 0.85rem; color: rgba(250,248,242,0.6); line-height: 1.55; margin: 0 0 0.8rem; }
.footer__cta-btn { display: inline-flex; align-items: center; gap: 0.4rem; }
.footer__lang { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; margin-top: 1.1rem; }
.footer__lang a {
    display: inline-flex; align-items: center; gap: 0.35rem; font-size: 0.75rem;
    color: var(--color-bege); opacity: 0.7; padding: 0.25rem 0.5rem;
    border: 1px solid rgba(255,255,255,0.1); border-radius: 0.4rem;
    transition: opacity var(--transition-base);
}
.footer__lang a:hover { opacity: 1; color: var(--color-bege); }
.footer__lang img { width: 18px; border-radius: 2px; }

.footer__divider { border: none; border-top: 1px solid rgba(255,255,255,0.1); margin: 2rem 0 1.25rem; }
.footer__bottom { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; }
.footer__copy { font-size: 0.78rem; opacity: 0.55; margin: 0; }
.footer__tagline { font-size: 0.78rem; font-style: italic; color: var(--color-ambar); opacity: 0.7; margin: 0; }
.footer__oladigi { display: inline-block; font-style: normal; font-weight: 600; text-decoration: none; color: var(--color-ambar); padding: 0.1rem 0.5rem; margin-left: 0.15rem; border: 1px solid currentColor; border-radius: 999px; transition: background 0.15s ease, color 0.15s ease; }
.footer__oladigi:hover { background: var(--color-ambar); color: #0c2033; }

/* Até ~780px as 3 colunas ficam na MESMA linha (altura igual à do desktop):
   nowrap impede a quebra natural que acontecia entre 881 e 1023px, e a marca
   encolhe para caber. As colunas podem comprimir (min-width: 0). Mesmo assim,
   a missão ("Conectando cristãos...") quebra em várias linhas dentro da marca
   estreita e deixa a linha toda alta — por isso a coluna Contato (a menos
   essencial das 3 nessa largura) some aqui. Ela só volta no empilhamento
   vertical (≤520px, mais abaixo): ali cada coluna ocupa a largura inteira,
   sem disputar espaço com as outras, então reaparecer não estica a altura. */
@media (max-width: 1024px) {
    .footer__top { flex-wrap: nowrap; gap: 1.5rem; }
    .footer__top > * { min-width: 0; }
    .footer__brand { flex: 0 1 250px; max-width: 250px; }
    /* seletor composto: precisa vencer a regra base .footer__col--center (mesma
       especificidade, mas declarada depois no arquivo — perderia por ordem) */
    .footer__top .footer__col--center { display: none; }
}
/* Marca em cima e a coluna restante (Nação do dia) dividindo a linha; Contato
   continua oculto — voltar aqui ainda deixaria a linha alta (2 colunas
   competindo por espaço), o problema só termina de fato no empilhamento. */
@media (max-width: 780px) {
    .footer__top { flex-wrap: wrap; gap: 2rem; }
    .footer__brand { flex: 1 1 100%; max-width: none; }
    .footer__col { flex: 1 1 0; }
}
@media (max-width: 520px) {
    .footer__top { flex-direction: column; align-items: center; text-align: center; }
    .footer__col { flex: 0 1 auto; }
    .footer__brand { display: flex; flex-direction: column; align-items: center; }
    .footer__mission { max-width: none; }
    .footer__actions { justify-content: center; }
    .footer__contact li { justify-content: center; }
    .footer__lang { justify-content: center; }
    .footer__bottom { flex-direction: column; align-items: center; text-align: center; }
    .footer__top .footer__col--center { display: flex; }
}

/* ============================================================
   HERO
   ============================================================ */
.hero {
    background-color: var(--color-azul);
    color: var(--color-bege);
    padding: 2.5rem var(--container-pad) 3.5rem;
}

.hero__inner {
    max-width: var(--container-max);
    margin-inline: auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    align-items: center;
}

.hero__title {
    font-family: var(--font-titulo);
    color: var(--color-bege);
    margin-bottom: 1rem;
}

.hero__subtitle {
    color: var(--color-ambar);
    font-size: 1.1rem;
    margin-bottom: 2rem;
    opacity: 0.9;
}

.hero__actions {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
}

/* ============================================================
   CARD NAÇÃO DO DIA (hero) — bandeira + versículo lado a lado
   ============================================================ */
.nacao-card {
    background: rgba(250, 248, 242, 0.08);
    border: 1px solid rgba(250, 248, 242, 0.15);
    color: var(--color-bege);
}

.nacao-card .card__body {
    color: var(--color-bege);
}

.nacao-card__top {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    margin: 0.5rem 0 1.25rem;
}

.nacao-card__flag {
    flex: 0 0 auto;
    display: block;
}

.nacao-card__flag img {
    display: block;
    width: 150px;
    border-radius: 6px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.4);
}

.nacao-card__versiculo {
    flex: 1 1 auto;
    min-width: 0;
    border-left: 3px solid var(--color-ouro);
    padding-left: 1rem;
}

.nacao-card__vtexto {
    margin: 0;
    font-style: italic;
    color: var(--color-bege);
    opacity: 0.9;
}

.nacao-card__vref {
    display: block;
    margin-top: 0.5rem;
    font-style: normal;
    font-size: 0.85rem;
    color: var(--color-ambar);
    opacity: 0.85;
}

.nacao-card__nome {
    font-family: var(--font-titulo);
    color: var(--color-ambar);
    font-size: 1.6rem;
    margin: 0 0 0.5rem;
}

.nacao-card__desc {
    color: var(--color-bege);
    opacity: 0.9;
    font-size: 0.95rem;
    margin: 0 0 0.5rem;
    /* limita a 6 linhas com reticências (textos curtos como o do Brasil
       cabem inteiros; só textos longos disparam o "ler mais") */
    display: -webkit-box;
    -webkit-line-clamp: 6;
    line-clamp: 6;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.nacao-card__lermais {
    display: inline-block;
    color: var(--color-ambar);
    font-size: 0.9rem;
    font-weight: 600;
    text-decoration: underline;
}

.nacao-card .btn-primary {
    margin-top: 1.25rem;
}

/* Mobile: empilha e reordena —
   tag > bandeira > nome > texto > (ler mais) > versículo > botão */
@media (max-width: 600px) {
    .nacao-card .card__body {
        display: flex;
        flex-direction: column;
    }
    .nacao-card__top {
        display: contents;   /* solta bandeira e versículo como irmãos */
    }
    .nacao-card .card__tag   { order: 1; }
    .nacao-card__flag        { order: 2; margin-bottom: 1rem; }
    .nacao-card__nome        { order: 3; }
    .nacao-card__desc        { order: 4; }
    .nacao-card__lermais     { order: 5; }
    .nacao-card__versiculo   { order: 6; margin: 0.5rem 0 0; }
    .nacao-card .btn-primary { order: 7; align-self: flex-start; }

    .nacao-card__flag img { width: 130px; }
}

/* ============================================================
   CARROSSEL
   ============================================================ */
.carousel-section {
    padding: 4rem 0;
    overflow: hidden;
    background-color: var(--surface-2);
}

.carousel-section .section-title {
    padding-inline: var(--container-pad);
}

.carousel__viewport {
    overflow: hidden;
}

.carousel__track {
    display: flex;
    gap: 1.25rem;
    padding-inline: var(--container-pad);
    will-change: transform;
}

.carousel__card {
    flex: 0 0 280px;
    border-radius: var(--radius-card);
    overflow: hidden;
    position: relative;
    min-height: 200px;
    background: var(--color-azul);
}

.carousel__card img.flag {
    position: absolute;
    top: 1rem;
    left: 1rem;
    width: 40px;
    border-radius: 3px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.3);
    z-index: 3;
}

/* Opção A — foto preenche o card */
.carousel__photo {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
}
.carousel__card--foto img.flag {
    box-shadow: 0 1px 6px rgba(0,0,0,0.55);
}

.carousel__card-body {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 1rem;
    z-index: 2;
    background: linear-gradient(to top, rgba(19,40,62,0.95) 0%, transparent 100%);
    color: var(--color-bege);
}
.carousel__card--foto .carousel__card-body {
    background: linear-gradient(to top, rgba(19,40,62,0.96) 0%, rgba(19,40,62,0.55) 52%, transparent 100%);
}

.carousel__card-title {
    font-family: var(--font-titulo);
    font-size: 1rem;
    margin-bottom: 0.25rem;
    color: #fff;
}

.carousel__card-meta {
    font-size: 0.78rem;
    color: var(--color-bege);
    opacity: 0.85;
}

/* ============================================================
   NAÇÃO DO DIA
   ============================================================ */
.nacao-do-dia {
    padding: 5rem var(--container-pad);
    background: linear-gradient(135deg, var(--color-azul) 0%, #1e3a5a 100%);
    color: var(--color-bege);
}

.nacao-do-dia__inner {
    max-width: var(--container-max);
    margin-inline: auto;
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 3rem;
    align-items: center;
}

.nacao-do-dia__badge {
    display: inline-block;
    background: var(--color-ouro);
    color: var(--color-bege);
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    padding: 0.35rem 0.875rem;
    border-radius: 1rem;
    margin-bottom: 1rem;
}

/* ============================================================
   SEÇÕES DA HOME (nacoes, caminho, campo)
   ============================================================ */
.home-section {
    padding: 5rem var(--container-pad);
}

.home-section__inner {
    max-width: var(--container-max);
    margin-inline: auto;
}

.cards-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1.5rem;
}

/* Variante fixa de 6 por linha (ex.: Territórios e dependências) */
.cards-grid--6 { grid-template-columns: repeat(6, 1fr); gap: 1rem; }
@media (max-width: 1100px) { .cards-grid--6 { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 700px)  { .cards-grid--6 { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 460px)  { .cards-grid--6 { grid-template-columns: repeat(2, 1fr); } }

/* ============================================================
   PÁGINA INTERNA — cabeçalho
   ============================================================ */
.page-header {
    background-color: var(--color-azul);
    color: var(--color-bege);
    padding: 4rem var(--container-pad) 3rem;
    text-align: center;
}

.page-header h1 {
    color: var(--color-bege);
    margin-bottom: 0.75rem;
}

.page-header p {
    color: var(--color-ambar);
    font-size: 1.1rem;
    max-width: 600px;
    margin-inline: auto;
    margin-bottom: 0;
}

/* ============================================================
   INDICADORES SUPABASE (single-pais)
   ============================================================ */
.indicadores-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 1rem;
    margin-top: 2rem;
}

.indicador-card {
    background: var(--surface);
    border: 1px solid rgba(19, 40, 62, 0.1);
    border-radius: var(--radius-card);
    padding: 1.25rem;
    text-align: center;
}

.indicador-card__valor {
    font-family: var(--font-titulo);
    font-size: 1.75rem;
    color: var(--color-ouro);
    display: block;
    margin-bottom: 0.25rem;
}

.indicador-card__label {
    font-size: 0.8rem;
    color: var(--text-soft);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

/* ============================================================
   FILTROS (page-nacoes, page-campo)
   ============================================================ */
.filtros-bar {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    align-items: center;
    margin-bottom: 2rem;
    padding: 1.25rem;
    background: var(--surface);
    border-radius: var(--radius-card);
    box-shadow: var(--shadow-card);
}

.filtros-bar select,
.filtros-bar input[type="search"],
.filtros-bar input[type="range"] {
    border: 1px solid rgba(19, 40, 62, 0.2);
    border-radius: 0.5rem;
    padding: 0.5rem 0.875rem;
    font-family: var(--font-corpo);
    font-size: 0.875rem;
    color: var(--text);
    background: var(--surface-2);
    outline: none;
    transition: border-color var(--transition-base);
}

.filtros-bar select:focus,
.filtros-bar input[type="search"]:focus {
    border-color: var(--color-ouro);
}

/* ============================================================
   LOADING SPINNER
   ============================================================ */
.loading-spinner {
    display: flex;
    justify-content: center;
    padding: 3rem;
    color: var(--color-ouro);
    font-size: 0.9rem;
    gap: 0.5rem;
}

.loading-spinner::before {
    content: '';
    width: 1.25rem;
    height: 1.25rem;
    border: 2px solid var(--color-ambar);
    border-top-color: var(--color-ouro);
    border-radius: 50%;
    animation: spin 0.7s linear infinite;
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

/* ============================================================
   RESPONSIVO
   ============================================================ */
@media (max-width: 768px) {
    .hero {
        padding-top: 1.5rem;
    }

    .hero__inner {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .nacao-do-dia__inner {
        grid-template-columns: 1fr;
    }

    .navbar__menu {
        display: none;
    }

    .navbar__menu--open {
        display: flex;
        flex-direction: column;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        background-color: var(--color-azul);
        padding: 1rem var(--container-pad);
        gap: 1rem;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
    }

    .carousel__card {
        flex: 0 0 240px;
    }

    .cards-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 480px) {
    :root {
        --container-pad: 1rem;
    }

    .hero {
        padding: 1.25rem var(--container-pad) 2.5rem;
    }

    .btn-primary,
    .btn-secondary {
        padding: 0.625rem 1.25rem;
        font-size: 0.875rem;
    }
}

/* ============================================================
   SINGLE-PAIS
   ============================================================ */
.pais-header {
    background: linear-gradient(135deg, var(--color-azul) 0%, #1e3a5a 100%);
    color: var(--color-bege);
    padding: 4rem var(--container-pad) 3rem;
}

.pais-header__inner {
    display: flex;
    align-items: center;
    gap: 2rem;
    flex-wrap: wrap;
}

.pais-header__flag {
    width: 120px;
    border-radius: 6px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.3);
    flex-shrink: 0;
}

.pais-header__regiao {
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    opacity: 0.7;
    display: block;
    margin-bottom: 0.5rem;
}

.pais-header__titulo {
    font-family: var(--font-titulo);
    font-size: 2.5rem;
    margin: 0 0 0.5rem;
    color: var(--color-ambar);
}

.pais-header__pop {
    opacity: 0.8;
    margin: 0;
    font-size: 1rem;
}

.pais-contexto__texto {
    max-width: 720px;
    line-height: 1.8;
}

.pais-oracao__lista {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 1rem;
    max-width: 720px;
}

.pais-oracao__item {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
}

.pais-oracao__item p {
    margin: 0;
    line-height: 1.6;
}

.pais-oracao__num {
    background: var(--color-ouro);
    color: var(--text);
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 0.9rem;
    flex-shrink: 0;
}

@media (max-width: 600px) {
    .pais-header__titulo {
        font-size: 1.75rem;
    }

    .pais-header__inner {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* ============================================================
   SINGLE POVO — single-povo.php
   ============================================================ */
.povo-header {
    background: linear-gradient(135deg, var(--color-azul) 0%, #1e3a5a 100%);
    color: var(--color-bege);
    padding: 4rem var(--container-pad) 3rem;
}

.povo-header__inner {
    display: flex;
    align-items: center;
    gap: 2rem;
}

.povo-header__flags {
    display: flex;
    gap: 0.5rem;
    flex-shrink: 0;
    flex-wrap: wrap;
}

.povo-header__flag {
    width: 64px;
    border-radius: 4px;
    box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}

.povo-header__badge {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--color-ambar);
    margin-bottom: 0.5rem;
}

.povo-header__titulo {
    font-family: var(--font-titulo);
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--color-ambar);
    margin: 0 0 0.5rem;
    line-height: 1.2;
}

.povo-header__pop {
    font-size: 1rem;
    opacity: 0.8;
    margin: 0;
}

.povo-paises .cards-grid {
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
}

@media (max-width: 600px) {
    .povo-header__inner {
        flex-direction: column;
        align-items: flex-start;
    }

    .povo-header__titulo {
        font-size: 1.75rem;
    }
}

/* ============================================================
   ARCHIVE NAÇÕES — archive-pais.php (/nacoes/)
   ============================================================ */
.nacoes-archive-header {
    background: linear-gradient(135deg, var(--color-azul) 0%, #1e3a5a 100%);
    color: var(--color-bege);
    padding: 3.5rem var(--container-pad) 3rem;
    text-align: center;
}

.nacoes-archive-header__titulo {
    font-family: var(--font-titulo);
    font-size: 2.75rem;
    font-weight: 700;
    color: var(--color-ambar);
    margin: 0 0 0.5rem;
}

.nacoes-archive-header__sub {
    font-size: 1.05rem;
    opacity: 0.85;
    margin: 0 auto;
    max-width: 560px;
}

.nacoes-filtros {
    background: var(--surface);
    border-bottom: 1px solid rgba(19, 40, 62, 0.08);
    padding: 1.5rem 0;
    position: sticky;
    top: 0;
    z-index: 20;
}

.nacoes-filtros__inner {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 1rem;
}

.nacoes-filtros__campo {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    flex: 1 1 160px;
    min-width: 140px;
}

.nacoes-filtros__campo--busca {
    flex: 2 1 220px;
}

.nacoes-filtros__campo label {
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--label-muted);
}

.nacoes-filtros__campo input[type="search"],
.nacoes-filtros__campo select {
    font-family: var(--font-corpo);
    font-size: 0.95rem;
    padding: 0.55rem 0.75rem;
    border: 1px solid rgba(19, 40, 62, 0.18);
    border-radius: 0.5rem;
    background: var(--surface-2);
    color: var(--text);
    width: 100%;
}

.nacoes-filtros__campo input[type="search"]:focus,
.nacoes-filtros__campo select:focus {
    outline: 2px solid var(--color-ouro);
    outline-offset: 0;
}

.nacoes-filtros__campo input[type="range"] {
    width: 100%;
    accent-color: var(--color-ouro);
}

.nacoes-filtros__limpar {
    flex: 0 0 auto;
    align-self: flex-end;
    background-color: transparent;
    color: var(--text);
    border-color: var(--text);
}

/* Hover invertendo texto/fundo: sempre contrasta com a barra (--surface),
   nos dois temas (no escuro o azul se confundia com o fundo). */
.nacoes-filtros__limpar:hover {
    background-color: var(--text);
    color: var(--surface);
    border-color: var(--text);
}

.nacoes-filtros__contador {
    margin: 1rem 0 0;
    font-size: 0.85rem;
    color: var(--label-muted);
    opacity: 0.8;
}

.nacoes-lista__barra {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 1.25rem;
}

.nacoes-lista__check-territorios {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    font-family: var(--font-titulo);
    font-size: 1rem;
    font-weight: 700;
    color: var(--text);
    cursor: pointer;
}
.nacoes-lista__check-territorios input[type="checkbox"] {
    accent-color: var(--color-ouro);
    width: 1.3rem;
    height: 1.3rem;
}

.nacoes-lista__cols {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
}
.nacoes-lista__cols-label {
    font-size: 0.85rem;
    color: var(--label-muted);
}

/* Chips de ordenação (/povos/): fora do acordeão de filtros, antes do grid */
.povo-ordenar {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    flex-wrap: wrap;
    margin-bottom: 1.25rem;
}
.povo-ordenar__label {
    font-size: 0.85rem;
    color: var(--label-muted);
    flex: 0 0 auto;
}
.povo-ordenar__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}
.povo-ordenar__chip {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 999px;
    padding: 0.35rem 0.9rem;
    font-family: var(--font-corpo);
    font-size: 0.82rem;
    font-weight: 500;
    color: var(--text);
    cursor: pointer;
    transition: background-color var(--transition-base), color var(--transition-base), border-color var(--transition-base);
}
.povo-ordenar__chip:hover { border-color: var(--text-soft); }
.povo-ordenar__chip.is-ativo { background: var(--color-azul); color: var(--color-bege); border-color: var(--color-azul); font-weight: 700; }
[data-theme="dark"] .povo-ordenar__chip.is-ativo { background: var(--color-ambar); color: var(--color-azul); border-color: var(--color-ambar); }

.nacoes-lista__vazio {
    text-align: center;
    grid-column: 1 / -1;
    opacity: 0.6;
    padding: 2rem 0;
}

/* Botão "ver mais povos" (/povos/), paginação client-side via REST */
.povo-vermais {
    text-align: center;
    margin-top: 2rem;
}
.povo-vermais__info {
    font-size: 0.85rem;
    color: var(--label-muted);
    margin-bottom: 0.9rem;
}

@media (max-width: 600px) {
    .nacoes-filtros {
        position: static;
    }

    .nacoes-archive-header__titulo {
        font-size: 2rem;
    }
}

/* ============================================================
   CAMINHO BÍBLICO — page-caminho-biblico.php
   ============================================================ */
.caminho-header {
    background: linear-gradient(135deg, var(--color-azul) 0%, #1e3a5a 100%);
    color: var(--color-bege);
    padding: 3.5rem var(--container-pad) 3rem;
    text-align: center;
}

.caminho-header__titulo {
    font-family: var(--font-titulo);
    font-size: 2.75rem;
    font-weight: 700;
    color: var(--color-ambar);
    margin: 0 0 0.5rem;
}

.caminho-header__sub {
    font-size: 1.05rem;
    opacity: 0.85;
    margin: 0 auto;
    max-width: 600px;
}

.caminho-testamento {
    font-family: var(--font-titulo);
    font-size: 1.5rem;
    color: var(--label-muted);
    margin: 2rem 0 1rem;
}

.caminho-testamento:first-of-type {
    margin-top: 0;
}

/* Timeline vertical */
.timeline {
    list-style: none;
    margin: 0;
    padding: 0;
    position: relative;
    max-width: 760px;
}

.timeline::before {
    content: "";
    position: absolute;
    left: 9px;
    top: 0;
    bottom: 0;
    width: 2px;
    background: rgba(206, 120, 59, 0.3);
}

.timeline__item {
    position: relative;
    padding: 0 0 2rem 2.5rem;
}

.timeline__item:last-child {
    padding-bottom: 0;
}

.timeline__marcador {
    position: absolute;
    left: 0;
    top: 0.35rem;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--color-ouro);
    border: 3px solid var(--color-bege);
    box-shadow: 0 0 0 2px var(--color-ouro);
}

.timeline__epoca {
    display: inline-block;
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--label-muted);
    margin-bottom: 0.25rem;
}

.timeline__titulo {
    font-family: var(--font-titulo);
    font-size: 1.35rem;
    margin: 0 0 0.25rem;
}

.timeline__titulo a {
    color: var(--text);
    text-decoration: none;
}

.timeline__titulo a:hover {
    color: var(--color-ouro);
}

.timeline__papel {
    font-size: 0.9rem;
    color: var(--label-muted);
    margin: 0 0 0.25rem;
}

.timeline__versiculo {
    font-size: 0.9rem;
    font-style: italic;
    opacity: 0.75;
    margin: 0;
}

/* ============================================================
   PESSOAS — archive-pessoa.php (/quem-foi/)
   ============================================================ */
.pessoas-header {
    background: linear-gradient(135deg, var(--color-azul) 0%, #1e3a5a 100%);
    color: var(--color-bege);
    padding: 3.5rem var(--container-pad) 3rem;
    text-align: center;
}

.pessoas-header__titulo {
    font-family: var(--font-titulo);
    font-size: 2.75rem;
    font-weight: 700;
    color: var(--color-ambar);
    margin: 0 0 0.5rem;
}

.pessoas-header__sub {
    font-size: 1.05rem;
    opacity: 0.85;
    margin: 0 auto 1.75rem;
    max-width: 600px;
}

.pessoas-busca {
    display: flex;
    gap: 0.5rem;
    justify-content: center;
    max-width: 520px;
    margin: 0 auto;
}

.pessoas-busca__input {
    flex: 1 1 auto;
    font-family: var(--font-corpo);
    font-size: 1rem;
    padding: 0.7rem 1rem;
    border: none;
    border-radius: 2rem;
    background: var(--surface-2);
    color: var(--text);
}

.pessoas-busca__input:focus {
    outline: 2px solid var(--color-ouro);
}

.pessoas-busca__btn {
    flex: 0 0 auto;
}

/* Paginação WP */
.pessoas-paginacao {
    margin-top: 2.5rem;
}

.pessoas-paginacao .nav-links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    justify-content: center;
    align-items: center;
}

.pessoas-paginacao .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.5rem;
    height: 2.5rem;
    padding: 0 0.75rem;
    border-radius: 0.5rem;
    background: var(--surface);
    color: var(--text);
    text-decoration: none;
    font-weight: 600;
    border: 1px solid rgba(19, 40, 62, 0.15);
}

.pessoas-paginacao .page-numbers:hover {
    background: var(--color-ambar);
    border-color: var(--color-ambar);
}

.pessoas-paginacao .page-numbers.current {
    background: var(--color-ouro);
    border-color: var(--color-ouro);
    color: var(--color-bege);
}

.pessoas-paginacao .page-numbers.dots {
    background: transparent;
    border: none;
}

/* ============================================================
   SINGLE PESSOA — single-pessoa.php
   ============================================================ */
.pessoa-header {
    background: linear-gradient(135deg, var(--color-azul) 0%, #1e3a5a 100%);
    color: var(--color-bege);
    padding: 3.5rem var(--container-pad) 3rem;
}

.pessoa-header__inner {
    display: flex;
    align-items: center;
    gap: 2rem;
}

.pessoa-header__foto {
    flex: 0 0 auto;
}

.pessoa-header__img {
    width: 140px;
    height: 140px;
    object-fit: cover;
    border-radius: 50%;
    border: 4px solid var(--color-ambar);
}

.pessoa-header__papel {
    display: inline-block;
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--color-ambar);
    margin-bottom: 0.5rem;
}

.pessoa-header__titulo {
    font-family: var(--font-titulo);
    font-size: 2.4rem;
    font-weight: 700;
    color: var(--color-bege);
    margin: 0 0 0.5rem;
    line-height: 1.2;
}

.pessoa-header__prefixo {
    display: block;
    font-size: 1.1rem;
    font-weight: 400;
    color: var(--color-ambar);
    opacity: 0.9;
}

.pessoa-header__epoca {
    font-size: 0.95rem;
    opacity: 0.8;
    margin: 0;
}

.pessoa-versiculo {
    background: var(--color-oliva);
    color: var(--color-bege);
    padding: 1.5rem var(--container-pad);
    text-align: center;
}

.pessoa-versiculo__ref {
    font-family: var(--font-titulo);
    font-style: italic;
    font-size: 1.15rem;
    margin: 0;
}

@media (max-width: 600px) {
    .pessoa-header__inner {
        flex-direction: column;
        text-align: center;
    }

    .pessoas-header__titulo,
    .pessoa-header__titulo {
        font-size: 1.9rem;
    }

    .pessoas-busca {
        flex-direction: column;
    }
}

/* ============================================================
   NOTÍCIAS DO CAMPO — page-noticias-do-campo.php
   ============================================================ */
.campo-header {
    background: linear-gradient(135deg, var(--color-azul) 0%, #1e3a5a 100%);
    color: var(--color-bege);
    padding: 3.5rem var(--container-pad) 3rem;
    text-align: center;
}

.campo-header__titulo {
    font-family: var(--font-titulo);
    font-size: 2.75rem;
    font-weight: 700;
    color: var(--color-ambar);
    margin: 0 0 0.5rem;
}

.campo-header__sub {
    font-size: 1.05rem;
    opacity: 0.85;
    margin: 0 auto;
    max-width: 600px;
}

/* Layout portal: conteúdo + sidebar */
.campo-portal {
    padding: 3rem 0;
}

.campo-layout {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 2.5rem;
    align-items: start;
}

.campo-principal {
    min-width: 0;
}

.campo-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1.75rem;
}

/* Card estilo portal de notícias */
.campo-card {
    display: flex;
    flex-direction: column;
}

.campo-card__media {
    position: relative;
    aspect-ratio: 16 / 9;
    overflow: hidden;
}

.campo-card__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.campo-card__placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--color-azul) 0%, var(--color-oliva) 100%);
    font-size: 2.5rem;
}

.campo-card__pais {
    position: absolute;
    top: 0.75rem;
    left: 0.75rem;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.3rem 0.6rem;
    border-radius: 1rem;
    background: rgba(19, 40, 62, 0.85);
    color: var(--color-bege);
    font-size: 0.72rem;
    font-weight: 600;
}

.campo-card__pais img {
    display: block;
    border-radius: 2px;
}

/* Sidebar de filtros */
.campo-sidebar {
    position: sticky;
    top: 1.5rem;
}

.campo-filtros-box {
    background: var(--surface);
    border: 1px solid rgba(19, 40, 62, 0.10);
    border-radius: var(--radius-card);
    box-shadow: var(--shadow-card);
    padding: 1.5rem;
}

.campo-filtros-box__toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 0;
    margin: 0 0 1.25rem;
    background: none;
    border: none;
    font-family: var(--font-titulo);
    font-size: 1.25rem;
    color: var(--text);
    text-align: left;
    cursor: default;
}

.campo-filtros-box__toggle:hover,
.campo-filtros-box__toggle:focus,
.campo-filtros-box__toggle:active {
    background: none;
    background-color: transparent;
    color: var(--text);
    box-shadow: none;
    outline: none;
}

.campo-filtros-box__seta {
    display: none;
    transition: transform var(--transition-base);
}

/* Corpo dos filtros: em desktop sempre visível */
.campo-filtros-box__corpo {
    display: block;
}

.campo-filtros__campo {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    margin-bottom: 1.25rem;
}

.campo-filtros__campo label {
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--label-muted);
}

.campo-filtros__campo input[type="search"],
.campo-filtros__campo select {
    font-family: var(--font-corpo);
    font-size: 0.95rem;
    padding: 0.55rem 0.75rem;
    border: 1px solid rgba(19, 40, 62, 0.18);
    border-radius: 0.5rem;
    background: var(--surface-2);
    color: var(--text);
    width: 100%;
}

.campo-filtros__campo input[type="search"]:focus,
.campo-filtros__campo select:focus {
    outline: 2px solid var(--color-ouro);
    outline-offset: 0;
}

.campo-filtros__limpar {
    width: 100%;
    justify-content: center;
    background-color: transparent;
    color: var(--text);
    border-color: var(--color-azul);
}

.campo-filtros__limpar:hover {
    background-color: var(--color-azul);
    color: var(--color-bege);
    border-color: var(--color-azul);
}

.campo-lista__vazio {
    text-align: center;
    grid-column: 1 / -1;
    opacity: 0.6;
    padding: 2rem 0;
}

@media (max-width: 880px) {
    .campo-layout {
        grid-template-columns: 1fr;
    }

    .campo-sidebar {
        position: static;
        order: -1;
    }

    /* Accordion: caixa colapsa para não ocupar espaço */
    .campo-filtros-box__toggle {
        margin: 0;
        cursor: pointer;
    }

    .campo-filtros-box__seta {
        display: inline;
    }

    .campo-filtros-box.is-open .campo-filtros-box__seta {
        transform: rotate(180deg);
    }

    .campo-filtros-box__corpo {
        display: none;
        margin-top: 1.25rem;
    }

    .campo-filtros-box.is-open .campo-filtros-box__corpo {
        display: block;
    }
}

@media (max-width: 600px) {
    .campo-header__titulo {
        font-size: 2rem;
    }
}

/* ============================================================
   PÁGINA ORAR — page-orar.php
   ============================================================ */
.orar-hero {
    background: linear-gradient(135deg, var(--color-azul) 0%, #1e3a5a 100%);
    color: var(--color-bege);
    padding: 4rem var(--container-pad) 3.5rem;
    text-align: center;
}

.orar-hero__titulo {
    font-family: var(--font-titulo);
    font-size: 2.75rem;
    font-weight: 700;
    color: var(--color-ambar);
    margin: 0 0 0.75rem;
}

.orar-hero__sub {
    font-size: 1.1rem;
    font-style: italic;
    opacity: 0.9;
    margin: 0 auto;
    max-width: 600px;
}

/* CTA Canal (faixa compacta) */
.orar-cta-canal {
    background: var(--color-ambar);
    padding: 1.5rem var(--container-pad);
}

.orar-cta-canal__inner {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 1.5rem;
    flex-wrap: wrap;
}

.orar-cta-canal__titulo {
    font-family: var(--font-titulo);
    font-size: 1.4rem;
    color: var(--text);
    margin: 0 0 0.25rem;
}

.orar-cta-canal__texto p {
    margin: 0;
    color: var(--text);
    opacity: 0.85;
}

.orar-cta-canal__btn {
    flex: 0 0 auto;
}

@media (max-width: 600px) {
    .orar-cta-canal__inner {
        flex-direction: column;
        text-align: center;
    }
}

/* Calendário */
.orar-calendario__intro {
    text-align: center;
    opacity: 0.8;
    margin: -0.5rem auto 2rem;
    max-width: 560px;
}

.orar-calendario__lista {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 1rem;
}

/* Box "assinar calendário" (.ics) — logo abaixo da grade de dias */
.cal-assinar {
    display: flex; align-items: center; justify-content: space-between;
    flex-wrap: wrap; gap: 1.25rem;
    margin-top: 1.75rem; padding: 1.5rem 1.75rem;
    background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-card);
}
.cal-assinar__titulo {
    font-family: var(--font-titulo); font-size: 1.15rem; margin: 0 0 0.3rem;
    display: flex; align-items: center; gap: 0.5rem;
}
.cal-assinar__titulo i { color: var(--color-ouro); }
.cal-assinar__texto p { margin: 0; font-size: 0.9rem; color: var(--text-soft); max-width: 44ch; }
.cal-assinar__botoes { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem 1.1rem; }
.cal-assinar__link {
    display: inline-flex; align-items: center; gap: 0.35rem;
    font-size: 0.88rem; font-weight: 600; color: var(--text-soft);
}
.cal-assinar__link:hover { color: var(--color-ouro); }
@media (max-width: 600px) {
    .cal-assinar { flex-direction: column; align-items: flex-start; }
}

.orar-cal-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    padding: 1.25rem 1rem;
    background: var(--surface);
    border-radius: var(--radius-card);
    box-shadow: var(--shadow-card);
    text-align: center;
    text-decoration: none;
    transition: transform var(--transition-base), box-shadow var(--transition-base);
}

a.orar-cal-item:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 24px rgba(19, 40, 62, 0.15);
}

a.orar-cal-item:hover .orar-cal-item__nome {
    color: var(--color-ouro);
}

.orar-cal-item__data {
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--color-ouro);
}

.orar-cal-item__flag {
    width: 48px;
    border-radius: 3px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.15);
}

.orar-cal-item__nome {
    font-family: var(--font-titulo);
    font-size: 1rem;
    color: var(--text);
}

/* Escolha uma nação */
.orar-escolha__form {
    display: flex;
    gap: 0.75rem;
    justify-content: center;
    flex-wrap: wrap;
    max-width: 560px;
    margin: 0 auto;
}

.orar-escolha__select {
    flex: 1 1 260px;
    font-family: var(--font-corpo);
    font-size: 1rem;
    padding: 0.7rem 1rem;
    border: 1px solid rgba(19, 40, 62, 0.18);
    border-radius: 0.5rem;
    background: var(--surface);
    color: var(--text);
}

.orar-escolha__select:focus {
    outline: 2px solid var(--color-ouro);
}

/* Newsletter */
.orar-newsletter__inner {
    text-align: center;
}

.orar-newsletter__texto {
    opacity: 0.8;
    margin: -0.5rem auto 1.75rem;
    max-width: 520px;
}

.orar-newsletter__form {
    display: flex;
    gap: 0.5rem;
    justify-content: center;
    flex-wrap: wrap;
    max-width: 480px;
    margin: 0 auto;
}

.orar-newsletter__form input {
    flex: 1 1 240px;
    font-family: var(--font-corpo);
    font-size: 1rem;
    padding: 0.7rem 1rem;
    border: 1px solid rgba(19, 40, 62, 0.18);
    border-radius: 2rem;
    background: var(--surface-2);
    color: var(--text);
    opacity: 0.7;
}

/* WhatsApp */
.orar-whatsapp {
    background: var(--color-oliva);
    color: var(--color-bege);
    text-align: center;
    padding: 4rem var(--container-pad);
}

.orar-whatsapp__titulo {
    font-family: var(--font-titulo);
    font-size: 2rem;
    color: var(--color-ambar);
    margin: 0 0 1rem;
}

.orar-whatsapp__texto {
    opacity: 0.9;
    margin: 0 auto 2rem;
    max-width: 520px;
}

@media (max-width: 600px) {
    .orar-hero__titulo {
        font-size: 2rem;
    }
}

/* ============================================================
   BUSCA — search.php
   ============================================================ */
.busca-header {
    background: linear-gradient(135deg, var(--color-azul) 0%, #1e3a5a 100%);
    color: var(--color-bege);
    padding: 3.5rem var(--container-pad) 3rem;
    text-align: center;
}

.busca-header__titulo {
    font-family: var(--font-titulo);
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--color-ambar);
    margin: 0 0 0.5rem;
}

.busca-header__sub {
    font-size: 1rem;
    opacity: 0.85;
    margin: 0 auto 1.75rem;
    max-width: 600px;
}

.busca-header__form {
    display: flex;
    gap: 0.5rem;
    justify-content: center;
    max-width: 520px;
    margin: 0 auto;
}

.busca-header__form input[type="search"] {
    flex: 1 1 auto;
    font-family: var(--font-corpo);
    font-size: 1rem;
    padding: 0.7rem 1rem;
    border: none;
    border-radius: 2rem;
    background: var(--surface-2);
    color: var(--text);
}

.busca-header__form input[type="search"]:focus {
    outline: 2px solid var(--color-ouro);
}

.busca-card__media {
    aspect-ratio: 16 / 9;
    overflow: hidden;
}

.busca-card__placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--color-azul) 0%, var(--color-oliva) 100%);
    font-size: 2.5rem;
}

/* Paginação (mesmo padrão de Pessoas) */
.busca-paginacao {
    margin-top: 2.5rem;
}

.busca-paginacao .nav-links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    justify-content: center;
    align-items: center;
}

.busca-paginacao .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.5rem;
    height: 2.5rem;
    padding: 0 0.75rem;
    border-radius: 0.5rem;
    background: var(--surface);
    color: var(--text);
    text-decoration: none;
    font-weight: 600;
    border: 1px solid rgba(19, 40, 62, 0.15);
}

.busca-paginacao .page-numbers:hover {
    background: var(--color-ambar);
    border-color: var(--color-ambar);
}

.busca-paginacao .page-numbers.current {
    background: var(--color-ouro);
    border-color: var(--color-ouro);
    color: var(--color-bege);
}

.busca-paginacao .page-numbers.dots {
    background: transparent;
    border: none;
}

@media (max-width: 600px) {
    .busca-header__titulo {
        font-size: 1.9rem;
    }

    .busca-header__form {
        flex-direction: column;
    }
}

/* ============================================================
   POPUP — convite ao canal do WhatsApp
   ============================================================ */
.rota-popup {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
}

.rota-popup[hidden] {
    display: none;
}

.rota-popup__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(19, 40, 62, 0.7);
}

.rota-popup__box {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 420px;
    background: var(--surface-2);
    border-radius: var(--radius-card);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.4);
    padding: 2.5rem 2rem 2rem;
    text-align: center;
    animation: rota-popup-in 0.3s ease;
}

@keyframes rota-popup-in {
    from { opacity: 0; transform: translateY(14px); }
    to   { opacity: 1; transform: none; }
}

.rota-popup__fechar {
    position: absolute;
    top: 0.5rem;
    right: 0.75rem;
    background: none;
    border: none;
    font-size: 1.75rem;
    line-height: 1;
    color: var(--text);
    opacity: 0.55;
    cursor: pointer;
}

.rota-popup__fechar:hover {
    opacity: 1;
}

.rota-popup__icone {
    margin-bottom: 0.75rem;
    line-height: 0;
}

.rota-popup__icone svg {
    display: inline-block;
}

.rota-popup__titulo {
    font-family: var(--font-titulo);
    color: var(--text);
    font-size: 1.5rem;
    margin: 0 0 0.75rem;
}

.rota-popup__texto {
    color: var(--text);
    opacity: 0.85;
    margin: 0 0 1.5rem;
}

.rota-popup__btn {
    width: 100%;
    justify-content: center;
}

.rota-popup__depois {
    display: block;
    margin: 1rem auto 0;
    background: none;
    border: none;
    color: var(--label-muted);
    font-size: 0.9rem;
    text-decoration: underline;
    cursor: pointer;
}

/* ============================================================
   ARTIGOS / CAMINHO (enciclopédia)
   ============================================================ */
.artigo-archive-header {
    background: linear-gradient(135deg, var(--color-azul) 0%, #1e3a5a 100%);
    color: var(--color-bege);
    padding: 3.5rem var(--container-pad) 3rem;
    text-align: center;
}

.artigo-archive-header__titulo {
    font-family: var(--font-titulo);
    font-size: 2.75rem;
    font-weight: 700;
    color: var(--color-ambar);
    margin: 0 0 0.5rem;
}

.artigo-archive-header__sub {
    font-size: 1.05rem;
    opacity: 0.85;
    margin: 0 auto;
    max-width: 600px;
}

/* Chips de tema */
.artigo-temas {
    background: var(--surface);
    border-bottom: 1px solid rgba(19, 40, 62, 0.08);
    padding: 1rem 0;
}

.artigo-temas__inner {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: center;
}

.artigo-chip {
    display: inline-block;
    padding: 0.4rem 0.9rem;
    border-radius: 2rem;
    background: var(--surface-2);
    border: 1px solid rgba(19, 40, 62, 0.12);
    color: var(--text);
    font-size: 0.85rem;
    font-weight: 600;
    text-decoration: none;
    transition: background-color var(--transition-base), color var(--transition-base);
}

.artigo-chip:hover {
    background: var(--color-ambar);
    color: var(--text);
}

.artigo-chip--ativo {
    background: var(--color-ouro);
    border-color: var(--color-ouro);
    color: var(--color-bege);
}

/* Paginação (mesmo padrão das demais) */
.artigo-paginacao { margin-top: 2.5rem; }
.artigo-paginacao .nav-links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    justify-content: center;
    align-items: center;
}
.artigo-paginacao .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.5rem;
    height: 2.5rem;
    padding: 0 0.75rem;
    border-radius: 0.5rem;
    background: var(--surface);
    color: var(--text);
    text-decoration: none;
    font-weight: 600;
    border: 1px solid rgba(19, 40, 62, 0.15);
}
.artigo-paginacao .page-numbers:hover {
    background: var(--color-ambar);
    border-color: var(--color-ambar);
}
.artigo-paginacao .page-numbers.current {
    background: var(--color-ouro);
    border-color: var(--color-ouro);
    color: var(--color-bege);
}
.artigo-paginacao .page-numbers.dots {
    background: transparent;
    border: none;
}

/* ============================================================
   SINGLE ARTIGO
   ============================================================ */
.artigo-header {
    background: linear-gradient(135deg, var(--color-azul) 0%, #1e3a5a 100%);
    color: var(--color-bege);
    padding: 3rem var(--container-pad);
}

.artigo-header__inner {
    max-width: 760px;
    margin-inline: auto;
}

.artigo-header__temas {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin: 0 0 1rem;
}

.artigo-header__titulo {
    font-family: var(--font-titulo);
    font-size: 2.4rem;
    font-weight: 700;
    color: var(--color-bege);
    margin: 0;
    line-height: 1.2;
}

.artigo-capa {
    background: var(--surface-2);
    padding: 2rem 0 0;
}

.artigo-capa__img {
    max-width: 760px;
    width: 100%;
    margin-inline: auto;
    border-radius: var(--radius-card);
}

.artigo-conteudo__texto {
    max-width: 720px;
    margin-inline: auto;
    font-size: 1.05rem;
    line-height: 1.8;
}

.artigo-conteudo__texto h2,
.artigo-conteudo__texto h3 {
    margin: 2rem 0 0.75rem;
}

.artigo-conteudo__texto p {
    margin-bottom: 1.25rem;
}

@media (max-width: 600px) {
    .artigo-archive-header__titulo { font-size: 2rem; }
    .artigo-header__titulo { font-size: 1.8rem; }
}

/* ============================================================
   MEDIDOR DE PERSEGUIÇÃO (gauge) — cards de nação (/nacoes/)
   ============================================================ */
/* Corpo do card em 2 colunas: texto à esquerda, medidor à direita */
.nacao-card__body {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.nacao-card__info {
    flex: 1 1 auto;
    min-width: 0;
    text-align: center;
}

.nacao-card__info .card__meta {
    margin-bottom: 0;
}

.nacao-gauge {
    position: relative;
    flex: 0 0 auto;
    width: 100px;
    text-align: center;
}

.nacao-gauge__svg {
    width: 100%;
    display: block;
    overflow: visible;
}

.nacao-gauge__track {
    stroke: #E2E5E9;
    stroke-width: 9;
    stroke-linecap: round;
}

.nacao-gauge__fill {
    stroke: transparent;
    stroke-width: 9;
    stroke-linecap: round;
    transition: stroke-dashoffset 0.6s ease, stroke 0.3s ease;
}

.nacao-gauge__num {
    position: absolute;
    top: 26px;
    left: 0;
    right: 0;
    text-align: center;
    font-family: var(--font-titulo);
    font-size: 1.45rem;
    font-weight: 700;
    color: var(--text);
    line-height: 1;
}

.nacao-gauge__label {
    display: block;
    margin-top: 0.15rem;
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    white-space: nowrap; /* "Persecución"/"Persécution" não podem quebrar sob o medidor */
    color: var(--text-soft);
    opacity: 0.8;
}

/* "Outras nações" (single-pais): 4 por linha, cards compactos com medidor */
#outras-nacoes { grid-template-columns: repeat(4, 1fr); gap: 1rem; }
#outras-nacoes .card__title { font-size: 1rem; }
#outras-nacoes .nacao-card__body { gap: 0.5rem; }
#outras-nacoes .nacao-gauge { width: 78px; }
#outras-nacoes .nacao-gauge__num { top: 18px; font-size: 1.1rem; }
#outras-nacoes .nacao-gauge__label { font-size: 0.6rem; }
@media (max-width: 900px) { #outras-nacoes { grid-template-columns: repeat(2, 1fr); gap: 0.8rem; } }

/* ============================================================
   CONTROLE DE PONTOS (steps) — filtro de nível de perseguição
   ============================================================ */
.step-dots {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    height: 40px;
    padding: 0 0.35rem;
}

.step-dot {
    width: 12px;
    height: 12px;
    flex: 0 0 auto;
    border: none;
    border-radius: 50%;
    background: #c7ccd2;
    padding: 0;
    cursor: pointer;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.step-dot--baixo      { background: #4CAF50; }
.step-dot--moderado   { background: #F2C037; }
.step-dot--alto       { background: #F08C2E; }
.step-dot--muito-alto { background: #E2592B; }
.step-dot--extremo    { background: #D13438; }

.step-dot:hover { transform: scale(1.25); }

.step-dot--ativo {
    transform: scale(1.7);
    box-shadow: 0 0 0 3px rgba(19, 40, 62, 0.12);
}

.step-dots__label {
    font-size: 0.8rem;
    color: var(--label-muted);
    margin-top: 0.35rem;
}

/* ============================================================
   FILTRO PERSEGUIÇÃO — caixa (alinhada) + painel accordion
   ============================================================ */
.pers-control { position: relative; }

.pers-control__toggle {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    font-family: var(--font-corpo);
    font-size: 0.95rem;
    padding: 0.55rem 0.75rem;
    border: 1px solid rgba(19, 40, 62, 0.18);
    border-radius: 0.5rem;
    background: var(--surface-2);
    color: var(--text);
    cursor: pointer;
    text-align: left;
    -webkit-appearance: none;
    appearance: none;
}

.pers-control__toggle:focus {
    outline: 2px solid var(--color-ouro);
    outline-offset: 0;
}

.pers-control__valor { flex: 1 1 auto; }

.pers-control__seta {
    flex: 0 0 auto;
    opacity: 0.7;
    transition: transform 0.2s ease;
}

.pers-control.is-open .pers-control__seta { transform: rotate(180deg); }

.pers-dot {
    flex: 0 0 auto;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #c7ccd2;
    display: inline-block;
}

.pers-control__panel {
    position: absolute;
    top: calc(100% + 0.35rem);
    left: 0;
    z-index: 30;
    background: var(--surface);
    border: 1px solid rgba(19, 40, 62, 0.12);
    border-radius: 0.5rem;
    box-shadow: 0 10px 30px rgba(19, 40, 62, 0.18);
    padding: 0.5rem 0.85rem;
}

.pers-control__panel[hidden] { display: none; }

.pers-control__panel .step-dots {
    height: auto;
    padding: 0.4rem 0.35rem;
}

/* ============================================================
   BARRA DE FILTROS EM ACCORDION (/nacoes/)
   ============================================================ */
.nacoes-filtros__toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.6rem 1.1rem;
    background: var(--surface);
    border: 1px solid rgba(19, 40, 62, 0.15);
    border-radius: 0.5rem;
    color: var(--text);
    font-family: var(--font-corpo);
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
}

.nacoes-filtros__toggle:hover {
    background: var(--color-azul);
    border-color: var(--color-azul);
    color: var(--color-bege);
}

.nacoes-filtros__seta {
    opacity: 0.7;
    transition: transform 0.2s ease;
}

.nacoes-filtros.is-open .nacoes-filtros__seta { transform: rotate(180deg); }

.nacoes-filtros__corpo { margin-top: 1rem; }
.nacoes-filtros__corpo[hidden] { display: none; }

/* Régua de pontos em linha única, alinhada à altura dos outros campos */
.step-dots-row {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    min-height: 40px;
}

.step-dots-row .step-dots__label {
    margin-top: 0;
}

/* Ícone de população (pessoas) no card de nação */
.card__meta--pop {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}
.card__pop-icon {
    flex: 0 0 auto;
    opacity: 0.7;
}

/* Mobile: manter medidor ao lado do texto (nunca abaixo) */
@media (max-width: 600px) {
    .nacao-card__body {
        flex-direction: row;
        align-items: center;
    }
    .nacao-gauge { width: 88px; }
}

/* ============================================================
   PADRÕES COMUNS DAS PÁGINAS INTERNAS (wireframes)
   ============================================================ */
/* Breadcrumb */
.breadcrumb {
    background: var(--surface);
    border-bottom: 1px solid rgba(19, 40, 62, 0.08);
    padding: 0.7rem 0;
    font-size: 0.85rem;
}
.breadcrumb__inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
}
.breadcrumb__link { color: var(--label-muted); text-decoration: none; }
.breadcrumb__link:hover { color: var(--color-ouro); }
.breadcrumb__sep { color: var(--label-muted); opacity: 0.5; }
.breadcrumb__atual { color: var(--text); font-weight: 600; }

/* Faixa de estatísticas (sob o hero escuro) */
.stats-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem 2.5rem;
    margin-top: 1.5rem;
    padding-top: 1.25rem;
    border-top: 1px solid rgba(250, 248, 242, 0.18);
}
.stats-strip__item {
    display: flex;
    flex-direction: column;
}
.stats-strip__valor {
    font-family: var(--font-titulo);
    font-size: 1.6rem;
    font-weight: 700;
    color: var(--color-ambar);
    line-height: 1.1;
}
.stats-strip__label {
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    opacity: 0.8;
}

/* Navegador anterior/próximo */
.prev-next {
    border-top: 1px solid rgba(19, 40, 62, 0.1);
    background: var(--surface);
}
.prev-next__inner {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.5rem var(--container-pad);
}
.prev-next__link {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    text-decoration: none;
    max-width: 45%;
}
.prev-next__link--next { text-align: right; margin-left: auto; }
.prev-next__dir {
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-ouro);
    font-weight: 600;
}
.prev-next__titulo {
    font-family: var(--font-titulo);
    color: var(--text);
}
.prev-next__link:hover .prev-next__titulo { color: var(--color-ouro); }

@media (max-width: 600px) {
    .stats-strip { gap: 1rem 1.5rem; }
    .stats-strip__valor { font-size: 1.3rem; }
}

/* ============================================================
   SINGLE PESSOA — modo bíblico (seções ricas)
   ============================================================ */
.pessoa-header__orig {
    font-size: 1rem;
    color: var(--color-ambar);
    opacity: 0.9;
    margin: 0 0 0.25rem;
}
.pessoa-header__orig span { opacity: 0.8; font-style: italic; }

/* Versículos marcantes */
.pessoa-versiculos { padding-top: 2.5rem; padding-bottom: 0; }
.pessoa-versiculo-item {
    max-width: 760px;
    margin: 0 auto 1.25rem;
    padding-left: 1.25rem;
    border-left: 4px solid var(--color-ouro);
}
.pessoa-versiculo-item p {
    font-family: var(--font-titulo);
    font-size: 1.25rem;
    font-style: italic;
    color: var(--text);
    margin: 0 0 0.35rem;
}
.pessoa-versiculo-item cite {
    font-style: normal;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--color-ouro);
}

/* Visões/feitos */
.feitos-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1.25rem;
}
.feito-card {
    background: var(--surface);
    border-radius: var(--radius-card);
    box-shadow: var(--shadow-card);
    padding: 1.25rem;
    border-left: 4px solid var(--color-ouro);
}
.feito-card__titulo {
    font-family: var(--font-titulo);
    font-size: 1.1rem;
    color: var(--text);
    margin: 0 0 0.4rem;
}
.feito-card__desc { font-size: 0.92rem; color: var(--text-soft); margin: 0 0 0.5rem; }
.feito-card__ref {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--color-ouro);
}

/* Família / locais (lista de definição) */
.pessoa-duas-colunas {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
    align-items: start;
}
.familia-lista { margin: 0; }
.familia-lista--2col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem 2rem;
}
.familia-lista__item {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.5rem 0;
    border-bottom: 1px solid rgba(19, 40, 62, 0.08);
}
.familia-lista__item dt { font-weight: 600; color: var(--label-muted); }
.familia-lista__item dd { margin: 0; color: var(--text); text-align: right; }

.livro-rel-card { display: block; text-decoration: none; }

@media (max-width: 700px) {
    .pessoa-duas-colunas { grid-template-columns: 1fr; }
    .familia-lista--2col { grid-template-columns: 1fr; }
}

/* ============================================================
   HERO GENÉRICO DE ENTIDADE (religião/região) + componentes
   ============================================================ */
.entidade-header {
    background: linear-gradient(135deg, var(--color-azul) 0%, #1e3a5a 100%);
    color: var(--color-bege);
    padding: 3rem var(--container-pad);
}
.entidade-header .container { max-width: var(--container-max); }
.entidade-header__eyebrow {
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--color-ouro);
    margin: 0 0 0.4rem;
}
.entidade-header__titulo {
    font-family: var(--font-titulo);
    font-size: 2.6rem;
    font-weight: 700;
    color: var(--color-ambar);
    margin: 0 0 0.4rem;
    line-height: 1.15;
}
.entidade-header__orig {
    font-size: 1.05rem;
    color: var(--color-bege);
    opacity: 0.9;
    margin: 0 0 0.4rem;
}
.entidade-header__orig span { font-style: italic; opacity: 0.85; }
.entidade-header__metadados {
    font-size: 0.95rem;
    opacity: 0.82;
    margin: 0;
}

/* Pilar numerado (reusa .feito-card) */
.feito-card__num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.6rem;
    height: 1.6rem;
    border-radius: 50%;
    background: var(--color-ouro);
    color: #fff;
    font-size: 0.9rem;
    margin-right: 0.4rem;
}

/* Como dialogar (itens classificados por tipo) */
.dialogo-lista {
    display: grid;
    gap: 0.85rem;
    max-width: 820px;
}
.dialogo-item {
    background: var(--surface);
    border-left: 4px solid var(--color-oliva);
    border-radius: 0.5rem;
    padding: 1rem 1.25rem;
    box-shadow: var(--shadow-card);
}
.dialogo-item p { margin: 0.35rem 0 0; }
.dialogo-item__tag {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.dialogo-item--ponte      { border-left-color: #4CAF50; }
.dialogo-item--ponte .dialogo-item__tag { color: #3a8f43; }
.dialogo-item--evitar     { border-left-color: #D13438; }
.dialogo-item--evitar .dialogo-item__tag { color: #b02b2f; }
.dialogo-item--perguntar  { border-left-color: var(--color-ouro); }
.dialogo-item--perguntar .dialogo-item__tag { color: var(--color-ouro); }

@media (max-width: 600px) {
    .entidade-header__titulo { font-size: 1.9rem; }
}

/* ============================================================
   INDICADORES MISSIONÁRIOS (região) — codificados por severidade
   ============================================================ */
.indicadores-missao {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 1rem;
}
.ind-missao {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    padding: 1.1rem 1.25rem;
    border-radius: var(--radius-card);
    background: var(--surface);
    border-left: 5px solid var(--color-azul);
    box-shadow: var(--shadow-card);
}
.ind-missao__valor {
    font-family: var(--font-titulo);
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--text);
    line-height: 1.1;
}
.ind-missao__label { font-size: 0.92rem; color: var(--text-soft); }
.ind-missao__fonte {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--label-muted);
    opacity: 0.8;
    margin-top: 0.25rem;
}
.ind-missao--bom   { border-left-color: #4CAF50; }
.ind-missao--medio { border-left-color: #F08C2E; }
.ind-missao--alto  { border-left-color: #D13438; }
.ind-missao--alto .ind-missao__valor  { color: #b02b2f; }

/* ============================================================
   SISTEMA DE DESIGN DAS PÁGINAS DE ENTIDADE (wireframes)
   Namespace .ent-* — reutilizável (religião, região, pessoa)
   ============================================================ */
/* min-height evita o rodapé "grudado" em páginas com pouco conteúdo
   (login, obrigado etc.): o card fica curto, mas a área de conteúdo não. */
.ent-page { padding: 1.5rem 0 4.5rem; min-height: 56vh; }
.ent-page .container { max-width: 1040px; }

/* Rótulo de seção com linha divisória */
.ent-sl {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    font-size: 0.78rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--label-muted);
    margin: 1.75rem 0 0.75rem;
}
.ent-sl::after { content: ""; flex: 1; height: 1px; background: rgba(19,40,62,0.12); }
.ent-sl__sub { font-size: 0.72rem; font-weight: 400; text-transform: none; letter-spacing: 0; color: var(--text-soft); flex: 0 0 auto; }

/* Card base */
.ent-card {
    background: var(--surface);
    border: 1px solid rgba(19,40,62,0.10);
    border-radius: var(--radius-card);
    padding: 1.5rem;
    box-shadow: var(--shadow-card);
}
.ent-card__title {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-family: var(--font-titulo);
    font-size: 1.15rem;
    font-weight: 600;
    color: var(--text);
    margin: 0 0 1rem;
}
.ent-card__title i { color: var(--color-ouro); font-size: 1.2rem; }
.ent-lead { font-size: 1.05rem; line-height: 1.8; color: var(--text); margin: 0 0 0.85rem; }
.ent-body { font-size: 0.98rem; line-height: 1.8; color: var(--text-soft); margin: 0 0 0.85rem; }
.ent-body:last-child, .ent-lead:last-child { margin-bottom: 0; }

.ent-two-col { display: grid; grid-template-columns: 2fr 1fr; gap: 1rem; align-items: start; }

/* Hero */
.ent-hero {
    background: linear-gradient(135deg, #13283E 0%, #1e3a55 100%);
    color: var(--color-bege);
    border-radius: var(--radius-card);
    overflow: hidden;
}
.ent-hero__top {
    display: grid;
    grid-template-columns: 104px 1fr;
    gap: 1.5rem;
    padding: 1.75rem;
    align-items: start;
}
.ent-hero__icon {
    width: 104px; height: 104px;
    border-radius: var(--radius-card);
    background: rgba(255,255,255,0.06);
    border: 1px solid rgba(255,255,255,0.14);
    display: flex; align-items: center; justify-content: center;
}
.ent-hero__icon i { font-size: 3rem; color: #9db4cc; }
.ent-hero__eyebrow {
    font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.06em;
    color: var(--color-ouro); margin: 0 0 0.4rem;
    display: flex; align-items: center; gap: 0.4rem;
}
.ent-hero__title { font-family: var(--font-titulo); font-size: 2.1rem; font-weight: 700; color: var(--color-ambar); margin: 0 0 0.3rem; line-height: 1.15; }
.ent-hero__also { font-size: 0.95rem; color: #9db4cc; margin: 0 0 0.9rem; font-style: italic; }
.ent-hero__meta { display: flex; flex-wrap: wrap; gap: 0.5rem 1rem; }
.ent-hero__meta-item { display: flex; flex-direction: column; }
.ent-hero__meta-label { font-size: 0.72rem; color: #9db4cc; text-transform: uppercase; letter-spacing: 0.04em; }
.ent-hero__meta-value { font-size: 0.95rem; color: #d7e3ef; font-weight: 600; }
.ent-hero__stats { display: flex; flex-wrap: wrap; border-top: 1px solid rgba(255,255,255,0.12); }
.ent-hero__stat { flex: 1 1 110px; padding: 0.9rem 0.75rem; text-align: center; border-right: 1px solid rgba(255,255,255,0.12); }
.ent-hero__stat:last-child { border-right: none; }
.ent-hero__stat-n { font-family: var(--font-titulo); font-size: 1.5rem; font-weight: 700; color: var(--color-ambar); }
.ent-hero__stat-l { font-size: 0.75rem; color: #9db4cc; margin-top: 0.15rem; }

/* Pilares */
.ent-pilares { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 0.75rem; }
.ent-pilar { background: var(--surface-2); border-radius: var(--radius-card); padding: 1.1rem 0.9rem; text-align: center; }
.ent-pilar__num { font-family: var(--font-titulo); font-size: 2rem; font-weight: 700; color: var(--color-ouro); line-height: 1; }
.ent-pilar__title { font-size: 0.98rem; font-weight: 600; color: var(--text); margin: 0.4rem 0 0.25rem; }
.ent-pilar__text { font-size: 0.85rem; color: var(--text-soft); line-height: 1.5; }

/* Vertentes */
.ent-vertentes { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 0.85rem; }
.ent-vertente { background: var(--surface-2); border-radius: var(--radius-card); padding: 1.1rem; }
.ent-vertente__name { font-size: 1.05rem; font-weight: 600; color: var(--text); }
.ent-vertente__pct { font-size: 0.9rem; color: var(--color-ouro); margin-bottom: 0.4rem; }
.ent-vertente__text { font-size: 0.9rem; color: var(--text-soft); line-height: 1.55; }
.ent-bar { height: 6px; background: var(--surface); border-radius: 3px; margin-top: 0.6rem; overflow: hidden; }
.ent-bar__fill { height: 100%; background: var(--color-ouro); border-radius: 3px; }

/* Listas (crenças, datas) */
.ent-lista { display: grid; gap: 0.5rem; }
.ent-lista__item { display: flex; gap: 0.7rem; align-items: flex-start; padding: 0.75rem 0.9rem; background: var(--surface-2); border-radius: 0.5rem; }
.ent-lista__icon { color: var(--color-ouro); font-size: 1.1rem; margin-top: 0.1rem; flex-shrink: 0; }
.ent-lista__title { font-size: 0.98rem; font-weight: 600; color: var(--text); margin: 0 0 0.1rem; }
.ent-lista__text { font-size: 0.9rem; color: var(--text-soft); line-height: 1.5; }

/* Timeline */
.ent-timeline { display: grid; }
.ent-tl { display: grid; grid-template-columns: 86px 14px 1fr; gap: 0 0.75rem; align-items: start; }
.ent-tl__date { font-size: 0.8rem; color: var(--label-muted); text-align: right; padding-top: 0.15rem; }
.ent-tl__rail { display: flex; flex-direction: column; align-items: center; }
.ent-tl__dot { width: 12px; height: 12px; border-radius: 50%; background: var(--color-ouro); margin-top: 0.2rem; flex-shrink: 0; }
.ent-tl__line { width: 2px; flex: 1; background: rgba(19,40,62,0.12); min-height: 24px; }
.ent-tl:last-child .ent-tl__line { display: none; }
.ent-tl__content { padding-bottom: 1.1rem; }
.ent-tl__title { font-size: 1rem; font-weight: 600; color: var(--text); margin: 0 0 0.15rem; }
.ent-tl__desc { font-size: 0.9rem; color: var(--text-soft); line-height: 1.5; }

/* Como dialogar */
.ent-dialogo { display: grid; gap: 0.6rem; }
.ent-dialogo__item { background: var(--surface); border: 1px solid rgba(19,40,62,0.10); border-radius: 0.5rem; padding: 0.9rem 1.1rem; }
.ent-dialogo__label { font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--label-muted); margin-bottom: 0.25rem; }
.ent-dialogo__text { font-size: 0.95rem; color: var(--text-soft); line-height: 1.6; }
.ent-dialogo__item--ponte { border-color: rgba(85,96,70,0.5); background: rgba(85,96,70,0.07); }
.ent-dialogo__item--ponte .ent-dialogo__label { color: var(--label-muted); }

/* Box de missão (escuro) */
.ent-missao { background: #13283E; border-radius: var(--radius-card); padding: 1.5rem; color: #a8bbd0; }
.ent-missao__title { display: flex; align-items: center; gap: 0.5rem; font-family: var(--font-titulo); font-size: 1.15rem; font-weight: 600; color: var(--color-ambar); margin: 0 0 0.85rem; }
.ent-missao__item { display: flex; gap: 0.6rem; align-items: flex-start; margin-bottom: 0.7rem; }
.ent-missao__item:last-child { margin-bottom: 0; }
.ent-missao__dot { width: 7px; height: 7px; border-radius: 50%; background: var(--color-ouro); flex-shrink: 0; margin-top: 0.45rem; }
.ent-missao__text { font-size: 0.95rem; line-height: 1.6; }

/* Países (chips com bandeira) */
.ent-paises { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 0.5rem; }
.ent-pais { display: flex; align-items: center; gap: 0.6rem; background: var(--surface-2); border-radius: 0.5rem; padding: 0.55rem 0.75rem; }
.ent-pais img { width: 26px; border-radius: 3px; flex-shrink: 0; }
.ent-pais__name { font-size: 0.92rem; font-weight: 600; color: var(--text); }
.ent-pais__info { font-size: 0.8rem; color: var(--label-muted); }

@media (max-width: 700px) {
    .ent-two-col { grid-template-columns: 1fr; }
    .ent-hero__top { grid-template-columns: 1fr; }
    .ent-hero__icon { width: 76px; height: 76px; }
    .ent-hero__title { font-size: 1.7rem; }
}

/* ============================================================
   PÁGINA DE PAÍS — hero (bandeira + medidor) + índices em tiles
   ============================================================ */
.pais-hero { position: relative; background: linear-gradient(135deg, #13283E 0%, #1d3b59 100%); }
.pais-hero::after { content: ""; position: absolute; right: -60px; top: -60px; width: 280px; height: 280px; border-radius: 50%; background: radial-gradient(circle, rgba(242,183,118,0.22), transparent 70%); pointer-events: none; }
.pais-hero__top { display: flex; gap: 2.25rem; padding: 2.5rem 2.75rem; align-items: center; position: relative; z-index: 1; }
.pais-hero__flagcol { flex: 0 0 auto; display: flex; flex-direction: column; gap: 0.75rem; align-items: center; width: auto; min-width: 170px; }
.pais-hero__flag { width: 170px; border-radius: 10px; border: 3px solid rgba(255,255,255,0.15); box-shadow: 0 6px 18px rgba(0,0,0,0.35); }
.pais-hero .ent-hero__eyebrow { color: var(--color-ambar); }
.pais-hero .ent-hero__title { color: #fff; font-size: 2.6rem; font-weight: 800; }
.pais-hero__orar { display: inline-flex; align-items: center; gap: 0.5rem; white-space: nowrap; margin-top: 1.4rem; }
.pais-hero__info { flex: 1 1 auto; min-width: 0; }
/* .pais-hero__share fica na mesma linha dos chips — ver .pais-chips-row;
   margin-left:auto (de .art-share) garante que fique à direita mesmo sem chips. */
.pais-hero__tags { display: flex; flex-wrap: wrap; gap: 0.45rem; margin-top: 0.85rem; }
.pais-tag { font-size: 0.78rem; font-weight: 600; padding: 0.25rem 0.7rem; border-radius: 1rem; background: rgba(250,248,242,0.12); color: var(--color-bege); }

.pais-hero__bottom { position: relative; z-index: 1; padding: 1.25rem 2.75rem; border-top: 1px solid rgba(255,255,255,0.12); }
.pais-perseg__label { display: block; font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.05em; color: #9db4cc; margin-bottom: 0.5rem; }
.pais-perseg__row { display: flex; align-items: center; gap: 0.75rem; }
.pais-perseg__bar { flex: 1; height: 8px; background: rgba(255,255,255,0.15); border-radius: 4px; overflow: hidden; }
.pais-perseg__fill { height: 100%; border-radius: 4px; }
.pais-perseg__fill--bom { background: #4CAF50; } .pais-perseg__fill--medio { background: #F08C2E; } .pais-perseg__fill--alto { background: #D13438; }
.pais-perseg__num { font-family: var(--font-titulo); font-size: 1.25rem; font-weight: 700; color: var(--color-bege); }
.pais-perseg__num small { font-size: 0.7rem; opacity: 0.7; }
.pais-perseg__badge { display: inline-block; margin-top: 0.5rem; font-size: 0.75rem; font-weight: 600; padding: 0.2rem 0.6rem; border-radius: 1rem; }
.pais-perseg__badge--bom { background: rgba(76,175,80,0.2); color: #aee0b1; }
.pais-perseg__badge--medio { background: rgba(240,140,46,0.2); color: #f3c08a; }
.pais-perseg__badge--alto { background: rgba(209,52,56,0.22); color: #f0a3a5; }
.pais-govbox { text-align: left; }
.pais-govbox__label { display: block; font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.05em; color: #9db4cc; margin-bottom: 0.25rem; }
.pais-govbox__value { font-size: 1rem; font-weight: 600; color: #d7e3ef; }

/* Estado vazio/erro dos blocos dinâmicos (indicadores, calendário) */
.ind-empty { opacity: 0.6; margin: 0.5rem 0; }
.ind-empty--center { text-align: center; }

/* Índices em tiles agrupados */
.pais-indices { margin-top: 0.5rem; }
.ind-grupo { margin-bottom: 1.5rem; }
.ind-grupo__label { font-size: 0.82rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--label-muted); margin-bottom: 0.6rem; }
.ind-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 0.7rem; }
.ind-tile {
    position: relative;
    background: var(--surface);
    border: 1px solid rgba(19,40,62,0.1);
    border-left: 4px solid var(--color-azul);
    border-radius: 0.6rem;
    padding: 0.85rem 0.95rem;
    box-shadow: var(--shadow-card);
}
.ind-tile__icon { color: var(--label-muted); font-size: 1.05rem; }
.ind-tile__valor { display: block; font-family: var(--font-titulo); font-size: 1.5rem; font-weight: 700; color: var(--text); line-height: 1.1; margin-top: 0.2rem; }
.ind-tile__label { display: block; font-size: 0.85rem; color: var(--text-soft); }
.ind-tile__fonte { display: block; font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.03em; color: var(--label-muted); opacity: 0.75; margin-top: 0.3rem; }
.ind-tile--bom   { border-left-color: #4CAF50; }
.ind-tile--medio { border-left-color: #F08C2E; }
.ind-tile--alto  { border-left-color: #D13438; }
.ind-tile--alto .ind-tile__valor { color: #b02b2f; }
.ind-tile--missao { border-left-color: var(--color-ouro); }
.ind-tile--missao .ind-tile__valor { color: var(--color-ouro); }

.ind-legenda { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 0.5rem; font-size: 0.8rem; color: var(--text-soft); }
.ind-legenda span { display: inline-flex; align-items: center; gap: 0.35rem; }
.ind-dot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; }
.ind-dot--bom { background: #4CAF50; } .ind-dot--medio { background: #F08C2E; } .ind-dot--alto { background: #D13438; } .ind-dot--missao { background: var(--color-ouro); }
.ind-ano { font-size: 0.78rem; color: var(--label-muted); opacity: 0.7; margin-top: 0.75rem; }

@media (max-width: 700px) {
    .pais-hero__top { flex-direction: column; text-align: center; }
    .pais-hero__flagcol { width: 100%; align-items: center; }
    .pais-hero__flag { width: 130px; }
    .pais-hero__info .ent-hero__eyebrow,
    .pais-hero__info .ent-hero__meta { justify-content: center; }
    .pais-chips-row { justify-content: center; }
    .pais-chips { justify-content: center; }
    .pais-hero__share.art-share { order: -1; width: 100%; justify-content: center; margin-left: 0; }
}

/* ============================================================
   PÁGINA DE PESSOA — versículo marcante + avatar com foto + ref na lista
   ============================================================ */
.ent-versiculo {
    background: var(--surface-2);
    border-left: 3px solid var(--color-ouro);
    border-radius: 0 var(--radius-card) var(--radius-card) 0;
    padding: 1rem 1.25rem;
    margin-bottom: 0.6rem;
}
.ent-versiculo:last-child { margin-bottom: 0; }
.ent-versiculo__text { font-family: var(--font-titulo); font-size: 1.05rem; font-style: italic; color: var(--text); line-height: 1.6; margin: 0; }
.ent-versiculo__ref { font-size: 0.8rem; color: var(--color-ouro); font-weight: 600; margin: 0.4rem 0 0; }

/* ============================================================
   ELEMENTOS VISUAIS DENTRO DA BIOGRAFIA (.entry-content)
   Caixa de fatos, destaque e linha do tempo. Reaproveitáveis em
   todas as paginas de pessoa (cristianismo).
   ============================================================ */

/* Caixa de fatos rapidos */
.bio-fatos {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 0.75rem;
    margin: 0 0 1.5rem;
}
.bio-fato {
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: var(--radius-card);
    padding: 0.85rem 1rem;
}
.bio-fato__label {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--label-muted);
    font-weight: 600;
    margin: 0 0 0.3rem;
}
.bio-fato__label .ti { color: var(--color-ouro); font-size: 0.95rem; }
.bio-fato__valor { font-size: 0.95rem; font-weight: 600; color: var(--text); line-height: 1.35; margin: 0; }

/* Destaque / citacao em evidencia */
.bio-destaque {
    position: relative;
    background: var(--panel-warm);
    border-radius: var(--radius-card);
    padding: 1.25rem 1.4rem 1.25rem 3rem;
    margin: 1.5rem 0;
    font-family: var(--font-titulo);
    font-size: 1.15rem;
    font-style: italic;
    line-height: 1.55;
    color: var(--text);
}
.bio-destaque::before {
    content: "\201C";
    position: absolute;
    left: 0.7rem;
    top: 0.3rem;
    font-family: var(--font-titulo);
    font-size: 2.6rem;
    line-height: 1;
    color: var(--color-ouro);
}

/* Figura/imagem dentro da biografia */
.bio-fig { margin: 1.5rem 0; text-align: center; }
.bio-fig img { max-width: 100%; height: auto; border-radius: var(--radius-card); box-shadow: var(--shadow-card); border: 1px solid var(--border); }
.bio-fig figcaption { font-size: 0.82rem; color: var(--text-soft); margin-top: 0.55rem; font-style: italic; }
/* Variante flutuante (imagem ao lado do texto em telas largas) */
.bio-fig--right { margin: 0.3rem 0 1rem; }
@media (min-width: 700px) {
    .bio-fig--right { float: right; width: 280px; margin: 0.3rem 0 1rem 1.5rem; }
}

/* Linha do tempo da vida */
.bio-linha { display: grid; margin: 1.5rem 0; }
.bio-tl { display: grid; grid-template-columns: 70px 14px 1fr; gap: 0 0.85rem; align-items: start; }
.bio-tl__ano { font-size: 0.85rem; font-weight: 700; color: var(--color-ouro); text-align: right; padding-top: 0.05rem; }
.bio-tl__rail { display: flex; flex-direction: column; align-items: center; }
.bio-tl__dot { width: 11px; height: 11px; border-radius: 50%; background: var(--color-ouro); margin-top: 0.3rem; flex-shrink: 0; }
.bio-tl__line { width: 2px; flex: 1; background: var(--border); min-height: 22px; }
.bio-tl:last-child .bio-tl__line { display: none; }
.bio-tl__txt { font-size: 0.95rem; color: var(--text-soft); line-height: 1.55; padding-bottom: 1rem; }
.bio-tl__txt strong { color: var(--text); font-weight: 600; }

@media (max-width: 560px) {
    .bio-tl { grid-template-columns: 56px 12px 1fr; gap: 0 0.6rem; }
    .bio-destaque { font-size: 1.05rem; padding-left: 2.6rem; }
}

/* Avatar do hero com foto real (substitui o ícone) */
.ent-hero__icon--photo { padding: 0; overflow: hidden; }
.ent-hero__icon--photo img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* Referência opcional dentro de um item de lista (.ent-lista) */
.ent-lista__ref { display: block; font-size: 0.78rem; color: var(--color-ouro); font-weight: 600; margin-top: 0.25rem; }

/* ============================================================
   NOTÍCIAS DO CAMPO — listagem (/noticias-do-campo/)
   ============================================================ */
.campo-page { padding: 1.5rem 0 3rem; }
.campo-hero {
    background: linear-gradient(135deg, #13283E 0%, #1e3a55 100%);
    color: var(--color-bege);
    border-radius: var(--radius-card);
    padding: 2rem 2.25rem;
    margin-bottom: 1.25rem;
}
.campo-hero__eyebrow { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.18em; color: var(--color-ouro); margin: 0 0 0.5rem; display: flex; align-items: center; gap: 0.6rem; }
.campo-hero__eyebrow::before { content: ""; width: 26px; height: 1px; background: var(--color-ouro); }
.campo-hero__title { font-family: var(--font-titulo); font-size: 2rem; color: #fff; font-weight: 700; margin: 0 0 0.5rem; }
.campo-hero__sub { font-size: 0.95rem; color: rgba(255,255,255,0.6); line-height: 1.7; max-width: 560px; margin: 0; }

/* Barra de filtros */
.campo-filtros-bar { background: var(--surface); border: 1px solid rgba(19,40,62,0.10); border-radius: var(--radius-card); padding: 0.85rem 1rem; margin-bottom: 1.5rem; }
.campo-filtros-bar__corpo { display: flex; gap: 0.6rem; flex-wrap: wrap; align-items: center; }
.campo-filtros__busca { flex: 1 1 220px; min-width: 160px; height: 38px; border: 1px solid rgba(19,40,62,0.15); border-radius: 0.5rem; padding: 0 0.8rem; font-family: var(--font-corpo); font-size: 0.9rem; outline: none; }
.campo-filtros__sel { height: 38px; border: 1px solid rgba(19,40,62,0.15); border-radius: 0.5rem; padding: 0 0.7rem; font-family: var(--font-corpo); font-size: 0.88rem; background: var(--surface); color: var(--text); outline: none; }
.campo-filtros__limpar { height: 38px; }
.campo-filtros-box__toggle { display: none; }

/* Card de notícia (.ncard) */
.ncard { background: var(--surface); border: 1px solid rgba(19,40,62,0.10); border-radius: var(--radius-card); overflow: hidden; transition: box-shadow 0.2s; display: flex; flex-direction: column; }
.ncard:hover { box-shadow: 0 4px 18px rgba(19,40,62,0.12); }
.ncard__media { display: block; position: relative; height: 150px; background: #13283E; overflow: hidden; }
.ncard__media::after { content: ""; position: absolute; bottom: 0; left: 0; right: 0; height: 2px; background: var(--color-ouro); }
.ncard__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ncard__ph { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,0.12); font-size: 1.6rem; }
.ncard__region { position: absolute; top: 10px; left: 10px; font-size: 0.7rem; font-weight: 500; padding: 0.2rem 0.55rem; border-radius: 1rem; background: rgba(19,40,62,0.75); color: #fff; display: flex; align-items: center; gap: 0.35rem; }
.ncard__flag { width: 16px; height: 11px; border-radius: 2px; overflow: hidden; display: inline-flex; }
.ncard__flag img { width: 100%; height: 100%; object-fit: cover; }
.ncard__body { padding: 1rem; display: flex; flex-direction: column; flex: 1; }
.ncard__cat { font-size: 0.72rem; color: var(--color-ouro); text-transform: uppercase; letter-spacing: 0.06em; font-weight: 600; margin: 0 0 0.4rem; }
.ncard__title { font-family: var(--font-titulo); font-size: 1.05rem; line-height: 1.35; margin: 0 0 0.5rem; font-weight: 700;
    display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.ncard__title a { color: var(--text); text-decoration: none; }
.ncard__title a:hover { color: var(--color-ouro); }
.ncard__excerpt { font-size: 0.85rem; color: var(--text-soft); line-height: 1.6; margin: 0 0 0.7rem; flex: 1;
    display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.ncard__meta { display: flex; gap: 0.9rem; font-size: 0.75rem; color: var(--label-muted); }
.ncard__meta span { display: inline-flex; align-items: center; gap: 0.3rem; }

/* Destaque */
.campo-destaque { display: grid; grid-template-columns: 1.4fr 1fr; gap: 0.9rem; margin-bottom: 1.75rem; }
.campo-feat { display: block; background: var(--surface); border: 1px solid rgba(19,40,62,0.10); border-radius: var(--radius-card); overflow: hidden; text-decoration: none; transition: box-shadow 0.2s; }
.campo-feat:hover { box-shadow: 0 6px 24px rgba(19,40,62,0.14); }
.campo-feat__media { position: relative; height: 250px; background: #13283E; }
.campo-feat__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.campo-feat__tag { position: absolute; top: 14px; left: 14px; font-size: 0.7rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; padding: 0.25rem 0.7rem; border-radius: 1rem; background: var(--color-ouro); color: #fff; }
.campo-feat__body { padding: 1.2rem; }
.campo-feat__title { font-family: var(--font-titulo); font-size: 1.4rem; color: var(--text); line-height: 1.3; margin: 0 0 0.6rem; font-weight: 700;
    display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.campo-feat__excerpt { font-size: 0.9rem; color: var(--text-soft); line-height: 1.7; margin: 0 0 0.8rem;
    display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.campo-feat-side { display: flex; flex-direction: column; gap: 0.7rem; }
.campo-fs { display: flex; background: var(--surface); border: 1px solid rgba(19,40,62,0.10); border-radius: var(--radius-card); overflow: hidden; text-decoration: none; flex: 1; transition: box-shadow 0.2s; }
.campo-fs:hover { box-shadow: 0 2px 14px rgba(19,40,62,0.10); }
.campo-fs__media { width: 96px; flex-shrink: 0; background: #13283E; display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,0.12); font-size: 1.2rem; overflow: hidden; }
.campo-fs__img { width: 100%; height: 100%; object-fit: cover; }
.campo-fs__body { padding: 0.7rem 0.85rem; display: flex; flex-direction: column; justify-content: center; }
.campo-fs__cat { font-size: 0.65rem; color: var(--color-ouro); text-transform: uppercase; letter-spacing: 0.06em; font-weight: 600; margin: 0 0 0.25rem; }
.campo-fs__title { font-size: 0.88rem; font-weight: 600; color: var(--text); line-height: 1.4; margin: 0; }

/* Layout grid + sidebar */
.campo-layout { display: grid; grid-template-columns: 1fr 280px; gap: 1.75rem; align-items: start; }
.campo-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.campo-sidebar { display: flex; flex-direction: column; gap: 1rem; position: sticky; top: 1rem; }
.campo-sb { background: var(--surface); border: 1px solid rgba(19,40,62,0.10); border-radius: var(--radius-card); overflow: hidden; }
.campo-sb__head { padding: 0.8rem 1rem; border-bottom: 1px solid rgba(19,40,62,0.08); font-size: 0.85rem; font-weight: 600; color: var(--text); display: flex; align-items: center; gap: 0.45rem; }
.campo-sb__head i { color: var(--color-ouro); }
.campo-sb__body { padding: 0.6rem 1rem 0.9rem; }
.campo-pop { display: flex; gap: 0.7rem; padding: 0.6rem 0; border-bottom: 1px solid rgba(19,40,62,0.07); text-decoration: none; }
.campo-pop:last-child { border-bottom: none; padding-bottom: 0; }
.campo-pop__num { font-family: var(--font-titulo); font-size: 1.3rem; color: #cdbfa9; font-weight: 700; line-height: 1; width: 20px; flex-shrink: 0; }
.campo-pop__cat { display: block; font-size: 0.65rem; color: var(--color-ouro); text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 0.15rem; }
.campo-pop__title { display: block; font-size: 0.85rem; font-weight: 600; color: var(--text); line-height: 1.4; }
.campo-cat { display: flex; justify-content: space-between; align-items: center; padding: 0.5rem 0; border-bottom: 1px solid rgba(19,40,62,0.07); }
.campo-cat:last-child { border-bottom: none; padding-bottom: 0; }
.campo-cat__name { font-size: 0.85rem; color: var(--text-soft); display: flex; align-items: center; gap: 0.45rem; }
.campo-cat__name i { color: var(--color-ouro); font-size: 0.95rem; }
.campo-cat__count { font-size: 0.72rem; color: var(--label-muted); background: var(--surface-2); padding: 0.1rem 0.55rem; border-radius: 1rem; }
.campo-nl { background: rgba(206,120,59,0.07); border: 1px solid rgba(206,120,59,0.22); border-radius: var(--radius-card); padding: 1.1rem; }
.campo-nl--dark { background: #13283E; border-color: transparent; }
.campo-nl__label { font-size: 0.7rem; color: var(--color-ouro); text-transform: uppercase; letter-spacing: 0.1em; margin: 0 0 0.4rem; }
.campo-nl__title { font-size: 0.95rem; font-weight: 600; color: var(--text); margin: 0 0 0.3rem; }
.campo-nl--dark .campo-nl__title { color: #fff; }
.campo-nl__sub { font-size: 0.82rem; color: var(--text-soft); line-height: 1.55; margin: 0 0 0.8rem; }
.campo-nl--dark .campo-nl__sub { color: rgba(255,255,255,0.55); }
.campo-nl__btn { width: 100%; justify-content: center; }
.campo-lista__vazio { padding: 2rem 0; color: var(--text-soft); text-align: center; }

/* ============================================================
   NOTÍCIA (single.php) — artigo + sidebar
   ============================================================ */
.read-progress { position: fixed; top: 0; left: 0; height: 3px; width: 0; background: var(--color-ouro); z-index: 1000; transition: width 0.1s ease-out; }
.artigo-page { padding: 1.5rem 0 2rem; }
.artigo-layout { display: grid; grid-template-columns: 1fr 290px; gap: 2rem; align-items: start; }
.artigo-sidebar { display: flex; flex-direction: column; gap: 1rem; position: sticky; top: 1rem; margin-top: 2.4rem; }

.art-header { margin-bottom: 1.25rem; }
.art-cat-row { display: flex; align-items: center; gap: 0.6rem; margin-bottom: 0.9rem; flex-wrap: wrap; }
.art-cat { font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.07em; padding: 0.25rem 0.75rem; border-radius: 1rem; background: var(--color-ouro); color: #fff; }
.art-region { font-size: 0.8rem; color: var(--label-muted); display: flex; align-items: center; gap: 0.4rem; }
.art-region__flag { width: 18px; height: 12px; border-radius: 2px; overflow: hidden; display: inline-flex; }
.art-region__flag img { width: 100%; height: 100%; object-fit: cover; }
.art-title { font-family: var(--font-titulo); font-size: 2.1rem; color: var(--text); font-weight: 700; line-height: 1.2; margin: 0 0 0.7rem; }
.art-lead { font-size: 1.05rem; color: var(--text-soft); line-height: 1.7; margin: 0 0 1.1rem; }
.art-meta { display: flex; align-items: center; gap: 0.75rem 1rem; margin: 1.25rem 0; flex-wrap: wrap; }
.art-author { display: flex; align-items: center; gap: 0.7rem; }
.art-avatar { width: 38px; height: 38px; border-radius: 50%; background: #13283E; display: flex; align-items: center; justify-content: center; color: var(--color-ambar); font-size: 0.95rem; flex-shrink: 0; }
.art-author__name { font-size: 0.92rem; font-weight: 600; color: var(--text); line-height: 1.2; }
.art-author__role { font-size: 0.82rem; color: var(--label-muted); display: flex; align-items: center; gap: 0.35rem; flex-wrap: wrap; }
.art-author__dot { opacity: 0.6; }
.art-share { margin-left: auto; display: flex; gap: 0.4rem; }
.share-btn { width: 38px; height: 38px; border-radius: 50%; border: 1px solid rgba(19,40,62,0.12); background: var(--surface); color: var(--label-muted); display: flex; align-items: center; justify-content: center; cursor: pointer; text-decoration: none; transition: all 0.15s; }
.share-btn:hover { background: var(--color-ouro); border-color: var(--color-ouro); color: #fff; }
/* Mobile: tudo na mesma linha (autor + compartilhar) — reduz avatar/fontes/botões */
@media (max-width: 560px) {
    .art-meta { flex-wrap: nowrap; gap: 0.5rem; align-items: center; }
    .art-author { gap: 0.5rem; min-width: 0; flex: 1 1 auto; }
    .art-author > div { min-width: 0; }            /* permite o nome quebrar se preciso */
    .art-avatar { width: 32px; height: 32px; font-size: 0.85rem; }
    .art-author__name { font-size: 0.82rem; }
    .art-author__role { font-size: 0.68rem; }
    .art-share { gap: 0.3rem; flex-shrink: 0; }
    .share-btn { width: 32px; height: 32px; font-size: 0.9rem; }
}

.art-hero-img { width: 100%; height: 340px; border-radius: var(--radius-card); overflow: hidden; background: #13283E; margin: 1.25rem 0; }
.art-hero-img__img { width: 100%; height: 100%; object-fit: cover; display: block; }

.art-body { font-size: 1.02rem; color: var(--text); line-height: 1.85; }
.art-body p { margin: 0 0 1.1rem; }
.art-body p strong { color: var(--text); font-weight: 600; }
.art-body h2 { font-family: var(--font-titulo); font-size: 1.5rem; color: var(--text); font-weight: 700; margin: 1.8rem 0 0.75rem; }
.art-body h3 { font-size: 1.15rem; color: var(--text); font-weight: 600; margin: 1.4rem 0 0.6rem; }
.art-body ul { margin: 0 0 1.1rem; padding-left: 0; list-style: none; }
.art-body ul li { position: relative; padding-left: 1.4rem; margin-bottom: 0.55rem; line-height: 1.7; }
.art-body ul li::before { content: ""; position: absolute; left: 4px; top: 0.65em; width: 6px; height: 6px; border-radius: 50%; background: var(--color-ouro); }
.art-body blockquote { border-left: 3px solid var(--color-ouro); background: var(--surface-2); border-radius: 0 var(--radius-card) var(--radius-card) 0; padding: 1.1rem 1.4rem; margin: 1.5rem 0; font-family: var(--font-titulo); font-size: 1.15rem; font-style: italic; color: var(--text); line-height: 1.6; }
.art-versiculo { margin: 1.5rem 0; }

.prayer-callout { background: #13283E; border-radius: var(--radius-card); padding: 1.4rem; margin: 1.75rem 0; }
.prayer-callout__label { font-size: 0.72rem; color: var(--color-ouro); text-transform: uppercase; letter-spacing: 0.1em; margin: 0 0 0.6rem; display: flex; align-items: center; gap: 0.45rem; }
.prayer-callout__title { font-family: var(--font-titulo); font-size: 1.15rem; color: #fff; font-weight: 700; margin: 0 0 0.8rem; }
.prayer-callout__item { display: flex; gap: 0.6rem; align-items: flex-start; margin-bottom: 0.55rem; }
.pc-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--color-ouro); flex-shrink: 0; margin-top: 0.5rem; }
.pc-text { font-size: 0.92rem; color: rgba(255,255,255,0.62); line-height: 1.6; }

/* Desktop: horizontal (bandeira | título+sub | botão) via grid + display:contents */
.adopt-cta { background: rgba(206,120,59,0.07); border: 1px solid rgba(206,120,59,0.25); border-radius: var(--radius-card); padding: 1.2rem; margin: 1.75rem 0;
    display: grid; grid-template-columns: auto 1fr auto; grid-template-areas: "flag title btn" "flag sub btn"; align-items: center; column-gap: 1.1rem; row-gap: 0.15rem; }
.adopt-cta__head { display: contents; }
.adopt-cta__flag { grid-area: flag; width: 64px; height: 42px; border-radius: 6px; overflow: hidden; flex-shrink: 0; border: 1px solid rgba(19,40,62,0.12); }
.adopt-cta__flag img { width: 100%; height: 100%; object-fit: cover; display: block; }
.adopt-cta__title { grid-area: title; font-size: 1rem; font-weight: 600; color: var(--text); margin: 0; }
.adopt-cta__sub { grid-area: sub; font-size: 0.85rem; color: var(--text-soft); line-height: 1.5; margin: 0; }
.adopt-cta__btn { grid-area: btn; background: var(--color-ouro); color: #fff; border: none; border-radius: 0.5rem; padding: 0.65rem 1.1rem; font-size: 0.85rem; font-weight: 600; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 0.4rem; white-space: nowrap; text-decoration: none; }
.adopt-cta__btn:hover { background: #b3652f; }
/* Mobile: empilhado (bandeira+título numa linha, sub, botão largura total) */
@media (max-width: 560px) {
    .adopt-cta { display: flex; flex-direction: column; align-items: stretch; gap: 0.9rem; }
    .adopt-cta__head { display: flex; align-items: center; gap: 1rem; }
    .adopt-cta__title { font-size: 1.15rem; font-weight: 700; }
    .adopt-cta__btn { width: 100%; }
}

.art-tags { display: flex; flex-wrap: wrap; gap: 0.45rem; margin: 1.75rem 0; padding-top: 1.2rem; border-top: 1px solid rgba(19,40,62,0.1); }
.art-tag { font-size: 0.75rem; padding: 0.3rem 0.75rem; border-radius: 1rem; background: var(--surface-2); color: var(--text-soft); border: 1px solid rgba(19,40,62,0.1); text-decoration: none; }
.art-tag:hover { border-color: var(--color-ouro); color: var(--color-ouro); }

.author-box { background: var(--surface); border: 1px solid rgba(19,40,62,0.1); border-radius: var(--radius-card); padding: 1.2rem; margin: 1.75rem 0; display: flex; gap: 0.9rem; align-items: flex-start; }
.author-box__avatar { width: 50px; height: 50px; border-radius: 50%; background: #13283E; display: flex; align-items: center; justify-content: center; color: var(--color-ambar); font-size: 1.2rem; flex-shrink: 0; }
.author-box__name { font-size: 0.95rem; font-weight: 600; color: var(--text); margin-bottom: 0.1rem; }
.author-box__role { font-size: 0.78rem; color: var(--color-ouro); margin-bottom: 0.5rem; }
.author-box__bio { font-size: 0.85rem; color: var(--text-soft); line-height: 1.6; margin: 0; }

/* Sidebar do artigo */
.country-mini { display: flex; align-items: center; gap: 0.7rem; margin-bottom: 0.8rem; }
.country-mini__flag { width: 48px; height: 32px; border-radius: 5px; overflow: hidden; border: 1px solid rgba(19,40,62,0.12); flex-shrink: 0; }
.country-mini__flag img { width: 100%; height: 100%; object-fit: cover; display: block; }
.country-mini__name { font-size: 0.95rem; font-weight: 600; color: var(--text); }
.country-mini__region { font-size: 0.78rem; color: var(--label-muted); }
.country-stat { display: flex; justify-content: space-between; padding: 0.4rem 0; border-bottom: 1px solid rgba(19,40,62,0.07); font-size: 0.82rem; }
.country-stat:last-of-type { border-bottom: none; }
.country-stat__label { color: var(--label-muted); }
.country-stat__val { font-weight: 600; color: var(--text); }
.country-link { display: flex; align-items: center; justify-content: center; gap: 0.35rem; margin-top: 0.7rem; font-size: 0.82rem; color: var(--color-ouro); font-weight: 600; text-decoration: none; }
.related-item { display: flex; gap: 0.65rem; padding: 0.6rem 0; border-bottom: 1px solid rgba(19,40,62,0.07); text-decoration: none; }
.related-item:last-child { border-bottom: none; padding-bottom: 0; }
.related-item__img { width: 58px; height: 46px; border-radius: 6px; background: #13283E; flex-shrink: 0; display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,0.12); overflow: hidden; }
.related-item__thumb { width: 100%; height: 100%; object-fit: cover; }
.related-item__cat { display: block; font-size: 0.62rem; color: var(--color-ouro); text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 0.15rem; }
.related-item__title { display: block; font-size: 0.82rem; font-weight: 600; color: var(--text); line-height: 1.4; }

.art-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 1.5rem; padding: 1.1rem 0; border-top: 1px solid rgba(19,40,62,0.1); border-bottom: 1px solid rgba(19,40,62,0.1); }
.art-nav__item { text-decoration: none; }
.art-nav__item--next { text-align: right; }
.art-nav__label { font-size: 0.7rem; color: var(--label-muted); text-transform: uppercase; letter-spacing: 0.07em; margin-bottom: 0.25rem; display: flex; align-items: center; gap: 0.35rem; }
.art-nav__item--next .art-nav__label { justify-content: flex-end; }
.art-nav__label i { color: var(--color-ouro); }
.art-nav__title { font-size: 0.9rem; font-weight: 600; color: var(--text); line-height: 1.4; }

@media (max-width: 860px) {
    .campo-destaque { grid-template-columns: 1fr; }
    .campo-layout, .artigo-layout { grid-template-columns: 1fr; }
    .campo-sidebar, .artigo-sidebar { position: static; }
    .artigo-sidebar { margin-top: 0; }
    .art-title { font-size: 1.6rem; }
    .art-hero-img { height: 220px; }
}
@media (max-width: 560px) {
    .campo-grid { grid-template-columns: 1fr; }
    .campo-feat-side { flex-direction: column; }
}

/* ============================================================
   AJUSTES — bandeiras inteiras, rodapé Contato centralizado,
   clamp dos cards da seção Campo na home
   ============================================================ */
/* Rodapé: coluna Contato — bloco centralizado na célula (linhas continuam à esquerda) */
.footer__col--center { display: flex; flex-direction: column; align-items: center; }

/* Home → seção Campo Missionário: título 3 linhas, subtítulo 4 linhas */
#secao-campo .card__title {
    display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
#secao-campo .card__meta {
    display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden;
}

/* ============================================================
   PÁGINA DE DOAÇÃO (page-doar.php)
   ============================================================ */
.doar-metodos { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 1rem; }
.doar-metodo { background: var(--surface); border: 1px solid rgba(19,40,62,0.1); border-radius: var(--radius-card); padding: 1.5rem; box-shadow: var(--shadow-card); display: flex; flex-direction: column; }
.doar-metodo__icon { width: 48px; height: 48px; border-radius: 50%; background: rgba(206,120,59,0.12); color: var(--color-ouro); display: flex; align-items: center; justify-content: center; font-size: 1.5rem; margin-bottom: 0.9rem; }
.doar-metodo__title { font-family: var(--font-titulo); font-size: 1.25rem; color: var(--text); margin: 0 0 0.4rem; }
.doar-metodo__text { font-size: 0.9rem; color: var(--text-soft); line-height: 1.6; margin: 0 0 1rem; flex: 1; }
.doar-metodo__chave { display: flex; align-items: center; gap: 0.5rem; background: var(--surface-2); border: 1px dashed rgba(19,40,62,0.2); border-radius: 0.5rem; padding: 0.6rem 0.8rem; }
.doar-metodo__chave code { font-size: 0.9rem; color: var(--text); font-weight: 600; word-break: break-all; flex: 1; }
.doar-metodo__copy { flex-shrink: 0; width: 34px; height: 34px; border-radius: 0.4rem; border: 1px solid rgba(19,40,62,0.15); background: var(--surface); color: var(--label-muted); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; transition: all 0.15s; }
.doar-metodo__copy:hover { background: var(--color-ouro); border-color: var(--color-ouro); color: #fff; }
.doar-metodo__dados { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.45rem; }
.doar-metodo__dados li { display: flex; justify-content: space-between; gap: 0.5rem; font-size: 0.88rem; border-bottom: 1px solid rgba(19,40,62,0.07); padding-bottom: 0.45rem; }
.doar-metodo__dados li:last-child { border-bottom: none; }
.doar-metodo__dados span { color: var(--label-muted); }
.doar-metodo__dados strong { color: var(--text); }
.doar-metodo__btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.4rem; }
.doar-metodo__nota { font-size: 0.75rem; color: var(--label-muted); opacity: 0.75; margin: 0.5rem 0 0; text-align: center; }

/* ============================================================
   CARROSSEL "Ao Redor do Mundo" — nome + medidor (sem localização/população)
   ============================================================ */
.carousel__card-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 0.5rem; }
.carousel__card-head .carousel__card-title { margin-bottom: 0; }
.carousel__gauge { position: relative; width: 70px; flex: 0 0 auto; }
.carousel__gauge-svg { width: 100%; display: block; overflow: visible; }
.carousel__gauge-track { stroke: rgba(255,255,255,0.22); stroke-width: 9; stroke-linecap: round; }
.carousel__gauge-fill { stroke-width: 9; stroke-linecap: round; }
.carousel__gauge-num { position: absolute; top: 17px; left: 0; right: 0; text-align: center; font-family: var(--font-titulo); font-weight: 700; font-size: 1rem; color: #fff; line-height: 1; }
.carousel__gauge::after { content: attr(data-rotulo); display: block; text-align: center; font-size: 0.6rem; text-transform: uppercase; letter-spacing: 0.04em; white-space: nowrap; color: rgba(255,255,255,0.6); margin-top: 1px; }

/* ============================================================
   CARROSSEL — setas de navegação + arrastar + card como link
   ============================================================ */
.carousel__viewport { position: relative; touch-action: pan-y; }
.carousel__card { text-decoration: none; color: inherit; cursor: pointer; }
.carousel__nav {
    position: absolute; top: 50%; transform: translateY(-50%); z-index: 5;
    width: 42px; height: 42px; border-radius: 50%; border: none;
    background: rgba(12,42,64,0.88); color: #fff; cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 2px 10px rgba(0,0,0,0.3); transition: background 0.15s;
}
.carousel__nav:hover { background: var(--color-ouro); }
.carousel__nav--prev { left: 10px; }
.carousel__nav--next { right: 10px; }
.carousel__nav svg { width: 20px; height: 20px; }

/* Calendário de oração: 12 itens no desktop, 8 no mobile */
@media (max-width: 600px) {
    .orar-calendario__lista .orar-cal-item:nth-child(n+9) { display: none; }
}

/* Carrossel: espaçamento entre fileiras (2ª fileira) */
.carousel__viewport--row2 { margin-top: 1.25rem; }

/* ============================================================
   CAMPO — grupos por continente + sidebar de continentes (links)
   ============================================================ */
.campo-grupo { margin-bottom: 2.25rem; }
.campo-grupo__head { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: 0.9rem; padding-bottom: 0.5rem; border-bottom: 1px solid rgba(19,40,62,0.1); }
.campo-grupo__titulo { font-family: var(--font-titulo); font-size: 1.35rem; font-weight: 700; color: var(--text); text-decoration: none; display: inline-flex; align-items: center; gap: 0.45rem; }
.campo-grupo__titulo i { color: var(--color-ouro); font-size: 1.1rem; }
.campo-grupo__titulo:hover { color: var(--color-ouro); }
.campo-grupo__link { font-size: 0.82rem; font-weight: 600; color: var(--color-ouro); text-decoration: none; white-space: nowrap; display: inline-flex; align-items: center; gap: 0.3rem; }
.campo-grupo__link:hover { color: var(--text); }

/* Sidebar de continentes: itens viram links */
a.campo-cat { text-decoration: none; transition: color 0.15s; }
a.campo-cat:hover .campo-cat__name { color: var(--color-ouro); }
.campo-cat--ativo .campo-cat__name { color: var(--color-ouro); font-weight: 600; }
.campo-cat--ativo .campo-cat__count { background: var(--color-ouro); color: #fff; }

/* Reduz o espaço entre o cabeçalho (entidade-header) e a 1ª seção */
.entidade-header + .home-section { padding-top: 2.25rem; }

/* Página "Últimas notícias" — lista só de títulos, mais recentes primeiro */
.campo-ultimas { list-style: none; margin: 0; padding: 0; counter-reset: cu; max-width: 820px; }
.campo-ultimas__item { border-bottom: 1px solid rgba(19,40,62,0.1); }
.campo-ultimas__item a {
    display: block; padding: 0.85rem 0.25rem;
    font-family: var(--font-titulo); font-size: 1.1rem; color: var(--text);
    text-decoration: none; line-height: 1.4; transition: color 0.15s, padding 0.15s;
}
.campo-ultimas__item a:hover { color: var(--color-ouro); padding-left: 0.6rem; }

/* Subtítulo dos cards de sidebar (ex.: "Últimos 30 dias") */
.campo-sb__sub { font-size: 0.72rem; color: var(--label-muted); opacity: 0.8; padding: 0 1rem 0.5rem; margin: -0.2rem 0 0; }

/* Notícia: card de local sem bandeira (região/continente) + múltiplos países */
.adopt-cta__flag--icon { display: flex; align-items: center; justify-content: center; background: rgba(206,120,59,0.12); color: var(--color-ouro); font-size: 1.6rem; }
.country-mini__flag--icon { display: flex; align-items: center; justify-content: center; background: rgba(19,40,62,0.06); color: var(--color-ouro); font-size: 1.2rem; }
.campo-sb__div { border: none; border-top: 1px solid rgba(19,40,62,0.1); margin: 0.85rem 0; }

/* ============================================================
   "Mais notícias" (fim do artigo) — cards compactos, em coluna
   ============================================================ */
.mais-noticias { padding: 3rem var(--container-pad); }
.mais-noticias .section-title { text-align: left; }
.mais-noticias__lista { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
@media (max-width: 900px) { .mais-noticias__lista { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .mais-noticias__lista { grid-template-columns: 1fr; } }
.mn-card {
    display: flex; gap: 1rem; align-items: stretch;
    background: var(--surface); border: 1px solid rgba(19,40,62,0.1); border-radius: var(--radius-card);
    overflow: hidden; box-shadow: var(--shadow-card); text-decoration: none; transition: box-shadow 0.2s;
}
.mn-card:hover { box-shadow: 0 4px 18px rgba(19,40,62,0.12); }
.mn-card__media {
    flex: 0 0 auto; width: 120px; background: #13283E;
    display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,0.15); font-size: 1.4rem; overflow: hidden;
}
.mn-card__img { width: 100%; height: 100%; object-fit: cover; }
.mn-card__body { padding: 0.85rem 1rem; display: flex; flex-direction: column; justify-content: center; min-width: 0; }
.mn-card__cat { font-size: 0.72rem; color: var(--color-ouro); text-transform: uppercase; letter-spacing: 0.06em; font-weight: 600; margin-bottom: 0.3rem; }
.mn-card__title { font-family: var(--font-titulo); font-size: 1.05rem; font-weight: 700; color: var(--text); line-height: 1.35; }
@media (max-width: 480px) { .mn-card__media { width: 92px; } }

/* Logo (imagem) no header e rodapé */
.navbar__logo-img { height: 34px; width: auto; display: block; }
.footer__logo-img { height: 32px; width: auto; display: block; }
@media (max-width: 480px) { .navbar__logo-img { height: 28px; } }

/* Notícia no mobile: esconder card de país/região e "Mais notícias" */
@media (max-width: 768px) {
    .campo-sb--local,
    .mais-noticias { display: none; }
}

/* ============================================================
   BANNERS / PUBLICIDADE (slots .rota-banner-slot)
   ============================================================ */
.rota-banner-slot { margin: 1.5rem 0 0; }
.rota-banner-slot:empty { display: none; }
.rota-banner__link { display: block; }
.rota-banner__img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: var(--radius-card);
}
/* Conteúdo: banner horizontal após o corpo do artigo, centralizado */
.rota-banner-slot--conteudo {
    margin: 2.5rem auto;
    max-width: 1000px;
}
/* Sidebar: ocupa a largura da coluna lateral (imagem quadrada) */
.artigo-sidebar .rota-banner-slot,
.campo-sidebar .rota-banner-slot { margin-top: 1.75rem; }

/* ============================================================
   PERFIL DE PAÍS — seções de conteúdo fixo
   ============================================================ */
.pais-geo__h{font-family:var(--font-corpo);font-size:.95rem;font-weight:700;color:var(--color-ouro);margin-bottom:.7rem}
.pais-geo{display:grid;grid-template-columns:1.3fr 1fr;gap:1.4rem}
@media(max-width:760px){.pais-geo{grid-template-columns:1fr}}
.pais-cities{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}
.pais-cities li{display:flex;justify-content:space-between;gap:.7rem;border-bottom:1px dashed rgba(19,40,62,.12);padding:.45rem 0;font-size:.92rem}
.pais-cities li:last-child{border-bottom:none}
.pais-cities__name{font-weight:600;color:var(--text)}
.pais-cities__note{color:var(--text-soft);font-size:.85rem;text-align:right}
.pais-climate{background:var(--surface-2);border:1px solid rgba(19,40,62,.10);border-radius:var(--radius-card);padding:1rem 1.2rem}
.pais-climate__row{display:flex;justify-content:space-between;gap:.7rem;font-size:.9rem;padding:.35rem 0;border-bottom:1px solid rgba(19,40,62,.10)}
.pais-climate__row:last-child{border-bottom:none}
.pais-climate__row b{color:var(--text);text-align:right}

/* Timeline */
.pais-timeline{list-style:none;position:relative;margin:0;padding-left:1.6rem}
.pais-timeline::before{content:"";position:absolute;left:.45rem;top:.4rem;bottom:.4rem;width:2px;background:var(--border)}
.pais-timeline li{position:relative;padding:0 0 1rem .9rem;font-size:.95rem;line-height:1.55}
.pais-timeline li:last-child{padding-bottom:0}
.pais-timeline li::before{content:"";position:absolute;left:-1.45rem;top:.45rem;width:11px;height:11px;border-radius:50%;background:var(--color-ouro);border:2px solid var(--bg);box-shadow:0 0 0 2px var(--border)}
.pais-timeline__yr{font-weight:700;color:var(--text)}

/* Cards de cultura */
.pais-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}
.pais-card{border:1px solid rgba(19,40,62,.12);border-radius:var(--radius-card);padding:1.1rem 1.25rem;background:var(--surface);box-shadow:var(--shadow-card)}
.pais-card h4{font-family:var(--font-corpo);font-size:1.02rem;color:var(--color-ouro);font-weight:700;margin-bottom:.4rem}
.pais-card p{font-size:.92rem;color:var(--text-soft);margin:0;line-height:1.5}

/* Comidas */
.pais-food{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}
.pais-food__item{border:1px solid rgba(19,40,62,.12);border-radius:var(--radius-card);overflow:hidden;background:var(--surface);display:flex;flex-direction:column;box-shadow:var(--shadow-card)}
.pais-food__img{height:96px;background:var(--surface-2);display:grid;place-items:center;font-size:2.2rem}
.pais-food__body{padding:.9rem 1.1rem}
.pais-food__body h4{font-family:var(--font-corpo);font-size:1rem;color:var(--text);font-weight:700;margin-bottom:.25rem}
.pais-food__body p{font-size:.86rem;color:var(--text-soft);margin:0;line-height:1.45}

/* Pessoas conhecidas */
.pais-people{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.9rem}
.pais-person{display:flex;gap:.8rem;align-items:center;border:1px solid rgba(19,40,62,.12);border-radius:var(--radius-card);padding:.9rem;background:var(--surface);box-shadow:var(--shadow-card)}
.pais-person__av{width:46px;height:46px;border-radius:50%;flex-shrink:0;background:linear-gradient(135deg,var(--color-ouro),var(--color-ambar));color:#fff;display:grid;place-items:center;font-weight:700;font-family:var(--font-titulo);font-size:1.05rem}
.pais-person__n{font-weight:700;color:var(--text);font-size:.94rem;line-height:1.2}
.pais-person__r{font-size:.8rem;color:var(--text-soft)}
a.pais-person{text-decoration:none}
a.pais-person.pais-person--link{transition:border-color var(--transition-base),box-shadow var(--transition-base),transform var(--transition-base)}
a.pais-person.pais-person--link:hover{border-color:var(--color-ouro);box-shadow:0 4px 16px rgba(19,40,62,.16);transform:translateY(-2px)}
.pais-person__go{font-size:.85rem;color:var(--color-ouro);vertical-align:middle;opacity:.65}
a.pais-person.pais-person--link:hover .pais-person__go{opacity:1}

/* O que evitar */
.pais-dont{list-style:none;margin:0;padding:0;display:grid;gap:.7rem}
.pais-dont li{display:flex;gap:.8rem;align-items:flex-start;background:rgba(206,120,59,.06);border:1px solid rgba(206,120,59,.22);border-radius:var(--radius-card);padding:.85rem 1.05rem}
.pais-dont__x{flex-shrink:0;width:24px;height:24px;border-radius:50%;background:var(--color-ouro);color:#fff;display:grid;place-items:center;font-weight:700;font-size:.8rem;margin-top:1px}
.pais-dont b{color:var(--text)}
.pais-dont span{color:var(--text-soft)}

/* Chamado (pills) */
.pais-pills{display:flex;flex-wrap:wrap;gap:.6rem}
.pais-pill{background:linear-gradient(135deg,var(--color-azul),#1d3b59);color:#fff;padding:.6rem 1.1rem;border-radius:.7rem;font-weight:600;font-size:.9rem}

/* Fortalezas e ídolos */
.pais-strong{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.6rem}
.pais-strong span{border:1px dashed var(--color-oliva);color:var(--label-muted);border-radius:.6rem;padding:.55rem .85rem;font-size:.88rem;font-weight:500;background:rgba(85,96,70,.05)}

/* O que precisa ser redimido: seletor de pontos + explicação.
   Grade de tiles de tamanho fixo. No computador a explicação vai abaixo de todos os
   chips (order:1); no mobile (coluna única) ela aparece logo abaixo do chip clicado. */
.pais-redim { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 0.6rem; align-items: stretch; }
.pais-redim__chip { font-family: var(--font-corpo); text-align: left; font-size: 0.88rem; font-weight: 500; padding: 0.55rem 0.85rem; border-radius: 0.6rem; border: 1px dashed var(--color-oliva); background: rgba(85,96,70,.05); color: var(--label-muted); cursor: pointer; display: flex; align-items: center; white-space: normal; overflow-wrap: break-word; transition: border-color var(--transition-base), color var(--transition-base), background var(--transition-base); }
.pais-redim__chip:hover { border-color: var(--color-ouro); color: var(--text); }
.pais-redim__chip.is-ativo { border-style: solid; border-color: var(--color-ouro); background: rgba(206,120,59,0.12); color: var(--text); }
.pais-redim__texto { grid-column: 1 / -1; order: 1; display: none; margin: 0.4rem 0 0.5rem; color: var(--text); line-height: 1.6; border-left: 3px solid var(--color-ouro); padding-left: 1rem; }
.pais-redim__texto.is-ativo { display: block; }
@media (max-width: 700px) {
    .pais-redim { grid-template-columns: 1fr; }
    .pais-redim__texto { order: 0; }
}

/* Viagem (painel escuro) */
.pais-travel{background:linear-gradient(135deg,#1d3b59,var(--color-azul));color:#fff;border-radius:var(--radius-card);padding:1.8rem 1.9rem;box-shadow:var(--shadow-card)}
.pais-clocks{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.1rem}
@media(max-width:560px){.pais-clocks{grid-template-columns:1fr}}
.pais-clock{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);border-radius:var(--radius-card);padding:1.1rem 1.2rem;text-align:center}
.pais-clock__lbl{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--color-ambar);font-weight:700}
.pais-clock__time{font-family:var(--font-titulo);font-size:2.3rem;font-weight:700;color:#fff;margin:.3rem 0 .1rem;font-variant-numeric:tabular-nums}
.pais-clock__time--sm{font-size:1.6rem;margin-top:.6rem}
.pais-clock__sub{font-size:.82rem;color:rgba(255,255,255,.6)}
.pais-clock__diff{text-align:center;font-size:.9rem;color:rgba(255,255,255,.85);margin:0 0 1.2rem}
.pais-clock__diff b{color:var(--color-ambar)}
.pais-cost{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.85rem}
.pais-cost__item{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);border-radius:.7rem;padding:.9rem 1rem}
.pais-cost__k{font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.6);font-weight:600}
.pais-cost__v{font-size:1.2rem;font-weight:700;color:#fff;margin-top:.2rem;font-family:var(--font-titulo)}
.pais-cost__d{font-size:.74rem;color:rgba(255,255,255,.5);margin-top:1px}
.pais-visa{display:flex;gap:.8rem;align-items:flex-start;background:rgba(242,183,118,.12);border:1px solid rgba(242,183,118,.3);border-radius:.7rem;padding:.9rem 1.05rem;margin-top:1.1rem}
.pais-visa__ico{font-size:1.3rem}
.pais-visa b{color:var(--color-ambar)}
.pais-travel__note{font-size:.76rem;color:rgba(255,255,255,.5);margin:1rem 0 0}

/* Pontos práticos */
.pais-practical{columns:2;column-gap:2rem;list-style:none;margin:0;padding:0}
@media(max-width:680px){.pais-practical{columns:1}}
.pais-practical li{break-inside:avoid;padding:.5rem 0 .5rem 1.4rem;position:relative;font-size:.92rem;line-height:1.5}
.pais-practical li::before{content:"›";position:absolute;left:0;top:.35rem;color:var(--color-ouro);font-weight:700;font-size:1.1rem}
.pais-practical li b{color:var(--text)}

/* Comida com foto real */
.pais-food__img { height: 120px; }
.pais-food__img--photo { background-size: cover; background-position: center; font-size: 0; }

/* Índices globais — accordion (nativo <details>) */
.ind-acc { margin: 0.25rem 0 1rem; }
.ind-acc__toggle {
    cursor: pointer; list-style: none; display: inline-flex; align-items: center; gap: 0.5rem;
    font-weight: 600; font-size: 0.92rem; color: var(--text);
    background: var(--surface); border: 1px solid rgba(19,40,62,0.14); border-radius: 999px;
    padding: 0.6rem 1.1rem; box-shadow: var(--shadow-card); transition: background var(--transition-base);
}
.ind-acc__toggle:hover { background: var(--surface-2); }
.ind-acc__toggle::-webkit-details-marker { display: none; }
.ind-acc__chev { transition: transform var(--transition-base); }
.ind-acc[open] .ind-acc__chev { transform: rotate(180deg); }
.ind-acc[open] .ind-acc__toggle { margin-bottom: 1.2rem; }
.ind-acc__body { margin-top: 0.25rem; }

/* Indicadores: destaque com 6 no computador e 4 no mobile; o restante no accordion.
   O accordion guarda do 5º em diante; no computador escondemos o 5º e o 6º (já no destaque). */
@media (max-width: 700px) {
    .ind-tiles--preview .ind-tile:nth-child(n+5) { display: none; }
}
.ind-acc__tiles .ind-tile:nth-child(-n+2) { display: none; }
@media (max-width: 700px) {
    .ind-acc__tiles .ind-tile:nth-child(-n+2) { display: block; }
}

/* Seção recolhível (Horário local, Custo de vida) — usa o rótulo .ent-sl como gatilho */
.pais-sec-acc { margin-bottom: 0.5rem; }
.pais-sec-acc__sum { cursor: pointer; list-style: none; }
.pais-sec-acc__sum::-webkit-details-marker { display: none; }
.pais-sec-acc__sum:hover { color: var(--color-ouro); }
.pais-sec-acc__chev { order: 1; color: var(--color-ouro); transition: transform var(--transition-base); flex: 0 0 auto; }
.pais-sec-acc[open] .pais-sec-acc__chev { transform: rotate(180deg); }
.pais-sec-acc__body { padding-top: 0.25rem; margin-bottom: 1.25rem; }

/* Fuso / horário local (card compacto) */
.pais-fuso { background: linear-gradient(135deg,#1d3b59,var(--color-azul)); color:#fff; border-radius: var(--radius-card); padding: 1.4rem 1.5rem; box-shadow: var(--shadow-card); text-align: center; }
.pais-clock--solo { background: none; border: none; padding: 0; }
.pais-fuso .pais-clock__time { font-size: 1.9rem; margin: 0.2rem 0 0.15rem; }
.pais-fuso .pais-clock__lbl { color: var(--color-ambar); }
.pais-fuso .pais-clock__diff { margin: 0.9rem 0 0; }

/* Custo de vida (card claro + accordion) */
.pais-custo__head { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.pais-custo__k { font-family: var(--font-titulo); font-size: 1.15rem; font-weight: 700; color: var(--text); }
.pais-custo__v { font-family: var(--font-titulo); font-size: 1.3rem; font-weight: 700; color: var(--color-ouro); }
.pais-custo__note { color: var(--text-soft); font-size: 0.9rem; margin: 0.35rem 0 0; }
.pais-custo__acc { margin-top: 1rem; }
.pais-custo__list { margin-top: 0.5rem; }
.pais-custo__row { display: flex; justify-content: space-between; gap: 1rem; padding: 0.55rem 0; border-bottom: 1px solid rgba(19,40,62,0.10); font-size: 0.93rem; }
.pais-custo__row:last-child { border-bottom: none; }
.pais-custo__rk { color: var(--text); }
.pais-custo__rv { font-weight: 600; color: var(--text); text-align: right; white-space: nowrap; }
.pais-custo__rv small { display: block; font-weight: 400; color: var(--text-soft); font-size: 0.78rem; }
.pais-custo__src { font-size: 0.76rem; color: #8a96a2; margin: 0.9rem 0 0; }

/* Chips do hero (abaixo do card) + botões de compartilhar, na mesma linha */
.pais-chips-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.75rem; margin: 1.1rem 0 0; }
.pais-chips { display: flex; flex-wrap: wrap; gap: 0.6rem; }
/* Segunda ocorrência, depois de "Pelo que orar": rotulada e centralizada */
.pais-hero__share--rotulado { justify-content: center; margin: 2rem 0 0; }
.pais-hero__share-label { font-size: 0.85rem; font-weight: 600; color: var(--label-muted); margin-right: 0.3rem; }
.pais-chip { background: var(--surface); border: 1px solid rgba(19,40,62,0.12); border-radius: 999px; padding: 0.45rem 1rem; font-size: 0.85rem; font-weight: 500; color: var(--text); box-shadow: var(--shadow-card); }
.pais-situacao { display: flex; align-items: flex-start; gap: 0.6rem; margin: 1rem 0 0; padding: 0.7rem 1rem; border-radius: 0.6rem; background: rgba(204,52,56,0.08); border: 1px solid rgba(204,52,56,0.25); color: #b02b2f; font-size: 0.85rem; line-height: 1.45; }
.pais-situacao i { flex: 0 0 auto; font-size: 1.05rem; margin-top: 0.05rem; }
/* Nota informativa (não é alerta): usa a cor de destaque do site em vez do vermelho */
.pais-situacao--territorio { background: rgba(19,40,62,0.06); border-color: rgba(19,40,62,0.18); color: var(--text); }
.pais-situacao--territorio a { color: var(--color-ouro); font-weight: 600; }
[data-theme="dark"] .pais-situacao--territorio { background: rgba(255,255,255,0.06); border-color: rgba(255,255,255,0.14); }
.pais-situacao__flag { flex: 0 0 auto; width: 1.5rem; border-radius: 2px; margin-top: 0.1rem; box-shadow: 0 0 0 1px rgba(19,40,62,0.12); }

/* Religiões (barras de %) */
.pais-rel { display: grid; gap: 0.9rem; }
.pais-rel__top { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: 0.35rem; font-size: 0.93rem; }
.pais-rel__name { color: var(--text); font-weight: 600; }
.pais-rel__pct { color: var(--color-ouro); font-weight: 700; font-family: var(--font-titulo); }
.pais-rel__track { height: 12px; background: #eee; border-radius: 99px; overflow: hidden; }
.pais-rel__fill { height: 100%; border-radius: 99px; background: linear-gradient(90deg, var(--color-ambar), var(--color-ouro)); }

/* Infográfico: panorama dos povos não alcançados */
.pais-povos__resumo { margin: 0 0 1.4rem; color: var(--text); }
.pais-povos__bloco + .pais-povos__bloco { margin-top: 1.8rem; padding-top: 1.6rem; border-top: 1px solid var(--border); }
.pais-povos__sub { font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--text-soft); margin-bottom: 0.9rem; }
.pais-povos__nums { display: flex; gap: 2.8rem; flex-wrap: wrap; margin-bottom: 1.3rem; }
.pais-povos__big { display: flex; flex-direction: column; }
.pais-povos__big span { font-family: var(--font-titulo); font-size: 2.4rem; font-weight: 700; color: var(--text); line-height: 1; }
.pais-povos__big small { font-size: 0.8rem; color: var(--text-soft); margin-top: 0.35rem; }
.pais-povos__big--alerta span { color: #D13438; }
.pais-povos__big--ok span { color: #2f9e44; }
.pais-povos__stack { display: flex; height: 18px; border-radius: 999px; overflow: visible; margin-bottom: 1rem; box-shadow: inset 0 0 0 1px var(--border); }
.pais-povos__seg { height: 100%; position: relative; }
.pais-povos__seg:first-child { border-top-left-radius: 999px; border-bottom-left-radius: 999px; }
.pais-povos__seg:last-child { border-top-right-radius: 999px; border-bottom-right-radius: 999px; }
.pais-povos__seg[data-tip]::after { content: attr(data-tip); position: absolute; bottom: calc(100% + 7px); left: 50%; transform: translateX(-50%); white-space: nowrap; background: #0c2033; color: #e8eef5; border: 1px solid rgba(255,255,255,0.16); padding: 0.4rem 0.65rem; border-radius: 0.45rem; font-size: 0.74rem; line-height: 1.2; box-shadow: 0 8px 22px rgba(0,0,0,0.4); z-index: 8; pointer-events: none; opacity: 0; visibility: hidden; transition: opacity 0.07s ease; }
.pais-povos__seg[data-tip]:hover::after { opacity: 1; visibility: visible; }
.pais-povos__leg { list-style: none; display: flex; flex-wrap: wrap; gap: 0.55rem 1.5rem; margin: 0; padding: 0; }
.pais-povos__leg li { font-size: 0.85rem; color: var(--text-soft); display: flex; align-items: center; gap: 0.45rem; }
.pais-povos__leg b { color: var(--text); }
.pais-povos__dot { width: 11px; height: 11px; border-radius: 50%; flex: 0 0 auto; }

/* Cards de povos não alcançados (carrossel em linha única) */
.pais-povos__cardshead { font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--text-soft); margin: 1.7rem 0 0.9rem; }
.pais-povos__carousel { display: flex; gap: 1rem; overflow-x: auto; scroll-snap-type: x mandatory; padding: 0.25rem 0.25rem 0.5rem; margin: 0 -0.25rem; -webkit-overflow-scrolling: touch; scrollbar-width: none; -ms-overflow-style: none; }
.pais-povos__carousel::-webkit-scrollbar { display: none; }
.pais-povo-card { flex: 0 0 215px; scroll-snap-align: start; display: block; text-decoration: none; color: inherit; background: var(--surface); border: 1px solid var(--border); border-top: 3px solid var(--color-ouro); border-radius: var(--radius-card); padding: 1rem 1.1rem; box-shadow: var(--shadow-card); transition: transform var(--transition-base); }
.pais-povo-card:hover { transform: translateY(-3px); }
.pais-povo-card--alerta { border-top-color: #D13438; }
.pais-povo-card__nome { font-family: var(--font-titulo); font-size: 1.05rem; color: var(--text); margin: 0 0 0.2rem; }
.pais-povo-card__pop { font-size: 0.8rem; color: var(--text-soft); margin-bottom: 0.85rem; }
.pais-povo-card__stats { display: flex; gap: 1.4rem; }
.pais-povo-card__stats div { display: flex; flex-direction: column; }
.pais-povo-card__stats span { font-family: var(--font-titulo); font-weight: 700; font-size: 1.15rem; color: var(--color-ouro); line-height: 1; }
.pais-povo-card__stats small { font-size: 0.66rem; text-transform: uppercase; letter-spacing: 0.04em; color: var(--text-soft); margin-top: 0.25rem; }
.pais-povo-card__ver { display: inline-flex; align-items: center; gap: 0.3rem; margin-top: 0.9rem; font-size: 0.78rem; font-weight: 600; color: var(--color-ouro); }
.pais-povo-card--mais { border-top-color: var(--color-ouro); display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 0.5rem; }
.pais-povo-card__maisicon { display: inline-flex; align-items: center; justify-content: center; width: 2.4rem; height: 2.4rem; border-radius: 50%; background: rgba(204,141,42,0.14); color: var(--color-ouro); font-size: 1.2rem; }
.pais-povo-card__maistxt { font-family: var(--font-titulo); font-size: 1.05rem; font-weight: 600; color: var(--text); line-height: 1.25; }
.pais-povo-card--mais .pais-povo-card__ver { margin-top: 0; }
.pais-povos__src { font-size: 0.76rem; color: var(--text-soft); margin: 1rem 0 0; }
.pais-povos__fonte { font-size: 0.76rem; color: var(--text-soft); margin: 1.3rem 0 0; padding-top: 1rem; border-top: 1px solid rgba(19,40,62,0.10); }
.pais-povos__maisbtn { margin-top: 1.3rem; }

/* Lista compacta de povos (paises com mais de 80 PNAs) */
.pais-povos__lista { display: flex; flex-direction: column; border: 1px solid var(--border); border-radius: var(--radius-card); overflow: hidden; box-shadow: var(--shadow-card); margin-bottom: 1.2rem; }
.pais-povos__lrow { display: grid; grid-template-columns: minmax(0, 2.6fr) 0.9fr 1.3fr 0.7fr 0.7fr; gap: 0.9rem; align-items: center; padding: 0.7rem 1.1rem; text-decoration: none; color: inherit; border-top: 1px solid var(--border); background: var(--surface); transition: background var(--transition-base); }
.pais-povos__lrow:first-child { border-top: none; }
.pais-povos__lrow:hover { background: rgba(204,141,42,0.06); }
.pais-povos__lrow--head { background: rgba(19,40,62,0.04); font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.04em; font-weight: 700; color: var(--text-soft); }
.pais-povos__lrow--head:hover { background: rgba(19,40,62,0.04); }
.pais-povos__lrow.is-alerta { box-shadow: inset 3px 0 0 #D13438; }
.pais-povos__lc { font-size: 0.85rem; color: var(--text-soft); min-width: 0; }
.pais-povos__lc--nome { font-family: var(--font-titulo); font-size: 0.98rem; font-weight: 600; color: var(--text); white-space: normal; }
.pais-povos__lc--num { text-align: right; font-variant-numeric: tabular-nums; }
.pais-povos__lc--idi { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 640px) {
    .pais-povos__lrow { grid-template-columns: minmax(0, 1.8fr) 0.7fr 0.7fr; gap: 0.5rem 0.7rem; }
    .pais-povos__lc--idi, .pais-povos__lc--pop { display: none; }
}
.pais-povos__maisbtn .btn-secondary { color: var(--text); border-color: var(--text); }
.pais-povos__maisbtn .btn-secondary:hover { background-color: var(--surface-2); border-color: var(--text); color: var(--text); }
.pais-povos__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 1rem; }

/* Tooltip informativo (ícone "i") reutilizável */
.tip { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 15px; height: 15px; margin-left: 0.4rem; border-radius: 50%; border: 1px solid var(--text-soft); color: var(--text-soft); font-size: 0.6rem; font-weight: 700; font-style: normal; cursor: help; vertical-align: middle; flex: 0 0 auto; }
.tip[data-tooltip]::after { content: attr(data-tooltip); position: absolute; top: calc(100% + 8px); left: 0; width: 240px; max-width: min(72vw, 240px); background: #0c2033; color: #e8eef5; border: 1px solid rgba(255,255,255,0.16); padding: 0.65rem 0.8rem; border-radius: 0.5rem; font-family: var(--font-corpo); font-size: 0.78rem; font-weight: 400; line-height: 1.45; text-transform: none; letter-spacing: normal; text-align: left; box-shadow: 0 8px 22px rgba(0,0,0,0.4); z-index: 6; pointer-events: none; display: none; }
/* Some quando escondido (não ocupa espaço, não empurra a largura no mobile) */
.tip[data-tooltip]:hover::after, .tip[data-tooltip]:focus::after { display: block; }

/* Foto na pessoa conhecida */
.pais-person__av--foto { background-size: cover; background-position: center top; color: transparent; font-size: 0; }

/* Fusos adicionais (compactos) */
.pais-fuso__extras { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.6rem; margin: 1rem 0 0.2rem; }
.pais-clock--mini { background: rgba(255,255,255,0.07); border: 1px solid rgba(255,255,255,0.14); border-radius: 0.6rem; padding: 0.5rem 0.85rem; text-align: center; min-width: 110px; }
.pais-clock--mini .pais-clock__time { font-size: 1.05rem; font-family: var(--font-titulo); font-weight: 700; color: #fff; font-variant-numeric: tabular-nums; }
.pais-clock--mini .pais-clock__lbl { font-size: 0.72rem; color: rgba(255,255,255,0.65); text-transform: none; letter-spacing: 0; margin-top: 0.1rem; }

/* Custo por cidade */
.pais-custo__cidades { margin-top: 1.2rem; border-top: 1px solid rgba(19,40,62,0.10); padding-top: 1rem; }
.pais-custo__cidades-h { font-family: var(--font-corpo); font-size: 0.9rem; font-weight: 700; color: var(--color-ouro); margin-bottom: 0.6rem; }
.pais-custo__cidade { display: flex; gap: 0.8rem; padding: 0.35rem 0; font-size: 0.92rem; }
.pais-custo__cidade-k { font-weight: 600; color: var(--text); flex: 0 0 38%; }
.pais-custo__cidade-v { color: var(--text-soft); }

/* Pessoas conhecidas — 8 no desktop, 6 no mobile */
.pais-people { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 900px) { .pais-people { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 560px) {
    .pais-people { grid-template-columns: repeat(2, 1fr); }
    .pais-person:nth-child(n+7) { display: none; }
}

/* Fusos numa linha (desktop): principal diferenciado + extras compactos */
.pais-fuso__clocks { display: flex; flex-wrap: wrap; justify-content: center; align-items: stretch; gap: 0.9rem; }
.pais-clock--principal { background: rgba(255,255,255,0.10); border: 1px solid rgba(242,183,118,0.35); border-radius: var(--radius-card); padding: 1.1rem 1.6rem; min-width: 210px; }
.pais-clock--principal .pais-clock__time { font-size: 1.9rem; margin: 0.2rem 0 0.15rem; }
.pais-clock--mini { display: flex; flex-direction: column; justify-content: center; }
@media (max-width: 560px) { .pais-clock--principal { width: 100%; } }

/* Idiomas */
.pais-langs { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.7rem; }
.pais-langs li { display: flex; gap: 0.8rem; align-items: flex-start; }
.pais-langs li > i { color: var(--color-ouro); font-size: 1.15rem; margin-top: 0.15rem; flex: 0 0 auto; }
.pais-langs__name { display: block; font-weight: 700; color: var(--text); }
.pais-langs__note { display: block; font-size: 0.9rem; color: var(--text-soft); }

/* Palavras importantes nas etiquetas do hero (dourado) */
.pais-chip b, .pais-chip strong { color: var(--color-ouro); font-weight: 700; }

/* Score de perseguição na lateral do card (teste) */
.pais-perseg--side { flex: 0 0 auto; width: 215px; align-self: center; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.12); border-radius: var(--radius-card); padding: 1.15rem 1.25rem; }
@media (max-width: 700px) { .pais-perseg--side { width: 100%; } }

/* Score de perseguição: medidor semicircular no canto do hero */
.pais-gauge { position: relative; width: 96px; flex: 0 0 auto; align-self: flex-end; text-align: center; }
.pais-gauge__svg { width: 100%; display: block; overflow: visible; }
.pais-gauge__track { stroke: rgba(255,255,255,0.22); stroke-width: 9; stroke-linecap: round; }
.pais-gauge__fill { stroke-width: 9; stroke-linecap: round; }
.pais-gauge__num { position: absolute; top: 26px; left: 0; right: 0; text-align: center; font-family: var(--font-titulo); font-weight: 700; font-size: 1.55rem; color: #fff; line-height: 1; }
.pais-gauge__label { display: block; text-align: center; font-size: 0.62rem; text-transform: uppercase; letter-spacing: 0.05em; white-space: nowrap; color: rgba(255,255,255,0.7); margin-top: 2px; }
@media (max-width: 700px) { .pais-gauge { align-self: center; } }

/* Tooltip do medidor de perseguição */
.pais-gauge[data-tooltip] { cursor: help; }
.pais-gauge[data-tooltip]::after {
    content: attr(data-tooltip);
    position: absolute; bottom: calc(100% + 10px); right: 0;
    width: 230px; max-width: 70vw;
    background: #0c2033; color: #e8eef5;
    border: 1px solid rgba(255,255,255,0.16);
    padding: 0.65rem 0.8rem; border-radius: 0.5rem;
    font-family: var(--font-corpo); font-size: 0.78rem; line-height: 1.45; text-align: left;
    box-shadow: 0 8px 22px rgba(0,0,0,0.4);
    opacity: 0; visibility: hidden; transform: translateY(4px);
    transition: opacity 0.15s ease, transform 0.15s ease; z-index: 6; pointer-events: none;
}
.pais-gauge[data-tooltip]:hover::after { opacity: 1; visibility: visible; transform: translateY(0); }
.pais-perseg-texto p { margin-bottom: 0.9rem; }
.pais-perseg-texto p:last-child { margin-bottom: 0; }
.pais-perseg-legenda { margin-top: 1.1rem; font-size: 0.78rem; line-height: 1.4; color: #8a96a2; }

/* Blocos temáticos da página de país (discretos) */
.pais-grupo { display: flex; align-items: baseline; gap: 0.5rem; margin: 2.75rem 0 0.25rem; padding: 0; border: none; scroll-margin-top: 130px; }
.pais-grupo__num { flex: 0 0 auto; color: var(--color-ouro); font-family: var(--font-titulo); font-weight: 700; font-size: 0.82rem; }
.pais-grupo__txt { flex: 1 1 auto; display: flex; align-items: baseline; flex-wrap: wrap; }
.pais-grupo__titulo { font-family: var(--font-titulo); font-size: 0.82rem; color: var(--text); margin: 0; line-height: 1.2; }
.pais-grupo__sub { font-size: 0.82rem; color: #8a96a2; margin: 0; }
.pais-grupo__sub::before { content: "·"; margin: 0 0.45rem; }

/* Sub-fase dentro de "Entenda" (2a cultura / 2b campo): rótulo leve, não é um passo novo da rota */
.pais-fase-sub { display: flex; align-items: center; gap: 0.55rem; font-size: 0.68rem; font-weight: 700;
    text-transform: uppercase; letter-spacing: 0.1em; color: var(--label-muted); margin: 1.6rem 0 0.4rem; scroll-margin-top: 130px; }
.pais-fase-sub::after { content: ""; flex: 1; height: 1px; background: var(--border); }

/* ============================================================
   ROTA — trilha fixa da página de país (Conheça · Entenda · Ore · Vá · Envie)
   ============================================================ */
/* position:fixed (não sticky) controlado por js/main.js initRotaNav(): o <body> do site usa
   overflow-x:clip pra travar scroll horizontal, e isso quebra position:sticky em elementos
   fundo de página (bug conhecido do Chromium com overflow:clip como ancestral). .rota-nav-espaco
   evita o salto de layout quando o nav vira position:fixed e sai do fluxo normal. */
.rota-nav { margin: 1.1rem 0 0;
    background: linear-gradient(135deg, var(--color-azul) 0%, #1d3b59 100%); border-radius: 0.6rem;
    box-shadow: 0 6px 16px rgba(19, 40, 62, 0.22); }
/* No tema escuro o azul da trilha some contra os cards (#16273b): clareia o gradiente e ganha borda */
[data-theme="dark"] .rota-nav { background: linear-gradient(135deg, #24425f 0%, #2e5378 100%);
    border: 1px solid rgba(255, 255, 255, 0.16); box-shadow: 0 6px 16px rgba(0, 0, 0, 0.45); }
.rota-nav.is-fixado { position: fixed; top: 62px; left: 50%; transform: translateX(-50%);
    /* casa com .ent-page .container (1040px), não com --container-max, senão fica mais larga que os cards */
    width: min(100% - (2 * var(--container-pad)), calc(1040px - (2 * var(--container-pad)))); z-index: 900; margin: 0; }
.rota-nav-espaco { display: none; }
.rota-nav-espaco.is-ativo { display: block; }
.rota-nav__inner { display: flex; align-items: center; justify-content: center; gap: 6px; padding: 0.55rem 1rem; overflow-x: auto; scrollbar-width: none; }
.rota-nav__inner::-webkit-scrollbar { display: none; }
.rota-nav__titulo { font-size: 0.62rem; font-weight: 800; letter-spacing: 0.16em; color: var(--color-ambar);
    text-transform: uppercase; margin-right: 8px; white-space: nowrap; flex: 0 0 auto; }
.rota-step { display: flex; align-items: center; gap: 0.45rem; text-decoration: none; flex: 0 0 auto;
    color: rgba(255,255,255,0.55); font-size: 0.8rem; font-weight: 600; padding: 0.2rem 0.3rem; border-radius: 6px; }
.rota-step__dot { width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; flex: 0 0 auto;
    font-size: 0.68rem; font-weight: 800; border: 2px solid rgba(255,255,255,0.35); color: rgba(255,255,255,0.7); transition: all 0.2s; }
.rota-step.is-ativo { color: #fff; }
.rota-step.is-ativo .rota-step__dot { background: var(--color-ambar); border-color: var(--color-ambar); color: var(--color-azul); }
.rota-nav__seg { width: 24px; height: 2px; background: rgba(255,255,255,0.25); border-radius: 2px; flex: 0 0 auto; }
.rota-nav__fork { flex: 0 0 auto; display: block; }
.rota-branch { display: flex; flex-direction: column; gap: 2px; flex: 0 0 auto; }
.rota-branch .rota-step { padding: 0.05rem 0.3rem; font-size: 0.74rem; }
.rota-branch .rota-step__dot { width: 18px; height: 18px; font-size: 0.6rem; }

@media (max-width: 700px) {
    .rota-nav__titulo { display: none; }
    .rota-nav__inner { padding: 0.5rem 0.5rem 0.4rem; gap: 4px; justify-content: center; align-items: flex-start; }
    .rota-step { flex-direction: column; font-size: 0.6rem; gap: 2px; padding: 0.2rem 0.2rem; text-align: center; }
    .rota-step__dot { width: 20px; height: 20px; font-size: 0.62rem; }
    .rota-nav__seg { width: 12px; margin-top: 10px; }
    .rota-nav__fork { width: 18px; height: 28px; margin-top: -2px; }
    .rota-branch .rota-step { flex-direction: row; font-size: 0.62rem; gap: 0.28rem; padding: 0.1rem 0.2rem; }
    .rota-branch .rota-step__dot { width: 15px; height: 15px; font-size: 0.54rem; }
}

/* Passo 5: Envie e sustente */
.pais-envie { background: linear-gradient(135deg, var(--color-azul) 0%, #1d3b59 100%); color: #fff;
    border-radius: 0.75rem; padding: 1.75rem 1.9rem; margin: 0.7rem 0; }
.pais-envie h3 { font-family: var(--font-titulo); font-size: 1.4rem; margin: 0 0 0.5rem; }
.pais-envie p { color: rgba(255,255,255,0.82); max-width: 60ch; margin: 0.35rem 0; font-size: 0.94rem; }
.pais-envie__ctas { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: 1.1rem; }
.pais-envie__cta { display: inline-flex; align-items: center; gap: 0.45rem; font-size: 0.85rem; font-weight: 700;
    padding: 0.55rem 1.1rem; border-radius: 99px; text-decoration: none; border: 1.5px solid transparent; }
.pais-envie__cta--principal { background: var(--color-ambar); color: var(--color-azul); }
.pais-envie__cta--secundario { background: transparent; color: #fff; border-color: rgba(255,255,255,0.4); }
.pais-envie__cta--secundario:hover { border-color: rgba(255,255,255,0.7); }

/* Bloco 4 recolhível (Para quem vai) */
.pais-bloco { margin: 0; }
.pais-grupo--toggle { cursor: pointer; list-style: none; }
.pais-grupo--toggle::-webkit-details-marker { display: none; }
.pais-grupo--toggle:hover .pais-grupo__titulo { color: var(--color-ouro); }
.pais-grupo__chev { flex: 0 0 auto; align-self: center; color: var(--color-ouro); font-size: 1.1rem; transition: transform 0.2s ease; }
.pais-bloco[open] .pais-grupo__chev { transform: rotate(180deg); }
.pais-bloco__body { padding-top: 0.25rem; }

/* Página de povo (perfil estilo Joshua Project) */
.povo-nivel { display: inline-block; margin-top: 1rem; font-size: 0.82rem; font-weight: 700; padding: 0.3rem 0.9rem; border-radius: 999px; }
.povo-nivel--nao { background: rgba(209,52,56,0.12); color: #b02b2f; }
.povo-nivel--pouco { background: rgba(240,140,46,0.16); color: #c4661a; }
.povo-nivel--alcancado { background: rgba(76,175,80,0.16); color: #2f7a33; }
/* Badge de Povo de Fronteira (FPG) */
.povo-fpg-badge { display: inline-flex; align-items: center; gap: 0.3rem; margin-left: 0.5rem; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.02em; text-transform: uppercase; padding: 0.2rem 0.6rem; border-radius: 999px; background: rgba(204,0,0,0.18); color: #f0a3a5; vertical-align: middle; }
.povo-fpg-tag { display: inline-flex; align-items: center; gap: 0.25rem; font-size: 0.66rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.02em; padding: 0.12rem 0.5rem; border-radius: 999px; background: rgba(204,0,0,0.10); color: #b02b2f; vertical-align: middle; white-space: nowrap; }
.pais-povo-card--alerta .povo-fpg-tag { background: rgba(204,0,0,0.16); }
/* no hero escuro */
.pais-hero .povo-nivel--nao { background: rgba(209,52,56,0.22); color: #f0a3a5; }
.pais-hero .povo-nivel--pouco { background: rgba(240,140,46,0.22); color: #f3c08a; }
.pais-hero .povo-nivel--alcancado { background: rgba(76,175,80,0.22); color: #aee0b1; }
.povo-prog__extra { display: flex; flex-wrap: wrap; gap: 1.4rem 2.5rem; margin-top: 1.4rem; padding-top: 1.2rem; border-top: 1px solid rgba(19,40,62,0.10); }
.povo-prog__stat { display: flex; flex-direction: column; gap: 0.4rem; align-items: flex-start; }
.povo-prog__label { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--label-muted); font-weight: 700; }
.povo-prog__valor { font-weight: 600; color: var(--text); }

/* Foto vertical (retrato) do povo no hero, com bandeira sobreposta */
.povo-hero__foto { position: relative; width: 180px; aspect-ratio: 3 / 4; border-radius: 12px; overflow: hidden; border: 3px solid rgba(255,255,255,0.15); box-shadow: 0 6px 18px rgba(0,0,0,0.35); background: rgba(255,255,255,0.06); }
.povo-hero__foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.povo-hero__ph { display: grid; place-items: center; width: 100%; height: 100%; font-size: 3.2rem; }
.povo-hero__credito { margin: 6px 0 0; max-width: 180px; font-size: 0.62rem; line-height: 1.3; color: rgba(255,255,255,0.6); text-align: center; }
.povo-hero__flag { position: absolute; bottom: 8px; left: 8px; line-height: 0; }
.povo-hero__flag img { width: 34px; height: 24px; object-fit: cover; border-radius: 3px; box-shadow: 0 1px 5px rgba(0,0,0,0.55); display: block; }
@media (max-width: 700px) { .povo-hero__foto { width: 150px; } }

/* Povo presente em vários países: até 3 bandeiras + chip "+X" no card da foto (tamanho fixo p/ não variar com a proporção de cada bandeira) */
.povo-hero__flags { position: absolute; bottom: 8px; left: 8px; display: flex; align-items: flex-end; gap: 4px; }
.povo-hero__flags img { width: 34px; height: 24px; object-fit: cover; border-radius: 3px; box-shadow: 0 1px 5px rgba(0,0,0,0.55); display: block; }
.povo-hero__flags-mais {
    width: 34px; height: 24px;
    display: flex; align-items: center; justify-content: center;
    background: var(--color-azul); color: var(--color-bege);
    border-radius: 3px; box-shadow: 0 1px 5px rgba(0,0,0,0.55);
    font-size: 0.68rem; font-weight: 700; border: 1px solid rgba(255,255,255,0.4);
}
@media (max-width: 700px) {
    /* .povo-hero__foto cai pra 150px; 3 bandeiras + chip em 34px não cabiam (ficavam coladas/cortadas na borda) */
    .povo-hero__flag img,
    .povo-hero__flags img,
    .povo-hero__flags-mais { width: 26px; height: 18px; }
    .povo-hero__flags-mais { font-size: 0.58rem; }
    .povo-hero__flags { gap: 3px; }
}

/* Cards de povo (arquivo /povos/) — foto vertical */
.povo-card__foto { position: relative; aspect-ratio: 3 / 4; overflow: hidden; background: var(--surface-2); }
.povo-card__foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.povo-card__ph { display: grid; place-items: center; height: 100%; font-size: 3rem; }
.povo-card__flag { position: absolute; bottom: 8px; left: 8px; line-height: 0; }
.povo-card__flag img { width: 24px; height: 17px; object-fit: cover; border-radius: 3px; box-shadow: 0 1px 4px rgba(0,0,0,0.5); display: block; }

/* Povo presente em vários países: até 3 bandeiras + chip "+X" no card (tamanho fixo p/ não variar com a proporção de cada bandeira) */
.povo-card__flags { position: absolute; bottom: 8px; left: 8px; display: flex; align-items: flex-end; gap: 3px; }
.povo-card__flags img { width: 24px; height: 17px; object-fit: cover; border-radius: 3px; box-shadow: 0 1px 4px rgba(0,0,0,0.5); display: block; }
.povo-card__flags-mais {
    width: 24px; height: 17px;
    display: flex; align-items: center; justify-content: center;
    background: var(--color-azul); color: var(--color-bege);
    border-radius: 3px; box-shadow: 0 1px 4px rgba(0,0,0,0.5);
    font-size: 0.55rem; font-weight: 700; border: 1px solid rgba(255,255,255,0.4);
}

/* Grid de povos: cards menores (mais por linha), mantendo a proporção 3/4 da foto */
#lista-povos.cards-grid { grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 1.1rem; }
#lista-povos .card__body { padding: 0.85rem 0.95rem; }
#lista-povos .card__tag { font-size: 0.66rem; margin-bottom: 0.35rem; }
#lista-povos .card__title { font-size: 0.98rem; margin-bottom: 0.35rem; }
#lista-povos .card__meta { font-size: 0.76rem; }
#lista-povos .povo-card__ph { font-size: 2.2rem; }
@media (max-width: 520px) { #lista-povos.cards-grid { grid-template-columns: repeat(2, 1fr); gap: 0.8rem; } }

/* Seletor "Por linha" (/nacoes/): 3, 4 ou 5 nações por linha */
.cols-seg { display: inline-flex; gap: 0.3rem; }
.cols-seg__btn {
    display: flex; align-items: center; justify-content: center;
    width: 2.3rem; height: 2.3rem; padding: 0; line-height: 1;
    border: 1px solid var(--border); background: var(--surface);
    color: var(--text); border-radius: 0.5rem;
    font-family: var(--font-titulo); font-size: 0.95rem; font-weight: 700;
    cursor: pointer;
    transition: background-color var(--transition-base), color var(--transition-base), border-color var(--transition-base);
}
.cols-seg__btn:hover { border-color: var(--text-soft); }
.cols-seg__btn--ativo { background: var(--color-azul); color: var(--color-bege); border-color: var(--color-azul); }
[data-theme="dark"] .cols-seg__btn--ativo { background: var(--color-ambar); color: var(--color-azul); border-color: var(--color-ambar); }

/* Largura dos cards conforme a escolha do usuário */
#lista-nacoes[data-cols="3"] { grid-template-columns: repeat(3, 1fr); }
#lista-nacoes[data-cols="4"] { grid-template-columns: repeat(4, 1fr); }
#lista-nacoes[data-cols="5"] { grid-template-columns: repeat(5, 1fr); }
/* Quanto mais colunas, mais compacto o conteúdo do card */
#lista-nacoes[data-cols="4"] .card__title,
#lista-nacoes[data-cols="5"] .card__title { font-size: 1rem; }
#lista-nacoes[data-cols="4"] .nacao-card__body,
#lista-nacoes[data-cols="5"] .nacao-card__body { gap: 0.5rem; }
#lista-nacoes[data-cols="5"] .nacao-gauge { width: 84px; }
#lista-nacoes[data-cols="5"] .nacao-gauge__num { top: 19px; font-size: 1.1rem; }
#lista-nacoes[data-cols="5"] .nacao-gauge__label { font-size: 0.55rem; letter-spacing: 0.02em; }
#lista-nacoes[data-cols="5"] .card__tag { font-size: 0.62rem; }
/* 5 por linha: empilha o medidor para o nome ter a largura toda do card */
#lista-nacoes[data-cols="5"] .nacao-card__body { flex-direction: column; align-items: center; gap: 0.5rem; }
#lista-nacoes[data-cols="5"] .nacao-card__info { width: 100%; }
/* Nome nunca quebra no meio de uma palavra (nome composto pode quebrar entre palavras) */
#lista-nacoes[data-cols="5"] .card__title,
#lista-nacoes[data-cols="5"] .card__title a { overflow-wrap: normal; word-break: keep-all; hyphens: none; }

/* No mobile a escolha não se aplica: sempre 2 por linha e o seletor some */
@media (max-width: 900px) {
    #lista-nacoes[data-cols] { grid-template-columns: repeat(2, 1fr); gap: 0.8rem; }
    .nacoes-lista__cols { display: none; }
}

/* ============================================================
   CAMINHO — destaque editorial + portais (mosaico)
   ============================================================ */
.caminho-lead { display: grid; grid-template-columns: 1.5fr 1fr; gap: 1.1rem; }
@media (max-width: 680px) { .caminho-lead { grid-template-columns: 1fr; } }
.caminho-feat { display: flex; flex-direction: column; justify-content: flex-end; min-height: 260px; border-radius: var(--radius-card); padding: 1.6rem 1.8rem; color: #fff; text-decoration: none; background: linear-gradient(135deg, #1d3b59, var(--color-azul)); background-size: cover; background-position: center; box-shadow: var(--shadow-card); transition: transform var(--transition-base); }
.caminho-feat:hover { transform: translateY(-3px); }
.caminho-feat__eb { color: var(--color-ambar); font-size: 0.7rem; letter-spacing: 0.12em; text-transform: uppercase; font-weight: 700; }
.caminho-feat__t { font-family: var(--font-titulo); font-size: 2rem; margin: 0.2rem 0 0.3rem; color: #fff; }
.caminho-feat__p { font-size: 0.9rem; color: rgba(255,255,255,0.82); margin: 0; }
.caminho-side { display: flex; flex-direction: column; gap: 0.7rem; }
.caminho-lead .caminho-side .caminho-mini { flex: 1 1 0; }
.caminho-mini { display: flex; gap: 0.7rem; align-items: center; background: var(--surface); border: 1px solid rgba(19,40,62,0.12); border-radius: 0.7rem; padding: 0.75rem 0.9rem; text-decoration: none; box-shadow: var(--shadow-card); transition: transform var(--transition-base); }
.caminho-mini:hover { transform: translateY(-2px); }
.caminho-mini__ic { width: 42px; height: 42px; border-radius: 0.55rem; background: var(--surface-2); display: grid; place-items: center; font-size: 1.2rem; color: var(--color-ouro); flex: 0 0 auto; }
.caminho-mini b { font-family: var(--font-titulo); color: var(--text); font-size: 1rem; line-height: 1.15; display: block; }
.caminho-mini small { color: var(--text-soft); font-size: 0.78rem; }

.caminho-bento { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 132px; gap: 1rem; }
@media (max-width: 720px) { .caminho-bento { grid-template-columns: repeat(2, 1fr); } }
.caminho-tile { border-radius: var(--radius-card); padding: 1.2rem 1.3rem; display: flex; flex-direction: column; justify-content: space-between; color: #fff; text-decoration: none; box-shadow: var(--shadow-card); transition: transform var(--transition-base); }
.caminho-tile:hover { transform: translateY(-3px); }
.caminho-tile__ic { font-size: 1.7rem; opacity: 0.95; }
.caminho-tile__h { font-family: var(--font-titulo); font-size: 1.3rem; display: block; }
.caminho-tile__c { font-size: 0.8rem; opacity: 0.85; }
.caminho-tile--pessoas { grid-column: span 2; grid-row: span 2; background: linear-gradient(135deg, var(--color-azul), #27496b); }
.caminho-tile--livros  { grid-column: span 2; background: linear-gradient(135deg, var(--color-oliva), #6f7d5c); }
.caminho-tile--locais  { background: linear-gradient(135deg, var(--color-ouro), #e0975a); }
.caminho-tile--temas   { background: linear-gradient(135deg, #3a5572, #54708d); }
@media (max-width: 720px) { .caminho-tile--pessoas, .caminho-tile--livros { grid-column: span 2; grid-row: auto; } }

/* Caminho: manter texto legível no hover dos portais/destaques + offset de âncora */
.caminho-tile:hover, .caminho-tile:hover .caminho-tile__h, .caminho-tile:hover .caminho-tile__c { color: #fff; }
.caminho-feat:hover, .caminho-feat:hover .caminho-feat__t { color: #fff; }
.caminho-feat:hover .caminho-feat__eb { color: var(--color-ambar); }
.caminho-secao { scroll-margin-top: 90px; }

/* Mini do arquivo editorial: imagem dentro do ícone */
.caminho-mini__ic { overflow: hidden; }
.caminho-mini__img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* Arquivo editorial: lista (índice) abaixo do destaque */
.caminho-lista { display: grid; grid-template-columns: 1fr 1fr; column-gap: 2.5rem; }
@media (max-width: 680px) { .caminho-lista { grid-template-columns: 1fr; } }
.caminho-lista__item { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: 0.75rem 0; border-bottom: 1px dashed rgba(19,40,62,0.14); text-decoration: none; }
.caminho-lista__nome { font-family: var(--font-titulo); color: var(--text); font-size: 1.05rem; line-height: 1.2; }
.caminho-lista__item:hover .caminho-lista__nome { color: var(--color-ouro); }
.caminho-lista__tag { font-size: 0.74rem; color: #8a96a2; text-transform: uppercase; letter-spacing: 0.04em; white-space: nowrap; flex: 0 0 auto; }

/* ============================================================
   CAMINHO — páginas de conteúdo: layout 2 colunas + sidebar
   ============================================================ */
.ent-layout { display: grid; grid-template-columns: minmax(0,1fr) 300px; gap: 2.5rem; align-items: start; margin-top: 1.5rem; }
@media (max-width: 900px) { .ent-layout { grid-template-columns: 1fr; } }
.ent-layout__main { min-width: 0; }
.ent-layout__side { position: sticky; top: 90px; display: flex; flex-direction: column; gap: 1rem; }
@media (max-width: 900px) { .ent-layout__side { position: static; } }
/* Espaçador alinha a 1ª caixa com o conteúdo do main. Margem inferior compensa
   o gap de 1rem do flex do sidebar (.ent-layout__side), que soma à sua altura. */
.caminho-sb__spacer { visibility: hidden; margin-bottom: -0.25rem; }
.caminho-sb__spacer::after { display: none; }
@media (max-width: 900px) { .caminho-sb__spacer { display: none; } }
.caminho-sb__card { background: var(--surface); border: 1px solid rgba(19,40,62,0.12); border-radius: var(--radius-card); padding: 1.1rem 1.25rem; box-shadow: var(--shadow-card); }
.caminho-sb__h { font-family: var(--font-corpo); font-size: 0.78rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--label-muted); margin: 0 0 0.7rem; }
.caminho-sb__row { display: flex; justify-content: space-between; gap: 1rem; padding: 0.5rem 0; border-bottom: 1px solid rgba(19,40,62,0.08); font-size: 0.9rem; }
.caminho-sb__row:last-child { border-bottom: none; }
.caminho-sb__l { color: var(--text-soft); }
.caminho-sb__v { color: var(--text); font-weight: 600; text-align: right; }
.caminho-sb__nav { display: flex; flex-direction: column; gap: 0.25rem; }
.caminho-sb__nav-item { display: flex; align-items: center; gap: 0.6rem; padding: 0.6rem 0.7rem; border-radius: 0.55rem; color: var(--text); text-decoration: none; font-weight: 500; font-size: 0.92rem; transition: background var(--transition-base); }
.caminho-sb__nav-item:hover { background: var(--surface-2); color: var(--text); }
.caminho-sb__nav-item i { color: var(--color-ouro); }
/* item atual da sidebar: sem marcação */
/* relacionados ("Outros...") na largura do conteúdo */
.ent-page .relacionados .container { max-width: 1040px; }

/* Povo: medidor de alcance em donut (distinto do medidor de perseguição) */
.povo-medidor { flex: 0 0 auto; align-self: center; text-align: center; }
.povo-donut-wrap { position: relative; width: 92px; height: 92px; margin: 0 auto; }
.povo-donut { width: 92px; height: 92px; transform: rotate(-90deg); display: block; overflow: visible; }
.povo-donut__track { stroke: rgba(255,255,255,0.18); stroke-width: 4; }
.povo-donut__fill { stroke-width: 4; }
.povo-donut__num { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; line-height: 1; text-align: center; font-family: var(--font-titulo); font-weight: 700; font-size: 0.9rem; color: #fff; }
.povo-donut__lbl { display: block; margin-top: 0.3rem; font-size: 0.62rem; text-transform: uppercase; letter-spacing: 0.05em; color: rgba(255,255,255,0.7); }

/* Seção "Onde vivem" (single-povo.php): resumo + tabela por país */
.povo-onde-resumo { display: flex; gap: 1.5rem; flex-wrap: wrap; margin-bottom: 1.25rem; }
.povo-onde-stat { background: var(--surface-2); border: 1px solid var(--border); border-radius: 0.6rem; padding: 0.7rem 1.1rem; }
.povo-onde-stat__n { font-family: var(--font-titulo); font-size: 1.5rem; font-weight: 700; line-height: 1.1; }
.povo-onde-stat__t { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.07em; color: var(--label-muted); }
.povo-onde-tabela { width: 100%; border-collapse: collapse; font-size: 0.9rem; }
.povo-onde-tabela th { text-align: left; font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--label-muted); font-weight: 600; padding: 0.4rem 0.6rem; border-bottom: 1px solid var(--border); }
.povo-onde-tabela th:last-child, .povo-onde-tabela td:last-child { text-align: right; }
.povo-onde-tabela th.povo-onde-tabela__collocal, .povo-onde-tabela td.povo-onde-tabela__collocal { text-align: right; }
.povo-onde-tabela td { padding: 0.55rem 0.6rem; border-bottom: 1px solid var(--border); vertical-align: middle; }
.povo-onde-tabela tr:last-child td { border-bottom: none; }
.povo-onde-tabela tr:hover td { background: var(--surface-2); }
.povo-onde-tabela__extra { display: none; }
.povo-onde-tabela.is-aberta .povo-onde-tabela__extra { display: table-row; }
.povo-onde-pais { display: flex; align-items: center; gap: 0.6rem; font-weight: 600; white-space: nowrap; }
.povo-onde-pais img { width: 26px; border-radius: 2px; box-shadow: 0 0 0 1px var(--border); }
.povo-onde-pais a { color: var(--text); text-decoration: none; }
.povo-onde-pais a:hover { color: var(--color-ouro); }
.povo-onde-track { background: var(--surface-2); border-radius: 99px; height: 7px; overflow: hidden; border: 1px solid var(--border); }
.povo-onde-fill { background: var(--color-ouro); height: 100%; border-radius: 99px; min-width: 2px; }
.povo-onde-pop { font-variant-numeric: tabular-nums; font-weight: 600; white-space: nowrap; text-align: right; min-width: 4.5em; }
.povo-onde-pct { font-variant-numeric: tabular-nums; color: var(--text-soft); font-size: 0.8rem; white-space: nowrap; text-align: right; min-width: 2.8em; }
.povo-onde-mais { text-align: center; margin-top: 0.9rem; }
.povo-onde-mais button { background: none; border: 1px solid var(--border); border-radius: 99px; padding: 0.45rem 1.3rem; font-family: var(--font-corpo); font-size: 0.85rem; font-weight: 600; color: var(--text); cursor: pointer; }
.povo-onde-mais button:hover { border-color: var(--text-soft); }
@media (max-width: 640px) {
    .povo-onde-tabela__colbarra { display: none; }
}

/* Medidor de perseguição dentro da seção "Perseguição religiosa" */
.pais-perseg-score { display: flex; align-items: center; gap: 1.6rem; flex-wrap: wrap; margin-bottom: 1.4rem; padding-bottom: 1.3rem; border-bottom: 1px solid rgba(19,40,62,0.10); }
.pais-perseg-score:empty { display: none; }
.pais-perseg-medidor { position: relative; width: 140px; flex: 0 0 auto; text-align: center; }
.pais-perseg-medidor__svg { width: 100%; display: block; }
.pais-perseg-medidor__track { stroke: rgba(19,40,62,0.10); stroke-width: 8; stroke-linecap: round; }
.pais-perseg-medidor__fill { stroke-width: 8; stroke-linecap: round; transition: stroke-dashoffset 0.9s ease; }
.pais-perseg-medidor__num { position: absolute; left: 0; right: 0; top: 50%; transform: translateY(-45%); font-family: var(--font-titulo); font-size: 2.2rem; font-weight: 700; line-height: 1; }
.pais-perseg-medidor__den { display: block; margin-top: -0.15rem; font-size: 0.72rem; color: #8a96a2; }
.pais-perseg-score__info { flex: 1 1 220px; }
.pais-perseg-score__badge { display: inline-block; font-size: 0.85rem; font-weight: 700; padding: 0.3rem 0.9rem; border-radius: 999px; }
.pais-perseg-score__badge--bom { background: rgba(76,175,80,0.15); color: #2f7a33; }
.pais-perseg-score__badge--medio { background: rgba(240,140,46,0.16); color: #c4661a; }
.pais-perseg-score__badge--alto { background: rgba(209,52,56,0.12); color: #b02b2f; }
.pais-perseg-score__txt { margin: 0.7rem 0 0; color: var(--text-soft); }
.pais-perseg-score__fonte { margin: 0.55rem 0 0; font-size: 0.74rem; color: var(--text-soft); opacity: 0.75; }

/* ============================================================
   INTEGRAÇÃO COM A KADENCE (claro e escuro)
   ============================================================ */
/* A Kadence pinta body/conteúdo com suas próprias paletas via CSS inline que
   carrega DEPOIS do nosso style.css. Como `[data-theme]` está sempre presente,
   `html[data-theme]` (0,1,1) vence o `:root` (0,1,0) inline da Kadence e
   redireciona os fundos para os nossos tokens — corrigindo o fundo branco que
   aparecia nos dois temas. */
html[data-theme] {
    --global-palette9: var(--bg);          /* conteúdo / boxed */
    --global-palette8: var(--bg);          /* body (página) */
    --global-palette7: var(--surface-2);   /* fundos de apoio */
}
html[data-theme] .content-bg,
html[data-theme] body.content-style-unboxed .site { background: var(--bg); }

/* No escuro, a Kadence também define a COR do texto (body = palette4 escuro),
   o que apaga qualquer texto que herda a cor (linhas do tempo, listas, etc.).
   Redireciona as paletas de texto da Kadence para os nossos tokens claros. */
html[data-theme="dark"] {
    --global-palette3: var(--text);        /* títulos */
    --global-palette4: var(--text);        /* texto do corpo */
    --global-palette5: var(--text-soft);   /* texto secundário */
    --global-palette6: var(--text-soft);   /* texto mais sutil */
}

/* Card de nação é translúcido (pensado p/ hero escuro): no tema escuro vira opaco */
[data-theme="dark"] .nacao-card { background: var(--surface); border-color: var(--border); }

/* Trilhas de progresso cinza-claro ficam visiveis no escuro */
[data-theme="dark"] .pais-rel__track { background: rgba(255, 255, 255, 0.12); }

/* ============================================================
   Acessibilidade
   ============================================================ */

/* Foco visível na navegação por teclado (Tab) sem afetar clique/mouse */
a:focus-visible,
button:focus-visible,
summary:focus-visible,
input:focus-visible,
select:focus-visible,
[tabindex]:focus-visible {
    outline: 2px solid var(--color-ambar);
    outline-offset: 2px;
    border-radius: 2px;
}

/* Reduz movimento para quem pede (vestibular/epilepsia) */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

/* ============================================================
   Mapa das Nações (/mapa/) — page-mapa.php + js/mapa.js
   ============================================================ */
.mapa-secao { padding: 2rem 0 3rem; }

.mapa-legenda {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.4rem 1.1rem;
    margin-bottom: 1rem;
    font-size: 0.85rem;
    color: var(--text-soft);
}
.mapa-legenda__titulo { font-weight: 700; color: var(--text); }
.mapa-legenda__item {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.2rem 0.65rem;
    border: 0;
    border-radius: 999px;
    background: none;
    font: inherit;
    color: inherit;
}
button.mapa-legenda__item { cursor: pointer; }
/* cor explícita no hover: o estilo global de botão do tema clareava o texto e sumia no fundo claro */
button.mapa-legenda__item:hover { background: rgba(19, 40, 62, 0.07); color: var(--text); }
button.mapa-legenda__item.is-ativo,
button.mapa-legenda__item.is-ativo:hover { background: var(--color-azul); color: var(--color-bege); }
[data-theme="dark"] button.mapa-legenda__item:hover { background: rgba(255, 255, 255, 0.08); color: var(--text); }
[data-theme="dark"] button.mapa-legenda__item.is-ativo,
[data-theme="dark"] button.mapa-legenda__item.is-ativo:hover { background: var(--color-ambar); color: var(--color-azul); }
.mapa-legenda__dica {
    text-align: center;
    font-size: 0.78rem;
    color: var(--text-soft);
    opacity: 0.8;
    margin: -0.4rem 0 1rem;
}
.mapa-legenda__cor {
    width: 0.85rem;
    height: 0.85rem;
    border-radius: 3px;
    display: inline-block;
}
.mapa-legenda__cor--vazio { background: #c9d2dc; }

.mapa-card { padding: 0.5rem; overflow: hidden; position: relative; }
.mapa-mundi { position: relative; min-height: 280px; overflow: auto; max-height: 80vh; }
.mapa-mundi svg { display: block; width: 100%; height: auto; }

.mapa-zoom {
    position: absolute;
    top: 1rem;
    right: 1rem;
    z-index: 5;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}
.mapa-zoom__btn {
    width: 2.2rem;
    height: 2.2rem;
    display: grid;
    place-items: center;
    padding: 0;
    border: 1px solid rgba(19, 40, 62, 0.15);
    border-radius: 0.5rem;
    background: var(--surface);
    color: var(--text);
    font-size: 1.25rem;
    line-height: 1;
    cursor: pointer;
    box-shadow: var(--shadow-card);
}
.mapa-zoom__btn:hover { background: var(--color-ambar); color: var(--color-azul); }

/* Cores base do SVG (vencem o <style> interno por especificidade do #id) */
#rota-mapa .oceanxx { fill: transparent; stroke: none; }
#rota-mapa .landxx { fill: #c9d2dc; stroke: var(--surface); stroke-width: 0.5; }
#rota-mapa .circlexx { fill: #c9d2dc; stroke: var(--surface); stroke-width: 0.5; }
#rota-mapa .landxx:hover { filter: brightness(1.12); }
[data-theme="dark"] #rota-mapa .landxx,
[data-theme="dark"] #rota-mapa .circlexx { fill: #3a4d63; }

.mapa-tooltip {
    position: absolute;
    z-index: 10;
    max-width: 220px;
    background: var(--color-azul);
    color: var(--color-bege);
    border-radius: 0.5rem;
    padding: 0.55rem 0.75rem;
    font-size: 0.82rem;
    line-height: 1.45;
    pointer-events: none;
    box-shadow: 0 4px 16px rgba(19, 40, 62, 0.35);
}
.mapa-tooltip__cta { opacity: 0.75; font-size: 0.76rem; }
/* No tema escuro o tooltip azul-marinho sumia no fundo: vira claro */
[data-theme="dark"] .mapa-tooltip {
    background: var(--color-bege);
    color: var(--color-azul);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.5);
}
/* No toque o tooltip é clicável (2º toque navega) */
@media (hover: none) {
    .mapa-tooltip { pointer-events: auto; cursor: pointer; }
}

.mapa-fonte { margin-top: 0.9rem; font-size: 0.82rem; color: var(--text-soft); }

@media (max-width: 768px) {
    .mapa-legenda { font-size: 0.78rem; gap: 0.3rem 0.8rem; }
    .mapa-card { padding: 0.25rem; }
}

/* ============================================================
   ADOÇÃO — botão de 3 estados, contador e modal de cadastro
   (estados resolvidos por js/adocao.js; HTML é igual para todos)
   ============================================================ */

.adotar-box { display: flex; flex-direction: column; align-items: flex-start; gap: 0.45rem; }

.js-adotar { cursor: pointer; border: none; }
.js-adotar.is-adotado {
    background: var(--color-oliva);
    color: #fff;
}
.js-adotar.is-adotado:hover { filter: brightness(1.08); }
.js-adotar.is-ocupado { opacity: 0.6; cursor: wait; pointer-events: none; }

.adotar-contador {
    font-size: 0.85rem;
    color: var(--text-soft);
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}
.adotar-contador b { color: var(--text); }
/* Nos heros (fundo azul-escuro nos dois temas) o cinza do tema claro some */
.pais-hero .adotar-contador, .povo-hero .adotar-contador { color: rgba(255, 255, 255, 0.78); }
.pais-hero .adotar-contador b, .povo-hero .adotar-contador b { color: #fff; }

.povo-hero .adotar-box, .pais-hero__info .adotar-box { margin-top: 0.9rem; }

/* --- modal --- */

body.adotar-modal-aberto { overflow: hidden; }

.adotar-modal { position: fixed; inset: 0; z-index: 9999; }
.adotar-modal__overlay {
    position: absolute; inset: 0;
    background: rgba(19, 40, 62, 0.55);
    backdrop-filter: blur(2px);
}
.adotar-modal__caixa {
    position: relative;
    max-width: 420px;
    margin: 8vh auto 0;
    background: var(--surface);
    color: var(--text);
    border-radius: var(--radius-card);
    box-shadow: var(--shadow-card);
    padding: 1.75rem 1.75rem 1.5rem;
    max-height: 84vh;
    overflow-y: auto;
}
.adotar-modal__fechar {
    position: absolute; top: 0.75rem; right: 0.75rem;
    background: none; border: none; cursor: pointer;
    font-size: 1.2rem; color: var(--text-soft);
}
.adotar-modal__titulo { font-family: var(--font-titulo); font-size: 1.45rem; margin: 0 0 0.25rem; }
.adotar-modal__sub { font-size: 0.9rem; color: var(--text-soft); margin: 0 0 1rem; }

.adotar-modal__abas { display: flex; gap: 0.25rem; margin-bottom: 1rem; border-bottom: 1px solid var(--border); }
.adotar-modal__aba {
    background: none; border: none; cursor: pointer;
    padding: 0.5rem 0.9rem; font-size: 0.9rem; font-weight: 600;
    color: var(--text-soft);
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
}
.adotar-modal__aba.is-ativa { color: var(--color-ouro); border-bottom-color: var(--color-ouro); }

.adotar-modal__erro {
    background: #fdecea; color: #a4271b;
    border-radius: 0.4rem; padding: 0.55rem 0.8rem;
    font-size: 0.85rem; margin: 0 0 0.9rem;
}
html[data-theme="dark"] .adotar-modal__erro { background: rgba(164, 39, 27, 0.25); color: #f3b7b0; }

.adotar-modal__form label { display: block; font-size: 0.85rem; font-weight: 600; margin-bottom: 0.8rem; }
.adotar-modal__form label small { font-weight: 400; color: var(--text-soft); }
.adotar-modal__form input[type="text"],
.adotar-modal__form input[type="email"],
.adotar-modal__form input[type="password"] {
    display: block; width: 100%;
    margin-top: 0.3rem; padding: 0.55rem 0.7rem;
    border: 1px solid var(--border); border-radius: 0.4rem;
    background: var(--bg); color: var(--text);
    font: inherit; font-size: 0.92rem;
}
.adotar-modal__consent { display: flex !important; gap: 0.5rem; font-weight: 400 !important; font-size: 0.8rem !important; color: var(--text-soft); }
.adotar-modal__consent input { margin-top: 0.15rem; }
.adotar-modal__enviar { width: 100%; justify-content: center; margin-top: 0.25rem; cursor: pointer; border: none; }
.adotar-modal__esqueci { text-align: center; font-size: 0.82rem; margin: 0.7rem 0 0; }

/* honeypot: fora da tela, invisível para humanos, presente para bots */
.adotar-modal__hp { position: absolute; left: -9999px; top: -9999px; height: 1px; overflow: hidden; }

@media (max-width: 520px) {
    .adotar-modal__caixa { margin: 0; max-width: none; height: 100%; max-height: none; border-radius: 0; }
}

/* ============================================================
   PÁGINAS DE AUTENTICAÇÃO — /login/ /register/ /password-reset/
   Tela dividida em página cheia (sem navbar/rodapé, .pagina-foco):
   painel de marca (mapa-múndi sobre o gradiente azul) + formulário.
   Reusa .adotar-modal__form/__erro/__consent/__enviar/__esqueci/__hp
   (mesmos campos e defesas do modal de adoção).
   ============================================================ */
.auth-split { display: grid; grid-template-columns: 1fr 1fr; min-height: 100vh; }

.auth-split__visual {
    position: relative; overflow: hidden;
    display: flex; flex-direction: column; justify-content: space-between;
    padding: 3rem; color: var(--color-bege);
    background: linear-gradient(135deg, #13283E 0%, #1e3a55 100%);
}
.auth-split__mapa {
    position: absolute; inset: 0; width: 100%; height: 100%;
    object-fit: cover; opacity: 0.1; filter: brightness(0) invert(1);
    pointer-events: none;
}
.auth-split__marca, .auth-split__rodape { position: relative; z-index: 1; }
.auth-split__logo { height: 52px; width: auto; display: block; }
.auth-split__tagline {
    font-family: var(--font-titulo); font-size: 1.5rem; font-weight: 600;
    color: var(--color-ouro); margin: 0 0 0.3rem; max-width: 22rem;
}
.auth-split__missao { font-size: 0.92rem; color: #9db4cc; max-width: 22rem; margin: 0; }

.auth-split__form {
    display: flex; align-items: center; justify-content: center;
    padding: 2.5rem 1.5rem; background: var(--bg);
}
.auth-split__form-inner { width: 100%; max-width: 24rem; }
.auth-split__voltar {
    display: inline-flex; align-items: center; gap: 0.35rem;
    font-size: 0.85rem; color: var(--text-soft); margin-bottom: 1.5rem;
}
.auth-split__voltar:hover { color: var(--color-ouro); }
.auth-split__titulo { font-family: var(--font-titulo); font-size: 1.75rem; font-weight: 700; color: var(--text); margin: 0 0 0.4rem; }
.auth-split__sub { font-size: 0.92rem; color: var(--text-soft); margin: 0 0 1.5rem; }
.auth-card__rodape { text-align: center; font-size: 0.88rem; color: var(--text-soft); margin: 1.1rem 0 0; }

@media (max-width: 820px) {
    .auth-split { grid-template-columns: 1fr; }
    .auth-split__visual { display: none; }
    .auth-split__form { padding: 2.5rem 1.25rem; }
}

/* Botão de mostrar/ocultar senha */
.senha-campo { position: relative; display: block; margin-top: 0.3rem; }
.senha-campo input { margin-top: 0 !important; padding-right: 2.4rem !important; }
.senha-toggle {
    position: absolute; top: 50%; right: 0.5rem; transform: translateY(-50%);
    background: none; border: none; cursor: pointer;
    color: var(--text-soft); padding: 0.3rem; display: flex; align-items: center;
}
.senha-toggle:hover { color: var(--text); }

/* Formulário de recuperação de senha do Profile Builder: sem as classes do
   modal (não é nosso HTML), estilo mínimo para não destoar do resto do site. */
.wppb-user-forms-wrap .wppb-user-forms { list-style: none; margin: 0; padding: 0; }
.wppb-user-forms-wrap p { color: var(--text-soft); font-size: 0.9rem; margin: 0 0 1rem; }
.wppb-user-forms-wrap label { display: block; font-size: 0.85rem; font-weight: 600; margin-bottom: 1rem; color: var(--text); }
.wppb-user-forms-wrap input[type="text"],
.wppb-user-forms-wrap input[type="email"],
.wppb-user-forms-wrap input[type="password"] {
    display: block; width: 100%;
    margin-top: 0.3rem; padding: 0.55rem 0.7rem;
    border: 1px solid var(--border); border-radius: 0.4rem;
    background: var(--bg); color: var(--text);
    font: inherit; font-size: 0.92rem;
}
.wppb-user-forms-wrap input[type="submit"] {
    width: 100%; justify-content: center; margin-top: 0.25rem; cursor: pointer;
    border: none; border-radius: 999px; padding: 0.7rem 1.4rem;
    background: var(--color-ouro); color: #fff; font: inherit; font-weight: 600; font-size: 0.95rem;
}
.wppb-user-forms-wrap input[type="submit"]:hover { filter: brightness(1.05); }
.wppb-user-forms-wrap li { margin-bottom: 0.6rem; }

/* ============================================================
   DOAÇÕES — widget da /doar/ e resumo da /doar/obrigado/
   ============================================================ */

.doar-widget__linha { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; margin-bottom: 1rem; }

.doar-tipo, .doar-valor {
    background: var(--surface-2);
    color: var(--text);
    border: 1.5px solid var(--border);
    border-radius: 99px;
    padding: 0.5rem 1rem;
    font: inherit;
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
    transition: border-color var(--transition-base), background var(--transition-base);
}
.doar-tipo.is-ativa, .doar-valor.is-ativa {
    background: var(--color-azul);
    color: #fff;
    border-color: var(--color-azul);
}
.doar-tipo:disabled { opacity: 0.55; cursor: not-allowed; }
/* Tema escuro: o azul do chip ativo some contra o card escuro — usa o ouro */
html[data-theme="dark"] .doar-tipo.is-ativa, html[data-theme="dark"] .doar-valor.is-ativa {
    background: var(--color-ouro);
    border-color: var(--color-ouro);
    color: #fff;
}

.doar-valor-livre { display: inline-flex; align-items: center; gap: 0.45rem; font-size: 0.85rem; color: var(--text-soft); }
.doar-valor-livre input {
    width: 7rem;
    padding: 0.45rem 0.7rem;
    border: 1.5px solid var(--border);
    border-radius: 99px;
    background: var(--bg);
    color: var(--text);
    font: inherit;
    font-size: 0.9rem;
}

.doar-widget__guest { display: grid; grid-template-columns: 1fr 1fr; gap: 0.8rem; margin-bottom: 1rem; }
.doar-widget__guest label { font-size: 0.85rem; font-weight: 600; }
.doar-widget__guest input[type="text"], .doar-widget__guest input[type="email"] {
    display: block; width: 100%;
    margin-top: 0.3rem; padding: 0.55rem 0.7rem;
    border: 1px solid var(--border); border-radius: 0.4rem;
    background: var(--bg); color: var(--text);
    font: inherit; font-size: 0.92rem;
}
.doar-widget__consent { grid-column: 1 / -1; display: flex; gap: 0.5rem; font-weight: 400 !important; font-size: 0.8rem !important; color: var(--text-soft); }
.doar-widget__consent input { margin-top: 0.15rem; }

.doar-widget__enviar { cursor: pointer; border: none; }
.doar-widget__enviar:disabled { opacity: 0.6; cursor: wait; }
.doar-widget__nota { font-size: 0.8rem; color: var(--text-soft); margin: 0.7rem 0 0; display: flex; align-items: center; gap: 0.35rem; }

.doar-widget__destino, .doar-widget__aviso {
    background: var(--surface-2);
    border-left: 3px solid var(--color-ouro);
    border-radius: 0.4rem;
    padding: 0.6rem 0.9rem;
    font-size: 0.88rem;
    margin: 0 0 1rem;
}
.doar-widget__destino a { margin-left: 0.5rem; font-size: 0.8rem; }

/* Card-destaque do obrigado: é a confirmação da doação, merece protagonismo */
.doar-resumo {
    text-align: center;
    padding: 3rem 2rem 2.75rem;
    border: 2px solid rgba(206, 120, 59, 0.45);
    background:
        radial-gradient(circle at 50% -20%, rgba(242, 183, 118, 0.18), transparent 60%),
        var(--surface);
}
.doar-resumo .ent-card__title {
    justify-content: center;
    font-size: 1.75rem;
    margin-bottom: 0.75rem;
}
.doar-resumo .ent-card__title .ti { color: var(--color-ouro); font-size: 2rem; }
.doar-resumo .ent-lead { font-size: 1.18rem; max-width: 34rem; margin-inline: auto; }
.doar-resumo .ent-lead strong { color: var(--color-ouro); font-size: 1.35em; white-space: nowrap; }
.doar-resumo .doar-resumo__status { margin: 1.4rem 0 0; font-size: 1rem; }
.doar-resumo__ok, .doar-resumo__pendente {
    display: inline-flex; align-items: center; gap: 0.45rem;
    padding: 0.55rem 1.2rem; border-radius: 99px; font-weight: 600;
}
.doar-resumo__ok { color: #fff; background: var(--color-oliva); }
.doar-resumo__pendente { color: var(--text); background: var(--surface-2); border: 1px solid var(--border); }
/* Cards secundários do obrigado, empilhados abaixo do resumo */
.obrigado-extra { display: grid; gap: 1rem; margin-top: 1.2rem; }

@media (max-width: 520px) {
    .doar-resumo { padding: 2.25rem 1.25rem 2rem; }
    .doar-resumo .ent-card__title { font-size: 1.4rem; }
    .doar-resumo .ent-lead { font-size: 1.05rem; }
}

.povo-contribuir {
    display: inline-flex; align-items: center; gap: 0.35rem;
    margin-top: 0.55rem; font-size: 0.85rem; color: var(--text-soft);
}
.povo-contribuir:hover { color: var(--color-ouro); }

@media (max-width: 520px) {
    .doar-widget__guest { grid-template-columns: 1fr; }
}

/* ============================================================
   MINHA ROTA — área logada (abas, cards de adoção, doações)
   ============================================================ */

.navbar__conta {
    display: inline-flex; align-items: center; justify-content: center;
    width: 2.2rem; height: 2.2rem; border-radius: 50%;
    color: var(--color-bege);
}
.navbar__conta:hover { color: var(--color-ambar); }

.conta-abas { display: flex; gap: 0.25rem; border-bottom: 1px solid var(--border); margin: 1.4rem 0 1.2rem; }
.conta-aba {
    background: none; border: none; cursor: pointer;
    padding: 0.6rem 1rem; font: inherit; font-size: 0.92rem; font-weight: 600;
    color: var(--text-soft);
    border-bottom: 2px solid transparent; margin-bottom: -1px;
    display: inline-flex; align-items: center; gap: 0.4rem;
}
.conta-aba { border-radius: 0.5rem 0.5rem 0 0; transition: background var(--transition-base), color var(--transition-base); }
.conta-aba:hover { color: var(--text); }
.conta-aba:focus { outline: none; }
.conta-aba:focus-visible { outline: 2px solid var(--color-azul); outline-offset: 2px; }
.conta-aba.is-ativa { background: var(--color-azul); color: #fff; border-bottom-color: var(--color-azul); }
html[data-theme="dark"] .conta-aba.is-ativa { background: #2e5378; border-bottom-color: #2e5378; }
/* Menu do ícone da conta (navbar) */
.navbar__actions { position: relative; }
.conta-menu {
    position: absolute; top: calc(100% + 12px); right: 0; z-index: 1200;
    min-width: 180px; padding: 0.35rem;
    background: var(--surface); border: 1px solid var(--border);
    border-radius: 0.6rem; box-shadow: 0 12px 28px rgba(0, 0, 0, 0.2);
}
.conta-menu__nome {
    margin: 0 0 0.25rem; padding: 0.45rem 0.75rem 0.5rem;
    font-size: 0.78rem; color: var(--text-soft);
    border-bottom: 1px solid var(--border);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 230px;
}
.conta-menu__item {
    display: flex; align-items: center; gap: 0.5rem;
    padding: 0.55rem 0.75rem; border-radius: 0.4rem;
    font-size: 0.9rem; color: var(--text); text-decoration: none;
}
.conta-menu__item:hover { background: var(--surface-2); color: var(--text); }
.conta-menu__item--sair { color: #a4271b; }
html[data-theme="dark"] .conta-menu__item--sair { color: #f3b7b0; }
.navbar__conta.is-ocupado { opacity: 0.6; }
/* Página de doação em modo foco: sem navbar, rodapé e popup */
.pagina-foco .site-header, .pagina-foco .site-footer, .pagina-foco #rota-popup { display: none !important; }

.conta-adocoes { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 1rem; }

.card-adocao {
    display: flex; gap: 0.9rem;
    background: var(--surface); border-radius: var(--radius-card);
    box-shadow: var(--shadow-card); padding: 1rem;
}
.card-adocao__media { flex: 0 0 72px; }
.card-adocao__media img { width: 72px; height: 52px; object-fit: cover; border-radius: 0.4rem; }
.card-adocao__ph { font-size: 2rem; }
.card-adocao__corpo { flex: 1; min-width: 0; }
.card-adocao__tag { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--text-soft); margin: 0; }
.card-adocao__nome { font-family: var(--font-titulo); font-size: 1.1rem; margin: 0.1rem 0; }
.card-adocao__desde { font-size: 0.78rem; color: var(--text-soft); margin: 0 0 0.6rem; }

.card-adocao__prefs { display: flex; flex-wrap: wrap; gap: 0.5rem 1rem; margin-bottom: 0.6rem; }
.card-adocao__toggle, .card-adocao__select {
    display: inline-flex; align-items: center; gap: 0.35rem;
    font-size: 0.82rem; color: var(--text);
    transition: color var(--transition-base);
}
.card-adocao__select span { color: var(--text-soft); }
.card-adocao__select select {
    font: inherit; font-size: 0.82rem;
    padding: 0.2rem 0.4rem; border: 1px solid var(--border); border-radius: 0.35rem;
    background: var(--bg); color: var(--text);
}
.card-adocao__prefs label.is-salvo { color: var(--color-oliva); }

.card-adocao__desadotar {
    background: none; border: none; cursor: pointer;
    font: inherit; font-size: 0.8rem; color: var(--text-soft);
    display: inline-flex; align-items: center; gap: 0.3rem; padding: 0;
}
.card-adocao__desadotar:hover { color: #a4271b; }
.card-adocao__desadotar:disabled { opacity: 0.5; cursor: wait; }

.conta-vazio { text-align: center; padding: 2.5rem 1rem; color: var(--text-soft); }
.conta-vazio i { font-size: 2.2rem; }
.conta-vazio p { margin: 0.6rem 0 1rem; }

.conta-doacoes__scroll { overflow-x: auto; }
.conta-doacoes { width: 100%; border-collapse: collapse; font-size: 0.88rem; }
.conta-doacoes th, .conta-doacoes td { text-align: left; padding: 0.55rem 0.7rem; border-bottom: 1px solid var(--border); }
.conta-doacoes th { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--text-soft); }

.conta-badge { font-size: 0.75rem; font-weight: 600; padding: 0.15rem 0.55rem; border-radius: 99px; }
.conta-badge--ok { background: rgba(85, 96, 70, 0.15); color: var(--color-oliva); }
.conta-badge--pendente { background: rgba(242, 183, 118, 0.25); color: #8a5a1f; }
.conta-badge--erro { background: rgba(164, 39, 27, 0.12); color: #a4271b; }
html[data-theme="dark"] .conta-badge--ok { color: #b8c9a3; }
html[data-theme="dark"] .conta-badge--pendente { color: #f2b776; }
html[data-theme="dark"] .conta-badge--erro { color: #f3b7b0; }

.conta-pref-usuario { font-size: 0.9rem; margin: 0.2rem 0 0.6rem; display: inline-flex; }
.conta-pref-usuario.is-salvo { color: var(--color-oliva); }
.conta-nota { font-size: 0.82rem; color: var(--text-soft); margin: 0; line-height: 1.55; }

.conta-dados { list-style: none; padding: 0; margin: 0 0 1rem; }
.conta-dados li { display: flex; justify-content: space-between; gap: 1rem; padding: 0.5rem 0; border-bottom: 1px solid var(--border); font-size: 0.9rem; }
.conta-dados li span { color: var(--text-soft); }
.conta-dados__acoes { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.conta-dados__link { font-size: 0.88rem; }
.conta-dados__sair { color: #a4271b; display: inline-flex; align-items: center; gap: 0.3rem; }

.conta-assinaturas { list-style: none; padding: 0; margin: 0; }
.conta-assinatura { padding: 0.6rem 0; border-bottom: 1px solid var(--border); }
.conta-assinatura__info { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; font-size: 0.9rem; }
.conta-assinatura__ciclo { color: var(--text-soft); font-size: 0.8rem; }
.js-portal { cursor: pointer; border: none; }
.js-portal:disabled { opacity: 0.6; cursor: wait; }

@media (max-width: 600px) {
    .conta-adocoes { grid-template-columns: 1fr; }
    .conta-abas { overflow-x: auto; }
}

/* ============================================================
   ORAÇÃO DIÁRIA — Nação/Povo do Dia, botão "Orei", streak e toast
   (estados resolvidos por js/oracao-diaria.js; HTML igual para todos)
   ============================================================ */

.oreidia-box { display: flex; flex-wrap: wrap; align-items: center; gap: 0.7rem; }
.pais-hero__info .oreidia-box { margin-top: 0.9rem; }

.oreidia-btn { cursor: pointer; border: none; }
.oreidia-btn.is-orado { background: var(--color-oliva); color: #fff; pointer-events: none; }
.oreidia-btn.is-ocupado { opacity: 0.6; cursor: wait; pointer-events: none; }

.oreidia-streak {
    display: inline-flex; align-items: center; gap: 0.35rem;
    font-size: 0.88rem; font-weight: 600; color: var(--color-ouro);
}
.oreidia-streak .ti-flame { font-size: 1.05rem; }

.dia-hero__foto { object-fit: cover; aspect-ratio: 4 / 3; border-radius: 10px; }
.dia-fpg { margin: 0.2rem 0 0; font-size: 0.85rem; color: var(--color-ouro); font-weight: 600; }

.dia-palavra__versiculo { margin: 0 0 0.8rem; padding-left: 0.9rem; border-left: 3px solid var(--color-ouro); }
.dia-palavra__versiculo p { font-family: 'Playfair Display', serif; font-size: 1.08rem; line-height: 1.6; margin: 0 0 0.3rem; }
.dia-palavra__versiculo cite { font-style: normal; font-size: 0.85rem; color: var(--text-soft); }
.dia-palavra__texto { margin: 0; line-height: 1.65; }

.dia-fato { margin: 0.5rem 0 0; font-size: 0.9rem; }
.dia-fato span { color: var(--text-soft); }

.dia-acoes { display: flex; flex-wrap: wrap; align-items: center; gap: 1.2rem; margin: 1.6rem 0 0.4rem; }
.dia-link-completo, .dia-link-outro { display: inline-flex; align-items: center; gap: 0.35rem; font-size: 0.92rem; font-weight: 600; }

.dia-selo-toast {
    position: fixed; right: 1rem; bottom: 1rem; z-index: 9999;
    display: flex; gap: 0.7rem; align-items: flex-start;
    max-width: 340px; padding: 0.9rem 1.1rem;
    background: var(--color-azul, #13283E); color: #fff;
    border-radius: 12px; box-shadow: 0 12px 34px rgba(19, 40, 62, 0.35);
    font-size: 0.9rem; line-height: 1.5;
    animation: dia-toast-entra 0.35s ease;
}
.dia-selo-toast .ti-award { font-size: 1.5rem; color: var(--color-ouro); }
.dia-selo-toast a { color: var(--color-ouro); }
.dia-selo-toast__share {
    display: inline-block;
    margin-left: 0.5rem;
    padding: 0.15rem 0.7rem;
    background: var(--color-ouro);
    color: #fff;
    border: 0;
    border-radius: 999px;
    font: inherit;
    font-size: 0.82rem;
    cursor: pointer;
}
.dia-selo-toast__share:hover { filter: brightness(1.06); }
.dia-selo-toast.is-saindo { opacity: 0; transition: opacity 0.5s; }
@keyframes dia-toast-entra { from { transform: translateY(12px); opacity: 0; } to { transform: none; opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .dia-selo-toast { animation: none; } }

/* --- Minha Rota: aba Diário de Oração --- */

.oracao-resumo { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-bottom: 1.2rem; }
.oracao-stat { display: flex; flex-direction: column; align-items: center; gap: 0.15rem; padding: 1rem 0.6rem; text-align: center; }
.oracao-stat i { font-size: 1.4rem; color: var(--color-ouro); }
.oracao-stat strong { font-size: 1.5rem; line-height: 1.2; }
.oracao-stat span { font-size: 0.8rem; color: var(--text-soft); }

.oracao-selos { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 0.7rem; }
.oracao-selo {
    display: flex; flex-direction: column; align-items: center; gap: 0.25rem;
    padding: 0.8rem 0.5rem; text-align: center;
    border: 1px solid var(--border); border-radius: 10px;
    opacity: 0.55; font-size: 0.78rem; line-height: 1.35;
}
.oracao-selo i { font-size: 1.5rem; color: var(--text-soft); }
.oracao-selo.is-conquistado { opacity: 1; border-color: var(--color-ouro); background: rgba(206, 120, 59, 0.07); }
.oracao-selo.is-conquistado i { color: var(--color-ouro); }
.oracao-selo__data, .oracao-selo__progresso { font-size: 0.72rem; color: var(--text-soft); }
.oracao-selo__progresso { font-weight: 600; }

.oracao-mapa { min-height: 200px; margin-bottom: 0.9rem; overflow: auto; }
.oracao-lista { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.oracao-chip {
    display: inline-flex; align-items: center; gap: 0.4rem;
    padding: 0.3rem 0.7rem; border: 1px solid var(--border); border-radius: 999px;
    font-size: 0.85rem; text-decoration: none;
}
.oracao-chip img { width: 20px; height: auto; border-radius: 2px; }
.oracao-chip:hover { border-color: var(--color-ouro); }

@media (max-width: 700px) {
    .oracao-resumo { grid-template-columns: repeat(2, 1fr); }
}

/* ============================================================
   MAPA DE ORAÇÃO MUNDIAL — botão "Orei" + página /mapa-oracao/
   ============================================================ */

/* --- Botão "Orei" (js/orei.js, slots [data-orei]) --- */
.orei-slot { display: flex; align-items: center; gap: 0.75rem; flex-wrap: wrap; margin: 0.75rem 0; }
.orei-slot:empty { display: none; }
.orei-btn {
    display: inline-flex; align-items: center; gap: 0.5rem;
    padding: 0.6rem 1.4rem; border-radius: 2rem;
    font-family: var(--font-corpo); font-size: 0.92rem; font-weight: 600;
    cursor: pointer; border: 2px solid var(--color-ouro);
    background: transparent; color: var(--color-ouro);
    transition: background-color 0.2s ease, color 0.2s ease, opacity 0.2s ease;
}
.orei-btn i { font-size: 1.1em; }
.orei-btn:hover:not(:disabled) { background: var(--color-ouro); color: #fff; }
.orei-btn--enviando { opacity: 0.6; cursor: wait; }
.orei-btn--orado {
    border-color: var(--color-oliva); color: var(--color-oliva);
    background: transparent; cursor: default;
}
.orei-feedback { font-size: 0.85rem; color: var(--text-soft); }
html[data-theme="dark"] .orei-btn { border-color: var(--color-ambar); color: var(--color-ambar); }
html[data-theme="dark"] .orei-btn:hover:not(:disabled) { background: var(--color-ambar); color: var(--color-azul); }
html[data-theme="dark"] .orei-btn--orado { border-color: #9db38a; color: #9db38a; background: transparent; }

/* Card da nação do dia: botão entre o texto e o CTA principal */
#nacao-do-dia .orei-slot { margin: 0.5rem 0 0.75rem; }

/* --- Página /mapa-oracao/: estatísticas --- */
.oracao-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-bottom: 1.25rem; }
.oracao-stat { text-align: center; padding: 1.1rem 0.9rem; }
.oracao-stat__num {
    font-family: var(--font-titulo); font-size: 2rem; font-weight: 700;
    color: var(--color-azul); line-height: 1.1; font-variant-numeric: tabular-nums;
}
.oracao-stat--destaque .oracao-stat__num { color: var(--color-ouro); font-size: 2.6rem; }
.oracao-stat__label { font-size: 0.82rem; color: var(--text-soft); margin-top: 0.25rem; }
.oracao-stat__extra { font-size: 0.78rem; color: var(--text-soft); margin-top: 0.4rem; }
.oracao-stat__extra a { color: inherit; }
html[data-theme="dark"] .oracao-stat__num { color: var(--color-bege); }
html[data-theme="dark"] .oracao-stat--destaque .oracao-stat__num { color: var(--color-ambar); }

.oracao-top { display: flex; align-items: center; justify-content: center; gap: 1.25rem; flex-wrap: wrap; margin: 0 0 1.25rem; }
.oracao-top__titulo { font-size: 0.85rem; font-weight: 600; color: var(--text-soft); }
.oracao-top__item { display: inline-flex; align-items: center; gap: 0.45rem; font-size: 0.9rem; }
.oracao-top__item img { width: 22px; height: auto; border-radius: 2px; box-shadow: 0 0 0 1px var(--border); }
.oracao-top__n { color: var(--text-soft); font-size: 0.82rem; font-variant-numeric: tabular-nums; }

/* --- Página /mapa-oracao/: pontos no SVG --- */
.oracao-ponto__core { fill: var(--color-ouro); stroke: #fff; stroke-width: 1; }
.oracao-ponto__halo { fill: var(--color-ouro); opacity: 0.35; animation: orei-pulso 2.4s ease-out infinite; transform-origin: center; transform-box: fill-box; }
html[data-theme="dark"] .oracao-ponto__core { fill: var(--color-ambar); stroke: var(--color-azul); }
html[data-theme="dark"] .oracao-ponto__halo { fill: var(--color-ambar); }
@keyframes orei-pulso {
    0%   { transform: scale(1);   opacity: 0.35; }
    70%  { transform: scale(2.2); opacity: 0; }
    100% { transform: scale(2.2); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
    .oracao-ponto__halo { animation: none; opacity: 0.25; }
}

.oracao-vazio { text-align: center; color: var(--text-soft); font-size: 0.9rem; margin: 0.75rem 0 0; }

@media (max-width: 780px) {
    .oracao-stats { grid-template-columns: repeat(2, 1fr); }
    .oracao-stat--destaque { grid-column: 1 / -1; }
}

/* --- Página Orar: hub "Ore todos os dias" --- */
.orar-hub__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.orar-hub__card {
    display: flex; flex-direction: column; align-items: flex-start; gap: 0.3rem;
    text-decoration: none; padding: 1.1rem 1.2rem;
}
.orar-hub__card i { font-size: 1.6rem; color: var(--color-ouro); }
.orar-hub__card strong { font-size: 1rem; line-height: 1.3; }
.orar-hub__card span { font-size: 0.83rem; color: var(--text-soft); line-height: 1.45; }
.orar-hub__card:hover { border-color: var(--color-ouro); }
@media (max-width: 900px) { .orar-hub__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .orar-hub__grid { grid-template-columns: 1fr; } }

/* --- Mapa dos PNAs: mapa base liso, sem NENHUMA linha ---
   O SVG traz fills/strokes internos (oceano BRANCO com moldura preta,
   terra #c0c0c0 com fronteiras). Aqui só as bolhas importam: oceano
   transparente (o card dá o fundo nos dois temas), terra como mancha
   lisa por tema e todos os strokes anulados. */
#rota-mapa-povos path,
#rota-mapa-povos svg circle:not([data-i]) { stroke: none !important; }
#rota-mapa-povos .oceanxx { fill: transparent !important; }
#rota-mapa-povos .landxx,
#rota-mapa-povos .circlexx { fill: #c9d2dc !important; }
[data-theme="dark"] #rota-mapa-povos .landxx,
[data-theme="dark"] #rota-mapa-povos .circlexx { fill: #3a4d63 !important; }

/* Mapas pessoais da Minha Rota: mesmo tratamento (sem linhas, fundo por tema) */
[data-mapa-orados] path { stroke: none !important; }
[data-mapa-orados] .oceanxx { fill: transparent !important; }
[data-mapa-orados] .landxx,
[data-mapa-orados] .circlexx { fill: #c9d2dc !important; }
[data-theme="dark"] [data-mapa-orados] .landxx,
[data-theme="dark"] [data-mapa-orados] .circlexx { fill: #3a4d63 !important; }

/* ============================================================
   AVISO "disponível no seu idioma" (js/idioma-aviso.js)
   Barra inferior discreta, dismissável, some após aceitar/fechar.
   ============================================================ */
.rota-idioma-aviso {
    position: fixed;
    left: 50%;
    bottom: 1rem;
    transform: translateX(-50%) translateY(150%);
    z-index: 900;
    display: flex;
    align-items: center;
    gap: 0.85rem;
    max-width: calc(100vw - 2rem);
    padding: 0.7rem 0.75rem 0.7rem 1.1rem;
    background: var(--color-azul);
    color: #fff;
    border-radius: 999px;
    box-shadow: 0 6px 24px rgba(19, 40, 62, 0.28);
    font-size: 0.9rem;
    opacity: 0;
    transition: transform var(--transition-base), opacity var(--transition-base);
}
.rota-idioma-aviso.is-visivel { transform: translateX(-50%) translateY(0); opacity: 1; }
.rota-idioma-aviso__txt { line-height: 1.3; }
.rota-idioma-aviso__btn {
    flex: 0 0 auto;
    padding: 0.4rem 0.9rem;
    background: var(--color-ouro);
    color: #fff;
    border-radius: 999px;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
}
.rota-idioma-aviso__btn:hover { filter: brightness(1.06); }
.rota-idioma-aviso__x {
    flex: 0 0 auto;
    width: 1.75rem;
    height: 1.75rem;
    display: grid;
    place-items: center;
    background: transparent;
    border: 0;
    color: rgba(255,255,255,0.7);
    font-size: 1.4rem;
    line-height: 1;
    cursor: pointer;
    border-radius: 50%;
}
.rota-idioma-aviso__x:hover { color: #fff; background: rgba(255,255,255,0.12); }
@media (max-width: 560px) {
    .rota-idioma-aviso { bottom: 0.5rem; flex-wrap: wrap; border-radius: var(--radius-card); justify-content: space-between; }
    .rota-idioma-aviso__txt { flex: 1 1 100%; }
}
@media (prefers-reduced-motion: reduce) {
    .rota-idioma-aviso { transition: opacity var(--transition-base); transform: translateX(-50%) translateY(0); }
}
