/* ==========================================================================
   Cordeiro Assessoria Financeira — site institucional
   Conceito: "Campo aberto". Faixas em largura total alternando o verde do
   pasto e o orvalho claro. Grade editorial alinhada à esquerda.
   Motivo visual: do contorno ao preenchido (sonho -> patrimônio realizado).
   ========================================================================== */

/* Montserrat (licença SIL OFL) hospedada no próprio site: nada de terceiros. */
@font-face {
  font-family: "Montserrat";
  src: url("../fonts/montserrat-regular.woff") format("woff");
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "Montserrat";
  src: url("../fonts/montserrat-medium.woff") format("woff");
  font-weight: 500; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "Montserrat";
  src: url("../fonts/montserrat-semibold.woff") format("woff");
  font-weight: 600; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "Montserrat";
  src: url("../fonts/montserrat-bold.woff") format("woff");
  font-weight: 700; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "Montserrat";
  src: url("../fonts/montserrat-extrabold.woff") format("woff");
  font-weight: 800; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "Montserrat";
  src: url("../fonts/montserrat-black.woff") format("woff");
  font-weight: 900; font-style: normal; font-display: swap;
}

/* Fonte da marca para títulos. Coloque os arquivos em assets/fonts/.
   Sem os arquivos, o site usa Montserrat Black automaticamente. */
@font-face {
  font-family: "Lovelo";
  src: local("Lovelo Black"), local("Lovelo-Black"),
       url("../fonts/Lovelo-Black.woff2") format("woff2"),
       url("../fonts/Lovelo-Black.otf") format("opentype");
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}

:root {
  /* Cores */
  --pasto: #06402B;        /* verde da marca */
  --noite: #03261A;        /* verde mais profundo */
  --trigo: #CDA43D;        /* dourado da marca */
  --trigo-claro: #E2C477;
  --orvalho: #EEF2EC;      /* claro levemente esverdeado */
  --papel: #FBFCF9;
  --folha: #4A6156;        /* texto secundário no claro */
  --nevoa: #A9C2B5;        /* texto secundário no escuro */
  --linha-clara: #C9D6CE;
  --linha-escura: rgba(238, 242, 236, .16);

  /* Tipografia */
  --display: "Lovelo", "Montserrat", "Arial Black", system-ui, sans-serif;
  --texto: "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --t-pequeno: .875rem;
  --t-base: 1.0625rem;
  --t-medio: 1.25rem;
  --t-grande: clamp(1.25rem, 1.05rem + .8vw, 1.6rem);
  --t-titulo: clamp(2rem, 1.2rem + 3.6vw, 4.4rem);
  --t-heroi: clamp(1.85rem, 10vw, 5.75rem);

  /* Espaço */
  --gutter: clamp(16px, 4vw, 56px);
  --max: 1280px;
  --secao: clamp(72px, 10vw, 152px);
  --nav-h: 72px;
  --raio: 999px;
  --facil: cubic-bezier(.22, .7, .2, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--nav-h) + 12px); }
