/* ==========================================================================
   Portal Câmara — America Apps
   Paleta vinda de "Dados do órgão" (--pri, --acc). Tipografia: Sora + Source Sans 3.
   ========================================================================== */
:root {
  --pri: #12417c; --acc: #f6f328;
  --pri-esc: color-mix(in srgb, var(--pri) 72%, #020b18);
  --pri-2: color-mix(in srgb, var(--pri) 80%, #3d8bff);
  --pri-claro: color-mix(in srgb, var(--pri) 8%, #fff);
  --acc-esc: color-mix(in srgb, var(--acc) 55%, #3a2a00);
  --tinta: #13202f; --texto: #384556; --suave: #657286; --linha: #e1e6ee; --cinza: #f3f5f9; --fundo: #fff;
  --ok: #17753f; --ok-bg: #e3f3e9; --alerta: #8f5c00; --alerta-bg: #fcf0d4; --erro: #b1261c; --erro-bg: #fbe6e4; --fim-bg: #e8ecf5; --neutro-bg: #edf0f4;
  --r: 14px; --r-g: 22px;
  --sombra: 0 1px 2px rgba(12, 30, 60, .06), 0 8px 24px rgba(12, 30, 60, .07);
  --sombra-f: 0 2px 6px rgba(12, 30, 60, .08), 0 18px 40px rgba(12, 30, 60, .14);
  --f-titulo: "Sora", "Segoe UI", system-ui, sans-serif;
  --f-texto: "Source Sans 3", "Segoe UI", system-ui, -apple-system, sans-serif;
  --wrap: 1260px;
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; background: var(--fundo); color: var(--texto); font: 400 1.0625rem/1.6 var(--f-texto); -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--pri-2); text-underline-offset: 3px; }
h1, h2, h3 { font-family: var(--f-titulo); color: var(--tinta); line-height: 1.2; margin: 0; letter-spacing: -.02em; text-wrap: balance; }
p { margin: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }
button { font: inherit; cursor: pointer; }
:focus-visible { outline: 3px solid var(--acc); outline-offset: 2px; border-radius: 4px; }
[hidden] { display: none !important; }
.wrap { width: 100%; max-width: var(--wrap); margin: 0 auto; padding: 0 24px; }
.sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ic { width: 22px; height: 22px; flex: none; }
.ic--s { width: 18px; height: 18px; }
.ic--xs { width: 14px; height: 14px; }
main:focus { outline: none; }
.nowrap { white-space: nowrap; }

/* ---------- atalhos de teclado ---------- */
.skip a { position: absolute; left: 12px; top: -80px; z-index: 200; background: var(--acc); color: #1a1300; padding: 10px 16px; border-radius: 0 0 8px 8px; font-weight: 700; text-decoration: none; }
.skip a:focus { top: 0; }

/* ---------- topo ---------- */
.topo { background: var(--pri); color: #e4ecf7; position: relative; z-index: 50; }
.barra { background: var(--pri-esc); font-size: .875rem; }
.barra__in { display: flex; justify-content: space-between; align-items: center; min-height: 42px; gap: 16px; }
.barra__atalhos { display: flex; gap: 4px; }
.barra__atalhos a { display: inline-flex; align-items: center; gap: 7px; color: #d5e0ef; text-decoration: none; padding: 6px 10px; border-radius: 8px; font-weight: 600; letter-spacing: .01em; }
.barra__atalhos a:hover { background: rgba(255,255,255,.1); color: #fff; }
.barra__atalhos .ic { color: var(--acc); }
.barra__ferramentas { display: flex; align-items: center; gap: 2px; }
.barra__ferramentas button, .barra__ferramentas a { min-width: 32px; height: 32px; padding: 0 6px; display: inline-grid; place-items: center; border: 0; border-radius: 7px; background: none; color: #d5e0ef; font-weight: 700; font-size: .8125rem; }
.barra__ferramentas button:hover, .barra__ferramentas a:hover { background: rgba(255,255,255,.12); color: #fff; }
.barra__sep { width: 1px; height: 18px; background: rgba(255,255,255,.2); margin: 0 8px; }
.cabecalho { position: sticky; top: 0; background: var(--pri); box-shadow: 0 1px 0 rgba(255,255,255,.08); }
.cabecalho__in { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-top: 16px; padding-bottom: 14px; }
.marca { display: flex; align-items: center; gap: 16px; color: #fff; text-decoration: none; min-width: 0; }
.marca img { width: 72px; height: 72px; object-fit: contain; filter: drop-shadow(0 4px 10px rgba(0,0,0,.25)); }
.marca small { display: block; font: 600 .8125rem/1.2 var(--f-titulo); text-transform: uppercase; letter-spacing: .16em; color: #bcd0ea; }
.marca strong { display: block; font: 800 clamp(1.35rem, 2.6vw, 2rem)/1.05 var(--f-titulo); letter-spacing: -.02em; }
.cabecalho__acoes { display: flex; align-items: center; gap: 10px; }
.busca { position: relative; }
.busca input { width: 280px; height: 46px; border-radius: 999px; border: 1px solid rgba(255,255,255,.22); background: rgba(255,255,255,.1); color: #fff; padding: 0 50px 0 20px; font: inherit; font-size: .9375rem; }
.busca input::placeholder { color: #bccbe0; }
.busca input:focus { outline: none; background: #fff; color: var(--tinta); border-color: #fff; }
.busca input:focus::placeholder { color: var(--suave); }
.busca button { position: absolute; right: 4px; top: 4px; width: 38px; height: 38px; border-radius: 50%; border: 0; background: var(--acc); color: #1a1300; display: grid; place-items: center; }
.menu-btn { display: none; }
.menu { border-top: 1px solid rgba(255,255,255,.1); }
.menu__in { display: flex; }
.menu__cab, .menu__rodape { display: none; }
.menu__lista { display: flex; flex-wrap: wrap; gap: 2px; }
.menu__lista > li { position: relative; }
.menu__lista > li > a, .menu__lista > li > button { display: flex; align-items: center; gap: 5px; height: 54px; padding: 0 16px; border: 0; background: none; color: #fff; font: 600 .96rem var(--f-titulo); text-decoration: none; letter-spacing: -.005em; position: relative; }
.menu__lista > li > a::after, .menu__lista > li > button::after { content: ""; position: absolute; left: 16px; right: 16px; bottom: 0; height: 3px; border-radius: 3px 3px 0 0; background: var(--acc); transform: scaleX(0); transition: transform .2s; }
.menu__lista > li:hover > a::after, .menu__lista > li:hover > button::after, .tem-sub.aberto > button::after { transform: scaleX(1); }
.sub { position: absolute; top: 100%; left: 0; min-width: 270px; background: #fff; border-radius: var(--r); box-shadow: var(--sombra-f); padding: 8px; opacity: 0; visibility: hidden; transform: translateY(8px); transition: .18s; z-index: 60; }
.tem-sub:hover .sub, .tem-sub:focus-within .sub, .tem-sub.aberto .sub { opacity: 1; visibility: visible; transform: none; }
.sub a { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 9px; color: var(--texto); text-decoration: none; font-size: 1rem; }
.sub a:hover { background: var(--pri-claro); color: var(--pri); }
.sub .ic { color: var(--suave); }

/* ---------- botões, tags, status ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; padding: 0 22px; border-radius: 999px; border: 1.5px solid transparent; font: 700 .95rem var(--f-titulo); text-decoration: none; white-space: nowrap; transition: .16s; }
.btn--s { min-height: 38px; padding: 0 16px; font-size: .85rem; }
.btn--acc { background: var(--acc); color: #1a1300; }
.btn--acc:hover { filter: brightness(1.06); box-shadow: 0 8px 20px color-mix(in srgb, var(--acc) 40%, transparent); }
.btn--pri { background: var(--pri); color: #fff; }
.btn--pri:hover { background: var(--pri-2); }
.btn--linha { border-color: var(--linha); background: #fff; color: var(--pri); }
.btn--linha:hover { border-color: var(--pri-2); background: var(--pri-claro); }
.btn--vidro { background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.28); color: #fff; }
.btn--vidro:hover { background: #fff; color: var(--pri); }
.tag { display: inline-block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: middle; font: 700 .75rem/1.5 var(--f-texto); letter-spacing: .02em; color: var(--pri); background: var(--pri-claro); padding: 2px 10px; border-radius: 999px; text-decoration: none; }
.tag--acc { background: color-mix(in srgb, var(--acc) 22%, #fff); color: var(--acc-esc); }
.meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; font-size: .875rem; color: var(--suave); }
.status { display: inline-block; font: 800 .6875rem/1.6 var(--f-texto); text-transform: uppercase; letter-spacing: .05em; padding: 1px 8px; border-radius: 6px; vertical-align: middle; margin-left: 4px; }
.status--ok { color: var(--ok); background: var(--ok-bg); }
.status--alerta { color: var(--alerta); background: var(--alerta-bg); }
.status--erro { color: var(--erro); background: var(--erro-bg); }
.status--fim { color: #36466b; background: var(--fim-bg); }
.status--neutro { color: #4c5869; background: var(--neutro-bg); }

/* ---------- imagem com fundo desfocado (artes com texto não são cortadas) ---------- */
.img-fit { position: absolute; inset: 0; overflow: hidden; background: var(--pri-esc); }
.img-fit::before { content: ""; position: absolute; inset: -30px; background: var(--bg) center / cover; filter: blur(22px) saturate(1.15); opacity: .7; }
.img-fit img { position: relative; width: 100%; height: 100%; object-fit: contain; }
.img-vazia { position: absolute; inset: 0; display: grid; place-items: center; background: var(--pri-claro); color: var(--pri); }
.img-vazia .ic { width: 42px; height: 42px; opacity: .45; }

/* ---------- destaque (hero) ---------- */
.hero { position: relative; color: #fff; background: radial-gradient(1200px 500px at 85% -10%, color-mix(in srgb, var(--pri-2) 70%, transparent), transparent 60%), linear-gradient(180deg, var(--pri) 0%, var(--pri-esc) 100%); overflow: hidden; }
.hero::before { content: ""; position: absolute; inset: 0; background: var(--capa, none) center / cover; opacity: .18; mix-blend-mode: luminosity; }
.hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 6px; background: linear-gradient(90deg, var(--acc) 0 33%, #fff 33% 66%, color-mix(in srgb, var(--acc) 50%, #2f8f46) 66%); opacity: .9; }
.hero__in { position: relative; padding-top: 40px; padding-bottom: 44px; }
.hero__slides { position: relative; min-height: 400px; }
.slide { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 48px; align-items: center; position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity .5s, visibility .5s; }
.slide.ativo { position: relative; opacity: 1; visibility: visible; }
.slide__txt { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; min-width: 0; }
.slide__tag { font: 700 .75rem var(--f-titulo); text-transform: uppercase; letter-spacing: .18em; color: var(--acc); }
.slide h2 { color: #fff; font-size: clamp(1.75rem, 3.6vw, 2.9rem); font-weight: 800; letter-spacing: -.025em; }
.slide__txt p { color: #d3def0; font-size: 1.125rem; max-width: 52ch; }
.slide__img { position: relative; aspect-ratio: 16 / 10; border-radius: var(--r-g); overflow: hidden; box-shadow: 0 30px 60px rgba(0,0,0,.35); max-width: 100%; }
.hero__ctrl { display: flex; align-items: center; gap: 10px; margin-top: 28px; }
.hero__ctrl > button { width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(255,255,255,.3); background: none; color: #fff; display: grid; place-items: center; }
.hero__ctrl > button:hover { background: rgba(255,255,255,.14); }
.hero__dots { display: flex; gap: 6px; }
.hero__dots button { width: 24px; height: 6px; border: 0; padding: 0; border-radius: 3px; background: rgba(255,255,255,.3); transition: .2s; }
.hero__dots button[aria-current="true"] { width: 44px; background: var(--acc); }
.hero__pausa span { display: block; width: 10px; height: 12px; border-left: 3px solid #fff; border-right: 3px solid #fff; }
.pausado .hero__pausa span { width: 0; height: 0; border: 0; border-left: 10px solid #fff; border-top: 6px solid transparent; border-bottom: 6px solid transparent; margin-left: 3px; }

/* ---------- seções ---------- */
.secao { padding: 72px 0; }
.secao--cinza { background: var(--cinza); }
.secao__cab { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; flex-wrap: wrap; margin-bottom: 30px; }
.secao__cab h2 { font-size: clamp(1.6rem, 2.6vw, 2.2rem); font-weight: 800; }
.secao__sub { color: var(--suave); margin-top: 6px; }
.secao__acoes { display: flex; gap: 8px; flex-wrap: wrap; }
.sobre { font: 700 .78rem var(--f-titulo); text-transform: uppercase; letter-spacing: .16em; color: var(--pri-2); margin-bottom: 8px; }

/* abas */
.abas { display: flex; gap: 4px; flex-wrap: wrap; background: var(--cinza); padding: 5px; border-radius: 999px; }
.abas button { border: 0; background: none; padding: 9px 18px; border-radius: 999px; font: 700 .9rem var(--f-titulo); color: var(--suave); }
.abas button[aria-selected="true"] { background: #fff; color: var(--pri); box-shadow: 0 1px 4px rgba(12,30,60,.12); }

/* acesso rápido */
.atalhos { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 12px; }
.atalho > span:last-child { min-width: 0; overflow-wrap: normal; hyphens: manual; }
.atalho { display: flex; align-items: center; gap: 14px; padding: 16px 18px; background: #fff; border: 1px solid var(--linha); border-radius: var(--r); color: var(--tinta); text-decoration: none; font-weight: 700; line-height: 1.25; transition: .16s; }
.atalho:hover { border-color: transparent; box-shadow: var(--sombra-f); transform: translateY(-2px); color: var(--pri); }
.atalho__ic { width: 46px; height: 46px; flex: none; border-radius: 13px; display: grid; place-items: center; background: var(--pri-claro); color: var(--pri); }
.atalho:hover .atalho__ic { background: var(--pri); color: #fff; }

/* notícias */
.grade-not { display: grid; grid-template-columns: 1.35fr 1fr 1fr; grid-auto-rows: auto; gap: 22px; }
.grade-not > :first-child { grid-row: span 2; }
.grade-not--lista { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grade-not--lista > :first-child { grid-row: auto; }
.card-not { position: relative; background: #fff; border-radius: var(--r); overflow: hidden; box-shadow: var(--sombra); display: flex; flex-direction: column; transition: .18s; min-width: 0; }
.card-not:hover { box-shadow: var(--sombra-f); transform: translateY(-3px); }
.card-not__img { position: relative; display: block; aspect-ratio: 16 / 10; }
.card-not--grande .card-not__img { aspect-ratio: 16 / 11; }
.card-not__txt { padding: 18px 20px 22px; display: flex; flex-direction: column; gap: 10px; }
.card-not h3 { font-size: 1.05rem; font-weight: 700; }
.card-not--grande h3 { font-size: 1.45rem; }
.card-not h3 a { color: var(--tinta); text-decoration: none; }
.card-not h3 a::after { content: ""; position: absolute; inset: 0; }
.card-not:hover h3 a { color: var(--pri-2); }
.card-not__res { color: var(--suave); }

/* casa parlamentar */
.casa__grid { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 28px; align-items: start; }
.casa__grid--so { grid-template-columns: minmax(0, 1fr); }
.casa__grid--so .vereadores { grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); }
.presidente { position: relative; display: block; border-radius: var(--r-g); overflow: hidden; background: var(--pri); color: #fff; text-decoration: none; box-shadow: var(--sombra-f); }
.presidente__foto img { width: 100%; aspect-ratio: 9 / 11; object-fit: cover; }
.presidente__txt { position: absolute; inset: auto 0 0 0; padding: 60px 22px 20px; background: linear-gradient(transparent, color-mix(in srgb, var(--pri-esc) 95%, transparent)); display: flex; flex-direction: column; gap: 2px; }
.presidente__txt small { font: 700 .72rem var(--f-titulo); text-transform: uppercase; letter-spacing: .14em; color: var(--acc); }
.presidente__txt strong { font: 800 1.35rem var(--f-titulo); }
.vereadores { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
.vereadores a { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 4px; padding: 18px 10px; border-radius: var(--r); text-decoration: none; color: var(--tinta); border: 1px solid transparent; transition: .16s; height: 100%; }
.vereadores a:hover { background: #fff; border-color: var(--linha); box-shadow: var(--sombra); }
.vereador__foto { width: 104px; height: 104px; border-radius: 50%; overflow: hidden; background: var(--pri-claro); display: grid; place-items: center; color: var(--pri); margin-bottom: 8px; box-shadow: 0 0 0 4px #fff, 0 0 0 5px var(--linha); }
.vereador__foto img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.vereadores strong { font: 700 .98rem/1.25 var(--f-titulo); }
.vereadores span:last-child { font-size: .85rem; color: var(--suave); }
.vereadores--pagina { grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 18px; }
.vereadores--pagina .vereador__foto { width: 150px; height: 150px; }
.vereadores--compacto .vereador__foto { width: 72px; height: 72px; }

/* sessões e TV */
.sessoes { background: linear-gradient(135deg, var(--pri-esc), color-mix(in srgb, var(--pri-esc) 80%, #000)); color: #cad7ea; }
.sessoes h2 { color: #fff; font-size: clamp(1.6rem, 2.6vw, 2.2rem); margin-bottom: 14px; }
.sessoes .sobre { color: var(--acc); }
.sessoes__grid { display: grid; grid-template-columns: 340px minmax(0, 1fr); gap: 40px; align-items: start; }
.sessoes__quando { display: flex; gap: 10px; align-items: center; font: 700 1.05rem var(--f-titulo); color: #fff; margin-bottom: 10px; }
.sessoes__quando .ic { color: var(--acc); }
.sessoes__acoes { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.sessoes__videos { display: grid; grid-template-columns: 1.5fr 1fr; grid-template-rows: repeat(3, auto); gap: 14px; }
.sessoes__videos > :first-child { grid-row: span 3; }
.card-video { display: flex; flex-direction: column; gap: 8px; color: #fff; text-decoration: none; min-width: 0; }
.sessoes__videos .card-video:not(.card-video--grande) { flex-direction: row; align-items: center; gap: 12px; }
.card-video__img { position: relative; display: block; aspect-ratio: 16 / 9; border-radius: 12px; overflow: hidden; background: #0b1a30; flex: none; }
.sessoes__videos .card-video:not(.card-video--grande) .card-video__img { width: 42%; }
.card-video__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.card-video:hover img { transform: scale(1.05); }
.card-video__play { position: absolute; inset: 0; display: grid; place-items: center; }
.card-video__play .ic { width: 48px; height: 48px; color: #fff; filter: drop-shadow(0 4px 12px rgba(0,0,0,.4)); }
.card-video__txt { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.card-video__txt small { font: 700 .72rem var(--f-titulo); text-transform: uppercase; letter-spacing: .12em; color: var(--acc); }
.card-video__txt strong { font: 700 .98rem/1.3 var(--f-titulo); }
.card-video--grande .card-video__txt strong { font-size: 1.25rem; }
.card-video__txt time { font-size: .82rem; opacity: .75; }
.grade-videos { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 22px; }
.grade-videos .card-video { color: var(--tinta); }
.grade-videos .card-video__txt small { color: var(--pri-2); }

/* três colunas */
.tres { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.bloco { background: #fff; border: 1px solid var(--linha); border-radius: var(--r-g); padding: 24px; min-width: 0; }
.bloco__cab { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 14px; }
.bloco__cab h2 { font-size: 1.15rem; display: flex; align-items: center; gap: 10px; }
.bloco__cab h2 .ic { color: var(--pri-2); }
.bloco__cab a { font-weight: 700; font-size: .9rem; white-space: nowrap; }
.bloco__nota { font-size: .9rem; color: var(--suave); margin-top: 10px; }
.agenda li { display: flex; gap: 14px; align-items: flex-start; padding: 12px 0; border-top: 1px solid var(--linha); }
.agenda li:first-child { border-top: 0; }
.agenda a { font-weight: 700; color: var(--tinta); text-decoration: none; display: block; line-height: 1.3; }
.agenda a:hover { color: var(--pri-2); text-decoration: underline; }
.agenda small { color: var(--suave); font-size: .85rem; }
.agenda__data { flex: none; width: 54px; height: 58px; border-radius: 12px; background: var(--pri); color: #cddbf0; display: flex; flex-direction: column; align-items: center; justify-content: center; font: 700 .72rem/1 var(--f-titulo); text-transform: uppercase; }
.agenda__data b { font-size: 1.35rem; color: #fff; margin-bottom: 3px; }
.agenda__data--grande { width: 72px; height: 76px; }
.agenda--pagina li { padding: 18px 0; }
.lista-proc li a { display: block; padding: 12px 0; border-top: 1px solid var(--linha); text-decoration: none; }
.lista-proc li:first-child a { border-top: 0; }
.lista-proc__tipo { display: block; font: 700 .85rem var(--f-titulo); color: var(--tinta); }
.lista-proc__obj { display: block; color: var(--texto); font-size: .95rem; line-height: 1.4; margin-top: 2px; }
.lista-proc a:hover .lista-proc__obj { color: var(--pri-2); text-decoration: underline; }

/* transparência */
.transp { background: var(--pri); color: #d3def0; padding: 56px 0; position: relative; overflow: hidden; }
.transp::before { content: ""; position: absolute; width: 480px; height: 480px; right: -140px; top: -200px; border-radius: 50%; border: 60px solid rgba(255,255,255,.05); }
.transp__in { position: relative; display: grid; grid-template-columns: 320px minmax(0, 1fr); gap: 40px; align-items: center; }
.transp h2 { color: #fff; font-size: 2rem; margin-bottom: 8px; }
.transp .sobre { color: var(--acc); }
.transp__links { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.transp__links a { display: flex; align-items: center; gap: 12px; padding: 16px; border-radius: var(--r); background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.12); color: #fff; text-decoration: none; font-weight: 700; line-height: 1.25; transition: .16s; }
.transp__links a:hover { background: #fff; color: var(--pri); }
.transp__links .ic { color: var(--acc); }
.transp__links a:hover .ic { color: var(--pri); }

/* ---------- páginas internas ---------- */
.pg-head { background: linear-gradient(180deg, var(--pri) 0%, var(--pri-esc) 100%); color: #cad7ea; padding: 28px 0 40px; }
.pg-head h1 { color: #fff; font-size: clamp(1.7rem, 3.2vw, 2.6rem); font-weight: 800; margin-top: 14px; max-width: 920px; }
.pg-head__sub { margin-top: 10px; max-width: 70ch; font-size: 1.1rem; }
.trilha { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: .875rem; }
.trilha a { color: #cad7ea; text-decoration: none; display: inline-flex; }
.trilha a:hover { color: #fff; text-decoration: underline; }
.trilha .ic--xs { opacity: .55; }
.trilha [aria-current] { color: #fff; font-weight: 600; }
.pg { padding: 44px 0 80px; }
.pg__grid { display: grid; grid-template-columns: 290px minmax(0, 1fr); gap: 40px; align-items: start; }
.pg__grid--dir { grid-template-columns: minmax(0, 1fr) 320px; }
.lateral { display: grid; gap: 18px; position: sticky; top: 110px; }
.caixa { background: #fff; border: 1px solid var(--linha); border-radius: var(--r); padding: 20px; }
.caixa h2 { font-size: 1.02rem; margin-bottom: 12px; }
.caixa p { display: flex; gap: 8px; align-items: flex-start; margin-bottom: 8px; font-size: .96rem; overflow-wrap: anywhere; }
.caixa p .ic { color: var(--pri-2); margin-top: 3px; }
.caixa .btn { margin-top: 6px; }
.lista-cat a { display: flex; justify-content: space-between; gap: 8px; padding: 8px 10px; border-radius: 9px; color: var(--texto); text-decoration: none; }
.lista-cat a:hover { background: var(--cinza); }
.lista-cat a[aria-current] { background: var(--pri-claro); color: var(--pri); font-weight: 700; }
.lista-cat small { font-size: .75rem; background: var(--cinza); border-radius: 999px; padding: 1px 8px; align-self: center; color: var(--suave); }
.filtros label { display: block; font-weight: 700; color: var(--tinta); font-size: .9rem; margin-bottom: 6px; }
.campo-busca { display: flex; gap: 6px; }
.campo-busca input { flex: 1; min-width: 0; }
input[type=search], input[type=text], select { height: 46px; border: 1.5px solid var(--linha); border-radius: 11px; padding: 0 12px; font: inherit; font-size: 1rem; background: #fff; color: var(--tinta); max-width: 100%; }
input:focus, select:focus { outline: none; border-color: var(--pri-2); box-shadow: 0 0 0 3px color-mix(in srgb, var(--pri-2) 16%, transparent); }
.filtros-linha { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-end; background: var(--cinza); border-radius: var(--r); padding: 18px; margin-bottom: 14px; }
.filtros-linha .campo { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.filtros-linha .campo--busca { flex: 1 1 260px; }
.filtros-linha .campo--busca input { width: 100%; }
.filtros-linha label { font-weight: 700; font-size: .85rem; color: var(--tinta); }
.campo--botoes { flex-direction: row !important; align-items: center; gap: 12px !important; }
.resultado-total { color: var(--suave); font-size: .9rem; margin-bottom: 16px; }
.vazio { text-align: center; padding: 56px 20px; background: var(--cinza); border-radius: var(--r); color: var(--suave); }
.vazio .ic { width: 42px; height: 42px; margin: 0 auto 10px; opacity: .55; }
.vazio-inline { color: var(--suave); }
.paginacao { display: flex; justify-content: center; flex-wrap: wrap; gap: 6px; margin-top: 36px; }
.paginacao .page-numbers { min-width: 44px; height: 44px; padding: 0 10px; display: grid; place-items: center; border-radius: 11px; border: 1.5px solid var(--linha); color: var(--tinta); text-decoration: none; font-weight: 700; }
.paginacao .current { background: var(--pri); border-color: var(--pri); color: #fff; }
.paginacao a:hover { border-color: var(--pri-2); color: var(--pri-2); }

.materia { max-width: 800px; min-width: 0; }
.materia__meta { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; font-size: .92rem; color: var(--suave); margin-bottom: 20px; }
.materia__meta span { display: inline-flex; gap: 6px; align-items: center; }
.materia__linha-fina { font-size: 1.25rem; color: var(--tinta); line-height: 1.5; margin-bottom: 24px; }
.materia__foto { position: relative; aspect-ratio: 16 / 10; border-radius: var(--r); overflow: hidden; margin: 0 0 28px; }
.materia__foto--livre { aspect-ratio: auto; }
.subtitulo { font-size: 1.2rem; margin: 30px 0 14px; }
.texto { font-size: 1.1rem; line-height: 1.75; color: #2c3848; overflow-wrap: anywhere; }
.texto > * + * { margin-top: 1em; }
.texto ul { list-style: disc; padding-left: 1.4em; }
.texto ol { list-style: decimal; padding-left: 1.4em; }
.texto h2, .texto h3 { margin-top: 1.5em; }
.texto img { border-radius: 10px; margin-left: auto; margin-right: auto; }
.texto figure { margin-left: 0; margin-right: 0; }
.texto table, .tabela { width: 100%; border-collapse: collapse; font-size: .98rem; }
.texto td, .texto th { border: 1px solid var(--linha); padding: 8px 10px; }
.texto .gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 10px; }
.texto .gallery-item { margin: 0; }
.texto .gallery img { aspect-ratio: 4 / 3; object-fit: cover; }
.fotos { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 10px; }
.fotos a { display: block; aspect-ratio: 4 / 3; border-radius: 10px; overflow: hidden; background: var(--cinza); }
.fotos img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.fotos a:hover img { transform: scale(1.05); }
.compartilhar { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 34px; padding-top: 20px; border-top: 1px solid var(--linha); font-weight: 700; color: var(--tinta); }
.compartilhar a, .compartilhar button { width: 42px; height: 42px; border-radius: 50%; border: 1.5px solid var(--linha); background: #fff; color: var(--pri); display: grid; place-items: center; }
.compartilhar a:hover, .compartilhar button:hover { background: var(--pri); border-color: var(--pri); color: #fff; }
.relacionadas a { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 12px; align-items: center; padding: 8px 0; text-decoration: none; color: var(--tinta); }
.relacionadas img { width: 84px; height: 64px; object-fit: cover; border-radius: 8px; }
.relacionadas strong { display: block; font-size: .92rem; line-height: 1.3; }
.relacionadas time { font-size: .8rem; color: var(--suave); }

.ficha { display: grid; gap: 10px; margin: 0 0 8px; }
.ficha--grade { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); }
.ficha div { background: var(--cinza); border-radius: 12px; padding: 12px 16px; }
.ficha dt { font: 700 .72rem var(--f-titulo); text-transform: uppercase; letter-spacing: .08em; color: var(--suave); }
.ficha dd { margin: 4px 0 0; font-weight: 700; color: var(--tinta); overflow-wrap: anywhere; }
.anexos { display: grid; gap: 10px; }
.anexo { display: flex; align-items: center; gap: 14px; padding: 14px 16px; border: 1px solid var(--linha); border-radius: 12px; background: #fff; text-decoration: none; color: var(--tinta); transition: .15s; }
.anexo:hover { border-color: var(--pri-2); background: var(--pri-claro); }
.anexo__ic { width: 44px; height: 44px; flex: none; border-radius: 10px; background: var(--erro-bg); color: var(--erro); display: grid; place-items: center; font: 800 .68rem var(--f-titulo); }
.anexo__txt { flex: 1; min-width: 0; }
.anexo strong { display: block; overflow-wrap: anywhere; }
.anexo small { color: var(--suave); }
.anexo > .ic { color: var(--suave); }
.linha-tempo { border-left: 2px solid var(--linha); margin-left: 6px; }
.linha-tempo li { position: relative; padding: 0 0 14px 20px; display: flex; flex-direction: column; }
.linha-tempo li::before { content: ""; position: absolute; left: -7px; top: 6px; width: 12px; height: 12px; border-radius: 50%; background: #fff; border: 2px solid var(--pri-2); }
.linha-tempo time { font-size: .82rem; font-weight: 700; color: var(--suave); }

.processos { display: grid; gap: 14px; }
.processo { display: flex; gap: 20px; align-items: center; justify-content: space-between; padding: 20px 22px; background: #fff; border: 1px solid var(--linha); border-radius: var(--r); transition: .15s; }
.processo:hover { border-color: var(--pri-2); box-shadow: var(--sombra); }
.processo--data { justify-content: flex-start; }
.processo__txt { min-width: 0; flex: 1; }
.processo__tipo { font: 700 .88rem var(--f-titulo); color: var(--tinta); }
.processo h2 { font: 600 1.08rem/1.35 var(--f-texto); margin: 4px 0 6px; letter-spacing: 0; }
.processo h2 a { color: var(--texto); text-decoration: none; }
.processo h2 a:hover { color: var(--pri-2); text-decoration: underline; }
.processo__datas { display: flex; flex-wrap: wrap; gap: 4px 18px; font-size: .85rem; color: var(--suave); }
.processo__datas span { display: inline-flex; gap: 6px; align-items: center; }
.tabela-rolagem { position: relative; overflow-x: auto; border: 1px solid var(--linha); border-radius: var(--r); background: #fff; }
.tabela th { text-align: left; background: var(--cinza); font: 700 .75rem var(--f-titulo); text-transform: uppercase; letter-spacing: .06em; color: var(--tinta); padding: 12px 16px; }
.tabela td { padding: 14px 16px; border-top: 1px solid var(--linha); vertical-align: top; }
.tabela td small { color: var(--suave); }
.tabela .num { font-weight: 700; color: var(--tinta); white-space: nowrap; }
.tabela .acao { text-align: right; white-space: nowrap; }
.baixar { display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border-radius: 9px; background: var(--erro-bg); color: var(--erro); font-weight: 700; font-size: .85rem; text-decoration: none; }
.baixar:hover { background: var(--erro); color: #fff; }
.anos { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 18px; }
.anos a { padding: 7px 14px; border-radius: 999px; border: 1.5px solid var(--linha); color: var(--texto); text-decoration: none; font-weight: 700; font-size: .9rem; }
.anos a[aria-current] { background: var(--pri); border-color: var(--pri); color: #fff; }

.cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 18px; }
.card { background: #fff; border: 1px solid var(--linha); border-radius: var(--r); padding: 22px; display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.card h2 { font-size: 1.12rem; }
.card h2 a { color: var(--tinta); text-decoration: none; }
.card h2 a:hover { color: var(--pri-2); text-decoration: underline; }
.card p { display: flex; gap: 8px; align-items: flex-start; overflow-wrap: anywhere; }
.card p .ic { color: var(--pri-2); margin-top: 4px; }
.card__resp { font-weight: 700; color: var(--tinta); }
.card details summary { cursor: pointer; font-weight: 700; color: var(--pri-2); }
.card .texto { font-size: .98rem; }
.membros li { display: flex; justify-content: space-between; gap: 10px; padding: 7px 0; border-top: 1px solid var(--linha); }
.membros li:first-child { border-top: 0; }
.membros span { color: var(--suave); font-size: .9rem; }
.membros--grande li { padding: 12px 0; }
.mesa { margin-bottom: 44px; }
.mesa h2 { font-size: 1.35rem; margin-bottom: 18px; display: flex; gap: 10px; align-items: center; }
.links-rodape { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 36px; }
.perfil { display: grid; grid-template-columns: 320px minmax(0, 1fr); gap: 44px; align-items: start; }
.perfil__foto img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: center top; border-radius: var(--r-g); box-shadow: var(--sombra-f); }
.perfil__foto > .ic { width: 100%; height: 280px; color: var(--pri); background: var(--pri-claro); border-radius: var(--r-g); padding: 80px; }
.perfil__dados { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.perfil__nome { font-size: 1.2rem; color: var(--tinta); }
.perfil__acoes { display: flex; flex-wrap: wrap; gap: 8px; }
.galeria-pres { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 18px; }
.galeria-pres li { text-align: center; display: flex; flex-direction: column; gap: 2px; }
.galeria-pres img, .galeria-pres__vazia { width: 100%; aspect-ratio: 9 / 11; object-fit: cover; border-radius: var(--r); margin-bottom: 8px; background: var(--cinza); }
.galeria-pres__vazia { display: grid; place-items: center; color: var(--suave); }
.galeria-pres strong { font: 700 .95rem/1.25 var(--f-titulo); color: var(--tinta); }
.galeria-pres span { font-size: .85rem; color: var(--suave); }
.albuns { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 18px; }
.album { position: relative; display: block; aspect-ratio: 4 / 3; border-radius: var(--r); overflow: hidden; color: #fff; text-decoration: none; background: var(--pri); }
.album img { width: 100%; height: 100%; object-fit: cover; }
.album > span { position: absolute; inset: auto 0 0 0; padding: 40px 16px 14px; background: linear-gradient(transparent, rgba(6,18,36,.88)); display: flex; flex-direction: column; }
.video-embed { position: relative; aspect-ratio: 16 / 9; border-radius: var(--r); overflow: hidden; background: #000; margin-bottom: 24px; max-width: 100%; }
.video-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.busca-grande { display: flex; gap: 10px; margin-bottom: 26px; }
.busca-grande input { flex: 1; height: 52px; min-width: 0; }
.resultados li { padding: 16px 0; border-bottom: 1px solid var(--linha); display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.resultados a { font: 700 1.1rem var(--f-titulo); text-decoration: none; }
.resultados a:hover { text-decoration: underline; }
.erro404 { max-width: 640px; text-align: center; padding: 40px 0; display: flex; flex-direction: column; align-items: center; gap: 14px; }
.erro404 h1 { font-size: 2.2rem; }
.erro404 .busca-grande { width: 100%; }
.canais { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; }
.canal { display: flex; gap: 14px; align-items: center; padding: 16px; border: 1px solid var(--linha); border-radius: var(--r); text-decoration: none; color: var(--tinta); }
.canal:hover { border-color: var(--pri-2); box-shadow: var(--sombra); }
.canal small { display: block; color: var(--suave); }
.mapa-site { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 30px; }
.mapa-site h2 { font-size: 1.1rem; margin-bottom: 10px; }
.mapa-site li { padding: 4px 0; }
.lista-links li, .lista-docs li { padding: 6px 0; }

/* ---------- rodapé ---------- */
.rodape { background: var(--pri-esc); color: #b9c8de; font-size: .98rem; }
.rodape a { color: #d6e1f0; text-decoration: none; }
.rodape a:hover { color: #fff; text-decoration: underline; }
.rodape__topo { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 2fr); gap: 40px; padding-top: 56px; padding-bottom: 36px; border-bottom: 1px solid rgba(255,255,255,.1); }
.rodape__marca { display: flex; gap: 16px; align-items: center; }
.rodape__marca img { width: 84px; height: 84px; object-fit: contain; }
.rodape__marca strong { display: block; color: #fff; font: 800 1.25rem/1.2 var(--f-titulo); }
.rodape__marca span { display: block; font-size: .9rem; }
.rodape__info { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin: 0; }
.rodape__info dt { display: flex; gap: 8px; align-items: center; font: 700 .78rem var(--f-titulo); text-transform: uppercase; letter-spacing: .1em; color: #fff; margin-bottom: 8px; }
.rodape__info dt .ic { color: var(--acc); }
.rodape__info dd { margin: 0; overflow-wrap: anywhere; }
.rodape__colunas { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px; padding-top: 36px; padding-bottom: 40px; }
.rodape__colunas h2 { color: #fff; font: 700 .8rem var(--f-titulo); text-transform: uppercase; letter-spacing: .12em; margin-bottom: 14px; }
.rodape__colunas li { padding: 4px 0; font-size: .95rem; }
.rodape__legal { border-top: 1px solid rgba(255,255,255,.1); font-size: .88rem; }
.rodape__legal-in { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 10px 24px; padding-top: 16px; padding-bottom: 16px; }
.rodape__legal nav { display: flex; flex-wrap: wrap; gap: 6px 20px; }
.rodape__legal span { display: inline-flex; align-items: center; gap: 6px; }
.rodape__legal strong { color: #fff; }
.rodape__base { background: color-mix(in srgb, var(--pri-esc) 80%, #000); font-size: .85rem; }
.rodape__base-in { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; min-height: 60px; padding-top: 10px; padding-bottom: 10px; }
.rodape__redes { display: flex; gap: 6px; }
.rodape__redes a { width: 36px; height: 36px; border-radius: 50%; background: rgba(255,255,255,.08); display: grid; place-items: center; }
.rodape__redes a:hover { background: var(--acc); color: #1a1300; }
.rodape__cred { display: inline-flex; align-items: center; gap: 6px; color: inherit; text-decoration: none; opacity: .7; font-size: .8rem; }
.rodape__cred:hover { opacity: 1; }
.rodape__cred img { height: 35px; width: auto; display: block; }
.topo-btn { position: fixed; right: 20px; bottom: 96px; width: 46px; height: 46px; border-radius: 50%; background: var(--pri); color: #fff; display: grid; place-items: center; box-shadow: var(--sombra-f); opacity: 0; visibility: hidden; transform: translateY(10px); transition: .2s; z-index: 40; }
.topo-btn .ic { transform: rotate(180deg); }
.topo-btn.vis { opacity: 1; visibility: visible; transform: none; }

/* ---------- alto contraste ---------- */
.alto-contraste body, .alto-contraste .topo, .alto-contraste .barra, .alto-contraste .cabecalho, .alto-contraste .hero, .alto-contraste .secao, .alto-contraste .sessoes, .alto-contraste .transp, .alto-contraste .pg-head, .alto-contraste .rodape, .alto-contraste .rodape__base, .alto-contraste .card, .alto-contraste .card-not, .alto-contraste .bloco, .alto-contraste .caixa, .alto-contraste .atalho, .alto-contraste .processo, .alto-contraste .anexo, .alto-contraste .sub, .alto-contraste .ficha div, .alto-contraste .tabela th, .alto-contraste .tabela-rolagem, .alto-contraste .filtros-linha, .alto-contraste input, .alto-contraste select, .alto-contraste .abas, .alto-contraste .transp__links a { background: #000 !important; color: #fff !important; border-color: #fff !important; box-shadow: none !important; }
.alto-contraste * { color: #fff !important; }
.alto-contraste a, .alto-contraste a * { color: #ff0 !important; }
.alto-contraste .hero::before, .alto-contraste .img-fit::before { display: none; }

/* ---------- responsivo ---------- */
@media (max-width: 1180px) {
  .busca input { width: 200px; }
  .transp__links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rodape__colunas { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .menu-btn { display: inline-flex; align-items: center; gap: 8px; height: 46px; padding: 0 16px; border-radius: 999px; border: 1px solid rgba(255,255,255,.3); background: rgba(255,255,255,.08); color: #fff; font: 700 .9rem var(--f-titulo); }
  .menu { position: fixed; inset: 0 0 0 auto; width: min(380px, 90vw); background: #fff; transform: translateX(100%); transition: transform .25s; overflow-y: auto; z-index: 80; box-shadow: var(--sombra-f); border: 0; }
  .menu.aberto { transform: none; }
  body.menu-aberto::after { content: ""; position: fixed; inset: 0; background: rgba(6,16,30,.5); z-index: 70; }
  .menu__in { flex-direction: column; padding: 0; }
  .menu__cab { display: flex; justify-content: space-between; align-items: center; padding: 16px 20px; border-bottom: 1px solid var(--linha); color: var(--tinta); font-family: var(--f-titulo); }
  .menu__cab button { width: 42px; height: 42px; border: 0; background: var(--cinza); border-radius: 50%; display: grid; place-items: center; color: var(--tinta); }
  .menu__lista { flex-direction: column; flex-wrap: nowrap; padding: 8px 12px; }
  .menu__lista > li > a, .menu__lista > li > button { color: var(--tinta); width: 100%; justify-content: space-between; height: 52px; border-radius: 10px; }
  .menu__lista > li > a::after, .menu__lista > li > button::after { display: none; }
  .sub { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; padding: 0 0 8px 8px; display: none; min-width: 0; }
  .tem-sub.aberto .sub { display: block; }
  .tem-sub:hover .sub { display: none; }
  .tem-sub.aberto:hover .sub { display: block; }
  .menu__rodape { display: grid; gap: 4px; padding: 12px 20px 30px; border-top: 1px solid var(--linha); }
  .menu__rodape a { display: flex; gap: 10px; align-items: center; padding: 8px 0; color: var(--pri); font-weight: 700; text-decoration: none; }
}
@media (max-width: 1024px) {
  .barra__atalhos li:nth-child(n+4) { display: none; }
  .busca { display: none; }
  .slide { grid-template-columns: 1fr; gap: 24px; }
  .slide__img { order: -1; }
  .hero__slides { min-height: 0; }
  .grade-not { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grade-not > :first-child { grid-column: 1 / -1; grid-row: auto; }
  .casa__grid, .sessoes__grid, .transp__in, .pg__grid, .pg__grid--dir, .perfil { grid-template-columns: minmax(0, 1fr); }
  .presidente { max-width: 340px; }
  .tres { grid-template-columns: minmax(0, 1fr); }
  .lateral { position: static; }
  .rodape__topo { grid-template-columns: minmax(0, 1fr); }
  .perfil__foto { max-width: 320px; }
}
@media (max-width: 680px) {
  .wrap { padding-left: 16px; padding-right: 16px; }
  .barra__atalhos { display: none; }
  .barra__in { justify-content: center; }
  .marca img { width: 54px; height: 54px; }
  .marca small { font-size: .68rem; letter-spacing: .12em; }
  .cabecalho__acoes .btn--vidro { display: none; }
  .menu-btn span { display: none; }
  .menu-btn { width: 46px; padding: 0; justify-content: center; }
  .secao { padding: 52px 0; }
  .secao__cab .btn { width: 100%; }
  .abas { width: 100%; }
  .abas button { flex: 1; padding: 9px 10px; }
  .atalhos { grid-template-columns: 1fr 1fr; }
  .atalho { flex-direction: column; align-items: flex-start; gap: 10px; padding: 14px; font-size: .95rem; }
  .grade-not, .grade-not--lista { grid-template-columns: minmax(0, 1fr); }
  .vereadores { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vereador__foto { width: 88px; height: 88px; }
  .vereadores--pagina .vereador__foto { width: 120px; height: 120px; }
  .sessoes__videos { grid-template-columns: minmax(0, 1fr); }
  .sessoes__videos > :first-child { grid-row: auto; }
  .transp__links { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .transp__links a { flex-direction: column; align-items: flex-start; }
  .rodape__info { grid-template-columns: minmax(0, 1fr); }
  .rodape__colunas { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 16px; }
  .processo { flex-direction: column; align-items: flex-start; }
  .processo--data { flex-direction: row; }
  .busca-grande { flex-direction: column; }
  .filtros-linha .campo { flex: 1 1 100%; }
  .filtros-linha select { width: 100%; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; } }
@media print { .topo, .rodape, .topo-btn, [vw], .lateral, .compartilhar, .hero__ctrl { display: none !important; } .pg-head { background: none; color: #000; } .pg-head h1 { color: #000; } }

/* ---------- menu com 8 seções e painéis agrupados ---------- */
@media (min-width: 1181px) {
  .menu__in { position: relative; }
  .menu__lista { flex-wrap: nowrap; gap: 0; }
  .menu__lista > li > a, .menu__lista > li > button { padding: 0 12px; font-size: .92rem; white-space: nowrap; }
  .menu__lista > li > a::after, .menu__lista > li > button::after { left: 12px; right: 12px; }
  .menu__lista > li:nth-last-child(-n+2) > .sub:not(.sub--mega) { left: auto; right: 0; }
  .menu__lista > li.tem-sub--mega { position: static; }
  .sub--mega { left: 24px; right: 24px; min-width: 0; padding: 22px 24px 18px; }
}
.sub ul { list-style: none; margin: 0; padding: 0; }
.sub__grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 10px 26px; }
.sub__col { min-width: 0; }
.sub__tit { margin: 0 0 6px; padding: 6px 12px 8px; border-bottom: 2px solid var(--acc); font: 700 .74rem var(--f-titulo); letter-spacing: .12em; text-transform: uppercase; color: var(--pri); }
.sub__tit a { color: inherit; text-decoration: none; padding: 0; display: inline; }
.sub__tit a:hover { background: none; text-decoration: underline; }
.sub--mega a { padding: 8px 12px; font-size: .97rem; }

/* ---------- página de transparência ---------- */
.transp-hub { display: grid; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); gap: 18px; margin-top: 8px; }
.transp-hub__cat { background: var(--fundo); border: 1px solid var(--linha); border-radius: var(--r); padding: 20px 20px 14px; border-top: 4px solid var(--pri); }
.texto .transp-hub__cat h2 { font-size: 1.05rem; margin: 0 0 10px; }
.transp-hub__cat ul { list-style: none; margin: 0; padding: 0; }
.transp-hub__cat li { border-top: 1px solid var(--linha); margin: 0; }
.transp-hub__cat li:first-child { border-top: 0; }
.transp-hub__cat a { display: block; padding: 9px 0; font-weight: 600; text-decoration: none; color: var(--pri); }
.transp-hub__cat a:hover { text-decoration: underline; }
.transp-hub__cat a[target="_blank"]::after { content: "\00a0↗"; font-weight: 400; color: var(--suave); }
.mapa-site ul ul { margin: 4px 0 6px 14px; font-size: .95rem; }
@media (max-width: 1180px) {
  .tem-sub--mega { position: relative; }
  .sub--mega { padding: 0 0 8px 8px; }
  .sub__grade { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .sub__tit { padding: 8px 12px 4px; border: 0; }
  .sub--mega a { padding: 10px 12px; }
}
body.menu-aberto .topo { z-index: 90; }
.sub .sub__tit a { padding: 0; font: inherit; color: inherit; }
.materia:has(.transp-hub) { max-width: none; }
.rodape__colunas div { min-width: 0; } .rodape__colunas a { overflow-wrap: anywhere; }

/* ---------- convocações ---------- */
.convocacoes { list-style: none; margin: 0 0 28px; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 12px; }
.convocacao { display: flex; align-items: center; gap: 14px; height: 100%; padding: 16px 18px; background: #fff; border: 1px solid var(--linha); border-radius: var(--r); text-decoration: none; color: var(--tinta); transition: .16s; }
.convocacao:hover { box-shadow: var(--sombra); border-color: transparent; transform: translateY(-2px); }
.convocacao__ic { width: 44px; height: 44px; flex: none; border-radius: 12px; display: grid; place-items: center; background: var(--pri-claro); color: var(--pri); }
.convocacao__txt { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1; }
.convocacao__txt strong { font: 700 1rem/1.3 var(--f-titulo); }
.convocacao__txt small { color: var(--suave); font-size: .88rem; }
.convocacao__ver { flex: none; font-weight: 700; font-size: .9rem; color: var(--pri); display: inline-flex; align-items: center; gap: 4px; }
.convocacoes-grupo + .convocacoes-grupo { margin-top: 12px; }
@media (max-width: 680px) { .convocacao__ver { display: none; } }
.texto figure.simbolo { margin: 8px 0 20px; }
.texto figure.simbolo img { max-width: 260px; height: auto; border-radius: 10px; border: 1px solid var(--linha); background: #fff; padding: 8px; }
.texto figure.simbolo { margin-left: 0; margin-right: 0; }
.convocacoes-grupo__txt { max-width: 860px; margin-bottom: 18px; }
.convocacao-info { margin-bottom: 18px; color: var(--texto); }
.convocacao-info p { margin: 2px 0; }
.convocacao-info__data { font: 700 1.05rem var(--f-titulo); color: var(--erro); }
.filtro-tabela { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 8px 0 14px; }
.filtro-tabela label { font-weight: 700; }
.filtro-tabela input { min-width: 0; flex: 1 1 240px; max-width: 360px; height: 42px; padding: 0 14px; border: 1px solid var(--linha); border-radius: 10px; font: inherit; }

/* Audiências públicas */
.aud-intro { display: grid; gap: 18px; margin-bottom: 28px; }
.aud-intro .texto p { margin: 0; }
.aud-info .aud-info__larga { grid-column: span 2; }
.tabela--aud td { vertical-align: middle; }
.tabela--aud td:first-child a { font-weight: 700; color: var(--tinta); text-decoration: none; }
.tabela--aud td:first-child a:hover { color: var(--pri); text-decoration: underline; }
.aud-docs { color: var(--suave); display: inline-flex; align-items: center; gap: 4px; margin-top: 4px; }
.btn--peq { padding: 6px 14px; font-size: .85rem; min-height: 0; }
.nota { color: var(--suave); }
@media (max-width: 720px) {
  .aud-info { grid-template-columns: 1fr; }
  .aud-info .aud-info__larga { grid-column: auto; }
  .tabela--aud thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .tabela--aud, .tabela--aud tbody, .tabela--aud tr, .tabela--aud td { display: block; width: 100%; }
  .tabela--aud tr { padding: 14px 16px; border-bottom: 1px solid var(--linha); }
  .tabela--aud td { padding: 3px 0; border: 0; white-space: normal; }
  .tabela--aud td[data-rot]::before { content: attr(data-rot) ": "; font-weight: 700; color: var(--suave); font-size: .85rem; }
  .tabela--aud .aud-acao { padding-top: 10px; }
}

/* Tabelas: colunas não se espremem (o texto quebra por palavra), títulos não quebram no meio da palavra */
.texto table, .tabela { overflow-wrap: break-word; }
.tabela th, .texto th { overflow-wrap: normal; word-break: keep-all; hyphens: none; }
.tabela td a, .texto td a { overflow-wrap: anywhere; }
.tabela .tel { white-space: nowrap; display: inline-block; }
.tabela--guia td:last-child { min-width: 170px; }
.tabela--guia .site { display: inline-block; margin-top: 4px; }
.tabela tr[hidden] { display: none !important; }
/* Celular: tabelas com cabeçalho viram cartões, cada dado com o nome da coluna */
@media (max-width: 720px) {
  .tabela--cartoes thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .tabela--cartoes, .tabela--cartoes tbody, .tabela--cartoes tr, .tabela--cartoes td { display: block; width: 100%; }
  .tabela--cartoes tr { padding: 12px 16px; border-bottom: 1px solid var(--linha); }
  .tabela--cartoes tr:last-child { border-bottom: 0; }
  .tabela--cartoes td { padding: 3px 0; border: 0; white-space: normal; text-align: left !important; }
  .tabela--cartoes td[data-rot]:not([data-rot=""])::before { content: attr(data-rot) ": "; font-weight: 700; color: var(--suave); font-size: .85rem; }
  .tabela--cartoes td:first-child { font-weight: 700; }
  .tabela--cartoes td:first-child::before { display: none; }
  .tabela--guia td:last-child { min-width: 0; }
  .tabela-rolagem:has(.tabela--cartoes) { overflow-x: visible; }
}
.texto figure.capa-pagina { margin: 0 auto 28px; max-width: 640px; text-align: center; }
.texto figure.capa-pagina img { width: 100%; height: auto; border-radius: 14px; border: 1px solid var(--linha); box-shadow: 0 8px 24px rgba(16, 33, 64, .10); }

/* Guia da Cidade */
.texto .guia { max-width: none; }
.guia-intro { margin: 0 0 18px; }
.guia-busca { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; margin: 0 0 22px; }
.guia-busca label { font: 700 .95rem var(--f-titulo); color: var(--tinta); }
.guia-busca input { flex: 1 1 260px; max-width: 460px; font: inherit; font-size: 1rem; padding: 11px 14px; border: 1px solid var(--linha); border-radius: 10px; background: #fff; }
.guia-busca input:focus { outline: 3px solid var(--acc, #f6f328); outline-offset: 1px; border-color: var(--pri); }
.guia-cats { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 14px; margin: 0 0 36px; }
.texto .guia-cat { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 8px; padding: 18px 12px 16px; background: #fff; border: 1px solid var(--linha); border-radius: 16px; text-decoration: none; color: var(--tinta); transition: transform .15s, box-shadow .15s, border-color .15s; overflow-wrap: normal; }
.texto .guia-cat:hover, .texto .guia-cat:focus-visible { transform: translateY(-2px); border-color: var(--pri-2, #2a5ea8); box-shadow: 0 10px 22px rgba(16, 33, 64, .10); }
.guia-cat__icone { width: 72px; height: 72px; object-fit: contain; }
.guia-cat__icone--vazio { display: block; border-radius: 50%; background: var(--cinza); }
.guia-cat__nome { font: 700 .95rem/1.3 var(--f-titulo); color: var(--pri); }
.guia-cat__qtd { font-size: .82rem; font-weight: 700; color: var(--suave); background: var(--cinza); border-radius: 99px; padding: 2px 10px; }
.guia-grupo { margin: 0 0 34px; scroll-margin-top: 90px; }
.texto .guia-grupo h2 { display: flex; align-items: center; gap: 10px; margin: 0 0 14px; }
.guia-grupo__qtd { flex: none; white-space: nowrap; font-size: .8rem; font-weight: 700; color: var(--pri); background: var(--pri-claro, #e8eef8); border-radius: 99px; padding: 2px 10px; }
.guia-lista { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; }
.guia-emp { display: flex; gap: 14px; align-items: flex-start; padding: 16px; background: #fff; border: 1px solid var(--linha); border-radius: 14px; font-size: .96rem; line-height: 1.5; }
.guia-emp__logo { flex: none; width: 76px; height: 64px; display: flex; align-items: center; justify-content: center; background: #fff; border: 1px solid var(--linha); border-radius: 10px; overflow: hidden; }
.guia-emp__logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.guia-emp__logo .guia-cat__icone { width: 44px; height: 44px; }
.guia-emp__txt { min-width: 0; }
.texto .guia-emp h3 { margin: 0 0 4px; font: 700 1rem/1.3 var(--f-titulo); color: var(--tinta); }
.texto .guia-emp p { margin: 0 0 2px; color: #3b4758; }
.guia-emp .tel { white-space: nowrap; color: inherit; text-decoration: none; font-weight: 600; }
.guia-emp .site { overflow-wrap: anywhere; }
.guia-nenhum { padding: 18px; background: var(--cinza); border-radius: 12px; }
.guia-nota { margin-top: 10px; color: var(--suave); font-size: .95rem; }
@media (max-width: 560px) { .guia-cats { grid-template-columns: repeat(2, 1fr); gap: 10px; } .guia-cat__icone { width: 56px; height: 56px; } .guia-lista { grid-template-columns: 1fr; } }

.materia:has(.guia), .texto:has(.guia) { max-width: none; }

/* Galeria em tela cheia */
body.lightbox-aberto { overflow: hidden; }
.lightbox { position: fixed; inset: 0; z-index: 1000; background: rgba(8, 16, 32, .92); display: grid; grid-template-columns: 64px minmax(0, 1fr) 64px; grid-template-rows: auto minmax(0, 1fr); align-items: center; padding: 10px 10px 24px; }
.lightbox[hidden] { display: none; }
.lightbox__topo { grid-column: 1 / -1; display: flex; align-items: center; gap: 16px; color: #fff; padding: 4px 8px 10px; }
.lightbox__cont { font: 700 .95rem var(--f-titulo); margin-right: auto; }
.lightbox__baixar { color: #fff; font-weight: 700; font-size: .92rem; text-decoration: underline; }
.lightbox__fechar { width: 46px; height: 46px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .14); color: #fff; font-size: 2rem; line-height: 1; cursor: pointer; }
.lightbox__fig { grid-column: 2; grid-row: 2; margin: 0; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; min-height: 0; }
.lightbox__fig img { max-width: 100%; max-height: calc(100vh - 140px); object-fit: contain; border-radius: 8px; background: #111; box-shadow: 0 20px 50px rgba(0, 0, 0, .45); }
.lightbox__fig figcaption { color: #e6ecf5; font-size: .95rem; text-align: center; max-width: 70ch; }
.lightbox__nav { width: 52px; height: 52px; justify-self: center; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .14); color: #fff; font-size: 1.4rem; cursor: pointer; }
.lightbox__fechar:hover, .lightbox__nav:hover, .lightbox__fechar:focus-visible, .lightbox__nav:focus-visible { background: var(--acc, #f6f328); color: #1a1300; outline: none; }
.lightbox--uma .lightbox__nav { visibility: hidden; }
.fotos a, .gallery a { cursor: zoom-in; }
@media (max-width: 640px) {
  .lightbox { grid-template-columns: 0 minmax(0, 1fr) 0; }
  .lightbox__nav { position: fixed; bottom: 22px; }
  .lightbox__nav--ant { left: 22%; } .lightbox__nav--prox { right: 22%; }
  .lightbox__fig img { max-height: calc(100vh - 190px); }
}
.texto figure.organograma { margin: 8px 0 24px; }
.texto figure.organograma img { width: 100%; height: auto; border: 1px solid var(--linha); border-radius: 12px; background: #fff; }
.materia:has(figure.organograma) { max-width: 1100px; }

/* ---------- e-SIC (abas, formulários, estatísticas) ---------- */
.materia:has(.esic), .texto:has(.esic) { max-width: none; }
.esic { margin: 4px 0 24px; }
.esic__abas { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid var(--linha); border-radius: 14px 14px 0 0; overflow: hidden; background: #fff; }
.esic__abas button { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 18px 10px; border: 0; border-left: 1px solid var(--linha); background: #fff; color: var(--pri); font: 700 .95rem var(--f-titulo); cursor: pointer; }
.esic__abas button:first-child { border-left: 0; }
.esic__abas button .ic { width: 26px; height: 26px; }
.esic__abas button[aria-selected="true"] { background: var(--pri); color: #fff; }
.esic__abas button:focus-visible { outline: 3px solid var(--acc); outline-offset: -3px; }
.esic__painel { border: 1px solid var(--linha); border-top: 0; border-radius: 0 0 14px 14px; padding: 26px clamp(16px, 3vw, 32px); background: #fff; }
.esic__painel > h2:first-child, .esic__painel > .aviso + h2 { margin-top: 0; }
.esic__duas { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 20px; align-items: start; margin-top: 20px; }
.caixa-sic { background: var(--cinza); border-radius: 14px; padding: 20px; min-width: 0; }
.caixa-sic h3 { margin-top: 0; }
.sic-passos { margin: 0 0 14px; padding-left: 20px; color: var(--texto); }
.sic-form { display: grid; gap: 12px; }
.sic-grade { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.sic-campo { display: flex; flex-direction: column; gap: 6px; min-width: 0; font-weight: 600; font-size: .92rem; color: var(--tinta); }
.sic-campo--largo { grid-column: 1 / -1; }
.sic-campo input, .sic-campo select, .sic-campo textarea { width: 100%; }
.sic-campo input[type=email] { height: 46px; border: 1.5px solid var(--linha); border-radius: 11px; padding: 0 12px; font: inherit; background: #fff; }
.sic-campo textarea { border: 1.5px solid var(--linha); border-radius: 11px; padding: 10px 12px; font: inherit; resize: vertical; background: #fff; }
.sic-campo small { font-weight: 400; color: var(--suave); }
.sic-check { display: flex; gap: 10px; align-items: flex-start; font-size: .92rem; }
.sic-check input { margin-top: 4px; width: 18px; height: 18px; flex: none; }
.sic-form .btn { justify-self: start; }
.sic-oculto { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.aviso { border-radius: 12px; padding: 14px 18px; margin: 0 0 16px; border-left: 5px solid; }
.aviso--ok { background: #e8f6ee; border-color: #1f7a46; color: #12452a; }
.aviso--erro { background: #fdecea; border-color: #b3261e; color: #6b1712; }
.aviso--info { background: #fff8e1; border-color: #d29b00; color: #4d3a00; }
.sic-pedido { margin-top: 18px; background: #fff; border-radius: 12px; padding: 16px; }
.sic-pedido h3 { margin-top: 0; }
.sic-pedido h4 { margin: 14px 0 4px; }
.sic-resposta { background: var(--cinza); border-radius: 10px; padding: 12px 14px; overflow-wrap: anywhere; }
.tabela--centro th, .tabela--centro td { text-align: center; }
.sic-resumo { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; margin-bottom: 18px; }
.sic-resumo div { background: var(--cinza); border-radius: 12px; padding: 14px 16px; }
.sic-resumo span { display: block; font: 700 .72rem var(--f-titulo); text-transform: uppercase; letter-spacing: .08em; color: var(--suave); }
.sic-resumo strong { font: 800 1.4rem var(--f-titulo); color: var(--pri); }
.sic-est { margin-top: 26px; }
.sic-est h3 { margin: 0 0 12px; }
.sic-est__grade { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 24px; align-items: center; }
.sic-est__grade .tabela td:not(:first-child), .sic-est__grade .tabela th:not(:first-child) { text-align: center; }
.sic-est__total td { font-weight: 700; }
.sic-pizza { margin: 0; display: flex; flex-direction: column; align-items: center; gap: 12px; }
.sic-pizza__disco { width: min(220px, 60vw); aspect-ratio: 1; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(0,0,0,.06); }
.sic-pizza ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 14px; font-size: .85rem; color: var(--texto); }
.sic-pizza li { display: flex; align-items: center; gap: 6px; }
.sic-pizza i { width: 10px; height: 10px; border-radius: 50%; display: inline-block; }
@media (max-width: 900px) {
  .esic__duas, .sic-est__grade { grid-template-columns: 1fr; }
}
@media (max-width: 680px) {
  .esic__abas { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .esic__abas button:nth-child(3) { border-left: 0; }
  .esic__abas button:nth-child(n+3) { border-top: 1px solid var(--linha); }
  .esic__abas button { padding: 14px 8px; font-size: .88rem; }
  .sic-grade { grid-template-columns: 1fr; }
}
.alto-contraste .esic__abas, .alto-contraste .esic__abas button, .alto-contraste .esic__painel, .alto-contraste .caixa-sic, .alto-contraste .sic-resumo div, .alto-contraste .sic-pedido, .alto-contraste .sic-resposta, .alto-contraste .aviso { background: #000 !important; color: #fff !important; border-color: #fff !important; }
.alto-contraste .esic__abas button[aria-selected="true"] { background: #ff0 !important; color: #000 !important; }

/* Concursos: cartões por modalidade */
.modalidades { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 210px)); gap: 14px; margin: 0 0 28px; }
.modalidade { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 22px 16px; border: 1.5px solid var(--linha); border-radius: 16px; background: #fff; text-decoration: none; color: var(--tinta); text-align: center; transition: border-color .15s, box-shadow .15s, transform .15s; }
.modalidade:hover { border-color: var(--pri-2); box-shadow: 0 6px 18px rgba(12,30,60,.10); transform: translateY(-2px); }
.modalidade__ic { width: 60px; height: 60px; border-radius: 16px; display: grid; place-items: center; background: var(--pri-claro, #e8eef8); color: var(--pri); }
.modalidade__ic .ic { width: 30px; height: 30px; }
.modalidade strong { font: 700 1rem var(--f-titulo); color: var(--pri); }
.modalidade__n { font: 800 1.5rem var(--f-titulo); color: var(--tinta); line-height: 1; }
.modalidade.is-ativa { border-color: var(--pri); background: var(--pri); }
.modalidade.is-ativa strong, .modalidade.is-ativa .modalidade__n { color: #fff; }
.modalidade.is-ativa .modalidade__ic { background: rgba(255,255,255,.15); color: #fff; }
.alto-contraste .modalidade { background: #000 !important; color: #fff !important; border-color: #fff !important; }

/* Licitações: dados do processo no cartão */
.processo__dados { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 0; }
.processo__dados div { background: var(--cinza); border-radius: 10px; padding: 7px 12px; min-width: 0; }
.processo__dados dt { font: 700 .66rem var(--f-titulo); text-transform: uppercase; letter-spacing: .07em; color: var(--suave); }
.processo__dados dd { margin: 2px 0 0; font-weight: 700; font-size: .92rem; color: var(--tinta); white-space: nowrap; }
.processo__valor { background: var(--pri-claro) !important; }
.processo__valor dd { color: var(--pri); }
.processo--lic h2 { -webkit-line-clamp: 3; display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; }
@media (max-width: 680px) { .processo__dados div { flex: 1 1 calc(50% - 8px); } .processo__dados dd { white-space: normal; } }
.alto-contraste .processo__dados div { background: #000 !important; color: #fff !important; border: 1px solid #fff; }

/* ---------- Carta de Serviços ---------- */
.leitor { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.carta-topo p { margin: 0 0 12px; color: var(--texto); max-width: 900px; }
.carta-baixar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 22px; }
.carta-baixar > span { font-weight: 600; color: var(--suave); font-size: .92rem; margin-right: 4px; }
.esic__abas--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.carta-grade { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 24px; align-items: start; }
.carta-setores { background: var(--cinza); border-radius: 14px; padding: 16px; position: sticky; top: 90px; }
.carta-setores input { width: 100%; }
.carta-setores h2 { font: 700 .74rem var(--f-titulo); text-transform: uppercase; letter-spacing: .1em; color: var(--suave); margin: 16px 0 6px; }
.carta-setores ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.carta-setores a { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 8px 10px; border-radius: 10px; color: var(--tinta); text-decoration: none; font-size: .93rem; }
.carta-setores a:hover { background: #fff; color: var(--pri); }
.carta-setores a[aria-current] { background: var(--pri); color: #fff; }
.carta-setores a .ic { color: var(--pri); }
.carta-setores a[aria-current] .ic { color: #fff; }
.carta-setores b { font: 700 .78rem var(--f-titulo); background: #fff; color: var(--suave); border-radius: 99px; padding: 1px 8px; }
.carta-setores a[aria-current] b { background: rgba(255,255,255,.2); color: #fff; }
.carta-servicos { display: grid; gap: 12px; min-width: 0; }
.carta-servicos__tit { margin: 0 0 4px; }
.servico-item { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; gap: 16px; align-items: center; padding: 18px; border: 1px solid var(--linha); border-radius: 14px; background: #fff; }
.servico-item__ic { width: 64px; height: 64px; border-radius: 16px; display: grid; place-items: center; background: var(--pri-claro); color: var(--pri); }
.servico-item__ic .ic { width: 32px; height: 32px; }
.servico-item h3 { margin: 0; font-size: 1.08rem; }
.servico-item h3 a { color: var(--pri); text-decoration: none; }
.servico-item h3 a:hover { text-decoration: underline; }
.servico-item p { margin: 4px 0 0; color: var(--texto); font-size: .95rem; }
.servico-item__meta { font-size: .88rem !important; color: var(--suave) !important; }
.atend { font-weight: 700; }
.atend--online { color: #1f7a46; }
.atend--presencial { color: #8a5a00; }
.atend--ambos { color: var(--pri); }
.carta-det { border: 1px solid var(--linha); border-radius: 12px; margin-bottom: 10px; overflow: hidden; }
.carta-det summary { cursor: pointer; padding: 12px 16px; background: var(--pri); color: #fff; font-weight: 700; }
.carta-det ul { margin: 0; padding: 12px 16px 12px 34px; }
.carta-det li { padding: 3px 0; }
.sic-pizza figcaption { text-align: center; }
.satisfacao { position: relative; max-width: 620px; margin: 18px 0 34px; }
.satisfacao__barra { height: 14px; border-radius: 99px; background: linear-gradient(90deg, #d92b2b 0%, #f39c4a 25%, #f2e13a 50%, #8cc63f 75%, #1f7a46 100%); }
.satisfacao__marca { position: absolute; top: 18px; transform: translateX(-50%); background: var(--pri); color: #fff; font: 700 .85rem var(--f-titulo); padding: 2px 8px; border-radius: 6px; }
.satisfacao__marca::before { content: ""; position: absolute; left: 50%; top: -22px; width: 3px; height: 22px; background: var(--pri); transform: translateX(-50%); border-radius: 2px; }
.avaliar { margin-top: 28px; background: var(--cinza); border-radius: 14px; padding: 18px 20px; }
.avaliar h2 { margin: 0 0 4px; font-size: 1.15rem; }
.avaliar__media { margin: 0 0 10px; color: var(--suave); }
.avaliar__form { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.estrelas { border: 0; padding: 0; margin: 0; display: inline-flex; flex-direction: row-reverse; gap: 2px; }
.estrelas legend { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.estrelas input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.estrelas label { font-size: 2rem; line-height: 1; color: #c9d1dc; cursor: pointer; padding: 0 2px; }
.estrelas label:hover, .estrelas label:hover ~ label, .estrelas input:checked ~ label { color: #f2b01e; }
.estrelas input:focus-visible + label { outline: 3px solid var(--acc); border-radius: 4px; }
@media (max-width: 900px) {
  .carta-grade { grid-template-columns: 1fr; }
  .carta-setores { position: static; }
}
@media (max-width: 680px) {
  .esic__abas--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .esic__abas--3 button:nth-child(3) { border-left: 1px solid var(--linha); }
  .esic__abas--3 button:nth-child(n+3) { border-top: 0; }
  .esic__abas--3 button { font-size: .78rem; }
  .servico-item { grid-template-columns: 48px minmax(0, 1fr); }
  .servico-item__ic { width: 48px; height: 48px; }
  .servico-item .btn { grid-column: 1 / -1; justify-self: start; }
}
@media print {
  .topo, .barra, .cabecalho, .rodape, .rodape__base, .carta-baixar, .esic__abas, .carta-setores, .servico-item .btn, .vlibras, .voltar-topo { display: none !important; }
  .esic__painel[hidden] { display: block !important; }
  .carta-grade { display: block; }
  .servico-item { break-inside: avoid; }
}
.alto-contraste .carta-setores, .alto-contraste .servico-item, .alto-contraste .avaliar, .alto-contraste .carta-det summary { background: #000 !important; color: #fff !important; border-color: #fff !important; }
.ficha--servico { margin-top: 22px; }
.ficha__lista { margin: 4px 0 0; padding-left: 20px; font-weight: 600; }
.ficha__lista li { padding: 2px 0; }
.esic__painel h2 + p + .satisfacao, .esic__painel .tabela-rolagem + p { margin-top: 12px; }
#carta-satisfacao h2 { margin-top: 26px; }
#carta-satisfacao h2:first-child { margin-top: 0; }

/* Menu (computador): só um submenu aberto por vez — o que está sob o mouse tem prioridade. */
@media (min-width: 1181px) {
  .menu__lista:hover > .tem-sub:not(:hover) .sub { opacity: 0; visibility: hidden; transform: translateY(6px); pointer-events: none; }
  .menu__lista:hover > .tem-sub:not(:hover) > button::after, .menu__lista:hover > .tem-sub:not(:hover) > a::after { transform: scaleX(0); }
}

/* Clima hoje (cabeçalho) */
.clima { display: flex; align-items: center; gap: 10px; height: 46px; padding: 0 16px 0 10px; border-radius: 999px; border: 1px solid rgba(255,255,255,.22); background: rgba(255,255,255,.1); color: #fff; }
.clima[hidden] { display: none; }
.clima__ic { display: grid; place-items: center; color: var(--acc); }
.clima__txt { display: flex; flex-direction: column; line-height: 1.1; }
.clima__txt small { font: 600 .68rem var(--f-titulo); letter-spacing: .06em; text-transform: uppercase; color: #bccbe0; }
.clima__txt span { display: flex; gap: 8px; font: 800 1.02rem var(--f-titulo); }
.clima__min { color: #9fd3ff; }
.clima__max { color: #ffc46b; }
@media (max-width: 1180px) { .clima { display: none; } }
.alto-contraste .clima { background: #000 !important; border-color: #fff !important; }

/* Barra superior: atalhos em uma linha */
.barra__atalhos { flex-wrap: nowrap; min-width: 0; }
.barra__atalhos a { white-space: nowrap; padding: 6px 8px; gap: 6px; }
@media (max-width: 1500px) { .barra__atalhos a { font-size: .82rem; padding: 6px 6px; } .barra__atalhos li:last-child span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); } }

.barra__in { gap: 12px; }
.barra__atalhos { overflow: hidden; }
.barra__ferramentas { flex: none; }

/* QR Code flutuante (discreto, canto inferior esquerdo) */
.qr-flutuante { position: fixed; right: 21px; bottom: 152px; z-index: 60; width: 44px; height: 44px; border-radius: 12px; border: 1px solid rgba(255,255,255,.35); background: var(--pri); color: #fff; display: grid; place-items: center; box-shadow: 0 4px 14px rgba(12,30,60,.18); opacity: .5; transition: opacity .2s, transform .2s; cursor: pointer; }
.qr-flutuante:hover, .qr-flutuante:focus-visible { opacity: 1; transform: translateY(-2px); }
.qr-flutuante:focus-visible { outline: 3px solid var(--acc); outline-offset: 2px; }
.qr-dialogo { border: 0; border-radius: 18px; padding: 0; width: min(360px, calc(100vw - 32px)); box-shadow: 0 24px 60px rgba(6,16,30,.35); }
.qr-dialogo::backdrop { background: rgba(6,16,30,.55); }
.qr-dialogo__cab { display: flex; justify-content: space-between; align-items: center; padding: 16px 20px; border-bottom: 1px solid var(--linha); }
.qr-dialogo__cab h2 { margin: 0; font-size: 1.05rem; }
.qr-dialogo__x { border: 0; background: var(--cinza); width: 34px; height: 34px; border-radius: 50%; font-size: 1.3rem; line-height: 1; cursor: pointer; color: var(--tinta); }
.qr-dialogo__img { display: grid; place-items: center; padding: 18px 20px 6px; }
.qr-dialogo__img svg { width: 240px; height: auto; max-width: 100%; }
.qr-dialogo__url { margin: 0 20px; font-size: .8rem; color: var(--suave); text-align: center; overflow-wrap: anywhere; }
.qr-dialogo__acoes { display: flex; justify-content: center; gap: 10px; padding: 16px 20px 20px; }
@media print { .qr-flutuante { display: none !important; } }

/* Fale Conosco */
.contato-dados { margin-bottom: 18px; }
.contato-redes { display: flex; gap: 10px; }
.contato-redes a { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: #fff; color: var(--pri); }
.contato-canais { margin-bottom: 26px; }
.contato-grade { display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px; }
.contato-dados { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.contato-form-caixa .subtitulo, .contato-mapa .subtitulo { margin-top: 0; }
.mapa-embed { border-radius: 14px; overflow: hidden; border: 1px solid var(--linha); background: var(--cinza); height: 440px; }
.mapa-embed iframe { width: 100%; height: 100%; border: 0; display: block; }
@media (max-width: 680px) { .mapa-embed { height: 320px; } }

/* SIC: aviso sobre chamados anônimos */
.aviso-sic { background: #fff8e1; border: 1px solid #e6c55a; border-left: 5px solid #c62828; border-radius: 12px; padding: 16px 20px; margin: 18px 0; color: #4d3a00; }
.aviso-sic p { margin: 0 0 10px; }
.aviso-sic__tit { font: 700 .95rem var(--f-titulo); text-transform: uppercase; letter-spacing: .03em; color: #8a1c1c; }
.aviso-sic__sigilo { background: #e3f4e8; border: 1px solid #b6dfc2; border-radius: 10px; padding: 10px 14px; color: #1f5131; margin: 6px 0 0 !important; }
.alto-contraste .aviso-sic, .alto-contraste .aviso-sic__sigilo { background: #000 !important; color: #fff !important; border-color: #fff !important; }
.contato-cartoes { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; margin-bottom: 26px; }
.contato-cartao { display: flex; gap: 14px; align-items: flex-start; padding: 16px; border: 1px solid var(--linha); border-radius: var(--r); background: #fff; min-width: 0; }
.contato-cartao strong { display: block; font-family: var(--f-titulo); color: var(--tinta); margin-bottom: 2px; }
.contato-cartao p { margin: 0; color: var(--texto); line-height: 1.6; overflow-wrap: anywhere; }
.contato-cartao a { white-space: nowrap; }
.contato-cartao .contato-redes a { white-space: normal; }
.contato-redes { display: flex; gap: 8px; margin-top: 4px !important; }
.contato-redes a { background: var(--cinza) !important; }
.mapa-embed { position: relative; }
.mapa-embed iframe { position: relative; z-index: 1; }
.mapa-embed__alt { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; gap: 12px; text-decoration: none; color: var(--pri); }
.mapa-embed__alt small { display: block; color: var(--suave); }
.sic-campo input[type=tel] { height: 46px; border: 1.5px solid var(--linha); border-radius: 11px; padding: 0 12px; font: inherit; background: #fff; width: 100%; }
.contato-cartoes { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); }
.contato-cartao a[href^="mailto:"] { white-space: normal; overflow-wrap: anywhere; }
.nw { white-space: nowrap; }

/* Carrossel: título proporcional ao tamanho do texto */
.slide h2 { font-size: clamp(1.5rem, 2.6vw, 2.25rem); line-height: 1.15; }
.slide h2.slide__tit--medio { font-size: clamp(1.35rem, 2.1vw, 1.85rem); }
.slide h2.slide__tit--longo { font-size: clamp(1.2rem, 1.7vw, 1.5rem); line-height: 1.25; }
.slide h2 { display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden; }
.slide__txt p { font-size: 1rem; }
