/* ==========================================================================
   Corrente v2 - overrides do tema filho
   Tokens (--c-*, --ff-*, --sp-*, --r-*) vem do tema pai via theme.json.
   ========================================================================== */

/* ---------- navegacao: wordmark tipografico ---------- */
.v2-wordmark {
  font-family: var(--ff-mono);
  font-size: .9rem;
  letter-spacing: .04em;
  color: var(--c-text);
  text-decoration: none;
  white-space: nowrap;
}
.v2-wordmark b { font-weight: 400; color: var(--c-amber); }
.v2-wordmark i { font-style: normal; color: var(--c-text-3); }
.v2-wordmark:hover { color: var(--c-text); }

/* ---------- hero em duas colunas ---------- */
.v2-hero { position: relative; overflow: visible; }
.v2-hero__grid {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--sp-8, 56px);
  align-items: center;
}
@media (min-width: 900px) {
  .v2-hero__grid { grid-template-columns: 7fr 5fr; gap: var(--sp-5, 24px); }
}
.v2-hero__texto { display: grid; gap: var(--sp-6, 32px); position: relative; z-index: 1; }
.v2-hero h1 { margin: 0; }
.v2-hero__lead {
  margin: 0;
  font-size: clamp(1.1rem, 1.5vw, 1.375rem);
  line-height: 1.55;
  color: var(--c-text-2);
  max-width: 56ch;
}

/* ---------- retrato sangrado, sem moldura ---------- */
.v2-retrato { margin: 0; position: relative; z-index: 0; }
/* v2.2.4: teto de altura no retrato. Sem ele, a caixa 4:5 fica mais alta que o
   texto e o align-center do grid empurra o titulo ~130px para baixo, criando a
   "margem gigante" entre o header e o H1. */
.v2-retrato__caixa { position: relative; aspect-ratio: 4 / 5; max-height: min(70vh, 660px); }
/* o sangramento so entra quando ha largura para ele, senao a foto invade o texto */
@media (min-width: 1240px) {
  .v2-retrato__caixa { width: 132%; margin-left: -24%; }
}
/* v2.2.3: a foto agora tem alpha real (fundo transparente). A mascara so
   suaviza as bordas de corte do enquadramento; elipse mais aberta que na
   era do JPEG, para mostrar mais do retrato. Valores calibrados ao vivo. */
