/* O que é só do site institucional. A base (papel, tinta, vermelho da marca,
   kicker, régua, hero escuro, equipe) vem do estilo.css, copiado da LP do
   planejamento para os dois sites falarem a mesma língua. */

/* ═══ LARGURA TOTAL ═══
   A LP trava o conteúdo em 1180px. O institucional ocupa a tela inteira, com
   respiro que cresce junto: 20px no celular, 96px num monitor grande. */
:root { --maxw: none; --gut: clamp(20px, 5vw, 96px); }
@media (max-width: 1000px) { :root { --gut: clamp(20px, 5vw, 96px); } }

html { overscroll-behavior-y: none; scrollbar-width: none; }
html::-webkit-scrollbar { display: none; }

/* ═══ HERO ═══
   Cabe na primeira tela no desktop: a foto acompanha a altura do texto e o
   conjunto não passa da janela menos o topo fixo. */
@media (min-width: 1001px) {
  .hero { min-height: calc(100svh - 59px); display: flex; align-items: center; padding: 48px 0 56px; }
  .hero > .wrap { width: 100%; }
  .hero-grid { grid-template-columns: 1fr minmax(380px, 30vw); gap: clamp(48px, 8vw, 166px); }
  .hero .foto-moldura { min-height: 0; max-height: calc(100svh - 230px); }
  .hero h1 { max-width: 13ch; }
  .hero .lede { max-width: 40ch; }
}
.hero-botao { width: auto; padding: 17px 34px; font-size: 14px; }

/* ═══ ÁREAS: quatro colunas ═══
   A régua da LP é escrita para 3 por linha. Aqui são 4, então a conta da
   coluna é refeita só dentro de `.areas`. */
@media (min-width: 1001px) {
  .cards-nav.areas { grid-template-columns: repeat(4, 1fr); }
  .cards-nav.areas .card-nav:nth-child(3n) { border-right: 1px solid var(--rule); padding-right: 30px; }
  .cards-nav.areas .card-nav:not(:nth-child(3n+1)) { padding-left: 0; }
  .cards-nav.areas .card-nav:not(:first-child) { padding-left: 30px; }
  .cards-nav.areas .card-nav:last-child { border-right: 0; padding-right: 0; }
  .cards-nav.areas .card-nav:nth-child(n+4) { border-top: 0; }
}

/* ═══ CITAÇÃO COM AUTOR ═══ */
.citacao .autor {
  display: block; margin-top: 18px; font-family: var(--sans); font-size: 11px; font-weight: 500;
  letter-spacing: .22em; text-transform: uppercase; color: var(--ink-3);
}

/* ═══ LINHA DE PROCESSO (administração judicial) ═══ */
.processo-linha {
  display: grid; grid-template-columns: 56px 1fr auto; gap: 32px; align-items: center;
  padding: 30px 0; border-bottom: 1px solid var(--rule); text-decoration: none;
}
.processo-linha .idx { font-family: var(--serif); font-size: 22px; color: var(--brand); line-height: 1; }
.processo-linha h3 { font-size: clamp(19px, 1.9vw, 23px); transition: color .3s; }
.processo-linha p { font-size: 15px; line-height: 1.8; margin-top: 6px; max-width: 70ch; }
.processo-linha .ir { font-size: 13px; font-weight: 500; color: var(--ink); white-space: nowrap; }
.processo-linha:hover h3, .processo-linha:hover .ir { color: var(--brand); }
@media (max-width: 720px) {
  .processo-linha { grid-template-columns: 1fr; gap: 10px; }
}

