/* ============================================================
   B&C Contabilidade — Design System (Visual Law)
   ============================================================ */
:root{
  --paper:#E9EDF4; --surface:#FFFFFF; --surface-2:#F1F4F9; --surface-3:#DFE6F0;
  --ink:#08111F; --ink-2:#3E4B63; --ink-3:#6C7A91;
  --line:#CFD8E6; --line-2:#AAB9CE;
  --brand:#004AAD; --brand-2:#003A87; --brand-3:#1E68CC; --brand-soft:#E6EEFA;
  --ok:#0F6B4F; --ok-soft:#E1F1EA;
  --warn:#9A6207; --warn-soft:#FAF0DC;
  --risk:#9C2B24; --risk-soft:#FAE6E4;
  --on-brand:#FFFFFF;
  --cta-bg:#004AAD; --cta-fg:#FFFFFF; --cta-btn-bg:#FFFFFF; --cta-btn-fg:#004AAD; --cta-btn-bg-h:#E7EEFA;
  --shadow:0 1px 2px rgba(11,20,36,.05), 0 12px 32px -18px rgba(11,20,36,.30);
  --shadow-s:0 1px 2px rgba(11,20,36,.06);
  --max:1180px; --r:4px; --r-l:8px;
  --f-display:"Bricolage Grotesque", ui-sans-serif, system-ui, sans-serif;
  --f-body:"Source Sans 3", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --f-mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#080D16; --surface:#0E1626; --surface-2:#141F33; --surface-3:#1B2941;
    --ink:#E9EEF6; --ink-2:#9AA8BE; --ink-3:#6C7A92;
    --line:#1D2A40; --line-2:#2C3E5C;
    --brand:#5C9CFF; --brand-2:#8FBCFF; --brand-3:#7FB0FF; --brand-soft:#11223D;
    --ok:#45C79A; --ok-soft:#0E2B22;
    --warn:#E5A852; --warn-soft:#2C2312;
    --risk:#F0776C; --risk-soft:#2E1614;
    --on-brand:#04101F;
    --cta-bg:#101E33; --cta-fg:#E9EEF6; --cta-btn-bg:#5C9CFF; --cta-btn-fg:#04101F; --cta-btn-bg-h:#8FBCFF;
    --shadow:0 1px 2px rgba(0,0,0,.45), 0 16px 40px -20px rgba(0,0,0,.85);
    --shadow-s:0 1px 2px rgba(0,0,0,.5);
  }
}
:root[data-theme="dark"]{
  --paper:#080D16; --surface:#0E1626; --surface-2:#141F33; --surface-3:#1B2941;
  --ink:#E9EEF6; --ink-2:#9AA8BE; --ink-3:#6C7A92;
  --line:#1D2A40; --line-2:#2C3E5C;
  --brand:#5C9CFF; --brand-2:#8FBCFF; --brand-3:#7FB0FF; --brand-soft:#11223D;
  --ok:#45C79A; --ok-soft:#0E2B22;
  --warn:#E5A852; --warn-soft:#2C2312;
  --risk:#F0776C; --risk-soft:#2E1614;
  --on-brand:#04101F;
  --cta-bg:#101E33; --cta-fg:#E9EEF6; --cta-btn-bg:#5C9CFF; --cta-btn-fg:#04101F; --cta-btn-bg-h:#8FBCFF;
  --shadow:0 1px 2px rgba(0,0,0,.45), 0 16px 40px -20px rgba(0,0,0,.85);
  --shadow-s:0 1px 2px rgba(0,0,0,.5);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0; background:var(--paper); color:var(--ink); font-family:var(--f-body); font-size:17px; line-height:1.62; -webkit-font-smoothing:antialiased}
img,svg{max-width:100%}
img{display:block; height:auto}
a{color:inherit}
h1,h2,h3,h4{font-family:var(--f-display); font-weight:600; line-height:1.07; letter-spacing:-.022em; margin:0; text-wrap:balance}
p{margin:0}
:focus-visible{outline:2px solid var(--brand); outline-offset:3px; border-radius:2px}
::selection{background:var(--brand); color:var(--on-brand)}

.wrap{max-width:var(--max); margin:0 auto; padding:0 24px}
.wrap-n{max-width:860px; margin:0 auto; padding:0 24px}
.mono{font-family:var(--f-mono)}
.num{font-variant-numeric:tabular-nums}
.eyebrow{font-family:var(--f-mono); font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-3); margin:0}
.lead{font-size:19px; color:var(--ink-2); max-width:60ch}
.muted{color:var(--ink-2)}
.center{text-align:center}
.icon{width:22px; height:22px; stroke:currentColor; fill:none; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; flex:none}
.icon-l{width:28px; height:28px}

