/*
  Transborda, site estático (rascunho de 15/10/2026)

  Sistema
  Tipos: Newsreader (títulos, serifada editorial) e Public Sans (texto e interface).
  Escala 1,333 a partir de 17px: 13 / 17 / 22 / 30 / 40 / 53 / 70.
  Cores: creme (fundo) e ameixa (texto e ação), lilás e malva como apoio. Proporção 60/30/10.
  Espaço: múltiplos de 8. Seção 96px no desktop, 64px no celular. Margem lateral 24px, 48px acima de 900px.
  Seção escura (ameixa) só onde há uma oferta que precisa de peso.

  Camada macia (15/10/2026, pedido do Lucas: "duro, muito quadrado"):
  cantos de 16px nos blocos e 28px nos painéis e fotos, seção escura vira painel arredondado
  solto da borda, listas com régua viram linhas em fundo tingido de ameixa (--veu), foto vertical
  em arco. Figura gráfica: dois círculos que se tocam (fronteira de contato, figura e fundo).
  Movimento: entrada suave ao rolar (js/site.js), hover curto, tudo desligado em prefers-reduced-motion.
*/

:root {
  --creme: #f5efe6;
  --papel: #fcf9f4;
  --tinta: #24182c;
  --tinta-2: #57475f;
  --ameixa: #4b2a63;
  --ameixa-funda: #2e1a3e;
  --malva: #8d6481;
  --lilas: #e7dcea;
  --lilas-forte: #cbb5d6;
  --linha: #ddd2d6;
  --pend: #fff2b8;

  --serif: "Newsreader", "Iowan Old Style", Georgia, serif;
  --sans: "Public Sans", "Segoe UI", system-ui, sans-serif;

  --t-xs: 0.8125rem;
  --t-base: 1.0625rem;
  --t-md: 1.375rem;
  --t-lg: 1.875rem;
  --t-xl: 2.5rem;
  --t-2xl: 3.3125rem;
  --t-3xl: 4.375rem;

  --s1: 8px; --s2: 16px; --s3: 24px; --s4: 32px; --s5: 48px; --s6: 64px; --s7: 96px; --s8: 128px;
  --largura: 1200px;
  --texto: 68ch;
  --raio: 16px;
  --raio-g: 28px;
  --veu: rgba(75, 42, 99, 0.055);
  --veu-forte: rgba(75, 42, 99, 0.09);
  --sombra: 0 16px 40px -20px rgba(46, 26, 62, 0.32);
  --sombra-leve: 0 10px 28px -18px rgba(46, 26, 62, 0.28);
  --suave: cubic-bezier(0.16, 1, 0.3, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  overflow-wrap: anywhere;
  background: var(--creme);
  color: var(--tinta);
  font: 400 var(--t-base)/1.6 var(--sans);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
::selection { background: var(--ameixa); color: var(--papel); }
img { max-width: 100%; height: auto; display: block; }
figure { margin: 0; }
@media (max-width: 699px) { .so-desk { display: none; } }
a { color: var(--ameixa); text-underline-offset: 0.18em; text-decoration-thickness: 1px; }
a:hover { text-decoration-thickness: 2px; }
:focus-visible { outline: 2px solid var(--ameixa); outline-offset: 3px; border-radius: 2px; }
.escuro :focus-visible { outline-color: var(--lilas); }

h1, h2, h3, h4 {
  font-family: var(--serif);
  font-weight: 400;
  line-height: 1.08;
  letter-spacing: -0.015em;
  margin: 0 0 var(--s3);
  text-wrap: balance;
  font-optical-sizing: auto;
}
h1 { font-size: clamp(2.5rem, 5.4vw, var(--t-3xl)); }
h2 { font-size: clamp(2rem, 3.8vw, var(--t-2xl)); }
h3 { font-size: clamp(1.5rem, 2.4vw, var(--t-lg)); line-height: 1.15; }
h4 { font-size: var(--t-md); line-height: 1.2; }
h2 + p, h3 + p { margin-top: 0; }
p { margin: 0 0 var(--s2); text-wrap: pretty; }
em.serif, .serif { font-family: var(--serif); }
strong { font-weight: 600; }
small, .pequeno { font-size: var(--t-xs); }
.lead { font-size: var(--t-md); line-height: 1.5; color: var(--tinta-2); max-width: 40ch; }
.texto { max-width: var(--texto); }
.texto p + h3, .texto ul + h3 { margin-top: var(--s5); }
.mudo { color: var(--tinta-2); }
.num { font-variant-numeric: tabular-nums lining-nums; }

/* pendências visíveis para revisão da Helena */
mark.pend {
  background: var(--pend);
  color: #4a3b00;
  font: 600 0.8em/1.3 var(--sans);
  padding: 0.05em 0.35em;
  border-radius: 2px;
  letter-spacing: 0;
  white-space: normal;
}
.escuro mark.pend { color: #4a3b00; }

/* ---------- estrutura ---------- */
.wrap { width: 100%; max-width: calc(var(--largura) + 2 * var(--s5)); margin: 0 auto; padding: 0 var(--s3); }
@media (min-width: 900px) { .wrap { padding: 0 var(--s5); } }
.secao { padding: var(--s6) 0; }
@media (min-width: 900px) { .secao { padding: var(--s7) 0; } }
.secao.papel + .secao.papel, .secao.creme + .secao.creme { padding-top: 0; }
.papel { background: var(--papel); }
.escuro { background: var(--ameixa-funda); color: #efe6f1; }
.escuro h1, .escuro h2, .escuro h3, .escuro h4 { color: #fff; }
.escuro a { color: #fff; }
.escuro .mudo, .escuro .lead { color: #cdbfd4; }
.regua { border: 0; border-top: 1px solid var(--linha); margin: 0; }
.escuro .regua { border-color: rgba(255, 255, 255, 0.16); }

.grade-2 { display: grid; gap: var(--s5); }
.grade-2 > * { min-width: 0; }
@media (min-width: 900px) {
  .grade-2 { grid-template-columns: 1fr 1fr; gap: var(--s6); }
  .grade-2.larga-esq { grid-template-columns: 7fr 5fr; }
  .grade-2.larga-dir { grid-template-columns: 5fr 7fr; }
  .grade-2.centro { align-items: center; }
}

/* ---------- topo ---------- */
.pular { position: absolute; left: -999px; top: 0; background: var(--ameixa); color: #fff; padding: var(--s1) var(--s2); z-index: 10; }
.pular:focus { left: var(--s2); }
.topo { background: var(--creme); border-bottom: 1px solid var(--linha); position: sticky; top: 0; z-index: 5; }
.topo .wrap { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); min-height: 72px; }
.marca { display: flex; align-items: center; gap: 10px; text-decoration: none; color: var(--tinta); }
.marca img { width: 40px; height: 40px; }
.marca span { font: 400 1.625rem/1 var(--serif); letter-spacing: -0.01em; }
.marca small { display: block; font: 500 0.6875rem/1 var(--sans); letter-spacing: 0.08em; text-transform: uppercase; color: var(--malva); margin-top: 4px; }

.nav ul { list-style: none; margin: 0; padding: 0; }
.nav a { text-decoration: none; color: var(--tinta); font-size: 0.9375rem; }
.nav a:hover, .nav a[aria-current="page"] { color: var(--ameixa); text-decoration: underline; }
.nav-desk { display: none; }
@media (min-width: 1060px) {
  .nav-desk { display: flex; align-items: center; gap: var(--s4); }
  .nav-desk ul { display: flex; gap: var(--s3); }
  .nav-mob { display: none; }
}
.nav-mob { position: relative; }
.nav-mob summary {
  list-style: none; cursor: pointer; padding: 10px 16px; border: 1px solid var(--tinta);
  border-radius: 999px; font-size: 0.9375rem; min-height: 44px; display: flex; align-items: center;
}
.nav-mob summary::-webkit-details-marker { display: none; }
.nav-mob[open] summary { background: var(--tinta); color: var(--creme); }
.nav-mob .painel {
  position: absolute; right: 0; top: calc(100% + 8px); width: min(320px, calc(100vw - 32px));
  background: var(--papel); border: 1px solid var(--linha); box-shadow: var(--sombra); padding: var(--s3); border-radius: var(--raio);
}
.nav-mob .painel p { font-size: var(--t-xs); color: var(--malva); margin: 0 0 var(--s1); font-weight: 600; }
.nav-mob .painel ul + p { margin-top: var(--s3); }
.nav-mob .painel li a { display: block; padding: 10px 0; border-bottom: 1px solid var(--linha); font-size: 1rem; }

/* ---------- botões ---------- */
.botao {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 52px; padding: 14px 28px; border-radius: 999px;
  background: var(--ameixa); color: #fff; text-decoration: none; font: 600 1rem/1.2 var(--sans);
  border: 1px solid var(--ameixa); cursor: pointer; transition: background 0.2s ease, transform 0.2s ease;
}
.botao:hover { background: var(--ameixa-funda); text-decoration: none; transform: translateY(-1px); }
.botao.contorno { background: transparent; color: var(--tinta); border-color: var(--tinta); }
.botao.contorno:hover { background: var(--tinta); color: var(--creme); }
.botao.pequeno { min-height: 44px; padding: 10px 20px; font-size: 0.9375rem; }
.escuro .botao { background: #fff; color: var(--ameixa-funda); border-color: #fff; }
.escuro .botao:hover { background: var(--lilas); }
.escuro .botao.contorno { background: transparent; color: #fff; border-color: rgba(255,255,255,0.6); }
.escuro .botao.contorno:hover { background: rgba(255,255,255,0.1); }
.botao svg { width: 18px; height: 18px; flex: none; }
.acoes { display: flex; flex-wrap: wrap; gap: var(--s2); align-items: center; margin-top: var(--s4); }
.seta { text-decoration: none; font-weight: 600; }
.seta::after { content: "\2192"; }

/* ---------- abertura ---------- */
.abertura { padding: var(--s6) 0 var(--s6); }
@media (min-width: 900px) { .abertura { padding: var(--s7) 0; } }
.abertura h1 { max-width: 16ch; }
.abertura .lead { margin-bottom: 0; }
.abertura.sem-foto h1 { max-width: 20ch; }
.foto-moldura { position: relative; }
.foto-moldura img { width: 100%; border-radius: var(--raio); }
.foto-moldura.media img { aspect-ratio: 3 / 2; object-fit: cover; object-position: 47% 40%; }
.foto-moldura.alta img { aspect-ratio: 5 / 4; object-fit: cover; object-position: 50% 30%; }
@media (min-width: 900px) { .foto-moldura.alta img { aspect-ratio: 1 / 1; } }
.foto-moldura figcaption { font-size: var(--t-xs); color: var(--tinta-2); margin-top: var(--s1); }

/* portas da home */
.portas { display: grid; gap: var(--s2); margin-top: var(--s5); }
@media (min-width: 700px) { .portas { grid-template-columns: 1.35fr 1fr; } }
.porta {
  display: flex; flex-direction: column; justify-content: space-between; gap: var(--s3);
  padding: var(--s4); min-height: 220px; border-radius: var(--raio); text-decoration: none;
  transition: transform 0.25s cubic-bezier(.2,.7,.2,1), box-shadow 0.25s ease;
}
.porta:hover { transform: translateY(-3px); box-shadow: var(--sombra); text-decoration: none; }
.porta strong { display: block; font: 400 clamp(1.75rem, 2.6vw, 2.125rem)/1.1 var(--serif); }
.porta span { font-size: 0.9375rem; line-height: 1.5; }
.porta .ir { font-weight: 600; font-size: 0.9375rem; }
.porta .ir::after { content: " \2192"; }
.porta.prof { background: var(--ameixa); color: #fff; }
.porta.prof span { color: #e2d6e8; }
.porta.pac { background: var(--papel); color: var(--tinta); border: 1px solid var(--linha); }
.porta.pac span { color: var(--tinta-2); }

/* ---------- listas editoriais ---------- */
.ofertas { list-style: none; padding: 0; margin: var(--s5) 0 0; border-top: 1px solid var(--linha); }
.ofertas > li { display: grid; gap: var(--s2); padding: var(--s4) 0; border-bottom: 1px solid var(--linha); }
@media (min-width: 900px) {
  .ofertas > li { grid-template-columns: 4fr 5fr 3fr; gap: var(--s5); align-items: baseline; padding: var(--s5) 0; }
}
.ofertas h3 { margin: 0; }
.ofertas h3 a { color: inherit; text-decoration: none; }
.ofertas h3 a:hover { text-decoration: underline; }
.ofertas p { margin: 0; color: var(--tinta-2); }
.ofertas .preco { font-family: var(--serif); font-size: var(--t-md); color: var(--tinta); }
.ofertas .preco small { display: block; font-family: var(--sans); color: var(--tinta-2); margin-top: 4px; }

.destaque-sup { margin-top: var(--s5); padding: var(--s5) var(--s4); border-radius: var(--raio); }
@media (min-width: 900px) { .destaque-sup { padding: var(--s6); } }

.lista-check { list-style: none; padding: 0; margin: 0 0 var(--s3); }
.lista-check li { position: relative; padding-left: 28px; margin-bottom: 12px; }
.lista-check li::before {
  content: ""; position: absolute; left: 0; top: 0.55em; width: 14px; height: 8px;
  border-left: 2px solid var(--malva); border-bottom: 2px solid var(--malva); transform: rotate(-45deg) translateY(-3px);
}
.escuro .lista-check li::before { border-color: var(--lilas-forte); }

.marcos { list-style: none; margin: var(--s5) 0 0; padding: 0; display: grid; gap: 0; }
.marcos li { display: grid; grid-template-columns: 88px 1fr; gap: var(--s3); padding: var(--s3) 0; border-top: 1px solid var(--linha); }
.marcos li:last-child { border-bottom: 1px solid var(--linha); }
.marcos b { font: 400 var(--t-md)/1.2 var(--serif); color: var(--ameixa); }
.escuro .marcos li { border-color: rgba(255,255,255,0.16); }
.escuro .marcos b { color: var(--lilas-forte); }
@media (min-width: 900px) {
  .marcos { grid-template-columns: repeat(4, 1fr); column-gap: var(--s4); }
  .marcos.tres { grid-template-columns: repeat(3, 1fr); }
  .marcos li { grid-template-columns: 1fr; gap: var(--s1); border-top: 1px solid var(--linha); border-bottom: 0 !important; padding: var(--s3) 0 var(--s4); }
}

/* fatos em linha (números com frase, não painel de métricas) */
.fatos { display: grid; gap: var(--s4); margin: var(--s5) 0 0; padding: 0; list-style: none; }
@media (min-width: 700px) { .fatos { grid-template-columns: repeat(3, 1fr); } }
.fatos li { border-top: 1px solid currentColor; padding-top: var(--s2); font-size: 0.9375rem; color: var(--tinta-2); }
.fatos li b { display: block; font: 400 var(--t-xl)/1 var(--serif); color: var(--tinta); margin-bottom: var(--s1); }
.escuro .fatos li { color: #cdbfd4; border-color: rgba(255,255,255,0.3); }
.escuro .fatos li b { color: #fff; }

/* ---------- tabelas de horários ---------- */
.horarios { width: 100%; border-collapse: collapse; margin: var(--s3) 0; font-variant-numeric: tabular-nums; }
.horarios th, .horarios td { text-align: left; padding: 14px 12px 14px 0; border-bottom: 1px solid rgba(255,255,255,0.16); vertical-align: top; }
.horarios th { font: 600 var(--t-xs)/1.3 var(--sans); letter-spacing: 0.06em; text-transform: uppercase; color: #cdbfd4; }
.horarios td:first-child { font-family: var(--serif); font-size: var(--t-md); color: #fff; white-space: nowrap; }
@media (max-width: 699px) {
  .horarios thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .horarios tr { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 16px; padding: 16px 0; border-bottom: 1px solid rgba(255,255,255,0.16); }
  .horarios td { border: 0; padding: 0; }
  .horarios td:nth-child(3)::before { content: "Supervisora: "; color: #cdbfd4; }
  .horarios td:nth-child(4)::before { content: "Vagas: "; color: #cdbfd4; }
}
.papel .horarios th, .creme .horarios th { color: var(--tinta-2); }
.papel .horarios td, .creme .horarios td { border-color: var(--linha); }

/* ---------- planos ---------- */
.planos { display: grid; gap: var(--s3); margin-top: var(--s5); }
@media (min-width: 900px) { .planos { grid-template-columns: 1fr 1.2fr 1fr; align-items: stretch; } }
.plano { padding: var(--s4); border: 1px solid var(--linha); border-radius: var(--raio); background: var(--papel); display: flex; flex-direction: column; gap: var(--s1); }
.plano h3 { margin: 0; font-size: var(--t-md); }
.plano .valor { font: 400 var(--t-xl)/1 var(--serif); margin: var(--s2) 0 0; }
.plano .mes { color: var(--tinta-2); font-size: 0.9375rem; margin: 0 0 var(--s2); }
.plano .botao { margin-top: auto; }
.plano.anual { background: var(--ameixa); color: #fff; border-color: var(--ameixa); box-shadow: var(--sombra); }
.plano.anual .mes, .plano.anual p { color: #e2d6e8; }
.plano.anual .botao { background: #fff; color: var(--ameixa-funda); border-color: #fff; }
.plano.anual .botao:hover { background: var(--lilas); }
.plano .selo { align-self: flex-start; font: 600 var(--t-xs)/1 var(--sans); background: var(--lilas); color: var(--ameixa-funda); padding: 6px 10px; border-radius: 999px; }

/* ---------- produto (e-books) ---------- */
.livros { display: grid; gap: var(--s6); margin-top: var(--s5); }
.livro { display: grid; gap: var(--s4); align-items: start; }
@media (min-width: 760px) { .livro { grid-template-columns: 220px 1fr; gap: var(--s5); } }
.livro img { width: 220px; aspect-ratio: 600 / 822; object-fit: cover; box-shadow: 0 18px 30px -18px rgba(36,24,44,0.55); border-radius: 2px; background: var(--lilas); }
.livro h3 { margin-bottom: var(--s1); }
.livro .sub { color: var(--tinta-2); margin-bottom: var(--s2); }
.livro .compra { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s3); margin-top: var(--s3); }
.livro .compra .valor { font: 400 var(--t-lg)/1 var(--serif); }

/* ---------- curso ---------- */
.modulos { list-style: none; padding: 0; margin: var(--s5) 0 0; counter-reset: mod; }
.modulos > li { border-top: 1px solid var(--linha); }
.modulos > li:last-child { border-bottom: 1px solid var(--linha); }
.modulos details summary {
  list-style: none; cursor: pointer; display: grid; grid-template-columns: 56px 1fr 24px; gap: var(--s2);
  align-items: baseline; padding: var(--s3) 0; min-height: 44px;
}
.modulos details summary::-webkit-details-marker { display: none; }
.modulos .n { font: 400 var(--t-md)/1 var(--serif); color: var(--malva); }
.modulos .t { font: 400 var(--t-md)/1.25 var(--serif); }
.modulos .mais { width: 14px; height: 14px; position: relative; align-self: center; }
.modulos .mais::before, .modulos .mais::after { content: ""; position: absolute; background: var(--tinta); left: 0; top: 6px; width: 14px; height: 2px; transition: transform .2s ease; }
.modulos .mais::after { transform: rotate(90deg); }
.modulos details[open] .mais::after { transform: rotate(0); }
.modulos details > div { padding: 0 0 var(--s4) 72px; color: var(--tinta-2); }
.modulos details ol, .modulos details ul { margin: var(--s1) 0 0; padding-left: 1.2em; columns: 1; }
@media (min-width: 900px) { .modulos details ol.duas { columns: 2; column-gap: var(--s5); } }
.modulos details li { margin-bottom: 6px; break-inside: avoid; }
@media (max-width: 600px) { .modulos details > div { padding-left: 0; } .modulos details summary { grid-template-columns: 40px 1fr 20px; } }

.depoimentos { display: grid; gap: var(--s3); margin-top: var(--s5); }
@media (min-width: 900px) { .depoimentos { grid-template-columns: repeat(3, 1fr); } }
.depoimento { margin: 0; padding: var(--s4); border: 1px dashed var(--malva); border-radius: var(--raio); background: var(--papel); }
.depoimento blockquote { margin: 0 0 var(--s3); font: 400 var(--t-md)/1.4 var(--serif); color: var(--tinta-2); }
.depoimento figcaption { font-size: 0.9375rem; color: var(--tinta-2); }

.preco-box { padding: var(--s5) var(--s4); border-radius: var(--raio); }
@media (min-width: 900px) { .preco-box { padding: var(--s6); } }
.preco-box .valor { font: 400 clamp(3rem, 6vw, var(--t-3xl))/1 var(--serif); margin: var(--s2) 0 var(--s1); }

/* ---------- perguntas ---------- */
.faq { margin-top: var(--s4); border-top: 1px solid var(--linha); }
.faq details { border-bottom: 1px solid var(--linha); }
.faq summary {
  cursor: pointer; list-style: none; padding: var(--s3) 40px var(--s3) 0; position: relative;
  font: 400 var(--t-md)/1.3 var(--serif); min-height: 44px;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; position: absolute; right: 4px; top: var(--s3); font: 300 1.75rem/1 var(--sans); color: var(--malva); }
.faq details[open] summary::after { content: "\2212"; }
.faq details > div { padding: 0 0 var(--s3); max-width: var(--texto); color: var(--tinta-2); }

/* ---------- equipe ---------- */
.equipe { list-style: none; padding: 0; margin: var(--s5) 0 0; display: grid; gap: var(--s4) var(--s3); grid-template-columns: repeat(2, 1fr); }
@media (min-width: 700px) { .equipe { grid-template-columns: repeat(4, 1fr); } }
@media (min-width: 1100px) { .equipe { grid-template-columns: repeat(5, 1fr); } }
.equipe img { aspect-ratio: 4 / 5; width: 100%; object-fit: cover; border-radius: var(--raio); background: var(--lilas); filter: saturate(0.92); }
.equipe b { display: block; font: 400 1.125rem/1.25 var(--serif); margin-top: 12px; }
.equipe span { font-size: var(--t-xs); color: var(--tinta-2); }

.socias { display: grid; gap: var(--s4); margin-top: var(--s4); }
@media (min-width: 700px) { .socias { grid-template-columns: 1fr 1fr; } }
.socias div { border-top: 1px solid var(--linha); padding-top: var(--s2); }
.socias b { font: 400 var(--t-md)/1.2 var(--serif); display: block; }

/* ---------- aviso ---------- */
.aviso { background: var(--lilas); padding: var(--s4); border-radius: var(--raio); }
.aviso h3 { font-size: var(--t-md); margin-bottom: var(--s1); }
.aviso p:last-child { margin-bottom: 0; }

.passos { list-style: none; counter-reset: p; padding: 0; margin: var(--s5) 0 0; display: grid; gap: var(--s4); }
@media (min-width: 900px) { .passos { grid-template-columns: repeat(4, 1fr); } }
.passos li { counter-increment: p; border-top: 1px solid var(--tinta); padding-top: var(--s2); }
.passos li::before { content: counter(p); display: block; font: 400 var(--t-xl)/1 var(--serif); color: var(--malva); margin-bottom: var(--s2); }
.passos b { display: block; font: 400 var(--t-md)/1.25 var(--serif); margin-bottom: var(--s1); }
.passos p { color: var(--tinta-2); font-size: 0.9375rem; margin: 0; }

/* seletor de horário (supervisão) */
.escolha { margin-top: var(--s4); display: grid; gap: var(--s2); max-width: 520px; }
.escolha label { font-weight: 600; font-size: 0.9375rem; }
.escolha select {
  appearance: none; font: 400 1rem/1.3 var(--sans); padding: 14px 44px 14px 16px; min-height: 52px; border-radius: var(--raio);
  border: 1px solid rgba(255,255,255,0.5); background: var(--ameixa-funda) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23fff' stroke-width='1.6' fill='none'/%3E%3C/svg%3E") no-repeat right 16px center;
  color: #fff;
}

/* ---------- rodapé ---------- */
.rodape { background: var(--tinta); color: #d9cfdc; padding: var(--s6) 0 var(--s4); font-size: 0.9375rem; }
.rodape a { color: #fff; }
.rodape .colunas { display: grid; gap: var(--s5); }
@media (min-width: 900px) { .rodape .colunas { grid-template-columns: 1.4fr 1fr 1fr 1.2fr; } }
.rodape h2 { font: 600 var(--t-xs)/1.3 var(--sans); letter-spacing: 0.08em; text-transform: uppercase; color: #a996ae; margin: 0 0 var(--s2); }
.rodape ul + h2 { margin-top: var(--s4); }
.rodape ul { list-style: none; padding: 0; margin: 0; }
.rodape li { margin-bottom: 10px; }
.rodape .marca { color: #fff; margin-bottom: var(--s2); }
.rodape .marca small { color: #a996ae; }
.rodape .base { border-top: 1px solid rgba(255,255,255,0.14); margin-top: var(--s5); padding-top: var(--s3); font-size: var(--t-xs); color: #a996ae; display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--s2); }

/* ---------- página de links ---------- */
.links-pagina { min-height: 100vh; padding: var(--s5) var(--s3) var(--s6); }
.links-pagina .coluna { max-width: 480px; margin: 0 auto; }
.links-pagina .cabeca { text-align: center; margin-bottom: var(--s5); }
.links-pagina .cabeca img.marca-g { width: 64px; height: 64px; margin: 0 auto var(--s2); }
.links-pagina h1 { font-size: 2.25rem; margin-bottom: var(--s1); }
.links-pagina .cabeca p { color: var(--tinta-2); margin: 0 auto; max-width: 34ch; }
.links-pagina h2 { font: 600 var(--t-xs)/1.3 var(--sans); letter-spacing: 0.08em; text-transform: uppercase; color: var(--malva); margin: var(--s5) 0 var(--s2); }
.link-item {
  display: block; padding: 18px 20px; margin-bottom: 12px; border-radius: var(--raio);
  background: var(--papel); border: 1px solid var(--linha); text-decoration: none; color: var(--tinta);
  transition: transform .2s ease, box-shadow .2s ease;
}
.link-item:hover { transform: translateY(-2px); box-shadow: var(--sombra); text-decoration: none; }
.link-item b { display: block; font: 400 1.3125rem/1.25 var(--serif); }
.link-item span { font-size: 0.875rem; color: var(--tinta-2); }
.link-item.forte { background: var(--ameixa); border-color: var(--ameixa); color: #fff; }
.link-item.forte span { color: #e2d6e8; }

/* ---------- 404 ---------- */
.erro { min-height: 70vh; display: flex; align-items: center; }

/* ---------- utilidades ---------- */
.mt-0 { margin-top: 0; } .mt-3 { margin-top: var(--s3); } .mt-5 { margin-top: var(--s5); } .mt-6 { margin-top: var(--s6); }
.mb-0 { margin-bottom: 0; }
.centro-txt { text-align: center; }
.visualmente-oculto { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}
@media print { .topo, .rodape, .acoes { display: none; } body { background: #fff; } }

/* título fixo ao lado de listas longas (perguntas, textos) no desktop */
@media (min-width: 900px) {
  .grade-2 > h2:first-child { position: sticky; top: 104px; align-self: start; }
}

/* ---------- passada de venda (15/10/2026) ---------- */
/* pensamentos do leitor: lista editorial em serifada, sem cartão */
.ruminacoes { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--linha); }
.ruminacoes li { font: 400 var(--t-md)/1.4 var(--serif); color: var(--tinta); padding: var(--s3) 0; border-bottom: 1px solid var(--linha); }
.escuro .ruminacoes, .escuro .ruminacoes li { border-color: rgba(255,255,255,0.16); color: #fff; }

/* lista "não é para você" */
.lista-x { list-style: none; padding: 0; margin: 0 0 var(--s3); }
.lista-x li { position: relative; padding-left: 28px; margin-bottom: 12px; color: var(--tinta-2); }
.lista-x li::before, .lista-x li::after {
  content: ""; position: absolute; left: 1px; top: 0.75em; width: 14px; height: 2px; background: var(--malva);
}
.lista-x li::before { transform: rotate(45deg); }
.lista-x li::after { transform: rotate(-45deg); }

/* objeções: linhas editoriais, pergunta à esquerda e resposta à direita */
.objecoes { list-style: none; padding: 0; margin: var(--s5) 0 0; border-top: 1px solid var(--linha); }
.objecoes > li { display: grid; gap: var(--s2); padding: var(--s4) 0; border-bottom: 1px solid var(--linha); }
.objecoes h3 { margin: 0; font-size: var(--t-md); line-height: 1.3; }
.objecoes p { margin: 0; color: var(--tinta-2); max-width: var(--texto); }
.objecoes p + p { margin-top: var(--s2); }
@media (min-width: 900px) { .objecoes > li { grid-template-columns: 5fr 7fr; gap: var(--s6); padding: var(--s5) 0; } }

/* comparação dos planos do Coletivo */
.comparacao-rolagem { overflow-x: auto; margin-top: var(--s5); }
.comparacao { width: 100%; min-width: 560px; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.comparacao th, .comparacao td { text-align: left; padding: 14px 16px 14px 0; border-bottom: 1px solid var(--linha); vertical-align: top; }
.comparacao thead th { font: 400 var(--t-md)/1.2 var(--serif); color: var(--tinta); }
.comparacao tbody th { font: 600 0.9375rem/1.4 var(--sans); color: var(--tinta-2); width: 28%; }
.comparacao .destacada { background: var(--lilas); padding-left: 16px; color: var(--ameixa-funda); }
.comparacao thead .destacada { color: var(--ameixa-funda); }

/* no celular o plano recomendado vem primeiro */
@media (max-width: 899px) { .plano.anual { order: -1; } }

/* fechamento centralizado: retoma a ideia e repete a ação */
.fechamento { text-align: center; }
.fechamento h2 { max-width: 22ch; margin-left: auto; margin-right: auto; }
.fechamento .lead { margin-left: auto; margin-right: auto; max-width: 46ch; }
.fechamento .acoes { justify-content: center; }

/* exemplos de pergunta ao Guia IA */
.perguntas-exemplo { list-style: none; padding: 0; margin: var(--s3) 0 0; display: grid; gap: var(--s1); }
.perguntas-exemplo li { padding: 12px 16px; border: 1px solid rgba(255,255,255,0.22); border-radius: var(--raio); font-size: 0.9375rem; color: #efe6f1; }

/* "por onde começar" nos e-books: pergunta curta em vez de número */
.fatos.guia li b { font-size: var(--t-md); line-height: 1.25; margin-bottom: var(--s1); }

.sem-quebra { white-space: nowrap; }

/* comparação cabe inteira no celular, sem rolagem lateral escondendo o anual */
@media (max-width: 699px) {
  .comparacao { min-width: 0; font-size: 0.8125rem; }
  .comparacao thead th { font-size: 1rem; }
  .comparacao th, .comparacao td { padding: 10px 6px 10px 0; }
  .comparacao tbody th { width: 26%; }
  .comparacao .destacada { padding-left: 6px; }
}
@media (max-width: 699px) { .comparacao tbody tr:nth-child(-n+2) td { white-space: nowrap; } }

/* ---------- blog ---------- */
/* Leitura: coluna de 68ch, texto em serifada para leitura longa, interface em sem serifa. */
.artigo { padding: var(--s6) 0 var(--s5); }
@media (min-width: 900px) { .artigo { padding: var(--s7) 0 var(--s6); } }
.artigo-topo, .artigo-corpo, .caminho { max-width: 42rem; margin-left: auto; margin-right: auto; }
.artigo-topo { margin-bottom: var(--s5); }
.artigo-topo h1 { font-size: clamp(2.125rem, 4.6vw, 3.5rem); line-height: 1.1; margin-bottom: var(--s3); }
.trilha { display: flex; flex-wrap: wrap; gap: 8px; font-size: var(--t-xs); margin-bottom: var(--s3); color: var(--tinta-2); }
.trilha a { color: var(--tinta-2); }
.trilha a:hover { color: var(--ameixa); }
.artigo-meta { display: flex; flex-wrap: wrap; gap: 10px; font-size: 0.9375rem; color: var(--tinta-2); margin: 0 0 var(--s1); }
.artigo-autoria { font-size: var(--t-xs); color: var(--tinta-2); margin: 0; padding-top: var(--s2); border-top: 1px solid var(--linha); }
.alerta-revisao { margin: 0 0 var(--s3); font-size: 1.0625rem; }

.artigo-corpo { font: 400 1.25rem/1.68 var(--serif); font-optical-sizing: auto; color: var(--tinta); }
.artigo-corpo p { margin: 0 0 1.05em; }
.artigo-corpo h2 { font-size: clamp(1.5rem, 2.6vw, 1.875rem); line-height: 1.2; margin: 1.8em 0 0.55em; }
.artigo-corpo > :first-child { margin-top: 0; }
.artigo-corpo strong { font-weight: 500; color: var(--ameixa-funda); }
.artigo-corpo ul, .artigo-corpo ol { margin: 0 0 1.1em; padding-left: 1.25em; }
.artigo-corpo li { margin-bottom: 0.45em; padding-left: 0.2em; }
.artigo-corpo ul li::marker { color: var(--malva); }
.artigo-corpo ol li::marker { color: var(--malva); font-variant-numeric: lining-nums; }
.artigo-corpo blockquote { margin: 1.4em 0; padding-left: 1.1em; border-left: 1px solid var(--malva); font-style: italic; color: var(--tinta-2); }
.artigo-corpo a { word-break: break-word; }

.caminho { margin-top: var(--s6); padding: var(--s4); background: var(--lilas); border-radius: var(--raio); }
.caminho h2 { font-size: var(--t-md); margin-bottom: var(--s1); }
.caminho p { color: var(--tinta-2); margin-bottom: 0; max-width: 58ch; }
.caminho .acoes { margin-top: var(--s3); }
.caminho .crise { margin-top: var(--s3); font-size: var(--t-xs); }

.relacionados { background: var(--papel); border-top: 1px solid var(--linha); }
.relacionados h2 { font-size: var(--t-lg); }
.lista-rel { list-style: none; margin: var(--s4) 0 0; padding: 0; display: grid; gap: 0; border-top: 1px solid var(--linha); }
@media (min-width: 900px) { .lista-rel { grid-template-columns: repeat(3, 1fr); column-gap: var(--s4); border-top: 0; } }
.lista-rel li { border-bottom: 1px solid var(--linha); }
@media (min-width: 900px) { .lista-rel li { border-bottom: 0; border-top: 1px solid var(--tinta); } }
.lista-rel a { display: flex; flex-direction: column; gap: var(--s1); padding: var(--s3) 0; text-decoration: none; color: var(--tinta); }
.lista-rel b { font: 400 1.3125rem/1.3 var(--serif); }
.lista-rel a:hover b { color: var(--ameixa); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.18em; }
.lista-rel span { font-size: var(--t-xs); color: var(--tinta-2); }

/* índice do blog */
.blog-abertura h1 { margin-bottom: var(--s2); }
.blog-abertura .lead { max-width: 52ch; }
.filtros { display: none; }
.js .filtros { display: grid; gap: var(--s3); margin-bottom: var(--s5); }
.filtros input[type="search"] {
  width: 100%; max-width: 560px; min-height: 52px; padding: 12px 16px; font: 400 1rem/1.3 var(--sans);
  color: var(--tinta); background: var(--creme); border: 1px solid var(--tinta-2); border-radius: var(--raio);
}
.filtros input[type="search"]::placeholder { color: #6e6075; }
.filtros input[type="search"]:focus-visible { outline: 2px solid var(--ameixa); outline-offset: 2px; border-color: var(--ameixa); }
.grupo-chips p { font: 600 var(--t-xs)/1.3 var(--sans); letter-spacing: 0.06em; text-transform: uppercase; color: var(--malva); margin: 0 0 var(--s1); }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip {
  display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 8px 14px; border-radius: 999px;
  border: 1px solid var(--linha); background: var(--creme); color: var(--tinta); font: 500 0.9375rem/1.2 var(--sans); cursor: pointer;
  transition: background .2s ease, border-color .2s ease, color .2s ease;
}
.chip .num { font-size: var(--t-xs); color: var(--tinta-2); }
.chip:hover { border-color: var(--ameixa); }
.chip[aria-pressed="true"] { background: var(--ameixa); border-color: var(--ameixa); color: #fff; }
.chip[aria-pressed="true"] .num { color: #e2d6e8; }
.resultado { margin: 0; font-size: 0.9375rem; color: var(--tinta-2); }

.mes + .mes { margin-top: var(--s5); }
.mes h2 { font-size: var(--t-md); margin: 0 0 var(--s1); color: var(--tinta-2); }
.posts { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--linha); }
.posts li { display: grid; grid-template-columns: 64px 1fr; gap: 4px var(--s3); padding: var(--s3) 0; border-bottom: 1px solid var(--linha); }
.posts time { font-size: var(--t-xs); color: var(--tinta-2); padding-top: 6px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.posts h3 { font-size: 1.375rem; line-height: 1.25; margin: 0 0 6px; }
.posts h3 a { color: var(--tinta); text-decoration: none; }
.posts h3 a:hover { color: var(--ameixa); text-decoration: underline; text-decoration-thickness: 1px; }
.posts p { margin: 0; color: var(--tinta-2); font-size: 0.9375rem; line-height: 1.5; max-width: 72ch; }
.posts .cat { grid-column: 2; font-size: var(--t-xs); color: var(--malva); font-weight: 600; }
@media (min-width: 900px) {
  .posts li { grid-template-columns: 88px 1fr 200px; align-items: baseline; }
  .posts .cat { grid-column: 3; text-align: right; }
}
.vazio { padding: var(--s5) 0; color: var(--tinta-2); }
.posts li[hidden], .mes[hidden], .vazio[hidden] { display: none; }
.abertura.blog-abertura { padding-bottom: var(--s5); }
.secao.blog-lista { padding-top: var(--s5); }
@media (max-width: 699px) {
  .posts li { grid-template-columns: 1fr; }
  .posts time { padding-top: 0; }
  .posts .cat { grid-column: auto; }
}

/* =====================================================================
   Camada macia (15/10/2026, segunda passada)
   Menos caixa rígida e régua reta: blocos tingidos e arredondados,
   painel escuro solto da borda, foto vertical em arco, figura de contato.
   ===================================================================== */

/* topo: sem régua fixa; a sombra só aparece quando a página rola */
.topo { border-bottom: 0; transition: box-shadow .3s ease; }
.topo.rolou { box-shadow: 0 1px 0 var(--linha), 0 12px 24px -22px rgba(46, 26, 62, 0.45); }
.nav-desk ul { gap: 4px; }
.nav-desk ul a { display: inline-block; padding: 6px 12px; border-radius: 999px; transition: background .2s ease, color .2s ease; }
.nav-desk ul a:hover, .nav-desk ul a[aria-current="page"] { background: var(--veu-forte); text-decoration: none; }
.nav-mob .painel { border-radius: 20px; border: 0; }
.nav-mob .painel li a { border-bottom-color: var(--veu-forte); }

/* botões e setas: retorno curto ao passar o mouse */
.botao { transition: background .2s ease, color .2s ease, transform .25s var(--suave), box-shadow .25s ease; }
.botao:hover { transform: translateY(-2px); box-shadow: var(--sombra-leve); }
.botao:active { transform: translateY(0); box-shadow: none; transition-duration: .08s; }
.seta::after, .ir::after { display: inline-block; margin-left: 0.3em; transition: transform .25s var(--suave); }
.seta:hover::after { transform: translateX(4px); }

/* seção escura: painel arredondado, solto da borda da tela */
.secao.escuro { margin: 0 8px; border-radius: var(--raio-g); }
@media (min-width: 700px) { .secao.escuro { margin: 0 16px; border-radius: 40px; } }
.secao.escuro + .secao, .secao + .secao.escuro { }
.rodape { border-radius: 32px 32px 0 0; }
@media (min-width: 700px) { .rodape { border-radius: 48px 48px 0 0; } }
.destaque-sup, .preco-box, .aviso, .caminho { border-radius: var(--raio-g); }

/* fotos: canto generoso; foto vertical ganha arco */
.foto-moldura img { border-radius: var(--raio-g); }
.foto-moldura.arco img, .foto-moldura.alta img { border-radius: 999px 999px var(--raio-g) var(--raio-g); aspect-ratio: 5 / 6; object-fit: cover; object-position: 50% 28%; }
.equipe img { border-radius: 999px 999px 18px 18px; }
.livro img { border-radius: 6px; }

/* figura de contato: dois círculos que se tocam. A fronteira entre eles é o lugar do encontro */
.foto-moldura.arco { position: relative; isolation: isolate; }
.abertura-casa .foto-moldura.arco img { aspect-ratio: 1 / 1; object-position: 50% 30%; }
.contato-fig { position: absolute; z-index: -1; width: 118%; left: -26%; bottom: -14%; overflow: visible; pointer-events: none; }
.contato-fig circle { fill: none; stroke: var(--lilas-forte); stroke-width: 1.4; }
.contato-fig .contato-meio { fill: var(--lilas); }
.abertura { position: relative; overflow: hidden; }
.abertura > .wrap { position: relative; z-index: 1; }
.abertura:not(.abertura-casa)::before {
  content: ""; position: absolute; z-index: 0; pointer-events: none;
  width: 560px; height: 364px; right: -200px; top: 24px; opacity: .75;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 260'%3E%3Cpath d='M200 37.8A110 110 0 0 1 200 222.2A110 110 0 0 1 200 37.8Z' fill='%23e7dcea'/%3E%3Ccircle cx='140' cy='130' r='110' fill='none' stroke='%23cbb5d6' stroke-width='1.4'/%3E%3Ccircle cx='260' cy='130' r='110' fill='none' stroke='%23cbb5d6' stroke-width='1.4'/%3E%3C/svg%3E") no-repeat center / contain;
}
@media (max-width: 699px) { .abertura:not(.abertura-casa)::before { display: none; } }

/* início: frentes */
.frentes-cabeca { max-width: 46rem; margin-bottom: var(--s6); }
.frentes-cabeca .lead { max-width: 52ch; }
.frente + .frente { margin-top: var(--s7); }
.frente-titulo { display: grid; gap: var(--s1); margin-bottom: var(--s4); }
.frente-titulo h3 { margin: 0; display: flex; align-items: center; gap: 14px; }
.frente-titulo h3::before {
  content: ""; flex: none; width: 34px; height: 22px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 22'%3E%3Cpath d='M17 2.6A10 10 0 0 1 17 19.4A10 10 0 0 1 17 2.6Z' fill='%23cbb5d6'/%3E%3Ccircle cx='11' cy='11' r='9.6' fill='none' stroke='%234b2a63' stroke-width='1.3'/%3E%3Ccircle cx='23' cy='11' r='9.6' fill='none' stroke='%234b2a63' stroke-width='1.3'/%3E%3C/svg%3E") no-repeat center / contain;
}
.frente-titulo p { margin: 0 0 0 48px; color: var(--tinta-2); max-width: 52ch; }

.cartoes { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s2); }
@media (min-width: 760px) { .cartoes { grid-template-columns: repeat(2, 1fr); gap: var(--s3); } }
@media (min-width: 1060px) {
  .cartoes { grid-template-columns: repeat(3, 1fr); }
  .cartoes .cartao-forte { grid-column: 1 / -1; display: grid; grid-template-columns: 5fr 7fr; grid-template-rows: auto 1fr auto; column-gap: var(--s6); align-items: start; }
  .cartoes .cartao-forte .rotulo { grid-column: 1; grid-row: 1; justify-self: start; }
  .cartoes .cartao-forte h4 { grid-column: 1; grid-row: 2; font-size: clamp(2rem, 3vw, 2.5rem); }
  .cartoes .cartao-forte .cartao-texto { grid-column: 2; grid-row: 1 / span 2; }
  .cartoes .cartao-forte .cartao-pe { grid-column: 1 / -1; grid-row: 3; }
  .cartoes-dois { grid-template-columns: 3fr 2fr; }
}
.cartao {
  position: relative; display: flex; flex-direction: column; gap: 12px;
  padding: var(--s4); border-radius: var(--raio-g); background: var(--creme);
  transition: transform .35s var(--suave), box-shadow .35s var(--suave), background .25s ease;
}
@media (min-width: 900px) { .cartao { padding: var(--s5) var(--s4) var(--s4); } }
.cartao:hover { transform: translateY(-4px); box-shadow: var(--sombra); background: #f8f2ea; }
.cartao:focus-within { outline: 2px solid var(--ameixa); outline-offset: 3px; }
.cartao:focus-within a:focus-visible { outline: 0; }
.cartao-texto { display: grid; gap: 12px; }
.cartao-forte .cartao-texto p { font-size: 1.0625rem; }
.cartao p { margin: 0; color: var(--tinta-2); font-size: 0.9875rem; line-height: 1.6; }
.cartao h4 { margin: 0 0 4px; font-size: clamp(1.5rem, 2.2vw, 1.75rem); line-height: 1.15; }
.cartao h4 a { color: var(--tinta); text-decoration: none; }
.cartao h4 a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.rotulo {
  align-self: flex-start; display: inline-block; font: 600 var(--t-xs)/1 var(--sans) !important; letter-spacing: 0;
  padding: 7px 12px; border-radius: 999px; background: var(--lilas); color: var(--ameixa-funda) !important;
}
.cartao-pe {
  margin-top: auto !important; padding-top: var(--s3); display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 8px var(--s3);
  font-size: 0.9375rem !important;
}
.cartao-pe .num { color: var(--tinta); font-weight: 500; }
.cartao-pe .ir { font-weight: 600; color: var(--ameixa); }
.cartao-pe .ir::after { content: "\2192"; }
.cartao:hover .ir::after { transform: translateX(4px); }
.cartao-forte { background: var(--ameixa); color: #fff; }
.cartao-forte:hover { background: #55306f; }
.cartao-forte h4 a { color: #fff; }
.cartao-forte p { color: #e2d6e8; }
.cartao-forte .rotulo { background: rgba(255,255,255,0.14); color: #fff !important; }
.cartao-forte .cartao-pe .num, .cartao-forte .cartao-pe .ir { color: #fff; }
.cartao-forte:focus-within { outline-color: var(--ameixa-funda); }
.cartao-claro { background: transparent; box-shadow: inset 0 0 0 1px var(--linha); }
.cartao-claro:hover { background: var(--creme); box-shadow: inset 0 0 0 1px transparent, var(--sombra); }

/* números em frase: sem régua, o número carrega a cor */
.fatos li { border-top: 0; padding-top: 0; }
.fatos li b { color: var(--ameixa); }
.escuro .fatos li b { color: #fff; }
.fatos-dois { grid-template-columns: 1fr 1fr !important; }

/* linha do tempo: pontos ligados por um fio, no lugar das réguas */
.marcos > li:nth-child(n) { border: 0; position: relative; }
.marcos > li::before { content: ""; position: absolute; width: 12px; height: 12px; border-radius: 50%; background: var(--papel); border: 2px solid var(--malva); box-sizing: border-box; }
.marcos > li::after { content: ""; position: absolute; background: var(--lilas-forte); }
@media (max-width: 899px) {
  .marcos { padding-left: 4px; }
  .marcos > li:nth-child(n) { padding: 0 0 var(--s4) 32px; grid-template-columns: 1fr; gap: 4px; }
  .marcos > li::before { left: 0; top: 7px; }
  .marcos > li::after { left: 5px; top: 22px; bottom: 2px; width: 1.5px; }
  .marcos > li:last-child::after { display: none; }
}
@media (min-width: 900px) {
  .marcos > li:nth-child(n) { padding: 32px var(--s3) var(--s4) 0; }
  .marcos > li::before { left: 0; top: 0; }
  .marcos > li::after { left: 20px; right: 8px; top: 5px; height: 1.5px; }
}
.escuro .marcos > li::before { background: var(--ameixa-funda); border-color: var(--lilas-forte); }

/* passo a passo: número dentro de um círculo */
.passos li { border-top: 0 !important; padding-top: 0; }
.passos li::before {
  width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center;
  background: var(--lilas); color: var(--ameixa-funda); font-size: 1.5rem; line-height: 1; margin-bottom: var(--s2);
}
.escuro .passos li::before { background: rgba(255,255,255,0.1); color: #fff; }

/* listas de leitura: linhas viram blocos tingidos e arredondados */
.ruminacoes { border-top: 0; display: grid; gap: 10px; }
.ruminacoes li { border-bottom: 0; background: var(--veu); padding: 18px 24px; border-radius: 22px 22px 22px 6px; }
.escuro .ruminacoes li { background: rgba(255,255,255,0.07); }

.objecoes { border-top: 0; display: grid; gap: 12px; }
.objecoes > li { border-bottom: 0; background: var(--veu); border-radius: var(--raio-g); padding: var(--s4); }
@media (min-width: 900px) { .objecoes > li { padding: var(--s5); } }

.faq { border-top: 0; display: grid; gap: 8px; }
.faq details { border-bottom: 0; background: var(--veu); border-radius: 20px; padding: 0 var(--s3); transition: background .2s ease; }
.faq details:hover, .faq details[open] { background: var(--veu-forte); }
.faq summary::after { right: 0; transition: transform .25s var(--suave); }

.modulos { display: grid; gap: 8px; }
.modulos > li { border: 0 !important; background: var(--veu); border-radius: 20px; padding: 0 var(--s3); transition: background .2s ease; }
.modulos > li:hover { background: var(--veu-forte); }
.modulos .n {
  width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; align-self: center;
  background: var(--papel); color: var(--ameixa); font-size: 1.125rem;
}
.modulos details summary { align-items: center; }

.ofertas { border-top: 0; display: grid; gap: 8px; }
.ofertas > li { border-bottom: 0; background: var(--veu); border-radius: 20px; padding: var(--s3); }
@media (min-width: 900px) { .ofertas > li { padding: var(--s3) var(--s4); } }

.socias div { border-top: 0; padding: var(--s2) var(--s3); background: var(--veu); border-radius: 18px; }
.socias b + span { display: block; }

.plano { border-radius: var(--raio-g); border: 0; box-shadow: inset 0 0 0 1px var(--linha); transition: transform .35s var(--suave), box-shadow .35s var(--suave); }
.plano:hover { transform: translateY(-3px); box-shadow: inset 0 0 0 1px var(--linha), var(--sombra-leve); }
.plano.anual { box-shadow: var(--sombra); }
.plano.anual:hover { box-shadow: 0 22px 44px -20px rgba(46, 26, 62, 0.45); }
.comparacao .destacada { background: var(--lilas); }
.comparacao thead .destacada { border-radius: 14px 14px 0 0; }
.comparacao tbody tr:last-child .destacada { border-radius: 0 0 14px 14px; }

.depoimento { border-radius: var(--raio-g); }
.perguntas-exemplo li { border-radius: 18px 18px 18px 4px; border: 0; background: rgba(255,255,255,0.08); }
.escolha select { border-radius: 14px; }
.link-item { border-radius: 20px; border: 0; box-shadow: inset 0 0 0 1px var(--linha); }
.link-item.forte { box-shadow: none; }

/* resumo nas páginas de produto: o que é, para quem, como funciona, quanto custa */
.resumo { margin: var(--s5) 0 0; padding: var(--s4); background: var(--veu); border-radius: var(--raio-g); display: grid; gap: var(--s3); }
@media (min-width: 760px) { .resumo { grid-template-columns: repeat(2, 1fr); gap: var(--s4) var(--s5); padding: var(--s5); } }
@media (min-width: 1060px) { .resumo { grid-template-columns: repeat(4, 1fr); } }
.resumo div { min-width: 0; }
.resumo dt { font: 600 var(--t-xs)/1.3 var(--sans); color: var(--ameixa); margin-bottom: 6px; }
.resumo dd { margin: 0; font-size: 0.9875rem; line-height: 1.55; color: var(--tinta); }

/* "como funciona" em cartões numerados (páginas de produto) */
.etapas { list-style: none; counter-reset: e; padding: 0; margin: var(--s5) 0 0; display: grid; gap: var(--s2); }
@media (min-width: 760px) { .etapas { grid-template-columns: repeat(2, 1fr); gap: var(--s3); } }
@media (min-width: 1060px) { .etapas.quatro { grid-template-columns: repeat(4, 1fr); } .etapas.tres { grid-template-columns: repeat(3, 1fr); } }
.etapas li { counter-increment: e; background: var(--veu); border-radius: var(--raio-g); padding: var(--s4); }
.etapas li::before {
  content: counter(e); width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center;
  background: var(--papel); color: var(--ameixa); font: 400 1.375rem/1 var(--serif); margin-bottom: var(--s2);
}
.etapas b { display: block; font: 400 var(--t-md)/1.25 var(--serif); margin-bottom: var(--s1); }
.etapas p { margin: 0; color: var(--tinta-2); font-size: 0.9375rem; }
.escuro .etapas li { background: rgba(255,255,255,0.07); }
.escuro .etapas li::before { background: rgba(255,255,255,0.12); color: #fff; }
.escuro .etapas p { color: #cdbfd4; }

/* prateleiras do Coletivo */
.prateleiras { list-style: none; padding: 0; margin: var(--s3) 0 0; display: grid; gap: 10px; }
@media (min-width: 700px) { .prateleiras { grid-template-columns: 1fr 1fr; } }
.prateleiras li { background: var(--veu); border-radius: 20px; padding: var(--s3); }
.prateleiras b { display: block; font: 400 1.25rem/1.25 var(--serif); margin-bottom: 4px; color: var(--tinta); }
.prateleiras span { font-size: 0.9375rem; color: var(--tinta-2); }

/* blog: o mesmo tom, só por CSS */
.filtros input[type="search"] { border-radius: 999px; padding-left: 22px; }
.posts { border-top: 0; }
.posts li { border-bottom: 1px solid var(--veu-forte); border-radius: 18px; padding: var(--s3) var(--s2); margin: 0 calc(-1 * var(--s2)); transition: background .2s ease; }
.posts li:hover { background: var(--veu); }
.lista-rel { border-top: 0; gap: 10px; }
.lista-rel li { border: 0 !important; background: var(--veu); border-radius: 20px; transition: background .2s ease, transform .3s var(--suave); }
.lista-rel li:hover { background: var(--veu-forte); transform: translateY(-2px); }
.lista-rel a { padding: var(--s3); }
.artigo-autoria { border-top: 0; }
.relacionados { border-top: 0; }

/* abrir e fechar perguntas e módulos com transição, onde o navegador permite */
@supports (interpolate-size: allow-keywords) {
  :root { interpolate-size: allow-keywords; }
  .faq details::details-content, .modulos details::details-content {
    height: 0; overflow: clip; transition: height .35s var(--suave), content-visibility .35s allow-discrete;
  }
  .faq details[open]::details-content, .modulos details[open]::details-content { height: auto; }
}

/* ---------- movimento ---------- */
/* entrada ao rolar: o conteúdo nasce visível; o script só esconde o que ainda está abaixo da dobra */
.revela { opacity: 0; transform: translateY(22px); transition: opacity .9s var(--suave), transform .9s var(--suave); transition-delay: var(--atraso, 0ms); }
.revela.visto { opacity: 1; transform: none; }

/* momento de abertura do início: os dois círculos se aproximam até se tocar */
@keyframes chega-a { from { opacity: 0; transform: translateX(-46px); } to { opacity: 1; transform: none; } }
@keyframes chega-b { from { opacity: 0; transform: translateX(46px); } to { opacity: 1; transform: none; } }
@keyframes acende { from { opacity: 0; } to { opacity: 1; } }
@keyframes surge { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.contato-a { animation: chega-a 1.6s var(--suave) .15s both; }
.contato-b { animation: chega-b 1.6s var(--suave) .15s both; }
.contato-meio { animation: acende 1s ease 1.1s both; }
.abertura-casa h1 { animation: surge .9s var(--suave) both; }
.abertura-casa .lead { animation: surge .9s var(--suave) .12s both; }
.abertura-casa .acoes { animation: surge .9s var(--suave) .24s both; }
.abertura-casa .foto-moldura img { animation: acende 1.2s ease .1s both; }

@media (prefers-reduced-motion: reduce) {
  .revela { opacity: 1; transform: none; }
  .cartao:hover, .plano:hover, .botao:hover, .lista-rel li:hover { transform: none; }
}
.livro .rotulo { margin-bottom: 12px; }
.livro .rotulo + h3 { margin-top: 0; }
.abertura:has(.aviso)::before { display: none; }
.modulos details ol { padding-left: 1.9em; }
