/* Família Reveno: a camada visual compartilhada pelos produtos (Agents & Skills,
   Harness, Evidence), copiada do reveno.com.br. Só tokens. Cada produto define
   o acento pelo atributo data-rv-product no <html>; o CTA principal é sempre a
   cor da marca. Prefixo rvf- para não colidir com estilos de produto. */

.rvf {
  --rvf-max: 85rem;
  --rvf-gutter: 3rem;
  --rvf-canvas: var(--rv-color-dark-canvas);
  --rvf-surface: var(--rv-color-dark-surface);
  --rvf-line: var(--rv-color-dark-border);
  --rvf-text: var(--rv-color-dark-text);
  --rvf-text-2: var(--rv-color-dark-text-secondary);
  --rvf-text-3: var(--rv-color-dark-text-tertiary);
  --rvf-paper: var(--rv-profile-institutional-paper);
  --rvf-ink: var(--rv-profile-institutional-ink);
  --rvf-ink-soft: var(--rv-profile-institutional-ink-soft);
  --rvf-paper-line: var(--rv-profile-institutional-line);
  --rvf-brand: var(--rv-color-brand);
  --rvf-brand-hover: var(--rv-color-brand-hover);
  --rvf-accent: var(--rv-color-brand);
  --rvf-accent-paper: var(--rv-color-brand-dark);
  margin: 0;
  background: var(--rvf-canvas);
  color: var(--rvf-text);
  font: 400 16px/1.6 var(--rv-font-sans);
  -webkit-font-smoothing: antialiased;
}
[data-rv-product="evidence"] .rvf, .rvf[data-rvf-accent="evidence"] {
  --rvf-accent: var(--rv-profile-evidence-signal-on-dark);
  --rvf-accent-paper: var(--rv-profile-evidence-signal);
}
.rvf *, .rvf *::before, .rvf *::after { box-sizing: border-box; }
/* Especificidade zero: classes de botão e de link sempre vencem. */
:where(.rvf) a { color: inherit; text-decoration: none; }
.rvf :focus-visible { outline: 2px solid var(--rvf-brand); outline-offset: 3px; }
.rvf main:focus { outline: none; }
.rvf-container { width: min(var(--rvf-max), calc(100% - (var(--rvf-gutter) * 2))); margin-inline: auto; }
.rvf-skip { position: absolute; left: 1rem; top: -4rem; z-index: 80; padding: .75rem 1rem; border-radius: var(--rv-radius-sm); background: var(--rvf-brand); color: var(--rvf-canvas); font-weight: 600; }
.rvf-skip:focus { top: 1rem; }
.rvf-mono { font-family: var(--rv-font-mono); }

/* ---------- Cabeçalho em cápsula (igual ao reveno.com.br) ---------- */
.rvf-header { position: fixed; inset: 0 0 auto; z-index: 60; padding: 1rem 0; pointer-events: none; }
.rvf-header-inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.rvf-pill { display: flex; align-items: center; gap: 1.5rem; min-height: 56px; padding: .35rem .5rem .35rem 1.25rem; border: 1px solid color-mix(in srgb, var(--rvf-text) 10%, transparent); border-radius: var(--rv-radius-pill); background: color-mix(in srgb, var(--rvf-canvas) 78%, transparent); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); box-shadow: 0 10px 30px -18px color-mix(in srgb, var(--rvf-canvas) 90%, transparent); pointer-events: auto; }
.rvf-pill-nav { padding-right: 1.25rem; }
.rvf-pill-actions { gap: .75rem; padding-left: 1rem; }
.rvf-wordmark { display: inline-flex; align-items: center; gap: .1rem; color: var(--rvf-text); font-size: 17px; font-weight: 500; white-space: nowrap; }
.rvf-wm { letter-spacing: .08em; }
.rvf-wm b { font-weight: 600; }
.rvf-wm i { color: var(--rvf-brand); font-style: normal; font-weight: 600; }
.rvf-wm u { font-weight: 400; text-decoration: none; }
.rvf-wordmark .rvf-slash { padding-inline: .06rem; white-space: pre; color: var(--rvf-accent); font-weight: 400; }
.rvf-nav { display: flex; gap: 1.4rem; }
.rvf-nav a { display: flex; align-items: center; min-height: 44px; color: var(--rvf-text-2); font-size: 14px; white-space: nowrap; transition: color .15s ease; }
.rvf-nav a:hover, .rvf-nav a[aria-current="page"] { color: var(--rvf-text); }
.rvf-nav a[aria-current="page"] { color: var(--rvf-accent); }
.rvf-lang { display: flex; align-items: center; min-height: 44px; color: var(--rvf-text-2); font-size: 14px; font-weight: 500; }
.rvf-lang:hover { color: var(--rvf-text); }
.rvf-menu { display: none; }
.rvf-menu > summary { display: grid; place-items: center; width: 56px; height: 56px; border: 1px solid color-mix(in srgb, var(--rvf-text) 10%, transparent); border-radius: var(--rv-radius-pill); background: color-mix(in srgb, var(--rvf-canvas) 85%, transparent); color: var(--rvf-text); font-size: 22px; list-style: none; cursor: pointer; pointer-events: auto; }
.rvf-menu > summary::-webkit-details-marker { display: none; }
.rvf-menu[open] > summary { border-color: var(--rvf-brand); }
.rvf-menu nav { position: absolute; right: var(--rvf-gutter); top: 5rem; display: grid; width: min(20rem, calc(100vw - 2.5rem)); max-height: calc(100svh - 7rem); overflow-y: auto; padding: .5rem 1rem 1rem; border: 1px solid var(--rvf-line); border-radius: var(--rv-radius-md); background: var(--rvf-canvas); pointer-events: auto; }
.rvf-menu nav a { display: flex; align-items: center; min-height: 48px; border-bottom: 1px solid var(--rvf-line); color: var(--rvf-text-2); font-size: 15px; }
.rvf-menu nav .rvf-menu-cta { border: 0; color: var(--rvf-brand); font-weight: 600; }