body {
  margin: 0;
  font-family: var(--texto);
  font-size: var(--t-base);
  line-height: 1.6;
  color: var(--pasto);
  background: var(--noite);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
h1, h2, h3, p, ul, ol, dl, dd, figure { margin: 0; }
ul, ol { padding: 0; list-style: none; }
button, input, select, textarea { font: inherit; color: inherit; }
[hidden] { display: none !important; }

:focus-visible { outline: 3px solid var(--trigo); outline-offset: 3px; border-radius: 4px; }

.pular {
  position: absolute; left: 16px; top: -100px; z-index: 100;
  background: var(--trigo); color: var(--noite); padding: 10px 16px; border-radius: 8px;
  font-weight: 700; text-decoration: none;
}
.pular:focus { top: 16px; }

.dentro { width: 100%; max-width: var(--max); margin-inline: auto; padding-inline: var(--gutter); }

/* ---------- Faixas de seção ---------- */
.faixa-clara { background: var(--orvalho); color: var(--pasto); padding-block: var(--secao); }
.faixa-escura { background: var(--pasto); color: var(--orvalho); padding-block: var(--secao); }
.faixa-noite { background: var(--noite); color: var(--orvalho); padding-block: var(--secao); }

.titulo-display {
  font-family: var(--display);
  font-weight: 900;
  font-size: var(--t-titulo);
  line-height: .98;
  letter-spacing: .005em;
  text-transform: uppercase;
  text-wrap: balance;
  max-width: 16ch;
}
.texto-grande { font-size: var(--t-grande); line-height: 1.45; font-weight: 500; text-wrap: pretty; }

/* ---------- Botões ---------- */
.botao {
  display: inline-flex; align-items: center; justify-content: center; gap: .5em;
  min-height: 52px; padding: .8em 1.6em;
  border-radius: var(--raio);
  font-weight: 700; font-size: 1rem; line-height: 1.1; letter-spacing: .01em;
  text-decoration: none; cursor: pointer; border: 2px solid transparent;
  transition: background-color .2s ease, color .2s ease, border-color .2s ease, transform .2s var(--facil);
}
.botao:active { transform: translateY(1px); }
.botao-trigo { background: var(--trigo); color: var(--noite); }
.botao-trigo:hover { background: var(--trigo-claro); }
.botao-linha { border-color: currentColor; color: var(--orvalho); background: transparent; }
.botao-linha:hover { background: var(--orvalho); color: var(--noite); border-color: var(--orvalho); }
.botao-largo { width: 100%; }

/* ---------- Faixa de recados ---------- */
.faixa {
  background: var(--trigo); color: var(--noite);
  font-size: .8125rem; font-weight: 600;
  overflow: hidden; white-space: nowrap;
  padding-top: env(safe-area-inset-top, 0px);
}
.faixa-trilho { display: flex; width: max-content; animation: rolar 60s linear infinite; }
.faixa:hover .faixa-trilho { animation-play-state: paused; }
.faixa-lista { display: flex; }
.faixa-lista li { padding: 9px 0; display: flex; align-items: center; }
.faixa-lista li::after {
  content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--pasto);
  margin-inline: 28px; flex: none;
}
@keyframes rolar { to { transform: translateX(-50%); } }

/* ---------- Navegação ---------- */
.nav {
  position: sticky; top: 0; z-index: 50;
  height: var(--nav-h);
  color: var(--orvalho);
  transition: background-color .3s ease, box-shadow .3s ease;
}
.nav.solida { background: rgba(3, 38, 26, .92); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); box-shadow: 0 1px 0 var(--linha-escura); }
.nav-dentro {
  height: 100%; max-width: var(--max); margin-inline: auto; padding-inline: var(--gutter);
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
}
.marca { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; }
.marca img { width: 40px; height: auto; }
.marca span {
  font-family: var(--display); font-weight: 900; text-transform: uppercase;
  font-size: 1.15rem; letter-spacing: .14em; color: var(--trigo);
}
.menu { display: flex; align-items: center; gap: clamp(14px, 2vw, 30px); }
.menu a:not(.botao) {
  text-decoration: none; font-weight: 600; font-size: .9375rem;
  padding-block: 6px; background: linear-gradient(currentColor, currentColor) 0 100% / 0 2px no-repeat;
  transition: background-size .25s var(--facil);
}
.menu a:not(.botao):hover { background-size: 100% 2px; }
.botao-menu { min-height: 44px; padding: .6em 1.2em; font-size: .9375rem; }
.menu-botao {
  display: none; align-items: center; gap: 10px;
  background: none; border: 0; padding: 10px 0; cursor: pointer; color: var(--orvalho); font-weight: 700;
}
.menu-botao-linhas, .menu-botao-linhas::before, .menu-botao-linhas::after {
  display: block; width: 22px; height: 2px; background: currentColor; border-radius: 2px; position: relative;
  transition: transform .25s var(--facil), background-color .2s;
}
.menu-botao-linhas::before, .menu-botao-linhas::after { content: ""; position: absolute; left: 0; }
.menu-botao-linhas::before { top: -7px; }
.menu-botao-linhas::after { top: 7px; }
.menu-botao[aria-expanded="true"] .menu-botao-linhas { background: transparent; }
.menu-botao[aria-expanded="true"] .menu-botao-linhas::before { transform: translateY(7px) rotate(45deg); }
.menu-botao[aria-expanded="true"] .menu-botao-linhas::after { transform: translateY(-7px) rotate(-45deg); }

