/* ==========================================================================
   Componentes do site
   ========================================================================== */

/* --- cabeçalho ----------------------------------------------------------- */
.cabecalho {
  position: sticky; top: 0; z-index: 100;
  background: var(--branco);
  border-bottom: 1px solid var(--linha);
}
.cabecalho__env {
  display: flex; align-items: center; gap: var(--e-5);
  min-height: 78px;
}
.marca { display: flex; align-items: center; gap: var(--e-3); margin-right: auto; }
.marca__simbolo { width: 38px; height: auto; flex: none; }
.marca__nome {
  font-family: var(--fonte-titulo);
  font-size: 1.0625rem; line-height: 1.15; color: var(--texto);
  letter-spacing: .01em; white-space: nowrap;
}
.marca__nome span { display: block; font-family: var(--fonte-texto); font-size: .6875rem; letter-spacing: .14em; text-transform: uppercase; color: var(--dourado-escuro); margin-top: 3px; }

/* --- navegação ----------------------------------------------------------- */
.nav { display: flex; }
.nav__lista { display: flex; align-items: center; gap: var(--e-1); list-style: none; margin: 0; padding: 0; }
.nav__item { position: relative; margin: 0; }
/* o botão de agendar dentro da lista existe só para o menu do celular */
.nav__zap { display: none; }
.nav__link {
  display: flex; align-items: center; gap: 5px;
  padding: var(--e-3) var(--e-3);
  font-size: var(--t-peq); font-weight: 400; color: var(--texto);
  background: none; border: 0; cursor: pointer;
  font-family: inherit; white-space: nowrap;
}
.nav__link:hover, .nav__item[data-aberto="true"] > .nav__link { color: var(--dourado-escuro); }
.nav__link[aria-current="page"] { color: var(--dourado-escuro); font-weight: 500; }
.nav__seta { width: 9px; height: 9px; flex: none; transition: transform var(--transicao); }
.nav__item[data-aberto="true"] .nav__seta { transform: rotate(180deg); }

.submenu {
  position: absolute; top: 100%; left: 0; min-width: 258px;
  background: var(--branco);
  border: 1px solid var(--linha);
  border-top: var(--divisor-h) solid var(--dourado);
  box-shadow: var(--sombra-alta);
  list-style: none; margin: 0; padding: var(--e-2) 0;
  opacity: 0; visibility: hidden; transform: translateY(-6px);
  transition: opacity var(--transicao), transform var(--transicao), visibility var(--transicao);
}
.nav__item[data-aberto="true"] > .submenu { opacity: 1; visibility: visible; transform: translateY(0); }
.submenu li { margin: 0; }
.submenu a {
  display: block; padding: var(--e-3) var(--e-5);
  font-size: var(--t-peq); color: var(--texto); line-height: 1.4;
}
.submenu a:hover { background: var(--fundo-alt); color: var(--dourado-escuro); }

/* --- botões -------------------------------------------------------------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--e-2);
  padding: .85rem 1.6rem;
  font-family: var(--fonte-texto); font-size: var(--t-peq); font-weight: 500;
  letter-spacing: .04em; text-transform: uppercase;
  border: 2px solid transparent; cursor: pointer;
  transition: background var(--transicao), color var(--transicao), border-color var(--transicao);
  text-align: center;
}
/* Texto escuro sobre o dourado, não branco: branco sobre #C59C61 dá 2,5:1,
   reprovado até para texto grande. Assim o dourado da marca fica intacto e
   o rótulo passa a 6,1:1. No hover o fundo escurece e o texto vira branco. */
.btn--principal { background: var(--dourado); color: var(--tinta-botao); border-color: var(--dourado); }
.btn--principal:hover { background: var(--dourado-escuro); border-color: var(--dourado-escuro); color: var(--branco); }
.btn--contorno { background: transparent; color: var(--branco); border-color: var(--branco); }
.btn--contorno:hover { background: var(--branco); color: var(--ardosia-escura); }
.btn--discreto { background: transparent; color: var(--dourado-escuro); border-color: var(--dourado); }
.btn--discreto:hover { background: var(--dourado); color: var(--tinta-botao); }
.btn--bloco { width: 100%; }
.btn__zap { width: 17px; height: 17px; flex: none; fill: currentColor; }