/* ---------------- header ---------------- */
.hdr{position:sticky; top:0; z-index:60; background:color-mix(in srgb, var(--paper) 95%, transparent); backdrop-filter:blur(12px); border-bottom:1px solid var(--line)}
.hdr-in{max-width:var(--max); margin:0 auto; padding:0 24px; height:68px; display:flex; align-items:center; gap:26px}
.logo{display:flex; align-items:center; gap:10px; text-decoration:none; flex:none}
.logo-mark{width:42px; height:42px; border-radius:50%; display:block; flex:none}
.logo-txt{display:flex; flex-direction:column; line-height:1.05}
.logo-txt b{font-family:var(--f-display); font-size:16px; font-weight:600; letter-spacing:-.02em}
.logo-txt span{font-family:var(--f-mono); font-size:9.5px; letter-spacing:.13em; text-transform:uppercase; color:var(--ink-3)}
.nav{display:flex; gap:22px; margin-left:auto; align-items:center}
.nav a{text-decoration:none; font-size:15px; color:var(--ink-2); padding:4px 0; border-bottom:1px solid transparent; transition:color .18s, border-color .18s; white-space:nowrap}
.nav a:hover,.nav a.on{color:var(--ink); border-color:var(--brand)}
.nav .btn{border-bottom:0}
.menu-btn{display:none; margin-left:auto; background:none; border:1px solid var(--line-2); border-radius:var(--r); padding:8px 12px; color:var(--ink); font-family:var(--f-mono); font-size:12px; cursor:pointer}
@media(max-width:1040px){
  .nav{display:none}
  .nav.open{display:flex; position:absolute; top:68px; left:0; right:0; flex-direction:column; align-items:stretch; gap:0; background:var(--surface); border-bottom:1px solid var(--line); padding:8px 24px 20px; max-height:calc(100vh - 68px); overflow:auto}
  .nav.open a{padding:12px 0; border-bottom:1px solid var(--line)}
  .nav.open .btn{margin-top:14px; justify-content:center}
  .menu-btn{display:block}
}

/* ---------------- buttons ---------------- */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; font-family:var(--f-body); font-weight:600; font-size:15px; text-decoration:none; padding:11px 20px; border-radius:var(--r); border:1px solid transparent; cursor:pointer; transition:transform .15s, background .18s, border-color .18s; line-height:1.2}
.btn-primary{background:var(--brand); color:var(--on-brand); border-color:var(--brand)}
.btn-primary:hover{background:var(--brand-2); border-color:var(--brand-2); transform:translateY(-1px)}
.btn-ghost{border-color:var(--line-2); color:var(--ink); background:transparent}
.btn-ghost:hover{border-color:var(--ink-3); transform:translateY(-1px)}
.btn-row{display:flex; gap:12px; flex-wrap:wrap}

/* ---------------- sections ---------------- */
.sec{border-top:1px solid var(--line); padding:84px 0}
.sec-plain{padding:84px 0}
.sec-head{display:grid; grid-template-columns:170px 1fr; gap:40px; margin-bottom:52px}
.sec-head h2{font-size:clamp(29px,4.1vw,42px)}
.sec-head p{color:var(--ink-2); max-width:60ch; margin-top:16px; font-size:18px}
@media(max-width:820px){.sec-head{grid-template-columns:1fr; gap:14px} .sec,.sec-plain{padding:60px 0}}

/* page hero */
.phero{padding:64px 0 56px; border-bottom:1px solid var(--line)}
.phero h1{font-size:clamp(34px,5.4vw,60px); letter-spacing:-.032em; margin:18px 0 0; max-width:20ch}
.phero .lead{margin-top:22px}
.phero .btn-row{margin-top:30px}
.crumb{font-family:var(--f-body); font-size:14.5px; color:var(--ink-3); letter-spacing:0}
.crumb a{text-decoration:none; color:var(--ink-3)}
.crumb a:hover{color:var(--brand)}

/* ============================================================
   VISUAL LAW COMPONENTS
   ============================================================ */

/* legend */
.vl-legend{display:flex; gap:20px; flex-wrap:wrap; align-items:center; font-family:var(--f-mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-3); padding:14px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); margin-bottom:32px}
.vl-legend span{display:inline-flex; align-items:center; gap:7px}
.sw{width:11px; height:11px; border-radius:2px; display:inline-block}
.sw-brand{background:var(--brand)} .sw-ok{background:var(--ok)} .sw-warn{background:var(--warn)} .sw-risk{background:var(--risk)} .sw-line{background:var(--line-2)}

/* callouts */
.vl-note{display:grid; grid-template-columns:auto 1fr; gap:16px; padding:20px 22px; border-radius:var(--r); border-left:3px solid var(--brand); background:var(--brand-soft); color:var(--ink); margin:28px 0}
.vl-note h4{font-family:var(--f-mono); font-size:11px; letter-spacing:.13em; text-transform:uppercase; font-weight:500; color:var(--brand); margin-bottom:6px}
.vl-note p{font-size:16px; color:var(--ink-2)}
.vl-note .icon{color:var(--brand); margin-top:2px}
.vl-note.warn{border-left-color:var(--warn); background:var(--warn-soft)} .vl-note.warn h4,.vl-note.warn .icon{color:var(--warn)}
.vl-note.risk{border-left-color:var(--risk); background:var(--risk-soft)} .vl-note.risk h4,.vl-note.risk .icon{color:var(--risk)}
.vl-note.ok{border-left-color:var(--ok); background:var(--ok-soft)} .vl-note.ok h4,.vl-note.ok .icon{color:var(--ok)}

/* resumo box */
.vl-tldr{border:1px solid var(--line); border-left:3px solid var(--brand); background:var(--surface); border-radius:var(--r); padding:26px 28px; margin:0 0 44px}
.vl-tldr h4{font-family:var(--f-mono); font-size:11px; letter-spacing:.13em; text-transform:uppercase; font-weight:500; color:var(--brand); margin-bottom:14px}
.vl-tldr ul{margin:0; padding:0; list-style:none; display:grid; gap:10px}
.vl-tldr li{position:relative; padding-left:20px; font-size:16.5px; color:var(--ink-2)}
.vl-tldr li::before{content:""; position:absolute; left:0; top:10px; width:6px; height:6px; border-radius:50%; background:var(--brand)}
.vl-tldr li b{color:var(--ink)}