/* links do rodapé herdam a cor do texto */
footer a { text-decoration: none; }
footer a:hover { color: #fff; }

/* o botão do menu só existe dentro do painel do celular; no desktop o CTA
   fica no hero e no flutuante, como na LP */
@media (min-width: 1001px) { .nav .topo-cta { display: none; } }

/* na LP o terceiro número é "R$ 77 mi" e encolhe para caber; aqui os quatro
   têm o mesmo corpo */
.numero:nth-child(3) b { font-size: clamp(34px, 4.2vw, 56px); }

/* ═══════════════════════════════════════════════════════════════════
   HERO: peças comuns às três propostas
   ═══════════════════════════════════════════════════════════════════ */
.estrela { color: #f5b400; }
.hero-sec-link {
  font-size: 14px; font-weight: 500; color: inherit; text-decoration: none;
  border-bottom: 1px solid currentColor; padding-bottom: 3px; opacity: .8;
}
.hero-sec-link:hover { opacity: 1; }
.hero .hero-cta { flex-direction: row; align-items: center; gap: 28px; flex-wrap: wrap; }
.hero .hero-sec-link { color: rgba(245,243,239,.85); }

/* ═══ C · Escritório, claro ═══ */
.hero-c { padding: 0; background: var(--paper); color: var(--ink-2); }
.hero-c::before {
  inset: 0; height: auto;
  background: radial-gradient(ellipse at 18% 30%, rgba(224,58,52,.07), transparent 55%);
}
.hero-c h1 { color: var(--ink); margin-top: 26px; max-width: 13ch; font-size: clamp(44px, 5vw, 86px); line-height: 1.03; }
.hero-c .kicker { color: var(--ink-3); }
.hero-c .rule { background: var(--rule); }
.hero-c .lede { color: var(--ink-2); max-width: 42ch; }
.hero-c .lede strong { color: var(--ink); }
.hero-c .hero-sec-link { color: var(--ink); }
.hero-c-grid { display: grid; grid-template-columns: 1fr 44%; height: 100%; position: relative; z-index: 1; }
.hero-c-txt { display: flex; flex-direction: column; justify-content: center; padding-right: clamp(32px, 5vw, 96px) !important; }
.hero-c-foto { position: relative; height: 100%; overflow: hidden; }
.hero-c-foto img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 20%; }
.hero-c-foto::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: var(--brand); }
.hero-c-foto figcaption {
  position: absolute; right: 24px; bottom: 26px; text-align: right; color: rgba(255,255,255,.75);
  font-size: 11px; letter-spacing: .14em; text-transform: uppercase; text-shadow: 0 1px 12px rgba(0,0,0,.5);
}
.hero-c-foto figcaption b { display: block; font-size: 15px; letter-spacing: 0; text-transform: none; color: #fff; font-weight: 500; }
.selo-google {
  position: absolute; left: 28px; bottom: 28px; display: grid; grid-template-columns: auto auto; gap: 2px 12px;
  align-items: center; padding: 16px 20px; background: rgba(245,243,239,.94); backdrop-filter: blur(8px);
  text-decoration: none; color: var(--ink); box-shadow: 0 18px 40px rgba(22,23,26,.18);
}
.selo-google .g { width: 26px; height: 26px; grid-row: 1 / span 2; }
.selo-google b { font-size: 24px; font-weight: 500; }
.selo-google .estrela { letter-spacing: 2px; font-size: 14px; }
.selo-google small { font-size: 11.5px; color: var(--ink-3); }

/* altura exata da primeira tela, nas três */
@media (min-width: 1001px) {
  .hero-c { height: calc(100svh - 59px); min-height: 600px; display: flex; align-items: center; }
  .hero-c { align-items: stretch; }
  .hero-c-grid { width: 100%; }
  .hero-c-txt.wrap { max-width: none; }
}
@media (min-width: 1001px) and (max-height: 820px) {
  .hero-c h1 { font-size: clamp(40px, 4.4vw, 72px); }
}

/* ═══ SEÇÕES NOVAS DA HOME ═══ */
.lista-num.direitos > div { grid-template-columns: 56px minmax(220px, .8fr) 1.2fr; align-items: baseline; }

.destaque-plan { background: var(--ink); color: rgba(245,243,239,.75); }
.destaque-plan h2 { color: #fff; max-width: 18ch; }
.destaque-plan .kicker { color: rgba(245,243,239,.6); }
.destaque-plan .rule { background: rgba(245,243,239,.16); }
.destaque-plan .lede { color: rgba(245,243,239,.8); margin-top: 22px; max-width: 46ch; }
.destaque-plan .lede strong { color: #fff; }
.destaque-grid { display: grid; grid-template-columns: minmax(300px, .8fr) 1.2fr; gap: clamp(48px, 8vw, 166px); align-items: center; }
.destaque-txt h2 { margin-top: 26px; }
.destaque-foto { overflow: hidden; position: relative; }
.destaque-foto img { width: 100%; aspect-ratio: 4 / 4.6; object-fit: cover; object-position: 50% 20%; }
.destaque-foto::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: var(--brand); }
.destaque-acoes { margin-top: 32px; display: flex; align-items: center; gap: 26px; flex-wrap: wrap; }
.destaque-acoes .btn-solido { width: auto; padding: 17px 34px; }
.destaque-acoes span { font-size: 13px; color: rgba(245,243,239,.55); }

.entrega.so-uma { grid-template-columns: 1fr; }
.faq-col { grid-template-columns: .8fr 1.2fr; }
.faq-col .sec-head { position: sticky; top: 100px; }
.prova-topo a.google-selo { text-decoration: none; color: inherit; }

@media (max-width: 1000px) {
  .destaque-grid, .faq-col { grid-template-columns: 1fr; }
  .faq-col .sec-head { position: static; }
  .lista-num.direitos > div { grid-template-columns: 40px 1fr; }
  .lista-num.direitos p { grid-column: 2; }
}
/* o .wrap tem margin auto, que dentro da grade centraliza o bloco na coluna;
   aqui o texto tem que alinhar com o logo do topo */
.hero-c-txt.wrap { margin: 0; }
/* a legenda sobe para o topo da foto: embaixo à direita mora o botão do WhatsApp */
.hero-c-foto figcaption { top: 26px; bottom: auto; }

/* ═══ PARECER ILUSTRATIVO (faixa do planejamento) ═══
   No lugar da foto: um documento em papel que mostra a tese da frase ao lado,
   a data imaginada riscada e a data certa. Selo "exemplo ilustrativo" fixo,
   para ninguém ler como caso real. */
.parecer {
  background: var(--paper); color: var(--ink-2); padding: clamp(28px, 3vw, 44px);
  box-shadow: 0 30px 70px rgba(0,0,0,.45); position: relative; transform: rotate(-1.2deg);
}
.parecer::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: var(--brand); }
.parecer-topo {
  display: flex; justify-content: space-between; align-items: center; gap: 16px;
  padding-bottom: 18px; border-bottom: 1px solid var(--rule);
  font-size: 11px; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; color: var(--ink-3);
}
.selo-ex { border: 1px solid var(--rule); padding: 5px 9px; letter-spacing: .14em; font-size: 9.5px; white-space: nowrap; }
.linha-tempo { display: grid; grid-template-columns: 1fr 70px 1fr; align-items: start; gap: 14px; padding: 30px 0 26px; }
.marco .rot { display: block; font-size: 10.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--ink-3); }
.marco b { display: block; margin-top: 8px; font-size: clamp(20px, 1.9vw, 28px); font-weight: 400; color: var(--ink); line-height: 1.15; }
.marco .obs { display: block; margin-top: 8px; font-size: 13px; line-height: 1.55; color: var(--ink-3); }
.marco.errado b { color: var(--ink-3); text-decoration: line-through; text-decoration-color: var(--brand); text-decoration-thickness: 2px; }
.marco.certo b { color: var(--brand); font-weight: 500; }
.trilho { margin-top: 44px; height: 2px; background: repeating-linear-gradient(to right, var(--rule) 0 6px, transparent 6px 11px); position: relative; }
.trilho span { position: absolute; right: -2px; top: 50%; width: 9px; height: 9px; border-radius: 50%; background: var(--brand); transform: translateY(-50%); }
.respostas { border-top: 1px solid var(--rule); }
.respostas > div { display: grid; grid-template-columns: 120px 1fr; gap: 16px; padding: 13px 0; border-bottom: 1px solid var(--rule); align-items: baseline; }
.respostas dt { font-size: 11px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--brand); }
.respostas dd { font-size: 14.5px; color: var(--ink); }
.parecer-assina { margin-top: 26px; display: flex; flex-direction: column; align-items: flex-end; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-3); }
.parecer-assina .ass {
  font-size: 15px; font-weight: 500; letter-spacing: 0; text-transform: none;
  color: var(--ink); padding-top: 10px; border-top: 1px solid var(--ink-3); margin-bottom: 4px; min-width: 200px; text-align: right;
}
@media (max-width: 620px) {
  .parecer { transform: none; }
  .linha-tempo { grid-template-columns: 1fr; }
  .trilho { display: none; }
  .respostas > div { grid-template-columns: 1fr; gap: 4px; }
}

/* ═══════════════════════════════════════════════════════════════════
   ESPAÇAMENTO DO MMV (pedido do Victor, 26/10/2026)
   Mesma grade do hero de ctioficial.com/mmv (MmvPagina.css,
   .mmv2-hero__grade): texto 1,15 x imagem 0,85 e vão de clamp(32px, 5vw,
   96px), que dá 85px numa tela de 1710. A imagem fica DENTRO da grade, com
   o mesmo respiro do texto, em vez de sangrar até a borda.
   O mesmo vão vale nas seções de texto + imagem, para a página ter um ritmo só.
   ═══════════════════════════════════════════════════════════════════ */
:root { --vao: clamp(32px, 5vw, 96px); }

.hero-grade { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: var(--vao); align-items: center; }
.duas-col, .destaque-grid, .faq-col { gap: var(--vao); }
.destaque-grid { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); }

@media (min-width: 1001px) {
  .hero-c { align-items: center; }
  .hero-c > .wrap { width: 100%; }
  .hero-grade > figure { height: calc(100svh - 59px - 96px); max-height: 820px; }
}

/* C: a foto vira quadro na coluna direita, com a faixa vermelha no pé */
.hero-c .hero-c-txt { padding: 0 !important; }
.hero-c-foto { margin: 0; }
.hero-c-foto img { height: 100%; }

@media (max-width: 1000px) {
  .hero-grade { grid-template-columns: 1fr; }
  .hero-grade > figure { height: auto; max-width: 420px; }
}

/* Como no MMV, o texto preenche a coluna dele: sem isso o vão medido é o
   certo (5vw), mas o título curto deixa um buraco que parece o dobro. */
@media (min-width: 1001px) {
  .hero-c h1 { font-size: clamp(48px, 5.6vw, 104px); max-width: 14ch; }
  .hero-c .lede { max-width: 52ch; font-size: clamp(18px, 1.35vw, 23px); }
}
@media (min-width: 1001px) and (max-height: 820px) {
  .hero-c h1 { font-size: clamp(44px, 5vw, 86px); }
}

/* ═══ CENTRALIZADO, como o MMV (pedido do Victor, 26/10/2026) ═══
   O conteúdo vive num bloco de 80rem (1280px) no centro da tela, com 24px de
   respiro lateral, igual ao .mmv2-wrap. Substitui a largura total do começo
   deste arquivo. Topo e rodapé seguem o mesmo bloco, para o logo alinhar com
   o texto do hero. */
:root { --maxw: 80rem; --gut: 24px; }
@media (max-width: 1000px) { :root { --gut: 20px; } }
.wrap, .topo-in { max-width: var(--maxw); margin-inline: auto; padding-inline: var(--gut); }
.hero-grade > figure { max-height: 680px; }
/* título em até 3 linhas, preenchendo a coluna (regra do hero) */
@media (min-width: 1001px) {
  .hero-c h1 { font-size: clamp(44px, 4.6vw, 84px); max-width: none; }
}
/* altura real do topo medida: 64,6px (logo 30px + 14px de respiro + filete) */
:root { --topo-h: 65px; }
@media (min-width: 1001px) {
  .hero-c { height: calc(100svh - var(--topo-h)); }
  .hero-grade > figure { height: calc(100svh - var(--topo-h) - 96px); }
}