.v2-retrato img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover; object-position: 50% 32%;
  filter: brightness(1.12) contrast(1.02);
  -webkit-mask-image: radial-gradient(ellipse 78% 76% at 50% 44%, #000 46%, rgba(0,0,0,.6) 68%, transparent 90%);
  mask-image: radial-gradient(ellipse 78% 76% at 50% 44%, #000 46%, rgba(0,0,0,.6) 68%, transparent 90%);
}
/* camada de halo: com alpha real, a copia desfocada vira brilho de contorno
   ao redor da pessoa (rim light), nao mais um borrao retangular */
.v2-retrato img.v2-retrato__halo {
  filter: blur(30px) brightness(1.15);
  opacity: .7;
  -webkit-mask-image: radial-gradient(ellipse 84% 82% at 50% 44%, #000 40%, transparent 88%);
  mask-image: radial-gradient(ellipse 84% 82% at 50% 44%, #000 40%, transparent 88%);
}

/* ---------- formulario em pilula unica ---------- */
.v2-form {
  display: flex; align-items: center; gap: 8px;
  max-width: 520px;
  background: var(--c-surface);
  border: 1px solid var(--c-line-strong);
  border-radius: var(--r-full, 999px);
  padding: 8px 8px 8px 24px;
  box-shadow: inset 0 1px 0 0 rgba(255,255,255,.04);
  transition: border-color var(--dur-2, 220ms) var(--ease-out);
}
.v2-form:focus-within { border-color: var(--c-amber); box-shadow: 0 0 0 3px var(--c-amber-dim); }
.v2-form input[type="email"] {
  flex: 1; min-width: 0; height: 44px;
  background: transparent; border: none; outline: none; padding: 0;
  color: var(--c-text); font-family: var(--ff-text); font-size: .94rem;
}
.v2-form input[type="email"]:focus { box-shadow: none; border: none; }
.v2-form button { flex: none; }
.v2-micro { display: grid; gap: 8px; }
.v2-micro span {
  font-family: var(--ff-mono); font-size: .72rem; line-height: 1.5; color: var(--c-text-3);
}

/* ---------- numeros: mono, ambar, tabulares ---------- */
.v2-prova { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--sp-5, 24px); }
.v2-stat { display: grid; gap: 8px; }
.v2-stat__valor {
  font-family: var(--ff-mono);
  font-size: clamp(2.4rem, 4.4vw, 3.8rem);
  line-height: 1; letter-spacing: -.04em;
  color: var(--c-amber);
  font-variant-numeric: tabular-nums;
}
.v2-stat__rotulo {
  font-family: var(--ff-mono); font-size: .72rem; letter-spacing: .14em;
  text-transform: uppercase; color: var(--c-text-2);
}
.v2-stat__fonte { font-size: .8rem; color: var(--c-text-3); }

/* ---------- manifesto centralizado ---------- */
.v2-manifesto {
  max-width: 23ch; margin: 0 auto; text-align: center;
  font-family: var(--ff-display); font-weight: 500;
  font-size: clamp(1.35rem, 2.6vw, 1.95rem);
  line-height: 1.42; letter-spacing: -.02em;
  color: var(--c-text);
  display: grid; gap: var(--sp-4, 16px);
}
.v2-manifesto em { font-style: normal; color: var(--c-amber); }

/* ---------- cartoes de camada ---------- */
.v2-camadas { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: var(--sp-5, 24px); }
.v2-camada {
  background: var(--c-surface);
  border: 1px solid var(--c-line);
  border-radius: var(--r-flow, 24px 24px 24px 4px);
  padding: var(--sp-6, 32px);
  display: grid; gap: var(--sp-4, 16px); align-content: start;
  transition: border-color var(--dur-2, 220ms) var(--ease-out), transform var(--dur-2, 220ms) var(--ease-out);
}
.v2-camada:hover { border-color: var(--c-cobalt-lift); transform: translateY(-2px); }
.v2-camada h3 { margin: 0; font-size: clamp(1.4rem, 2.2vw, 1.875rem); line-height: 1.32; }
.v2-camada p { margin: 0; font-size: .94rem; color: var(--c-text-2); }
.v2-camada a { font-size: .94rem; text-decoration: none; }
.v2-camada a:hover { text-decoration: underline; }

/* ---------- cabecalho de secao com acao a direita ---------- */
.v2-secao-head {
  display: flex; justify-content: space-between; align-items: flex-end;
  gap: var(--sp-5, 24px); flex-wrap: wrap;
}
.v2-secao-head__titulo { display: grid; gap: var(--sp-4, 16px); }
.v2-secao-head h2 { margin: 0; }

/* ---------- seta dos links de avanco ---------- */
.v2-seta::after { content: " →"; }

@media (prefers-reduced-motion: reduce) {
  .v2-camada, .v2-form { transition-duration: .12s !important; }
}

/* custo de composicao: a foto desfocada nao pode repintar a cada quadro da aurora.
   v2.2.3: contain:paint e translateZ(0) foram REMOVIDOS do retrato: no Chrome,
   a combinacao camada composta + mask-image impedia a mascara de renderizar
   (retangulo com bordas duras) e chegava a nao pintar a imagem. O isolamento
   fica so nas auroras, que eram a causa real do congelamento. */
.v2-hero .aurora { will-change: transform; contain: paint; }
.v2-retrato img.v2-retrato__halo { filter: blur(24px) brightness(1.15); }
@media (max-width: 899px) {
  .v2-retrato img.v2-retrato__halo { display: none; }
}

/* ==========================================================================
   v2.1 - marca, artigo, pilar, mentoria e advisory
   ========================================================================== */

/* ---------- marca: assinatura MP ---------- */
.v2-marca { display: inline-flex; align-items: center; gap: 14px; text-decoration: none; }
.v2-assinatura { width: auto; height: 56px; margin: -8px 0; display: block;
  filter: drop-shadow(0 0 14px rgba(76,141,255,.28)); }
.v2-marca--rodape .v2-assinatura { height: 88px; margin: 0; }
.v2-marca:hover .v2-assinatura { filter: drop-shadow(0 0 16px rgba(255,191,0,.4)); }
.v2-marca:focus-visible { outline: 2px solid var(--c-amber); outline-offset: 4px; border-radius: 8px; }

/* ---------- breadcrumb ---------- */
.v2-breadcrumb { display: flex; gap: 8px; font-family: var(--ff-mono); font-size: .72rem; color: var(--c-text-3); position: relative; }
.v2-breadcrumb a { color: var(--c-text-3); text-decoration: none; }
.v2-breadcrumb a:hover { color: var(--c-text); }

/* ---------- meta do artigo ---------- */
.v2-meta-artigo { font-family: var(--ff-mono); font-size: .78rem; color: var(--c-text-3); }
.v2-meta-artigo p, .v2-meta-artigo .wp-block-post-date { margin: 0; font-family: var(--ff-mono); font-size: .78rem; color: var(--c-text-3); }

/* ---------- grid do artigo: indice + corpo ---------- */
.v2-artigo-grid { display: grid; grid-template-columns: 1fr; gap: var(--sp-8, 56px); padding-bottom: var(--sp-10, 96px); }
@media (min-width: 1024px) {
  .v2-artigo-grid { grid-template-columns: 240px minmax(0, 1fr); gap: var(--sp-10, 96px); align-items: start; }
}
.v2-indice { position: sticky; top: 96px; display: none; }
@media (min-width: 1024px) { .v2-indice { display: grid; gap: 4px; align-content: start; } }
.v2-indice__rotulo { font-family: var(--ff-mono); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--c-text-3); margin-bottom: 16px; display: block; }
.v2-indice a { display: flex; align-items: center; gap: 8px; padding: 8px 0; font-size: .94rem; color: var(--c-text-2); text-decoration: none; }
.v2-indice a::before { content: ""; width: 5px; height: 5px; flex: none; border-radius: 999px; background: var(--c-amber); opacity: 0; transition: opacity var(--dur-2,220ms) var(--ease-out); }
.v2-indice a:hover { color: var(--c-text); }
.v2-indice a.is-ativo { color: var(--c-text); }
.v2-indice a.is-ativo::before { opacity: 1; }
.v2-artigo-corpo { min-width: 0; }
.v2-artigo-corpo .wp-block-post-content > * { margin-left: 0; }

/* ---------- caixa de autor v2 ---------- */
.v2-autor { margin-top: var(--sp-9, 72px); background: var(--c-surface); border: 1px solid var(--c-line);
  border-radius: var(--r-flow, 24px 24px 24px 4px); padding: 32px;
  display: grid; grid-template-columns: 64px 1fr; gap: 24px; align-items: start; }
.v2-autor__marca { width: 64px; height: 64px; border-radius: 24px 24px 24px 4px;
  background: linear-gradient(140deg, var(--c-cobalt) 0%, var(--c-cobalt-deep) 60%, rgba(255,191,0,.5) 100%);
  overflow: hidden; display: block; }
/* O retrato e PNG transparente: o gradiente acima vira o fundo dele.
   O transform amplia a foto dentro do quadrado porque object-fit nao da zoom. */
.v2-autor__marca img { width: 100%; height: 100%; display: block; object-fit: cover;
  object-position: 50% 0%; transform: scale(1.18); transform-origin: 50% 12%; }
.v2-autor__texto { display: grid; gap: 8px; }
.v2-autor__rotulo { font-family: var(--ff-mono); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--c-text-3); }
.v2-autor__texto strong { font-family: var(--ff-display); font-size: 1.375rem; line-height: 1.2; color: var(--c-text); }
.v2-autor__texto p { margin: 0; font-size: .94rem; color: var(--c-text-2); }
.v2-autor__texto a { font-size: .94rem; text-decoration: none; justify-self: start; }
@media (max-width: 560px) { .v2-autor { grid-template-columns: 1fr; } }