/* flow (fluxograma horizontal) */
.vl-flow{display:grid; grid-auto-flow:column; grid-auto-columns:1fr; gap:0; border:1px solid var(--line); border-radius:var(--r); background:var(--surface); overflow:hidden}
.vl-flow .fnode{padding:26px 24px; border-right:1px solid var(--line); position:relative; display:flex; flex-direction:column; gap:9px}
.vl-flow .fnode:last-child{border-right:0}
.vl-flow .fnode::after{content:""; position:absolute; right:-7px; top:50%; width:12px; height:12px; border-top:1.5px solid var(--line-2); border-right:1.5px solid var(--line-2); transform:translateY(-50%) rotate(45deg); background:var(--surface); z-index:2}
.vl-flow .fnode:last-child::after{display:none}
.fstep{font-family:var(--f-mono); font-size:10.5px; letter-spacing:.12em; color:var(--brand)}
.fnode b{font-family:var(--f-display); font-size:17px; font-weight:600; letter-spacing:-.015em}
.fnode p{font-size:15px; color:var(--ink-2)}
.fmeta{margin-top:auto; padding-top:10px; font-family:var(--f-mono); font-size:10.5px; letter-spacing:.06em; color:var(--ink-3); text-transform:uppercase}
@media(max-width:900px){
  .vl-flow{grid-auto-flow:row; grid-auto-columns:auto}
  .vl-flow .fnode{border-right:0; border-bottom:1px solid var(--line)}
  .vl-flow .fnode:last-child{border-bottom:0}
  .vl-flow .fnode::after{right:auto; left:50%; top:auto; bottom:-7px; transform:translateX(-50%) rotate(135deg)}
}

/* swimlane (quem faz o quê) */
.vl-swim{border:1px solid var(--line); border-radius:var(--r); overflow:hidden; background:var(--surface)}
.swim-row{display:grid; grid-template-columns:120px 1fr 1fr; border-bottom:1px solid var(--line)}
.swim-row:last-child{border-bottom:0}
.swim-row.head{background:var(--surface-2)}
.swim-row.head div{font-family:var(--f-mono); font-size:10.5px; letter-spacing:.13em; text-transform:uppercase; color:var(--ink-3); padding:13px 20px}
.swim-row > div{padding:20px; border-right:1px solid var(--line)}
.swim-row > div:last-child{border-right:0}
.swim-when{font-family:var(--f-mono); font-size:11px; letter-spacing:.08em; color:var(--brand); text-transform:uppercase}
.swim-cell b{display:block; font-family:var(--f-display); font-size:16px; font-weight:600; margin-bottom:5px}
.swim-cell p{font-size:15px; color:var(--ink-2)}
.swim-cell.empty{background:repeating-linear-gradient(135deg, transparent, transparent 7px, var(--surface-2) 7px, var(--surface-2) 8px)}
.swim-cell.mine{background:var(--brand-soft)}
@media(max-width:760px){.swim-row{grid-template-columns:1fr} .swim-row > div{border-right:0; border-bottom:1px solid var(--line)} .swim-row.head{display:none}}

/* timeline vertical */
.vl-time{position:relative; padding-left:34px; display:grid; gap:34px}
.vl-time::before{content:""; position:absolute; left:9px; top:8px; bottom:8px; width:1.5px; background:var(--line-2)}
.tnode{position:relative}
.tnode::before{content:""; position:absolute; left:-34px; top:6px; width:19px; height:19px; border-radius:50%; background:var(--surface); border:1.5px solid var(--line-2)}
.tnode.on::before{border-color:var(--brand); background:var(--brand); box-shadow:0 0 0 4px var(--brand-soft)}
.tnode .tyear{font-family:var(--f-mono); font-size:11.5px; letter-spacing:.12em; color:var(--brand); text-transform:uppercase}
.tnode b{display:block; font-family:var(--f-display); font-size:19px; font-weight:600; letter-spacing:-.015em; margin:6px 0 7px}
.tnode p{color:var(--ink-2); font-size:16px; max-width:62ch}

