@font-face { font-family: "Plus Jakarta Sans"; src: url(fonts/plus-jakarta-sans-latin-wght-normal.woff2) format("woff2"); font-weight: 200 800; font-display: swap; }
@font-face { font-family: "DM Sans"; src: url(fonts/dm-sans-latin-400-normal.woff2) format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "DM Sans"; src: url(fonts/dm-sans-latin-500-normal.woff2) format("woff2"); font-weight: 500; font-display: swap; }
@font-face { font-family: "DM Sans"; src: url(fonts/dm-sans-latin-700-normal.woff2) format("woff2"); font-weight: 700; font-display: swap; }

:root {
  --navy: oklch(0.18 0.05 275);
  --navy-deep: oklch(0.14 0.04 275);
  --indigo: oklch(0.50 0.20 275);
  --indigo-light: oklch(0.60 0.18 275);
  --cyan: oklch(0.75 0.14 200);
  --gold: oklch(0.88 0.17 90);
  --bg: oklch(0.99 0.002 275);
  --card: #fff;
  --border: oklch(0.92 0.01 275);
  --text: var(--navy);
  --muted: color-mix(in srgb, var(--navy) 62%, white);
  --radius: 0.625rem;
  --font-display: "Plus Jakarta Sans", system-ui, sans-serif;
  --font-body: "DM Sans", system-ui, sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--bg); color: var(--text); font: 400 1rem/1.65 var(--font-body); }