/* ---------- micro mono ---------- */
.v2-micro-mono { font-family: var(--ff-mono); font-size: .74rem; line-height: 1.7; color: var(--c-text-3); margin: 0; }

/* ---------- trilha do pilar ---------- */
.v2-trilha { list-style: none; margin: 0; padding: 0; display: grid; }
.v2-trilha > li + li { border-top: 1px solid var(--c-line); }
.v2-trilha > li > a { display: grid; grid-template-columns: 78px minmax(0,1fr) auto; gap: 24px; align-items: baseline;
  padding: 32px 0; text-decoration: none; color: var(--c-text); transition: transform var(--dur-2,220ms) var(--ease-out); }
.v2-trilha > li > a:hover { transform: translateX(6px); }
.v2-trilha > li > a:hover strong { color: var(--c-amber); }
.v2-trilha__n { font-family: var(--ff-mono); font-size: 28px; color: var(--c-amber); font-variant-numeric: tabular-nums; }
.v2-trilha__texto { display: grid; gap: 8px; }
.v2-trilha__texto strong { font-family: var(--ff-display); font-size: clamp(1.25rem, 2.2vw, 1.875rem); line-height: 1.32; font-weight: 500; transition: color var(--dur-2,220ms) var(--ease-out); }
.v2-trilha__texto > span { font-size: .94rem; color: var(--c-text-2); }
.v2-trilha__min { font-family: var(--ff-mono); font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--c-text-3); }
@media (max-width: 640px) {
  .v2-trilha > li > a { grid-template-columns: 44px 1fr; }
  .v2-trilha__n { font-size: 20px; }
  .v2-trilha__min { display: none; }
}
.v2-trilha__cta { margin: 24px 0; position: relative; overflow: hidden; background: var(--c-surface);
  border: 1px solid var(--c-line) !important; border-top: 1px solid var(--c-line);
  border-radius: var(--r-flow, 24px 24px 24px 4px); padding: 48px; }
.v2-trilha__cta-inner { position: relative; display: flex; justify-content: space-between; align-items: center; gap: 32px; flex-wrap: wrap; }
.v2-trilha__cta h2 { margin: 0 0 8px; font-size: clamp(1.4rem, 2.4vw, 1.875rem); line-height: 1.12; letter-spacing: -.03em; }

/* ---------- ponte para mentoria (pilar) ---------- */
.v2-ponte { position: relative; overflow: hidden; padding: var(--sp-10, 96px) 0; }
.v2-ponte__grid { position: relative; display: grid; grid-template-columns: 1fr; gap: var(--sp-6, 32px); align-items: center; }
@media (min-width: 900px) { .v2-ponte__grid { grid-template-columns: 1fr 1fr; gap: var(--sp-5, 24px); } }
.v2-ponte__texto { display: grid; gap: 16px; }
.v2-ponte__texto h2 { margin: 0; font-size: clamp(1.7rem, 3.4vw, 2.7rem); line-height: 1.08; letter-spacing: -.03em; }
.v2-ponte__texto p { margin: 0; color: var(--c-text-2); max-width: 48ch; }
.v2-ponte__acoes { display: flex; gap: 16px; align-items: center; flex-wrap: wrap; }
.v2-formato-card { background: var(--c-surface); border: 1px solid var(--c-line); border-radius: var(--r-flow, 24px 24px 24px 4px); padding: 40px; display: grid; gap: 24px; }
.v2-formato-card__linha { display: flex; gap: 16px; align-items: baseline; }
.v2-formato-card__linha span:first-child { font-family: var(--ff-mono); font-size: 14px; color: var(--c-amber); flex: none; }
.v2-formato-card__linha span:last-child { font-size: .94rem; color: var(--c-text-2); }

/* ---------- formato e cadencia (mentoria) ---------- */
.v2-formato { max-width: 1200px; margin: 0 auto; padding: var(--sp-10, 96px) var(--gutter, 24px);
  display: grid; grid-template-columns: 1fr; gap: var(--sp-6, 32px); }
@media (min-width: 900px) { .v2-formato { grid-template-columns: 5fr 7fr; gap: var(--sp-5, 24px); } }
.v2-formato__intro { display: grid; gap: 16px; align-content: start; }
.v2-formato__intro h2 { margin: 0; font-size: clamp(1.7rem, 3.4vw, 2.7rem); line-height: 1.08; letter-spacing: -.03em; }
.v2-formato__intro p { margin: 0; color: var(--c-text-2); max-width: 44ch; }
.v2-formato__item { display: grid; grid-template-columns: 56px 1fr; gap: 24px; padding: 32px 0; }
.v2-formato__item + .v2-formato__item { border-top: 1px solid var(--c-line); }
.v2-formato__item > span { font-family: var(--ff-mono); font-size: 15px; color: var(--c-cobalt-lift); }
.v2-formato__item h3 { margin: 0 0 8px; font-size: clamp(1.2rem, 2vw, 1.625rem); line-height: 1.3; }
.v2-formato__item p { margin: 0; font-size: .94rem; color: var(--c-text-2); }