/* ciclo mensal (barra de dias) */
.vl-cycle{border:1px solid var(--line); border-radius:var(--r); background:var(--surface); overflow:hidden}
.cyc-head{display:flex; justify-content:space-between; align-items:center; padding:14px 20px; border-bottom:1px solid var(--line); background:var(--surface-2); font-family:var(--f-mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-3)}
.cyc-grid{display:grid; grid-template-columns:repeat(4,1fr)}
.cyc{padding:24px 22px; border-right:1px solid var(--line); display:flex; flex-direction:column; gap:8px}
.cyc:last-child{border-right:0}
.cyc .day{font-family:var(--f-mono); font-size:24px; font-weight:500; color:var(--brand); letter-spacing:-.02em; font-variant-numeric:tabular-nums}
.cyc b{font-family:var(--f-display); font-size:16px; font-weight:600}
.cyc p{font-size:14.5px; color:var(--ink-2)}
.cyc .who{margin-top:auto; padding-top:12px; font-family:var(--f-mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase}
.who.us{color:var(--brand)} .who.you{color:var(--warn)}
@media(max-width:900px){.cyc-grid{grid-template-columns:1fr 1fr} .cyc:nth-child(2n){border-right:0}}
@media(max-width:520px){.cyc-grid{grid-template-columns:1fr} .cyc{border-right:0; border-bottom:1px solid var(--line)}}

/* tabela comparativa */
.vl-tablewrap{overflow-x:auto; border:1px solid var(--line); border-radius:var(--r); background:var(--surface)}
table.vl{width:100%; border-collapse:collapse; min-width:660px; font-size:15.5px}
table.vl th, table.vl td{padding:15px 18px; text-align:left; border-bottom:1px solid var(--line); border-right:1px solid var(--line); vertical-align:top}
table.vl th:last-child, table.vl td:last-child{border-right:0}
table.vl thead th{background:var(--surface-2); font-family:var(--f-mono); font-size:11px; letter-spacing:.11em; text-transform:uppercase; color:var(--ink-3); font-weight:400; white-space:nowrap}
table.vl tbody th{font-family:var(--f-body); font-weight:600; font-size:15px; color:var(--ink); width:210px; background:var(--surface-2)}
table.vl td{color:var(--ink-2)}
table.vl tr:last-child th, table.vl tr:last-child td{border-bottom:0}
table.vl .hi{background:var(--brand-soft); color:var(--ink)}
table.vl .n{font-family:var(--f-mono); font-variant-numeric:tabular-nums; white-space:nowrap}
.pill{display:inline-flex; align-items:center; gap:5px; font-family:var(--f-mono); font-size:10.5px; letter-spacing:.06em; text-transform:uppercase; padding:3px 9px; border-radius:99px; white-space:nowrap}
.pill-ok{color:var(--ok); background:var(--ok-soft)}
.pill-warn{color:var(--warn); background:var(--warn-soft)}
.pill-risk{color:var(--risk); background:var(--risk-soft)}
.pill-brand{color:var(--brand); background:var(--brand-soft)}

/* árvore de decisão */
.vl-tree{display:grid; gap:0; border:1px solid var(--line); border-radius:var(--r); overflow:hidden; background:var(--surface)}
.qrow{display:grid; grid-template-columns:56px 1fr; border-bottom:1px solid var(--line)}
.qrow:last-child{border-bottom:0}
.qn{display:grid; place-items:center; background:var(--surface-2); border-right:1px solid var(--line); font-family:var(--f-mono); font-size:13px; color:var(--brand); font-weight:500}
.qbody{padding:22px 24px}
.qbody > b{display:block; font-family:var(--f-display); font-size:18px; font-weight:600; letter-spacing:-.015em; margin-bottom:14px}
.qopts{display:grid; grid-template-columns:1fr 1fr; gap:12px}
.qopt{border:1px solid var(--line); border-radius:var(--r); padding:14px 16px; background:var(--paper)}
.qopt em{display:block; font-style:normal; font-family:var(--f-mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-3); margin-bottom:6px}
.qopt span{font-size:15px; color:var(--ink-2)}
.qopt.go{border-color:var(--brand); background:var(--brand-soft)}
.qopt.go em{color:var(--brand)}
@media(max-width:620px){
  .qopts{grid-template-columns:1fr}
  .qrow{grid-template-columns:1fr}
  .qn{border-right:0; border-bottom:1px solid var(--line); place-items:center start; padding:10px 24px}
  .qbody{padding:20px 24px}
}

/* barras / faixas */
.vl-bars{display:grid; gap:14px}
.bar{display:grid; grid-template-columns:180px 1fr 76px; align-items:center; gap:16px}
.bar span:first-child{font-size:15px; color:var(--ink-2)}
.bar .track{height:10px; border-radius:99px; background:var(--surface-3); overflow:hidden}
.bar .fill{height:100%; border-radius:99px; background:var(--brand)}
.bar .val{font-family:var(--f-mono); font-size:13px; text-align:right; font-variant-numeric:tabular-nums; color:var(--ink)}
@media(max-width:640px){.bar{grid-template-columns:1fr 66px; } .bar .track{grid-column:1/3}}

/* checklist */
.vl-check{display:grid; gap:0; border:1px solid var(--line); border-radius:var(--r); background:var(--surface)}
.vl-check li{list-style:none; display:grid; grid-template-columns:auto 1fr; gap:14px; padding:16px 20px; border-bottom:1px solid var(--line); align-items:start}
.vl-check li:last-child{border-bottom:0}
.vl-check ul{margin:0; padding:0}
.vl-check .icon{color:var(--ok); margin-top:3px}
.vl-check b{display:block; font-weight:600; font-size:16px}
.vl-check p{font-size:15px; color:var(--ink-2); margin-top:2px}

/* cards grid */
.grid-3{display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line)}
.grid-2{display:grid; grid-template-columns:repeat(2,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line)}
.cell{border-right:1px solid var(--line); border-bottom:1px solid var(--line); padding:30px 28px 34px; background:var(--surface); transition:background .2s}
.cell:hover{background:var(--surface-2)}
.cell .icon{color:var(--brand)}
.cell h3{font-size:20px; margin:14px 0 10px}
.cell p{color:var(--ink-2); font-size:16px}
.cell ul.tags{margin:14px 0 0; padding:0; list-style:none; display:flex; flex-wrap:wrap; gap:6px}
.cell ul.tags li{font-family:var(--f-mono); font-size:10.5px; letter-spacing:.05em; color:var(--ink-3); border:1px solid var(--line); border-radius:99px; padding:3px 9px}
.cell-n{font-family:var(--f-mono); font-size:11px; color:var(--brand); letter-spacing:.1em}
@media(max-width:900px){.grid-3{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.grid-3,.grid-2{grid-template-columns:1fr}}

/* kpi */
.vl-kpi{display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--line); border-radius:var(--r); background:var(--surface); overflow:hidden}
.kpi{padding:26px 24px; border-right:1px solid var(--line)}
.kpi:last-child{border-right:0}
.kpi b{display:block; font-family:var(--f-display); font-size:34px; font-weight:600; letter-spacing:-.03em; color:var(--brand); font-variant-numeric:tabular-nums; line-height:1}
.kpi > span{display:block; margin-top:9px; font-family:var(--f-mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-3)}
.kpi b span{display:inline; font-family:inherit; letter-spacing:inherit; text-transform:none; color:inherit; margin:0}
@media(max-width:820px){.vl-kpi{grid-template-columns:1fr 1fr} .kpi:nth-child(2n){border-right:0} .kpi:nth-child(-n+2){border-bottom:1px solid var(--line)}}