/* ---------- Herói ---------- */
.heroi {
  position: relative;
  margin-top: calc(-1 * var(--nav-h));
  min-height: clamp(640px, 100svh, 1000px);
  background: var(--noite);
  color: var(--orvalho);
  display: flex; align-items: flex-start;
  overflow: hidden;
  isolation: isolate;
}
.pasto { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -2; display: block; touch-action: pan-y; }
/* véu à esquerda: garante leitura do texto sem apagar o pasto à direita */
.heroi::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: linear-gradient(90deg, rgba(3, 38, 26, .78) 0%, rgba(3, 38, 26, .5) 34%, rgba(3, 38, 26, 0) 62%);
}
.heroi-dentro {
  width: 100%; max-width: var(--max); margin-inline: auto; padding-inline: var(--gutter);
  padding-top: calc(var(--nav-h) + clamp(40px, 8vh, 96px));
  padding-bottom: 160px;
}
.heroi-titulo {
  font-family: var(--display); font-weight: 900; text-transform: uppercase;
  font-size: var(--t-heroi); line-height: .9; letter-spacing: .005em;
  display: flex; flex-direction: column; gap: .06em;
}
.contorno {
  color: transparent;
  -webkit-text-stroke: clamp(1px, .14vw, 2.5px) var(--orvalho);
  paint-order: stroke fill;
}
.cheio { color: var(--trigo); }
.heroi-texto {
  margin-top: clamp(24px, 3.5vw, 44px);
  max-width: 38ch;
  font-size: var(--t-grande); line-height: 1.5; font-weight: 500;
  text-shadow: 0 1px 18px rgba(3, 38, 26, .85);
}
.acoes { margin-top: 32px; display: flex; flex-wrap: wrap; gap: 12px; }
.heroi-dica {
  position: absolute; left: max(var(--gutter), calc((100% - var(--max)) / 2 + var(--gutter))); bottom: 56px;
  font-size: .8125rem; font-weight: 600; color: var(--nevoa);
  display: flex; align-items: center; gap: 10px;
  transition: opacity .6s ease;
}
.heroi-dica::before { content: ""; width: 28px; height: 1px; background: currentColor; }
.heroi-dica.some { opacity: 0; }

/* ---------- Posicionamento ---------- */
.posicao-grade {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 96px); align-items: start;
}
.posicao-texto { display: grid; gap: 22px; max-width: 60ch; }
.posicao-texto > p:not(.texto-grande) { color: var(--folha); }
.compromissos { margin-top: 12px; border-top: 1px solid var(--linha-clara); }
.compromissos li {
  padding: 18px 0 18px 40px; border-bottom: 1px solid var(--linha-clara);
  font-weight: 600; font-size: var(--t-medio); position: relative;
}
.compromissos li::before {
  content: ""; position: absolute; left: 0; top: 50%; width: 22px; height: 12px;
  border-left: 3px solid var(--pasto); border-bottom: 3px solid var(--pasto);
  transform: translateY(-70%) rotate(-45deg);
}
.posicao { padding-bottom: clamp(36px, 5vw, 72px); }

/* ---------- Conta honesta / recibo ---------- */
.conta { padding-top: clamp(36px, 5vw, 72px); }
.conta-grade { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(40px, 6vw, 96px); align-items: center; }
.conta .titulo-display { font-size: clamp(1.75rem, 3.7vw, 3.4rem); }
.conta-texto { display: grid; gap: 22px; max-width: 54ch; }
.conta-texto > p:not(.texto-grande) { color: var(--folha); }

