/* Heuristika — site institucional.
   Página escura sobre uma única cena 3D fixa (cena.js). Cores da marca: verde, papel e terracota. */

@font-face { font-family: "Montserrat"; src: url("fontes/Montserrat-Variable.woff2") format("woff2"); font-weight: 100 900; font-style: normal; font-display: swap; }
@font-face { font-family: "Instrument Sans"; src: url("fontes/InstrumentSans-Variable.woff2") format("woff2"); font-weight: 400 700; font-style: normal; font-display: swap; }
@font-face { font-family: "JetBrains Mono"; src: url("fontes/JetBrainsMono-Variable.woff2") format("woff2"); font-weight: 100 800; font-style: normal; font-display: swap; }

:root {
  --bg: #0D1613;
  --verde: #172622;
  --surface: rgba(16, 27, 23, 0.78);
  --line: #2B3D36;
  --line-strong: #70827A;
  --ink: #F6F3EB;
  --ink-muted: #A9B3AC;
  --terracota: #B66845;
  --terracota-forte: #D18B68;
  --terracota-forte-hover: #DE9E7E;
  --terracota-text: #E0A07F;
  --space-1: 4px; --space-2: 8px; --space-3: 12px; --space-4: 16px; --space-5: 24px;
  --space-6: 32px; --space-7: 48px; --space-8: 64px; --space-9: 96px;
  --radius-sm: 6px; --radius-md: 10px; --radius-lg: 20px;
  --font-display: Montserrat, "Instrument Sans", system-ui, sans-serif;
  --font-sans: "Instrument Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, "Cascadia Code", Consolas, monospace;
  --gutter: var(--space-5);
  --saida: cubic-bezier(0.2, 0.8, 0.2, 1);
}
@media (min-width: 900px) { :root { --gutter: var(--space-7); } }

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 72px; background: var(--bg); }
body {
  margin: 0; color: var(--ink); background: var(--bg);
  font-family: var(--font-sans); font-size: 16px; line-height: 24px;
  -webkit-font-smoothing: antialiased; overflow-x: hidden;
}
img { display: block; max-width: 100%; }
h1, h2, h3, h4, p, ul, ol { margin: 0; }
ul, ol { padding: 0; list-style: none; }
a { color: inherit; }
button { font: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }

/* Fundo: grade de obra e luz quente, atrás da cena */
.fundo { position: fixed; inset: 0; z-index: 0; pointer-events: none;
  background:
    radial-gradient(60% 50% at 78% 30%, rgba(182, 104, 69, 0.10), transparent 70%),
    radial-gradient(70% 60% at 15% 85%, rgba(43, 61, 54, 0.55), transparent 70%),
    var(--bg);
}
.fundo::after { content: ""; position: absolute; inset: 0;
  background-image: linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);
  background-size: 80px 80px; opacity: 0.22;
  -webkit-mask-image: radial-gradient(90% 80% at 50% 45%, #000, transparent 85%);
          mask-image: radial-gradient(90% 80% at 50% 45%, #000, transparent 85%);
}
#cena { position: fixed; inset: 0; width: 100%; height: 100%; z-index: 1; pointer-events: none; display: block; }
.sem-cena #cena { display: none; }
main, .rodape { position: relative; z-index: 2; }

.wrap { width: 100%; max-width: calc(1200px + 2 * var(--gutter)); margin: 0 auto; padding: 0 var(--gutter); }
.pular { position: absolute; left: -9999px; }
.pular:focus { left: var(--space-4); top: var(--space-4); z-index: 100; background: var(--ink); color: var(--bg); padding: var(--space-2) var(--space-3); border-radius: var(--radius-sm); }

/* ---------- Tipos ---------- */
.display { font-family: var(--font-display); font-weight: 700; font-size: clamp(46px, 8.2vw, 112px); line-height: 0.96; letter-spacing: -0.04em; }
.gigante { font-family: var(--font-display); font-weight: 700; font-size: clamp(36px, 6.2vw, 84px); line-height: 1; letter-spacing: -0.035em; text-wrap: balance; }
.h1 { font-family: var(--font-display); font-weight: 700; font-size: clamp(28px, 3.4vw, 44px); line-height: 1.1; letter-spacing: -0.025em; text-wrap: balance; }
.h3 { font-family: var(--font-display); font-weight: 600; font-size: 18px; line-height: 26px; letter-spacing: -0.01em; }
.overline { font-family: var(--font-display); font-size: 11px; line-height: 16px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--ink-muted); }
.overline--acento { color: var(--terracota-text); }
.body-lg { font-size: clamp(17px, 1.5vw, 20px); line-height: 1.55; }
.muted { color: var(--ink-muted); }
.mono { font-family: var(--font-mono); font-size: 12.5px; line-height: 20px; }