.cabecalho .btn { padding: .7rem 1.2rem; font-size: var(--t-micro); white-space: nowrap; }

/* --- menu no celular ----------------------------------------------------- */
.menu-btn {
  display: none; width: 44px; height: 44px; padding: 0;
  background: none; border: 0; cursor: pointer;
  align-items: center; justify-content: center;
}
.menu-btn span, .menu-btn span::before, .menu-btn span::after {
  display: block; width: 24px; height: 2px; background: var(--texto);
  transition: transform var(--transicao), opacity var(--transicao);
}
.menu-btn span { position: relative; }
.menu-btn span::before, .menu-btn span::after { content: ""; position: absolute; left: 0; }
.menu-btn span::before { top: -7px; }
.menu-btn span::after  { top: 7px; }
.menu-btn[aria-expanded="true"] span { background: transparent; }
.menu-btn[aria-expanded="true"] span::before { transform: translateY(7px) rotate(45deg); }
.menu-btn[aria-expanded="true"] span::after  { transform: translateY(-7px) rotate(-45deg); }

/* --- seções -------------------------------------------------------------- */
.secao { padding-block: var(--secao-y); }
.secao--alt { background: var(--fundo-alt); }

.titulo-secao { font-size: var(--t-secao); margin-bottom: var(--e-3); }
.divisor { width: var(--divisor-w); height: var(--divisor-h); background: var(--dourado); border: 0; margin: 0 0 var(--e-5); }
.centro { text-align: center; }
.centro .divisor { margin-inline: auto; }
.centro p { margin-inline: auto; }

.olho {
  font-size: var(--t-micro); font-weight: 500;
  letter-spacing: .18em; text-transform: uppercase;
  color: var(--dourado-escuro); margin-bottom: var(--e-3);
}

/* --- hero ---------------------------------------------------------------- */
.hero { position: relative; isolation: isolate; color: var(--branco); overflow: hidden; }
.hero__fundo { position: absolute; inset: 0; z-index: -2; }
.hero__fundo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; }
.hero::after {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background-color: var(--overlay-preto);
  background-image: linear-gradient(105deg, var(--ardosia-escura) 8%, var(--overlay-ardosia) 62%, rgba(68,99,128,.76) 100%);
}
.hero__env { padding-block: clamp(4.5rem, 13vw, 8.5rem); }
.hero__caixa { max-width: 660px; }
.hero .olho { color: var(--dourado-texto); }
.hero h1 { font-size: var(--t-hero); margin-bottom: var(--e-4); letter-spacing: -.015em; }
.hero__linha { width: 72px; height: var(--divisor-h); background: var(--dourado-claro); border: 0; margin: 0 0 var(--e-5); }
.hero__sub { font-size: 1.1875rem; color: var(--texto-claro); max-width: 40ch; margin-bottom: var(--e-6); }
.hero__acoes { display: flex; flex-wrap: wrap; gap: var(--e-3); }
.hero__cred {
  margin-top: var(--e-6); padding-top: var(--e-4);
  border-top: 1px solid rgba(255,255,255,.38);
  font-size: var(--t-micro); letter-spacing: .06em; color: var(--branco);
  text-transform: uppercase;
}

/* --- apresentação -------------------------------------------------------- */
.bio__grade { display: grid; grid-template-columns: 300px 1fr; gap: clamp(2rem, 5vw, 4.5rem); align-items: start; }
.bio__foto { position: relative; }
.bio__foto img { width: 100%; background: var(--fundo-alt); }
.bio__foto::before {
  content: ""; position: absolute; inset: auto auto -14px -14px;
  width: 96px; height: 96px; border-left: var(--divisor-h) solid var(--dourado); border-bottom: var(--divisor-h) solid var(--dourado);
}
.bio__texto p { max-width: none; font-size: var(--t-corpo); }
.bio__texto em { font-style: italic; }