h1, h2, h3 { font-family: var(--font-display); letter-spacing: -0.02em; line-height: 1.2; }
a { color: var(--indigo); }
.wrap { width: min(72rem, 100% - 2rem); margin-inline: auto; }
.skip { position: absolute; left: -999px; } .skip:focus { left: 1rem; top: 1rem; background: #fff; padding: .5rem 1rem; z-index: 9; }

/* topo: igual ao Navbar do site (fixo, transparente sobre o hero, branco ao rolar) */
.topbar { position: fixed; inset: 0 0 auto 0; z-index: 50; background: transparent; transition: background .3s, box-shadow .3s, border-color .3s; border-bottom: 1px solid transparent; }
.topbar.rolou { background: rgb(255 255 255 / .95); backdrop-filter: blur(16px); box-shadow: 0 1px 3px rgb(0 0 0 / .06); border-color: oklch(0.92 0.005 275); }
.topbar .wrap { display: flex; align-items: center; justify-content: space-between; gap: 1rem; height: 72px; }
.topbar img { height: 2.25rem; width: auto; display: block; }
.topbar .logo-cor { display: none; } .topbar.rolou .logo-cor { display: block; } .topbar.rolou .logo-branco { display: none; }
.topbar nav { display: flex; gap: .125rem; align-items: center; }
.topbar nav a { padding: .5rem .875rem; border-radius: .5rem; font-size: 13px; font-weight: 500; color: rgb(255 255 255 / .8); text-decoration: none; transition: .2s; }
.topbar nav a:hover { color: #fff; background: rgb(255 255 255 / .1); }
.topbar nav a[aria-current] { color: #fff; background: rgb(255 255 255 / .15); }
.topbar.rolou nav a { color: oklch(0.35 0.04 275); } .topbar.rolou nav a:hover { color: var(--indigo); background: color-mix(in oklch, var(--indigo) 6%, transparent); }
.topbar.rolou nav a[aria-current] { color: var(--indigo); background: color-mix(in oklch, var(--indigo) 6%, transparent); }
.btn { display: inline-flex; align-items: center; gap: .5rem; background: var(--indigo); color: #fff !important; font: 700 .875rem var(--font-body); padding: .65rem 1.25rem; border-radius: 10px; text-decoration: none; transition: opacity .2s; }
.btn:hover { opacity: .9; background: var(--indigo) !important; }

/* hero */
.hero { position: relative; overflow: hidden; background: var(--navy-deep); color: #fff; padding: calc(72px + 3.5rem) 0 4rem; }
.hero::before, .hero::after { content: ""; position: absolute; border-radius: 50%; filter: blur(64px); pointer-events: none; }
.hero::before { width: 16rem; height: 16rem; left: -6rem; top: 1rem; background: color-mix(in oklch, var(--indigo) 35%, transparent); }
.hero::after { width: 14rem; height: 14rem; right: 0; bottom: -3rem; background: color-mix(in oklch, var(--cyan) 22%, transparent); }
.hero .wrap { position: relative; max-width: 48rem; }
.eyebrow { display: inline-flex; gap: .5rem; align-items: center; border: 1px solid rgb(255 255 255 / .15); background: rgb(255 255 255 / .1); border-radius: 999px; padding: .3rem 1rem; font-size: .75rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--cyan); }
.hero h1 { font-weight: 800; font-size: clamp(1.9rem, 4.5vw, 3rem); margin: 1.25rem 0 .75rem; }
.hero p { color: rgb(255 255 255 / .62); font-size: 1.125rem; margin: 0 0 1.75rem; max-width: 40rem; }
.busca { position: relative; }
.busca input { width: 100%; font: inherit; padding: .95rem 1rem .95rem 3rem; border-radius: .75rem; border: 1px solid rgb(255 255 255 / .2); background: rgb(255 255 255 / .96); color: var(--navy); }
.busca input:focus { outline: 3px solid var(--cyan); }
.busca svg { position: absolute; left: 1rem; top: 50%; translate: 0 -50%; width: 1.25rem; height: 1.25rem; color: var(--indigo); }
.resultados { position: absolute; left: 0; right: 0; top: calc(100% + .5rem); background: var(--card); color: var(--text); border: 1px solid var(--border); border-radius: .75rem; box-shadow: 0 20px 40px rgb(0 0 0 / .25); z-index: 5; overflow: hidden; }
.resultados[hidden] { display: none; }
.resultados a { display: block; padding: .8rem 1rem; text-decoration: none; color: inherit; border-bottom: 1px solid var(--border); }
.resultados a:last-child { border: 0; } .resultados a:hover, .resultados a:focus { background: color-mix(in oklch, var(--indigo) 8%, transparent); }
.resultados strong { display: block; font-family: var(--font-display); } .resultados small { color: var(--muted); }

/* hub */
.hub { padding: 3rem 0 2rem; }
.hub h2 { font-size: 1.25rem; margin: 2.5rem 0 1rem; padding-bottom: .6rem; border-bottom: 3px solid var(--indigo); font-weight: 800; }
.hub h2:first-child { margin-top: 0; }
.grade { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); }
.cartao { display: flex; gap: 1rem; align-items: flex-start; background: var(--card); border: 1px solid var(--border); border-radius: 1rem; padding: 1.25rem; text-decoration: none; color: inherit; transition: border-color .15s, transform .15s, box-shadow .15s; }
.cartao:hover { border-color: color-mix(in oklch, var(--indigo) 40%, transparent); transform: translateY(-2px); box-shadow: 0 10px 24px rgb(40 30 120 / .08); }
.ico { flex: none; display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border-radius: .75rem; background: color-mix(in oklch, var(--indigo) 10%, transparent); color: var(--indigo); }
.ico svg { width: 1.4rem; height: 1.4rem; }
.cartao h3 { margin: 0 0 .25rem; font-size: 1.05rem; font-weight: 700; } .cartao p { margin: 0; color: var(--muted); font-size: .9rem; }

/* selo rascunho */
.rev { display: inline-block; font: 700 .65rem/1 var(--font-display); text-transform: uppercase; letter-spacing: .06em; background: color-mix(in srgb, var(--gold) 55%, white); color: oklch(0.3 0.08 90); border-radius: 999px; padding: .3rem .6rem; vertical-align: middle; margin-left: .5rem; }

/* página interna */
.interna { display: grid; gap: 2.5rem; padding: 2.5rem 0 4rem; grid-template-columns: 16rem minmax(0, 1fr); }
.lateral { position: sticky; top: 1rem; align-self: start; font-size: .9rem; }
.lateral .lat-t { font: 700 .75rem var(--font-display); text-transform: uppercase; letter-spacing: .08em; color: var(--muted); margin: 1.25rem 0 .5rem; }
.lateral .lat-t:first-child { margin-top: 0; }
.lateral a { display: block; padding: .4rem .75rem; border-left: 2px solid var(--border); color: var(--muted); text-decoration: none; }
.lateral a:hover { color: var(--indigo); } .lateral a[aria-current] { border-color: var(--indigo); color: var(--indigo); font-weight: 700; background: color-mix(in oklch, var(--indigo) 6%, transparent); }
.crumbs { font-size: .85rem; color: var(--muted); margin-bottom: 1rem; } .crumbs a { color: inherit; }
article h1 { font-size: clamp(1.7rem, 3.5vw, 2.4rem); font-weight: 800; margin: 0 0 1rem; }
article h2 { font-size: 1.35rem; margin: 2.25rem 0 .75rem; }
article p, article li { max-width: 46rem; }
article ul { padding-left: 1.25rem; } article li { margin: .35rem 0; }
.aviso { border-left: 4px solid var(--gold); background: color-mix(in oklch, var(--gold) 22%, transparent); padding: 1rem 1.25rem; border-radius: 0 var(--radius) var(--radius) 0; max-width: 46rem; }
.cartoes { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); margin: 1.5rem 0; }
.cartoes div { background: var(--card); border: 1px solid var(--border); border-top: 3px solid var(--indigo); border-radius: var(--radius); padding: 1.25rem; }
.cartoes h3 { margin: 0 0 .5rem; font-size: 1.05rem; } .cartoes p { margin: 0; font-size: .9rem; color: var(--muted); }
.tabela { overflow-x: auto; margin: 1.25rem 0; } table { border-collapse: collapse; width: 100%; font-size: .92rem; background: var(--card); border-radius: var(--radius); overflow: hidden; }
th, td { text-align: left; padding: .75rem 1rem; border-bottom: 1px solid var(--border); vertical-align: top; }
th { background: var(--navy); color: #fff; font-family: var(--font-display); font-size: .8rem; text-transform: uppercase; letter-spacing: .05em; }
.dpo { display: inline-grid; gap: .25rem; background: var(--card); border: 1px solid var(--border); border-radius: 1rem; padding: 1.25rem 1.5rem; }
details { background: var(--card); border: 1px solid var(--border); border-radius: var(--radius); margin: .6rem 0; max-width: 48rem; }
summary { cursor: pointer; padding: 1rem 1.25rem; font: 700 1rem var(--font-display); } details[open] summary { color: var(--indigo); }
details p { margin: 0; padding: 0 1.25rem 1.1rem; }

/* rodapé: section-dark do site, em colunas, com os selos */
footer { background: linear-gradient(180deg, var(--navy-deep), oklch(0.12 0.04 275)); color: rgb(255 255 255 / .6); padding: 4rem 0 2rem; font-size: .9rem; }
footer .cols { display: grid; gap: 2rem; grid-template-columns: 1.1fr repeat(3, 1fr) 17rem; }
footer .rod-t { color: #fff; font: 700 .85rem var(--font-display); text-transform: uppercase; letter-spacing: .04em; margin: 0 0 1rem; }
footer ul { list-style: none; margin: 0; padding: 0; } footer li { margin: .6rem 0; }
footer a { color: rgb(255 255 255 / .65); text-decoration: none; } footer a:hover { color: var(--cyan); }
footer .marca img { height: 1.75rem; margin-bottom: 1rem; } footer .marca p { margin: 0; line-height: 1.6; }
.selos { display: flex; gap: .5rem; flex-wrap: nowrap; margin-top: 1rem; }
.selo { margin: 0; width: 5.25rem; flex: none; display: flex; flex-direction: column; align-items: center; gap: .5rem; color: rgb(255 255 255 / .85); transition: color .2s; } .selo:hover { color: var(--cyan); }
.selo svg { width: 5.25rem; height: 5.25rem; } .selo figcaption { font-size: 10px; font-weight: 500; text-transform: uppercase; letter-spacing: .04em; text-align: center; color: rgb(255 255 255 / .5); line-height: 1.2; }
footer .copy { margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid rgb(255 255 255 / .1); font-size: .8rem; color: rgb(255 255 255 / .45); }

@media (max-width: 52rem) { .interna { grid-template-columns: minmax(0, 1fr); } .lateral { position: static; } .topbar nav a:not(.btn) { display: none; } footer .cols { grid-template-columns: 1fr 1fr; } footer .marca, footer .contato { grid-column: 1 / -1; } }
@media (prefers-reduced-motion: reduce) { * { transition: none !important; scroll-behavior: auto; } }

/* atalhos sob a busca */
.atalhos { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin: 1rem 0 0; font-size: .85rem; color: rgb(255 255 255 / .55); }
.atalhos a { color: rgb(255 255 255 / .85); text-decoration: none; border: 1px solid rgb(255 255 255 / .18); background: rgb(255 255 255 / .06); border-radius: 999px; padding: .3rem .85rem; transition: .2s; }
.atalhos a:hover { border-color: var(--cyan); color: var(--cyan); }

/* faixa de confiança: sobe sobre o hero */
.numeros { position: relative; z-index: 2; margin-top: -2rem; }
.numeros .wrap { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); }
.numeros a { display: grid; gap: .15rem; background: var(--card); border: 1px solid var(--border); border-radius: 1rem; padding: 1.1rem 1.25rem; text-decoration: none; color: inherit; box-shadow: 0 12px 30px rgb(30 20 100 / .1); transition: transform .2s, border-color .2s; }
.numeros a:hover { transform: translateY(-3px); border-color: color-mix(in oklch, var(--indigo) 45%, transparent); }
.numeros strong { font: 800 1.75rem/1.1 var(--font-display); letter-spacing: -.02em; background: linear-gradient(90deg, var(--indigo), var(--cyan)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.numeros span { font-size: .85rem; color: var(--muted); }

/* jornada do dado */
.jornada { list-style: none; margin: 1.75rem 0 1rem; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(var(--n, 6), minmax(0, 1fr)); counter-reset: j; position: relative; }
.jornada::before { content: ""; position: absolute; left: calc(50% / var(--n, 6)); right: calc(50% / var(--n, 6)); top: 1.4rem; height: 2px; background: linear-gradient(90deg, var(--indigo), var(--cyan)); opacity: .35; }
.jornada li { position: relative; text-align: center; padding: 0 .25rem; }
.jornada .no { display: grid; place-items: center; width: 2.8rem; height: 2.8rem; margin: 0 auto .75rem; border-radius: 50%; background: linear-gradient(135deg, var(--indigo), var(--indigo-light)); color: #fff; font: 800 1.05rem var(--font-display); box-shadow: 0 0 0 6px var(--bg); position: relative; }
.jornada h3 { margin: 0 0 .3rem; font-size: .95rem; font-weight: 700; }
.jornada p { margin: 0; font-size: .82rem; line-height: 1.45; color: var(--muted); }
.jornada-nota { max-width: none; text-align: center; font-size: .9rem; color: var(--muted); background: color-mix(in oklch, var(--cyan) 12%, transparent); border-radius: var(--radius); padding: .75rem 1rem; }
.jornada-sec { padding: 3rem 0 1rem; } .jornada-sec h2 { font-size: clamp(1.4rem, 3vw, 1.9rem); font-weight: 800; margin: 0 0 .4rem; text-align: center; } .jornada-sec .sub { text-align: center; color: var(--muted); margin: 0; }
article .jornada { margin-top: 1.5rem; } article .jornada-nota { margin-bottom: 1rem; }

/* faixa final */
.cta { margin-top: 3rem; background: var(--navy-deep); color: #fff; text-align: center; padding: 4rem 0; position: relative; overflow: hidden; }
.cta::before { content: ""; position: absolute; width: 22rem; height: 22rem; left: 50%; top: -12rem; translate: -50% 0; border-radius: 50%; background: color-mix(in oklch, var(--indigo) 40%, transparent); filter: blur(80px); }
.cta .wrap { position: relative; } .cta h2 { font-size: clamp(1.5rem, 3.4vw, 2.2rem); font-weight: 800; margin: 0 0 .6rem; } .cta p { margin: 0 auto 1.75rem; color: rgb(255 255 255 / .6); max-width: 34rem; }
.cta-bt { display: flex; gap: .85rem; justify-content: center; flex-wrap: wrap; }
.btn-ouro { background: linear-gradient(135deg, var(--gold), oklch(0.82 0.16 80)); color: var(--navy) !important; font: 700 .95rem var(--font-body); padding: .95rem 1.75rem; border-radius: .85rem; text-decoration: none; transition: transform .2s; } .btn-ouro:hover { transform: translateY(-2px); }
.btn-sec { background: rgb(255 255 255 / .08); border: 1px solid rgb(255 255 255 / .18); color: #fff !important; font: 700 .95rem var(--font-body); padding: .95rem 1.75rem; border-radius: .85rem; text-decoration: none; transition: .2s; } .btn-sec:hover { background: rgb(255 255 255 / .14); }

/* entrada suave */
.anima .reveal { opacity: 0; transform: translateY(14px); transition: opacity .5s ease, transform .5s ease; }
.anima .reveal.vi { opacity: 1; transform: none; }

@media (max-width: 52rem) {
  .jornada { grid-template-columns: 1fr; gap: 1.25rem; padding-left: 0; } .jornada::before { left: 1.4rem; right: auto; top: 0; bottom: 0; width: 2px; height: auto; }
  .jornada li { text-align: left; padding-left: 4rem; } .jornada .no { position: absolute; left: 0; top: 0; margin: 0; }
}

/* ===== revisão UX ===== */
:focus-visible { outline: 3px solid var(--indigo-light); outline-offset: 2px; border-radius: 4px; }
.hero :focus-visible, footer :focus-visible, .cta :focus-visible, .banda :focus-visible, .topbar:not(.rolou) :focus-visible { outline-color: var(--cyan); }
h2[id], details[id] { scroll-margin-top: 96px; }
.hero p { color: rgb(255 255 255 / .74); } .atalhos { color: rgb(255 255 255 / .72); }
footer .copy { color: rgb(255 255 255 / .62); } .selo figcaption { color: rgb(255 255 255 / .68); }

/* home: cabeçalho de grupo com descrição */
.hub { padding-top: 2.5rem; }
.sec-cab { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin: 2.75rem 0 1rem; padding-bottom: .6rem; border-bottom: 3px solid var(--indigo); }
.sec-cab:first-child { margin-top: 0; }
.sec-cab h2 { margin: 0; padding: 0; border: 0; font-size: 1.25rem; font-weight: 800; }
.sec-cab p { margin: 0; font-size: .9rem; color: var(--muted); }
.cartao .rev { margin: .6rem 0 0; }
.cartao h3 { padding-right: 0; }
.faq-prev { display: grid; gap: .6rem; grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr)); }
.faq-prev a { display: flex; justify-content: space-between; align-items: center; gap: 1rem; background: var(--card); border: 1px solid var(--border); border-radius: .85rem; padding: .95rem 1.1rem; text-decoration: none; color: inherit; font-weight: 500; transition: border-color .15s, transform .15s; }
.faq-prev a:hover { border-color: color-mix(in oklch, var(--indigo) 45%, transparent); transform: translateX(3px); }
.faq-prev svg { width: 1.1rem; height: 1.1rem; flex: none; color: var(--indigo); }
.faq-prev .todas { background: color-mix(in oklch, var(--indigo) 7%, transparent); color: var(--indigo); font-weight: 700; }

/* páginas internas: banda compacta no padrão LegalHero do site */
.banda { background: var(--navy-deep); color: #fff; padding: calc(72px + 2rem) 0 2.25rem; position: relative; overflow: hidden; }
.banda::before { content: ""; position: absolute; width: 16rem; height: 16rem; left: -5rem; top: 0; border-radius: 50%; background: color-mix(in oklch, var(--indigo) 30%, transparent); filter: blur(64px); }
.banda .wrap { position: relative; }
.banda .crumbs { color: rgb(255 255 255 / .62); margin-bottom: .75rem; } .banda .crumbs a { color: rgb(255 255 255 / .8); }
.banda h1 { font-size: clamp(1.7rem, 3.6vw, 2.5rem); font-weight: 800; margin: 0 0 .5rem; color: #fff; }
.banda p { margin: 0; color: rgb(255 255 255 / .72); font-size: 1.05rem; max-width: 42rem; }
.interna { padding-top: 2.25rem; }
.lateral .busca { margin-bottom: 1rem; } .lateral .busca input { border: 1px solid var(--border); background: var(--card); padding: .65rem .75rem .65rem 2.4rem; font-size: .875rem; }
.lateral .busca svg { left: .75rem; width: 1rem; height: 1rem; }
.lateral .resultados { width: min(22rem, 86vw); }
.menu-sec > summary { display: none; }
.toc { list-style: none; margin: .15rem 0 .5rem 1rem; padding: 0; border-left: 2px solid var(--border); }
.toc li { margin: 0; } .toc a { border: 0; padding: .25rem .75rem; font-size: .82rem; font-weight: 500; }
.nota { max-width: 46rem; font: 700 1.2rem/1.45 var(--font-display); letter-spacing: -.01em; color: var(--navy); background: linear-gradient(135deg, color-mix(in oklch, var(--indigo) 9%, transparent), color-mix(in oklch, var(--cyan) 14%, transparent)); border-left: 4px solid var(--indigo); border-radius: 0 var(--radius) var(--radius) 0; padding: 1.1rem 1.4rem; }
article ul:not(.toc):not(.jornada) { list-style: none; padding-left: 0; }
article ul:not(.toc):not(.jornada) li { position: relative; padding-left: 1.75rem; }
article ul:not(.toc):not(.jornada) li::before { content: ""; position: absolute; left: 0; top: .45em; width: 1.05rem; height: 1.05rem; border-radius: 50%; background: color-mix(in oklch, var(--indigo) 12%, transparent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23463bd6' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12 4 4 8-8'/%3E%3C/svg%3E") center/70% no-repeat; }
.atual { margin-top: 2.5rem; font-size: .8rem; color: var(--muted); }
.pn { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 1rem; padding-top: 1.5rem; border-top: 1px solid var(--border); max-width: 48rem; }
.pn a { display: grid; gap: .15rem; padding: .9rem 1.1rem; border: 1px solid var(--border); border-radius: .85rem; background: var(--card); text-decoration: none; color: var(--navy); font: 700 .95rem var(--font-display); transition: border-color .15s; }
.pn a:hover { border-color: color-mix(in oklch, var(--indigo) 45%, transparent); }
.pn small { font: 500 .72rem var(--font-body); color: var(--muted); text-transform: uppercase; letter-spacing: .06em; }
.pn .prox { text-align: right; }

@media (max-width: 52rem) {
  .menu-sec > summary { display: block; cursor: pointer; padding: .8rem 1rem; border: 1px solid var(--border); border-radius: .75rem; background: var(--card); font: 700 .9rem var(--font-display); }
  .menu-sec[open] > summary { margin-bottom: 1rem; }
  .interna { padding-top: 1.25rem; gap: 1.25rem; }
  .pn { grid-template-columns: 1fr; } .pn .prox { text-align: left; }
}

/* ===== v3: leitura sem fadiga ===== */
article strong, .cartoes strong { font-weight: 700; color: var(--navy); }
tbody th { background: transparent !important; color: var(--navy) !important; font: 700 .92rem var(--font-body) !important; text-transform: none !important; letter-spacing: 0 !important; }
.jornada p { font-size: .875rem; }
.bloco-home { padding: 2.25rem 0 0; }
.bloco-home .sec-cab { margin-top: 0; }
.perfis { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); }
.perfil { background: var(--card); border: 1px solid var(--border); border-radius: 1rem; padding: 1.4rem; }
.perfil h3 { margin: 0 0 .25rem; font-size: 1.1rem; font-weight: 800; }
.perfil > p { margin: 0 0 .9rem; color: var(--muted); font-size: .9rem; }
.perfil ul { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--border); }
.perfil li { border-bottom: 1px solid var(--border); }
.perfil li:last-child { border-bottom: 0; }
.perfil li a { display: flex; justify-content: space-between; align-items: center; gap: .75rem; padding: .7rem 0; text-decoration: none; color: var(--navy); font-weight: 500; font-size: .95rem; }
.perfil li a:hover { color: var(--indigo); }
.perfil li svg { width: 1rem; height: 1rem; flex: none; color: var(--indigo); }
.relance { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem 1.5rem; grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr)); }
.relance a { display: flex; gap: .7rem; align-items: center; padding: .65rem .85rem; border-radius: .75rem; text-decoration: none; color: var(--navy); font-weight: 500; transition: background .15s; }
.relance a:hover { background: color-mix(in oklch, var(--indigo) 7%, transparent); }
.relance svg { flex: none; width: 1.35rem; height: 1.35rem; padding: .25rem; border-radius: 50%; background: color-mix(in oklch, var(--indigo) 12%, transparent); color: var(--indigo); stroke-width: 3; }
.faq-g { font-size: 1.05rem !important; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); margin: 2.25rem 0 .5rem !important; font-weight: 700; }
.faq-g:first-of-type { margin-top: 0 !important; }

/* ===== v4: a central que convence ===== */
.principios { margin-top: 1.25rem; }
.principios .wrap { display: grid; gap: .75rem; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); }
.principios a { display: grid; gap: .2rem; padding: .9rem 1rem; border-left: 3px solid var(--indigo); background: color-mix(in oklch, var(--indigo) 5%, transparent); border-radius: 0 .75rem .75rem 0; text-decoration: none; color: var(--navy); transition: background .15s; }
.principios a:hover { background: color-mix(in oklch, var(--indigo) 10%, transparent); }
.principios strong { font: 800 .98rem var(--font-display); }
.principios span { font-size: .85rem; color: var(--muted); line-height: 1.45; }
.paravoce { max-width: 46rem; margin: 0 0 1.75rem; padding: 1rem 1.25rem; border-radius: 0 var(--radius) var(--radius) 0; border-left: 4px solid var(--cyan); background: color-mix(in oklch, var(--cyan) 11%, transparent); font-size: 1.05rem; line-height: 1.55; color: var(--navy); }
.paravoce strong { display: block; margin-bottom: .2rem; font: 700 .72rem var(--font-display); text-transform: uppercase; letter-spacing: .08em; color: color-mix(in oklch, var(--indigo) 85%, black); }

.fig { margin: 1.2rem 0 2rem; }
.fig img { width: 100%; height: auto; border-radius: var(--radius); border: 1px solid color-mix(in oklch, var(--navy) 12%, transparent); }

.camadas { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 21rem), 1fr)); }
.camada { background: #fff; border: 1px solid color-mix(in oklch, var(--navy) 10%, transparent); border-top: 4px solid var(--indigo); border-radius: var(--radius); padding: 1.1rem 1.2rem 1rem; }
.camada:nth-child(3n+2) { border-top-color: var(--cyan); }
.camada h3 { margin: 0 0 .25rem; font-size: 1.05rem; font-weight: 800; color: var(--navy); }
.camada > p { margin: 0 0 .7rem; color: var(--muted); font-size: .92rem; }
.camada ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .15rem; }
.camada a { display: flex; gap: .65rem; align-items: center; padding: .5rem .4rem; border-radius: .7rem; text-decoration: none; color: var(--navy); transition: background .15s; }
.camada a:hover { background: color-mix(in oklch, var(--indigo) 7%, transparent); }
.camada a > svg { flex: none; width: 1.9rem; height: 1.9rem; padding: .4rem; border-radius: 50%; background: color-mix(in oklch, var(--indigo) 12%, transparent); color: var(--indigo); }
.camada a span:not(.rev) { display: grid; line-height: 1.25; }
.camada strong { font-weight: 600; font-size: .95rem; } .camada small { color: var(--muted); font-size: .8rem; }

article { min-width: 0; }
@media print {
  .topbar, .lateral, .pn, .busca, .skip, footer .cols, .cta { display: none !important; }
  .interna { display: block; padding: 0; } body { background: #fff; }
  a[href^="http"]::after { content: " (" attr(href) ")"; font-size: .8em; color: #555; }
}

/* ===== v5: acabamento profissional ===== */
:root {
  --shadow-sm: 0 1px 2px rgb(20 15 80 / .05), 0 1px 3px rgb(20 15 80 / .05);
  --shadow-md: 0 4px 12px rgb(20 15 80 / .06), 0 12px 28px rgb(20 15 80 / .07);
  --shadow-lg: 0 8px 20px rgb(20 15 80 / .08), 0 24px 48px rgb(20 15 80 / .10);
  --radius-lg: 1rem;
  --muted: color-mix(in srgb, var(--navy) 68%, white);
}
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-x: clip; }
img, svg { max-width: 100%; }
.wrap { width: min(74rem, 100% - 3rem); }

/* topo */
.topbar .wrap { height: 76px; }
.topbar nav a { font-size: 14px; padding: .55rem .95rem; }
.btn { box-shadow: 0 1px 2px rgb(20 15 80 / .2), 0 6px 14px color-mix(in oklch, var(--indigo) 30%, transparent); transition: transform .2s, box-shadow .2s; }
.btn:hover { opacity: 1; transform: translateY(-1px); box-shadow: 0 2px 4px rgb(20 15 80 / .2), 0 10px 20px color-mix(in oklch, var(--indigo) 38%, transparent); }

/* hero: mais presença, busca como elemento principal */
.hero { padding: calc(76px + 5rem) 0 6.5rem; background:
  radial-gradient(60rem 28rem at 85% -10%, color-mix(in oklch, var(--indigo) 38%, transparent), transparent 70%),
  radial-gradient(40rem 22rem at 0% 110%, color-mix(in oklch, var(--cyan) 18%, transparent), transparent 70%),
  var(--navy-deep); }
.hero::before, .hero::after { display: none; }
.hero .wrap { max-width: none; }
.hero .wrap > * { max-width: 46rem; }
.hero h1 { font-size: clamp(2.2rem, 5vw, 3.6rem); line-height: 1.08; letter-spacing: -.03em; margin: 1.5rem 0 1rem; }
.hero p { font-size: 1.2rem; line-height: 1.55; max-width: 38rem; }
.eyebrow { font-size: .72rem; padding: .4rem 1.05rem; }
.busca input { padding: 1.1rem 1.25rem 1.1rem 3.25rem; font-size: 1.05rem; border-radius: .9rem; border: 0; box-shadow: 0 10px 30px rgb(0 0 0 / .3), 0 0 0 1px rgb(255 255 255 / .1); }
.busca input::placeholder { color: color-mix(in srgb, var(--navy) 55%, white); }
.busca svg { left: 1.15rem; width: 1.35rem; height: 1.35rem; }
.atalhos { margin-top: 1.25rem; gap: .6rem; }
.atalhos a { padding: .4rem 1rem; font-size: .875rem; backdrop-filter: blur(4px); }

/* faixa de números: cartões iguais, leitura imediata */
.numeros { margin-top: -3.25rem; }
.numeros .wrap { grid-template-columns: repeat(auto-fit, minmax(12.5rem, 1fr)); gap: 1.1rem; }
.numeros a { align-content: start; gap: .4rem; padding: 1.35rem 1.4rem 1.25rem; border-radius: var(--radius-lg); border-color: color-mix(in srgb, var(--navy) 8%, white); box-shadow: var(--shadow-md); position: relative; overflow: hidden; }
.numeros a::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 3px; background: linear-gradient(90deg, var(--indigo), var(--cyan)); opacity: .9; }
.numeros a:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.numeros strong { font-size: 1.85rem; white-space: nowrap; }
.numeros span { font-size: .9rem; line-height: 1.45; }

/* cabeçalhos de seção */
.bloco-home { padding: 4rem 0 0; }
.bloco-home:first-of-type { padding-top: 4.5rem; }
.sec-cab { align-items: flex-end; border-bottom: 1px solid var(--border); padding-bottom: 1rem; margin-bottom: 1.5rem; position: relative; }
.sec-cab::after { content: ""; position: absolute; left: 0; bottom: -1px; width: 3.5rem; height: 3px; border-radius: 3px; background: linear-gradient(90deg, var(--indigo), var(--cyan)); }
.sec-cab h2 { font-size: clamp(1.4rem, 2.4vw, 1.75rem); letter-spacing: -.025em; }
.sec-cab p { font-size: .95rem; }

/* cartões de camada, perfil e perguntas */
.camadas { gap: 1.25rem; }
.camada { border-radius: var(--radius-lg); border-top-width: 3px; padding: 1.4rem 1.4rem 1.2rem; box-shadow: var(--shadow-sm); transition: box-shadow .2s, transform .2s; }
.camada:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.camada h3 { font-size: 1.15rem; }
.camada > p { font-size: .95rem; line-height: 1.5; margin-bottom: .9rem; }
.camada a { padding: .6rem .5rem; }
.camada strong { font-size: 1rem; } .camada small { font-size: .86rem; }
.camada a > svg { width: 2.1rem; height: 2.1rem; }
.perfis { gap: 1.25rem; }
.perfil { padding: 1.6rem; box-shadow: var(--shadow-sm); transition: box-shadow .2s; } .perfil:hover { box-shadow: var(--shadow-md); }
.perfil li a { padding: .8rem 0; transition: color .15s, padding .15s; } .perfil li a:hover { padding-left: .35rem; }
.faq-prev { gap: .75rem; }
.faq-prev a { padding: 1.05rem 1.25rem; border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); }
.faq-prev a:hover { box-shadow: var(--shadow-md); }
.cartoes { gap: 1.25rem; } .cartoes div { border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); padding: 1.4rem; }
.cartoes p { font-size: .95rem; line-height: 1.55; }

