:root {
  color-scheme: light;
  --paper: #ffffff;
  --paper-2: #f4f5f7;
  --paper-3: #eceef2;
  --card: #ffffff;
  --ink: #1f2630;
  --ink-2: #59616f;
  --ink-3: #737c8a;
  --line: #d9dee6;
  --line-strong: #c5ccd6;
  --carmine: #b8124f;
  --carmine-dark: #8f0e3d;
  --carmine-ink: #ffffff;
  --carmine-soft: #f8e8ef;
  --wine: #2a0f2e;
  --wine-2: #3d1742;
  --on-wine: #fffaff;
  --on-wine-2: #ded0e0;
  --on-wine-3: #bca8c0;
  --ok: #176b45;
  --ok-soft: #e4f3eb;
  --warn: #8a5700;
  --warn-soft: #fff1d7;
  --info: #2f559d;
  --info-soft: #e8eefb;
  --f-display: "Manrope", "Segoe UI", system-ui, sans-serif;
  --f-body: "Public Sans", "Segoe UI", system-ui, -apple-system, sans-serif;
  --f-mono: "Public Sans", "Segoe UI", system-ui, sans-serif;
  --s-xs: 0.8125rem;
  --s-sm: 0.875rem;
  --s-md: 1rem;
  --s-lg: 1.125rem;
  --s-xl: clamp(2rem, 1.5rem + 1.6vw, 2.75rem);
  --s-2xl: clamp(2.35rem, 1.65rem + 3vw, 4.35rem);
  --radius: 14px;
  --wrap: 1280px;
}