/* --- cartões com foto ---------------------------------------------------- */
.cartoes { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: var(--e-5); }
.cartao {
  position: relative; isolation: isolate; display: flex; flex-direction: column;
  min-height: 340px; padding: var(--e-6); color: var(--branco); overflow: hidden;
}
.cartao img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.cartao::after {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background-color: var(--overlay-preto);
  background-image: linear-gradient(var(--overlay-ardosia), var(--overlay-ardosia));
  transition: background-image var(--transicao);
}
.cartao:hover::after { background-image: linear-gradient(rgba(68,99,128,.88), rgba(68,99,128,.88)); }
.cartao h3 { font-size: var(--t-sub); margin-bottom: var(--e-3); }
.cartao hr { width: 44px; height: var(--divisor-h); background: var(--dourado-claro); border: 0; margin: 0 0 var(--e-4); }
.cartao p { color: var(--texto-claro); font-size: var(--t-peq); flex: 1; }
.cartao .btn { align-self: flex-start; margin-top: var(--e-4); }

/* --- serviços ------------------------------------------------------------ */
.servicos { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: var(--e-6); }
.servico { background: var(--branco); padding: var(--e-6); border-top: var(--divisor-h) solid var(--dourado); box-shadow: var(--sombra); }
.secao--alt .servico { background: var(--branco); }
.servico h3 { font-size: var(--t-sub); margin-bottom: var(--e-3); }
.servico p { font-size: var(--t-peq); color: var(--texto-suave); max-width: none; }

.condicoes { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 1px; background: var(--linha); margin-top: var(--e-6); border: 1px solid var(--linha); }
.condicao { display: flex; flex-direction: column; gap: 4px; background: var(--branco); padding: var(--e-5); transition: background var(--transicao); }
.condicao:hover { background: var(--fundo-alt); }
.condicao strong { font-family: var(--fonte-titulo); font-size: 1.0625rem; font-weight: 400; color: var(--texto); }
.condicao span { font-size: var(--t-micro); color: var(--texto-suave); }

/* --- faixa com foto ------------------------------------------------------ */
.faixa { position: relative; isolation: isolate; color: var(--branco); padding-block: var(--secao-y); overflow: hidden; }
.faixa > img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.faixa::after {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background-color: var(--overlay-preto);
  background-image: linear-gradient(var(--overlay-ardosia), var(--overlay-ardosia));
}
.faixa .titulo-secao { color: var(--branco); }
.faixa p { color: var(--texto-claro); }
.faixa .divisor { background: var(--dourado-claro); }

/* --- livros -------------------------------------------------------------- */
.livros { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: var(--e-5); }
.livro { display: flex; flex-direction: column; gap: var(--e-3); }
.livro__capa { box-shadow: var(--sombra); transition: transform var(--transicao), box-shadow var(--transicao); background: var(--fundo-alt); aspect-ratio: 2/3; object-fit: cover; }
.livro:hover .livro__capa { transform: translateY(-4px); box-shadow: var(--sombra-alta); }
.livro__titulo { font-family: var(--fonte-titulo); font-size: .9375rem; line-height: 1.35; color: var(--texto); }
.livro__meta { font-size: var(--t-micro); color: var(--texto-suave); }

/* --- newsletter ---------------------------------------------------------- */
.news { background: var(--ardosia-escura); color: var(--branco); padding-block: var(--secao-y); }
.news__grade { display: grid; grid-template-columns: 1.1fr 1fr; gap: clamp(2rem, 6vw, 5rem); align-items: center; }
.news .titulo-secao { color: var(--branco); }
.news .divisor { background: var(--dourado-claro); }
.news p { color: var(--texto-claro); font-size: var(--t-peq); }
.form-news { display: flex; flex-direction: column; gap: var(--e-3); }
.form-news label { font-size: var(--t-micro); letter-spacing: .1em; text-transform: uppercase; color: var(--dourado-claro); }
.form-news input {
  width: 100%; padding: .9rem 1rem;
  background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.28);
  color: var(--branco); font-family: inherit; font-size: var(--t-corpo);
}
.form-news input::placeholder { color: rgba(255,255,255,.45); }
.form-news input:focus { background: rgba(255,255,255,.12); border-color: var(--dourado-claro); }
.form-news small { font-size: var(--t-micro); color: rgba(255,255,255,.55); line-height: 1.5; }