/* ═══ PÁGINAS INTERNAS ═══ */
.abertura { padding-bottom: 54px; }
.abertura h1 { max-width: 20ch; }
.trilha + .abertura { padding-top: 72px; }

.ficha-escura { border-top-color: rgba(245,243,239,.16); margin-top: 30px; }
.ficha-escura > div { border-bottom-color: rgba(245,243,239,.16); }
.ficha-escura dt { color: rgba(245,243,239,.55); }
.ficha-escura dd { color: #fff; }
.ficha a { color: inherit; text-underline-offset: 4px; }

/* documentos da recuperação judicial */
.processo-ficha { margin-top: 0; margin-bottom: 64px; }
.docs-grade { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 56px var(--vao); }
.docs-grupo h3 {
  display: flex; align-items: baseline; gap: 14px; padding-bottom: 14px; border-bottom: 1px solid var(--ink);
  font-size: clamp(18px, 1.6vw, 21px);
}
.docs-grupo h3 .idx { font-size: 12px; letter-spacing: .14em; color: var(--brand); }
.docs-grupo h3 small { margin-left: auto; font-size: 12px; color: var(--ink-3); font-weight: 400; }
.docs { list-style: none; }
.docs li a {
  display: grid; grid-template-columns: 38px 1fr; gap: 14px; align-items: baseline;
  padding: 13px 0; border-bottom: 1px solid var(--rule); text-decoration: none;
  font-size: 14.5px; line-height: 1.55; color: var(--ink-2); transition: color .25s;
}
.docs li a:hover { color: var(--brand); }
.doc-ico { font-size: 9.5px; font-weight: 500; letter-spacing: .1em; color: var(--brand); border: 1px solid currentColor; padding: 2px 0; text-align: center; }
.docs-nota { margin-top: 48px; font-size: 14px; color: var(--ink-3); }
.docs-nota a { color: var(--ink); }

/* contato */
.contatos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--rule); }
.contato-card {
  display: flex; flex-direction: column; gap: 10px; padding: 34px 28px 34px 0; text-decoration: none;
  border-right: 1px solid var(--rule); transition: color .25s;
}
.contato-card:not(:first-child) { padding-left: 28px; }
.contato-card:last-child { border-right: 0; }
.contato-card .tag { font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--brand); font-weight: 500; }
.contato-card b { font-size: clamp(17px, 1.5vw, 21px); font-weight: 400; color: var(--ink); overflow-wrap: anywhere; }
.contato-card span:last-child { font-size: 14px; color: var(--ink-3); line-height: 1.6; }
.contato-card:hover b { color: var(--brand); }
.contato-nota { margin-top: 40px; font-size: 14px; color: var(--ink-3); }
.contato-nota a { color: var(--ink); }

/* texto legal */
.texto-legal { max-width: 72ch; }
.texto-legal h3 { margin: 40px 0 12px; font-size: 20px; }
.texto-legal h3:first-child { margin-top: 0; }
.texto-legal p { font-size: 16px; line-height: 1.85; }
.texto-legal a { color: var(--ink); }
.texto-legal .atualizado { margin-top: 40px; font-size: 13px; color: var(--ink-3); }

.faq-bloco + .faq-bloco { padding-top: 0; }
.faq-bloco { padding-bottom: 72px; }
.faq-a a { color: var(--ink); }
.rodape-legal a { color: inherit; }

@media (max-width: 1000px) {
  .docs-grade, .contatos { grid-template-columns: 1fr; }
  .contato-card { padding: 26px 0 !important; border-right: 0; border-bottom: 1px solid var(--rule); }
}
/* e-mail inteiro numa linha: menor que os outros, mas sem quebrar no meio */
.contato-card b { overflow-wrap: normal; }
.contato-card[href^="mailto"] b { font-size: clamp(14px, 1.15vw, 17px); white-space: nowrap; }

/* ═══ Linguagem do hero novo no resto do site (Victor, 26/10/2026) ═══
   Títulos em serifa, o fim da frase em itálico vermelho, botão de canto
   quase reto e, em algumas seções, a mesma luz e o mesmo grão do hero. */
:root { --serif: Georgia, "Times New Roman", serif; }
h1, h2, h3 { font-weight: 400; letter-spacing: -0.045em; }
h2 { line-height: 1.08; }
h1 em.it, h2 em.it { font-style: italic; font-weight: 400; color: var(--brand); letter-spacing: -0.04em; }
.btn-solido { border-radius: 2px; }

.fundo-luz { position: relative; isolation: isolate; overflow: hidden; }
.fundo-luz::before,
.fundo-luz::after { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.fundo-luz::before {
  background:
    radial-gradient(ellipse 50% 60% at 6% 12%, rgb(255 255 255 / .85), transparent 70%),
    radial-gradient(ellipse 38% 42% at 96% 100%, rgb(224 58 52 / .06), transparent 70%);
}
.fundo-luz.fundo-direita::before {
  background:
    radial-gradient(ellipse 50% 60% at 94% 14%, rgb(255 255 255 / .85), transparent 70%),
    radial-gradient(ellipse 38% 42% at 4% 100%, rgb(224 58 52 / .06), transparent 70%);
}
.fundo-luz::after {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .1 0 0 0 0 .1 0 0 0 0 .1 0 0 0 .5 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");
  opacity: .12; mix-blend-mode: multiply;
}
.sec-head h2 { max-width: 24ch; }

/* Fechamento escuro: o mesmo arco vermelho fino dos contornos do hero. */
.proximo { position: relative; isolation: isolate; overflow: hidden; }
.proximo::before {
  content: ""; position: absolute; z-index: -1; pointer-events: none;
  right: -12%; top: -55%; width: 62%; height: 190%;
  border: 1px solid transparent; border-left-color: rgb(224 58 52 / .45); border-bottom-color: rgb(224 58 52 / .25);
  border-radius: 50%; transform: rotate(-18deg);
}
.proximo h2 em.it { color: var(--brand); }

/* ═══ Faixa do planejamento, refeita (Victor, 26/10/2026) ═══
   O parecer encostava no topo da faixa. Agora a faixa respira, o documento
   fica num "palco" com o plano vermelho e o contorno fino do hero, as datas
   vão em serifa numa linha só e a assinatura em itálico. */
.destaque-plan { padding: clamp(84px, 9vw, 132px) 0; position: relative; isolation: isolate; overflow: hidden; }
.destaque-plan::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background:
    radial-gradient(ellipse 45% 70% at 22% 50%, rgb(224 58 52 / .13), transparent 70%),
    radial-gradient(ellipse 40% 60% at 92% 10%, rgb(255 255 255 / .05), transparent 70%);
}
.destaque-plan::after {
  content: ""; position: absolute; z-index: -1; pointer-events: none;
  right: -14%; top: -40%; width: 58%; height: 170%;
  border: 1px solid transparent; border-left-color: rgb(224 58 52 / .35); border-bottom-color: rgb(224 58 52 / .18);
  border-radius: 50%; transform: rotate(-18deg);
}
.destaque-plan h2 { max-width: 20ch; }

.parecer-palco { position: relative; padding: 26px 34px 26px 0; }
.palco-vermelho {
  position: absolute; z-index: 0; top: 0; right: 0; width: 72%; height: 86%;
  border-radius: 46% 55% 27% 56% / 30% 48% 56% 62%;
  background: linear-gradient(136deg, #f34843 0%, var(--brand) 44%, #a81b21 100%);
  transform: rotate(8deg); opacity: .95;
  box-shadow: inset 2px 2px 2px rgb(255 255 255 / .17);
}
.palco-vermelho::before {
  content: ""; position: absolute; inset: -16px; border-radius: inherit; pointer-events: none;
  border: 2px solid transparent; border-top-color: var(--brand); border-right-color: var(--brand); opacity: .8;
}
.parecer-palco .parecer { z-index: 1; transform: rotate(-2deg); }
.parecer::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .1; mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .1 0 0 0 0 .1 0 0 0 0 .1 0 0 0 .5 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");
}
.parecer-topo { font-size: 10.5px; letter-spacing: .14em; }
.linha-tempo { grid-template-columns: 1fr 44px 1fr; gap: 12px; }
.marco .rot { font-size: 10px; letter-spacing: .12em; }
.marco b { font-family: var(--serif); font-size: clamp(22px, 1.75vw, 30px); letter-spacing: -0.04em; white-space: nowrap; }
.marco.certo b { font-weight: 400; font-style: italic; }
.trilho { margin-top: 40px; }
.parecer-assina .ass { font-family: var(--serif); font-style: italic; font-weight: 400; font-size: 18px; letter-spacing: -0.02em; }