/* painel demo */
.panel{background:var(--surface); border:1px solid var(--line); border-radius:var(--r); box-shadow:var(--shadow); overflow:hidden}
.panel-top{display:flex; align-items:center; justify-content:space-between; padding:13px 18px; border-bottom:1px solid var(--line); background:var(--surface-2)}
.panel-top span{font-family:var(--f-mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-2)}
.dot{width:7px; height:7px; border-radius:50%; background:var(--ok); display:inline-block; margin-right:7px; vertical-align:middle}
.row{display:grid; grid-template-columns:1fr auto; align-items:center; gap:16px; padding:14px 18px; border-bottom:1px solid var(--line)}
.row:last-child{border-bottom:0}
.row-l{display:flex; flex-direction:column; gap:2px; min-width:0}
.row-l b{font-weight:600; font-size:15px; letter-spacing:-.01em}
.row-l small{font-family:var(--f-mono); font-size:11px; color:var(--ink-3); letter-spacing:.04em}

/* tape */
.tape{border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--surface); overflow:hidden}
.tape-track{display:flex; width:max-content; animation:slide 48s linear infinite}
.tape:hover .tape-track{animation-play-state:paused}
@keyframes slide{from{transform:translateX(0)} to{transform:translateX(-50%)}}
.tape-item{display:flex; align-items:baseline; gap:10px; padding:14px 26px; border-right:1px solid var(--line); white-space:nowrap}
.tape-item i{font-style:normal; font-family:var(--f-mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-3)}
.tape-item b{font-family:var(--f-mono); font-weight:500; font-size:13px; color:var(--ink); font-variant-numeric:tabular-nums}
@media(prefers-reduced-motion:reduce){.tape-track{animation:none} .tape{overflow-x:auto}}

/* faq */
.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer; list-style:none; padding:22px 44px 22px 0; position:relative; font-family:var(--f-display); font-size:19px; font-weight:500; letter-spacing:-.015em}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+"; position:absolute; right:6px; top:19px; font-family:var(--f-mono); font-size:21px; color:var(--brand); transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{padding:0 60px 24px 0; color:var(--ink-2); max-width:76ch}
.faq details p + p{padding-top:14px}

/* quote */
.vl-quote{display:grid; grid-template-columns:170px 1fr; gap:40px}
.vl-quote blockquote{margin:0; font-family:var(--f-display); font-size:clamp(21px,2.7vw,29px); line-height:1.34; letter-spacing:-.02em; font-weight:500}
.vl-quote cite{display:block; margin-top:22px; font-style:normal; font-family:var(--f-mono); font-size:12px; letter-spacing:.06em; color:var(--ink-3)}
@media(max-width:820px){.vl-quote{grid-template-columns:1fr; gap:14px}}

/* cta */
.cta{background:var(--cta-bg); color:var(--cta-fg); border-radius:var(--r); padding:56px 48px; display:grid; grid-template-columns:1.2fr .8fr; gap:44px; align-items:center}
.cta h2{font-size:clamp(27px,3.5vw,37px); color:inherit}
.cta p{margin-top:14px; opacity:.9; font-size:17.5px}
.cta .btn-row{margin-top:28px}
.cta .btn-primary{background:var(--cta-btn-bg); color:var(--cta-btn-fg); border-color:var(--cta-btn-bg)}
.cta .btn-primary:hover{background:var(--cta-btn-bg-h); border-color:var(--cta-btn-bg-h)}
.cta .btn-ghost{border-color:color-mix(in srgb, currentColor 40%, transparent); color:inherit}
.cta .btn-ghost:hover{border-color:currentColor}
.cta-list{display:flex; flex-direction:column; gap:12px; font-family:var(--f-mono); font-size:13px; letter-spacing:.03em}
.cta-list a{text-decoration:none; opacity:.92; border-bottom:1px solid color-mix(in srgb, currentColor 30%, transparent); padding-bottom:2px; width:fit-content}
.cta-list a:hover{opacity:1}
@media(max-width:860px){.cta{grid-template-columns:1fr; padding:40px 28px; gap:30px}}

/* form */
.form{display:grid; gap:18px; border:1px solid var(--line); background:var(--surface); border-radius:var(--r); padding:30px}
.fld{display:grid; gap:7px}
.fld label{font-family:var(--f-mono); font-size:10.5px; letter-spacing:.11em; text-transform:uppercase; color:var(--ink-3)}
.fld input,.fld select,.fld textarea{font-family:var(--f-body); font-size:16px; color:var(--ink); background:var(--paper); border:1px solid var(--line-2); border-radius:var(--r); padding:11px 13px; width:100%}
.fld textarea{min-height:110px; resize:vertical}
.fld-2{display:grid; grid-template-columns:1fr 1fr; gap:18px}
@media(max-width:600px){.fld-2{grid-template-columns:1fr}}