/* --- chamada final ------------------------------------------------------- */
.cta { text-align: center; }
.cta .divisor { margin-inline: auto; }
.cta p { margin-inline: auto; }
.cta .btn { margin-top: var(--e-4); }
.cta__nota { font-size: var(--t-peq); color: var(--texto-suave); margin-top: var(--e-4); }

/* --- rodapé -------------------------------------------------------------- */
.rodape { background: var(--texto); color: rgba(255,255,255,.72); padding-block: var(--e-8) var(--e-6); font-size: var(--t-peq); }
.rodape__grade { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: var(--e-6); margin-bottom: var(--e-7); }
.rodape h2 { font-family: var(--fonte-texto); font-size: var(--t-micro); font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--dourado-claro); margin-bottom: var(--e-4); }
.rodape ul { list-style: none; padding: 0; margin: 0; }
.rodape li { margin-bottom: var(--e-2); }
.rodape a { color: rgba(255,255,255,.72); }
.rodape a:hover { color: var(--dourado-claro); }
.rodape p { color: rgba(255,255,255,.72); }
.rodape__base { border-top: 1px solid rgba(255,255,255,.14); padding-top: var(--e-5); display: flex; flex-wrap: wrap; gap: var(--e-3) var(--e-5); justify-content: space-between; font-size: var(--t-micro); color: rgba(255,255,255,.62); }
/* alvo de toque de 24px — critério 2.5.8 do WCAG */
.rodape__base a { display: inline-block; padding-block: 5px; }
.rodape__crm { font-size: var(--t-micro); letter-spacing: .05em; color: rgba(255,255,255,.55); margin-top: var(--e-3); }