.recibo { justify-self: center; width: min(100%, 460px); transform: rotate(-1.6deg); filter: drop-shadow(0 22px 34px rgba(3, 38, 26, .18)); }
.recibo-papel {
  --dente: 12px;
  background: var(--papel); color: var(--noite);
  padding: 30px 30px calc(30px + var(--dente));
  font-variant-numeric: tabular-nums;
  -webkit-mask:
    conic-gradient(from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg) 50% / calc(var(--dente) * 2) 100%;
          mask:
    conic-gradient(from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg) 50% / calc(var(--dente) * 2) 100%;
}
.recibo-cabeca { display: flex; align-items: center; gap: 14px; padding-bottom: 18px; border-bottom: 2px dashed var(--linha-clara); }
.recibo-cabeca img { width: 46px; }
.recibo-marca { font-family: var(--display); font-weight: 900; text-transform: uppercase; letter-spacing: .14em; color: var(--pasto); font-size: 1.05rem; }
.recibo-sub { font-size: var(--t-pequeno); color: var(--folha); }
.recibo-linhas { display: grid; gap: 10px; padding-block: 20px; border-bottom: 2px dashed var(--linha-clara); }
.recibo-linhas div { display: flex; align-items: baseline; gap: 8px; font-size: .9375rem; }
.recibo-linhas dt { font-weight: 600; flex: none; max-width: 55%; }
.recibo-linhas div::after { content: none; }
.recibo-linhas dd {
  flex: 1; text-align: right; color: var(--folha);
  display: flex; align-items: baseline; gap: 8px;
}
.recibo-linhas dd::before { content: ""; flex: 1; min-width: 16px; border-bottom: 2px dotted var(--linha-clara); transform: translateY(-4px); }
.recibo-total {
  display: flex; justify-content: space-between; gap: 16px; align-items: baseline;
  padding-top: 18px; font-weight: 800; font-size: 1.05rem; color: var(--pasto);
}
.recibo-total span:first-child { font-family: var(--display); text-transform: uppercase; letter-spacing: .08em; }
.recibo-total span:last-child { text-align: right; }

/* ---------- Perfis ---------- */
.perfis-topo { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 16px 40px; margin-bottom: clamp(32px, 5vw, 64px); }
.perfis-topo p { color: var(--nevoa); font-weight: 500; }
.perfis-lista { border-top: 1px solid var(--linha-escura); }
.perfil { border-bottom: 1px solid var(--linha-escura); }
.perfil-cabeca { font: inherit; }
.perfil-botao {
  width: 100%; background: none; border: 0; color: inherit; cursor: pointer; text-align: left;
  display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "nome sinal" "resumo sinal";
  gap: 6px 24px; align-items: center; padding: clamp(22px, 3vw, 34px) 0;
}
.perfil-nome {
  grid-area: nome;
  font-family: var(--display); font-weight: 900; text-transform: uppercase;
  font-size: clamp(1.5rem, .9rem + 2.8vw, 3.4rem); line-height: 1;
  color: transparent; -webkit-text-stroke: clamp(1px, .1vw, 1.6px) var(--orvalho);
  transition: color .3s ease;
}
.perfil-botao:hover .perfil-nome, .perfil-botao[aria-expanded="true"] .perfil-nome { color: var(--orvalho); }
.perfil-botao[aria-expanded="true"] .perfil-nome { color: var(--trigo); -webkit-text-stroke-color: var(--trigo); }
.perfil-resumo { grid-area: resumo; color: var(--nevoa); font-weight: 500; font-size: .9375rem; }
.perfil-sinal { grid-area: sinal; width: 44px; height: 44px; border: 2px solid var(--linha-escura); border-radius: 50%; position: relative; transition: transform .3s var(--facil), border-color .2s, background-color .2s; }
.perfil-sinal::before, .perfil-sinal::after { content: ""; position: absolute; left: 50%; top: 50%; width: 16px; height: 2px; background: var(--orvalho); transform: translate(-50%, -50%); border-radius: 2px; }
.perfil-sinal::after { transform: translate(-50%, -50%) rotate(90deg); transition: transform .3s var(--facil); }
.perfil-botao:hover .perfil-sinal { border-color: var(--trigo); }
.perfil-botao[aria-expanded="true"] .perfil-sinal { background: var(--trigo); border-color: var(--trigo); }
.perfil-botao[aria-expanded="true"] .perfil-sinal::before, .perfil-botao[aria-expanded="true"] .perfil-sinal::after { background: var(--noite); }
.perfil-botao[aria-expanded="true"] .perfil-sinal::after { transform: translate(-50%, -50%) rotate(0deg); }