/* footer */
.ft{border-top:1px solid var(--line); padding:56px 0 40px; background:var(--surface)}
.ft-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:36px}
.ft h4{font-family:var(--f-mono); font-size:11px; letter-spacing:.13em; text-transform:uppercase; color:var(--ink-3); font-weight:400; margin-bottom:14px}
.ft ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px}
.ft a{text-decoration:none; color:var(--ink-2); font-size:15px}
.ft a:hover{color:var(--brand)}
.ft address{font-style:normal; color:var(--ink-2); font-size:15px; margin-top:14px}
.ft-base{border-top:1px solid var(--line); margin-top:44px; padding-top:22px; display:flex; justify-content:space-between; gap:18px; flex-wrap:wrap; font-family:var(--f-mono); font-size:11.5px; color:var(--ink-3); letter-spacing:.04em}
@media(max-width:860px){.ft-grid{grid-template-columns:1fr 1fr; gap:32px}}

/* whatsapp */
.wa{position:fixed; right:20px; bottom:20px; z-index:70; width:54px; height:54px; border-radius:50%; background:#1FAF54; display:grid; place-items:center; box-shadow:0 8px 24px -6px rgba(0,0,0,.42); text-decoration:none; transition:transform .18s}
.wa:hover{transform:scale(1.07)}
.wa svg{width:28px; height:28px; fill:#fff; stroke:none}

/* reveal */
.rv{opacity:0; transform:translateY(14px); transition:opacity .55s ease, transform .55s ease}
.rv.in{opacity:1; transform:none}
@media(prefers-reduced-motion:reduce){.rv{opacity:1; transform:none; transition:none}}

/* prose (privacidade) */
.prose h2{font-size:26px; margin:44px 0 14px}
.prose h3{font-size:19px; margin:28px 0 10px}
.prose p{color:var(--ink-2); margin-bottom:14px; max-width:74ch}
.prose ul{color:var(--ink-2); max-width:74ch; padding-left:20px; margin-bottom:16px}
.prose li{margin-bottom:7px}

/* flow em grade (6+ etapas) */
.vl-flow.grid6{grid-auto-flow:row; grid-template-columns:repeat(3,1fr)}
.vl-flow.grid6 .fnode::after{display:none}
.vl-flow.grid6 .fnode{border-bottom:1px solid var(--line)}
.vl-flow.grid6 .fnode:nth-child(3n){border-right:0}
.vl-flow.grid6 .fnode:nth-last-child(-n+3){border-bottom:0}
@media(max-width:900px){
  .vl-flow.grid6{grid-template-columns:1fr}
  .vl-flow.grid6 .fnode{border-right:0; border-bottom:1px solid var(--line)}
  .vl-flow.grid6 .fnode:last-child{border-bottom:0}
}


/* ============================================================
   BANDAS ESCURAS — tokens reescopados
   ============================================================ */
.band-dark, .hdr, .ft, .cta, .phero{
  --paper:#0A1424; --surface:#101E36; --surface-2:#16264180; --surface-2:#162641; --surface-3:#1E3254;
  --ink:#EDF2FA; --ink-2:#A4B4CD; --ink-3:#74849E;
  --line:#22344F; --line-2:#31486A;
  --brand:#6BA5FF; --brand-2:#9AC2FF; --brand-3:#8AB6FF; --brand-soft:#16294A;
  --ok:#4ACB9E; --ok-soft:#0F2C23;
  --warn:#E9AE5C; --warn-soft:#302614;
  --risk:#F28075; --risk-soft:#321816;
  --on-brand:#04101F;
  --shadow:0 1px 2px rgba(0,0,0,.5), 0 22px 50px -24px rgba(0,0,0,.9);
  background-color:var(--paper); color:var(--ink);
}
/* malha técnica de fundo */
.band-dark, .phero, .cta, .ft{
  background-image:
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size:72px 72px;
  background-position:center top;
}
.band-dark, .phero{position:relative}
.band-dark::after, .phero::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(120% 90% at 78% 0%, rgba(107,165,255,.16), transparent 62%);
}
.band-dark > *, .phero > *{position:relative; z-index:1}

/* header sempre escuro */
.hdr{background:color-mix(in srgb, var(--paper) 92%, transparent); border-bottom:1px solid var(--line)}
.nav a.btn, .nav a.btn-primary{color:var(--on-brand); border-bottom:0}
.nav a.btn-primary{background:var(--brand); border-color:var(--brand)}
.nav a.btn-primary:hover{background:var(--brand-2); border-color:var(--brand-2)}


/* hero de página interna */
.phero{border-bottom:0; padding:78px 0 74px}
.phero .lead{color:var(--ink-2)}

/* CTA escura com detalhe */
.cta{border:1px solid var(--line-2); position:relative; overflow:hidden}
.cta::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(90% 120% at 100% 0%, rgba(107,165,255,.20), transparent 60%);
}
.cta > *{position:relative; z-index:1}
.cta .btn-primary{background:var(--brand); color:var(--on-brand); border-color:var(--brand)}
.cta .btn-primary:hover{background:var(--brand-2); border-color:var(--brand-2)}

/* rodapé escuro */
.ft{border-top:1px solid var(--line)}

/* rótulo de seção com régua da marca */
.sec-head .eyebrow::before{
  content:""; display:block; width:28px; height:2px; background:var(--brand); margin-bottom:13px;
}

/* detalhe: filete superior nos cartões ao passar o mouse */
.cell{position:relative}
.cell::before{
  content:""; position:absolute; left:-1px; right:-1px; top:-1px; height:2px;
  background:var(--brand); transform:scaleX(0); transform-origin:left;
  transition:transform .28s ease;
}
.cell:hover::before{transform:scaleX(1)}