/* faixa final */
.cta { margin-top: 5rem; padding: 5rem 0; }
.cta h2 { font-size: clamp(1.7rem, 3.6vw, 2.5rem); letter-spacing: -.03em; }
.cta p { font-size: 1.05rem; }
.btn-ouro { box-shadow: 0 8px 24px color-mix(in oklch, var(--gold) 30%, transparent); } .btn-ouro:hover { box-shadow: 0 12px 30px color-mix(in oklch, var(--gold) 40%, transparent); }

/* páginas internas */
.banda { padding: calc(76px + 2.75rem) 0 3rem; background:
  radial-gradient(40rem 18rem at 90% -20%, color-mix(in oklch, var(--indigo) 35%, transparent), transparent 70%), var(--navy-deep); }
.banda::before { display: none; }
.banda h1 { font-size: clamp(1.9rem, 4vw, 2.85rem); letter-spacing: -.03em; }
.banda p { font-size: 1.12rem; line-height: 1.55; }
.interna { grid-template-columns: 17rem minmax(0, 1fr); gap: 3.5rem; padding: 3rem 0 5rem; }
.lateral { top: 6rem; max-height: calc(100vh - 7rem); overflow-y: auto; padding-right: .5rem; scrollbar-width: thin; font-size: .92rem; }
.lateral a { border-radius: 0 .5rem .5rem 0; padding: .45rem .85rem; transition: color .15s, background .15s, border-color .15s; }
.lateral a:hover { background: color-mix(in oklch, var(--indigo) 5%, transparent); }
.lateral .lat-t { margin-top: 1.5rem; }
article { font-size: 1.0625rem; line-height: 1.72; }
article h2 { font-size: 1.5rem; margin: 2.75rem 0 .85rem; letter-spacing: -.025em; }
article p, article li { max-width: 44rem; }
.paravoce { border-radius: 0 var(--radius-lg) var(--radius-lg) 0; box-shadow: var(--shadow-sm); }
.nota, .aviso { border-radius: 0 var(--radius-lg) var(--radius-lg) 0; }
.tabela { border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); background: var(--card); }
table { border-radius: 0; font-size: .95rem; }
tbody tr:nth-child(even) td, tbody tr:nth-child(even) th { background: color-mix(in oklch, var(--indigo) 3%, transparent) !important; }
tbody tr:last-child td, tbody tr:last-child th { border-bottom: 0; }
.pn a { border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); transition: border-color .15s, box-shadow .15s, transform .15s; } .pn a:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.pn { max-width: 44rem; }