.perfil-painel-dentro {
  display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 16px clamp(24px, 5vw, 72px);
  padding-bottom: clamp(26px, 3.5vw, 44px);
  animation: abrir .45s var(--facil);
}
.perfil-painel-dentro > p { font-size: var(--t-medio); line-height: 1.55; max-width: 46ch; }
.perfil-painel-dentro ul { display: grid; gap: 10px; align-content: start; }
.perfil-painel-dentro li { padding-left: 22px; position: relative; color: var(--orvalho); }
.perfil-painel-dentro li::before { content: ""; position: absolute; left: 0; top: .62em; width: 10px; height: 10px; border-radius: 50%; background: var(--trigo); }
.link-whats {
  grid-column: 1 / -1; justify-self: start;
  font-weight: 700; color: var(--trigo); text-decoration: none;
  border-bottom: 2px solid currentColor; padding-bottom: 2px;
}
.link-whats:hover { color: var(--trigo-claro); }
@keyframes abrir { from { opacity: 0; transform: translateY(-8px); } }

/* ---------- Método ---------- */
.metodo-grade { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(40px, 6vw, 110px); }
.metodo-fixo { position: sticky; top: calc(var(--nav-h) + 32px); display: grid; gap: 22px; }
.metodo-fixo > p { color: var(--folha); max-width: 40ch; }
.cordeiro-progresso { position: relative; width: min(100%, 300px); margin-top: 12px; }
.cordeiro-base { opacity: .22; }
.cordeiro-ouro { position: absolute; inset: 0; clip-path: inset(var(--falta, 100%) 0 0 0); transition: clip-path .7s var(--facil); }

.passos { counter-reset: passo; display: grid; }
.passo {
  display: grid; grid-template-columns: clamp(64px, 8vw, 112px) minmax(0, 1fr); gap: 20px;
  padding-block: clamp(28px, 4vw, 48px); border-top: 1px solid var(--linha-clara);
}
.passo:last-child { border-bottom: 1px solid var(--linha-clara); }
.passo-numero {
  font-family: var(--display); font-weight: 900; line-height: .8;
  font-size: clamp(3.4rem, 2rem + 4vw, 6.4rem);
  color: transparent; -webkit-text-stroke: 1.5px var(--pasto);
  transition: color .5s ease;
}
.passo h3 { font-size: clamp(1.25rem, 1rem + .9vw, 1.75rem); font-weight: 800; line-height: 1.2; margin-bottom: 8px; }
.passo p { color: var(--folha); max-width: 46ch; }
.passo.feito .passo-numero { color: var(--pasto); }

/* ---------- Atuação: mapa do Brasil ---------- */
.brasil-grade {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
  gap: clamp(36px, 5vw, 80px); align-items: center;
}
.brasil-texto { display: grid; gap: 18px; align-content: center; }
.brasil .titulo-display { font-size: clamp(2.1rem, 1.2rem + 3vw, 3.75rem); }
.brasil-texto > p:not(.brasil-intro):not(.brasil-legenda) { color: var(--nevoa); max-width: 46ch; }
.brasil-intro { color: var(--orvalho); font-size: var(--t-grande); font-weight: 500; max-width: 30ch; }
.brasil-legenda { margin-top: 8px; display: flex; align-items: center; gap: 12px; font-weight: 700; color: var(--trigo-claro); }
.brasil-legenda-ponto { flex: none; width: 10px; height: 10px; border-radius: 50%; background: var(--orvalho); box-shadow: 0 0 0 4px rgba(238, 242, 236, .16); }

.brasil-mapa { position: relative; margin: 0; display: grid; gap: 14px; justify-items: center; }
.mapa-svg {
  display: block; width: 100%; max-width: 640px; height: auto; overflow: visible;
  touch-action: pan-y; -webkit-tap-highlight-color: transparent; cursor: crosshair;
}
.mapa-svg .uf {
  fill: rgba(205, 164, 61, 0); stroke: var(--trigo); stroke-width: .9; stroke-linejoin: round;
  transition: fill .9s ease var(--atraso, 0s), stroke .9s ease var(--atraso, 0s);
}
.brasil-mapa.preenchido .uf { fill: var(--trigo); stroke: var(--noite); }
.brasil-mapa.pronto .uf { transition: fill .2s ease, stroke .2s ease; }
.brasil-mapa .uf.ativo { fill: var(--trigo-claro); stroke: var(--orvalho); stroke-width: 1.4; transition-delay: 0s; transition-duration: .2s; }
.sede { pointer-events: none; }
.sede-ponto { fill: var(--orvalho); stroke: var(--noite); stroke-width: 1.6; }
.sede-onda {
  fill: none; stroke: var(--orvalho); stroke-width: 1.4;
  transform-box: fill-box; transform-origin: center;
  animation: sede-onda 2.6s ease-out infinite;
}
@keyframes sede-onda { from { transform: scale(1); opacity: .9; } to { transform: scale(3.4); opacity: 0; } }