/* painel do herói ganha brilho sobre a banda escura */
.band-dark .panel{box-shadow:0 1px 2px rgba(0,0,0,.5), 0 28px 60px -28px rgba(0,0,0,.95), 0 0 0 1px var(--line)}

/* fita sobre banda escura */
.band-dark .tape{background:var(--surface); border-color:var(--line)}


/* logo redonda no rodapé */
.logo-ft{display:inline-block; line-height:0}
.logo-ft img{width:96px; height:96px; border-radius:50%}
@media(max-width:860px){.logo-ft img{width:76px; height:76px}}


/* mapa incorporado */
.mapa{
  position:relative; margin-top:26px; border:1px solid var(--line); border-radius:var(--r);
  overflow:hidden; background:var(--surface-2); line-height:0; min-height:320px;
  box-shadow:var(--shadow-s);
}
.mapa-alt{
  position:absolute; inset:0; display:grid; place-items:center; align-content:center; gap:12px;
  text-align:center; padding:24px; line-height:1.5; color:var(--ink-2); font-size:15px;
}
.mapa-alt .icon{color:var(--brand)}
.mapa iframe{position:relative; z-index:1; width:100%; height:320px; border:0; display:block}
:root[data-theme="dark"] .mapa iframe{filter:grayscale(.25) contrast(.94) brightness(.86)}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .mapa iframe{filter:grayscale(.25) contrast(.94) brightness(.86)}
}
.mapa-link{
  display:inline-flex; align-items:center; gap:7px; margin-top:12px;
  font-family:var(--f-mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--brand); text-decoration:none;
}
.mapa-link:hover{color:var(--brand-2)}


/* ---------- perfil com foto ---------- */
.perfil{display:grid; grid-template-columns:340px 1fr; gap:48px; align-items:end}
.perfil-foto{
  position:relative; align-self:end; background:none; border:0; border-radius:0;
  filter:drop-shadow(0 18px 30px rgba(11,20,36,.18));
}
.perfil-foto img{position:relative; z-index:1; width:100%; height:auto; display:block}
:root[data-theme="dark"] .perfil-foto{filter:drop-shadow(0 18px 34px rgba(0,0,0,.55))}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .perfil-foto{filter:drop-shadow(0 18px 34px rgba(0,0,0,.55))}}
.perfil-texto{padding-bottom:6px}
.perfil-cols{display:grid; grid-template-columns:1fr 1fr; gap:32px; margin-top:34px}
.perfil-cols .tags{margin:0; padding:0; list-style:none; display:flex; flex-wrap:wrap; gap:6px}
.perfil-cols .tags li{font-family:var(--f-mono); font-size:10.5px; letter-spacing:.05em; color:var(--ink-3); border:1px solid var(--line); border-radius:99px; padding:3px 9px}
@media(max-width:960px){
  .perfil{grid-template-columns:1fr; gap:32px}
  .perfil-foto{max-width:300px}
}
@media(max-width:620px){.perfil-cols{grid-template-columns:1fr; gap:26px}}


/* ---------- marca d'agua: grafico da logo nas faixas escuras ---------- */
.band-dark, .phero{overflow:hidden}
.band-dark::before, .phero::before{
  content:""; position:absolute; pointer-events:none; z-index:0;
  background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20200%20200%22%20fill%3D%22none%22%20stroke%3D%22%238FBCFF%22%20stroke-width%3D%222.2%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M100%2014%20174%2052v96l-74%2038-74-38V52z%22%2F%3E%3Cpath%20d%3D%22M62%20148V108M86%20148V86M110%20148V64M134%20148V96%22%2F%3E%3Cpath%20d%3D%22M56%20140c26-6%2044-24%2056-44%209-15%2016-28%2030-38%22%2F%3E%3Cpath%20d%3D%22M128%2056h18v18%22%2F%3E%3C%2Fsvg%3E") no-repeat center/contain;
  opacity:.085;
  right:5%; bottom:9%;
  height:min(56%, 400px); width:auto; aspect-ratio:1;
}
.phero::before{
  top:50%; bottom:auto; transform:translateY(-50%);
  right:6%; height:min(74%, 380px);
}
@media(max-width:1100px){
  .band-dark::before, .phero::before{opacity:.06; height:min(46%, 260px); right:2%}
  .phero::before{height:min(60%, 260px)}
}
@media(max-width:760px){
  .band-dark::before, .phero::before{display:none}
}



/* ============================================================
   ASSISTENTE (chat interno)
   ============================================================ */
