/* Base comum a todos os modelos de visual: estrutura, grades, acessibilidade, pop-ups. Sem cores de marca (ficam no skin.css). */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;line-height:1.5}
img,svg{max-width:100%;height:auto}
ul,ol{margin:0;padding:0;list-style:none}
h1,h2,h3,h4,p,figure{margin:0}
button{font:inherit;color:inherit;cursor:pointer}
a{color:inherit}
.icone{width:1.25em;height:1.25em;flex:none;display:inline-block;vertical-align:-.2em}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.pular-conteudo{position:absolute;left:-999px;top:0;z-index:1000;background:#000;color:#fff;padding:.7rem 1rem}
.pular-conteudo:focus{left:0}
:focus-visible{outline:3px solid #ffbf47;outline-offset:2px}
.contenedor{width:100%;max-width:1320px;margin-inline:auto;padding-inline:20px}

/* grades */
.grade{display:grid;gap:20px}
.grade--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grade--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grade--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.grade--5{grid-template-columns:repeat(5,minmax(0,1fr))}
@media (max-width:1024px){.grade--4,.grade--5{grid-template-columns:repeat(2,minmax(0,1fr))}.grade--3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.grade--2,.grade--3,.grade--4,.grade--5{grid-template-columns:minmax(0,1fr)}}

/* carrossel */
.carrossel{position:relative}
.carrossel__faixa{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;padding:4px 2px 24px}
.carrossel__faixa::-webkit-scrollbar{display:none}
.carrossel__faixa>*{flex:0 0 calc((100% - 100px)/6);scroll-snap-align:start;min-width:170px}
.carrossel__seta{position:absolute;top:50%;z-index:2;transform:translateY(-50%);width:34px;height:34px;border:0;border-radius:50%;display:grid;place-items:center;padding:0}
.carrossel__seta--esq{left:-14px}.carrossel__seta--dir{right:-14px}
@media (max-width:640px){.carrossel__faixa>*{flex-basis:70%}.carrossel__seta--esq{left:0}.carrossel__seta--dir{right:0}}

/* pop-up de telefones */
.modal{border:0;padding:0;background:transparent;max-width:min(92vw,460px);width:100%}
.modal::backdrop{background:rgba(20,10,50,.55)}
.modal__caixa{position:relative;background:#fff;border-radius:16px;padding:28px}
.modal__fechar{position:absolute;top:10px;right:10px;background:none;border:0;padding:6px;line-height:0}
.modal__lista li{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-top:1px solid #e7e7ee}

/* barra de acessibilidade */
/* no meio da lateral: nunca cobre o logo (topo) nem esbarra no aviso de LGPD (rodapé) */
.a11y{position:fixed;left:0;top:50%;transform:translateY(-50%);z-index:900}
.a11y__abrir{display:grid;place-items:center;width:40px;height:50px;border:0;border-radius:0 8px 8px 0;background:#3a2c95;color:#fff;padding:0}
.a11y__abrir .icone{width:26px;height:26px}
.a11y__menu{position:absolute;left:46px;top:50%;transform:translateY(-50%);width:230px;max-height:calc(100vh - 24px);overflow-y:auto;background:#fff;border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.a11y__menu[hidden]{display:none}
.a11y__menu button{display:block;width:100%;text-align:left;background:none;border:0;border-top:1px solid #eee;padding:12px 16px;font-size:14px;color:#222}
.a11y__menu button:first-child{border-top:0}
.a11y__menu button:hover,.a11y__menu button[aria-pressed=true]{background:#ece9fb}
.a11y__reset{font-weight:700}

/* modos de acessibilidade (classes no <html>) */
html.a11y-cinza{filter:grayscale(1)}
html.a11y-negativo{filter:invert(1) hue-rotate(180deg)}
html.a11y-cinza.a11y-negativo{filter:grayscale(1) invert(1)}
html.a11y-contraste body,html.a11y-contraste body *:not(img):not(svg):not(path){background:#000!important;color:#fff!important;border-color:#fff!important;box-shadow:none!important;text-shadow:none!important}
html.a11y-contraste a,html.a11y-contraste a *{color:#ffea00!important}
html.a11y-claro body,html.a11y-claro body *:not(img):not(svg):not(path){background-image:none!important;background-color:#fff!important;color:#111!important}
html.a11y-links a{text-decoration:underline!important}
html.a11y-legivel body,html.a11y-legivel body *{font-family:Verdana,Arial,sans-serif!important;letter-spacing:.02em}

/* aviso de LGPD */
.lgpd{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);z-index:950;width:min(92vw,760px);display:flex;gap:16px;align-items:center;justify-content:space-between;background:#fff;box-shadow:0 8px 30px rgba(0,0,0,.2);border-radius:10px;padding:14px 18px;font-size:14px}
.lgpd[hidden]{display:none}
.lgpd button{border:0;border-radius:30px;padding:9px 22px;font-weight:600;flex:none}

/* páginas internas */
.texto{max-width:900px;margin-inline:auto;line-height:1.7}
.texto>*+*{margin-top:1em}
.texto img{border-radius:6px}
.texto table{width:100%;border-collapse:collapse}
.texto th,.texto td{padding:8px 10px;border:1px solid #ddd;text-align:left}
.destaque img{width:100%}
.conteudo{padding-block:40px 64px}
.perfil{display:grid;grid-template-columns:300px 1fr;gap:48px;align-items:start}
.perfil .texto{margin:0}
.perfil__principal{display:flex;flex-direction:column;gap:2.25rem;min-width:0}
.perfil__contato{margin-top:1.4rem;display:flex;flex-direction:column;gap:.6rem;font-size:.92rem}
.perfil__contato li{display:flex;gap:.6rem;align-items:flex-start}
.perfil__contato .icone{flex:none;margin-top:.15em;color:var(--lilas-btn,#7958d7)}
.perfil__contato a{word-break:break-word}
@media (max-width:800px){.perfil{grid-template-columns:1fr}}

/* ficha de dados (página de um compromisso da agenda) */
.ficha{display:grid;grid-template-columns:max-content 1fr;gap:.5rem 1.2rem;margin:1.2rem 0;padding:1rem 1.2rem;border:1px solid var(--linha,#e2e2ee);border-radius:12px}
.ficha dt{font-weight:700;color:var(--roxo,#331869)}
.ficha dd{margin:0}
@media (max-width:480px){.ficha{grid-template-columns:1fr}.ficha dd{margin-bottom:.4rem}}

.titulo-bloco{font-family:var(--fonte-titulo,inherit);font-size:1.3rem;font-weight:800;color:var(--roxo,#331869);margin-bottom:1rem}
.perfil-bloco h2{font-family:var(--fonte-titulo,inherit);font-size:1.2rem;font-weight:800;color:var(--roxo,#331869);margin-bottom:1rem}

/* listas de "pílulas" (ex.: comissões do vereador) */
.lista-tags{display:flex;flex-wrap:wrap;gap:.6rem}
.lista-tags li{background:#f2f0fb;color:var(--roxo,#331869);border-radius:10px;padding:.6rem 1rem;font-size:.88rem;font-weight:600}
.lista-tags li span{display:block;font-weight:600;font-size:.76rem;color:var(--lilas-btn,#7958d7);margin-top:.15rem}

/* tabelas de transparência (requerimentos, diárias, publicações) */
.scroll{overflow-x:auto}
.tabela{width:100%;border-collapse:collapse;font-size:.92rem;min-width:560px}
.tabela th{text-align:left;font-size:.74rem;text-transform:uppercase;letter-spacing:.05em;color:#5c5c70;padding:.6rem .7rem;border-bottom:2px solid var(--linha,#e7e7e7);white-space:nowrap}
.tabela td{padding:.85rem .7rem;border-bottom:1px solid var(--linha,#e7e7e7);vertical-align:top}
.tabela tr:hover td{background:#faf9ff}
.tabela a{display:inline-flex;gap:.35rem;align-items:center;color:var(--lilas-btn,#7958d7);font-weight:700;white-space:nowrap}
.tabela a .icone{width:1.05rem;height:1.05rem}

.tabela .presente{color:#14602b}
.tabela .ausente{color:#a0a0b0}

/* filtros (sessões plenárias) */
.filtros{display:flex;flex-wrap:wrap;align-items:flex-end;gap:1.2rem;background:#f7f7fb;border-radius:14px;padding:1.1rem 1.3rem;margin-bottom:1.8rem}
.filtros__campo{display:flex;flex-direction:column;gap:.35rem}
.filtros__campo label{font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#5c5c70}
.filtros__campo select{border:1px solid var(--linha,#ddd);border-radius:8px;padding:.55rem .8rem;font:inherit;color:var(--texto,#222);min-width:160px;background:#fff}
.filtros__limpar{font-size:.85rem;font-weight:700;color:var(--lilas-btn,#7958d7);text-decoration:underline;margin-bottom:.5rem}

/* lista de sessões plenárias */
.lista-sessoes{display:flex;flex-direction:column;gap:.9rem}
.linha-sessao{display:flex;align-items:center;gap:1.2rem;background:#f8f8f8;border-radius:10px;padding:1rem 1.3rem}
.linha-sessao__data{text-align:center;min-width:4.4rem;line-height:1.15;color:var(--lilas-btn,#7958d7)}
.linha-sessao__data span{display:block;font-size:.72rem;font-weight:700;text-transform:uppercase;color:#5c5c70}
.linha-sessao__data strong{font-size:1.5rem;font-weight:800}
.linha-sessao__data small{display:block;font-size:.72rem;color:#5c5c70}
.linha-sessao__texto{flex:1;min-width:0}
.linha-sessao__texto h3{font-size:.95rem;font-weight:800;text-transform:uppercase;line-height:1.35}
.pilula-tipo{display:inline-block;margin-top:.4rem;background:#f2f0fb;color:var(--lilas-btn,#7958d7);font-size:.72rem;font-weight:700;text-transform:uppercase;padding:.2rem .6rem;border-radius:20px}
.linha-sessao .botao-contorno{flex:none}
@media (max-width:640px){.linha-sessao{flex-wrap:wrap}.linha-sessao .botao-contorno{margin-left:calc(4.4rem + 1.2rem)}}

/* comissões e estrutura: cartão de lista */
.card-comissao{display:flex;align-items:center;gap:1rem;background:#fff;border:1px solid var(--linha,#e7e7e7);border-radius:14px;padding:1.2rem 1.4rem}
.card-comissao:hover{border-color:var(--lilas,#8881cb);box-shadow:0 10px 24px rgba(51,24,105,.1)}
.card-comissao__icone{flex:none;display:grid;place-items:center;width:2.6rem;height:2.6rem;border-radius:10px;background:#f2f0fb;color:var(--lilas-btn,#7958d7)}
.card-comissao__texto{flex:1;display:flex;flex-direction:column;gap:.2rem}
.card-comissao__texto b{font-size:1rem;color:var(--roxo,#331869)}
.card-comissao__texto span{font-size:.82rem;color:#5c5c70}
.card-comissao__seta{flex:none;color:#b8b3d6}

.card-setor{display:flex;align-items:center;gap:1rem;background:#fff;border:1px solid var(--linha,#e7e7e7);border-radius:14px;padding:1rem}
.card-setor:hover{border-color:var(--lilas,#8881cb);box-shadow:0 10px 24px rgba(51,24,105,.1)}
.card-setor__foto{flex:none;width:64px;height:64px;border-radius:50%;overflow:hidden;background:#f2f0fb}
.card-setor__foto img{width:100%;height:100%;object-fit:cover}
.card-setor__texto{display:flex;flex-direction:column;gap:.15rem;min-width:0}
.card-setor__texto b{font-size:.95rem;color:var(--roxo,#331869)}
.card-setor__texto span{font-size:.82rem;color:#5c5c70;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.grade-membros{margin-top:1.2rem}
.card-membro{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.3rem;background:#fff;border:1px solid var(--linha,#e7e7e7);border-radius:14px;padding:1.2rem 1rem}
.card-membro__foto{width:72px;height:72px;border-radius:50%;overflow:hidden;background:#f2f0fb}
.card-membro__foto img{width:100%;height:100%;object-fit:cover}
.card-membro b{font-size:.9rem;color:var(--roxo,#331869);margin-top:.3rem}
.card-membro span{font-size:.78rem;color:#5c5c70}

.grade--vereadores{display:grid;grid-template-columns:repeat(auto-fill,minmax(189px,1fr));gap:30px;padding-top:72px}
@media (max-width:640px){.grade--vereadores{grid-template-columns:repeat(2,minmax(0,1fr));padding-top:60px}}

/* formulário de contato ([camara_contato], do plugin) */
.form-contato{display:flex;flex-direction:column;gap:.2rem}
.form-contato p{margin:0 0 .9rem}
.form-contato label{display:block;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#5c5c70;margin-bottom:.35rem}
.form-contato input[type=text],.form-contato input[type=tel],.form-contato input[type=email],.form-contato textarea{width:100%;color:var(--texto,#222);border:1px solid var(--linha,#ddd);border-radius:10px;padding:.7rem .9rem;font:inherit;background:#fff}
.form-contato input:focus,.form-contato textarea:focus{outline:2px solid var(--lilas,#8881cb);border-color:transparent}
.form-contato__linha{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}
@media (max-width:640px){.form-contato__linha{grid-template-columns:1fr}}
.form-contato__isca{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-contato__lgpd{font-size:.82rem;color:#5c5c70}
.form-contato__lgpd a{text-decoration:underline}
.form-contato__aviso{padding:.8rem 1rem;border-radius:10px;font-weight:600}
.form-contato__aviso--sucesso{background:#e6f6ea;color:#14602b}
.form-contato__aviso--erro{background:#fdeaea;color:#8a1f1f}
.form-contato button{border:0;cursor:pointer}

/* páginas de texto (blocos do editor) */
.texto details{border:1px solid var(--linha,#e7e7e7);border-radius:12px;padding:.9rem 1.1rem;margin-top:.7rem;background:#fff}
.texto details+details{margin-top:.7rem}
.texto summary{cursor:pointer;font-weight:700;color:var(--roxo,#331869)}
.texto details[open] summary{margin-bottom:.6rem}
.texto .wp-block-columns{display:flex;flex-wrap:wrap;gap:2rem;max-width:none}
.texto .wp-block-column{flex:1 1 280px;min-width:0}
.texto .wp-block-file{display:flex;flex-direction:column;gap:.8rem}
.texto .wp-block-file__embed{width:100%;min-height:560px;border:1px solid var(--linha,#e7e7e7);border-radius:10px}
.texto .wp-block-file__button,.texto .wp-block-button__link{display:inline-block;background:var(--lilas-btn,#7958d7);color:#fff;text-decoration:none;font-weight:700;border-radius:30px;padding:.7rem 1.4rem;align-self:flex-start}
.texto .wp-block-page-list{list-style:none;padding-left:0}
.texto .wp-block-page-list ul{list-style:none;padding-left:1.4rem}
.texto .wp-block-page-list a{text-decoration:none}

/* paginação */
.navigation.pagination{margin-top:2rem}
.pagination ul{display:flex;justify-content:center;flex-wrap:wrap;gap:.4rem;list-style:none;padding:0}
.page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:2.4rem;height:2.4rem;padding:0 .6rem;border-radius:8px;text-decoration:none;border:1px solid var(--linha,#e7e7e7);color:var(--texto,#333);font-size:.9rem}
.page-numbers.current{background:var(--lilas,#8881cb);border-color:var(--lilas,#8881cb);color:#fff;font-weight:700}
.page-numbers:hover:not(.current){border-color:var(--lilas,#8881cb)}

/* menu: submenus */
.menu{display:flex;flex-wrap:wrap;align-items:center}
.menu>li{position:relative}
.menu .sub-menu{display:none;position:absolute;left:0;top:100%;min-width:260px;z-index:60}
.menu li:hover>.sub-menu,.menu li:focus-within>.sub-menu,.menu li.aberto>.sub-menu{display:block}

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

/* ---------- cartão de notícia: arte inteira sobre a própria imagem desfocada ---------- */
.card-noticia__imagem{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;background:#f2f0fb}
.card-noticia__fundo{position:absolute;inset:-20px;background-size:cover;background-position:center;filter:blur(18px) saturate(1.1);opacity:.55}
.card-noticia__imagem .card-noticia__img{position:relative;display:block;width:100%;height:100%;object-fit:contain}
.card-noticia__sem-foto{display:grid;place-items:center;height:100%;background:linear-gradient(135deg,#f5f3ff,#e8e4fb)}
.card-noticia__sem-foto img{width:55%;height:auto;opacity:.9}
.card-noticia__cat{display:none}
.card-noticia .pilula{z-index:1}

/* ---------- busca ---------- */
.busca-grande{display:flex;max-width:640px;margin-bottom:1.2rem;border:1px solid var(--linha,#ddd);border-radius:999px;overflow:hidden;background:#fff}
.busca-grande:focus-within{outline:3px solid #ffbf47;outline-offset:2px}
.busca-grande input{flex:1;min-width:0;border:0;padding:.8rem 1.2rem;font:inherit;color:var(--texto,#222);background:transparent}
.busca-grande input:focus{outline:none}
.busca-grande button{display:flex;align-items:center;gap:.4rem;border:0;background:var(--lilas-btn,#6a48c9);color:#fff;font-weight:700;padding:0 1.3rem}
.busca-grande button .icone{width:18px;height:18px}
.busca-total{font-size:.95rem;color:#5c5c70;margin-bottom:.8rem}
.busca-filtros{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.6rem}
.busca-filtros a{display:inline-flex;align-items:center;gap:.45rem;padding:.45rem .95rem;border:1px solid var(--linha,#ddd);border-radius:999px;font-size:.88rem;font-weight:600;color:var(--roxo,#331869);background:#fff}
.busca-filtros a span{font-size:.75rem;font-weight:700;background:#f2f0fb;border-radius:999px;padding:.05rem .5rem}
.busca-filtros a:hover{border-color:var(--lilas-btn,#6a48c9)}
.busca-filtros a[aria-current]{background:var(--lilas-btn,#6a48c9);border-color:var(--lilas-btn,#6a48c9);color:#fff}
.busca-filtros a[aria-current] span{background:#fff;color:var(--lilas-btn,#6a48c9)}
.lista-resultados{border-top:1px solid var(--linha,#e7e7e7);margin-bottom:2rem}
.resultado{display:flex;gap:1.4rem;align-items:flex-start;justify-content:space-between;padding:1.25rem 0;border-bottom:1px solid var(--linha,#e7e7e7)}
.resultado__texto{min-width:0;flex:1}
.resultado__meta{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;font-size:.8rem;color:#5c5c70;margin-bottom:.35rem}
.resultado__tipo{display:inline-block;background:#f2f0fb;color:var(--lilas-btn,#6a48c9);font-weight:700;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;padding:.2rem .6rem;border-radius:999px}
.resultado h3{font-family:var(--fonte-titulo,inherit);font-size:1.1rem;font-weight:700;line-height:1.35;color:var(--roxo,#331869)}
.resultado h3 a:hover{text-decoration:underline}
.resultado__trecho{margin-top:.35rem;font-size:.92rem;line-height:1.55;color:#4a4a5c}
.resultado__trecho mark{background:#fff1a8;color:inherit;padding:0 .1em;border-radius:2px}
.resultado__foto{flex:none;width:88px;height:88px;border-radius:10px;overflow:hidden;background:#f2f0fb}
.resultado__foto img{width:100%;height:100%;object-fit:cover}
.busca-vazia{max-width:640px;line-height:1.6}
.busca-vazia p+p{margin-top:.4rem}
.busca-atalhos{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}
.busca-atalhos a{display:inline-block;padding:.5rem 1rem;border-radius:999px;background:#f2f0fb;color:var(--roxo,#331869);font-weight:600;font-size:.9rem}
.busca-atalhos a:hover{background:var(--lilas-btn,#6a48c9);color:#fff}
@media (max-width:560px){.resultado__foto{width:64px;height:64px}.resultado h3{font-size:1rem}}