/* Rótulo que acompanha o cursor ou o dedo */
.mapa-rotulo {
  position: absolute; left: 0; top: 0; z-index: 2; pointer-events: none;
  transform: translate(-50%, calc(-100% - 14px));
  background: var(--orvalho); color: var(--noite);
  font-weight: 800; font-size: .875rem; line-height: 1.2; white-space: nowrap;
  padding: 9px 16px; border-radius: 999px;
  box-shadow: 0 10px 28px rgba(0, 0, 0, .35);
}
.mapa-rotulo::after {
  content: ""; position: absolute; left: var(--seta, 50%); bottom: -5px;
  width: 10px; height: 10px; background: inherit; transform: translateX(-50%) rotate(45deg); border-radius: 2px;
}
.mapa-rotulo small { display: block; font-size: .75rem; font-weight: 600; color: var(--folha); margin-top: 2px; }
.mapa-dica { font-size: .8125rem; font-weight: 600; color: var(--nevoa); text-align: center; }

/* ---------- Sócios ---------- */
.socios-grade { margin-top: clamp(40px, 6vw, 80px); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(32px, 6vw, 96px); }
.socio { display: grid; gap: 10px; align-content: start; max-width: 52ch; }
.socio-inicial {
  font-family: var(--display); font-weight: 900; line-height: .8;
  font-size: clamp(6rem, 4rem + 8vw, 12rem);
  color: transparent; -webkit-text-stroke: 2px var(--pasto); margin-bottom: 16px;
}
.socio-inicial-cheia { color: var(--pasto); }
.socio h3 { font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.4rem); font-weight: 800; line-height: 1.1; }
.socio-papel { font-weight: 600; color: var(--folha); font-size: var(--t-pequeno); margin-bottom: 6px; }
.socio p:last-child { color: var(--folha); }
.valores {
  margin-top: clamp(48px, 7vw, 96px); padding-top: 28px; border-top: 1px solid var(--linha-clara);
  font-size: var(--t-grande); line-height: 1.45; max-width: 52ch; color: var(--folha);
}
.valores strong { color: var(--pasto); font-weight: 800; }
.socios { padding-bottom: clamp(36px, 5vw, 72px); }