/* ---------- Botões ---------- */
.rvf-btn { display: inline-flex; align-items: center; justify-content: center; gap: .65rem; min-height: 48px; padding: .75rem 1.25rem; border: 1px solid transparent; border-radius: var(--rv-radius-sm); background: transparent; font: 600 15px/1 var(--rv-font-sans); cursor: pointer; transition: background .18s ease, border-color .18s ease, transform .18s ease, box-shadow .18s ease; }
.rvf-btn--primary { border-color: var(--rvf-brand); background: var(--rvf-brand); color: var(--rvf-canvas); }
.rvf-btn--primary:hover { background: var(--rvf-brand-hover); }
.rvf-btn--glow { box-shadow: 0 0 0 1px color-mix(in srgb, var(--rvf-brand) 40%, transparent), 0 12px 40px -12px color-mix(in srgb, var(--rvf-brand) 75%, transparent); }
.rvf-btn--glow:hover { transform: translateY(-1px); }
.rvf-btn--quiet { color: var(--rvf-text); }
.rvf-btn--quiet:hover { text-decoration: underline; text-underline-offset: .3em; }
.rvf-btn--ghost { border-color: var(--rvf-line); color: var(--rvf-text); background: transparent; }
.rvf-btn--ghost:hover { border-color: var(--rvf-text-3); }
.rvf-btn--pill { min-height: 44px; border-radius: var(--rv-radius-pill); font-size: 14px; }

/* ---------- Hero (fórmula fixa: frase, apoio, CTA, produto ao lado) ---------- */
.rvf-hero { position: relative; overflow: hidden; padding: clamp(7.5rem, 11vw, 9rem) 0 clamp(3.5rem, 6vw, 5rem); background: radial-gradient(ellipse at 76% 32%, color-mix(in srgb, var(--rvf-accent) 13%, transparent), transparent 55%), var(--rvf-canvas); }
.rvf-hero::before { position: absolute; inset: 0; background-image: radial-gradient(color-mix(in srgb, var(--rvf-text) 12%, transparent) 1px, transparent 1.4px); background-size: 22px 22px; mask-image: radial-gradient(ellipse at 70% 40%, var(--rvf-canvas) 0%, transparent 70%); -webkit-mask-image: radial-gradient(ellipse at 70% 40%, var(--rvf-canvas) 0%, transparent 70%); content: ''; pointer-events: none; }
.rvf-hero-grid { position: relative; display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(2.5rem, 5vw, 5rem); align-items: center; }
.rvf-hero-grid--stack { grid-template-columns: 1fr; }
.rvf-eyebrow { display: inline-flex; align-items: center; gap: .55rem; margin: 0; color: var(--rvf-accent); font: 600 12px/1.6 var(--rv-font-mono); letter-spacing: .1em; text-transform: uppercase; }
.rvf-eyebrow::before { width: 8px; height: 8px; border-radius: 50%; background: var(--rvf-accent); box-shadow: 0 0 0 4px color-mix(in srgb, var(--rvf-accent) 18%, transparent); content: ''; }
.rvf-h1 { max-width: 14ch; margin: 1.4rem 0 1.5rem; font-size: clamp(3rem, 5.8vw, 5.9rem); font-weight: 600; line-height: .96; letter-spacing: -.06em; text-wrap: balance; }
.rvf-h1 .rvf-muted { display: block; color: color-mix(in srgb, var(--rvf-text) 56%, transparent); }
.rvf-h1 em { color: var(--rvf-accent); font-style: normal; }
.rvf-lead { max-width: 36rem; margin: 0; color: var(--rvf-text-2); font-size: 18px; line-height: 1.65; }
.rvf-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.25rem; margin-top: 2rem; }
.rvf-note { max-width: 36rem; margin: 1.25rem 0 0; color: var(--rvf-text-3); font-size: 13px; line-height: 1.6; }