/* ---------- prova em cobalto (mentoria/advisory) ---------- */
.v2-prova-cobalto { max-width: 1200px; margin: 0 auto; padding: var(--sp-10, 96px) var(--gutter, 24px); display: grid; gap: 40px; }
.v2-prova-cobalto__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 24px; }
.v2-prova-cobalto__grid > div { display: grid; gap: 8px; }
.v2-prova-cobalto .valor { font-family: var(--ff-mono); font-size: clamp(2.2rem, 4vw, 3.375rem); letter-spacing: -.04em; line-height: 1; color: var(--c-cobalt-lift); font-variant-numeric: tabular-nums; }
.v2-prova-cobalto .rotulo { font-family: var(--ff-mono); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--c-text-2); }
.v2-prova-cobalto .fonte { font-size: .8125rem; color: var(--c-text-3); }

/* ---------- FAQ ---------- */
.v2-faq { max-width: 792px; margin: 0 auto; padding: var(--sp-10, 96px) var(--gutter, 24px); display: grid; gap: 24px; }
.v2-faq details { border-bottom: 1px solid var(--c-line); }
.v2-faq summary { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 16px;
  padding: 16px 0; min-height: 48px; cursor: pointer;
  font-family: var(--ff-display); font-size: clamp(1.1rem, 1.8vw, 1.375rem); line-height: 1.32; font-weight: 500; color: var(--c-text); }
.v2-faq summary::-webkit-details-marker { display: none; }
.v2-faq summary span { font-family: var(--ff-mono); color: var(--c-cobalt-lift); font-size: 1.3rem; line-height: 1;
  transition: transform var(--dur-2,220ms) var(--ease-out), color var(--dur-2,220ms) var(--ease-out); }
.v2-faq details[open] summary span { transform: rotate(45deg); color: var(--c-amber); }
.v2-faq details p { margin: 0 0 24px; color: var(--c-text-2); }

/* ---------- lista de espera ---------- */
.v2-lista { position: relative; overflow: hidden; background: var(--c-surface);
  padding: var(--sp-10, 96px) var(--gutter, 24px);
  margin-top: var(--sp-9, 72px);
  width: 100vw; margin-left: calc(50% - 50vw); }
.v2-lista__inner { position: relative; max-width: 588px; margin: 0 auto; display: grid; gap: 32px; }
.v2-lista__inner h2 { margin: 0; font-size: clamp(1.7rem, 3.4vw, 2.7rem); line-height: 1.08; letter-spacing: -.03em; }
.v2-lista__form { display: grid; gap: 24px; background: var(--c-base); border: 1px solid var(--c-line-strong);
  border-radius: var(--r-flow, 24px 24px 24px 4px); padding: 40px; }
.v2-lista__form > div { display: grid; gap: 8px; }
.v2-lista__form label { font-family: var(--ff-mono); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--c-text-3); }
.v2-lista__form input, .v2-lista__form select {
  height: 48px; padding: 0 16px; background: var(--c-surface); border: 1px solid var(--c-line-strong);
  border-radius: 14px; color: var(--c-text); font-family: var(--ff-text); font-size: 15px; min-height: 48px; }
.v2-lista__form button { justify-self: start; }

@media (max-width: 640px) {
  .v2-trilha__cta { padding: 32px 24px; }
  .v2-lista__form { padding: 24px; }
  .v2-formato__item { grid-template-columns: 36px 1fr; gap: 16px; }
}

/* ==========================================================================
   v2.2 - marca redimensionada, movimento e formularios
   ========================================================================== */

/* marca: menor e sem corte (a arte ja dissolve nas bordas) */
.v2-assinatura { height: 46px !important; margin: -8px 0 !important; filter: drop-shadow(0 0 10px rgba(76,141,255,.22)); }
.v2-marca--rodape .v2-assinatura { height: 80px !important; margin: 0 !important; }
@media (max-width: 640px) { .v2-assinatura { height: 36px !important; } }

/* faisca: o ponto de decisao viaja pela corrente conforme o scroll */
.corrente .v2-faisca {
  fill: var(--c-amber-soft, #FFD466);
  filter: drop-shadow(0 0 8px rgba(255,191,0,.9));
}
.corrente .v2-rastro {
  fill: var(--c-amber, #FFBF00); opacity: .22;
  filter: blur(4px);
}

/* nos acesos pulsam devagar */
@keyframes v2-no-pulso {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.35); }
}
.corrente .no.on {
  animation: v2-no-pulso 2.8s var(--ease-flow, ease-in-out) infinite;
  transform-box: fill-box; transform-origin: center;
}

/* opt-in LGPD */
.v2-form-bloco { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; max-width: 560px; width: 100%; }
.v2-lgpd { display: grid; grid-template-columns: 18px 1fr; gap: 10px; align-items: start; cursor: pointer;
  font-size: .8rem; line-height: 1.55; color: var(--c-text-3); }
.v2-lgpd input { width: 18px; height: 18px; min-height: 18px; margin-top: 2px; accent-color: var(--c-amber);
  border-radius: 4px; padding: 0; }
.v2-lgpd a { color: var(--c-text-2); }
.v2-lgpd a:hover { color: var(--c-amber); }
.v2-lista__form .v2-lgpd { max-width: none; }