/* ---------- Dúvidas ---------- */
.duvidas { padding-top: clamp(36px, 5vw, 72px); }
.duvidas-grade { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
.duvidas-grade > div:first-child { position: sticky; top: calc(var(--nav-h) + 32px); display: grid; gap: 16px; }
.duvidas-grade > div:first-child > p { color: var(--folha); }
.faq { border-top: 1px solid var(--linha-clara); }
.faq details { border-bottom: 1px solid var(--linha-clara); }
.faq summary {
  list-style: none; cursor: pointer; position: relative;
  padding: 24px 56px 24px 0; font-weight: 700; font-size: var(--t-medio); line-height: 1.35;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after {
  content: ""; position: absolute; right: 8px; top: 50%; width: 12px; height: 12px;
  border-right: 2.5px solid var(--pasto); border-bottom: 2.5px solid var(--pasto);
  transform: translateY(-70%) rotate(45deg); transition: transform .3s var(--facil);
}
.faq details[open] summary::after { transform: translateY(-30%) rotate(-135deg); }
.faq summary:hover { color: var(--noite); }
.faq details p { padding-bottom: 26px; color: var(--folha); max-width: 62ch; animation: abrir .4s var(--facil); }

/* ---------- Contato ---------- */
.contato-grade { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(40px, 6vw, 96px); align-items: start; }
.contato-texto { display: grid; gap: 24px; }
.contato-diretos { display: grid; gap: 14px; margin-top: 12px; }
.contato-diretos div { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 12px; padding-bottom: 14px; border-bottom: 1px solid var(--linha-escura); }
.contato-diretos dt { color: var(--nevoa); font-weight: 600; font-size: var(--t-pequeno); padding-top: 3px; }
.contato-diretos dd { font-weight: 700; overflow-wrap: anywhere; }
.contato-diretos a { text-decoration: none; border-bottom: 1px solid var(--linha-escura); }
.contato-diretos a:hover { color: var(--trigo); border-color: var(--trigo); }

.formulario {
  background: var(--orvalho); color: var(--pasto);
  border-radius: 28px; padding: clamp(24px, 3.5vw, 40px);
  display: grid; gap: 18px;
}
.formulario-intro { font-weight: 700; font-size: var(--t-medio); }
.campo { display: grid; gap: 6px; min-width: 0; }
.campo label { font-weight: 700; font-size: .9375rem; }
.campo input, .campo select, .campo textarea {
  width: 100%; background: var(--papel); border: 2px solid var(--linha-clara); border-radius: 14px;
  padding: 13px 14px; color: var(--noite); font-size: 1rem; transition: border-color .2s;
}
.campo textarea { resize: vertical; min-height: 96px; }
.campo input:focus, .campo select:focus, .campo textarea:focus { border-color: var(--pasto); outline: none; box-shadow: 0 0 0 3px rgba(205, 164, 61, .45); }
.campo [aria-invalid="true"] { border-color: #B3261E; }
.campo-erro { color: #B3261E; font-size: var(--t-pequeno); font-weight: 600; }
.campo-duplo { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 14px; }
.formulario-aviso { font-size: .8125rem; color: var(--folha); }
.formulario-pronto { display: grid; gap: 12px; padding: 18px; border-radius: 18px; background: var(--papel); border: 2px solid var(--trigo); }
.formulario-pronto p { font-weight: 600; }

/* ---------- Rodapé ---------- */
.rodape { background: var(--noite); color: var(--orvalho); padding-top: clamp(56px, 8vw, 112px); padding-bottom: calc(32px + env(safe-area-inset-bottom, 0px)); overflow: hidden; }
.rodape-palavra {
  font-family: var(--display); font-weight: 900; text-transform: uppercase; line-height: .8;
  font-size: clamp(3rem, 13.6vw, 12.25rem); letter-spacing: .02em;
  color: transparent; -webkit-text-stroke: clamp(1px, .12vw, 2px) rgba(205, 164, 61, .7);
  white-space: nowrap; margin-bottom: clamp(40px, 6vw, 80px);
}
.rodape-grade { display: grid; grid-template-columns: .7fr 1fr .8fr 1.2fr; gap: 32px; padding-bottom: 40px; border-bottom: 1px solid var(--linha-escura); }
.rodape-grade img { width: 110px; }
.rodape-titulo { font-size: var(--t-pequeno); font-weight: 700; color: var(--trigo); margin-bottom: 14px; }
.rodape-grade ul { display: grid; gap: 8px; }
.rodape-grade a { text-decoration: none; }
.rodape-grade a:hover { color: var(--trigo); }
.rodape-grade p, .rodape-grade li { font-size: .9375rem; color: var(--nevoa); }
.rodape-grade a { color: var(--orvalho); }
.rodape-base { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; padding-top: 24px; font-size: var(--t-pequeno); color: var(--nevoa); }
.rodape-base a { color: var(--nevoa); }

/* ---------- WhatsApp flutuante ---------- */
.whats-flutuante {
  position: fixed; right: 18px; bottom: calc(18px + env(safe-area-inset-bottom, 0px)); z-index: 40;
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--trigo); color: var(--noite); text-decoration: none; font-weight: 800; font-size: .9375rem;
  padding: 13px 18px; border-radius: var(--raio);
  box-shadow: 0 10px 28px rgba(3, 38, 26, .35);
  transition: transform .25s var(--facil), opacity .25s ease, background-color .2s;
}
.whats-flutuante:hover { background: var(--trigo-claro); transform: translateY(-2px); }
.whats-flutuante.oculto { opacity: 0; pointer-events: none; transform: translateY(12px); }

/* ---------- Responsivo ---------- */
@media (max-width: 1080px) {
  .rodape-grade { grid-template-columns: 1fr 1fr; }
  :root { --nav-h: 64px; }
  .menu-botao { display: inline-flex; }
  .menu {
    position: fixed; inset: var(--nav-h) 0 auto 0; z-index: 49;
    flex-direction: column; align-items: stretch; gap: 0;
    background: var(--noite); padding: 12px var(--gutter) 28px;
    box-shadow: 0 24px 40px rgba(3, 38, 26, .5);
    transform: translateY(-8px); opacity: 0; visibility: hidden;
    transition: opacity .25s ease, transform .25s var(--facil), visibility 0s linear .25s;
  }
  .menu.aberto { opacity: 1; transform: none; visibility: visible; transition-delay: 0s; }
  .menu a:not(.botao) { padding: 16px 0; border-bottom: 1px solid var(--linha-escura); font-size: 1.125rem; background: none; }
  .botao-menu { margin-top: 20px; min-height: 52px; }
}
@media (max-width: 900px) {
  .posicao-grade, .conta-grade, .metodo-grade, .duvidas-grade, .contato-grade { grid-template-columns: minmax(0, 1fr); }
  .conta .titulo-display { font-size: clamp(1.9rem, 9vw, 3.4rem); }
  .metodo-fixo, .duvidas-grade > div:first-child { position: static; }
  .cordeiro-progresso { width: 180px; }
  .perfil-painel-dentro { grid-template-columns: minmax(0, 1fr); }
  .brasil-grade { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .mapa-svg { max-width: 560px; }
  .socios-grade { grid-template-columns: minmax(0, 1fr); }
  .recibo { transform: rotate(-1deg); }
}
@media (max-width: 560px) {
  .heroi-dentro { padding-bottom: 120px; }
  .heroi::before { background: linear-gradient(180deg, rgba(3, 38, 26, .55) 0%, rgba(3, 38, 26, .35) 60%, rgba(3, 38, 26, 0) 85%); }
  .acoes .botao { flex: 1 1 100%; }
  .campo-duplo { grid-template-columns: minmax(0, 1fr); }
  .contato-diretos div { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .rodape-grade { grid-template-columns: minmax(0, 1fr); }
  .whats-flutuante span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .whats-flutuante { padding: 15px; }
  .recibo-papel { padding-inline: 20px; }
  .recibo-linhas div { flex-wrap: wrap; }
  .recibo-linhas dt { max-width: none; }
  .recibo-linhas dd { flex-basis: 100%; text-align: left; }
  .recibo-linhas dd::before { display: none; }
  .perfil-sinal { width: 38px; height: 38px; }
  .brasil-mapa { margin-inline: calc(-1 * var(--gutter) + 6px); }
  .mapa-rotulo { font-size: .9375rem; padding: 10px 18px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
  .faixa-trilho { animation: none; }
  .faixa { white-space: normal; }
  .faixa-lista li:not(:first-child) { display: none; }
  .faixa-lista li { padding-inline: var(--gutter); }
  .faixa-lista li::after { display: none; }
}

/* ---------- Páginas auxiliares ---------- */
.legal { min-height: 70vh; }
.texto-legal { max-width: 760px; display: grid; gap: 18px; }
.texto-legal .titulo-display { max-width: none; margin-bottom: 8px; }
.texto-legal h2 { font-size: var(--t-medio); font-weight: 800; margin-top: 18px; }
.texto-legal p { color: var(--folha); }
.texto-legal .texto-grande { color: var(--pasto); }
.texto-legal a { color: var(--pasto); font-weight: 700; }
.legal-data { font-size: var(--t-pequeno); margin-top: 12px; }
.rodape-curto { padding-top: 0; }
.erro-404 { min-height: 100svh; display: flex; align-items: center; }
.erro-404 .dentro { display: grid; gap: 24px; justify-items: start; }
.erro-404 img { width: 96px; }
.erro-404 .titulo-display { max-width: 14ch; color: var(--trigo); }
.erro-404 .texto-grande { max-width: 44ch; }