/* perguntas frequentes */
details { border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); transition: border-color .15s, box-shadow .15s; max-width: 44rem; }
details:hover { border-color: color-mix(in oklch, var(--indigo) 35%, transparent); }
details[open] { border-color: color-mix(in oklch, var(--indigo) 45%, transparent); box-shadow: var(--shadow-md); }
summary { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1.1rem 1.35rem; }
summary::-webkit-details-marker { display: none; }
summary::after { content: ""; flex: none; width: .6rem; height: .6rem; border-right: 2px solid var(--indigo); border-bottom: 2px solid var(--indigo); rotate: 45deg; translate: 0 -2px; transition: rotate .2s, translate .2s; }
details[open] summary::after { rotate: 225deg; translate: 0 2px; }
details p { padding: 0 1.35rem 1.25rem; line-height: 1.65; }

/* rodapé */
footer { padding: 5rem 0 6.5rem; font-size: .95rem; }
footer .rod-t { font-size: .8rem; letter-spacing: .08em; color: rgb(255 255 255 / .92); }
footer a { transition: color .15s; }
.selo figcaption { font-size: 11px; }

/* mobile */
@media (max-width: 52rem) {
  .wrap { width: min(74rem, 100% - 2rem); }
  .hero { padding: calc(76px + 2.5rem) 0 5rem; }
  .hero h1 { font-size: clamp(2rem, 9vw, 2.6rem); }
  .hero p { font-size: 1.05rem; }
  .numeros { margin-top: -2.5rem; }
  .numeros .wrap { grid-template-columns: 1fr 1fr; gap: .75rem; }
  .numeros a { padding: 1rem; } .numeros strong { font-size: 1.45rem; }
  .bloco-home { padding-top: 3rem; }
  .sec-cab { align-items: flex-start; }
  .interna { gap: 1.5rem; padding-bottom: 3.5rem; }
  .lateral { max-height: none; overflow: visible; padding: 0; }
  .banda { padding-bottom: 2.25rem; }
  .cta { padding: 3.5rem 0; margin-top: 3.5rem; }
}
@media (max-width: 30rem) { .numeros .wrap { grid-template-columns: 1fr; } .faq-prev { grid-template-columns: 1fr; } .relance { grid-template-columns: 1fr; } }
.lateral { padding: .5rem .75rem .5rem .5rem; margin: -.5rem -.75rem -.5rem -.5rem; }
.lateral .lat-t { padding-left: .85rem; }
@media (max-width: 52rem) { .lateral { padding: 0; margin: 0; } }

/* ===== infográfico dos controles ===== */
.mapa { position: relative; display: block; margin: 0 0 2.5rem; background: #fff; border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow-md); overflow: hidden; text-decoration: none; transition: box-shadow .2s, transform .2s; }
.mapa:hover { box-shadow: var(--shadow-lg); transform: translateY(-2px); }
.mapa-rolagem { overflow-x: auto; }
.mapa img { display: block; width: 100%; height: auto; min-width: 56rem; }
.mapa-dica { position: absolute; right: .9rem; bottom: .9rem; padding: .35rem .85rem; border-radius: 999px; background: rgb(20 15 80 / .82); color: #fff; font: 600 .75rem var(--font-body); letter-spacing: .02em; opacity: 0; transition: opacity .2s; pointer-events: none; }
.mapa:hover .mapa-dica, .mapa:focus-visible .mapa-dica { opacity: 1; }
.sub-camadas { font-size: .8rem; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); margin: 0 0 1rem; font-weight: 700; }
@media (hover: none) { .mapa-dica { opacity: 1; } }

/* ===== sub-menu de controles ===== */
.grupo-menu { margin: .1rem 0; border-radius: .6rem; }
.grupo-menu > summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: .5rem; padding: .5rem .85rem; font: 600 .9rem var(--font-body); color: var(--navy); border-left: 2px solid var(--border); border-radius: 0 .5rem .5rem 0; transition: background .15s, color .15s; }
.grupo-menu > summary::-webkit-details-marker { display: none; }
.grupo-menu > summary::after { content: ""; flex: none; width: .45rem; height: .45rem; border-right: 2px solid var(--muted); border-bottom: 2px solid var(--muted); rotate: -45deg; transition: rotate .2s; }
.grupo-menu[open] > summary::after { rotate: 45deg; }
.grupo-menu > summary:hover { background: color-mix(in oklch, var(--indigo) 5%, transparent); color: var(--indigo); }
.grupo-menu[open] > summary { color: var(--indigo); }
.grupo-menu > a { margin-left: .75rem; font-size: .88rem; }
.ver { list-style: none !important; padding: 0 !important; display: flex; flex-wrap: wrap; gap: .6rem; margin: .5rem 0 0; }
.ver li { padding: 0 !important; margin: 0 !important; max-width: none; }
.ver li::before { display: none !important; }
.ver a { display: inline-flex; align-items: center; gap: .45rem; padding: .55rem 1rem; border: 1px solid var(--border); border-radius: 999px; background: var(--card); color: var(--navy); font-weight: 600; font-size: .92rem; text-decoration: none; box-shadow: var(--shadow-sm); transition: border-color .15s, color .15s, transform .15s; }
.ver a:hover { border-color: color-mix(in oklch, var(--indigo) 45%, transparent); color: var(--indigo); transform: translateY(-1px); }
.ver svg { width: .95rem; height: .95rem; color: var(--indigo); }
details.grupo-menu, details.grupo-menu[open], details.grupo-menu:hover { border: 0; box-shadow: none; background: none; max-width: none; border-radius: 0; margin: .15rem 0; }
.grupo-menu > summary { padding: .5rem .85rem; font: 600 .9rem/1.3 var(--font-body); }
.grupo-menu > summary::after { rotate: 45deg; translate: 0 -2px; }
.grupo-menu[open] > summary::after { rotate: 225deg; translate: 0 2px; }
.grupo-menu > summary::after { rotate: none; translate: none; transform: translateY(-2px) rotate(45deg); transition: transform .2s; }
.grupo-menu[open] > summary::after { rotate: none; translate: none; transform: translateY(2px) rotate(225deg); }