/* ---------- Botões ---------- */
.hk-button {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2);
  height: 40px; padding: 0 var(--space-4); border: 1px solid transparent; border-radius: var(--radius-md);
  font-family: var(--font-sans); font-size: 14px; line-height: 20px; font-weight: 600;
  white-space: nowrap; text-decoration: none; cursor: pointer;
  transition: background-color 140ms ease-out, border-color 140ms ease-out, color 140ms ease-out;
}
.hk-button--primary { background: var(--ink); color: var(--bg); }
.hk-button--primary:hover { background: #FFFFFF; }
.hk-button--secondary { background: rgba(13, 22, 19, 0.5); color: var(--ink); border-color: var(--line-strong); }
.hk-button--secondary:hover { border-color: var(--ink); }
.hk-button--accent { background: var(--terracota-forte); color: var(--bg); }
.hk-button--accent:hover { background: var(--terracota-forte-hover); }
.hk-button--lg { height: 52px; padding: 0 var(--space-5); font-size: 16px; }
.hk-button svg { width: 18px; height: 18px; flex: none; }
.hk-badge { display: inline-flex; align-items: center; height: 24px; padding: 0 var(--space-2); border-radius: var(--radius-sm); border: 1px solid var(--line); color: var(--ink-muted); font-family: var(--font-display); font-size: 10.5px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; white-space: nowrap; }
.hk-badge--accent { border-color: transparent; background: rgba(182, 104, 69, 0.22); color: var(--terracota-text); }

/* ---------- Cabeçalho ---------- */
.progresso { position: fixed; top: 0; left: 0; right: 0; height: 2px; z-index: 30; background: var(--terracota); transform-origin: 0 50%; transform: scaleX(0); }
.topo { position: fixed; top: 0; left: 0; right: 0; z-index: 20; border-bottom: 1px solid transparent; transition: background-color 200ms ease-out, border-color 200ms ease-out; }
.topo.rolou { background: rgba(13, 22, 19, 0.72); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border-bottom-color: var(--line); }
.topo__linha { display: flex; align-items: center; gap: var(--space-5); height: 72px; }
.topo__logo img { height: 30px; width: auto; }
.topo__nav { display: none; gap: var(--space-5); margin-left: auto; }
.topo__nav a { font-size: 14px; font-weight: 600; text-decoration: none; color: var(--ink-muted); padding: var(--space-2) 0; border-bottom: 2px solid transparent; transition: color 140ms ease-out, border-color 140ms ease-out; }
.topo__nav a:hover, .topo__nav a.ativo { color: var(--ink); }
.topo__nav a.ativo { border-bottom-color: var(--terracota); }
.topo__acao { margin-left: auto; }
@media (min-width: 900px) { .topo__nav { display: flex; } .topo__acao { margin-left: 0; } }

/* ---------- Painéis: cada um ocupa a tela e pede uma estrutura à cena ---------- */
.painel { position: relative; min-height: 100svh; display: flex; align-items: flex-end; padding: 54svh 0 var(--space-7); }
.painel > .wrap { display: flex; }
.bloco { width: 100%; max-width: 540px; }
.painel--centro { align-items: center; padding: var(--space-9) 0; }
.painel--centro > .wrap { justify-content: center; text-align: center; }
.painel--centro .bloco { max-width: 760px; }
.painel--curto { min-height: 82svh; }
@media (min-width: 900px) {
  .painel { align-items: center; padding: var(--space-9) 0; }
  .painel--dir > .wrap { justify-content: flex-end; }
}
.sem-cena .painel { min-height: 0; padding: var(--space-8) 0; }

.cartao { background: var(--surface); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: var(--space-5); }
@media (min-width: 700px) { .cartao { padding: var(--space-6); } }
.bloco > * + *, .cartao > * + * { margin-top: var(--space-5); }

/* Entrada do texto: cada filho sobe em sequência, e sai quando o painel deixa a tela */
@media (prefers-reduced-motion: no-preference) {
  .revela > * { opacity: 0; transform: translateY(26px); transition: opacity 700ms var(--saida), transform 700ms var(--saida); }
  .revela.visivel > * { opacity: 1; transform: none; }
  .revela.visivel > :nth-child(2) { transition-delay: 90ms; }
  .revela.visivel > :nth-child(3) { transition-delay: 180ms; }
  .revela.visivel > :nth-child(4) { transition-delay: 270ms; }
  .revela.visivel > :nth-child(5) { transition-delay: 360ms; }
  .revela.visivel > :nth-child(n+6) { transition-delay: 450ms; }
}

/* ---------- Hero ---------- */
.hero .bloco { max-width: 640px; }
.hero__acoes { display: flex; flex-wrap: wrap; gap: var(--space-3); }
.hero__dica { display: flex; align-items: center; gap: var(--space-3); }
.hero__dica::before { content: ""; width: 40px; height: 1px; background: var(--terracota); transform-origin: 0 50%; }
.hero__simbolo { display: none; width: 160px; margin-bottom: var(--space-6); }
.sem-cena .hero__simbolo { display: block; }
@media (prefers-reduced-motion: no-preference) {
  .hero__dica::before { animation: traco 2.4s ease-in-out infinite; }
  @keyframes traco { 0%, 100% { transform: scaleX(0.35); } 50% { transform: scaleX(1); } }
}

/* ---------- Casos ---------- */
.caso__topo { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.caso__problema { padding-left: var(--space-4); border-left: 2px solid var(--terracota); color: var(--ink-muted); }
.lista > li { position: relative; padding-left: var(--space-5); font-size: 15px; line-height: 22px; }
.lista > li + li { margin-top: var(--space-2); }
.lista > li::before { content: ""; position: absolute; left: 0; top: 6px; width: 10px; height: 10px; border-radius: 3px; background: var(--ink); }

/* ---------- Método ---------- */
.etapa__num { font-family: var(--font-display); font-weight: 700; font-size: clamp(88px, 13vw, 168px); line-height: 0.82; letter-spacing: -0.05em; color: transparent; -webkit-text-stroke: 1.5px var(--line-strong); }
.etapa__num + * { margin-top: var(--space-4); }

/* ---------- Engenharia ---------- */
.camadas { display: grid; border-top: 1px solid var(--line); }
.camada { display: grid; gap: 2px; width: 100%; padding: var(--space-3) var(--space-3) var(--space-3) var(--space-4); text-align: left; background: transparent; border: 0; border-bottom: 1px solid var(--line); border-left: 2px solid transparent; cursor: pointer; transition: background-color 140ms ease-out, border-color 140ms ease-out; }
.camada:hover, .camada.ativa { background: rgba(182, 104, 69, 0.12); border-left-color: var(--terracota); }
.camada__nome { font-family: var(--font-display); font-weight: 600; font-size: 16px; line-height: 24px; }
.camada__texto { font-size: 14px; line-height: 20px; color: var(--ink-muted); }
.camada .mono { color: var(--terracota-text); font-size: 11.5px; }
.pilha { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.pilha li { font-family: var(--font-mono); font-size: 12px; line-height: 18px; padding: 3px var(--space-2); border: 1px solid var(--line); border-radius: var(--radius-sm); color: var(--ink-muted); }

/* ---------- Contato ---------- */
.form > * + * { margin-top: var(--space-5); }
fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
legend { padding: 0; margin-bottom: var(--space-3); font-weight: 600; font-size: 15px; }
.opcoes { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.opcao { position: relative; }
.opcao input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.opcao span { display: inline-flex; align-items: center; min-height: 40px; padding: var(--space-2) var(--space-3); border: 1px solid var(--line-strong); border-radius: var(--radius-md); font-size: 14px; line-height: 20px; font-weight: 500; transition: background-color 140ms ease-out, border-color 140ms ease-out, color 140ms ease-out; }
.opcao input:hover + span { border-color: var(--ink); }
.opcao input:checked + span { background: var(--ink); border-color: var(--ink); color: var(--bg); }
.opcao input:focus-visible + span { outline: 2px solid var(--ink); outline-offset: 2px; }
.campos { display: grid; gap: var(--space-4); }
@media (min-width: 560px) { .campos { grid-template-columns: 1fr 1fr; } .campos .inteiro { grid-column: 1 / -1; } }
.hk-field { display: flex; flex-direction: column; gap: var(--space-2); }
.hk-field__label { font-size: 13px; line-height: 18px; font-weight: 600; color: var(--ink-muted); }
.hk-input { width: 100%; height: 44px; padding: 0 var(--space-3); border: 1px solid var(--line-strong); border-radius: var(--radius-md); background: rgba(13, 22, 19, 0.6); color: var(--ink); font-family: var(--font-sans); font-size: 16px; line-height: 24px; transition: border-color 140ms ease-out; }
textarea.hk-input { height: auto; min-height: 76px; padding: var(--space-3); resize: vertical; }
.hk-input:hover { border-color: var(--ink); }
.hk-input::placeholder { color: var(--line-strong); opacity: 1; }
.mensagem { background: rgba(13, 22, 19, 0.6); border: 1px solid var(--line); border-radius: var(--radius-md); padding: var(--space-3) var(--space-4); font-size: 13.5px; line-height: 20px; color: var(--ink-muted); white-space: pre-wrap; overflow-wrap: anywhere; }
.form .hk-button { width: 100%; }
#contador { color: var(--terracota-text); }

/* ---------- Rodapé ---------- */
.rodape { background: var(--bg); border-top: 1px solid var(--line); padding: var(--space-8) 0 var(--space-6); }
.rodape__grade { display: grid; gap: var(--space-6); }
.rodape__logo { height: 34px; width: auto; }
.rodape__lema { margin-top: var(--space-4); font-family: var(--font-display); font-weight: 700; font-size: clamp(24px, 3vw, 36px); line-height: 1.1; letter-spacing: -0.025em; }
.rodape nav { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-5); }
.rodape nav a { display: inline-flex; align-items: center; min-height: 44px; text-decoration: none; font-size: 14px; color: var(--ink-muted); transition: color 140ms ease-out; }
.rodape nav a:hover { color: var(--ink); }
.rodape__fim { margin-top: var(--space-7); padding-top: var(--space-5); border-top: 1px solid var(--line); font-size: 13px; color: var(--ink-muted); }
@media (min-width: 760px) { .rodape__grade { grid-template-columns: 1fr auto; align-items: end; } }

/* Texto central: uma sombra do fundo atrás, para as peças não disputarem com as letras */
.painel--centro .bloco { position: relative; }
.painel--centro .bloco::before { content: ""; position: absolute; inset: -22% -18%; z-index: -1; background: radial-gradient(closest-side, rgba(13, 22, 19, 0.88), rgba(13, 22, 19, 0.6) 60%, transparent); pointer-events: none; }
.bloco:not(.cartao) { text-shadow: 0 0 28px var(--bg), 0 0 8px var(--bg); }
.bloco:not(.cartao) .hk-button { text-shadow: none; }

/* ---------- Cenas filmadas (geradas no Higgsfield): fundo de alguns painéis ---------- */
.painel--filme { overflow: hidden; isolation: isolate; }
.filme { position: absolute; inset: 0; z-index: -1; opacity: 0; transition: opacity 1100ms ease-out;
  -webkit-mask-image: linear-gradient(to bottom, transparent, #000 16%, #000 84%, transparent);
          mask-image: linear-gradient(to bottom, transparent, #000 16%, #000 84%, transparent); }
.painel--filme.em-cena .filme { opacity: 1; }
.filme video { display: block; width: 100%; height: 100%; object-fit: cover; background: var(--bg); }
.filme::after { content: ""; position: absolute; inset: 0; background: radial-gradient(60% 55% at 50% 50%, rgba(13, 22, 19, 0.82), rgba(13, 22, 19, 0.25) 75%); }
.painel--filme-esq .filme::after { background: linear-gradient(0deg, rgba(13, 22, 19, 0.96) 0%, rgba(13, 22, 19, 0.82) 48%, rgba(13, 22, 19, 0.1) 80%); }
.painel--filme-esq .filme video { object-position: 62% 30%; }
.painel--filme .bloco::before { display: none; }
.painel--encaixe .filme video { object-position: 78% 40%; }
@media (min-width: 900px) {
  .painel--filme-esq .filme::after { background: linear-gradient(90deg, rgba(13, 22, 19, 0.95) 0%, rgba(13, 22, 19, 0.72) 38%, rgba(13, 22, 19, 0.05) 72%); }
  .painel--filme-esq .filme video { object-position: 50% 50%; }
  .painel--filme-esq .bloco { max-width: 600px; }
}
.sem-cena .painel--filme { min-height: 70svh; }

/* Vídeo com o texto à direita (o assunto fica à esquerda do quadro) */
.painel--filme-dir .filme::after { background: linear-gradient(0deg, rgba(13, 22, 19, 0.96) 0%, rgba(13, 22, 19, 0.82) 48%, rgba(13, 22, 19, 0.1) 80%); }
.painel--filme-dir .filme video { object-position: 30% 30%; }
.painel--filme-esq:not(.painel--encaixe) .filme video { object-position: 70% 30%; }
@media (min-width: 900px) {
  .painel--filme-dir .filme::after { background: linear-gradient(270deg, rgba(13, 22, 19, 0.95) 0%, rgba(13, 22, 19, 0.72) 38%, rgba(13, 22, 19, 0.05) 72%); }
  .painel--filme-dir .filme video, .painel--filme-esq:not(.painel--encaixe) .filme video { object-position: 50% 50%; }
}
.painel--filme .etapa__num { -webkit-text-stroke-color: var(--terracota-text); }

/* ---------- Rótulos: ligam cada parte da estrutura 3D ao texto ao lado ---------- */
#rotulos { position: fixed; inset: 0; z-index: 1; pointer-events: none; overflow: hidden; }
.rotulo { position: absolute; left: 0; top: 0; opacity: 0; white-space: nowrap; display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--font-display); font-size: 10.5px; line-height: 16px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--ink-muted); text-shadow: 0 0 10px var(--bg), 0 0 4px var(--bg); transition: opacity 300ms ease-out, color 200ms ease-out; }
.rotulo--esq { translate: calc(-100% - 6px) -50%; }
.rotulo--esq::after { content: ""; width: 26px; height: 1px; background: currentColor; opacity: 0.6; }
.rotulo--topo { translate: -50% calc(-100% - 4px); flex-direction: column; gap: 4px; color: var(--ink); }
.rotulo--topo::after { content: ""; width: 1px; height: 14px; background: currentColor; opacity: 0.6; }
.rotulo--dir { translate: 8px -50%; }
.rotulo--dir::before { content: ""; width: 22px; height: 1px; background: currentColor; opacity: 0.7; }
.rotulo--peca, .rotulo.ativo { color: var(--terracota-text); }
.camada__nome b { display: inline-block; min-width: 26px; font-family: var(--font-mono); font-size: 12px; font-weight: 500; color: var(--terracota-text); }
.rotulo b { font-family: var(--font-mono); font-size: 11px; font-weight: 500; letter-spacing: 0; color: var(--terracota-text); }
.rotulo--num span { display: none; }
.rotulo--num.ativo b { font-size: 15px; font-weight: 700; color: var(--terracota-forte); }

/* As seis camadas fechadas numa estrutura só */
.camadas.completa .camada__nome b { color: var(--terracota-text); text-shadow: 0 0 12px rgba(224, 160, 127, 0.55); }
.camadas.completa .camada__nome { color: var(--ink); }

/* Arrastar para girar a estrutura 3D */
.girando, .girando * { cursor: grabbing !important; user-select: none; -webkit-user-select: none; }

/* A dica da abertura muda em telas de toque, onde não há cursor nem arrasto */
.so-toque { display: none; }
@media (hover: none) { .so-mouse { display: none; } .so-toque { display: inline; } }

/* ---------- Menu compacto: no celular as seções abrem por um botão ---------- */
.topo__menu { display: inline-grid; place-content: center; gap: 6px; width: 44px; height: 44px; margin-right: -10px; padding: 0; border: 0; border-radius: 10px; background: none; color: var(--ink); cursor: pointer; }
.topo__menu span { display: block; width: 22px; height: 2px; border-radius: 1px; background: currentColor; transition: transform 180ms ease-out; }
.topo.aberto .topo__menu span:first-child { transform: translateY(4px) rotate(45deg); }
.topo.aberto .topo__menu span:last-child { transform: translateY(-4px) rotate(-45deg); }
.topo__menu:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
@media (max-width: 899px) {
  .topo__linha { gap: var(--space-3); }
  .topo.aberto { background: rgba(13, 22, 19, 0.96); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border-bottom-color: var(--line); }
  .topo.aberto .topo__nav { display: flex; flex-direction: column; gap: 0; position: absolute; top: 72px; left: 0; right: 0; margin: 0; padding: var(--space-2) var(--gutter) var(--space-4); background: rgba(13, 22, 19, 0.96); border-bottom: 1px solid var(--line); }
  .topo.aberto .topo__nav a { display: flex; align-items: center; min-height: 52px; font-size: 17px; border-bottom: 1px solid var(--line); }
  .topo.aberto .topo__nav a:last-child { border-bottom: 0; }
  .topo.aberto .topo__nav a.ativo { border-bottom-color: var(--line); color: var(--terracota-text); }
  /* o símbolo da abertura gira com o dedo na horizontal; a rolagem vertical continua livre */
  .hero { touch-action: pan-y; }
}
@media (min-width: 900px) { .topo__menu { display: none; } }
@media (max-width: 380px) { .topo__acao { padding-left: var(--space-3); padding-right: var(--space-3); font-size: 13px; } }

/* ---------- Resultado de cada caso: antes e agora ---------- */
.caso__ganho { display: flex; align-items: baseline; gap: var(--space-3); }
.caso__ganho strong { font-family: var(--font-mono); font-weight: 500; font-size: clamp(30px, 3.4vw, 40px); line-height: 1; letter-spacing: -0.03em; color: var(--terracota-text); white-space: nowrap; }
.caso__ganho span { font-size: 14px; line-height: 20px; color: var(--ink-muted); }
.caso__resultado { width: 100%; border-collapse: collapse; font-size: 13px; line-height: 18px; }
.caso__resultado caption { text-align: left; padding-bottom: var(--space-2); font-family: var(--font-display); font-size: 11px; line-height: 16px; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink-muted); }
.caso__resultado th, .caso__resultado td { padding: 7px 0; border-top: 1px solid var(--line); text-align: left; vertical-align: top; }
.caso__resultado td { padding-left: var(--space-3); }
.caso__resultado thead th { padding-top: 0; border-top: 0; font-size: 11px; font-weight: 600; color: var(--ink-muted); }
.caso__resultado thead th + th { padding-left: var(--space-3); }
.caso__resultado tbody th { font-weight: 600; white-space: nowrap; color: var(--ink); }
.caso__antes { color: var(--ink-muted); }
.caso__resultado td:last-child { color: var(--ink); }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- Chamada depois do simulador ---------- */
.destaque__chamada { display: grid; gap: var(--space-4); align-items: center; padding: var(--space-5); border: 1px solid var(--terracota); border-radius: var(--radius-lg); background: rgba(182, 104, 69, 0.08); }
.destaque__chamada p { font-size: 16px; line-height: 24px; color: var(--ink-muted); max-width: 62ch; }
.destaque__chamada strong { color: var(--ink); }
@media (min-width: 900px) { .destaque__chamada { grid-template-columns: minmax(0, 1fr) auto; gap: var(--space-6); padding: var(--space-5) var(--space-6); } }

/* ---------- Perguntas frequentes ---------- */
.painel--faq { min-height: 0; align-items: flex-start; padding: var(--space-9) 0 var(--space-8); }
.faq { display: grid; gap: var(--space-6); width: 100%; }
.faq__cab > * + * { margin-top: var(--space-3); }
.faq__lista { border-top: 1px solid var(--line); }
.faq__item { border-bottom: 1px solid var(--line); }
.faq__item summary { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); min-height: 60px; padding: var(--space-3) 0; cursor: pointer; list-style: none; font-family: var(--font-display); font-weight: 700; font-size: 17px; line-height: 24px; }
.faq__item summary::-webkit-details-marker { display: none; }
.faq__item summary::after { content: ""; flex: none; width: 10px; height: 10px; border-right: 2px solid var(--terracota-text); border-bottom: 2px solid var(--terracota-text); transform: rotate(45deg) translateY(-3px); transition: transform 180ms ease-out; }
.faq__item[open] summary::after { transform: rotate(225deg) translateY(-3px); }
.faq__item summary:focus-visible { outline: 2px solid var(--ink); outline-offset: 4px; }
.faq__item p { padding: 0 0 var(--space-5); max-width: 68ch; font-size: 15px; line-height: 24px; color: var(--ink-muted); }
@media (min-width: 900px) { .faq { grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.4fr); gap: var(--space-8); } }

/* ---------- Contato: oferta e outros canais ---------- */
.contato__oferta { font-size: 15px; line-height: 22px; }
.contato__outros { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-5); padding-top: var(--space-4); border-top: 1px solid var(--line); font-size: 14px; color: var(--ink-muted); }
.contato__outros p { width: 100%; }
.contato__outros a, .rodape__contato a { display: inline-flex; align-items: center; min-height: 44px; color: var(--ink); text-decoration: underline; text-decoration-color: var(--line-strong); text-underline-offset: 4px; }
.contato__outros a:hover, .rodape__contato a:hover { text-decoration-color: var(--terracota-text); }
.rodape__contato { display: flex; flex-wrap: wrap; gap: 0 var(--space-5); margin-top: var(--space-3); font-size: 14px; }