.chat{position:fixed; right:20px; bottom:20px; z-index:90; display:flex; flex-direction:column; align-items:flex-end; gap:12px}
.chat-btn{
  width:56px; height:56px; border-radius:50%; border:0; cursor:pointer; padding:0;
  background:var(--brand); display:grid; place-items:center; position:relative;
  box-shadow:0 10px 28px -8px rgba(0,0,0,.5); transition:transform .18s, background .2s;
}
.chat-btn:hover{transform:scale(1.06)}
.chat-btn svg{width:27px; height:27px; grid-area:1/1; transition:opacity .18s, transform .18s}
.chat-ico-x{opacity:0; transform:rotate(-45deg)}
.chat.aberto .chat-btn{background:#0F1D33}
.chat.aberto .chat-ico-wa{opacity:0; transform:rotate(45deg)}
.chat.aberto .chat-ico-x{opacity:1; transform:none}

/* fechado por padrão: só aparece quando .chat tem a classe .aberto */
.chat-box{display:none}
.chat-box[hidden]{display:none !important}
.chat.aberto .chat-box{display:flex}
.chat-box{
  width:min(360px, calc(100vw - 32px));
  flex-direction:column; max-height:min(560px, calc(100vh - 130px));
  background:var(--surface); border:1px solid var(--line); border-radius:12px;
  box-shadow:0 26px 64px -22px rgba(0,0,0,.55); overflow:hidden;
  animation:chatIn .22s ease;
}
@keyframes chatIn{from{opacity:0; transform:translateY(10px) scale(.98)} to{opacity:1; transform:none}}
@media(prefers-reduced-motion:reduce){.chat-box{animation:none}}

.chat-top{
  display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:11px; flex:none;
  padding:13px 14px; background:#0A1424; color:#EDF2FA; border-bottom:1px solid #22344F;
}
.chat-top img{border-radius:50%; display:block}
.chat-id b{display:block; font-family:var(--f-display); font-size:15px; font-weight:600; letter-spacing:-.01em}
.chat-id span{display:flex; align-items:center; gap:6px; font-family:var(--f-mono); font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:#8FA3C0}
.chat-on{width:6px; height:6px; border-radius:50%; background:#3ECF8E; display:inline-block}
.chat-x{background:none; border:0; color:#8FA3C0; font-size:24px; line-height:1; cursor:pointer;
  width:38px; height:38px; border-radius:50%; display:grid; place-items:center; margin:-4px -6px -4px 0;
  transition:background .16s, color .16s}
.chat-x:hover{color:#EDF2FA; background:rgba(255,255,255,.10)}

.chat-thread{flex:1 1 auto; overflow-y:auto; padding:16px 14px 6px; display:flex; flex-direction:column; gap:9px; scroll-behavior:smooth}
.cb{max-width:88%; padding:11px 14px; font-size:14.8px; line-height:1.5; border-radius:14px; animation:cbIn .2s ease}
@keyframes cbIn{from{opacity:0; transform:translateY(6px)} to{opacity:1; transform:none}}
@media(prefers-reduced-motion:reduce){.cb{animation:none}}
.cb-bot{align-self:flex-start; background:var(--surface-2); border:1px solid var(--line); color:var(--ink-2); border-bottom-left-radius:4px}
.cb-eu{align-self:flex-end; background:var(--brand); color:var(--on-brand); border-bottom-right-radius:4px; font-weight:500}
.cb-dig{display:flex; gap:5px; align-items:center; padding:14px}
.cb-dig i{width:6px; height:6px; border-radius:50%; background:var(--ink-3); animation:dig 1.1s infinite}
.cb-dig i:nth-child(2){animation-delay:.16s}
.cb-dig i:nth-child(3){animation-delay:.32s}
@keyframes dig{0%,60%,100%{opacity:.3; transform:translateY(0)} 30%{opacity:1; transform:translateY(-3px)}}

.chat-ops{flex:none; display:flex; flex-direction:column; gap:7px; padding:10px 14px 4px; max-height:210px; overflow-y:auto}
.chat-ops button{
  text-align:left; font-family:var(--f-body); font-size:14.3px; font-weight:500; color:var(--brand);
  background:transparent; border:1px solid var(--line-2); border-radius:99px; padding:8px 15px;
  cursor:pointer; transition:background .16s, border-color .16s, transform .16s;
}
.chat-ops button:hover{background:var(--brand-soft); border-color:var(--brand); transform:translateX(2px)}
.chat-ops button.op-destaque{background:var(--brand); border-color:var(--brand); color:var(--on-brand); font-weight:600}
.chat-ops button.op-destaque:hover{background:var(--brand-2); border-color:var(--brand-2)}
.chat-ops button.op-wa{background:#1FAF54; border-color:#1FAF54; color:#fff}
.chat-ops button.op-wa:hover{background:#199A48; border-color:#199A48}

.chat-pe{
  flex:none; display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:11px 14px 13px; font-size:11px; color:var(--ink-3); border-top:1px solid var(--line); margin-top:8px;
}
.chat-reset{background:none; border:0; padding:0; cursor:pointer; color:var(--brand); font-family:var(--f-body); font-size:12px; text-decoration:underline}
@media(max-width:520px){.chat{right:14px; bottom:14px} .chat-box{max-height:calc(100vh - 110px)}}

/* ============================================================
   NOTÍCIAS
   ============================================================ */
.noticias{display:grid; gap:0; border-top:1px solid var(--line)}
.nt{
  display:block; text-decoration:none; padding:28px 0 30px; border-bottom:1px solid var(--line);
  position:relative; transition:padding-left .2s;
}
.nt:hover{padding-left:12px}
.nt-meta{display:flex; align-items:center; gap:12px; margin-bottom:11px}
.nt-meta time{font-family:var(--f-mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-3)}
.nt-fonte{font-family:var(--f-mono); font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-3)}
.nt-fonte::before{content:"· "}
.nt h3{font-size:clamp(20px,2.4vw,26px); margin-bottom:10px; color:var(--ink)}
.nt:hover h3{color:var(--brand)}
.nt p{color:var(--ink-2); font-size:16.5px; max-width:76ch}
.nt-ler{
  display:inline-block; margin-top:14px; font-family:var(--f-mono); font-size:11px;
  letter-spacing:.12em; text-transform:uppercase; color:var(--brand);
}
.nt-ler::after{content:" →"}
.nt-carregando{padding:28px 0}