@media (max-width: 620px) {
  .parecer-palco { padding: 18px 14px 18px 0; }
  .parecer-palco .parecer { transform: rotate(-1deg); }
  .marco b { white-space: normal; }
  .destaque-plan::after { display: none; }
}
.linha-tempo { grid-template-columns: 1fr 30px 1fr; }
.marco b { font-size: clamp(18px, 1.3vw, 22px); }
.parecer-palco { padding-right: 24px; }

/* Depois de faixa com fundo próprio (escura ou com luz), a seção seguinte
   precisa do respiro de cima: o "section + section { padding-top: 0 }" da LP
   colava o rótulo "04" na borda da faixa escura. */
.destaque-plan + section, .fundo-luz + section { padding-top: 68px; }
@media (max-width: 1000px) {
  .destaque-plan + section, .fundo-luz + section { padding-top: 52px; }
}

/* Superendividamento: as duas colunas começam e terminam na mesma linha.
   O primeiro item da lista abre na altura da primeira linha do texto e o link
   desce até o pé, alinhado com o último filete da lista. */
#superendividamento .duas-col { align-items: stretch; }
#superendividamento .duas-col > div:first-child { display: flex; flex-direction: column; align-items: flex-start; }
#superendividamento .duas-col > div:first-child .link-cta { margin-top: auto !important; }
#superendividamento .entrega { border-top: 0; align-content: space-between; }
#superendividamento .entrega > div { padding: 22px 0; }
#superendividamento .entrega > div:first-child { padding-top: 8px; }
@media (max-width: 1000px) {
  #superendividamento .duas-col > div:first-child .link-cta { margin-top: 22px !important; }
  #superendividamento .entrega { border-top: 1px solid var(--rule); }
  #superendividamento .entrega > div:first-child { padding-top: 22px; }
}

/* Áreas: número, título, texto e link em linhas comuns aos quatro cartões.
   Quando um título quebra em duas linhas, os outros textos descem junto. */
@media (min-width: 1001px) {
  .cards-nav.areas { grid-template-rows: auto auto 1fr auto; }
  .cards-nav.areas .card-nav { display: grid; grid-row: span 4; grid-template-rows: subgrid; row-gap: 0; }
  .cards-nav.areas .card-nav .ir { justify-self: start; }
}

/* ═══ Áreas com a linguagem do hero (Victor, 26/10/2026) ═══
   Continua lista aberta com fios, sem caixa parada. O número vira o "B" do
   hero: serifa grande só em contorno. No hover a placa escura do retrato sobe
   atrás da coluna, com o plano vermelho no canto, e o texto acende. */