/* estados de envio */
.v2-form-sucesso {
  display: grid; gap: 4px; padding: 20px 24px;
  background: rgba(61,220,151,.08); border: 1px solid rgba(61,220,151,.35);
  border-radius: var(--r-flow, 24px 24px 24px 4px);
}
.v2-form-sucesso strong { color: var(--c-success, #3DDC97); font-family: var(--ff-display); font-size: 1.05rem; }
.v2-form-sucesso span { color: var(--c-text-2); font-size: .9rem; }
.v2-form-erro {
  padding: 12px 16px; font-size: .86rem; color: var(--c-danger, #FF5C5C);
  background: rgba(255,92,92,.08); border: 1px solid rgba(255,92,92,.3); border-radius: 10px;
}

/* parallax: transform vive no elemento, transicao suave */
[data-parallax] { will-change: transform; }

@media (prefers-reduced-motion: reduce) {
  .corrente .no.on { animation: none; }
  .corrente .v2-faisca, .corrente .v2-rastro { display: none; }
  [data-parallax] { transform: none !important; }
}

/* hidden precisa vencer display:flex/grid das classes */
.v2-form-bloco [hidden], .v2-form[hidden], .v2-lgpd[hidden], .v2-micro-mono[hidden] { display: none !important; }

/* ==========================================================================
   v2.4 - vitrine (logos, numeros, frases, projetos), WhatsApp e cookies
   ========================================================================== */

/* parede de logos monocromatica, no espirito do benchmark Metricas Boss */
.v2-logos {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 36px 32px;
  align-items: center;
}
.v2-logo { margin: 0; display: grid; justify-items: center; gap: 10px; text-align: center; }
.v2-logo img {
  max-height: 34px; width: auto; max-width: 140px; object-fit: contain;
  filter: brightness(0) invert(1);
  opacity: .45;
  transition: opacity var(--dur-2, 220ms) var(--ease-out);
}
.v2-logo:hover img { opacity: .9; }
.v2-logo__nome {
  font-family: var(--ff-display);
  font-weight: 600;
  font-size: .98rem;
  letter-spacing: .01em;
  color: var(--c-text-3);
  transition: color var(--dur-2, 220ms) var(--ease-out);
  white-space: nowrap;
}
.v2-logo:hover .v2-logo__nome { color: var(--c-text); }
.v2-logos--cargo { gap: 40px 32px; align-items: start; }
.v2-logos--cargo figcaption {
  font-family: var(--ff-mono); font-size: .7rem; line-height: 1.5;
  letter-spacing: .04em; color: var(--c-text-3);
}

/* big numbers em cards */
.v2-numeros {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: var(--sp-5, 24px);
}
.v2-numero {
  background: var(--c-surface);
  border: 1px solid var(--c-line);
  border-radius: var(--r-flow, 24px 24px 24px 4px);
  padding: 26px 28px;
  display: grid; gap: 10px; align-content: start;
  transition: border-color var(--dur-2, 220ms) var(--ease-out), transform var(--dur-2, 220ms) var(--ease-out);
}
.v2-numero:hover { border-color: var(--c-cobalt-lift); transform: translateY(-2px); }
.v2-numero__valor {
  font-family: var(--ff-display);
  font-weight: 700;
  font-size: clamp(1.9rem, 3vw, 2.7rem);
  line-height: 1; letter-spacing: -.045em;
  color: var(--c-amber);
  font-variant-numeric: tabular-nums;
  font-feature-settings: 'tnum' 1;
}
.v2-numero__rotulo { font-size: .92rem; line-height: 1.5; color: var(--c-text-2); }
/* o numero manda: mais respiro entre valor e rotulo (v2.8.6) */
.v2-numero { gap: 14px; }

/* frases pessoais */
.v2-frases { display: grid; gap: 14px; }
.v2-frase {
  margin: 0; position: relative; padding-left: 26px;
  font-family: var(--ff-display); font-weight: 500;
  font-size: clamp(1.05rem, 1.6vw, 1.3rem); line-height: 1.45;
  color: var(--c-text);
}
.v2-frase::before {
  content: "\201C";
  position: absolute; left: 0; top: -2px;
  color: var(--c-amber); font-size: 1.5em; line-height: 1;
}

/* frentes de atuacao (projetos) */
.v2-projetos { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; }
.v2-projeto { position: relative; padding-left: 28px; display: grid; gap: 4px; }
.v2-projeto::before { content: "\2192"; position: absolute; left: 0; top: 0; color: var(--c-amber); }
.v2-projeto strong { font-family: var(--ff-display); font-weight: 600; font-size: 1.05rem; color: var(--c-text); }
.v2-projeto span { font-size: .92rem; color: var(--c-text-2); }

/* botao flutuante de WhatsApp */
.v2-whats {
  position: fixed; right: 22px; bottom: 22px; z-index: 90;
  width: 54px; height: 54px; border-radius: 50%;
  display: grid; place-items: center;
  background: #25d366; color: #fff;
  box-shadow: 0 8px 24px rgba(0, 0, 0, .45);
  transition: transform var(--dur-2, 220ms) var(--ease-out), box-shadow var(--dur-2, 220ms) var(--ease-out);
}
.v2-whats:hover { transform: translateY(-3px); box-shadow: 0 12px 28px rgba(0, 0, 0, .55); color: #fff; }
@media (max-width: 640px) { .v2-whats { right: 16px; bottom: 76px; } }

/* aviso de cookies (LGPD) */
.v2-cookies {
  position: fixed; left: 20px; bottom: 20px; z-index: 95;
  max-width: 400px;
  background: var(--c-bg-2, #0E131B);
  border: 1px solid var(--c-line-strong);
  border-radius: var(--r-flow, 24px 24px 24px 4px);
  padding: 18px 20px;
  display: grid; gap: 12px;
  box-shadow: 0 12px 32px rgba(0, 0, 0, .5);
}
.v2-cookies[hidden] { display: none; }
.v2-cookies p { margin: 0; font-size: .85rem; line-height: 1.55; color: var(--c-text-2); }
.v2-cookies a { color: var(--c-cobalt-lift, #4C8DFF); }
.v2-cookies .wp-element-button { justify-self: start; padding: 8px 20px; font-size: .86rem; }
@media (max-width: 640px) { .v2-cookies { left: 12px; right: 12px; bottom: 12px; max-width: none; } }

/* icone social no rodape */
.v2-social { display: inline-flex; align-items: center; gap: 14px; }
.v2-social a { color: var(--c-text-3); display: inline-flex; transition: color var(--dur-2, 220ms) var(--ease-out); }
.v2-social a:hover { color: var(--c-amber); }

/* ==========================================================================
   v2.4.1 - esteira de logos e carrossel de frases
   ========================================================================== */

/* esteira automatica de logos: rolagem continua, pausa no mouseover */
.v2-logos-esteira {
  overflow: hidden;
  position: relative;
  -webkit-mask-image: linear-gradient(to right, transparent, #000 8%, #000 92%, transparent);
  mask-image: linear-gradient(to right, transparent, #000 8%, #000 92%, transparent);
}
.v2-logos-trilho {
  display: flex;
  width: max-content;
  animation: v2-esteira 38s linear infinite;
}
.v2-logos-esteira:hover .v2-logos-trilho { animation-play-state: paused; }
.v2-logos-grupo {
  display: flex;
  align-items: center;
  gap: 76px;
  padding-right: 76px;
}
.v2-logos-grupo .v2-logo { margin: 0; flex: none; }
.v2-logos-grupo .v2-logo img {
  max-height: 36px; width: auto; max-width: 170px; object-fit: contain;
  filter: brightness(0) invert(1);
  opacity: .45;
  transition: opacity var(--dur-2, 220ms) var(--ease-out);
}
.v2-logos-grupo .v2-logo:hover img { opacity: .95; }
@keyframes v2-esteira {
  to { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
  .v2-logos-trilho { animation: none; }
  .v2-logos-esteira { overflow-x: auto; -webkit-mask-image: none; mask-image: none; }
}

/* carrossel de frases: avatar + uma frase por vez + setas */
.v2-frases-slider {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 20px 28px;
  align-items: center;
  max-width: 720px;
}
.v2-frases-avatar {
  width: 112px; height: 112px;
  border-radius: 50%;
  object-fit: cover; object-position: 50% 12%;
  background: radial-gradient(circle at 35% 30%, rgba(0, 71, 171, .55), rgba(14, 19, 27, .9));
  border: 1px solid var(--c-line-strong);
}
.v2-frases-palco { position: relative; min-height: 96px; display: grid; align-items: center; }
.v2-frase-slide {
  grid-area: 1 / 1;
  margin: 0; position: relative; padding-left: 30px;
  font-family: var(--ff-display); font-weight: 500;
  font-size: clamp(1.15rem, 2vw, 1.5rem); line-height: 1.4;
  color: var(--c-text);
  opacity: 0; transform: translateY(8px);
  transition: opacity .45s var(--ease-out), transform .45s var(--ease-out);
  pointer-events: none;
}
.v2-frase-slide.is-ativa { opacity: 1; transform: none; pointer-events: auto; }
.v2-frase-slide::before {
  content: "\201C";
  position: absolute; left: 0; top: -4px;
  color: var(--c-amber); font-size: 1.6em; line-height: 1;
}
.v2-frases-nav {
  grid-column: 2;
  display: flex; align-items: center; gap: 14px;
}
.v2-frases-seta {
  width: 40px; height: 40px;
  border-radius: 50%;
  border: 1px solid var(--c-line-strong);
  background: var(--c-surface);
  color: var(--c-text-2);
  font-size: 1rem; line-height: 1;
  cursor: pointer;
  display: grid; place-items: center;
  transition: border-color var(--dur-2, 220ms) var(--ease-out), color var(--dur-2, 220ms) var(--ease-out);
}
.v2-frases-seta:hover { border-color: var(--c-amber); color: var(--c-amber); }
.v2-frases-pontos { display: flex; gap: 7px; }
.v2-frases-pontos i {
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--c-line-strong);
  transition: background var(--dur-2, 220ms) var(--ease-out), transform var(--dur-2, 220ms) var(--ease-out);
}
.v2-frases-pontos i.is-ativa { background: var(--c-amber); transform: scale(1.25); }
@media (max-width: 640px) {
  .v2-frases-slider { grid-template-columns: 1fr; }
  .v2-frases-avatar { width: 84px; height: 84px; }
  .v2-frases-nav { grid-column: 1; }
}

/* ==========================================================================
   v2.4.2 - scroll-stack (benchmark Metricas Boss): intro travada a esquerda,
   cartoes que empilham um sobre o outro conforme o scroll passa por eles
   ========================================================================== */

.v2-stack { display: grid; gap: 40px; align-items: start; }
@media (min-width: 900px) {
  .v2-stack { grid-template-columns: 5fr 7fr; gap: var(--sp-8, 56px); }
}
@media (min-width: 900px) {
  .v2-stack__intro { position: sticky; top: 130px; }
}
.v2-stack__itens { display: grid; gap: 28px; }
.v2-stack__item {
  position: sticky;
  background: var(--c-bg-2, #0E131B);
  border: 1px solid var(--c-line-strong);
  border-radius: var(--r-flow, 24px 24px 24px 4px);
  padding: clamp(24px, 3vw, 40px);
  display: grid; gap: 12px; align-content: start;
  min-height: 220px;
  box-shadow: 0 -14px 36px rgba(0, 0, 0, .38);
}
/* offsets escalonados: a borda de cada cartao anterior fica aparecendo,
   formando o baralho conforme o proximo cobre o atual */
.v2-stack__item:nth-child(1) { top: 120px; }
.v2-stack__item:nth-child(2) { top: 142px; }
.v2-stack__item:nth-child(3) { top: 164px; }
.v2-stack__item:nth-child(4) { top: 186px; }
.v2-stack__item:nth-child(5) { top: 208px; }
.v2-stack__item:nth-child(6) { top: 230px; }
.v2-stack__n {
  font-family: var(--ff-mono); font-size: .78rem; letter-spacing: .16em;
  color: var(--c-amber);
}
.v2-stack__item h3 {
  margin: 0;
  font-family: var(--ff-display); font-weight: 600;
  font-size: clamp(1.25rem, 2vw, 1.6rem); line-height: 1.3;
  color: var(--c-text);
}
.v2-stack__item p { margin: 0; font-size: .98rem; line-height: 1.6; color: var(--c-text-2); }
@media (max-width: 899px) {
  .v2-stack__item:nth-child(1) { top: 84px; }
  .v2-stack__item:nth-child(2) { top: 102px; }
  .v2-stack__item:nth-child(3) { top: 120px; }
  .v2-stack__item:nth-child(4) { top: 138px; }
}
@media (prefers-reduced-motion: reduce) {
  .v2-stack__item, .v2-stack__intro { position: static; }
}


/* v2.4.3: no mobile a pilula quebra em duas linhas (e-mail em cima, botao
   largura cheia embaixo) para nunca estourar a lateral direita */
.v2-form { min-width: 0; }
@media (max-width: 560px) {
  .v2-form { flex-wrap: wrap; padding: 10px; border-radius: 22px; }
  .v2-form input[type="email"] { flex: 1 1 100%; padding: 0 12px; }
  .v2-form button { flex: 1 1 100%; }
}

/* ============================================================
   MENU MOBILE (v2.4.4)
   O overlay do bloco Navegacao e position:fixed. Qualquer ancestral
   com backdrop-filter/filter/transform vira containing block e prende
   o painel dentro da barra: o desfoque do header foi movido para um
   pseudo-elemento no tema pai (1.0.6). Aqui fica so a aparencia.
   ============================================================ */

/* alvos de toque de 44px (WCAG 2.1 AA, 2.5.5) */
.corrente-header .wp-block-navigation__responsive-container-open,
.wp-block-navigation__responsive-container-close {
  width: 44px; height: 44px;
  align-items: center; justify-content: center;
  border-radius: 12px;
  color: var(--c-text);
  background: transparent;
  transition: background var(--dur-1, .15s) var(--ease-out, ease);
}
/* O `display` fica FORA da regra acima de proposito. O core esconde o
   hamburguer com `display:none` dentro de `@media (min-width: 600px)`;
   uma regra sem media query, de mesma especificidade e posterior na
   cascata, faz o botao vazar para o desktop (bug do 2.5.0). */
@media (max-width: 599px) {
  .corrente-header .wp-block-navigation__responsive-container-open { display: flex; }
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { display: flex; }
.corrente-header .wp-block-navigation__responsive-container-open svg,
.wp-block-navigation__responsive-container-close svg { width: 26px; height: 26px; }
.corrente-header .wp-block-navigation__responsive-container-open:hover,
.wp-block-navigation__responsive-container-close:hover { background: rgba(255,255,255,.07); }
.corrente-header .wp-block-navigation__responsive-container-open:focus-visible,
.wp-block-navigation__responsive-container-close:focus-visible {
  outline: 2px solid var(--c-amber); outline-offset: 2px;
}

/* painel aberto: tela cheia de verdade */
.wp-block-navigation__responsive-container.is-menu-open {
  position: fixed; inset: 0;
  z-index: 999999;
  padding: 0;
  background: var(--c-base);
  overscroll-behavior: contain;
  animation: v2-menu-entra var(--dur-2, .28s) var(--ease-out, ease) both;
}
@keyframes v2-menu-entra { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close {
  max-width: none; width: 100%; height: 100%;
  display: flex; flex-direction: column;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog {
  display: flex; flex-direction: column; flex: 1; min-height: 0;
  padding: calc(14px + env(safe-area-inset-top)) var(--gutter) calc(32px + env(safe-area-inset-bottom));
  margin: 0;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
  position: static; align-self: flex-end; flex: none; margin: 0 -6px 10px 0;
}

/* lista: itens largos, empilhados, alinhados a esquerda */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
  width: 100%;
  align-items: stretch;
  justify-content: flex-start;
  gap: 0 !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
  flex: 1; min-height: 0; overflow-y: auto;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
  width: 100%;
  border-bottom: 1px solid var(--c-line);
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:first-child {
  border-top: 1px solid var(--c-line);
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container .wp-block-navigation-item__content {
  display: flex; align-items: center; width: 100%;
  min-height: 44px;
  padding: 18px 2px;
  font-family: var(--ff-display);
  font-size: 1.5rem; line-height: 1.2; letter-spacing: -.02em;
  color: var(--c-text);
  text-decoration: none;
}
.wp-block-navigation__responsive-container.is-menu-open .current-menu-item > .wp-block-navigation-item__content { color: var(--c-amber); }
.wp-block-navigation__responsive-container.is-menu-open .current-menu-item > .wp-block-navigation-item__content::after { display: none; }

@media (prefers-reduced-motion: reduce) {
  .wp-block-navigation__responsive-container.is-menu-open { animation: none; }
}

/* ============================================================
   RODAPE NO MOBILE (v2.4.4): marca em linha cheia,
   Navegar e Canais lado a lado, creditos em linha cheia.
   ============================================================ */
@media (max-width: 781px) {
  .corrente-footer .wp-block-columns:not(.is-not-stacked-on-mobile) {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--sp-7, 40px) var(--sp-5, 24px);
    flex-wrap: nowrap;
  }
  .corrente-footer .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column {
    flex-basis: auto !important;
    min-width: 0;
  }
  .corrente-footer .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column:first-child {
    grid-column: 1 / -1;
  }
}

/* v2.4.6 — ajustes finais do menu mobile */

/* O overlay vive dentro do header, que e um contexto de empilhamento
   (position:sticky + z-index:50). Por isso os flutuantes (z-index 90)
   pintavam por cima do menu aberto. Some com eles enquanto o menu esta aberto. */
html.has-modal-open .v2-whats,
html.has-modal-open .v2-cookies { display: none !important; }

/* o menu comeca logo abaixo do botao fechar, sem vazio.
   O core aplica calc(24px + 2rem) num seletor de mesma forca e depois
   na cascata (style inline no head), por isso o !important aqui. */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
  padding-top: 16px !important;
}

/* v2.4.8 — header em uma linha so no mobile.
   Com o wordmark, a barra somava 417px de conteudo em 350px uteis e
   quebrava em duas linhas (117px de altura, hamburguer jogado para baixo
   do logo). A assinatura sozinha ja identifica a marca nesse tamanho. */
@media (max-width: 640px) {
  .corrente-header .v2-wordmark { display: none; }
  .corrente-header > .wp-block-group > .wp-block-group.alignwide,
  .corrente-header .wp-block-group.alignwide { flex-wrap: nowrap; }
  .corrente-header .v2-marca { gap: 0; flex: none; }
}

/* ==========================================================================
   v2.11 - escala unica de titulo
   Um titulo de pagina, um tamanho. O hero da home e a unica excecao,
   porque e a frase que define o site inteiro. O !important existe porque
   varias paginas trazem tamanho inline no proprio bloco, herdado de quando
   cada pagina foi montada a mao; ele some quando os blocos forem limpos.
   ========================================================================== */

:root {
  --fs-hero: clamp(2.9rem, 6.4vw, 5.25rem);
  --fs-titulo: clamp(2.4rem, 5.2vw, 4.75rem);
}

main h1,
main .wp-block-post-title {
  font-size: var(--fs-titulo) !important;
  line-height: .98;
  letter-spacing: -.045em;
}

/* Titulo de card dentro de query loop NAO e titulo de pagina.
   A regra acima existe para o H1 do artigo, mas .wp-block-post-title tambem e a
   classe de cada card da home e da /artigos/, e o !important dela passava por cima
   do has-sub-font-size do bloco: card de 290px com fonte de 76px. */
main .wp-block-post-template .wp-block-post-title,
main .artigo-card .wp-block-post-title {
  font-size: var(--wp--preset--font-size--sub) !important;
  line-height: 1.12;
  letter-spacing: -.02em;
}

/* ==========================================================================
   D36 - card de artigo com imagem.
   O card era so texto nos tres lugares onde aparece (home, /artigos/ e o
   bloco do rodape do artigo). A imagem sangra ate a borda usando margem
   negativa igual ao padding de 24px do proprio card. Quando o post nao tem
   imagem destacada o bloco nao renderiza nada, entao o degrade da Corrente
   que fica no fundo do wrapper vira o fallback e a grade nunca abre buraco.
   ========================================================================== */

.artigo-card { overflow: hidden; }

.artigo-card__media {
  position: relative;
  margin: -24px -24px 4px;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background:
    radial-gradient(90% 120% at 18% 8%, rgba(76,141,255,.38), transparent 62%),
    radial-gradient(70% 90% at 92% 96%, rgba(255,191,0,.16), transparent 60%),
    linear-gradient(150deg, var(--c-cobalt-deep) 0%, var(--c-base) 72%);
}

.artigo-card__media::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, transparent 45%, rgba(7,10,15,.78) 100%);
}

.artigo-card__media .wp-block-post-featured-image { margin: 0; height: 100%; }
.artigo-card__media img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform .5s cubic-bezier(.2,.7,.3,1);
}
.artigo-card:hover .artigo-card__media img { transform: scale(1.04); }

.artigo-card__tag {
  position: absolute; left: 18px; bottom: 12px; z-index: 2; margin: 0;
  font-size: 11px; letter-spacing: .14em;
}
.artigo-card__tag a { text-decoration: none; }

/* a categoria ja aparece como etiqueta sobre a imagem: some com a repeticao
   dentro da linha de meta (e com o separador que sobraria antes do tempo de leitura) */
.artigo-card .wp-block-template-part .meta-mono > .wp-block-post-terms,
.artigo-card .wp-block-template-part .meta-mono > .wp-block-post-terms + p { display: none; }

@media (min-width: 880px) {
  .wp-block-post-template.is-layout-grid > li:first-child { grid-column: span 2; }
  .wp-block-post-template.is-layout-grid > li:first-child .artigo-card__media { aspect-ratio: 21 / 9; }
  .wp-block-post-template.is-layout-grid > li:first-child .wp-block-post-title {
    font-size: var(--wp--preset--font-size--secao) !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .artigo-card__media img { transition: none; }
  .artigo-card:hover .artigo-card__media img { transform: none; }
}

.v2-hero h1 {
  font-size: var(--fs-hero) !important;
  line-height: .94;
}

/* a palavra em destaque nunca quebra sozinha numa linha */
h1 .sweep { white-space: nowrap; }

/* acao primaria solta dentro de um bloco de texto (paragrafo com botao) */
.v2-acao { margin-top: 28px; }
.v2-acao .wp-element-button { display: inline-flex; align-items: center; }
