/* ============================================================
   MEFS — Site institucional · folha de estilo compartilhada
   Fase 3 · derivada de design-system/tokens/tokens.css
   ============================================================ */
* { box-sizing:border-box; margin:0; padding:0; }

:root {
  --font-display:'Playfair Display','Didot','Bodoni 72',Georgia,'Times New Roman',serif;
  --font-sans:-apple-system,BlinkMacSystemFont,'Helvetica Neue',Helvetica,Arial,sans-serif;
  --font-mono:'SF Mono',ui-monospace,'IBM Plex Mono',Menlo,Consolas,monospace;
  --navy-50:#EEF1F6; --navy-100:#D6DEEA; --navy-200:#AEC0D6; --navy-300:#7E97BC; --navy-400:#4E6C9C;
  --navy-500:#2E4E7E; --navy-600:#1D3A64; --navy-700:#142C4E; --navy-800:#0A1D3B; --navy-900:#071426; --navy-950:#040D19;
  --emerald-50:#E7F5F0; --emerald-100:#C6E9DC; --emerald-400:#2FA07E; --emerald-500:#12876A; --emerald-600:#0E6E56; --emerald-bright:#2FB894;
  --neutral-0:#FFFFFF; --paper:#F4F2EA; --neutral-100:#EEF0F3; --neutral-200:#E1E5EA; --neutral-300:#CBD2DB;
  --neutral-400:#9AA5B4; --neutral-500:#6B7789; --neutral-600:#4A566B;
  --radius-sm:4px; --radius-md:8px; --radius-lg:14px; --radius-full:9999px;
  --shadow-md:0 8px 24px rgba(10,29,59,0.10); --shadow-lg:0 24px 60px rgba(10,29,59,0.16);
  --content:1160px; --ease:cubic-bezier(0.22,1,0.36,1);

  --color-bg:var(--paper); --color-surface:var(--neutral-0); --color-surface-2:var(--neutral-100);
  --color-text:var(--navy-800); --color-text-soft:var(--neutral-600); --color-text-faint:var(--neutral-400);
  --color-border:rgba(10,29,59,0.12); --color-border-strong:var(--neutral-300);
  --color-accent:var(--emerald-500); --color-accent-hover:var(--emerald-600); --color-on-accent:#fff;
  --color-focus:var(--emerald-500); --color-link:var(--emerald-600);
}
@media (prefers-color-scheme:dark){ :root{
  --color-bg:var(--navy-950); --color-surface:var(--navy-900); --color-surface-2:#0B1B33;
  --color-text:#EDF1F7; --color-text-soft:#A6B2C6; --color-text-faint:#6C7A91;
  --color-border:rgba(255,255,255,0.13); --color-border-strong:rgba(255,255,255,0.24);
  --color-accent:var(--emerald-bright); --color-accent-hover:#52C7A9; --color-on-accent:var(--navy-900);
  --color-focus:var(--emerald-bright); --color-link:var(--emerald-bright); } }
:root[data-theme="dark"]{
  --color-bg:var(--navy-950); --color-surface:var(--navy-900); --color-surface-2:#0B1B33;
  --color-text:#EDF1F7; --color-text-soft:#A6B2C6; --color-text-faint:#6C7A91;
  --color-border:rgba(255,255,255,0.13); --color-border-strong:rgba(255,255,255,0.24);
  --color-accent:var(--emerald-bright); --color-accent-hover:#52C7A9; --color-on-accent:var(--navy-900);
  --color-focus:var(--emerald-bright); --color-link:var(--emerald-bright); }
:root[data-theme="light"]{
  --color-bg:var(--paper); --color-surface:var(--neutral-0); --color-surface-2:var(--neutral-100);
  --color-text:var(--navy-800); --color-text-soft:var(--neutral-600); --color-text-faint:var(--neutral-400);
  --color-border:rgba(10,29,59,0.12); --color-border-strong:var(--neutral-300);
  --color-accent:var(--emerald-500); --color-accent-hover:var(--emerald-600); --color-on-accent:#fff;
  --color-focus:var(--emerald-500); --color-link:var(--emerald-600); }

