/*
Theme Name: Concurso Virtual
Author: Filipe Farias
Description: Tema roxo do Concurso Virtual: concursos por estado e região, página do concurso com sumário, compatível com os posts do tema Marmmet e com o importador de lotes.
Version: 2.1.0
Requires PHP: 7.4
Text Domain: concursovirtual
License: GNU General Public License v2 or later
*/

:root {
  --roxo-950: #1E0838;
  --roxo-900: #2B1150;
  --roxo-800: #3D0C91;
  --roxo-700: #5414A6;
  --roxo-300: #C9A8F5;
  --lilas: #EFE9F8;
  --lilas-2: #F3F0F8;
  --borda: #E8E3EF;
  --tinta: #15111C;
  --texto: #3B3548;
  --muted: #5B556A;
  --verde: #0B6A4A;
  --verde-bg: #E2F4EC;
  --rosa: #A3156B;
  --raio: 16px;
  --sombra: 0 2px 6px rgba(30, 8, 56, .08), 0 10px 24px rgba(30, 8, 56, .06);
  --fonte-titulo: 'Poppins', system-ui, sans-serif;
  --fonte-texto: 'Mulish', system-ui, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: #fff; color: var(--tinta); font-family: var(--fonte-texto); font-size: 16px; line-height: 1.6; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--roxo-700); }
a:hover { color: var(--roxo-800); }
h1, h2, h3, h4 { font-family: var(--fonte-titulo); color: var(--tinta); line-height: 1.2; }
button, input, select, textarea { font: inherit; }
:focus-visible { outline: 3px solid var(--roxo-300); outline-offset: 2px; }
.cv-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.cv-pular { position: absolute; left: 12px; top: -60px; background: #fff; padding: 10px 14px; border-radius: 8px; z-index: 100; }
.cv-pular:focus { top: 12px; }

.cv-wrap { max-width: 1280px; margin: 0 auto; padding: 0 24px; }
.cv-wrap--estreito { max-width: 900px; }
.cv-wrap--medio { max-width: 1180px; }

/* ---------- Botões e selos ---------- */
.cv-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 22px; border-radius: 999px; border: 0; background: var(--roxo-700); color: #fff; text-decoration: none; font-family: var(--fonte-titulo); font-weight: 500; font-size: 14px; cursor: pointer; transition: background .15s; }
.cv-btn:hover { background: var(--roxo-800); color: #fff; }
.cv-btn--escuro { background: var(--roxo-800); border-radius: 10px; font-weight: 600; }
.cv-btn--borda { background: transparent; color: var(--roxo-800); border: 1.5px solid var(--roxo-800); border-radius: 10px; font-weight: 600; }
.cv-btn--borda:hover { background: var(--lilas); color: var(--roxo-800); }
.cv-btn--branco { background: #fff; color: var(--roxo-800); }
.cv-btn--branco:hover { background: var(--lilas); color: var(--roxo-800); }
.cv-btn--vidro { background: transparent; color: #fff; border: 1.5px solid rgba(255, 255, 255, .5); }
.cv-btn--vidro:hover { background: rgba(255, 255, 255, .1); }
.cv-btn--bloco { display: flex; width: 100%; border-radius: 10px; font-weight: 700; font-family: var(--fonte-texto); font-size: 15px; background: var(--roxo-800); }

.cv-selo { display: inline-block; font-size: 12px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; padding: 4px 8px; border-radius: 6px; line-height: 1.3; white-space: nowrap; }
.cv-selo--aberto { background: var(--verde-bg); color: var(--verde); }
.cv-selo--em-breve { background: #fff; color: var(--verde); box-shadow: inset 0 0 0 1.5px var(--verde); }
.cv-selo--encerrado { background: #F0EEF3; color: var(--muted); }
.cv-selo--previsto { background: var(--lilas); color: var(--roxo-700); }
.cv-selo--autorizado { background: #FFF1D6; color: #7A4300; }

/* ---------- Cabeçalho ---------- */
.cv-util { background: var(--roxo-950); color: #D9CCEF; font-size: 13px; }
.cv-util .cv-wrap { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 20px; padding-top: 8px; padding-bottom: 8px; }
.cv-util a { color: #fff; text-decoration: none; font-weight: 700; }
.cv-topo .cv-wrap { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 28px; padding-top: 14px; padding-bottom: 14px; }
.cv-logo { display: flex; align-items: center; gap: 10px; text-decoration: none; color: #2A2340; margin-right: auto; }
.cv-logo:hover { color: #2A2340; }
.cv-logo-txt { font-family: var(--fonte-titulo); font-weight: 700; font-size: 17px; line-height: .95; letter-spacing: .01em; }
.cv-nav { display: flex; flex-wrap: wrap; gap: 0 26px; font-family: var(--fonte-titulo); font-size: 15px; font-weight: 500; }
.cv-nav > a, .cv-nav summary { color: var(--tinta); text-decoration: none; padding: 12px 0; display: inline-flex; align-items: center; gap: 4px; cursor: pointer; list-style: none; }
.cv-nav summary::-webkit-details-marker { display: none; }
.cv-nav a[aria-current], .cv-nav .is-on > summary { color: var(--roxo-700); }
.cv-nav a:hover, .cv-nav summary:hover { color: var(--roxo-700); }
.cv-menu { position: relative; }
.cv-menu-lista { position: absolute; z-index: 30; top: 100%; left: -12px; min-width: 220px; background: #fff; border-radius: 12px; box-shadow: 0 12px 30px rgba(30, 8, 56, .16); padding: 8px; display: flex; flex-direction: column; }
.cv-menu-lista a { padding: 10px 12px; border-radius: 8px; color: var(--tinta); text-decoration: none; font-size: 14px; }
.cv-menu-lista a:hover { background: var(--lilas); }
.cv-acoes { display: flex; gap: 10px; }

.cv-bar-uf { background: var(--roxo-800); }
.cv-bar-uf .cv-wrap, .cv-bar-reg .cv-wrap { display: flex; align-items: center; gap: 16px; padding-top: 10px; padding-bottom: 10px; }
.cv-bar-rot { flex: none; font-family: var(--fonte-titulo); font-weight: 600; font-size: 14px; letter-spacing: .04em; color: #fff; }
.cv-bar-reg .cv-bar-rot { color: var(--roxo-800); }
.cv-rolagem { display: flex; gap: 6px; overflow-x: auto; padding: 2px 0; scrollbar-width: none; }
.cv-rolagem::-webkit-scrollbar { display: none; }
/* Estados: no computador, as 27 siglas ocupam a largura toda, sem rolagem. */
.cv-ufs { display: grid; grid-template-columns: repeat(27, minmax(0, 1fr)); width: 100%; overflow: visible; }
.cv-ufs .cv-chip { text-align: center; padding: 7px 0; }
.cv-chip { flex: none; background: #fff; color: #2A0E8F; text-decoration: none; font-weight: 800; font-size: 12px; padding: 7px 9px; border-radius: 6px; line-height: 1.2; }
.cv-chip:hover { background: var(--roxo-300); color: var(--roxo-950); }
.cv-chip.is-on { background: var(--roxo-300); color: var(--roxo-950); box-shadow: inset 0 0 0 2px #fff; }
.cv-bar-reg { background: var(--lilas-2); border-bottom: 1px solid #E5DEF0; }
.cv-bar-reg .cv-rolagem { gap: 8px; }
.cv-pill { flex: none; display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 14px; border-radius: 999px; background: #fff; border: 1px solid #DDD3EC; color: var(--roxo-800); text-decoration: none; font-family: var(--fonte-titulo); font-weight: 600; font-size: 14px; }
.cv-pill:hover { border-color: var(--roxo-700); color: var(--roxo-700); }
.cv-pill.is-on { background: var(--roxo-700); border-color: var(--roxo-700); color: #fff; }
.cv-pill svg { width: 24px; height: 24px; fill: currentColor; }

/* ---------- Home ---------- */
.cv-hero { padding-top: 28px; }
.cv-hero-caixa { background: var(--roxo-950); border-radius: 22px; overflow: hidden; display: flex; flex-wrap: wrap; align-items: stretch; }
.cv-hero-mapa { flex: 1 1 420px; min-width: 0; position: relative; background: var(--roxo-900); padding: 28px; display: flex; align-items: center; justify-content: center; min-height: 380px; }
.cv-hero-mapa svg { width: 100%; max-width: 400px; height: auto; }
.cv-hero-mapa .cv-uf-link path { fill: #4A2380; stroke: var(--roxo-900); stroke-width: 1.4; stroke-linejoin: round; transition: fill .15s; }
.cv-hero-mapa .cv-uf-link:hover path, .cv-hero-mapa .cv-uf-link:focus path { fill: var(--roxo-300); }
.cv-hero-selos { position: absolute; top: 28px; right: 24px; display: flex; flex-direction: column; align-items: flex-end; gap: 10px; pointer-events: none; }
.cv-hero-selo { border-radius: 14px; padding: 10px 16px; box-shadow: 0 10px 24px rgba(0, 0, 0, .25); font-family: var(--fonte-titulo); font-weight: 600; font-size: 15px; text-align: center; line-height: 1.25; }
.cv-hero-selo strong { display: block; font-size: 24px; }
.cv-hero-selo--1 { background: var(--roxo-700); color: #fff; }
.cv-hero-selo--2 { background: #fff; color: var(--roxo-800); transform: rotate(-3deg); }
.cv-hero-selo--3 { background: var(--roxo-300); color: var(--roxo-950); max-width: 200px; }
.cv-hero-dica { position: absolute; left: 24px; bottom: 20px; color: #D9CCEF; font-size: 13px; }
.cv-hero-txt { flex: 1 1 480px; min-width: 0; padding: 48px; display: flex; flex-direction: column; justify-content: center; gap: 18px; color: #fff; }
.cv-hero-txt .cv-sobre { font-size: 13px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--roxo-300); }
.cv-hero-txt h1 { margin: 0; color: #fff; font-weight: 600; font-size: clamp(32px, 4vw, 46px); line-height: 1.1; }
.cv-hero-txt p { margin: 0; font-size: 17px; line-height: 1.65; color: #E4DAF3; }
.cv-hero-acoes { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 6px; }
.cv-busca { display: flex; flex-wrap: wrap; gap: 8px; background: rgba(255, 255, 255, .08); border-radius: 14px; padding: 8px; }
.cv-busca input { flex: 1 1 220px; min-height: 46px; border: 0; border-radius: 10px; padding: 0 14px; font-size: 15px; color: var(--tinta); }

.cv-secao { padding-top: 56px; padding-bottom: 24px; }
.cv-secao-cab { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 8px; margin-bottom: 24px; }
.cv-secao-cab h2 { margin: 0; font-weight: 600; font-size: 30px; }
.cv-secao-cab p { margin: 6px 0 0; color: var(--muted); }
.cv-ver-todos { font-weight: 700; font-size: 15px; min-height: 44px; display: inline-flex; align-items: center; }

.cv-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 20px; }
.cv-grade--3 { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 24px; }

.cv-dest { border-radius: var(--raio); overflow: hidden; background: #fff; box-shadow: var(--sombra); display: flex; flex-direction: column; }
.cv-dest-corpo { padding: 18px; display: flex; flex-direction: column; gap: 12px; flex: 1; }
.cv-dest h3 { margin: 0; font-family: var(--fonte-texto); font-size: 17px; line-height: 1.4; font-weight: 700; flex: 1; }
.cv-dest h3 a { color: var(--tinta); text-decoration: none; }
.cv-dest-meta { font-size: 14px; color: var(--muted); }
.cv-dest .cv-selo { align-self: flex-start; }

/* Capa gerada (quando o post não tem imagem) */
.cv-capa { position: relative; overflow: hidden; background: var(--roxo-900); color: #fff; height: 170px; display: flex; flex-direction: column; justify-content: flex-end; padding: 16px 18px; isolation: isolate; }
.cv-capa--grande { height: 240px; border-radius: 18px; }
.cv-capa--card { height: 200px; }
.cv-capa--norte { background: #2B1150; }
.cv-capa--nordeste { background: #3A1060; }
.cv-capa--centro-oeste { background: #24104A; }
.cv-capa--sudeste { background: #331860; }
.cv-capa--sul { background: #1E0838; }
.cv-capa-mapa { position: absolute; right: -6%; top: 8%; height: 92%; width: 62%; fill: var(--roxo-700); opacity: .9; z-index: -1; }
.cv-capa-sigla { font-family: var(--fonte-titulo); font-weight: 700; font-size: 26px; line-height: 1.05; max-width: 75%; overflow-wrap: anywhere; text-shadow: 0 2px 12px rgba(0, 0, 0, .25); }
.cv-capa-sigla.is-longa { font-size: 19px; }
.cv-capa-local { font-size: 13px; color: #D9CCEF; margin-top: 6px; font-weight: 600; }
.cv-capa-img { width: 100%; height: 170px; object-fit: cover; }
.cv-card .cv-capa-img { height: 200px; }
.cv-capa-img--grande { height: 240px; border-radius: 18px; }

/* Blocos por região */
.cv-intro { text-align: center; padding-top: 56px; margin-top: 40px; border-top: 1px solid var(--borda); }
.cv-intro h2 { margin: 0 0 12px; font-weight: 600; font-size: 30px; }
.cv-intro p { margin: 0; font-size: 17px; line-height: 1.65; color: var(--muted); }
.cv-regioes { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 40px 56px; padding-top: 32px; padding-bottom: 32px; }
.cv-regiao { display: flex; flex-direction: column; gap: 12px; }
.cv-regiao h3 { margin: 0; font-weight: 600; font-size: 22px; text-align: center; }
.cv-regiao > p { margin: 0 0 8px; font-size: 15px; color: var(--muted); text-align: center; }
.cv-item { display: flex; flex-direction: column; gap: 4px; background: var(--lilas); border-radius: 10px; padding: 18px 20px; text-decoration: none; color: var(--tinta); transition: background .15s; }
.cv-item:hover { background: #E4DAF4; color: var(--tinta); }
.cv-item strong { font-size: 16px; line-height: 1.4; }
.cv-item span { font-size: 14px; color: var(--muted); }
.cv-item-vazio { text-align: center; color: var(--muted); font-size: 15px; padding: 18px; border: 1px dashed #D6CCE6; border-radius: 10px; }
.cv-regiao-acoes { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin-top: 8px; }
.cv-regiao-acoes .cv-btn { font-family: var(--fonte-texto); font-weight: 700; }

/* Encontre pelo seu perfil */
.cv-perfil { padding-top: 40px; padding-bottom: 40px; display: flex; flex-direction: column; gap: 14px; }
.cv-perfil-cab { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 8px 16px; margin-bottom: 10px; }
.cv-perfil-cab h2 { margin: 0; font-weight: 600; font-size: 30px; }
.cv-perfil-cab p { margin: 6px 0 0; color: var(--muted); }
.cv-perfil-cab > span { font-size: 13px; color: var(--muted); }
.cv-perfil-rot { margin: 10px 0 0; font-family: var(--fonte-texto); font-size: 13px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.cv-perfil-esc, .cv-perfil-sal { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.cv-perfil-tile { border-radius: 18px; padding: 22px; display: flex; flex-direction: column; gap: 6px; min-height: 140px; text-decoration: none; transition: transform .15s, box-shadow .15s; }
.cv-perfil-tile:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(21, 17, 28, .08); }
.cv-perfil-tile strong { font-family: var(--fonte-titulo); font-size: 40px; line-height: 1; margin-top: auto; }
.cv-perfil-tile span { font-weight: 800; font-size: 16px; }
.cv-perfil-tile--fundamental { background: #EAF6D3; color: #36540E; }
.cv-perfil-tile--medio { background: #DDEFFC; color: #0B4F7A; }
.cv-perfil-tile--tecnico { background: #FFE4DA; color: #93321A; }
.cv-perfil-tile--superior { background: #EDE3FB; color: #4A1196; }
.cv-perfil-tile--fundamental:hover { color: #36540E; } .cv-perfil-tile--medio:hover { color: #0B4F7A; } .cv-perfil-tile--tecnico:hover { color: #93321A; } .cv-perfil-tile--superior:hover { color: #4A1196; }
.cv-perfil-faixa { border-radius: 14px; border: 1px solid var(--borda); padding: 16px 18px; display: flex; flex-direction: column; gap: 10px; text-decoration: none; color: var(--tinta); transition: border-color .15s; }
.cv-perfil-faixa:hover { border-color: #C9B6E8; color: var(--tinta); }
.cv-perfil-faixa-top { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.cv-perfil-faixa-top strong { font-size: 16px; }
.cv-perfil-faixa-top b { font-family: var(--fonte-titulo); font-weight: 600; font-size: 20px; }
.cv-perfil-barra { height: 8px; border-radius: 4px; background: #F0EEF3; overflow: hidden; display: block; }
.cv-perfil-barra span { display: block; height: 100%; min-width: 4%; border-radius: 4px; }
.cv-perfil-barra--1 { background: #9B6BE8; } .cv-perfil-barra--2 { background: #7C3AED; } .cv-perfil-barra--3 { background: #5414A6; } .cv-perfil-barra--4 { background: #2E0A66; }
.cv-perfil-nota { margin: 0; font-size: 13px; color: var(--muted); }
@media (max-width: 900px) { .cv-perfil-esc, .cv-perfil-sal { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ---------- FAQ ---------- */
.cv-faq { padding: 32px 24px; }
.cv-faq-caixa { max-width: 1180px; margin: 0 auto; background: var(--lilas); border-radius: 20px; padding: 48px 40px; display: flex; flex-wrap: wrap; gap: 32px 40px; }
.cv-faq-col { flex: 999 1 520px; min-width: 0; display: flex; flex-direction: column; gap: 10px; }
.cv-faq-lado { flex: 1 1 340px; min-width: 0; display: flex; flex-direction: column; gap: 16px; padding-top: 38px; }
.cv-faq-lado p { margin: 0; color: var(--texto); }
.cv-faq-lado img { width: 100%; max-width: 380px; aspect-ratio: 360 / 298; object-fit: cover; border-radius: 18px; }
.cv-rotulo { font-family: var(--fonte-titulo); font-size: 15px; font-weight: 500; color: var(--roxo-700); }
.cv-faq h2 { margin: 0 0 10px; font-weight: 500; font-size: clamp(30px, 4vw, 44px); line-height: 1.12; }
.cv-faq-lista { display: flex; flex-direction: column; gap: 10px; }
.cv-faq-lista details { border-radius: 24px; }
.cv-faq-lista summary { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 48px; padding: 12px 22px; border-radius: 999px; background: #fff; font-family: var(--fonte-titulo); font-weight: 600; font-size: 15px; cursor: pointer; list-style: none; }
.cv-faq-lista summary::-webkit-details-marker { display: none; }
.cv-faq-lista summary::after { content: ''; flex: none; width: 10px; height: 10px; border-right: 2.2px solid currentColor; border-bottom: 2.2px solid currentColor; transform: rotate(45deg) translateY(-3px); transition: transform .15s; }
.cv-faq-lista details[open] summary { background: var(--roxo-700); color: #fff; }
.cv-faq-lista details[open] summary::after { transform: rotate(-135deg) translateY(-2px); }
.cv-faq-lista details p { margin: 6px 0 0; background: #fff; border-radius: 18px; padding: 14px 22px; font-size: 15px; color: var(--texto); }

/* ---------- Rodapé ---------- */
.cv-rodape { padding: 0 24px 32px; }
.cv-rodape-caixa { max-width: 1180px; margin: 0 auto; background: #0D0B12; color: #D6D1E0; border-radius: 20px; padding: 48px 40px 28px; display: flex; flex-direction: column; gap: 36px; }
.cv-rodape-cols { display: flex; flex-wrap: wrap; gap: 36px 48px; }
.cv-rodape-marca { flex: 2 1 320px; min-width: 0; display: flex; flex-direction: column; gap: 18px; }
.cv-rodape-marca a.cv-logo { color: #fff; }
.cv-rodape-marca .cv-logo-nome { font-family: var(--fonte-titulo); font-weight: 500; font-size: 32px; letter-spacing: -.01em; }
.cv-rodape-marca p { margin: 0; max-width: 420px; font-size: 14px; }
.cv-rodape nav { flex: 1 1 130px; display: flex; flex-direction: column; gap: 10px; font-size: 14px; }
.cv-rodape h2 { margin: 0 0 4px; font-size: 19px; font-weight: 500; color: var(--roxo-300); }
.cv-rodape nav a { color: #D6D1E0; text-decoration: none; }
.cv-rodape nav a:hover { color: #fff; }
.cv-redes { display: flex; gap: 10px; }
.cv-redes a { width: 40px; height: 40px; border-radius: 50%; background: #B88BEA; color: #0D0B12; display: flex; align-items: center; justify-content: center; }
.cv-news { flex: 1 1 240px; min-width: 0; display: flex; flex-direction: column; gap: 12px; }
.cv-news p { margin: 0; font-size: 14px; }
.cv-news label { display: flex; flex-direction: column; gap: 6px; font-size: 13px; font-weight: 600; }
.cv-news input[type=email] { min-height: 44px; border-radius: 999px; border: 0; background: #F4F2F7; color: var(--tinta); padding: 0 18px; }
.cv-news .cv-btn { font-size: 15px; }
.cv-aviso { font-size: 14px; padding: 10px 14px; border-radius: 10px; background: var(--verde-bg); color: var(--verde); }
.cv-aviso--erro { background: #FDE7EE; color: #8A1238; }
.cv-rodape-base { border-top: 1px solid #26222F; padding-top: 18px; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; font-size: 13px; color: #A69FB4; }
.cv-rodape-base a { color: #A69FB4; }

/* ---------- Listagem (categoria) ---------- */
.cv-trilha { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; font-size: 13px; color: var(--muted); padding-top: 18px; }
.cv-trilha a { color: var(--muted); text-decoration: none; }
.cv-trilha a:hover { color: var(--roxo-700); }
.cv-trilha [aria-current] { color: var(--tinta); font-weight: 700; }
.cv-cab { text-align: center; padding: 28px 0 8px; display: flex; flex-direction: column; gap: 12px; align-items: center; }
.cv-cab h1 { margin: 0; font-weight: 500; font-size: clamp(30px, 4vw, 44px); line-height: 1.12; }
.cv-cab p { margin: 0; font-size: 17px; color: var(--muted); max-width: 760px; }
.cv-cab-linha { border-top: 1px solid var(--borda); margin-top: 20px; }
.cv-filtros { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; align-items: flex-end; padding-top: 20px; }
.cv-filtros-ufs { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; width: 100%; }
.cv-filtro-uf { min-height: 40px; display: inline-flex; align-items: center; padding: 0 16px; border-radius: 999px; background: var(--lilas); color: var(--roxo-800); text-decoration: none; font-weight: 700; font-size: 14px; }
.cv-filtro-uf.is-on { background: var(--roxo-700); color: #fff; }
.cv-filtros label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; font-weight: 800; letter-spacing: .05em; color: var(--muted); }
.cv-filtros select { min-height: 44px; border-radius: 10px; border: 1px solid #D6CCE6; background: #fff; padding: 0 12px; font-size: 15px; color: var(--tinta); min-width: 170px; }
.cv-contagem { text-align: center; color: var(--muted); font-size: 14px; margin: 18px 0 0; }

.cv-card { display: flex; flex-direction: column; border-radius: 18px; overflow: hidden; text-decoration: none; background: var(--roxo-950); box-shadow: 0 8px 22px rgba(30, 8, 56, .14); transition: transform .15s; }
.cv-card:hover { transform: translateY(-3px); }
.cv-card-corpo { padding: 20px 22px 24px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.cv-card-data { font-size: 13px; color: #B9A9D3; display: flex; flex-direction: column; gap: 8px; align-items: flex-start; }
.cv-card h2 { margin: 0; font-weight: 500; font-size: 18px; line-height: 1.35; color: #fff; flex: 1; }
.cv-card-meta { font-size: 14px; color: #D9CCEF; }
.cv-card-mais { font-size: 14px; font-weight: 700; color: #fff; }
.cv-vazio { grid-column: 1 / -1; text-align: center; padding: 48px 20px; border: 1px dashed #D6CCE6; border-radius: 18px; color: var(--muted); }

.cv-paginas { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; padding: 32px 0 48px; font-family: var(--fonte-titulo); font-weight: 600; font-size: 15px; }
.cv-paginas .page-numbers { min-width: 44px; min-height: 44px; display: flex; align-items: center; justify-content: center; border-radius: 10px; color: var(--roxo-700); text-decoration: none; padding: 0 10px; }
.cv-paginas .page-numbers.current { background: var(--roxo-700); color: #fff; }
.cv-paginas a.page-numbers:hover { background: var(--lilas); }

.cv-seo { padding-bottom: 40px; display: flex; flex-direction: column; gap: 14px; }
.cv-seo h2 { margin: 0; font-weight: 600; font-size: 26px; text-align: center; }
.cv-seo p { margin: 0; font-size: 16px; line-height: 1.75; color: var(--texto); }

/* ---------- Página do concurso ---------- */
.cv-concurso-cab { text-align: center; padding: 24px 0 28px; display: flex; flex-direction: column; gap: 12px; align-items: center; }
.cv-concurso-cab h1 { margin: 0; font-weight: 500; font-size: clamp(30px, 4vw, 44px); line-height: 1.12; letter-spacing: -.01em; }
.cv-concurso-cab p { margin: 0; font-size: 17px; color: var(--muted); max-width: 760px; }
.cv-concurso-cab small { font-size: 13px; color: var(--muted); }
.cv-concurso { display: flex; flex-wrap: wrap; gap: 32px 44px; align-items: flex-start; padding-top: 32px; padding-bottom: 56px; }
.cv-lateral { flex: 1 1 280px; max-width: 360px; min-width: 0; display: flex; flex-direction: column; gap: 18px; }
.cv-toc { background: var(--lilas); border-radius: 18px; padding: 16px; display: flex; flex-direction: column; gap: 6px; }
.cv-toc-tit { font-family: var(--fonte-titulo); font-weight: 600; font-size: 14px; color: var(--roxo-800); padding: 4px 8px 8px; }
.cv-toc a { display: flex; justify-content: space-between; align-items: center; min-height: 44px; padding: 0 16px; border-radius: 999px; background: #fff; color: var(--tinta); text-decoration: none; font-family: var(--fonte-titulo); font-weight: 500; font-size: 14px; }
.cv-toc a::after { content: ''; width: 7px; height: 7px; border-right: 2px solid currentColor; border-top: 2px solid currentColor; transform: rotate(45deg); }
.cv-toc a:hover, .cv-toc a.is-on { background: var(--roxo-700); color: #fff; }
.cv-artigo { flex: 999 1 560px; min-width: 0; display: flex; flex-direction: column; gap: 44px; }
.cv-artigo > section { scroll-margin-top: 16px; display: flex; flex-direction: column; gap: 14px; }
.cv-artigo h2.cv-tit { margin: 0; font-weight: 500; font-size: 30px; }
.cv-ficha { margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); background: #fff; border: 1px solid var(--borda); border-radius: 14px; overflow: hidden; }
.cv-ficha div { background: #fff; padding: 14px 18px; box-shadow: 1px 1px 0 var(--borda); }
.cv-ficha dt { font-size: 13px; color: var(--muted); }
.cv-ficha dd { margin: 4px 0 0; font-weight: 700; overflow-wrap: anywhere; }
.cv-conteudo { font-size: 16px; line-height: 1.75; color: var(--texto); }
.cv-conteudo h2 { font-size: 22px; font-weight: 500; margin: 28px 0 10px; color: var(--tinta); }
.cv-conteudo h3 { font-size: 19px; font-weight: 500; margin: 22px 0 8px; color: var(--tinta); }
.cv-conteudo h2:first-child, .cv-conteudo h3:first-child { margin-top: 0; }
.cv-conteudo p { margin: 0 0 14px; }
.cv-conteudo ul, .cv-conteudo ol { padding-left: 22px; margin: 0 0 14px; }
.cv-conteudo li { margin-bottom: 6px; }
.cv-conteudo strong { color: var(--tinta); }
.cv-linha-tempo { list-style: none; margin: 0; padding: 0 0 0 4px; }
.cv-linha-tempo li { display: flex; gap: 16px; }
.cv-linha-tempo .cv-ponto { display: flex; flex-direction: column; align-items: center; }
.cv-linha-tempo .cv-ponto::before { content: ''; width: 16px; height: 16px; border-radius: 50%; background: var(--roxo-700); flex: none; }
.cv-linha-tempo .cv-ponto::after { content: ''; width: 2px; flex: 1; background: #D6CCE6; }
.cv-linha-tempo li:last-child .cv-ponto::after { display: none; }
.cv-linha-tempo .cv-evento { padding-bottom: 20px; }
.cv-linha-tempo strong { display: block; }
.cv-linha-tempo span { color: var(--muted); font-size: 15px; }
.cv-banca { border: 1px solid var(--borda); border-radius: 16px; padding: 22px; display: flex; flex-wrap: wrap; gap: 18px; align-items: center; }
.cv-banca-sigla { flex: none; width: 64px; height: 64px; border-radius: 14px; background: var(--lilas); color: var(--roxo-800); display: flex; align-items: center; justify-content: center; font-family: var(--fonte-titulo); font-weight: 700; font-size: 18px; }
.cv-banca-info { flex: 1 1 240px; display: flex; flex-direction: column; gap: 4px; }
.cv-banca-info strong { font-size: 18px; }
.cv-banca-info span { color: var(--muted); font-size: 15px; }
.cv-docs { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.cv-docs a { display: flex; align-items: center; gap: 14px; padding: 16px 18px; border-radius: 14px; background: var(--lilas); text-decoration: none; color: var(--tinta); }
.cv-docs a:hover { background: #E4DAF4; color: var(--tinta); }
.cv-docs .cv-doc-ico { flex: none; width: 44px; height: 44px; border-radius: 10px; background: #fff; color: var(--rosa); display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 800; }
.cv-docs .cv-doc-txt { flex: 1; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.cv-docs .cv-doc-txt span { font-size: 14px; color: var(--muted); overflow-wrap: anywhere; }
.cv-fontes { font-size: 14px; color: var(--muted); }
.cv-fontes ul { margin: 6px 0 0; padding-left: 20px; }
.cv-fontes a { overflow-wrap: anywhere; }
.cv-faq-post { display: flex; flex-direction: column; gap: 10px; }
.cv-relacionados { padding-bottom: 32px; }

/* ---------- Páginas institucionais ---------- */
.cv-duas { display: flex; flex-wrap: wrap; gap: 32px 48px; align-items: center; padding-top: 44px; padding-bottom: 44px; }
.cv-duas > * { flex: 1 1 420px; min-width: 0; }
.cv-duas h2 { margin: 0; font-weight: 500; font-size: clamp(28px, 3.4vw, 38px); line-height: 1.15; }
.cv-duas p { margin: 0; color: var(--texto); line-height: 1.7; }
.cv-pilha { display: flex; flex-direction: column; gap: 14px; }
.cv-checks { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.cv-checks li { display: flex; gap: 10px; align-items: flex-start; font-size: 15px; }
.cv-checks svg { flex: none; margin-top: 3px; }
.cv-numeros { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); border-top: 1px solid var(--borda); border-bottom: 1px solid var(--borda); }
.cv-numeros div { padding: 22px; text-align: center; }
.cv-numeros div + div { border-left: 1px solid var(--borda); }
.cv-numeros strong { display: block; font-family: var(--fonte-titulo); font-weight: 500; font-size: 36px; }
.cv-numeros span { color: var(--muted); font-size: 15px; }
.cv-bancas { background: var(--lilas); border-radius: 18px; padding: 26px 28px; display: flex; flex-direction: column; gap: 16px; align-items: center; margin: 40px 0; }
.cv-bancas div { display: flex; flex-wrap: wrap; gap: 14px 40px; justify-content: center; font-family: var(--fonte-titulo); font-weight: 600; font-size: 22px; color: var(--muted); letter-spacing: .02em; }
.cv-recursos { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 22px 28px; }
.cv-recursos div { display: flex; flex-direction: column; gap: 6px; }
.cv-recursos strong { display: flex; gap: 10px; align-items: center; font-family: var(--fonte-titulo); font-weight: 500; font-size: 17px; }
.cv-recursos span { font-size: 14px; color: var(--muted); }
.cv-mapa-icone { background: var(--roxo-900); border-radius: 20px; padding: 32px; display: flex; align-items: center; justify-content: center; min-height: 340px; }
.cv-mapa-icone svg { width: 100%; max-width: 360px; height: auto; fill: #4A2380; }

.cv-form { display: flex; flex-direction: column; gap: 18px; }
.cv-form-grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px; }
.cv-form label { display: flex; flex-direction: column; gap: 6px; font-size: 12px; font-weight: 800; letter-spacing: .06em; }
.cv-form input, .cv-form select, .cv-form textarea { min-height: 46px; border-radius: 999px; border: 1px solid #C9B6E8; background: var(--lilas); padding: 0 18px; font-size: 15px; letter-spacing: 0; font-weight: 500; color: var(--tinta); }
.cv-form textarea { border-radius: 18px; padding: 14px 18px; resize: vertical; min-height: 150px; }
.cv-form .cv-btn { align-self: flex-start; }
.cv-mel { position: absolute; left: -9999px; }
.cv-contato-info { display: flex; flex-direction: column; gap: 16px; }
.cv-contato-cartao { background: var(--lilas); border-radius: 18px; padding: 24px; display: flex; flex-direction: column; gap: 12px; }
.cv-contato-cartao div { display: flex; gap: 12px; align-items: flex-start; }
.cv-contato-cartao svg { flex: none; margin-top: 2px; }

.cv-pagina-conteudo { padding-top: 28px; padding-bottom: 56px; }

@media (max-width: 980px) {
  .cv-ufs { display: flex; overflow-x: auto; -webkit-mask-image: linear-gradient(90deg, #000 88%, transparent); mask-image: linear-gradient(90deg, #000 88%, transparent); }
  .cv-ufs .cv-chip { padding: 7px 10px; }
}
@media (max-width: 760px) {
  .cv-hero-txt { padding: 32px 24px; }
  .cv-hero-selos { position: static; flex-direction: row; flex-wrap: wrap; justify-content: center; margin-top: 16px; }
  .cv-hero-mapa { flex-direction: column; min-height: 0; }
  .cv-hero-dica { position: static; margin-top: 10px; }
  .cv-faq-caixa, .cv-rodape-caixa { padding: 32px 20px; }
  .cv-numeros div + div { border-left: 0; border-top: 1px solid var(--borda); }
  .cv-lateral { max-width: none; }
  .cv-nav { gap: 0 14px; font-size: 14px; width: 100%; order: 3; }
  .cv-acoes .cv-btn { min-height: 40px; padding: 0 14px; font-size: 13px; }
  .cv-topo .cv-wrap { gap: 4px 12px; }
  .cv-util .cv-wrap > span { display: none; }
  .cv-capa--grande, .cv-capa-img--grande { height: 170px; }
  .cv-concurso { padding-top: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .cv-card:hover { transform: none; }
}