/* ---------- Janela de produto (a interface real ao lado do hero) ---------- */
.rvf-window { position: relative; overflow: hidden; border: 1px solid color-mix(in srgb, var(--rvf-accent) 28%, var(--rvf-line)); border-radius: var(--rv-radius-md); background: color-mix(in srgb, var(--rvf-surface) 86%, transparent); box-shadow: 0 40px 90px -40px color-mix(in srgb, var(--rvf-canvas) 95%, transparent), 0 0 0 1px color-mix(in srgb, var(--rvf-text) 4%, transparent); }
.rvf-window-bar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 44px; padding: .5rem 1rem; border-bottom: 1px solid var(--rvf-line); font: 500 12px/1.4 var(--rv-font-mono); letter-spacing: .08em; color: var(--rvf-text-3); }
.rvf-window-dots { display: inline-flex; gap: 6px; }
.rvf-window-dots i { width: 10px; height: 10px; border-radius: 50%; background: color-mix(in srgb, var(--rvf-text) 18%, transparent); }
.rvf-window-title { color: var(--rvf-text); font-weight: 600; letter-spacing: .12em; }

/* ---------- Selos de estado ---------- */
.rvf-badge { display: inline-flex; align-items: center; gap: .45rem; min-height: 26px; padding: .2rem .65rem; border: 1px solid var(--rvf-line); border-radius: var(--rv-radius-pill); color: var(--rvf-text-2); font: 600 12px/1.4 var(--rv-font-mono); letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; }
.rvf-badge::before { width: 6px; height: 6px; border-radius: 50%; background: currentColor; content: ''; }
.rvf-badge--open { border-color: color-mix(in srgb, var(--rv-color-status-success) 45%, transparent); color: var(--rv-color-status-success); }
.rvf-badge--early { border-color: color-mix(in srgb, var(--rvf-brand) 45%, transparent); color: var(--rvf-brand); }
.rvf-badge--sim { border-color: color-mix(in srgb, var(--rvf-text-3) 40%, transparent); color: var(--rvf-text-3); }
.rvf-section--paper .rvf-badge { border-color: var(--rvf-paper-line); color: var(--rvf-ink-soft); }
.rvf-section--paper .rvf-badge--open { color: var(--rv-profile-evidence-signal); border-color: color-mix(in srgb, var(--rv-profile-evidence-signal) 40%, transparent); }
.rvf-section--paper .rvf-badge--early { color: var(--rv-color-brand-dark); border-color: color-mix(in srgb, var(--rv-color-brand-dark) 40%, transparent); }

/* ---------- Seções: escuro e papel alternados ---------- */
.rvf-section { padding-block: clamp(4rem, 7vw, 7rem); }
.rvf-section--paper { background: var(--rvf-paper); color: var(--rvf-ink); }
.rvf-section--line { border-top: 1px solid var(--rvf-line); }
.rvf-kicker { margin: 0; color: var(--rvf-accent); font: 600 12px/1.6 var(--rv-font-mono); letter-spacing: .1em; text-transform: uppercase; }
.rvf-section--paper .rvf-kicker { color: var(--rvf-accent-paper); }
.rvf-h2 { max-width: 22ch; margin: 1rem 0 0; font-size: clamp(2.1rem, 4vw, 3.6rem); font-weight: 600; line-height: 1.04; letter-spacing: -.05em; text-wrap: balance; }
.rvf-section-head { display: flex; align-items: end; justify-content: space-between; gap: 3rem; margin-bottom: clamp(2rem, 4vw, 3rem); }
.rvf-section-note { max-width: 32ch; margin: 0; color: var(--rvf-text-3); font-size: 15px; line-height: 1.7; }
.rvf-section--paper .rvf-section-note, .rvf-section--paper p { color: var(--rvf-ink-soft); }
.rvf-section--paper .rvf-btn--ghost { border-color: var(--rvf-paper-line); color: var(--rvf-ink); }
.rvf-section--paper .rvf-btn--quiet { color: var(--rvf-ink); }