body { background:var(--color-bg); color:var(--color-text); font-family:var(--font-sans); font-size:16px; line-height:1.6; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
:focus-visible { outline:2px solid var(--color-focus); outline-offset:3px; border-radius:3px; }
.wrap { max-width:var(--content); margin:0 auto; padding:0 28px; }
.eyebrow { font-family:var(--font-mono); font-size:11px; letter-spacing:0.22em; text-transform:uppercase; color:var(--color-accent); font-weight:600; }

.btn { font-family:var(--font-sans); font-weight:600; font-size:15px; cursor:pointer; display:inline-flex; align-items:center; gap:9px;
       border:1px solid transparent; border-radius:var(--radius-sm); padding:0 22px; height:48px; transition:all .16s var(--ease); text-decoration:none; }
.btn:active { transform:translateY(1px); }
.btn-primary { background:var(--color-accent); color:var(--color-on-accent); }
.btn-primary:hover { background:var(--color-accent-hover); }
.btn-ghost-light { background:transparent; color:var(--paper); border-color:rgba(255,255,255,0.28); }
.btn-ghost-light:hover { border-color:var(--emerald-bright); color:var(--emerald-bright); }
.btn-outline { background:transparent; color:var(--color-text); border-color:var(--color-border-strong); }
.btn-outline:hover { border-color:var(--color-accent); color:var(--color-accent); }

/* ---------- Navbar ---------- */
.nav { position:sticky; top:0; z-index:50; background:color-mix(in srgb, var(--navy-800) 88%, transparent); backdrop-filter:blur(10px); border-bottom:1px solid rgba(255,255,255,0.1); }
.nav .row { display:flex; align-items:center; justify-content:space-between; height:70px; }
.nav .logo svg { height:26px; width:auto; display:block; }
.nav .lks { display:none; gap:30px; }
@media (min-width:900px){ .nav .lks { display:flex; } }
.nav .lks a { color:#C6D0E0; font-size:14.5px; text-decoration:none; transition:color .15s; }
.nav .lks a:hover, .nav .lks a[aria-current="page"] { color:var(--paper); }
.nav .lks a[aria-current="page"] { border-bottom:1px solid var(--emerald-bright); padding-bottom:2px; }
.nav .cta-sm { background:var(--emerald-500); color:#fff; height:40px; padding:0 16px; border-radius:var(--radius-sm); font-size:14px; font-weight:600; display:inline-flex; align-items:center; text-decoration:none; border:none; }
.nav .cta-sm:hover { background:var(--emerald-600); }
.nav .right { display:flex; align-items:center; gap:12px; }
.burger { display:none; align-items:center; justify-content:center; width:40px; height:40px; border:1px solid rgba(255,255,255,0.25); background:transparent; color:var(--paper); border-radius:var(--radius-sm); cursor:pointer; }
.burger:hover { border-color:var(--emerald-bright); }
@media (max-width:899px){ .burger { display:inline-flex; } }
.mobmenu { display:none; flex-direction:column; padding:6px 28px 22px; background:var(--navy-800); border-top:1px solid rgba(255,255,255,0.1); }
.mobmenu.open { display:flex; }
@media (min-width:900px){ .mobmenu { display:none !important; } }
.mobmenu a { color:#C6D0E0; text-decoration:none; font-size:16px; padding:14px 0; border-bottom:1px solid rgba(255,255,255,0.08); }
.mobmenu a:last-child { border-bottom:none; }
.mobmenu a:hover { color:var(--paper); }

/* ---------- Hero (home) ---------- */
.hero { background:radial-gradient(120% 130% at 22% 8%, #12315b 0%, var(--navy-800) 48%, var(--navy-900) 100%); color:var(--paper); padding:96px 0 104px; overflow:hidden; }
.hero .grid { display:grid; grid-template-columns:1fr; gap:56px; align-items:center; }
@media (min-width:940px){ .hero .grid { grid-template-columns:1.05fr 0.95fr; gap:48px; } }
.hero .eyebrow { color:var(--emerald-bright); margin-bottom:24px; }
.hero h1 { font-family:var(--font-display); font-weight:400; font-size:clamp(38px,5.2vw,60px); line-height:1.05; letter-spacing:-0.01em; text-wrap:balance; }
.hero h1 em { font-style:italic; color:var(--emerald-bright); }
.hero .sub { color:#B9C4D6; font-size:19px; line-height:1.6; max-width:52ch; margin-top:24px; }
.hero .acts { display:flex; flex-wrap:wrap; gap:14px; margin-top:36px; }
.hero .trust { margin-top:38px; padding-top:26px; border-top:1px solid rgba(255,255,255,0.12); display:flex; flex-wrap:wrap; gap:26px; font-family:var(--font-mono); font-size:12px; letter-spacing:0.04em; color:#8FA0B8; }
.hero .trust b { color:var(--paper); font-weight:400; }

/* ---------- Page hero (interno, compacto) ---------- */
.phero { background:radial-gradient(120% 140% at 25% 0%, #12315b 0%, var(--navy-800) 55%, var(--navy-900) 100%); color:var(--paper); padding:80px 0 72px; }
.phero .eyebrow { color:var(--emerald-bright); margin-bottom:20px; }
.phero h1 { font-family:var(--font-display); font-weight:400; font-size:clamp(34px,4.8vw,56px); line-height:1.06; letter-spacing:-0.01em; text-wrap:balance; max-width:18ch; }
.phero h1 em { font-style:italic; color:var(--emerald-bright); }
.phero p { color:#B9C4D6; font-size:19px; max-width:56ch; margin-top:22px; }

/* ---------- Hero panel ---------- */
.panel { background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.14); border-radius:var(--radius-lg); padding:24px; box-shadow:var(--shadow-lg); backdrop-filter:blur(6px); }
.panel .ph { display:flex; align-items:center; justify-content:space-between; margin-bottom:20px; }
.panel .ph .live { font-family:var(--font-mono); font-size:11px; letter-spacing:0.1em; color:var(--emerald-bright); display:flex; align-items:center; gap:7px; }
.panel .ph .live .dot { width:7px; height:7px; border-radius:50%; background:var(--emerald-bright); animation:beat 2.4s var(--ease) infinite; }
@keyframes beat { 0%{box-shadow:0 0 0 0 rgba(47,184,148,.5)} 70%{box-shadow:0 0 0 8px rgba(47,184,148,0)} 100%{box-shadow:0 0 0 0 rgba(47,184,148,0)} }
.panel .ph .ts { font-family:var(--font-mono); font-size:11px; color:#8FA0B8; }
.panel .big { font-family:var(--font-display); font-weight:400; font-size:44px; color:var(--paper); font-variant-numeric:tabular-nums; line-height:1; }
.panel .biglab { font-family:var(--font-mono); font-size:10.5px; letter-spacing:0.12em; text-transform:uppercase; color:#8FA0B8; margin-bottom:8px; }
.panel svg.spark { width:100%; height:56px; margin:18px 0 6px; display:block; }
.panel .rows { display:flex; flex-direction:column; gap:2px; margin-top:14px; }
.panel .r { display:flex; justify-content:space-between; align-items:center; padding:10px 0; border-top:1px solid rgba(255,255,255,0.09); font-size:13.5px; color:#C6D0E0; }
.panel .r .v { font-variant-numeric:tabular-nums; color:var(--paper); }
.chip { font-family:var(--font-mono); font-size:10px; padding:3px 8px; border-radius:var(--radius-full); border:1px solid currentColor; }
.chip.ok { color:var(--emerald-bright); } .chip.wait { color:#FBBF24; }

/* ---------- Sections ---------- */
section.band { padding:96px 0; }
.band.alt { background:var(--color-surface); border-top:1px solid var(--color-border); border-bottom:1px solid var(--color-border); }
.sec-eyebrow { margin-bottom:14px; }
h2.title { font-family:var(--font-display); font-weight:400; font-size:clamp(28px,4vw,46px); line-height:1.08; letter-spacing:-0.01em; text-wrap:balance; max-width:20ch; }
.lead { color:var(--color-text-soft); font-size:18px; max-width:60ch; margin-top:18px; }
.prose { max-width:64ch; }
.prose p { color:var(--color-text-soft); font-size:17px; margin-top:18px; }
.prose p:first-child { margin-top:0; }

.rule { display:flex; align-items:center; gap:16px; margin-bottom:30px; }
.rule .ln { width:56px; height:1px; background:var(--color-accent); }
.rule .lbl { font-family:var(--font-mono); font-size:11px; letter-spacing:0.22em; text-transform:uppercase; color:var(--color-text-faint); }

.split { display:grid; grid-template-columns:1fr; gap:22px; margin-top:44px; }
@media (min-width:800px){ .split { grid-template-columns:1fr 1fr; gap:40px; } }
.col h3 { font-size:14px; font-family:var(--font-mono); letter-spacing:0.1em; text-transform:uppercase; margin-bottom:18px; }
.col.old h3 { color:var(--color-text-faint); }
.col.new h3 { color:var(--color-accent); }
.li { display:flex; gap:12px; padding:14px 0; border-top:1px solid var(--color-border); font-size:15.5px; color:var(--color-text-soft); }
.li .mk { flex:none; width:20px; color:var(--color-text-faint); font-family:var(--font-mono); }
.col.new .li .mk { color:var(--color-accent); }
.col.new .li { color:var(--color-text); }

.pillars { display:grid; grid-template-columns:1fr; gap:20px; margin-top:52px; }
@media (min-width:760px){ .pillars { grid-template-columns:repeat(3,1fr); } }
.pill { background:var(--color-surface); border:1px solid var(--color-border); border-radius:var(--radius-md); padding:30px; transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s; }
.band.alt .pill { background:var(--color-bg); }
.pill:hover { transform:translateY(-3px); box-shadow:var(--shadow-md); border-color:var(--color-border-strong); }
.pill .ico { width:44px; height:44px; border-radius:var(--radius-sm); background:var(--emerald-50); color:var(--emerald-600); display:flex; align-items:center; justify-content:center; margin-bottom:22px; }
:root[data-theme="dark"] .pill .ico { background:rgba(47,184,148,.14); color:var(--emerald-bright); }
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .pill .ico { background:rgba(47,184,148,.14); color:var(--emerald-bright); } }
.pill h3 { font-family:var(--font-display); font-weight:400; font-size:24px; margin-bottom:10px; }
.pill p { color:var(--color-text-soft); font-size:15px; }

.steps { display:grid; grid-template-columns:1fr; gap:0; margin-top:48px; border-top:1px solid var(--color-border); }
.step { display:grid; grid-template-columns:64px 1fr; gap:22px; padding:26px 0; border-bottom:1px solid var(--color-border); align-items:start; }
@media (min-width:700px){ .step { grid-template-columns:90px 1.1fr 1.4fr; gap:36px; } }
.step .k { font-family:var(--font-mono); font-size:12px; color:var(--color-accent); padding-top:6px; }
.step h4 { font-family:var(--font-display); font-weight:400; font-size:24px; }
.step p { color:var(--color-text-soft); font-size:15px; }

.aud { display:grid; grid-template-columns:1fr; gap:16px; margin-top:48px; }
@media (min-width:680px){ .aud { grid-template-columns:repeat(2,1fr); } }
.audcard { display:flex; gap:16px; align-items:flex-start; padding:24px; border:1px solid var(--color-border); border-radius:var(--radius-md); background:var(--color-surface); }
.band.alt .audcard { background:var(--color-bg); }
.audcard .n { font-family:var(--font-display); font-size:28px; color:var(--color-accent); line-height:1; flex:none; }
.audcard b { display:block; margin-bottom:5px; font-size:16px; }
.audcard p { color:var(--color-text-soft); font-size:14.5px; }

.kpis { display:grid; grid-template-columns:1fr; gap:18px; margin-top:48px; }
@media (min-width:680px){ .kpis { grid-template-columns:repeat(3,1fr); } }
.kpi { border:1px solid var(--color-border); border-radius:var(--radius-md); padding:30px; background:var(--color-surface); }
.band.alt .kpi { background:var(--color-bg); }
.kpi .v { font-family:var(--font-display); font-weight:400; font-size:52px; line-height:1; font-variant-numeric:tabular-nums; }
.kpi .l { color:var(--color-text-soft); font-size:14.5px; margin-top:12px; }
.ph-mark { color:var(--color-accent); border-bottom:1px dashed var(--color-accent); cursor:help; }

/* ---------- Contato ---------- */
.contact { display:grid; grid-template-columns:1fr; gap:44px; margin-top:8px; }
@media (min-width:820px){ .contact { grid-template-columns:1.3fr 0.7fr; gap:56px; } }
.field { display:flex; flex-direction:column; gap:6px; margin-bottom:18px; }
.field label { font-size:13px; font-weight:600; }
.input, .select, .textarea { font-family:var(--font-sans); font-size:15px; color:var(--color-text); background:var(--color-surface);
  border:1px solid var(--color-border-strong); border-radius:var(--radius-sm); padding:0 14px; height:46px; width:100%; transition:border-color .15s, box-shadow .15s; }
.textarea { height:auto; min-height:120px; padding:12px 14px; resize:vertical; line-height:1.5; }
.input::placeholder,.textarea::placeholder { color:var(--color-text-faint); }
.input:hover,.select:hover,.textarea:hover { border-color:var(--color-text-faint); }
.input:focus,.select:focus,.textarea:focus { outline:none; border-color:var(--color-accent); box-shadow:0 0 0 3px color-mix(in srgb, var(--color-accent) 22%, transparent); }
.two-col { display:grid; grid-template-columns:1fr; gap:0 18px; }
@media (min-width:560px){ .two-col { grid-template-columns:1fr 1fr; } }
.info .item { padding:18px 0; border-top:1px solid var(--color-border); }
.info .item:first-child { border-top:none; }
.info .item .k { font-family:var(--font-mono); font-size:10.5px; letter-spacing:0.14em; text-transform:uppercase; color:var(--color-text-faint); }
.info .item .val { font-size:16px; margin-top:6px; }
.info .item .val a { color:var(--color-link); text-decoration:none; }
.tag-ph { font-family:var(--font-mono); font-size:11px; color:var(--color-text-faint); }

/* ---------- CTA / Footer ---------- */
.ctaband { background:radial-gradient(120% 130% at 30% 10%, #12315b 0%, var(--navy-800) 55%, var(--navy-900) 100%); color:var(--paper); }
.ctaband .inner { padding:88px 0; text-align:center; }
.ctaband .eyebrow { color:var(--emerald-bright); }
.ctaband h2 { font-family:var(--font-display); font-weight:400; font-size:clamp(30px,4.4vw,48px); line-height:1.08; margin:16px auto 0; max-width:20ch; text-wrap:balance; }
.ctaband p { color:#B9C4D6; margin:18px auto 30px; max-width:46ch; font-size:18px; }

footer { background:var(--navy-900); color:#A6B2C6; padding:64px 0 30px; }
footer .cols { display:grid; grid-template-columns:1fr; gap:34px; }
@media (min-width:720px){ footer .cols { grid-template-columns:2fr 1fr 1fr; } }
footer .logo svg { height:28px; margin-bottom:16px; }
footer p.desc { max-width:34ch; font-size:14.5px; color:#A6B2C6; }
footer h5 { font-family:var(--font-mono); font-size:10.5px; letter-spacing:0.16em; text-transform:uppercase; color:#6C7A91; margin-bottom:14px; }
footer a { display:block; color:#A6B2C6; font-size:14.5px; padding:4px 0; text-decoration:none; }
footer a:hover { color:var(--paper); }
footer .base { margin-top:44px; padding-top:22px; border-top:1px solid rgba(255,255,255,0.1); font-family:var(--font-mono); font-size:11.5px; color:#6C7A91; display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px; }

.reveal { opacity:0; transform:translateY(18px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.in { opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ .reveal { opacity:1; transform:none; transition:none; } .panel .ph .live .dot { animation:none; } }

/* ---------- Banner de cookies (LGPD) ---------- */
.cookiebar { position:fixed; left:16px; right:16px; bottom:16px; z-index:200; max-width:540px; margin:0 auto;
  background:var(--color-surface); color:var(--color-text-soft); border:1px solid var(--color-border-strong);
  border-radius:var(--radius-md); box-shadow:var(--shadow-lg); padding:18px 20px;
  display:flex; flex-wrap:wrap; align-items:center; gap:14px 18px; font-size:14px; line-height:1.5;
  animation:ck-in .4s var(--ease); }
@keyframes ck-in { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce){ .cookiebar { animation:none; } }
.cookiebar .ck-txt { flex:1 1 260px; }
.cookiebar a { color:var(--color-link); text-decoration:underline; text-underline-offset:2px; }
.cookiebar .ck-acts { display:flex; gap:10px; flex:0 0 auto; }
.cookiebar .ck-acts button { font-family:var(--font-sans); font-weight:600; font-size:14px; cursor:pointer;
  border-radius:var(--radius-sm); padding:9px 18px; border:1px solid transparent; transition:all .15s var(--ease); }
.cookiebar .ck-ok { background:var(--color-accent); color:var(--color-on-accent); }
.cookiebar .ck-ok:hover { background:var(--color-accent-hover); }
.cookiebar .ck-no { background:transparent; color:var(--color-text); border-color:var(--color-border-strong); }
.cookiebar .ck-no:hover { border-color:var(--color-accent); color:var(--color-accent); }