/* ===== infográfico interativo ===== */
.mapa-ia { position: relative; margin: 0 0 2.5rem; }
.mapa-dica-topo { display: flex; align-items: center; gap: .6rem; margin: 0 0 .85rem; font: 600 .95rem var(--font-body); color: var(--indigo); }
.pulso { position: relative; width: .6rem; height: .6rem; border-radius: 50%; background: var(--indigo); flex: none; }
.pulso::after { content: ""; position: absolute; inset: -.3rem; border-radius: 50%; border: 2px solid var(--indigo); animation: pulsar 1.8s ease-out infinite; }
@keyframes pulsar { from { transform: scale(.6); opacity: .9; } to { transform: scale(1.7); opacity: 0; } }
/* painel (gaveta) */
.gaveta-fundo { position: fixed; inset: 0; z-index: 100000000; background: rgb(10 8 40 / .5); backdrop-filter: blur(2px); opacity: 0; transition: opacity .25s; }
.gaveta-fundo.aberta { opacity: 1; }
.gaveta { --cor: var(--indigo); position: fixed; z-index: 100000001; top: 0; right: 0; bottom: 0; width: min(30rem, 100%); overflow-y: auto; background: var(--card); padding: 1.5rem 1.75rem 2rem; border-left: 5px solid var(--cor); box-shadow: -24px 0 60px rgb(10 8 40 / .25); transform: translateX(100%); transition: transform .28s cubic-bezier(.2, .8, .2, 1); outline: none; line-height: 1.6; }
.gaveta.aberta { transform: none; }
.gaveta[data-g="0"], .gaveta[data-g="3"] { --cor: oklch(0.33 0.16 275); } .gaveta[data-g="1"] { --cor: oklch(0.72 0.14 225); } .gaveta[data-g="2"], .gaveta[data-g="5"] { --cor: oklch(0.72 0.16 145); } .gaveta[data-g="4"] { --cor: oklch(0.6 0.12 235); }
.gaveta[hidden], .gaveta-fundo[hidden] { display: none; }
.g-topo { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.g-grupo { display: inline-block; padding: .3rem .8rem; border-radius: 999px; background: color-mix(in srgb, var(--cor) 14%, white); color: color-mix(in oklch, var(--cor) 70%, black); font: 700 .72rem var(--font-display); text-transform: uppercase; letter-spacing: .06em; }
.g-x { width: 2.4rem; height: 2.4rem; border: 1px solid var(--border); border-radius: 50%; background: var(--card); font-size: 1.5rem; line-height: 1; cursor: pointer; color: var(--navy); transition: background .15s, border-color .15s; }
.g-x:hover { background: color-mix(in srgb, var(--indigo) 8%, white); border-color: var(--indigo); }
.gaveta h3 { margin: 0 0 .35rem; font-size: 1.75rem; font-weight: 800; letter-spacing: -.03em; }
.g-resumo { margin: 0 0 1.25rem; color: var(--muted); font-size: 1.05rem; }
.g-voce { margin: 0 0 1.5rem; padding: 1rem 1.15rem; border-left: 4px solid var(--cor); border-radius: 0 var(--radius-lg) var(--radius-lg) 0; background: color-mix(in srgb, var(--cor) 9%, white); font-size: 1.02rem; }
.g-voce strong { display: block; margin-bottom: .2rem; font: 700 .7rem var(--font-display); text-transform: uppercase; letter-spacing: .08em; color: color-mix(in oklch, var(--cor) 70%, black); }
.gaveta h4 { margin: 1.4rem 0 .5rem; font: 700 .78rem var(--font-display); text-transform: uppercase; letter-spacing: .09em; color: var(--muted); }
.gaveta p { margin: 0 0 .5rem; }
.gaveta ul { list-style: none; margin: 0; padding: 0; }
.gaveta li { position: relative; padding: .35rem 0 .35rem 1.75rem; }
.gaveta li::before { content: ""; position: absolute; left: 0; top: .6rem; width: 1.05rem; height: 1.05rem; border-radius: 50%; background: color-mix(in srgb, var(--cor) 16%, white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23463bd6' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12 4 4 8-8'/%3E%3C/svg%3E") center/70% no-repeat; }
.g-ver div { display: flex; flex-wrap: wrap; gap: .5rem; }
.g-ver a { padding: .4rem .85rem; border: 1px solid var(--border); border-radius: 999px; font: 600 .85rem var(--font-body); color: var(--navy); text-decoration: none; transition: border-color .15s, color .15s; }
.g-ver a:hover { border-color: var(--indigo); color: var(--indigo); }
.g-pagina { display: block; margin: 1.75rem 0 1.25rem; padding: .9rem 1.25rem; border-radius: .85rem; background: var(--indigo); color: #fff !important; font: 700 .95rem var(--font-body); text-align: center; text-decoration: none; box-shadow: 0 6px 16px color-mix(in oklch, var(--indigo) 30%, transparent); transition: transform .2s, box-shadow .2s; }
.g-pagina:hover { transform: translateY(-1px); box-shadow: 0 10px 22px color-mix(in oklch, var(--indigo) 38%, transparent); }
.g-pagina::after { content: " →"; }
.g-nav { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding-top: 1rem; border-top: 1px solid var(--border); }
.g-nav button { border: 1px solid var(--border); background: var(--card); border-radius: .7rem; padding: .55rem 1rem; font: 600 .88rem var(--font-body); color: var(--navy); cursor: pointer; transition: border-color .15s, color .15s; }
.g-nav button:hover { border-color: var(--indigo); color: var(--indigo); }
.g-pos { font-size: .82rem; color: var(--muted); }
html.gaveta-aberta { overflow: hidden; }
@media (max-width: 52rem) {
  .gaveta { top: auto; left: 0; width: 100%; max-height: 88vh; border-left: 0; border-top: 5px solid var(--cor); border-radius: 1.25rem 1.25rem 0 0; transform: translateY(100%); box-shadow: 0 -20px 50px rgb(10 8 40 / .3); padding: 1.25rem 1.25rem 1.75rem; }
  .gaveta.aberta { transform: none; }
  .gaveta h3 { font-size: 1.5rem; }
}
@media (prefers-reduced-motion: reduce) { .gaveta, .gaveta-fundo { transition: none; } .pulso::after { animation: none; } }

/* ===== mapa nativo: camadas, da pessoa ao ambiente ===== */
.hero { padding-bottom: 4.5rem; }
.mapa-sec { padding-top: 4rem; }
.mapa-ia { margin-bottom: 0; }
.trilha { --rail: 3.25rem; position: relative; display: grid; gap: 1.75rem; padding-left: var(--rail); }
.trilha::before { content: ""; position: absolute; left: calc(1.15rem - 1.5px); top: 1.2rem; bottom: 1.2rem; width: 3px; border-radius: 3px; background: linear-gradient(180deg, oklch(0.33 0.16 275), oklch(0.72 0.14 225) 25%, oklch(0.72 0.16 145) 50%, oklch(0.6 0.12 235) 78%, oklch(0.72 0.16 145)); opacity: .55; }
.ponta { position: relative; display: flex; align-items: center; gap: .9rem; margin-left: calc(var(--rail) * -1); }
.ponta-ic { flex: none; display: grid; place-items: center; width: 2.3rem; height: 2.3rem; border-radius: 50%; background: var(--navy); color: #fff; box-shadow: 0 0 0 5px var(--bg); }
.ponta-ic svg { width: 1.15rem; height: 1.15rem; }
.ponta strong { display: block; font: 800 1.05rem/1.2 var(--font-display); letter-spacing: -.01em; }
.ponta small { color: var(--muted); font-size: .85rem; }
.ponta-fim { margin-top: .25rem; }
.ponta-fim > span:last-child { display: block; padding: .8rem 1.25rem; border-radius: var(--radius-lg); background: linear-gradient(135deg, var(--navy), oklch(0.26 0.13 275)); color: #fff; box-shadow: var(--shadow-md); }
.ponta-fim small { color: rgb(255 255 255 / .7); }

.lane { --cor: oklch(0.33 0.16 275); --forte: oklch(0.33 0.16 275); position: relative; padding: 2.1rem 1.5rem 1.4rem; border: 0; outline: 1.5px dashed color-mix(in srgb, var(--cor) 55%, white); outline-offset: -1.5px; border-radius: 1.25rem; background: color-mix(in srgb, var(--cor) 5%, white); }
.lane.g1 { --cor: oklch(0.72 0.14 225); --forte: oklch(0.55 0.13 230); }
.lane.g2, .lane.g5 { --cor: oklch(0.72 0.16 145); --forte: oklch(0.52 0.14 150); }
.lane.g4 { --cor: oklch(0.6 0.12 235); --forte: oklch(0.5 0.12 240); }
.lane-n { position: absolute; left: calc(var(--rail) * -1 + 1.15rem - 1.15rem); top: 1rem; display: grid; place-items: center; width: 2.3rem; height: 2.3rem; border-radius: 50%; background: var(--forte); color: #fff; font: 800 1rem var(--font-display); box-shadow: 0 0 0 5px var(--bg); }
.lane-pill { position: absolute; top: -.95rem; left: 1.5rem; margin: 0; padding: .35rem 1.1rem; border-radius: 999px; background: var(--forte); color: #fff; font: 700 .85rem/1.2 var(--font-display); letter-spacing: .01em; box-shadow: 0 4px 12px color-mix(in oklch, var(--forte) 35%, transparent); }
.lane-txt { margin: 0 0 1.25rem; color: var(--muted); font-size: .98rem; max-width: 44rem; }
.nos { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; grid-template-columns: repeat(auto-fit, minmax(8.5rem, 1fr)); position: relative; }
.no { width: 100%; display: grid; justify-items: center; align-content: start; gap: .3rem; padding: .35rem .3rem .6rem; border: 0; border-radius: 1rem; background: transparent; font: inherit; color: inherit; text-align: center; cursor: pointer; position: relative; z-index: 1; }
.no-ic { display: grid; place-items: center; width: 3.7rem; height: 3.7rem; border-radius: 50%; border: 2.5px solid var(--cor); background: #fff; color: var(--forte); box-shadow: 0 0 0 5px color-mix(in oklch, var(--cor) 11%, transparent); transition: transform .2s ease, background-color .2s ease, color .2s ease, box-shadow .2s ease; }
.no-ic svg { width: 1.6rem; height: 1.6rem; }
.no-t { margin-top: .35rem; font: 700 .93rem/1.25 var(--font-display); color: var(--navy); }
.no-s { font-size: .8rem; line-height: 1.35; color: var(--muted); }
.no:hover .no-ic, .no:focus-visible .no-ic, .no.ativo .no-ic { transform: scale(1.1); background: var(--forte); color: #fff; box-shadow: 0 0 0 6px color-mix(in oklch, var(--cor) 24%, transparent), 0 12px 24px color-mix(in oklch, var(--forte) 38%, transparent); }
.no:focus-visible { outline: 3px solid var(--forte); outline-offset: 2px; }
.no:active .no-ic { transform: scale(1.02); }
.trilha-caixa { container-type: inline-size; }
@container (min-width: 60rem) {
  .nos { grid-template-columns: repeat(var(--n), minmax(0, 1fr)); }
  .nos::before { content: ""; position: absolute; left: calc(50% / var(--n)); right: calc(50% / var(--n)); top: calc(.35rem + 1.85rem - 1.5px); height: 3px; border-radius: 3px; background: color-mix(in srgb, var(--cor) 45%, white); }
}
@container (min-width: 40rem) and (max-width: 59.99rem) {
  .nos[data-n="3"], .nos[data-n="4"], .nos[data-n="5"] { grid-template-columns: repeat(var(--n), minmax(0, 1fr)); }
  .nos[data-n="3"]::before, .nos[data-n="4"]::before, .nos[data-n="5"]::before { content: ""; position: absolute; left: calc(50% / var(--n)); right: calc(50% / var(--n)); top: calc(.35rem + 1.85rem - 1.5px); height: 3px; border-radius: 3px; background: color-mix(in srgb, var(--cor) 45%, white); }
}
@container (max-width: 34rem) {
  .trilha { --rail: 0px; padding-left: 0; gap: 2.25rem; } .trilha::before { display: none; }
  .ponta { margin-left: 0; } .lane-n { position: static; display: inline-grid; margin-bottom: .6rem; width: 1.9rem; height: 1.9rem; font-size: .85rem; box-shadow: none; }
  .lane { padding: 1.9rem 1rem 1rem; } .lane-pill { left: 1rem; }
  .nos { grid-template-columns: 1fr; gap: .15rem; }
  .no { grid-template-columns: auto 1fr; justify-items: start; text-align: left; column-gap: .9rem; align-items: center; padding: .55rem .5rem; }
  .no-ic { grid-row: span 2; width: 3rem; height: 3rem; } .no-ic svg { width: 1.35rem; height: 1.35rem; }
  .no-t { margin-top: 0; align-self: end; } .no-s { align-self: start; }
}
/* dentro de um artigo: sem os estilos de lista e de largura do texto corrido */
article .nos { list-style: none; padding: 0; margin: 0; }
article .nos li { max-width: none; margin: 0; padding: 0; }
article .nos li::before { display: none; }
article .lane-txt { max-width: none; }
article .mapa-ia { margin: 1.5rem 0 2.5rem; }
article .trilha p, article .trilha strong { max-width: none; }
.mapa-dica-topo { margin: 0 0 1.5rem; padding-left: .15rem; }
/* seta do grupo do menu: ícone em vez de borda girada */
details.grupo-menu > summary::after, details.grupo-menu[open] > summary::after { content: ""; flex: none; width: .7rem; height: .7rem; border: 0; rotate: none; translate: none; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23463bd6' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat; transform: none; transition: transform .2s; }
details.grupo-menu[open] > summary::after { transform: rotate(180deg); }
/* páginas internas no celular: uma coluna (o bloco v5 reimpôs duas colunas depois da regra original) */
@media (max-width: 52rem) {
  .interna { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
  .lateral { position: static; max-height: none; overflow: visible; }
}
/* mais específico que "article ul:not(.toc):not(.jornada) li" */
article ul.nos.nos { list-style: none; padding: 0; margin: 0; }
article ul.nos.nos li { padding: 0; margin: 0; max-width: none; }
article ul.nos.nos li::before { display: none; }

/* ===== mapa em serpentina (tela larga): ida, volta, ida, volta, como no infográfico ===== */
.fila { display: contents; }
.volta, .serp-titulo { display: none; }
.ponta-fim { order: 9; }
@container (min-width: 73rem) {
  .trilha { --curva: 3.5rem; --gapfila: 2.75rem; --ic: 3.4rem; --lpx: .75rem; --ly: calc(1.6rem + .35rem + var(--ic) / 2); --fio: color-mix(in srgb, var(--navy) 28%, white); padding: 1.25rem var(--curva) 0; gap: var(--gapfila); }
  .trilha::before, .lane-n, .lane-txt { display: none; }
  .fila { display: grid; align-items: start; position: relative; column-gap: 1.75rem; }
  .fila::before { content: ""; position: absolute; top: calc(var(--ly) - 1.5px); height: 3px; border-radius: 3px; background: var(--fio); }
  .f1 { grid-template-columns: 7rem 4fr 5fr; } .f1::before { left: 3.5rem; right: calc(var(--curva) * -1); }
  .f2 { grid-template-columns: 2fr 7fr; } .f2 .lane { grid-column: 2; } .f2::before { left: calc(var(--curva) * -1); right: calc(var(--curva) * -1); }
  .f3 { grid-template-columns: 5fr 5fr; column-gap: 2.25rem; } .f3::before { left: calc(var(--curva) * -1); right: calc(var(--curva) * -1); }
  .f4 { grid-template-columns: 12.5rem 11.5rem minmax(0, 1fr); column-gap: 2.25rem; align-items: start; } .f4::before { left: 100%; width: var(--curva); }
  .lane { padding: 1.6rem var(--lpx) .9rem; z-index: 1; }
  .nos { gap: 0; } .nos::before { left: calc(var(--lpx) * -1); right: calc(var(--lpx) * -1); top: calc(.35rem + var(--ic) / 2 - 1.5px); }
  .no { padding: .35rem .15rem .5rem; } .no-ic { width: var(--ic); height: var(--ic); } .no-ic svg { width: 1.45rem; height: 1.45rem; }
  .no-t { font-size: .82rem; margin-top: .3rem; } .no-s { font-size: .72rem; }
  .volta { display: block; position: absolute; top: var(--ly); height: calc(100% + var(--gapfila)); width: var(--curva); border: 3px solid var(--fio); z-index: 0; }
  .volta.dir { right: calc(var(--curva) * -1); border-left: 0; border-radius: 0 999px 999px 0; }
  .volta.esq { left: calc(var(--curva) * -1); border-right: 0; border-radius: 999px 0 0 999px; }
  .ponta { margin: 0; }
  .ponta-ini { display: grid; justify-items: center; text-align: center; gap: .45rem; margin-top: calc(var(--ly) - 1.15rem); position: relative; z-index: 1; }
  .ponta-ini strong { font-size: .82rem; } .ponta-ini small { display: none; }
  .ponta-fim { order: 0; position: relative; z-index: 1; display: grid; justify-items: center; align-content: center; gap: .5rem; height: 8.5rem; margin-top: calc(var(--ly) - 4.25rem); padding: 1rem; border-radius: 1.1rem; text-align: center; background: linear-gradient(145deg, var(--navy), oklch(0.27 0.14 275)); color: #fff; box-shadow: var(--shadow-lg); }
  .ponta-fim > span:last-child { display: block; padding: 0; background: none; box-shadow: none; }
  .ponta-fim .ponta-ic { width: 3rem; height: 3rem; background: #fff; color: var(--navy); box-shadow: 0 0 0 5px rgb(255 255 255 / .12); } .ponta-fim .ponta-ic svg { width: 1.5rem; height: 1.5rem; }
  .ponta-fim strong { font-size: .95rem; } .ponta-fim small { color: rgb(255 255 255 / .75); font-size: .78rem; }
  .ponta-fim::after { content: ""; position: absolute; left: 100%; top: 50%; width: 2.5rem; height: 3px; margin-top: -1.5px; background: var(--fio); }
  .serp-titulo { display: block; align-self: center; margin: 0; padding-top: 2rem; font: 800 1.5rem/1.2 var(--font-display); letter-spacing: -.025em; color: var(--navy); }
  .serp-titulo em { display: block; font-style: normal; color: oklch(0.58 0.13 225); }
}
@container (min-width: 73rem) {
  .fila { align-items: stretch; }
  .ponta-ini, .ponta-fim { align-self: start; }
  .f1 { grid-template-columns: 6rem 4fr 5fr; column-gap: 1.25rem; }
}
/* na serpentina as caixas só aparecem com fade: deslocar as caixas desalinharia o fio e as curvas, que ficam fixos */
@container (min-width: 73rem) { .anima .lane.reveal { transform: none; } }
@container (min-width: 73rem) { .volta { top: calc(var(--ly) - 1.5px); height: calc(100% + var(--gapfila) + 3px); } }
.nb { white-space: nowrap; }

/* serpentina: título e subtítulo alinhados entre os círculos da mesma camada (subgrid) */
@container (min-width: 73rem) {
  .nos { grid-template-rows: auto auto 1fr; }
  .nos li { display: grid; grid-row: span 3; grid-template-rows: subgrid; }
  .no { grid-row: 1 / span 3; grid-template-rows: subgrid; align-content: start; row-gap: 0; }
  .no-ic { grid-row: 1; } .no-t { grid-row: 2; text-wrap: balance; } .no-s { grid-row: 3; text-wrap: balance; }
}

/* o fio da fila termina onde a curva nasce (sem pedaço solto para fora) */
@container (min-width: 73rem) {
  .f1::before { right: 0; }
  .f2::before, .f3::before { left: 0; right: 0; }
  .f4::before { display: none; }
}
@container (min-width: 73rem) { .f1 { grid-template-columns: 6rem 3.9fr 5.6fr; } }

/* serpentina: tudo em pixel inteiro (círculo 56px, centro da linha a 58px do topo da caixa) e fios de 2px */
@container (min-width: 73rem) {
  .trilha { --ic: 3.5rem; --ly: calc(1.5rem + .375rem + var(--ic) / 2); }
  .lane { padding: 1.5rem var(--lpx) .9rem; }
  .no { padding-top: .375rem; }
  .fila::before { top: calc(var(--ly) - 1px); height: 2px; border-radius: 0; }
  .nos::before { top: calc(.375rem + var(--ic) / 2 - 1px); height: 2px; border-radius: 0; left: calc(var(--lpx) * -1); right: calc(var(--lpx) * -1); }
  .volta { border-width: 2px; top: calc(var(--ly) - 1px); height: calc(100% + var(--gapfila) + 2px); }
  .ponta-fim::after { height: 2px; margin-top: -1px; }
}
@container (min-width: 73rem) { .f1 { grid-template-columns: 6rem 3.85fr 5.8fr; } }

/* ===== home: hero centralizado, índice, políticas e perguntas ===== */
.hero { text-align: center; padding-bottom: 5.75rem; background:
  radial-gradient(60rem 26rem at 50% -18%, color-mix(in oklch, var(--indigo) 40%, transparent), transparent 70%),
  radial-gradient(30rem 16rem at 0% 115%, color-mix(in oklch, var(--cyan) 16%, transparent), transparent 70%),
  radial-gradient(30rem 16rem at 100% 115%, color-mix(in oklch, var(--cyan) 16%, transparent), transparent 70%), var(--navy-deep); }
.hero .wrap > * { margin-inline: auto; }
.hero p { margin: 0 auto 1.75rem; }
.hero .atalhos { justify-content: center; margin: 1.1rem auto 0; max-width: 46rem; }
.hero .resultados, .hero .resultados * { text-align: left; }
html { scroll-padding-top: 5.5rem; }
.indice { position: relative; z-index: 2; margin-top: -2.75rem; }
.indice .wrap { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.indice a { display: flex; align-items: center; gap: .9rem; padding: 1.1rem 1.3rem; background: var(--card); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow-md); text-decoration: none; color: inherit; transition: transform .2s, box-shadow .2s, border-color .2s; }
.indice a:hover { transform: translateY(-3px); box-shadow: var(--shadow-lg); border-color: color-mix(in srgb, var(--indigo) 45%, transparent); }
.indice strong { display: block; font: 700 1rem/1.25 var(--font-display); } .indice small { display: block; margin-top: .1rem; color: var(--muted); font-size: .85rem; }
.mapa-sec { padding-top: 4.5rem; }

.pol-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 1.5rem; align-items: stretch; }
.gov { display: flex; flex-direction: column; gap: 1rem; padding: 1.9rem; border-radius: var(--radius-lg); background: linear-gradient(145deg, var(--navy), oklch(0.26 0.13 275)); color: #fff; box-shadow: var(--shadow-lg); }
.gov h3 { margin: 0; font: 800 1.35rem/1.2 var(--font-display); letter-spacing: -.02em; color: #fff; }
.gov > p { margin: 0; color: rgb(255 255 255 / .75); }
.gov ul { list-style: none; margin: .25rem 0 0; padding: 0; display: grid; gap: .85rem; }
.gov li { position: relative; padding-left: 2rem; color: rgb(255 255 255 / .9); line-height: 1.5; }
.gov li::before { content: ""; position: absolute; left: 0; top: .15rem; width: 1.2rem; height: 1.2rem; border-radius: 50%; background: var(--cyan) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b0a2a' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12 4 4 8-8'/%3E%3C/svg%3E") center / 70% no-repeat; }
.gov strong { color: #fff; }
.gov .btn-sec { margin-top: auto; align-self: flex-start; }
.pol-docs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.pol { display: flex; flex-direction: column; gap: .6rem; padding: 1.4rem; background: var(--card); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); text-decoration: none; color: inherit; transition: transform .2s, box-shadow .2s, border-color .2s; }
.pol:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); border-color: color-mix(in srgb, var(--indigo) 40%, transparent); }
.pol-ic { display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border-radius: .8rem; background: color-mix(in srgb, var(--indigo) 10%, white); color: var(--indigo); }
.pol-ic svg { width: 1.4rem; height: 1.4rem; }
.pol strong { font: 700 1.05rem/1.3 var(--font-display); margin-top: .25rem; }
.pol-d { color: var(--muted); font-size: .92rem; line-height: 1.5; }
.pol-meta { display: flex; justify-content: space-between; align-items: center; gap: .75rem; margin-top: auto; padding-top: .85rem; border-top: 1px solid var(--border); font-size: .82rem; }
.pol-meta em { font-style: normal; padding: .2rem .65rem; border-radius: 999px; background: color-mix(in srgb, var(--cyan) 16%, white); color: oklch(0.38 0.08 220); font-weight: 600; }
.pol-meta b { display: inline-flex; align-items: center; gap: .25rem; color: var(--indigo); } .pol-meta svg { width: .9rem; height: .9rem; }

.faq-home { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 2.5rem; align-items: start; }
.faq-intro { position: sticky; top: 6rem; } .faq-intro p { margin: 0 0 1.25rem; font-size: 1.1rem; color: var(--muted); }
.faq-lista details { max-width: none; margin: 0 0 .7rem; }
.faq-lista details p { color: var(--text); }
.faq-lista details p.mais { padding-top: 0; margin: 0; } .faq-lista .mais a { display: inline-flex; align-items: center; gap: .2rem; font-weight: 600; font-size: .9rem; text-decoration: none; } .faq-lista .mais svg { width: .9rem; height: .9rem; }

@media (max-width: 62rem) { .pol-grid, .faq-home { grid-template-columns: minmax(0, 1fr); } .faq-intro { position: static; } }
@media (max-width: 40rem) {
  .hero { padding-bottom: 5rem; }
  .indice { margin-top: -2.4rem; } .indice .wrap { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .6rem; }
  .indice a { flex-direction: column; text-align: center; padding: .85rem .4rem; gap: .45rem; } .indice small { display: none; } .indice strong { font-size: .82rem; }
  .pol-docs { grid-template-columns: minmax(0, 1fr); }
}

/* ===== faixa "Segurança em seis níveis" (toda página interna) ===== */
.niveis { margin: 3rem 0 1.5rem; padding: 1.75rem; border-radius: var(--radius-lg); background: linear-gradient(145deg, var(--navy), oklch(0.26 0.13 275)); color: #fff; box-shadow: var(--shadow-lg); max-width: 48rem; }
article .niveis h2 { margin: 0 0 .4rem; font-size: 1.35rem; color: #fff; }
article .niveis p { margin: 0 0 1.1rem; max-width: none; color: rgb(255 255 255 / .8); }
.niveis ol { list-style: none !important; margin: 0 0 1.25rem; padding: 0 !important; display: flex; flex-wrap: wrap; gap: .5rem; counter-reset: none; }
article .niveis ol li { padding: 0; margin: 0; max-width: none; } article .niveis ol li::before { display: none; }
.niveis ol a { display: inline-flex; align-items: center; gap: .5rem; padding: .35rem .85rem .35rem .4rem; border: 1px solid rgb(255 255 255 / .2); border-radius: 999px; background: rgb(255 255 255 / .07); color: #fff; font: 600 .85rem var(--font-body); text-decoration: none; transition: background .15s, border-color .15s; }
.niveis ol a:hover { background: rgb(255 255 255 / .15); border-color: var(--cyan); }
.niveis .n { display: grid; place-items: center; width: 1.45rem; height: 1.45rem; border-radius: 50%; background: rgb(255 255 255 / .14); font: 800 .75rem var(--font-display); }
.niveis li.aqui a { background: var(--cyan); border-color: var(--cyan); color: oklch(0.2 0.05 275); } .niveis li.aqui .n { background: oklch(0.2 0.05 275); color: #fff; }
.niveis-bt { display: flex; flex-wrap: wrap; align-items: center; gap: 1.1rem; }
.niveis-bt > a:not(.btn) { color: rgb(255 255 255 / .85); font-weight: 600; font-size: .92rem; }
.niveis .btn { background: linear-gradient(135deg, var(--gold), oklch(0.82 0.16 80)); color: var(--navy) !important; box-shadow: 0 8px 22px color-mix(in srgb, var(--gold) 30%, transparent); }
@media print { .niveis { display: none; } }

/* ===== barra igual à do site (8 itens) + menu do celular ===== */
.topbar .logo-link { display: flex; flex: none; }
.topbar nav { gap: .1rem; }
.topbar nav a { padding: .5rem .65rem; white-space: nowrap; }
.topbar nav a.btn { margin-left: .5rem; padding: .65rem 1.25rem; }
@media (min-width: 80rem) { .topbar nav a { padding: .5rem .875rem; } }
.burger { display: none; width: 2.6rem; height: 2.6rem; padding: 0; border: 0; border-radius: .6rem; background: transparent; cursor: pointer; flex-direction: column; justify-content: center; align-items: center; gap: 5px; }
.burger span { display: block; width: 1.3rem; height: 2px; border-radius: 2px; background: rgb(255 255 255 / .9); transition: transform .2s, opacity .2s, background-color .2s; }
.topbar.rolou .burger span, .topbar.menu-aberto .burger span { background: var(--navy); }
.burger:hover { background: rgb(255 255 255 / .12); } .topbar.rolou .burger:hover { background: color-mix(in srgb, var(--indigo) 8%, transparent); }
.topbar.menu-aberto .burger span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.topbar.menu-aberto .burger span:nth-child(2) { opacity: 0; }
.topbar.menu-aberto .burger span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
@media (max-width: 71.99rem) {
  .burger { display: flex; }
  .topbar .wrap { gap: .5rem; }
  .topbar nav { display: none; position: absolute; top: 100%; left: 0; right: 0; flex-direction: column; align-items: stretch; gap: .15rem; padding: .6rem 1rem 1.1rem; background: rgb(255 255 255 / .98); backdrop-filter: blur(16px); box-shadow: 0 18px 30px rgb(10 8 40 / .18); border-top: 1px solid var(--border); }
  .topbar.menu-aberto nav { display: flex; }
  .topbar nav a:not(.btn) { display: block; padding: .85rem 1rem; font-size: 15px; color: oklch(0.3 0.04 275); }
  .topbar nav a:not(.btn):hover { color: var(--indigo); background: color-mix(in srgb, var(--indigo) 6%, transparent); }
  .topbar nav a[aria-current] { color: var(--indigo); background: color-mix(in srgb, var(--indigo) 8%, transparent); }
  .topbar nav a.btn { margin: .6rem 0 0; text-align: center; justify-content: center; }
}
.topbar.menu-aberto { background: rgb(255 255 255 / .98); }
.topbar.menu-aberto .logo-cor { display: block; } .topbar.menu-aberto .logo-branco { display: none; }

/* identificação da empresa no bloco do Encarregado */
.dpo .dpo-emp { margin-top: .6rem; padding-top: .6rem; border-top: 1px solid var(--border); font-size: .85rem; line-height: 1.5; color: var(--muted); }

/* Por onde começar (home) */
.comeco { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.comeco a { display: flex; flex-direction: column; gap: .55rem; padding: 1.3rem 1.4rem; background: var(--card); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow-md); text-decoration: none; color: inherit; transition: transform .2s, box-shadow .2s, border-color .2s; }
.comeco a:hover { transform: translateY(-3px); box-shadow: var(--shadow-lg); border-color: color-mix(in srgb, var(--indigo) 45%, transparent); }
.comeco strong { font: 700 1.05rem/1.3 var(--font-display); }
.comeco span { color: var(--muted); font-size: .95rem; line-height: 1.55; }
.comeco em { margin-top: auto; padding-top: .35rem; font-style: normal; font-weight: 600; color: var(--indigo); }
@media (max-width: 55rem) { .comeco { grid-template-columns: 1fr; } }

/* rodapé: redes sociais, subtítulo da marca e copyright centralizado (igual ao site) */
footer .marca .marca-sub { margin-top: 1.1rem; font-size: .8rem; color: rgb(255 255 255 / .55); }
footer .redes { display: flex; gap: .75rem; margin-top: 1.5rem; }
footer .redes a { width: 2.25rem; height: 2.25rem; display: flex; align-items: center; justify-content: center; border-radius: .5rem; border: 1px solid rgb(255 255 255 / .1); background: rgb(255 255 255 / .05); color: rgb(255 255 255 / .6); transition: color .2s, border-color .2s; }
footer .redes a:hover { color: var(--cyan); border-color: color-mix(in srgb, var(--cyan) 30%, transparent); }
footer .redes svg { width: 1rem; height: 1rem; }
footer .copy { text-align: center; }
footer .contato .selos { margin-top: 2rem; }

/* privacidade na home: o cartão do Encarregado tem o mesmo desenho dos cartões "Por onde começar" */
.comeco .card-dpo { display: flex; flex-direction: column; gap: .55rem; padding: 1.3rem 1.4rem; background: var(--card); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow-md); }
.comeco .card-dpo a { display: inline; padding: 0; background: none; border: 0; box-shadow: none; border-radius: 0; transform: none; color: var(--indigo); font-weight: 600; text-decoration: none; }
.comeco .card-dpo a:hover { transform: none; box-shadow: none; text-decoration: underline; }
.dpo-contatos { display: flex; flex-direction: column; gap: .2rem; }
.comeco .card-dpo .dpo-mais { margin-top: auto; padding-top: .35rem; }

/* o menu de resultados da busca da home não pode ser cortado pelo hero nem ficar atrás do índice */
.hero { overflow: visible; overflow-x: clip; }

.comeco.dois { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 55rem) { .comeco.dois { grid-template-columns: 1fr; } }

/* atalhos no fim da home: não sobem sobre o topo */
.hero { padding-bottom: 4rem; }
.indice.fim { margin-top: 0; padding: 2.5rem 0 4.5rem; }

/* ritmo da home: seções alternam fundo; "Continue explorando" fecha antes do CTA */
#comeco, #politicas { background: color-mix(in oklch, var(--indigo) 4%, var(--bg)); margin-top: 4rem; padding-bottom: 4rem; }
#explorar .sec-cab { margin-bottom: 1.25rem; }
.indice.fim { padding: 0 0 4.5rem; }
.comeco.quatro { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 70rem) { .comeco.quatro { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 40rem) { .comeco.quatro { grid-template-columns: 1fr; } }

/* Políticas e governança (home): botões lado a lado + painel embaixo */
.pol-abas-lista { display: flex; flex-wrap: wrap; gap: .6rem; margin-bottom: 1rem; }
.pol-abas-lista button { display: inline-flex; align-items: center; gap: .6rem; font: 700 .92rem var(--font-body); padding: .5rem 1.1rem .5rem .5rem; border-radius: 999px; border: 1px solid var(--border); background: var(--card); color: var(--navy); cursor: pointer; box-shadow: var(--shadow-sm); transition: background .2s, color .2s, border-color .2s; }
.pol-abas-lista button:hover { border-color: color-mix(in srgb, var(--indigo) 50%, transparent); }
.pol-abas-lista button:focus-visible { outline: 2px solid var(--indigo); outline-offset: 2px; }
.pol-abas-lista button .pol-ic { width: 2rem; height: 2rem; border-radius: 50%; } .pol-abas-lista button .pol-ic svg { width: 1.05rem; height: 1.05rem; }
.pol-abas-lista button[aria-selected="true"] { background: var(--indigo); border-color: var(--indigo); color: #fff; }
.pol-abas-lista button[aria-selected="true"] .pol-ic { background: rgb(255 255 255 / .18); color: #fff; }
.pol-abas [role="tabpanel"][hidden] { display: none; }
.pol-painel { padding: 1.9rem; background: var(--card); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); }
.pol-painel h3 { margin: 0 0 .5rem; font: 800 1.35rem/1.2 var(--font-display); letter-spacing: -.02em; }
.pol-painel p { margin: 0; color: var(--muted); max-width: 46rem; }
.pol-painel .pol-meta { justify-content: flex-start; gap: 1.25rem; flex-wrap: wrap; margin-top: 1.25rem; }
.pol-painel .pol-meta a { display: inline-flex; align-items: center; gap: .25rem; color: var(--indigo); font-weight: 700; text-decoration: none; }
.pol-painel .pol-meta a:hover { text-decoration: underline; } .pol-painel .pol-meta svg { width: .9rem; height: .9rem; }
.pol-abas .gov ul { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem 2rem; }
@media (max-width: 52rem) { .pol-abas .gov ul { grid-template-columns: minmax(0, 1fr); } }

.pol-itens { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem 1rem; margin-top: 1.25rem; }
.pol-item { display: flex; align-items: center; gap: .9rem; padding: .9rem 1rem; border: 1px solid var(--border); border-radius: var(--radius-lg); text-decoration: none; color: inherit; transition: border-color .2s, box-shadow .2s; }
.pol-item:hover { border-color: color-mix(in srgb, var(--indigo) 40%, transparent); box-shadow: var(--shadow-sm); }
.pol-item > .pol-ic { flex: none; } .pol-item > span:not(.pol-ic) { flex: 1; min-width: 0; }
.pol-item strong { display: block; font: 700 .98rem/1.3 var(--font-display); } .pol-item .pol-d { display: block; margin-top: .15rem; font-size: .85rem; }
.pol-item > b { color: var(--indigo); } .pol-item svg { width: .9rem; height: .9rem; }
.pol-painel .pol-meta .btn { color: #fff; } .pol-painel .pol-meta .btn:hover { text-decoration: none; }
.pol-painel .pol-meta > span { color: var(--muted); font-size: .9rem; }
@media (max-width: 52rem) { .pol-itens { grid-template-columns: minmax(0, 1fr); } }

.pol-form { display: block; width: 100%; height: 860px; margin-top: 1.25rem; border: 1px solid var(--border); border-radius: var(--radius-lg); background: #fff; }
@media (max-width: 52rem) { .pol-form { height: 960px; } }

.comeco.um { grid-template-columns: minmax(0, 1fr); }
.pol-abas-lista { scroll-margin-top: 6rem; }
.pol-painel .pol-meta a.pol-ext { padding: .5rem 1rem; border: 1px solid var(--indigo); border-radius: 10px; }
.pol-painel .pol-meta a.pol-ext:hover { background: color-mix(in srgb, var(--indigo) 8%, white); text-decoration: none; }
@media (scripting: none) { .pol-abas-lista { display: none; } }
/* hero: título numa linha só (no celular continua quebrando, senão estoura a tela) */
@media (min-width: 48rem) {
  /* uma coluna só: título, busca e atalhos com a mesma largura */
  .hero .wrap > * { max-width: 52rem; }
  .hero .wrap > h1 { max-width: none; white-space: nowrap; font-size: clamp(1.7rem, 3.6vw, 3.25rem); margin: 1.25rem auto 2rem; }
  .hero .atalhos { max-width: 52rem; margin-top: 1.5rem; }
  .hero .atalhos { display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem; }
  .hero .atalhos span { flex-basis: 100%; text-align: center; font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; }
}
.pol-dpo { margin-top: 1.25rem; padding-top: 1.1rem; border-top: 1px solid var(--border); display: grid; gap: .25rem; }
.pol-dpo strong { font: 700 .98rem/1.3 var(--font-display); } .pol-dpo span { color: var(--muted); font-size: .92rem; }
.pol-dpo a { color: var(--indigo); font-weight: 600; text-decoration: none; } .pol-dpo a:hover { text-decoration: underline; }
/* páginas internas: o resumo, o texto, o bloco de camadas e a navegação anterior/próxima na mesma largura */
article > .niveis, article > .pn { max-width: 46rem; }
.lateral .grupo-menu .grupo-menu { margin-left: .75rem; }
.lateral .grupo-menu > summary { padding-block: .38rem; } .lateral a { padding-block: .3rem; } .lateral .busca { margin-bottom: .75rem; }
.pol-chip { display: inline-block; margin-top: .4rem; padding: .15rem .6rem; border-radius: 999px; background: color-mix(in srgb, var(--cyan) 16%, white); color: oklch(0.38 0.08 220); font: 600 .75rem var(--font-body); font-style: normal; }
/* componente de abas dentro de uma página interna: mesma largura do texto, uma coluna */
article > .pol-abas { max-width: 46rem; }
article .pol-abas .pol-itens, article .pol-abas .gov ul { grid-template-columns: minmax(0, 1fr); }
article .pol-abas .gov .btn-sec { display: none; }
article .pol-abas .gov ul li { padding-left: 2rem; font-size: 1rem; }
article .pol-abas .gov ul li::before { content: ""; position: absolute; left: 0; top: .15rem; width: 1.2rem; height: 1.2rem; border-radius: 50%; background: var(--cyan) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b0a2a' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12 4 4 8-8'/%3E%3C/svg%3E") center / 70% no-repeat; }
article .pol-abas .gov p { font-size: 1rem; }