/* O tema é deliberadamente claro, mesmo que o navegador prefira dark mode. */
:root[data-theme="dark"],
:root[data-theme="light"] {
  color-scheme: light;
  --paper: #ffffff;
  --paper-2: #f4f5f7;
  --paper-3: #eceef2;
  --card: #ffffff;
  --ink: #1f2630;
  --ink-2: #59616f;
  --ink-3: #737c8a;
  --line: #d9dee6;
  --line-strong: #c5ccd6;
  --carmine: #b8124f;
  --carmine-dark: #8f0e3d;
  --carmine-ink: #ffffff;
  --carmine-soft: #f8e8ef;
  --wine: #2a0f2e;
  --wine-2: #3d1742;
  --on-wine: #fffaff;
  --on-wine-2: #ded0e0;
  --on-wine-3: #bca8c0;
  --ok: #176b45;
  --ok-soft: #e4f3eb;
  --warn: #8a5700;
  --warn-soft: #fff1d7;
  --info: #2f559d;
  --info-soft: #e8eefb;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 96px; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--f-body);
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
body::before { background: var(--paper); }
[hidden] { display: none !important; }
img { max-width: 100%; }
svg { width: 20px; height: 20px; }
a { color: inherit; }
p { margin: 0; }
ul, ol { margin-top: 0; }
button, input, select, textarea { font: inherit; }
:focus-visible { outline: 3px solid var(--carmine); outline-offset: 3px; border-radius: 6px; }

h1, h2, h3, h4 {
  margin: 0;
  color: var(--ink);
  font-family: var(--f-display);
  line-height: 1.16;
  letter-spacing: -0.028em;
  text-wrap: balance;
}
h1 { font-size: var(--s-2xl); }
h2 { font-size: var(--s-xl); }
h3 { font-size: 1.25rem; }

.container.site-container,
.site-container.wrap,
.wrap {
  width: 100%;
  max-width: var(--wrap);
  margin-inline: auto;
  padding-inline: max(28px, env(safe-area-inset-left, 0px)) max(28px, env(safe-area-inset-right, 0px));
}
section { padding-block: clamp(44px, 4.5vw, 64px); }

.skip-link {
  position: fixed;
  top: -100px;
  left: 18px;
  z-index: 100;
  padding: 12px 16px;
  background: var(--ink);
  color: #ffffff;
  font-size: 14px;
  font-weight: 700;
}
.skip-link:focus { top: 14px; }
.eyebrow {
  margin: 0;
  color: var(--carmine);
  font-family: var(--f-body);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.095em;
  line-height: 1.35;
  text-transform: uppercase;
}
.lead {
  max-width: 64ch;
  color: var(--ink-2);
  font-size: 18px;
  line-height: 1.7;
}
.mono { font-family: var(--f-mono); }
.tnum { font-variant-numeric: tabular-nums; }
.sec-head {
  display: grid;
  max-width: 840px;
  gap: 16px;
  margin-bottom: clamp(28px, 3vw, 38px);
}
.sec-head h2 { font-weight: 800; }
.sec-head .lead { max-width: 70ch; }
.section-heading { margin-bottom: 38px; }
.section-heading h2 { font-size: var(--s-xl); font-weight: 800; }

/* Botões e controles gerais */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 48px;
  padding: 13px 20px;
  border: 1px solid transparent;
  border-radius: 8px;
  font: 700 14px/1.25 var(--f-body);
  text-decoration: none;
  cursor: pointer;
  transition: background-color .2s ease, border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.btn:hover { transform: translateY(-1px); }
.btn-primary { background: var(--carmine); border-color: var(--carmine); color: var(--carmine-ink); }
.btn-primary:hover,
.btn-primary:focus-visible { background: var(--carmine-dark); border-color: var(--carmine-dark); color: #ffffff; box-shadow: 0 8px 18px rgba(184, 18, 79, .2); }
.btn-ghost { background: #ffffff; border-color: var(--line-strong); color: var(--ink); }
.btn-ghost:hover,
.btn-ghost:focus-visible { background: var(--paper-2); border-color: var(--ink-2); color: var(--ink); }
.btn svg { width: 17px; height: 17px; flex: none; }

/* Faixa de utilidade e cabeçalho */
.utility-bar {
  background: var(--paper-2);
  border-bottom: 1px solid var(--line);
  color: var(--ink-2);
  font-size: 13px;
}
.utility-bar .container { min-height: 34px; }
.utility-bar a { color: var(--ink-2); }
.utility-bar strong { color: var(--ink); font-weight: 700; }
.utility-bar a span { margin-left: 5px; }
.utility-links { display: flex; align-items: center; gap: 20px; }
.utility-whatsapp { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; white-space: nowrap; }
.utility-whatsapp svg { width: 15px; height: 15px; flex: none; color: #25d366; }
.utility-whatsapp:hover { color: var(--ink); }
.utility-links > a { white-space: nowrap; }
.utility-clic-prefixo { font-style: normal; }
@media (max-width: 380px) {
  .utility-clic-prefixo { display: none; }
}
@media (max-width: 640px) {
  .utility-bar .container > span { display: none; }
  .utility-links { width: 100%; justify-content: space-between; gap: 12px; }
}
.top {
  position: sticky;
  top: env(safe-area-inset-top, 0px);
  z-index: 50;
  background: rgba(255, 255, 255, .96);
  border-bottom: 1px solid var(--line);
  box-shadow: 0 2px 12px rgba(31, 38, 48, .04);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.top .wrap {
  position: relative;
  display: flex;
  align-items: center;
  gap: 24px;
  min-height: 82px;
}
.brand {
  display: flex;
  flex: none;
  align-items: center;
  gap: 10px;
  color: var(--ink);
  font-family: var(--f-display);
  font-size: 1.3rem;
  font-weight: 800;
  letter-spacing: -.02em;
  text-decoration: none;
}
.brand img {
  display: block;
  width: 174px;
  height: auto;
  max-height: 44px;
  object-fit: contain;
}
.brand svg { width: 34px; height: 34px; color: var(--carmine); }
.nav {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  justify-content: flex-end;
  gap: 2px;
  min-width: 0;
  margin-left: auto;
}
.nav a {
  padding: 10px 10px;
  border-radius: 7px;
  color: var(--ink-2);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.25;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
}
.nav a:hover,
.nav a:focus-visible,
.nav a.active { background: var(--carmine-soft); color: var(--carmine-dark); }
.nav a.nav-cta { display: none; }
.top > .wrap > .btn,
.top .btn { flex: none; min-height: 44px; padding: 11px 16px; font-size: 14px; }
.menu-btn {
  display: none;
  place-items: center;
  flex: none;
  width: 44px;
  height: 44px;
  margin-left: auto;
  padding: 0;
  border: 1px solid var(--line-strong);
  border-radius: 8px;
  background: #ffffff;
  color: var(--ink);
  cursor: pointer;
}

/* Hero original: texto longo à esquerda e painel de termo à direita. */
.hero {
  position: relative;
  overflow: hidden;
  padding-block: 36px 40px;
  background: linear-gradient(112deg, #ffffff 0%, #ffffff 56%, #f5f6f8 100%);
  border-bottom: 1px solid var(--line);
}
.hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(440px, .92fr);
  align-items: center;
  gap: clamp(44px, 5vw, 86px);
}
.hero-copy {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  min-width: 0;
  gap: 18px;
}
.hero-eyebrow { display: flex; align-items: center; gap: 9px; }
.status-dot { display: inline-block; width: 8px; height: 8px; flex: none; border-radius: 50%; background: var(--carmine); }
.hero h1 { max-width: 780px; font-size: clamp(2.35rem, 3.6vw, 3.6rem); font-weight: 800; letter-spacing: -.045em; }
.hero h1 em { color: var(--carmine); font-style: normal; }
.hero .lead { max-width: 61ch; }
.hero-ctas { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 3px; }
.hero-checks { display: flex; flex-wrap: wrap; gap: 18px; color: var(--ink-2); font-size: 14px; }
.hero-checks span { display: flex; align-items: center; gap: 6px; }
.hero-checks svg { width: 16px; height: 16px; color: var(--carmine); }
.hero-footnote { display: flex; align-items: center; gap: 10px; color: var(--ink-3); font-size: 13px; }
.small-line { width: 28px; height: 1px; flex: none; background: var(--line-strong); }
.badges { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 3px; }
.badge {
  display: block;
  white-space: normal;
  max-width: 100%;
  padding: 8px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--paper-2);
  color: var(--ink-2);
  font-size: 14px;
  line-height: 1.4;
}
.badge b { color: var(--ink); font-weight: 800; }
.badge svg { width: 17px; height: 17px; margin-right: 5px; vertical-align: -3px; color: var(--carmine); }
.facets { position: absolute; inset: auto -130px -180px auto; z-index: 0; width: 540px; height: 540px; opacity: .5; pointer-events: none; }
.hero > .wrap { position: relative; z-index: 1; }

/* Painel original do termo de colaboração */
.panel {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #ffffff;
  box-shadow: 0 28px 60px -28px rgba(42, 15, 46, .34), 0 3px 10px rgba(31, 38, 48, .07);
}
.panel-bar { display: flex; align-items: center; gap: 8px; padding: 13px 17px; border-bottom: 1px solid var(--line); background: var(--paper-2); }
.panel-bar .mono { min-width: 0; margin-left: 8px; overflow: hidden; color: var(--ink-2); font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.dot { width: 9px; height: 9px; flex: none; border-radius: 50%; background: var(--line-strong); }
.panel-body { display: grid; gap: 20px; padding: 24px; }
.p-head { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; gap: 14px; }
.p-head h3 { font-family: var(--f-body); font-size: 18px; font-weight: 800; letter-spacing: 0; }
.p-head small { display: block; margin-top: 4px; color: var(--ink-2); font-size: 14px; }
.chip { display: inline-flex; align-items: center; gap: 6px; padding: 6px 11px; border-radius: 999px; font-size: 14px; font-weight: 700; line-height: 1.25; white-space: nowrap; }
.chip::before { width: 7px; height: 7px; content: ""; border-radius: 50%; background: currentColor; }
.chip.ok { background: var(--ok-soft); color: var(--ok); }
.chip.warn { background: var(--warn-soft); color: var(--warn); }
.chip.info { background: var(--info-soft); color: var(--info); }
.kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.kpi { min-width: 0; padding: 15px; border: 1px solid var(--line); border-radius: 10px; background: var(--paper-2); }
.kpi span { display: block; color: var(--ink-2); font-size: 14px; line-height: 1.35; }
.kpi strong { display: block; margin-top: 5px; color: var(--ink); font-family: var(--f-display); font-size: 22px; font-weight: 800; font-variant-numeric: tabular-nums; line-height: 1.15; white-space: nowrap; }
.metas { display: grid; gap: 13px; }
.meta { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 7px 14px; color: var(--ink); font-size: 15px; }
.meta b { font-variant-numeric: tabular-nums; }
.meta .bar { grid-column: 1 / -1; height: 8px; overflow: hidden; border-radius: 99px; background: var(--paper-3); }
.meta .bar i { display: block; width: var(--w); height: 100%; border-radius: 99px; background: var(--carmine); }
.alert { display: flex; align-items: flex-start; gap: 10px; padding: 13px 14px; border-radius: 9px; background: var(--warn-soft); color: var(--ink); font-size: 14px; line-height: 1.55; }
.alert svg { width: 18px; height: 18px; flex: none; margin-top: 2px; color: var(--warn); }
.repasses { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); align-items: end; gap: 7px; height: 70px; }
.repasses i { display: block; height: var(--h); border-radius: 5px 5px 2px 2px; background: var(--carmine-soft); }
.repasses i.paid { background: var(--carmine); }
.rep-legend { display: flex; justify-content: space-between; gap: 12px; color: var(--ink-2); font-family: var(--f-body); font-size: 13px; }
.sample { color: var(--ink-3); font-size: 13px; font-style: italic; text-align: right; }

/* Números do case, logo após o hero. O escopo evita colidir com td.num/th.num. */
.numbers { padding-block: clamp(40px, 4vw, 56px); background: var(--wine); color: var(--on-wine); }
.num-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0; }
.numbers .num { display: grid; align-content: start; gap: 8px; min-width: 0; padding: 8px 24px; border-left: 1px solid rgba(255, 250, 255, .2); }
.numbers .num:first-child { padding-left: 0; border-left: 0; }
.numbers .num strong { color: var(--on-wine); font-family: var(--f-display); font-size: clamp(1.9rem, 1.1rem + 1.6vw, 2.75rem); font-weight: 800; font-variant-numeric: tabular-nums; letter-spacing: -.04em; line-height: 1.08; white-space: nowrap; }
.numbers .num span { color: var(--on-wine-2); font-size: 16px; line-height: 1.45; }
.numbers .src { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 34px; color: var(--on-wine-2); font-size: 13px; }
.numbers .src b { color: var(--on-wine); }

/* Benefícios v02 */
.proof-strip { border-bottom: 1px solid var(--line); background: #ffffff; }
.proof-strip .container { display: flex; align-items: center; justify-content: space-between; gap: 28px; padding-block: 30px; }
.proof-brand { display: flex; align-items: center; gap: 12px; }
.proof-icon { display: grid; place-items: center; width: 42px; height: 42px; flex: none; border: 1px solid var(--line); border-radius: 9px; color: var(--ink-3); }
.proof-icon svg { width: 21px; height: 21px; }
.proof-strip strong { display: block; color: var(--ink); font-size: 15px; }
.proof-strip span:not(.proof-icon) { display: block; margin-top: 3px; color: var(--ink-2); font-size: 13px; }
.proof-item { padding-left: 28px; border-left: 1px solid var(--line); }
.clients-section { padding-block: 28px; background: #ffffff; border-bottom: 1px solid var(--line); }
.clients-title { margin: 0 0 14px; color: var(--ink-3); font-size: 13px; font-weight: 700; letter-spacing: .08em; text-align: center; text-transform: uppercase; }
.clients-list { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 28px; margin: 0; padding: 0; list-style: none; }
.clients-list li { color: var(--ink-2); font-family: var(--f-display); font-size: 17px; font-weight: 700; }
.benefits-section { background: #ffffff; }
.benefit-card { height: 100%; padding: 30px; border: 1px solid var(--line); border-radius: 12px; background: var(--card); box-shadow: 0 4px 14px rgba(31, 38, 48, .035); }
.benefit-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 28px; }
.benefit-icon { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 10px; background: var(--carmine-soft); color: var(--carmine); }
.benefit-icon svg { width: 24px; height: 24px; }
.benefit-number { color: var(--ink-3); font-size: 14px; font-variant-numeric: tabular-nums; }
.benefit-card h3 { margin-bottom: 12px; font-family: var(--f-body); font-size: 20px; font-weight: 800; letter-spacing: -.02em; }
.benefit-card p { color: var(--ink-2); font-size: 16px; line-height: 1.75; }

/* Lei / exigências */
#lei, .legal-section { background: var(--paper-2); }
.duty { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: var(--line); }
.duty article { display: grid; align-content: start; gap: 11px; min-width: 0; padding: 28px; background: var(--card); }
.duty .art { color: var(--carmine-dark); font-size: 13px; font-weight: 700; }
.duty h3 { font-family: var(--f-body); font-size: 19px; font-weight: 800; letter-spacing: -.01em; }
.duty p { color: var(--ink-2); font-size: 16px; line-height: 1.7; }
.pain { display: flex; align-items: flex-start; gap: 16px; margin-top: 30px; padding: 22px 24px; border-radius: var(--radius); background: var(--carmine-soft); }
.pain svg { width: 24px; height: 24px; flex: none; margin-top: 3px; color: var(--carmine); }
.pain p { max-width: 80ch; color: var(--ink); font-size: 16px; line-height: 1.75; }

/* Módulos */
.modules-section, #modulos { background: #ffffff; border-block: 1px solid var(--line); }
.filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 30px; }
.filter { padding: 11px 16px; border: 1px solid var(--line-strong); border-radius: 8px; background: #ffffff; color: var(--ink); font: 700 14px/1.3 var(--f-body); cursor: pointer; }
.filter[aria-pressed="true"] { border-color: var(--carmine); background: var(--carmine); color: #ffffff; }
.mods { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.mod { display: grid; align-content: start; gap: 12px; min-width: 0; padding: 24px; border: 1px solid var(--line); border-radius: 12px; background: #ffffff; transition: border-color .2s ease, opacity .2s ease, filter .2s ease; }
.mod:hover { border-color: var(--line-strong); }
.mod.dim { opacity: .3; filter: grayscale(1); }
.mod-top { display: flex; align-items: center; gap: 12px; }
.mod-ic { display: grid; place-items: center; width: 42px; height: 42px; flex: none; border-radius: 10px; background: var(--carmine-soft); color: var(--carmine); }
.mod-ic svg { width: 22px; height: 22px; }
.mod h3 { font-family: var(--f-body); font-size: 17px; font-weight: 800; line-height: 1.35; letter-spacing: -.015em; }
.mod ul { display: grid; gap: 5px; margin: 0; padding-left: 20px; color: var(--ink-2); font-size: 15px; line-height: 1.6; }
.mod-texto { margin: 0; color: var(--ink-2); font-size: 15px; line-height: 1.6; }
.modules-section .mod { grid-template-rows: auto 1fr auto; }
.tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }
.tag { padding: 4px 8px; border-radius: 6px; background: var(--paper-2); color: var(--ink-2); font-size: 13px; font-weight: 600; }

/* Ciclo */
.cycle { background: #ffffff; }
.steps { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 9px; position: relative; margin-bottom: 26px; }
.step { appearance: none; display: grid; gap: 7px; min-width: 0; padding: 16px 15px 18px; border: 1px solid var(--line); border-radius: 10px; background: var(--paper-2); color: var(--ink); font: inherit; text-align: left; cursor: pointer; transition: border-color .15s ease, background-color .15s ease, transform .15s ease; }
.step:hover { border-color: var(--ink-2); transform: translateY(-1px); }
.step .n { color: var(--ink-2); font-size: 13px; font-weight: 700; line-height: 1.35; }
.step .t { font-size: 15px; font-weight: 800; line-height: 1.35; }
.step[aria-selected="true"] { border-color: var(--carmine); background: var(--carmine); color: #ffffff; }
.step[aria-selected="true"] .n { color: #ffffff; opacity: .9; }
.stage { display: grid; grid-template-columns: 1.1fr 1fr; gap: 32px; padding: clamp(26px, 3vw, 38px); border: 1px solid var(--line); border-radius: 16px; background: #ffffff; box-shadow: 0 8px 24px rgba(31, 38, 48, .04); }
.stage h3 { font-size: 24px; font-weight: 800; }
.stage .basis { margin-top: 8px; color: var(--carmine-dark); font-size: 14px; font-weight: 700; }
.stage p.desc { margin-top: 16px; color: var(--ink-2); font-size: 16px; line-height: 1.75; }
.roles { display: grid; align-content: start; gap: 13px; }
.role { display: grid; grid-template-columns: 125px minmax(0, 1fr); gap: 15px; padding: 15px 0; border-top: 1px solid var(--line); color: var(--ink); font-size: 16px; line-height: 1.65; }
.role:first-child { padding-top: 0; border-top: 0; }
.role dt { padding-top: 2px; color: var(--ink-2); font-size: 14px; font-weight: 800; }
.role dd { margin: 0; }
.stage-anim { animation: fade .35s ease both; }
@keyframes fade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

/* Portal de transparência: variáveis próprias impedem herança de branco em faixas escuras. */
.portal-section, #portal { background: var(--paper-2); border-block: 1px solid var(--line); }
.idswitch { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 20px; }
.idswitch > span { margin-right: 4px; color: var(--ink-2); font-size: 14px; font-weight: 700; }
.idbtn { display: inline-flex; align-items: center; gap: 8px; min-height: 42px; padding: 9px 14px; border: 1px solid var(--line-strong); border-radius: 8px; background: #ffffff; color: var(--ink); font: 700 14px/1.3 var(--f-body); cursor: pointer; }
.idbtn i { width: 14px; height: 14px; flex: none; border-radius: 50%; background: var(--sw); }
.idbtn[aria-pressed="true"] { border-color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink); }
.portal,
.pt-modal {
  --portal-paper: #f4f5f7;
  --portal-card: #ffffff;
  --portal-ink: #1f2630;
  --portal-ink-2: #59616f;
  --portal-line: #d9dee6;
  --portal-accent: var(--carmine);
  --portal-accent-ink: #ffffff;
  --pa: var(--portal-accent);
  --pa-ink: var(--portal-accent-ink);
  --c1: var(--carmine);
  --c2: #7a3d8f;
  --c3: #df789d;
  --c4: #3d2b61;
  --c5: #bd9acc;
}
.portal {
  overflow: hidden;
  min-width: 0;
  border: 1px solid var(--portal-line);
  border-radius: 16px;
  background: var(--portal-card);
  color: var(--portal-ink);
  box-shadow: 0 30px 60px -36px rgba(42, 15, 46, .32);
}
.portal[data-id="verde"], .pt-modal[data-id="verde"] { --portal-accent: #1e7a4a; --portal-accent-ink: #ffffff; --pa: #1e7a4a; --pa-ink: #ffffff; --c1: #1e7a4a; --c2: #8cbf3f; --c3: #e3a21a; --c4: #2f6fa8; --c5: #9ad1b5; }
.portal[data-id="azul"], .pt-modal[data-id="azul"] { --portal-accent: #1d4e9e; --portal-accent-ink: #ffffff; --pa: #1d4e9e; --pa-ink: #ffffff; --c1: #1d4e9e; --c2: #e8a317; --c3: #5da9e9; --c4: #7bb342; --c5: #c0392b; }
.portal .pt-bar,
.portal .pt-head,
.portal .pt-body,
.portal .pt-tabs,
.portal .pt-title,
.portal .pt-filters,
.portal .pcard,
.portal .ptbl-wrap { color: var(--portal-ink); }
.pt-bar { display: flex; align-items: center; gap: 8px; padding: 13px 17px; border-bottom: 1px solid var(--portal-line); background: var(--portal-paper); }
.pt-bar .mono { min-width: 0; margin-left: 8px; overflow: hidden; color: var(--portal-ink-2); font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.pt-head { display: flex; align-items: center; flex-wrap: wrap; gap: 18px; padding: 20px 26px; border-bottom: 1px solid var(--portal-line); }
.pt-logo { display: flex; align-items: center; gap: 11px; color: var(--portal-ink); font-family: var(--f-display); font-size: 19px; font-weight: 800; line-height: 1.1; }
.pt-logo svg { width: 40px; height: 40px; flex: none; color: var(--pa); }
.pt-logo small { display: block; margin-top: 4px; color: var(--pa); font-family: var(--f-body); font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.pt-nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 4px 16px; margin-left: auto; color: var(--portal-ink-2); font-size: 13px; font-weight: 700; }
.pt-nav span:first-child { color: var(--portal-ink); }
.pt-body { display: grid; gap: 20px; min-width: 0; padding: 26px; background: var(--portal-card); }
.pt-tabs { display: flex; flex-wrap: wrap; gap: 8px; padding-bottom: 3px; border-bottom: 1px solid var(--portal-line); }
.pt-tab { min-height: 43px; padding: 10px 15px; border: 1px solid var(--portal-line); border-radius: 8px; background: var(--portal-paper); color: var(--portal-ink-2); font: 700 14px/1.3 var(--f-body); cursor: pointer; }
.pt-tab[aria-selected="true"] { border-color: var(--pa); background: var(--pa); color: var(--pa-ink); }
.pt-title { display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; gap: 12px; }
.pt-title .k { display: flex; align-items: center; gap: 7px; color: var(--portal-ink-2); font-size: 13px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.pt-title .k::before { width: 8px; height: 8px; content: ""; border-radius: 50%; background: var(--pa); }
.pt-title h3 { margin-top: 5px; color: var(--portal-ink); font-family: var(--f-body); font-size: 24px; font-weight: 800; letter-spacing: -.02em; }
.pt-title .pnote { color: var(--portal-ink-2); }
.pt-filters { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 15px; padding: 19px; border: 1px solid var(--portal-line); border-radius: 10px; background: var(--portal-paper); }
.pt-f { display: grid; gap: 7px; min-width: 0; }
.pt-f.w2 { grid-column: span 2; }
.pt-f label, .pt-f .lb { color: var(--portal-ink); font-size: 14px; font-weight: 700; line-height: 1.35; }
.pt-f select, .pt-f input { width: 100%; min-height: 44px; padding: 9px 11px; border: 1px solid var(--portal-line); border-radius: 7px; background: var(--portal-card); color: var(--portal-ink); font-size: 14px; }
.pchips { display: flex; flex-wrap: wrap; gap: 6px; }
.pchip { min-height: 39px; padding: 8px 11px; border: 1px solid var(--portal-line); border-radius: 8px; background: var(--portal-card); color: var(--portal-ink); font: 600 14px/1.3 var(--f-body); cursor: pointer; }
.pchip[aria-pressed="true"] { border-color: var(--pa); background: var(--pa); color: var(--pa-ink); }
.pt-factions { display: flex; grid-column: 1 / -1; justify-content: flex-end; flex-wrap: wrap; gap: 8px; }
.pbtn { display: inline-flex; align-items: center; gap: 7px; min-height: 42px; padding: 9px 14px; border: 1px solid var(--portal-line); border-radius: 7px; background: var(--portal-card); color: var(--portal-ink); font: 700 14px/1.3 var(--f-body); cursor: pointer; }
.pbtn.pri { border-color: var(--pa); background: var(--pa); color: var(--pa-ink); }
.pkpis { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 11px; }
.pkpi { display: grid; gap: 7px; min-width: 0; padding: 16px; border: 1px solid var(--portal-line); border-top: 3px solid var(--kc, var(--pa)); border-radius: 9px; background: var(--portal-card); }
.pkpi span { color: var(--portal-ink-2); font-size: 14px; font-weight: 700; line-height: 1.35; }
.pkpi strong { overflow-wrap: anywhere; color: var(--portal-ink); font-family: var(--f-display); font-size: clamp(1.35rem, 1.1rem + .75vw, 1.9rem); font-weight: 800; font-variant-numeric: tabular-nums; line-height: 1.15; }
.pgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.pcard { display: grid; align-content: start; gap: 14px; min-width: 0; padding: 22px; border: 1px solid var(--portal-line); border-radius: 10px; background: var(--portal-card); }
.pcard.full { grid-column: 1 / -1; }
.pcard h4 { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 10px; color: var(--portal-ink); font-family: var(--f-body); font-size: 16px; font-weight: 800; letter-spacing: 0; }
.pcard h4 em { padding: 4px 8px; border-radius: 999px; background: var(--portal-paper); color: var(--portal-ink-2); font-size: 13px; font-style: normal; font-weight: 700; }
.pcard .sub { margin-top: -8px; color: var(--portal-ink-2); font-size: 13px; }
.stack { display: flex; height: 14px; overflow: hidden; border-radius: 99px; background: var(--portal-paper); }
.stack i { display: block; height: 100%; }
.ptiles { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 9px; }
.ptile { min-width: 0; padding: 13px; border: 1px solid var(--portal-line); border-bottom: 3px solid var(--tc); border-radius: 8px; background: var(--portal-card); }
.ptile span { display: block; color: var(--portal-ink-2); font-size: 13px; font-weight: 700; line-height: 1.35; overflow-wrap: anywhere; white-space: normal; }
.ptile b { display: block; margin-top: 5px; color: var(--portal-ink); font-family: var(--f-display); font-size: 25px; font-variant-numeric: tabular-nums; line-height: 1.15; }
.hbars, .pbars { display: grid; gap: 11px; }
.hbar { display: grid; grid-template-columns: minmax(10em, 1.3fr) minmax(80px, 2fr) auto; align-items: center; gap: 10px; color: var(--portal-ink); font-size: 14px; }
.hbar .nm { min-width: 0; color: var(--portal-ink); font-weight: 600; line-height: 1.3; overflow-wrap: anywhere; white-space: normal; }
.hbar .tr, .pb .tr { height: 17px; overflow: hidden; border-radius: 4px; background: var(--portal-paper); }
.hbar .tr i, .pb .tr i { display: block; height: 100%; border-radius: 4px; }
.hbar .v { min-width: 6.5em; color: var(--portal-ink); font-weight: 700; font-variant-numeric: tabular-nums; text-align: right; }
.hbars-empilhado .hbar { grid-template-areas: "nome valor" "barra barra"; grid-template-columns: minmax(0, 1fr) auto; gap: 5px 10px; }
.hbars-empilhado .hbar .nm { grid-area: nome; text-align: left; }
.hbars-empilhado .hbar .tr { grid-area: barra; height: 12px; }
.hbars-empilhado .hbar .v { grid-area: valor; min-width: 0; text-align: right; }
.pb { display: grid; gap: 6px; color: var(--portal-ink); font-size: 14px; }
.pb .row { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; margin: 0; }
.pb .row > * { width: auto; max-width: none; margin-top: 0; padding: 0; }
.pb .row span:last-child { color: var(--portal-ink-2); font-variant-numeric: tabular-nums; }
.pb-descricao { margin-top: -3px; color: var(--portal-ink-2); font-size: 13px; line-height: 1.45; }
.pselo-grupo { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.pselo { padding: 4px 9px; border-radius: 999px; background: var(--ok-soft); color: var(--ok); font-size: 13px; font-weight: 800; font-variant-numeric: tabular-nums; white-space: nowrap; }
.pselo.queda { background: var(--warn-soft); color: var(--warn); }
.pb .tr { height: 19px; border-radius: 99px; }
.pb .tr i { display: flex; align-items: center; justify-content: flex-end; min-width: 2.8em; padding-right: 8px; border-radius: 99px; color: #ffffff; font-size: 13px; font-weight: 800; }
.pchart svg { display: block; width: 100%; height: auto; }
.ptbl-tools { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px; }
.ptbl-tools input { flex: 1 1 260px; min-width: 0; max-width: 460px; min-height: 44px; padding: 9px 12px; border: 1px solid var(--portal-line); border-radius: 7px; background: var(--portal-card); color: var(--portal-ink); font-size: 14px; }
.pexp { display: flex; flex-wrap: wrap; gap: 6px; }
.ptbl-wrap { overflow-x: auto; border: 1px solid var(--portal-line); border-radius: 9px; }
table.ptbl { width: 100%; min-width: 900px; border-collapse: collapse; color: var(--portal-ink); font-size: 14px; }
.ptbl th, .ptbl td { padding: 12px 13px; border-bottom: 1px solid var(--portal-line); vertical-align: middle; text-align: left; }
.ptbl thead th { background: var(--portal-paper); font-size: 14px; font-weight: 800; white-space: nowrap; }
.ptbl td.num, .ptbl th.num { display: table-cell !important; align-content: normal; padding: 12px 13px; border-left: 0; font-variant-numeric: tabular-nums; text-align: right; }
.ptbl tr:last-child td { border-bottom: 0; }
.st { display: inline-block; padding: 5px 9px; border-radius: 999px; font-size: 13px; font-weight: 800; line-height: 1.25; white-space: nowrap; }
.st.ex { background: var(--ok-soft); color: var(--ok); }
.st.pc { background: var(--info-soft); color: var(--info); }
.st.aj { background: var(--warn-soft); color: var(--warn); }
.st.co { background: var(--portal-paper); color: var(--portal-ink-2); }
.ico { display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid var(--portal-line); border-radius: 7px; background: var(--portal-card); color: var(--portal-ink); cursor: pointer; }
.ico svg { width: 17px; height: 17px; }
.pnote { color: var(--portal-ink-2); font-size: 13px; line-height: 1.55; }
.ptoast { padding: 11px 13px; border-radius: 8px; background: var(--info-soft); color: var(--portal-ink); font-size: 14px; }
.ptbl tfoot td { background: var(--portal-paper); font-weight: 800; }
.ptbl td small { display: block; margin-top: 3px; color: var(--portal-ink-2); font-size: 12px; white-space: nowrap; }
.ptbl-despesa tbody tr[data-parceria] { cursor: pointer; }
.ptbl-despesa tbody tr[data-parceria]:hover td { background: var(--portal-paper); }
.pt-factions .pnote { align-self: center; margin-right: auto; }

/* Ficha da parceria em modal */
.pt-modal .modal-content { border: 0; border-radius: 14px; background: var(--portal-paper); color: var(--portal-ink); font-family: var(--f-body); }
.pt-modal .modal-header { gap: 16px; padding: 14px 22px; border-bottom: 1px solid var(--portal-line); background: var(--portal-card); }
.pt-modal .modal-body { display: grid; align-content: start; gap: 18px; padding: 22px; }
.pt-modal .modal-footer { justify-content: space-between; gap: 10px; padding: 12px 22px; border-top: 1px solid var(--portal-line); background: var(--portal-card); }
.pt-modal table.ptbl { min-width: 640px; }
.pm-trilha { display: flex; flex-wrap: wrap; min-width: 0; color: var(--portal-ink-2); font-size: 13px; line-height: 1.5; }
.pm-trilha span + span::before { margin: 0 8px; content: "›"; }
.pm-trilha span:last-child { color: var(--portal-ink); font-weight: 700; }
.pm-capa { display: grid; gap: 14px; padding: 26px; border-radius: 12px; background: var(--pa); color: var(--pa-ink); }
.pm-selos { display: flex; flex-wrap: wrap; gap: 8px; }
.pm-selos span { padding: 5px 11px; border: 1px solid rgba(255, 255, 255, .45); border-radius: 999px; background: rgba(255, 255, 255, .14); font-size: 12px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.pm-capa h3 { margin: 0; color: inherit; font-family: var(--f-body); font-size: clamp(1.25rem, 1rem + 1vw, 1.65rem); font-weight: 800; letter-spacing: -.01em; text-transform: uppercase; }
.pm-objeto { margin: -6px 0 0; font-size: 15px; opacity: .92; text-transform: uppercase; }
.pm-capa-dados { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 6px 0 0; padding-top: 16px; border-top: 1px solid rgba(255, 255, 255, .25); }
.pm-capa-dados dt { font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; opacity: .85; }
.pm-capa-dados dd { margin: 4px 0 0; font-weight: 800; line-height: 1.3; overflow-wrap: anywhere; }
.pm-capa-dados small { display: block; margin-top: 3px; font-weight: 600; opacity: .85; }
.pm-resumo { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.pm-resumo.pm-resumo-duplo { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pm-resumo.pm-resumo-unico { grid-template-columns: minmax(0, 1fr); }
.pm-resumo > div { display: grid; align-content: start; gap: 6px; min-width: 0; padding: 16px; border: 1px solid var(--portal-line); border-top: 3px solid var(--pa); border-radius: 10px; background: var(--portal-card); }
.pm-resumo span { color: var(--portal-ink-2); font-size: 12px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.pm-resumo strong { color: var(--portal-ink); font-size: 18px; font-weight: 800; font-variant-numeric: tabular-nums; line-height: 1.25; }
.pm-resumo strong.pm-resumo-texto { font-size: 16px; }
.pm-resumo small { color: var(--portal-ink-2); font-size: 13px; line-height: 1.4; overflow-wrap: anywhere; }
.pm-resumo .pm-vigencia { display: block; height: 6px; overflow: hidden; border-radius: 99px; background: var(--portal-paper); }
.pm-vigencia i { display: block; height: 100%; border-radius: 99px; background: var(--pa); }
.pm-abas { display: flex; flex-wrap: wrap; gap: 6px; padding: 8px; border: 1px solid var(--portal-line); border-radius: 10px; background: var(--portal-card); }
.pm-aba { display: inline-flex; align-items: center; gap: 7px; min-height: 38px; padding: 7px 12px; border: 0; border-radius: 8px; background: transparent; color: var(--portal-ink-2); font: 700 14px/1.2 var(--f-body); cursor: pointer; }
.pm-aba b { padding: 2px 7px; border-radius: 999px; background: var(--portal-paper); color: var(--portal-ink-2); font-size: 12px; }
.pm-aba[aria-selected="true"] { background: var(--pa); color: var(--pa-ink); }
.pm-aba[aria-selected="true"] b { background: rgba(255, 255, 255, .2); color: inherit; }
.pm-painel { display: grid; gap: 16px; }
.pm-bloco { display: grid; gap: 12px; min-width: 0; padding: 20px; border: 1px solid var(--portal-line); border-radius: 10px; background: var(--portal-card); }
.pm-bloco h4 { margin: 0; color: var(--portal-ink); font-family: var(--f-body); font-size: 16px; font-weight: 800; letter-spacing: 0; }
.pm-bloco p { margin: 0; color: var(--portal-ink); font-size: 14px; line-height: 1.6; }
.pm-dados { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px 20px; margin: 0; }
.pm-dados dt { color: var(--portal-ink-2); font-size: 12px; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; }
.pm-dados dd { margin: 3px 0 0; color: var(--portal-ink); font-size: 14px; font-weight: 700; overflow-wrap: anywhere; }
.pm-ods { display: flex; flex-wrap: wrap; gap: 14px; margin: 0; padding: 0; list-style: none; }
.pm-ods li { display: grid; justify-items: center; gap: 7px; width: 104px; text-align: center; }
.pm-ods-selo { display: grid; align-content: center; justify-items: start; width: 84px; height: 84px; padding: 10px 12px; border-radius: 8px; background: var(--ods-cor); color: var(--ods-texto); line-height: 1; }
.pm-ods-selo small { font-size: 11px; font-weight: 800; letter-spacing: .08em; }
.pm-ods-selo b { font-family: var(--f-display); font-size: 40px; font-weight: 800; font-variant-numeric: tabular-nums; }
.pm-ods-nome { color: var(--portal-ink); font-size: 12px; font-weight: 700; line-height: 1.3; }
.pm-ods-legenda { border-top: 1px solid var(--portal-line); padding-top: 12px; }
.pm-ods-legenda summary { display: inline-flex; align-items: center; gap: 6px; color: var(--pa); font-size: 13px; font-weight: 800; cursor: pointer; list-style: none; }
.pm-ods-legenda summary::-webkit-details-marker { display: none; }
.pm-ods-legenda summary::after { content: ""; width: 7px; height: 7px; margin-top: -3px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform .15s ease; }
.pm-ods-legenda[open] summary::after { margin-top: 3px; transform: rotate(-135deg); }
.pm-ods-legenda summary:hover { text-decoration: underline; }
.pm-ods-legenda summary:focus-visible { outline: 2px solid var(--pa); outline-offset: 3px; border-radius: 4px; }
.pm-ods-legenda-fechar,
.pm-ods-legenda[open] .pm-ods-legenda-abrir { display: none; }
.pm-ods-legenda[open] .pm-ods-legenda-fechar { display: inline; }
.pm-ods-legenda p { margin: 12px 0; color: var(--portal-ink-2); font-size: 13px; }
.pm-ods-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 8px; margin: 0; padding: 0; list-style: none; }
.pm-ods-grade li { display: flex; align-items: center; gap: 10px; padding: 6px; border: 1px solid transparent; border-radius: 8px; }
.pm-ods-grade li.ativo { border-color: var(--portal-line); background: var(--portal-paper); }
.pm-ods-grade .pm-ods-selo { flex: none; justify-items: center; width: 40px; height: 40px; padding: 0; border-radius: 6px; opacity: .45; }
.pm-ods-grade li.ativo .pm-ods-selo { opacity: 1; }
.pm-ods-grade .pm-ods-selo b { font-size: 18px; }
.pm-ods-grade .pm-ods-nome { display: grid; gap: 2px; }
.pm-ods-grade .pm-ods-nome small { color: var(--pa); font-size: 11px; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; }
.pm-lista { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.pm-lista li { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px 14px; padding: 12px 14px; border: 1px solid var(--portal-line); border-radius: 8px; background: var(--portal-card); color: var(--portal-ink); font-size: 14px; }
.pm-lista li > div { min-width: 0; flex: 1 1 260px; }
.pm-lista li small { display: block; margin-top: 2px; color: var(--portal-ink-2); font-size: 13px; }
.pm-acoes { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.pm-metas { counter-reset: meta; }
.pm-metas li { justify-content: flex-start; flex-wrap: nowrap; }
.pm-metas li::before { display: grid; place-items: center; flex: none; width: 28px; height: 28px; content: counter(meta); counter-increment: meta; border-radius: 50%; background: var(--pa); color: var(--pa-ink); font-size: 13px; font-weight: 800; }
.pm-classificacao { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 6px 12px; color: var(--portal-ink); font-size: 14px; font-weight: 800; text-transform: uppercase; }
.pm-classificacao small { color: var(--portal-ink-2); font-weight: 700; text-transform: none; }
.pm-classificacao .st { text-transform: none; }
.pm-contadores { display: flex; flex-wrap: wrap; gap: 8px; }
.pm-contadores span { padding: 6px 12px; border: 1px solid var(--portal-line); border-radius: 999px; background: var(--portal-card); color: var(--portal-ink); font-size: 13px; font-weight: 700; }
.pbtn.pm-baixar { min-height: 34px; padding: 6px 12px; font-size: 13px; }
.pbtn.pm-baixar:disabled { cursor: not-allowed; opacity: .65; }
.caps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; margin-top: 42px; }
.caps div { display: grid; align-content: start; gap: 9px; }
.caps h3 { font-family: var(--f-body); font-size: 18px; font-weight: 800; letter-spacing: -.01em; }
.caps ul { display: grid; gap: 5px; margin: 0; padding-left: 20px; color: var(--ink-2); font-size: 15px; line-height: 1.65; }

/* Integrações */
.integr, #integracoes { background: var(--wine); color: var(--on-wine); }
.integr h2, #integracoes h2 { color: var(--on-wine); }
.integr .eyebrow, #integracoes .eyebrow { color: #ff9abc; }
.integr .lead, #integracoes .lead { color: var(--on-wine-2); }
.int-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.int { display: grid; align-content: start; gap: 12px; min-width: 0; padding: 24px; border: 1px solid rgba(255, 250, 255, .19); border-radius: 12px; background: var(--wine-2); }
.int .seal { color: var(--on-wine); font-family: var(--f-display); font-size: 23px; font-weight: 800; letter-spacing: -.03em; line-height: 1.2; }
.int p { color: var(--on-wine-2); font-size: 16px; line-height: 1.7; }

/* Case e gráfico */
#case, .case-section { background: #ffffff; }
.case-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(440px, .95fr); align-items: start; gap: clamp(42px, 5vw, 76px); }
.case-copy { display: grid; gap: 21px; min-width: 0; }
.case-copy h2 { font-size: var(--s-xl); font-weight: 800; }
.case-copy .lead { font-size: 17px; }
.award { display: flex; align-items: center; gap: 18px; padding: 22px; border: 2px solid var(--carmine); border-radius: 12px; background: #ffffff; box-shadow: 0 12px 26px rgba(184, 18, 79, .12); }
.award svg { width: 46px; height: 46px; flex: none; color: var(--carmine); }
.award strong { display: block; color: var(--ink); font-family: var(--f-display); font-size: 18px; font-weight: 800; line-height: 1.35; }
.award span { display: block; margin-top: 4px; color: var(--ink-2); font-size: 14px; line-height: 1.5; }
.facts { display: grid; gap: 0; border-top: 1px solid var(--line); }
.fact { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: baseline; gap: 18px; padding: 17px 0; border-bottom: 1px solid var(--line); }
.fact strong { min-width: 7.5ch; color: var(--ink); font-family: var(--f-display); font-size: 28px; font-weight: 800; font-variant-numeric: tabular-nums; line-height: 1.1; }
.fact span { color: var(--ink-2); font-size: 16px; line-height: 1.6; }
.chart { min-width: 0; padding: 26px; border: 1px solid var(--line); border-radius: 12px; background: #ffffff; box-shadow: 0 8px 24px rgba(31, 38, 48, .04); }
.chart h3 { margin-bottom: 5px; font-family: var(--f-body); font-size: 17px; font-weight: 800; letter-spacing: 0; }
.chart small { color: var(--ink-2); font-size: 13px; line-height: 1.55; }
.chart svg { display: block; width: 100%; height: auto; margin-top: 18px; }
#caseChart, #evChart { min-width: 0; max-width: 100%; overflow-x: auto; overflow-y: hidden; }
#caseChart svg, #evChart svg { width: auto; min-width: max-content; max-width: none; }
#caseChart svg text, #evChart svg text { font-size: 14px !important; }
#caseChart svg text[font-family*="Mono"], #evChart svg text[font-family*="Mono"] { font-family: var(--f-mono) !important; }

/* Diferenciais */
.differentials-section { background: var(--paper-2); border-block: 1px solid var(--line); }
.differentials-section .sec-head { margin-bottom: 36px; }
.differentials-section .mod h3 { margin: 0; font-family: var(--f-body); font-size: 17px; font-weight: 800; line-height: 1.35; letter-spacing: -.015em; }
.diff-texto { margin: 0; color: var(--ink-2); font-size: 15px; line-height: 1.6; }

/* Comparativo */
.comparison-section { background: var(--paper-2); border-block: 1px solid var(--line); }
.cmp-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 12px; background: #ffffff; }
table.cmp { width: 100%; min-width: 760px; border-collapse: collapse; color: var(--ink); font-size: 15px; }
.cmp th, .cmp td { padding: 18px 22px; border-bottom: 1px solid var(--line); vertical-align: top; text-align: left; line-height: 1.65; }
.cmp thead th { background: var(--paper-2); color: var(--ink-2); font-size: 14px; font-weight: 800; }
.cmp thead th:last-child { color: var(--carmine-dark); }
.cmp tbody th { width: 22%; font-weight: 800; }
.cmp td:nth-child(2) { color: var(--ink-2); }
.cmp td:last-child { background: #fff8fb; }
.cmp tr:last-child > * { border-bottom: 0; }

/* Implantação */
.implementation-section { background: #ffffff; border-block: 1px solid var(--line); }
.impl { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; margin: 0; padding: 0; counter-reset: s; }
.impl li { display: grid; align-content: start; gap: 9px; list-style: none; padding-top: 19px; border-top: 3px solid var(--carmine); }
.impl li::before { counter-increment: s; content: "Etapa " counter(s); color: var(--carmine-dark); font-size: 13px; font-weight: 800; }
.impl h3 { font-family: var(--f-body); font-size: 18px; font-weight: 800; letter-spacing: -.01em; }
.impl p { color: var(--ink-2); font-size: 16px; line-height: 1.7; }
.specs { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 42px; }
.spec { display: inline-flex; align-items: center; gap: 8px; min-height: 42px; padding: 10px 14px; border: 1px solid var(--line); border-radius: 8px; background: #ffffff; color: var(--ink); font-size: 14px; }
.spec svg { width: 17px; height: 17px; flex: none; color: var(--ok); }

/* FAQ */
#duvidas { background: var(--paper-2); border-top: 1px solid var(--line); }
.faq { display: grid; max-width: 940px; gap: 10px; }
.faq details { padding-inline: 24px; border: 1px solid var(--line); border-radius: 9px; background: #ffffff; }
.faq summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 19px 0; color: var(--ink); font-size: 16px; font-weight: 800; line-height: 1.45; cursor: pointer; list-style: none; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; color: var(--carmine); font-size: 24px; font-weight: 400; line-height: 1; transition: transform .2s ease; }
.faq details[open] summary::after { transform: rotate(45deg); }
.faq details p { max-width: 78ch; padding-bottom: 21px; color: var(--ink-2); font-size: 16px; line-height: 1.75; }

/* Contato e formulário */
.contact, #contato { background: var(--wine); color: var(--on-wine); }
.contact h2, #contato h2 { color: var(--on-wine); font-size: var(--s-xl); font-weight: 800; }
.contact .eyebrow, #contato .eyebrow { color: #ff9abc; }
.contact-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(460px, 1.1fr); align-items: start; gap: clamp(42px, 6vw, 82px); }
.contact .lead, #contato .lead { margin-top: 16px; color: var(--on-wine-2); font-size: 18px; line-height: 1.75; }
.cinfo { display: grid; gap: 20px; margin: 38px 0 0; }
.cinfo div { display: grid; gap: 4px; }
.cinfo dt { color: var(--on-wine-3); font-size: 13px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.cinfo dd { margin: 0; color: var(--on-wine); font-size: 16px; line-height: 1.55; overflow-wrap: anywhere; }
.cinfo a { color: var(--on-wine); }
.cinfo a:hover { color: #ffb4ca; }
.cinfo svg { width: 15px; height: 15px; margin-left: 5px; }
form.demo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; min-width: 0; padding: clamp(26px, 3vw, 36px); border: 1px solid var(--line); border-radius: 14px; background: #ffffff; color: var(--ink); box-shadow: 0 20px 50px rgba(0, 0, 0, .16); }
.field { display: grid; gap: 7px; min-width: 0; }
.field.full { grid-column: 1 / -1; }
.field label { color: var(--ink); font-size: 14px; font-weight: 700; line-height: 1.35; }
.field input, .field select, .field textarea { width: 100%; min-height: 46px; padding: 11px 13px; border: 1px solid var(--line-strong); border-radius: 7px; background: #ffffff; color: var(--ink); font-size: 16px; line-height: 1.4; }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--carmine); box-shadow: 0 0 0 3px rgba(184, 18, 79, .13); }
.field textarea { min-height: 116px; resize: vertical; }
.form-foot { display: flex; grid-column: 1 / -1; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px; }
.form-foot small { max-width: 42ch; color: var(--ink-2); font-size: 13px; line-height: 1.5; }
.form-foot .btn { flex: none; }
.ok-msg { display: flex; grid-column: 1 / -1; align-items: flex-start; gap: 10px; padding: 14px; border-radius: 9px; background: var(--ok-soft); color: var(--ink); font-size: 14px; line-height: 1.5; }
.ok-msg svg { width: 19px; height: 19px; flex: none; margin-top: 2px; color: var(--ok); }
.ok-msg a { color: inherit; font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }
.form-foot small a { color: inherit; text-decoration: underline; }
.field-contador { display: block; margin-top: 4px; color: var(--ink-3, #6b6b78); font-size: 12px; text-align: right; }
.field-contador.is-limite { color: var(--warn, #b45309); font-weight: 700; }
.grecaptcha-badge { visibility: hidden; }

/* Rodapé institucional */
footer { padding-block: 52px 0; border-top: 1px solid rgba(255, 250, 255, .14); background: var(--wine); color: var(--on-wine-2); }
.footer-main { display: grid; grid-template-columns: 1.25fr .8fr .8fr 1fr; gap: 38px; padding-bottom: 44px; }
.footer-main > div { display: flex; align-items: flex-start; flex-direction: column; gap: 10px; }
.footer-main h3 { margin: 0 0 6px; color: var(--on-wine); font-family: var(--f-body); font-size: 14px; font-weight: 800; letter-spacing: 0; }
.footer-main a, .footer-main span { color: var(--on-wine-2); font-size: 14px; line-height: 1.45; }
.footer-main a:hover { color: #ffb4ca; }
.footer-brand img { width: 150px; height: auto; margin-bottom: 8px; }
.footer-brand p { max-width: 30ch; color: var(--on-wine-2); font-size: 14px; line-height: 1.65; }
.agency-signature { margin-top: 10px; }
.agency-signature strong { color: var(--on-wine); font-weight: 700; }
.footer-bottom { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px 24px; padding-block: 21px; border-top: 1px solid rgba(255, 250, 255, .16); color: var(--on-wine-3); font-size: 13px; line-height: 1.5; }
footer > .wrap > .brand { color: var(--on-wine); }
footer > .wrap > .brand img { width: 150px; }
footer > .wrap > .brand svg { color: #ff9abc; }
.proto-flag { position: fixed; right: max(14px, env(safe-area-inset-right, 0px)); bottom: calc(14px + env(safe-area-inset-bottom, 0px)); z-index: 40; padding: 7px 11px; border-radius: 7px; background: var(--ink); color: #ffffff; font-size: 13px; opacity: .9; }

/* Tablet: o hero passa a uma coluna antes de o título longo ser comprimido. */
@media (max-width: 1100px) {
  .top .wrap { gap: 17px; }
  .nav { position: absolute; top: 100%; right: 0; left: 0; display: none; align-items: stretch; flex-direction: column; gap: 2px; padding: 14px max(28px, env(safe-area-inset-left, 0px)) 18px; border-bottom: 1px solid var(--line); background: #ffffff; box-shadow: 0 10px 20px rgba(31, 38, 48, .08); }
  .nav.open { display: flex; }
  .nav a { padding: 13px 12px; font-size: 16px; text-align: left; white-space: normal; }
  .menu-btn { display: grid; }
  .top .btn { display: none; }
  .nav a.nav-cta { display: flex; justify-content: center; margin-top: 10px; background: var(--carmine); color: #ffffff; font-weight: 700; text-align: center; }
  .nav a.nav-cta:hover, .nav a.nav-cta:focus-visible, .nav a.nav-cta.active { background: var(--carmine-dark); color: #ffffff; }
  .hero-grid { grid-template-columns: 1fr; gap: 42px; }
  .hero-copy { max-width: 880px; }
  .hero h1 { max-width: 900px; font-size: clamp(2.45rem, 4.7vw, 3.65rem); }
  .panel { max-width: 900px; width: 100%; }
  .duty { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mods { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .int-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .case-grid { grid-template-columns: 1fr; }
  .contact-grid { grid-template-columns: 1fr; }
  .contact-grid > div { max-width: 880px; }
  .contact-grid form.demo { max-width: 880px; }
  .footer-main { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
  .container.site-container, .site-container.wrap, .wrap { padding-inline: max(24px, env(safe-area-inset-left, 0px)) max(24px, env(safe-area-inset-right, 0px)); }
  section { padding-block: 50px; }
  .proof-strip .container { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
  .proof-item { padding-left: 0; border-left: 0; }
  .steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .stage { grid-template-columns: 1fr; }
  .pt-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pt-f.w2 { grid-column: 1 / -1; }
  .pkpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .pgrid { grid-template-columns: 1fr; }
  .pcard.full { grid-column: auto; }
  .caps { grid-template-columns: 1fr; }
  .impl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pm-capa-dados, .pm-resumo { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
  .container.site-container, .site-container.wrap, .wrap { padding-inline: max(20px, env(safe-area-inset-left, 0px)) max(20px, env(safe-area-inset-right, 0px)); }
  section { padding-block: 44px; }
  .utility-bar { font-size: 13px; }
  .utility-bar .container { min-height: 32px; gap: 14px; }
  .top .wrap { min-height: 72px; }
  .brand img { width: 150px; }
  .hero { padding-block: 32px 36px; }
  .hero h1 { font-size: clamp(2.25rem, 9.5vw, 3.15rem); }
  .hero .lead { font-size: 17px; }
  .hero-ctas { align-items: stretch; flex-direction: column; }
  .hero-ctas .btn { width: 100%; }
  .hero-checks { gap: 12px 16px; }
  .badges { display: grid; }
  .badge { align-items: flex-start; }
  .panel-body { padding: 20px; }
  .kpis { grid-template-columns: 1fr; }
  .kpi strong { font-size: 23px; }
  .meta { font-size: 14px; }
  .rep-legend { flex-wrap: wrap; }
  .num-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 28px; }
  .numbers .num { padding-inline: 18px; }
  .numbers .num:nth-child(odd) { padding-left: 0; border-left: 0; }
  .numbers .num:last-child { grid-column: 1 / -1; }
  .numbers .num strong { font-size: clamp(2rem, 8vw, 2.75rem); }
  .numbers .num span { font-size: 15px; }
  .numbers .src { margin-top: 30px; }
  .proof-strip .container { grid-template-columns: 1fr 1fr; gap: 22px 15px; }
  .proof-brand { grid-column: 1 / -1; }
  .duty { grid-template-columns: 1fr; }
  .duty article { padding: 24px; }
  .mods, .int-grid, .impl { grid-template-columns: 1fr; }
  .stage { padding: 24px; }
  .role { grid-template-columns: 1fr; gap: 4px; }
  .pt-nav { display: none; }
  .pt-head, .pt-body { padding: 20px; }
  .pt-tabs { overflow-x: auto; flex-wrap: nowrap; padding-bottom: 10px; }
  .pt-tab { flex: 0 0 auto; }
  .pt-filters { grid-template-columns: 1fr; padding: 16px; }
  .pt-f.w2 { grid-column: auto; }
  .pkpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pkpis > :last-child { grid-column: 1 / -1; }
  .pkpi { padding: 14px; }
  .pkpi strong { font-size: 24px; }
  .ptiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ptile { padding: 12px; }
  .hbar { grid-template-columns: minmax(8em, 1.25fr) minmax(72px, 1.8fr) auto; gap: 7px; }
  .hbar .v { min-width: 0; }
  .pcard { padding: 18px; }
  .pt-modal .modal-header, .pt-modal .modal-footer { padding-inline: 16px; }
  .pt-modal .modal-body { padding: 16px; }
  .pm-capa { padding: 20px; }
  .pm-abas { flex-wrap: nowrap; overflow-x: auto; }
  .pm-aba { flex: none; }
  .pm-bloco { padding: 16px; }
  .award { align-items: flex-start; padding: 19px; }
  .award strong { font-size: 17px; }
  .fact { grid-template-columns: 1fr; gap: 6px; }
  .fact strong { min-width: 0; }
  .chart { padding: 19px; }
  .chart svg { margin-top: 14px; }
  .cmp-wrap { margin-inline: -20px; border-inline: 0; border-radius: 0; }
  table.cmp { min-width: 700px; font-size: 14px; }
  .cmp th, .cmp td { padding: 15px 17px; }
  form.demo { grid-template-columns: 1fr; padding: 24px 20px; }
  .field.full, .form-foot, .ok-msg { grid-column: auto; }
  .form-foot { align-items: stretch; flex-direction: column; }
  .form-foot .btn { width: 100%; }
  .footer-main { gap: 30px 22px; }
  .footer-main > div:last-child { grid-column: 1 / -1; }
  .footer-main a, .footer-main span { overflow-wrap: anywhere; }
  .footer-bottom { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 420px) {
  .pkpis { grid-template-columns: 1fr !important; }
  .pkpis > :last-child { grid-column: auto; }
  .ptiles { grid-template-columns: 1fr 1fr; }
  .hbar { grid-template-columns: 1fr; align-items: stretch; }
  .hbar .v { text-align: left; }
  .pm-capa-dados, .pm-resumo, .pm-resumo.pm-resumo-duplo { grid-template-columns: 1fr; }
}

@media (max-width: 360px) {
  .utility-bar .container > span { display: none; }
  .utility-bar .container { justify-content: flex-end !important; }
  .num-grid { grid-template-columns: 1fr; }
  .numbers .num, .numbers .num:nth-child(odd) { padding-inline: 0; border-left: 0; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  html { scroll-behavior: auto; }
}