@media (min-width: 1001px) {
  .cards-nav.areas .card-nav { position: relative; isolation: isolate; padding-top: 40px; padding-bottom: 40px; }
  .cards-nav.areas .card-nav::before,
  .cards-nav.areas .card-nav::after {
    content: ""; position: absolute; z-index: -1; pointer-events: none;
    opacity: 0; transition: opacity .45s cubic-bezier(.22,1,.36,1), transform .6s cubic-bezier(.22,1,.36,1);
  }
  .cards-nav.areas .card-nav::before {
    inset: -1px 0 0 0; border-radius: 0 0 18px 18px;
    background: radial-gradient(ellipse at 23% 15%, #3c3e40 0, #292c2e 48%, #1a1d1f 100%);
    box-shadow: inset 1px 1px 1px rgb(255 255 255 / .1), 0 26px 40px rgb(15 18 20 / .16);
    transform: translateY(14px);
  }
  .cards-nav.areas .card-nav:first-child::before { left: -30px; }
  .cards-nav.areas .card-nav:last-child::before { right: -30px; }
  .cards-nav.areas .card-nav::after {
    right: -8%; bottom: -16%; width: 58%; height: 42%;
    border-radius: 46% 55% 27% 56% / 30% 48% 56% 62%;
    background: linear-gradient(136deg, #f34843 0%, var(--brand) 44%, #a81b21 100%);
    transform: rotate(-15deg) translateY(30px); clip-path: inset(0 0 38% 0 round 0);
  }
  .cards-nav.areas .card-nav:hover::before { opacity: 1; transform: none; }
  .cards-nav.areas .card-nav:hover::after { opacity: .9; transform: rotate(-15deg); }

  .cards-nav.areas .card-nav .idx {
    font-family: var(--serif); font-size: clamp(64px, 5.4vw, 96px); line-height: .9; letter-spacing: -0.05em;
    color: transparent; -webkit-text-stroke: 1px rgb(224 58 52 / .55);
    transition: -webkit-text-stroke-color .45s, color .45s;
  }
  .cards-nav.areas .card-nav h3 { margin: 26px 0 12px; font-size: clamp(22px, 1.75vw, 28px); transition: color .45s; }
  .cards-nav.areas .card-nav p { transition: color .45s; }
  .cards-nav.areas .card-nav .ir {
    position: relative; margin-top: 22px; padding-bottom: 6px; transition: color .45s;
  }
  .cards-nav.areas .card-nav .ir::after {
    content: ""; position: absolute; left: 0; bottom: 0; width: 100%; height: 1px; background: currentColor;
    transform: scaleX(.35); transform-origin: left; transition: transform .5s cubic-bezier(.22,1,.36,1);
  }
  .cards-nav.areas .card-nav:hover { opacity: 1; }
  .cards-nav.areas .card-nav:hover .idx { -webkit-text-stroke-color: var(--brand); }
  .cards-nav.areas .card-nav:hover h3 { color: #fff; }
  .cards-nav.areas .card-nav:hover p { color: rgb(245 243 239 / .72); }
  .cards-nav.areas .card-nav:hover .ir { color: #fff; }
  .cards-nav.areas .card-nav:hover .ir::after { transform: scaleX(1); }
}
@media (min-width: 1001px) and (prefers-reduced-motion: reduce) {
  .cards-nav.areas .card-nav::before,
  .cards-nav.areas .card-nav::after { transition: none; }
}
@media (min-width: 1001px) {
  .cards-nav.areas .card-nav::after {
    z-index: -2; clip-path: none;
    right: -16px; top: 14%; bottom: auto; width: 48%; height: 70%;
    transform: rotate(-7deg) translateX(-14px);
  }
  .cards-nav.areas .card-nav:last-child::after { right: -46px; }
  .cards-nav.areas .card-nav:hover::after { opacity: 1; transform: rotate(-7deg); }
}
/* Victor, 26/10: no hover só a placa escura, sem o plano vermelho. */
.cards-nav.areas .card-nav::after { display: none; }

/* ═══ Direitos do servidor (Victor, 26/10/2026) ═══
   Título fixo à esquerda enquanto a lista corre à direita. Número pequeno em
   Roboto com o traço vermelho do hero (o "01" da Georgia lia como "o1"). */
.direitos-grid { margin-top: 44px; display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: var(--vao); align-items: start; }
.direitos-txt { position: sticky; top: calc(var(--topo-h, 65px) + 48px); }
.direitos-txt h2 { max-width: 14ch; }
.direitos-txt .lede { margin-top: 24px; max-width: 40ch; }
.direitos-txt .link-cta { margin-top: 26px; }

.lista-num.direitos { border-top: 0; }
.lista-num.direitos > div {
  grid-template-columns: 64px 1fr; align-items: start; column-gap: 0; row-gap: 8px;
  padding: 26px 0; transition: padding-left .45s cubic-bezier(.22,1,.36,1);
}
.lista-num.direitos > div:first-child { padding-top: 6px; }
.lista-num.direitos .idx {
  grid-row: span 2; padding-top: 9px;
  font-family: var(--sans); font-size: 12px; font-weight: 500; letter-spacing: .16em; line-height: 1;
}
.lista-num.direitos .idx::after {
  content: ""; display: block; width: 26px; height: 1px; margin-top: 10px; background: var(--brand); opacity: .65;
  transition: width .45s cubic-bezier(.22,1,.36,1), opacity .45s;
}
.lista-num.direitos h3 { font-size: clamp(22px, 1.8vw, 28px); transition: color .35s; }
.lista-num.direitos p { grid-column: 2; max-width: 52ch; color: var(--ink-3); }
.lista-num.direitos > div:hover h3 { color: var(--brand); }
.lista-num.direitos > div:hover .idx::after { width: 44px; opacity: 1; }

@media (max-width: 1000px) {
  .direitos-grid { grid-template-columns: 1fr; gap: 28px; margin-top: 32px; }
  .direitos-txt { position: static; }
  .lista-num.direitos { border-top: 1px solid var(--rule); }
  .lista-num.direitos > div { grid-template-columns: 48px 1fr; }
  .lista-num.direitos > div:first-child { padding-top: 26px; }
}
.direitos-txt h2 { max-width: 17ch; }

/* ═══ Como funciona em escada (Victor, 26/10/2026) ═══
   Em vez de três colunas iguais, os passos sobem: o fio vermelho do hero
   liga um ponto ao outro e termina no alto, na estratégia por escrito.
   O desenho vale para a grade de 3 colunas sem vão: os pontos ficam em
   0, 1/3 e 2/3 da largura, e o SVG estica só no eixo x (150px de altura fixa). */
.processo.escada { position: relative; border-top: 0; margin-top: 12px; }
.escada-linha {
  position: absolute; left: 0; top: 0; width: 100%; height: 150px; overflow: visible; pointer-events: none;
}
.escada-linha path {
  fill: none; stroke: var(--brand); stroke-width: 1.5; vector-effect: non-scaling-stroke;
  stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 1.8s cubic-bezier(.22,1,.36,1) .2s;
}
.escada-linha.in path { stroke-dashoffset: 0; }
.escada .passo { position: relative; border-right: 0; padding: 44px 48px 0 0; }
.escada .passo:nth-child(2) { margin-top: 130px; }
.escada .passo:nth-child(3) { margin-top: 70px; }
.escada .passo:nth-child(4) { margin-top: 10px; }
.escada .passo::before {
  content: ""; position: absolute; left: -7px; top: 0; width: 14px; height: 14px; border-radius: 50%;
  background: var(--paper); border: 1.5px solid var(--brand);
}
.escada .passo:nth-child(4)::before { background: var(--brand); box-shadow: 0 0 0 7px rgb(224 58 52 / .14); }
.escada .passo .idx {
  display: block; font-family: var(--sans); font-size: 12px; font-weight: 500; letter-spacing: .16em; color: var(--brand);
}
.escada .passo h3 { margin: 12px 0 10px; font-size: clamp(24px, 2vw, 32px); }
.escada .passo p { max-width: 34ch; }
.escada .passo:nth-child(4) h3 { color: var(--ink); }

@media (max-width: 1000px) {
  .escada-linha { display: none; }
  .processo.escada { grid-template-columns: 1fr; border-left: 1.5px solid var(--brand); margin-left: 7px; }
  .escada .passo,
  .escada .passo:nth-child(n) { margin-top: 0; padding: 0 0 34px 28px; }
  .escada .passo::before { left: -8.5px; top: 4px; }
}
/* o traço "desenhado" por dasharray quebra com non-scaling-stroke; revela por recorte */
.escada-linha path { stroke-dasharray: none; stroke-dashoffset: 0; transition: none; }
.escada-linha { clip-path: inset(-10px 100% -10px -10px); transition: clip-path 1.8s cubic-bezier(.22,1,.36,1) .15s; }
.escada-linha.in { clip-path: inset(-10px -10px -10px -10px); }
/* o SVG não entra no observador; acende quando o primeiro passo aparece */
.escada:has(.passo.in) .escada-linha { clip-path: inset(-10px -10px -10px -10px); }
@media (prefers-reduced-motion: reduce) { .escada-linha { clip-path: none; transition: none; } }

/* ═══ Depoimentos editoriais (Victor, 26/10/2026) ═══
   Sem caixas brancas: a nota do Google grande em serifa à esquerda, uma fala
   em destaque com as aspas em contorno (o "B" do hero) e as outras duas
   abaixo, separadas por fio. Os textos são as avaliações reais do perfil. */
.prova-grid { margin-top: 44px; display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: var(--vao); align-items: start; }
.prova-lado { position: sticky; top: calc(var(--topo-h, 65px) + 48px); }
.prova-lado h2 { max-width: 12ch; }
.prova-nota { display: flex; align-items: center; gap: 22px; margin-top: 40px; padding-top: 30px; border-top: 1px solid var(--rule); text-decoration: none; color: var(--ink); }
.prova-nota b { font-family: var(--serif); font-weight: 400; font-size: clamp(84px, 7.5vw, 128px); line-height: .85; letter-spacing: -0.06em; }
.prova-nota-txt { display: flex; flex-direction: column; gap: 4px; font-size: 14px; color: var(--ink-3); }
.prova-nota .estrelas { color: #f4b400; font-size: 20px; letter-spacing: 3px; }
.prova-nota .ver { display: inline-flex; align-items: center; gap: 8px; margin-top: 8px; font-weight: 500; color: var(--ink); padding-bottom: 4px; border-bottom: 1px solid var(--ink); align-self: flex-start; transition: color .3s, border-color .3s; }
.prova-nota .ver .g { width: 16px; height: 16px; }
.prova-nota:hover .ver { color: var(--brand); border-color: var(--brand); }

.fala-destaque { position: relative; padding-top: 6px; }
.fala-destaque .aspas {
  position: absolute; z-index: -1; left: -.12em; top: -.3em; pointer-events: none;
  font-family: var(--serif); font-size: clamp(220px, 20vw, 340px); line-height: 1;
  color: transparent; -webkit-text-stroke: 1.2px rgb(224 58 52 / .35);
}
.fala-destaque blockquote {
  font-family: var(--serif); font-size: clamp(24px, 2.1vw, 34px); line-height: 1.35; letter-spacing: -0.03em; color: var(--ink);
}
.prova-falas figcaption { display: flex; align-items: center; gap: 14px; margin-top: 24px; font-size: 13px; color: var(--ink-3); }
.prova-falas figcaption b { display: block; font-size: 15px; font-weight: 500; color: var(--ink); }
.prova-falas .ini {
  flex: 0 0 auto; width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center;
  border: 1px solid var(--brand); color: var(--brand); font-family: var(--serif); font-size: 18px;
}
.falas-menores { display: grid; grid-template-columns: 1fr 1fr; margin-top: 48px; border-top: 1px solid var(--rule); }
.fala { padding: 30px 32px 0 0; }
.fala + .fala { padding: 30px 0 0 32px; border-left: 1px solid var(--rule); }
.fala blockquote { font-size: 15.5px; line-height: 1.8; color: var(--ink-2); }

@media (max-width: 1000px) {
  .prova-grid { grid-template-columns: 1fr; gap: 40px; margin-top: 32px; }
  .prova-lado { position: static; }
  .falas-menores { grid-template-columns: 1fr; }
  .fala, .fala + .fala { padding: 26px 0; border-left: 0; }
  .fala + .fala { border-top: 1px solid var(--rule); }
}

/* ═══ Administração judicial: a ficha do processo na placa escura do hero ═══ */
.aj-grid { margin-top: 44px; display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: var(--vao); align-items: center; }
.aj-txt h2 { max-width: 12ch; }
.aj-txt .lede { margin-top: 24px; max-width: 42ch; }
.aj-txt .link-cta { margin-top: 26px; }
.aj-ficha {
  position: relative; isolation: isolate; overflow: hidden; display: block; text-decoration: none;
  padding: clamp(32px, 3.4vw, 52px); border-radius: 22px; color: rgb(245 243 239 / .72);
  background: radial-gradient(ellipse at 23% 15%, #3c3e40 0, #292c2e 48%, #1a1d1f 100%);
  box-shadow: inset 1px 1px 1px rgb(255 255 255 / .1), 0 30px 60px rgb(15 18 20 / .18);
  transition: transform .5s cubic-bezier(.22,1,.36,1), box-shadow .5s;
}
.aj-ficha::after {
  content: ""; position: absolute; z-index: -1; pointer-events: none;
  right: -22%; top: -38%; width: 70%; height: 120%; border-radius: 50%;
  border: 1px solid transparent; border-left-color: rgb(224 58 52 / .55); border-bottom-color: rgb(224 58 52 / .3);
  transform: rotate(-18deg);
}
.aj-ficha:hover { transform: translateY(-4px); box-shadow: inset 1px 1px 1px rgb(255 255 255 / .1), 0 40px 70px rgb(15 18 20 / .24); }
.aj-tag { font-size: 11px; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; color: var(--brand); }
.aj-ficha h3 { margin-top: 18px; color: #fff; font-size: clamp(40px, 3.8vw, 64px); line-height: 1; }
.aj-ficha > p { margin-top: 14px; font-size: 15px; line-height: 1.7; max-width: 44ch; }
.aj-ficha dl { margin-top: 28px; border-top: 1px solid rgb(245 243 239 / .14); }
.aj-ficha dl > div { display: grid; grid-template-columns: 140px 1fr; gap: 16px; padding: 13px 0; border-bottom: 1px solid rgb(245 243 239 / .14); }
.aj-ficha dt { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: rgb(245 243 239 / .5); padding-top: 3px; }
.aj-ficha dd { font-size: 15px; color: #fff; }
.aj-ir { position: relative; display: inline-block; margin-top: 30px; padding-bottom: 6px; font-size: 14px; font-weight: 500; color: #fff; }
.aj-ir::after { content: ""; position: absolute; left: 0; bottom: 0; width: 100%; height: 1px; background: var(--brand); transform: scaleX(.35); transform-origin: left; transition: transform .5s cubic-bezier(.22,1,.36,1); }
.aj-ficha:hover .aj-ir::after { transform: scaleX(1); }

/* ═══ Dúvidas da home: rótulo e fio na largura toda, pergunta 1 na altura do título ═══ */
.faq-home .faq-col { margin-top: 44px; }
.faq-home .faq-col .sec-head { margin-bottom: 0; top: calc(var(--topo-h, 65px) + 48px); }
.faq-home .sec-head .corpo { margin-top: 22px; max-width: 36ch; }
.faq-home .sec-head .link-cta { margin-top: 22px; }
.faq-home .faq-lista { border-top: 0; }
.faq-home .faq-item:first-child .faq-q { padding-top: 8px; }
.faq-home .faq-q { align-items: center; }
.faq-home .faq-q .mais {
  width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--rule);
  display: grid; place-items: center; font-size: 18px; line-height: 1;
  transition: transform .35s cubic-bezier(.22,1,.36,1), background .3s, color .3s, border-color .3s;
}
.faq-home .faq-q:hover .mais { border-color: var(--brand); }
.faq-home .faq-item.open .faq-q .mais { background: var(--brand); border-color: var(--brand); color: #fff; }

@media (max-width: 1000px) {
  .aj-grid { grid-template-columns: 1fr; gap: 32px; margin-top: 32px; }
  .aj-ficha dl > div { grid-template-columns: 1fr; gap: 4px; }
  .faq-home .faq-col { margin-top: 32px; }
  .faq-home .faq-lista { border-top: 1px solid var(--rule); }
  .faq-home .faq-item:first-child .faq-q { padding-top: 26px; }
}
.faq-home .sec-head h2 { margin-top: 0; }

/* ═══ Equipe com o retrato do hero (Victor, 26/10/2026) ═══
   Os círculos viram a placa do hero: retângulo de canto arredondado, foto
   levemente dessaturada, nome em serifa alinhado à esquerda. No hover a foto
   ganha cor, sobe um pouco e aparece o contorno vermelho fino em volta. */
.equipe .equipe-grid { gap: 24px; }
.equipe .pessoa { text-align: left; }
.equipe .pessoa figure {
  aspect-ratio: 4 / 5; border-radius: 18px; overflow: visible; outline: 0;
  box-shadow: 0 0 0 1px rgb(0 0 0 / .06), 0 18px 34px -22px rgb(0 0 0 / .5);
}
.equipe .pessoa figure img { border-radius: 18px; object-position: center 18%; }
.equipe .pessoa figure::after {
  content: ""; position: absolute; inset: -9px; border-radius: 24px; pointer-events: none;
  border: 1px solid transparent; border-top-color: var(--brand); border-right-color: var(--brand);
  opacity: 0; transition: opacity .45s ease, inset .45s ease;
}
.equipe .pessoa:hover figure { outline: 0; }
.equipe .pessoa:hover figure::after { opacity: .8; inset: -11px; }
.equipe .pessoa:hover img { transform: none; }
.equipe .pessoa .risco { margin: 20px 0 0; transition: width .45s cubic-bezier(.22,1,.36,1); }
.equipe .pessoa:hover .risco { width: 44px; }
.equipe .pessoa b { margin-top: 14px; font-family: var(--serif); font-size: clamp(18px, 1.35vw, 22px); font-weight: 400; letter-spacing: -0.03em; }
.equipe .pessoa span { margin: 6px 0 0; max-width: 26ch; font-size: 13px; }

/* Rodapé: todas as páginas numa linha, já que o menu do topo ficou com duas. */
.rodape-nav { display: flex; flex-wrap: wrap; gap: 10px 28px; margin-top: 36px; padding-top: 24px; border-top: 1px solid rgb(245 243 239 / .12); }
.rodape-nav a { font-size: 14px; color: rgb(245 243 239 / .78); text-decoration: none; transition: color .3s; }
.rodape-nav a:hover { color: #fff; }

/* ═══ Página de Dúvidas refeita (Victor, 26/10/2026) ═══ */
.duv-abertura { padding-top: 84px; padding-bottom: 84px; }
.trilha + .duv-abertura { padding-top: 64px; }
.duv-grid { margin-top: 44px; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: var(--vao); align-items: start; }
.duv-grid h2 { max-width: 14ch; font-size: clamp(40px, 4.4vw, 72px); line-height: 1.04; }
.duv-grid .lede { margin-top: 26px; max-width: 46ch; }
.duv-grid .btn-solido { width: auto; margin-top: 32px; padding: 17px 32px; }
.duv-indice { display: flex; flex-direction: column; }
.duv-indice .rot { font-size: 11px; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; color: var(--ink-3); padding-bottom: 14px; border-bottom: 1px solid var(--rule); }
.duv-indice a { display: grid; grid-template-columns: 44px 1fr auto; align-items: baseline; gap: 12px; padding: 16px 0; border-bottom: 1px solid var(--rule); text-decoration: none; color: var(--ink); transition: color .3s, padding-left .45s cubic-bezier(.22,1,.36,1); }
.duv-indice .n { font-size: 12px; font-weight: 500; letter-spacing: .16em; color: var(--brand); }
.duv-indice b { font-family: var(--serif); font-weight: 400; font-size: 21px; letter-spacing: -0.03em; }
.duv-indice .q { font-size: 13px; color: var(--ink-3); }
.duv-indice a:hover { color: var(--brand); padding-left: 8px; }

.faq-bloco.faq-home { padding: 0 0 72px; }
.faq-bloco.faq-home .faq-col { margin-top: 0; padding-top: 64px; border-top: 1px solid var(--rule); }
.duv-abertura + .faq-bloco .faq-col { border-top: 0; }
.faq-bloco .bloco-num {
  display: block; font-family: var(--serif); font-size: clamp(64px, 5.4vw, 96px); line-height: .9; letter-spacing: -0.05em;
  color: transparent; -webkit-text-stroke: 1px rgb(224 58 52 / .55);
}
.faq-bloco .sec-head h2 { margin-top: 18px; font-size: clamp(30px, 2.8vw, 44px); max-width: 14ch; }
.faq-bloco .sec-head .corpo { margin-top: 10px; font-size: 14px; color: var(--ink-3); }
.faq-bloco .faq-item:first-child .faq-q { padding-top: 8px; }

@media (max-width: 1000px) {
  .duv-grid { grid-template-columns: 1fr; gap: 40px; margin-top: 32px; }
  .duv-abertura { padding-top: 56px; padding-bottom: 56px; }
  .faq-bloco.faq-home { padding-bottom: 52px; }
  .faq-bloco.faq-home .faq-col { padding-top: 44px; }
  .faq-bloco .faq-item:first-child .faq-q { padding-top: 26px; }
}
.faq-bloco { scroll-margin-top: calc(var(--topo-h, 65px) + 8px); }

/* ═══ Contato refeito (Victor, 26/10/2026) ═══
   WhatsApp em destaque, telefone e e-mail em lista aberta, e o endereço na
   placa escura do hero, igual à ficha do processo na home. */
.ctt { padding-top: 84px; }
.trilha + .ctt { padding-top: 64px; }
.ctt-grid { margin-top: 44px; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: var(--vao); align-items: start; }
.ctt-txt h2 { font-size: clamp(40px, 4.4vw, 72px); line-height: 1.04; max-width: 14ch; }
.ctt-txt .lede { margin-top: 24px; max-width: 46ch; }
.ctt .tag { display: block; font-size: 11px; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; color: var(--brand); }
.ctt-zap { margin-top: 40px; padding-top: 28px; border-top: 1px solid var(--rule); display: flex; flex-direction: column; align-items: flex-start; }
.ctt-zap b { margin-top: 10px; font-family: var(--serif); font-weight: 400; font-size: clamp(40px, 3.8vw, 60px); line-height: 1; letter-spacing: -0.04em; color: var(--ink); }
.ctt-zap > span:not(.tag) { margin-top: 10px; font-size: 15px; color: var(--ink-3); }
.ctt-zap .btn-solido { width: auto; margin-top: 24px; padding: 17px 32px; }
.ctt-lista { margin-top: 40px; border-top: 1px solid var(--rule); }
.ctt-lista a { display: grid; grid-template-columns: 120px minmax(0, 1fr) auto; align-items: baseline; gap: 16px; padding: 20px 0; border-bottom: 1px solid var(--rule); text-decoration: none; transition: padding-left .45s cubic-bezier(.22,1,.36,1); }
.ctt-lista b { font-family: var(--serif); font-weight: 400; font-size: clamp(19px, 1.5vw, 23px); letter-spacing: -0.02em; color: var(--ink); overflow-wrap: anywhere; transition: color .3s; }
.ctt-lista a > span:last-child { font-size: 13px; color: var(--ink-3); text-align: right; }
.ctt-lista a:hover { padding-left: 8px; }
.ctt-lista a:hover b { color: var(--brand); }

.ctt-ficha {
  position: sticky; top: calc(var(--topo-h, 65px) + 32px);
  isolation: isolate; overflow: hidden; display: block; text-decoration: none;
  padding: clamp(32px, 3.4vw, 52px); border-radius: 22px; color: rgb(245 243 239 / .72);
  background: radial-gradient(ellipse at 23% 15%, #3c3e40 0, #292c2e 48%, #1a1d1f 100%);
  box-shadow: inset 1px 1px 1px rgb(255 255 255 / .1), 0 30px 60px rgb(15 18 20 / .18);
  transition: transform .5s cubic-bezier(.22,1,.36,1);
}
.ctt-ficha::after {
  content: ""; position: absolute; z-index: -1; pointer-events: none;
  right: -24%; top: -36%; width: 74%; height: 118%; border-radius: 50%;
  border: 1px solid transparent; border-left-color: rgb(224 58 52 / .55); border-bottom-color: rgb(224 58 52 / .3);
  transform: rotate(-18deg);
}
.ctt-ficha:hover { transform: translateY(-4px); }
.ctt-ficha h3 { margin-top: 18px; color: #fff; font-size: clamp(34px, 3vw, 50px); line-height: 1.02; }
.ctt-ficha > p { margin-top: 14px; font-size: 15px; line-height: 1.7; }
.ctt-ficha dl { margin-top: 28px; border-top: 1px solid rgb(245 243 239 / .14); }
.ctt-ficha dl > div { display: grid; grid-template-columns: 120px 1fr; gap: 16px; padding: 13px 0; border-bottom: 1px solid rgb(245 243 239 / .14); }
.ctt-ficha dt { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: rgb(245 243 239 / .5); padding-top: 3px; }
.ctt-ficha dd { font-size: 15px; color: #fff; }
.ctt-ficha:hover .aj-ir::after { transform: scaleX(1); }
.ctt .contato-nota { margin-top: 56px; }

@media (max-width: 1000px) {
  .ctt { padding-top: 56px; }
  .ctt-grid { grid-template-columns: 1fr; gap: 40px; margin-top: 32px; }
  .ctt-ficha { position: relative; top: 0; }
  .ctt-lista a { grid-template-columns: 1fr; gap: 4px; }
  .ctt-lista a > span:last-child { text-align: left; }
  .ctt-ficha dl > div { grid-template-columns: 1fr; gap: 4px; }
}
.ctt-lista a { grid-template-columns: 120px minmax(0, 1fr); row-gap: 4px; }
.ctt-lista a > span:last-child { grid-column: 2; text-align: left; }
.ctt-lista b { overflow-wrap: normal; white-space: nowrap; }
@media (max-width: 1000px) {
  .ctt-lista a { grid-template-columns: 1fr; }
  .ctt-lista a > span:last-child { grid-column: 1; }
  .ctt-lista b { white-space: normal; overflow-wrap: anywhere; }
}

/* Contato: no lugar da ficha escura, o mapa (Victor, 26/10/2026). Moldura de
   canto arredondado do hero com o filete vermelho; o mapa entra em tons de
   cinza para não brigar com a paleta e ganha cor no hover. */
.ctt-mapa { position: sticky; top: calc(var(--topo-h, 65px) + 32px); margin: 0; }
.ctt-mapa-moldura {
  position: relative; border-radius: 22px; aspect-ratio: 4 / 4.6;
  box-shadow: 0 0 0 1px rgb(0 0 0 / .06), 0 30px 60px -28px rgb(15 18 20 / .45);
}
.ctt-mapa-moldura::after {
  content: ""; position: absolute; inset: -12px; border-radius: 30px; pointer-events: none;
  border: 1.5px solid transparent; border-top-color: var(--brand); border-right-color: var(--brand); opacity: .75;
}
.ctt-mapa iframe {
  display: block; width: 100%; height: 100%; border: 0; border-radius: 22px;
  filter: grayscale(.85) contrast(1.05); transition: filter .5s ease;
}
.ctt-mapa:hover iframe { filter: none; }
.ctt-mapa figcaption { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; margin-top: 26px; font-size: 14px; color: var(--ink-3); line-height: 1.6; }
.ctt-mapa figcaption b { display: block; font-family: var(--serif); font-weight: 400; font-size: 21px; letter-spacing: -0.02em; color: var(--ink); }
.ctt-mapa figcaption .link-cta { white-space: nowrap; padding: 4px 0; }
@media (max-width: 1000px) {
  .ctt-mapa { position: relative; top: 0; }
  .ctt-mapa-moldura { aspect-ratio: 4 / 3.4; }
  .ctt-mapa figcaption { flex-direction: column; align-items: flex-start; }
}
/* mapa da altura da coluna de texto: começa no título e termina no último fio da lista */
@media (min-width: 1001px) {
  .ctt-grid { align-items: stretch; }
  .ctt-mapa { position: relative; top: 0; display: flex; flex-direction: column; }
  .ctt-mapa-moldura { aspect-ratio: auto; flex: 1; min-height: 420px; }
}
.zap { transition: opacity .3s, transform .3s; }
@media (max-width: 1023px) {
  body.cta-na-tela .zap { opacity: 0; transform: translateY(12px); pointer-events: none; }
}

/* ═══════════════════════════════════════════════════════════════════
   CELULAR (até 1000px), num bloco só e no FIM do arquivo de propósito
   (Victor, 26/10/2026). Várias regras do desktop foram escritas soltas
   depois das media queries antigas e venciam elas (a faixa do
   planejamento não empilhava). Aqui o celular reafirma tudo por último.
   Padrão da casa: o curto no centro, mais de três itens viram faixa que
   rola para o lado, rodapé centralizado.
   ═══════════════════════════════════════════════════════════════════ */
@media (max-width: 1000px) {
  /* grades de duas colunas viram uma */
  .destaque-grid, .direitos-grid, .prova-grid, .aj-grid, .ctt-grid, .duv-grid,
  .duas-col, .faq-col, .proximo-grid, .rodape-grid { grid-template-columns: minmax(0, 1fr); }
  .direitos-txt, .prova-lado, .faq-col .sec-head, .ctt-mapa { position: static; }

  /* cabeçalhos de seção centralizados */
  .kicker { justify-content: center; }
  .sec-head, .direitos-txt, .prova-lado, .aj-txt, .ctt-txt, .duv-grid > div:first-child,
  .destaque-txt, .proximo-grid > div:first-child { text-align: center; }
  .sec-head h2, .direitos-txt h2, .prova-lado h2, .aj-txt h2, .ctt-txt h1, .duv-grid h1,
  .destaque-txt h2, .proximo h2,
  .sec-head .lede, .sec-head .corpo, .direitos-txt .lede, .aj-txt .lede, .ctt-txt .lede, .duv-grid .lede,
  .destaque-txt .lede, .proximo p { margin-left: auto; margin-right: auto; }
  .destaque-acoes, .proximo .acoes { justify-content: center; align-items: center; }
  .proximo .acoes { display: flex; flex-direction: column; }

  /* faixa do planejamento */
  .destaque-plan { padding: 64px 0; }
  .destaque-grid { gap: 48px; }
  .destaque-txt { order: -1; }
  .parecer-palco { padding: 18px 14px 18px 0; }
  .destaque-acoes .btn-solido { width: 100%; }

  /* áreas: faixa que rola para o lado, 84% da largura mostrando a ponta da próxima */
  .cards-nav.areas {
    display: flex; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain;
    margin-inline: calc(-1 * var(--gut)); padding-inline: var(--gut); scroll-padding-inline: var(--gut);
    gap: 14px; border-top: 0; scrollbar-width: none;
  }
  .cards-nav.areas::-webkit-scrollbar { display: none; }
  .cards-nav.areas .card-nav,
  .cards-nav.areas .card-nav:nth-child(n) {
    flex: 0 0 84%; scroll-snap-align: start; padding: 26px 22px; border: 1px solid var(--rule); border-radius: 18px;
    background: rgb(255 255 255 / .45);
  }

  /* direitos: lista à esquerda (texto de mais de três linhas) */
  .direitos-txt .link-cta { margin-left: auto; margin-right: auto; }

  /* como funciona: passos centralizados, ponto em cima e um fio entre eles */
  .processo.escada { border-left: 0; margin-left: 0; }
  .escada .passo, .escada .passo:nth-child(n) { text-align: center; padding: 0 0 72px; margin: 0; }
  .escada .passo:last-child { padding-bottom: 0; }
  .escada .passo::before { left: 50%; top: 0; transform: translateX(-50%); }
  .escada .passo .idx { margin-top: 28px; }
  .escada .passo p { margin-left: auto; margin-right: auto; }
  .escada .passo:not(:last-child)::after {
    content: ""; position: absolute; left: 50%; bottom: 14px; width: 1.5px; height: 40px; background: var(--brand); opacity: .45;
  }

  /* equipe: faixa que rola */
  .equipe .equipe-grid {
    display: flex; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain;
    margin-inline: calc(-1 * var(--gut)); padding: 12px var(--gut) 4px; scroll-padding-inline: var(--gut);
    gap: 16px; scrollbar-width: none;
  }
  .equipe .equipe-grid::-webkit-scrollbar { display: none; }
  .equipe .pessoa { flex: 0 0 72%; scroll-snap-align: start; }

  /* depoimentos */
  .prova-nota { justify-content: center; }
  .fala-destaque .aspas { left: 50%; transform: translateX(-50%); }
  .fala-destaque blockquote { font-size: 22px; }

  /* dúvidas e contato */
  .faq-col .sec-head .link-cta, .ctt-zap { margin-left: auto; margin-right: auto; }
  .ctt-zap { align-items: center; text-align: center; }
  .ctt-zap .btn-solido { width: 100%; }
  .duv-grid .btn-solido { width: 100%; }
  .duv-indice .rot { text-align: center; }

  /* rodapé centralizado */
  footer, .rodape-grid, .rodape-grid > div { text-align: center; justify-items: center; }
  .rodape-grid img { margin-inline: auto; }
  .rodape-nav { justify-content: center; }
}
@media (max-width: 620px) {
  .linha-tempo { grid-template-columns: 1fr; gap: 18px; }
  .trilho { display: none; }
  .respostas > div { grid-template-columns: 1fr; gap: 4px; }
  .marco b { white-space: normal; }
}
@media (max-width: 1000px) {
  /* escada no celular: cada passo abre num fio, com o ponto assentado nele */
  .escada .passo:not(:last-child)::after { display: none; }
  .escada .passo, .escada .passo:nth-child(n) { border: 0; border-top: 1px solid var(--rule); padding: 0 0 44px; }
  .escada .passo::before { top: -7px; }
  .escada .passo .idx { margin-top: 30px; }
  /* aspas do depoimento dentro do próprio bloco */
  .fala-destaque { margin-top: 36px; padding-top: 70px; }
  .fala-destaque .aspas { top: -10px; font-size: 170px; }
}
@media (max-width: 1000px) {
  footer p, footer .rodape-grid p { text-align: center; }
  footer { padding-bottom: 88px; } /* folga do WhatsApp flutuante sobre a assinatura */
}
@media (max-width: 1000px) {
  /* menu do celular em tela inteira, nunca até a metade com a página aparecendo */
  .nav { top: var(--topo-h, 65px); height: calc(100svh - var(--topo-h, 65px)); overflow-y: auto; overscroll-behavior: contain; padding-top: 16px; }
  .nav a { font-family: var(--serif); font-size: 26px; letter-spacing: -0.03em; padding: 20px 0; }
  .menu-aberto .nav .topo-cta { font-family: var(--sans); font-size: 15px; letter-spacing: 0; min-height: 54px; border-radius: 12px; margin-top: 28px; }
  .menu-aberto { overflow: hidden; }
}
@media (max-width: 1000px) {
  /* a LP força `.card-nav { padding: 28px 0 !important }` no celular; o cartão das áreas precisa do recuo */
  .cards-nav.areas .card-nav { padding: 28px 24px !important; border-right: 1px solid var(--rule) !important; border-bottom: 1px solid var(--rule); }
  /* título de duas cores quebra entre as cores, não no meio da frase */
  h1 em.it, h2 em.it { display: block; }
  .proximo h2 em.it { display: block; }
  /* contato: valor e nota centralizados juntos */
  .ctt-lista a { text-align: center; justify-items: center; }
}