/* ---------- Faixa do ecossistema: Descobrir → Operar → Decidir ---------- */
.rvf-eco { border-block: 1px solid var(--rvf-line); }
.rvf-eco-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.rvf-eco-item { position: relative; display: grid; gap: .35rem; padding: 1.5rem 1.5rem 1.5rem 0; color: var(--rvf-text-2); }
.rvf-eco-item + .rvf-eco-item { padding-left: 1.5rem; border-left: 1px solid var(--rvf-line); }
.rvf-eco-item span { color: var(--rvf-text-3); font: 600 12px/1.5 var(--rv-font-mono); letter-spacing: .1em; text-transform: uppercase; }
.rvf-eco-item strong { color: var(--rvf-text); font-size: 17px; font-weight: 600; letter-spacing: -.01em; }
.rvf-eco-item small { font-size: 13px; line-height: 1.5; }
.rvf-eco-item[aria-current="page"] span { color: var(--rvf-accent); }
.rvf-eco-item[aria-current="page"]::before { position: absolute; top: -1px; left: 0; width: 3rem; height: 2px; background: var(--rvf-accent); content: ''; }
.rvf-eco-item + .rvf-eco-item[aria-current="page"]::before { left: 1.5rem; }
a.rvf-eco-item:hover strong { color: var(--rvf-brand); }

/* ---------- Rodapé (igual nos quatro sites) ---------- */
.rvf-footer { padding: clamp(3.5rem, 6vw, 5rem) 0 1.5rem; border-top: 1px solid var(--rvf-line); background: var(--rvf-canvas); color: var(--rvf-text-2); }
.rvf-footer-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 3rem; }
.rvf-footer-brand p { max-width: 24rem; margin: 1rem 0 0; color: var(--rvf-text-3); font-size: 14px; line-height: 1.65; }
.rvf-footer-mail { display: inline-flex; align-items: center; min-height: 32px; margin-top: .75rem; color: var(--rvf-text-2); font-size: 14px; }
.rvf-footer nav { display: grid; align-content: start; gap: .2rem; }
.rvf-footer-label { margin: 0 0 .5rem; color: var(--rvf-brand); font: 600 12px/1.5 var(--rv-font-mono); letter-spacing: .1em; text-transform: uppercase; }
.rvf-footer nav a { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .6rem; min-height: 32px; padding-block: .3rem; color: var(--rvf-text-2); font-size: 14px; }
/* Etiqueta de estado junto do nome (antes ficava solta, alinhada à direita). */
.rvf-footer nav a span { padding: .05rem .45rem; border: 1px solid var(--rvf-line); border-radius: 999px; color: var(--rvf-text-3); font: 500 12px/1.6 var(--rv-font-mono); white-space: nowrap; }
.rvf-footer nav a:hover { color: var(--rvf-brand); }
.rvf-footer-bottom { display: flex; justify-content: space-between; gap: 1rem; margin-top: 3rem; padding-top: 1.25rem; border-top: 1px solid var(--rvf-line); color: var(--rvf-text-3); font: 500 12px/1.6 var(--rv-font-mono); letter-spacing: .06em; }

@media (max-width: 1100px) { .rvf-nav { display: none; } .rvf-menu { display: block; } .rvf-hero-grid { grid-template-columns: 1fr; } }
@media (max-width: 900px) { .rvf { --rvf-gutter: 1.5rem; } .rvf-footer-grid { grid-template-columns: 1fr 1fr; gap: 2rem; } .rvf-footer-brand { grid-column: 1 / -1; } .rvf-section-head { flex-direction: column; align-items: start; gap: 1rem; } .rvf-eco-grid { grid-template-columns: 1fr; } .rvf-eco-item, .rvf-eco-item + .rvf-eco-item { padding: 1.25rem 0; border-left: 0; border-top: 1px solid var(--rvf-line); } .rvf-eco-item:first-child { border-top: 0; } .rvf-eco-item + .rvf-eco-item[aria-current="page"]::before { left: 0; } }
@media (max-width: 600px) {
  .rvf { --rvf-gutter: 1.25rem; }
  .rvf-header { padding: .75rem 0; }
  .rvf-pill { min-height: 52px; padding-left: 1rem; }
  .rvf-pill-actions { display: none; }
  .rvf-menu nav { right: 1.25rem; top: 4.5rem; }
  .rvf-h1 { font-size: clamp(2.7rem, 12.5vw, 3.8rem); }
  .rvf-lead { font-size: 16px; }
  .rvf-footer-grid { grid-template-columns: 1fr; }
  .rvf-footer-bottom { flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) { .rvf *, .rvf *::before, .rvf *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; } }