/* --- responsivo ---------------------------------------------------------- */
@media (max-width: 1000px) {
  .bio__grade { grid-template-columns: 220px 1fr; }
  .news__grade { grid-template-columns: 1fr; }
  .rodape__grade { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 860px) {
  .menu-btn { display: flex; }
  .cabecalho__env { min-height: 66px; gap: var(--e-3); }
  .cabecalho .btn--principal { display: none; }

  .nav {
    position: absolute; top: 100%; left: 0; right: 0;
    background: var(--branco); border-top: 1px solid var(--linha);
    box-shadow: var(--sombra-alta);
    max-height: calc(100dvh - 66px); overflow-y: auto;
    display: none;
  }
  .nav[data-aberto="true"] { display: block; }
  .nav__lista { flex-direction: column; align-items: stretch; gap: 0; padding: var(--e-3) 0 var(--e-5); }
  .nav__link { width: 100%; justify-content: space-between; padding: var(--e-4) clamp(1rem, 4vw, 2.5rem); font-size: 1rem; border-bottom: 1px solid var(--linha); }
  .submenu {
    position: static; opacity: 1; visibility: visible; transform: none;
    border: 0; box-shadow: none; background: var(--fundo-alt);
    padding: 0; display: none; min-width: 0;
  }
  .nav__item[data-aberto="true"] > .submenu { display: block; }
  .submenu a { padding: var(--e-3) clamp(2rem, 7vw, 3.5rem); border-bottom: 1px solid var(--linha); }
  .nav__zap { display: block; padding: var(--e-4) clamp(1rem, 4vw, 2.5rem) 0; }
  .nav__zap .btn { width: 100%; }

  .bio__grade { grid-template-columns: 1fr; }
  .bio__foto { max-width: 260px; }
  .cartao { min-height: 280px; }
}

@media (max-width: 560px) {
  .hero__acoes .btn { width: 100%; }
  .rodape__grade { grid-template-columns: 1fr; gap: var(--e-5); }
  .livros { grid-template-columns: repeat(2, 1fr); gap: var(--e-4); }
  .condicoes { grid-template-columns: 1fr; }
}

/* ==========================================================================
   Páginas internas — capa, artigo, índice, assinatura
   ========================================================================== */

/* --- capa da página ------------------------------------------------------ */
.capa-pagina { background: var(--fundo-alt); padding-block: clamp(2rem, 5vw, 3.25rem) clamp(2.5rem, 6vw, 4rem); border-bottom: 1px solid var(--linha); }
.capa-pagina h1 { font-size: clamp(1.9rem, 4.6vw, 2.9rem); letter-spacing: -.015em; margin-bottom: var(--e-3); max-width: 22ch; }
.capa-pagina .divisor { margin-bottom: var(--e-4); }
.capa-pagina__resumo { font-size: 1.125rem; color: var(--texto-suave); max-width: 62ch; }

/* --- migalhas ------------------------------------------------------------ */
.migalhas { margin-bottom: var(--e-5); }
.migalhas ol { display: flex; flex-wrap: wrap; gap: 0 var(--e-2); list-style: none; margin: 0; padding: 0; font-size: var(--t-micro); }
.migalhas li { margin: 0; color: var(--texto-suave); }
.migalhas li + li::before { content: "/"; margin-right: var(--e-2); color: var(--linha); }
.migalhas a { color: var(--texto-suave); }
.migalhas a:hover { color: var(--dourado-escuro); }
.migalhas [aria-current="page"] { color: var(--texto); }

/* --- artigo -------------------------------------------------------------- */
.artigo { padding-block: clamp(2.5rem, 6vw, 4.5rem); }
.artigo__env { max-width: 780px; }
.artigo h2 {
  font-size: var(--t-sub); margin-top: var(--e-8); margin-bottom: var(--e-3);
  padding-top: var(--e-5); border-top: 1px solid var(--linha);
}
.artigo h2:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.artigo h3 { font-size: 1.1875rem; font-weight: 500; margin-top: var(--e-6); margin-bottom: var(--e-3); color: var(--dourado-escuro); }
.artigo p { max-width: none; margin-bottom: var(--e-4); }
/* só listas de texto corrido recebem o marcador dourado — listagens com
   classe própria (entrevistas, produção) trazem o seu próprio tratamento */
.artigo ul:not([class]) { margin: 0 0 var(--e-5); padding-left: 0; list-style: none; }
.artigo ul:not([class]) li { position: relative; padding-left: 1.6rem; margin-bottom: var(--e-3); }
.artigo ul:not([class]) li::before {
  content: ""; position: absolute; left: .25rem; top: .72em;
  width: 7px; height: 7px; background: var(--dourado);
}
/* sublinhado só nos links do texto corrido — botões ficam de fora */
.artigo a:not(.btn) { text-decoration: underline; text-decoration-color: var(--dourado); text-underline-offset: 2px; }

/* --- referências --------------------------------------------------------- */
.referencias { margin-top: var(--e-8); padding-top: var(--e-5); border-top: var(--divisor-h) solid var(--dourado); }
.referencias h2 { font-size: 1.125rem; margin: 0 0 var(--e-4); padding: 0; border: 0; }
.referencias ol { padding-left: 1.3rem; margin: 0; }
.referencias li { font-size: var(--t-peq); color: var(--texto-suave); margin-bottom: var(--e-2); line-height: 1.55; }

/* --- nota de revisão ----------------------------------------------------- */
.revisao {
  margin-top: var(--e-6); padding: var(--e-4) var(--e-5);
  background: var(--fundo-alt); border-left: var(--divisor-h) solid var(--dourado);
  font-size: var(--t-micro); color: var(--texto-suave); line-height: 1.6; max-width: none;
}

/* --- assinatura ---------------------------------------------------------- */
.assinatura { margin-top: var(--e-7); display: grid; gap: var(--e-4); }
.assinatura__autor { display: flex; align-items: center; gap: var(--e-4); padding-bottom: var(--e-4); border-bottom: 1px solid var(--linha); }
.assinatura__autor img { width: 62px; height: 62px; object-fit: cover; object-position: 50% 18%; border-radius: 50%; flex: none; }
.assinatura__nome { font-family: var(--fonte-titulo); font-size: 1.0625rem; color: var(--texto); margin: 0; }
.assinatura__crm { font-size: var(--t-micro); color: var(--texto-suave); margin: 0; letter-spacing: .03em; }
.assinatura__bloco { background: var(--fundo-alt); padding: var(--e-5); display: grid; gap: var(--e-3); justify-items: start; }
.assinatura__bloco--zap { background: var(--ardosia-escura); color: var(--texto-claro); }
.assinatura__bloco--zap p { color: var(--texto-claro); }
.assinatura__titulo { font-family: var(--fonte-titulo); font-size: 1.125rem; color: inherit; margin: 0; }
.assinatura__bloco--zap .assinatura__titulo { color: var(--branco); }
.assinatura__bloco p { font-size: var(--t-peq); margin: 0; }

/* --- índice de seção ----------------------------------------------------- */
/* 400px de piso força duas colunas na largura do site — quatro páginas de
   tratamento fecham 2×2, sem uma sobrando sozinha na segunda fileira. */
.indice { display: grid; grid-template-columns: repeat(auto-fit, minmax(400px, 1fr)); gap: var(--e-5); }
@media (max-width: 560px) { .indice { grid-template-columns: 1fr; } }
.indice__item {
  display: flex; flex-direction: column; gap: var(--e-3);
  padding: var(--e-6); background: var(--branco);
  border: 1px solid var(--linha); border-top: var(--divisor-h) solid var(--dourado);
  transition: box-shadow var(--transicao), transform var(--transicao);
}
.indice__item:hover { box-shadow: var(--sombra-alta); transform: translateY(-3px); }
.indice__item h2 { font-size: var(--t-sub); margin: 0; color: var(--texto); }
.indice__item hr { width: 40px; height: 2px; background: var(--dourado); border: 0; margin: 0; }
.indice__item p { font-size: var(--t-peq); color: var(--texto-suave); flex: 1; margin: 0; max-width: none; }
.indice__seta { font-size: var(--t-micro); font-weight: 500; letter-spacing: .06em; text-transform: uppercase; color: var(--dourado-escuro); }

@media (max-width: 560px) {
  .assinatura__autor { gap: var(--e-3); }
  .artigo h2 { margin-top: var(--e-6); }
}

/* ==========================================================================
   Listagens — livros, artigos, entrevistas, posts
   ========================================================================== */

/* --- linha do tempo (formação) ------------------------------------------- */
.linha-tempo { display: grid; grid-template-columns: 110px 1fr; gap: var(--e-3) var(--e-5); margin: 0 0 var(--e-5); }
.linha-tempo dt { font-family: var(--fonte-mono, var(--fonte-texto)); font-size: var(--t-peq); font-weight: 500; color: var(--dourado-escuro); letter-spacing: .02em; padding-top: 2px; }
.linha-tempo dd { margin: 0; font-size: var(--t-peq); color: var(--texto-suave); line-height: 1.6; }

/* --- catálogo de livros --------------------------------------------------- */
.catalogo { display: grid; gap: var(--e-6); }
.catalogo__item { display: grid; grid-template-columns: 150px 1fr; gap: var(--e-5); align-items: start; padding-bottom: var(--e-6); border-bottom: 1px solid var(--linha); }
.catalogo__item:last-child { border-bottom: 0; padding-bottom: 0; }
.catalogo__capa img { width: 100%; aspect-ratio: 2/3; object-fit: cover; box-shadow: var(--sombra); }
.catalogo__texto h2 { font-size: 1.25rem; margin: 0 0 var(--e-2); padding: 0; border: 0; line-height: 1.3; }
.catalogo__meta { font-size: var(--t-micro); letter-spacing: .08em; text-transform: uppercase; color: var(--dourado-escuro); margin-bottom: var(--e-3); }
.catalogo__texto p { font-size: var(--t-peq); color: var(--texto-suave); }
.catalogo__texto .btn { margin-top: var(--e-3); }

.capa-vazia {
  display: grid; align-content: space-between; gap: var(--e-3);
  aspect-ratio: 2/3; padding: var(--e-4);
  background: var(--ardosia-escura); color: var(--branco);
  border-bottom: var(--divisor-h) solid var(--dourado);
}
.capa-vazia__titulo { font-family: var(--fonte-titulo); font-size: .8125rem; line-height: 1.3; }
.capa-vazia__editora { font-size: .625rem; letter-spacing: .12em; text-transform: uppercase; color: var(--dourado-claro); }

/* --- produção científica -------------------------------------------------- */
.artigo-meta { font-size: var(--t-micro); letter-spacing: .06em; text-transform: uppercase; color: var(--dourado-escuro); margin-bottom: var(--e-2) !important; }
.aviso-sync { font-size: var(--t-peq); color: var(--texto-suave); background: var(--fundo-alt); border-left: var(--divisor-h) solid var(--dourado); padding: var(--e-4) var(--e-5); margin-bottom: var(--e-6) !important; }

.producao { display: grid; gap: var(--e-6); }
.producao__ano h3 {
  display: flex; align-items: baseline; gap: var(--e-3);
  font-family: var(--fonte-titulo); font-size: 1.375rem; color: var(--texto);
  margin: 0 0 var(--e-4); padding-bottom: var(--e-2); border-bottom: 2px solid var(--dourado);
}
.producao__ano h3 span { font-family: var(--fonte-texto); font-size: var(--t-micro); font-weight: 400; color: var(--texto-suave); letter-spacing: .06em; }
.producao__lista { padding-left: 1.4rem; margin: 0; }
.producao__lista li { font-size: .875rem; line-height: 1.55; color: var(--texto-suave); margin-bottom: var(--e-3); }
.producao__lista a { font-size: var(--t-micro); letter-spacing: .05em; text-transform: uppercase; white-space: nowrap; }

/* --- entrevistas ---------------------------------------------------------- */
.entrevistas { display: grid; gap: var(--e-6); }
.entrevistas__ano h2 { font-size: 1.375rem; margin: 0 0 var(--e-4); padding-bottom: var(--e-2); border-top: 0; border-bottom: 2px solid var(--dourado); padding-top: 0; }
.entrevistas__lista { list-style: none; padding: 0; margin: 0; }
.entrevista { display: grid; gap: 3px; padding: var(--e-4) 0; margin: 0; border-bottom: 1px solid var(--linha); }
.entrevista:last-child { border-bottom: 0; }
.entrevista__titulo { font-family: var(--fonte-titulo); font-size: 1.0625rem; line-height: 1.4; color: var(--texto); text-decoration: none !important; }
a.entrevista__titulo:hover { color: var(--dourado-escuro); }
.entrevista__veiculo { font-size: var(--t-micro); letter-spacing: .06em; text-transform: uppercase; color: var(--texto-suave); }

/* --- blog ----------------------------------------------------------------- */
.posts { display: grid; gap: var(--e-5); }
.post-cartao { padding: var(--e-6); background: var(--branco); border: 1px solid var(--linha); border-top: var(--divisor-h) solid var(--dourado); }
.post-cartao__data { font-size: var(--t-micro); letter-spacing: .08em; text-transform: uppercase; color: var(--dourado-escuro); margin-bottom: var(--e-3) !important; }
.post-cartao h2 { font-size: 1.5rem; margin: 0 0 var(--e-3); padding: 0; border: 0; line-height: 1.28; }
.post-cartao h2 a { color: var(--texto); text-decoration: none !important; }
.post-cartao h2 a:hover { color: var(--dourado-escuro); }
.post-cartao hr { width: 40px; height: 2px; background: var(--dourado); border: 0; margin: 0 0 var(--e-4); }
.post-cartao p { font-size: var(--t-peq); color: var(--texto-suave); }
.post-cartao__link { display: inline-block; margin-top: var(--e-3); padding-block: 4px; font-size: var(--t-micro); font-weight: 500; letter-spacing: .06em; text-transform: uppercase; text-decoration: none !important; }

@media (max-width: 620px) {
  .catalogo__item { grid-template-columns: 110px 1fr; gap: var(--e-4); }
  .linha-tempo { grid-template-columns: 1fr; gap: 2px var(--e-3); }
  .linha-tempo dd { margin-bottom: var(--e-3); }
  .post-cartao { padding: var(--e-5); }
}

/* --- formulário: armadilha para robô e retorno ao usuário ----------------- */
.isca { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.recado-form { font-size: var(--t-peq); padding: var(--e-3) var(--e-4); margin: 0; border-left: 3px solid; }
.recado-form--ok   { background: rgba(125,196,162,.14); border-color: #7DC4A2; color: #CDEADC; }
.recado-form--erro { background: rgba(224,143,143,.14); border-color: #E08F8F; color: #F3D4D4; }
