/* ==========================================================================
   Portal do Andreoli — folha de estilo
   Medidas de referência: desktop 1440px / mobile 390px
   ========================================================================== */
:root {
  --verde: #26b031;          /* marca / menu ativo */
  --verde-claro: #61ce70;    /* "Leia mais", botões, selos */
  --verde-escuro: #175204;   /* barra de cookies */
  --preto: #000;
  --texto: #333;
  --cinza: #777;
  --cinza-meta: #adadad;
  --azul-post: #1c244b;
  --azul-texto: #324a6d;
  --rosa: #c36;
  --sistema: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
  --roboto: "Roboto", var(--sistema);
  --slab: "Roboto Slab", Georgia, serif;
  --poppins: "Poppins", var(--sistema);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: #fff; color: var(--texto); font: 400 16px/1.5 var(--sistema); -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img, video, iframe { max-width: 100%; }
img { height: auto; border: 0; vertical-align: middle; }
a { color: var(--rosa); text-decoration: none; }
a:hover { color: #336; }
h1, h2, h3, h4, h5, h6 { margin: 0; font-weight: 500; line-height: 1.2; color: inherit; }
p { margin: 0 0 .9rem; }
ul, ol { margin: 0; padding: 0; }
button { font: inherit; cursor: pointer; }
hr { border: 0; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ic { display: inline-block; vertical-align: middle; flex-shrink: 0; }
.armadilha { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
[hidden] { display: none !important; }
:focus-visible { outline: 2px solid var(--verde); outline-offset: 2px; }

/* ---------- utilitários ---------- */
.meta { font: 400 14px/18.2px var(--slab); color: var(--cinza-meta); }
.leia { display: inline-block; font: 500 14px/21px var(--roboto); color: var(--verde-claro); }
.leia:hover { color: var(--verde); }
.botao-verde { display: inline-block; padding: 12px 24px; border-radius: 3px; background: var(--verde-claro); color: #333; font: 500 14px/14px var(--roboto); }
.botao-verde:hover { background: var(--verde); color: #fff; }
.botao-contorno { display: inline-block; padding: 10px 18px; border: 2px solid var(--verde); border-radius: 2px; color: var(--verde); font: 500 14px/14px var(--roboto); }
.botao-contorno:hover { background: var(--verde); color: #fff; }
.divisor-grosso { height: 7px; margin: 0; background: #000; }
/* caixas de imagem com proporção fixa: recorte central */
.card-quente-img, .card-simples-img, .card-mini-img, .card-grade-img, .card-outras-img, .card-caixa-img,
.lateral-item-img, .card-linha-img, .simples-img, .mp-img { overflow: hidden; background: #f1f1f1; }

/* ==========================================================================
   Topo
   ========================================================================== */
.topo { background: #000; position: relative; z-index: 50; }
.topo-linha { display: grid; grid-template-columns: 47.46% 17.46% 1fr; padding: 10px; align-items: start; }
.topo-logo { display: block; padding: 10px; line-height: 0; }
.topo-logo img { width: 586px; max-width: 100%; }
.topo-redes { display: flex; gap: 5px; list-style: none; padding: 47px 10px 0; }
.topo-redes a { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: var(--verde); color: #000; transition: opacity .2s; }
.topo-redes a:hover { opacity: .85; }
.topo-busca { display: flex; width: 279px; height: 50px; margin: 44px 10px 0; border-radius: 3px; overflow: hidden; background: #f1f2f3; }
.topo-busca input { flex: 1; min-width: 0; border: 0; background: transparent; padding: 0 16px; font: 400 18px var(--roboto); color: #333; outline: 0; }
.topo-busca input::placeholder { color: #7a7a7a; }
.topo-busca input::-webkit-search-cancel-button { display: none; }
.topo-busca button { width: 50px; border: 0; background: #fff; color: var(--verde); display: grid; place-items: center; }
.topo-menu-btn, .topo-busca-btn { display: none; }

/* menu principal */
.menu { padding: 10px 0 10px; }
.menu > ul { display: flex; justify-content: center; list-style: none; }
.menu > ul > li { position: relative; padding-right: 15px; }
.menu > ul > li > a { display: flex; align-items: center; padding: 15px 0 15px 15px; font: 700 21px/31.5px "Nunito", var(--sistema); color: #fff; transition: color .2s; }
.menu > ul > li > a .seta { margin-left: 10px; width: 12px; height: 12px; }
.menu > ul > li > a:hover, .menu > ul > li.ativo > a, .menu > ul > li:hover > a { color: var(--verde); }
.menu li ul { position: absolute; top: calc(100% - 1px); left: 0; z-index: 60; width: 220px; list-style: none; background: #fff; box-shadow: 0 4px 10px -2px rgba(0, 0, 0, .1);
  opacity: 0; visibility: hidden; transform: translateY(4px); transition: opacity .15s, transform .15s, visibility .15s; max-height: calc(100vh - 270px); overflow-y: auto; }
.menu li:hover > ul, .menu li:focus-within > ul, .menu li.aberto > ul { opacity: 1; visibility: visible; transform: none; }
.menu li ul li { padding-right: 15px; }
.menu li ul a { display: block; padding: 15px 0 15px 15px; font: 700 21px/31.5px "Nunito", var(--sistema); color: #333; }
.menu li ul a:hover, .menu li ul li.ativo a { color: var(--verde); }

/* menu lateral (mobile) */
.menu-lateral { position: fixed; top: 0; left: 0; bottom: 0; z-index: 200; width: 350px; max-width: 90vw; background: #fff; padding: 88px 0 20px; overflow-y: auto;
  transform: translateX(-100%); transition: transform .3s ease; box-shadow: 0 10px 30px rgba(0, 0, 0, .25); }
.menu-aberto .menu-lateral { transform: none; }
.menu-lateral-fundo { position: fixed; inset: 0; z-index: 190; background: rgba(0, 0, 0, .5); opacity: 0; transition: opacity .3s; }
.menu-aberto .menu-lateral-fundo { opacity: 1; }
.menu-aberto { overflow: hidden; }
.menu-lateral-fechar { position: absolute; top: 22px; right: 12px; width: 45px; height: 44px; border: 1px solid rgba(0, 0, 0, .5); border-radius: 3px; background: var(--verde); color: #fff; display: grid; place-items: center; }
.menu-lateral-busca { display: flex; margin: 0 15px 12px; border-radius: 3px; overflow: hidden; background: #f1f2f3; }
.menu-lateral-busca input { flex: 1; border: 0; background: transparent; padding: 10px 12px; font: 400 16px var(--roboto); outline: 0; min-width: 0; }
.menu-lateral-busca button { border: 0; background: var(--verde); color: #fff; width: 44px; }
.menu-lateral > ul { list-style: none; }
.menu-lateral li a { display: flex; align-items: center; justify-content: space-between; padding: 10px 15px; font: 600 17px/25.5px var(--roboto); color: #000; border-bottom: 1px solid #f0f0f0; }
.menu-lateral li.ativo > a { color: #707070; }
.menu-lateral li ul { display: none; list-style: none; background: #f7f7f7; }
.menu-lateral li.aberto > ul { display: block; }
.menu-lateral li.aberto > a .seta { transform: rotate(180deg); }
.menu-lateral li ul a { padding-left: 30px; font-weight: 500; font-size: 16px; }

/* ==========================================================================
   Banners (slideshow)
   ========================================================================== */
.banners { position: relative; margin: 23px 10px 0; }
.banners-trilho { display: grid; }
.banner { grid-area: 1 / 1; display: flex; justify-content: center; opacity: 0; visibility: hidden; transition: opacity .8s, visibility .8s; }
.banner.ativo { opacity: 1; visibility: visible; }
.banner img { width: 1280px; max-width: 100%; }
.banners-contido { max-width: 1152px; margin: 64px auto 0; }
.banners-contido .banner img { width: 100%; }
.banners-pontos { display: flex; gap: 3px; height: 9px; margin-top: 6px; }
.banners-pontos button { width: 9px; height: 9px; padding: 0; border: 1px solid #aaa; border-radius: 50%; background: #fff; }
.banners-pontos button.ativo { background: #aaa; }

/* ==========================================================================
   Home — bloco superior
   ========================================================================== */
.home-topo { display: grid; grid-template-columns: 259px 275px 133px 350px; column-gap: 30px; justify-content: center; margin-top: 13px; align-items: start; }
.home-topo .home-col-c { margin-left: -1px; }
.home-col-b, .home-col-c { margin-top: 13px; }
.home-col-d { margin-top: 7px; align-self: stretch; margin-left: -1px; }

.divisor { display: flex; align-items: center; justify-content: center; gap: 32px; font: 900 20px/29px "Inter", var(--sistema); color: #000; }
.divisor::before, .divisor::after { content: ""; flex: 1; height: 7px; background: #000; margin-top: 1px; }

.quente-wrap { margin-top: 43px; padding-bottom: 52px; border-bottom: 1px solid #333; }
.card-quente { position: relative; padding: 10px; background: #fff; box-shadow: 0 0 10px rgba(0, 0, 0, .5); }
.card-quente-img { position: relative; display: block; aspect-ratio: 239 / 131; }
.card-quente-img img { width: 100%; height: 100%; object-fit: cover; }
.selo { position: absolute; top: 43px; right: -18px; padding: 3px 15px; background: var(--verde-claro); color: #fff; font: 400 16px/24px var(--sistema); }
.selo::after { content: ""; position: absolute; right: 0; bottom: -8px; border-top: 8px solid #4a9e55; border-right: 8px solid transparent; }
.card-quente h3 { margin-top: 19px; margin-bottom: 24px; font: 500 14px/16.8px var(--roboto); }
.card-quente h3 a, .card-simples h3 a { color: #000; }
.card-quente .meta { display: block; margin-bottom: 30px; }
.card-quente p { margin: 0; font: 400 18px/27px var(--roboto); color: #000; }

.card-simples { margin-top: 36px; }
.card-simples-img { display: block; aspect-ratio: 259 / 171; }
.card-simples-img img { width: 100%; height: 100%; object-fit: cover; }
.card-simples h3 { margin: 19px 0 23px; font: 500 14px/16.8px var(--roboto); }
.card-simples .meta { display: block; margin-bottom: 30px; }
.card-simples p { margin: 0; font: 400 18px/27px var(--roboto); color: var(--cinza); }

.card-preto { background: #000; }
.card-preto + .card-preto { margin-top: 36px; }
.card-preto-img { display: block; }
.card-preto-img img { width: 100%; }
.card-preto h3 { padding: 45px 28px 24px; font: 600 17px/20.4px var(--roboto); }
.card-preto h3 a { color: #fff; }
.card-preto h3 a:hover { color: var(--verde-claro); }

.card-mini + .card-mini { margin-top: 20px; }
.card-mini-img { display: block; aspect-ratio: 133 / 89; }
.card-mini-img img { width: 100%; height: 100%; object-fit: cover; }
.card-mini h3 { margin-top: 10px; font: 600 17px/20.4px var(--roboto); }
.card-mini h3 a, .card-lista h3 a, .card-outras h3 a, .lateral-item h3 a { color: #000; }
.card-mini h3 a:hover, .card-lista h3 a:hover, .card-outras h3 a:hover, .lateral-item h3 a:hover, .card-grade h3 a:hover { color: var(--verde); }

.home-col-d { border: 3px dotted #333; padding: 8px; }
.home-col-d > h2 { font: 600 17px/17px var(--roboto); color: #000; margin-top: 3px; margin-bottom: 29px; }
.card-lista { display: grid; grid-template-columns: 82px 1fr; column-gap: 15px; align-items: start; }
.card-lista + .card-lista { margin-top: 24px; }
.card-lista-img img { width: 82px; border-radius: 0; }
.card-lista h3 { margin-top: 4px; font: 600 17px/20.4px var(--roboto); }
.card-lista .meta { display: block; margin-bottom: 18px; }

/* ==========================================================================
   Home — grade + lateral
   ========================================================================== */
.home-grade { display: grid; grid-template-columns: 822px 294px; column-gap: 45px; justify-content: center; margin-top: 107px; padding-left: 15px; }
.home-grade > .divisor-grosso { grid-column: 1 / -1; margin: 0 0 49px 100px; width: calc(100% - 115px); }
.grade { display: grid; grid-template-columns: repeat(3, 1fr); column-gap: 30px; row-gap: 45.5px; }
.card-grade { display: flex; flex-direction: column; align-items: center; text-align: center; }
.card-grade-img { display: block; width: 77%; aspect-ratio: 195 / 156; }
.card-grade-img img { width: 100%; height: 100%; object-fit: cover; }
.card-grade h3 { margin-top: 17px; font: 400 18px/21.6px var(--roboto); }
.card-grade h3 a { color: #000; }
.card-grade .meta { margin-bottom: 14px; }
.card-grade p { margin: 0 0 15px; font: 400 18px/27px var(--roboto); color: var(--cinza); }
.card-grade .leia { margin-top: auto; }
.grade-mais { text-align: center; margin-top: 52px; }
.botao-verde.carregando { opacity: .7; pointer-events: none; }
.divisor-curto { margin: 86px 0 149px 89px; }

.home-lateral { padding-top: 10px; }
.lateral-redes-titulo { text-align: center; font: 600 22px/22px var(--roboto); color: #000; }
.lateral-redes { display: flex; justify-content: center; gap: 2px; list-style: none; margin: 20px 0 60px; }
.lateral-redes a { display: grid; place-items: center; width: 60px; height: 60px; border-radius: 4px; color: #fff; }
.lateral-redes .r-facebook a { background: #3b5998; }
.lateral-redes .r-twitter a { background: #1da1f2; }
.lateral-redes .r-linkedin a { background: #0077b5; width: 56px; }
.lateral-redes .r-instagram a { background: #262626; width: 56px; }
.lateral-redes a:hover { opacity: .9; }
.lateral-outras-titulo { font: 600 27px/27px var(--roboto); color: #000; margin-bottom: 19px; }
.card-outras { display: grid; grid-template-columns: 1fr 97px; column-gap: 21px; align-items: start; }
.card-outras + .card-outras { margin-top: 24px; }
.card-outras h3 { font: 600 17px/20.4px var(--roboto); }
.card-outras .meta { display: block; margin-bottom: 18px; }
.card-outras-img { display: block; aspect-ratio: 97 / 139; overflow: hidden; }
.card-outras-img img { width: 100%; height: 100%; object-fit: cover; }

/* ==========================================================================
   Listagens (categoria, busca)
   ========================================================================== */
.arquivo { display: grid; grid-template-columns: 803px 290px; column-gap: 68px; justify-content: center; margin: 165px auto 80px; padding: 0 15px; }
.arquivo-titulo { font: 500 32px/38.4px var(--sistema); color: #333; margin-bottom: 55px; }
h1.arquivo-titulo { font-size: 40px; line-height: 48px; margin-bottom: 54px; }
.arquivo-titulo span { color: #000; }
.arquivo-descricao { margin: -40px 0 30px; color: var(--cinza); }
.arquivo-linha { height: 0; border-top: 1px solid #000; margin: 0 0 15px; }
.arquivo-vazio { font-size: 18px; color: var(--cinza); padding: 40px 0; }
.cards { display: grid; row-gap: 35px; }
.cards-2 { grid-template-columns: 1fr 1fr; column-gap: 30px; }
.card-caixa { display: flex; flex-direction: column; background: #fff; border-radius: 3px; box-shadow: 0 0 10px rgba(0, 0, 0, .15); overflow: hidden; }
.card-caixa-img { position: relative; display: block; aspect-ratio: 803 / 530; overflow: hidden; }
.card-caixa-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.card-caixa:hover .card-caixa-img img { transform: scale(1.03); }
.card-caixa-selo { position: absolute; top: 20px; right: 20px; padding: 7.2px 14.4px; border-radius: 999px; background: var(--verde-claro); color: #fff; font: 500 12px/12px var(--roboto); text-transform: uppercase; }
.card-caixa-texto { flex: 1; padding: 44px 30px 0; }
.card-caixa h3 { font: 600 17px/20.4px var(--roboto); margin-bottom: 26px; }
.card-caixa h3 a { color: #131111; }
.card-caixa p { margin: 0 0 28px; font: 400 18px/27px var(--roboto); color: var(--cinza); }
.card-caixa .leia { color: #000; text-transform: uppercase; }
.card-caixa-meta { margin-top: 0; padding: 15px 30px; border-top: 1px solid #eaeaea; }
.card-caixa-meta .sep::before { content: "•"; margin: 0 6px; }
.cards-2 .card-caixa-img { aspect-ratio: 386 / 255; }

.paginacao { display: flex; justify-content: center; gap: 13px; margin-top: 50px; font: 400 14px/21px var(--slab); color: #000; }
.paginacao a { color: #000; }
.paginacao a:hover { color: var(--verde); }
.paginacao .atual { color: var(--cinza-meta); }

.lateral-titulo { display: flex; align-items: center; gap: 15px; margin-bottom: 29px; font: 700 29px/29px var(--slab); color: #000; }
.lateral-titulo::after { content: ""; flex: 1; height: 3px; background: #000; }
.lateral-item { display: grid; grid-template-columns: 114px 1fr; column-gap: 23px; align-items: start; }
.lateral-item + .lateral-item { margin-top: 24px; }
.lateral-item-img { display: block; aspect-ratio: 114 / 100; overflow: hidden; }
.lateral-item-img img { width: 100%; height: 100%; object-fit: cover; }
.lateral-item h3 { margin-top: 6px; font: 600 17px/20.4px var(--roboto); }
.lateral-item .leia { margin-top: 6px; }

/* ---------- tag (modelo simples) ---------- */
.simples { max-width: 1140px; margin: 7px auto 60px; padding: 0 10px; }
.simples-titulo { font: 500 40px/48px var(--sistema); color: #333; margin-bottom: 13px; }
.simples-titulo span { color: #333; }
.simples-item { margin-bottom: 11px; }
.simples-item h2 { font: 500 32px/38.4px var(--sistema); margin-bottom: 15px; }
.simples-item h2 a { color: var(--rosa); }
.simples-img { display: block; aspect-ratio: 1140 / 500; margin-bottom: 6px; }
.simples-img img { width: 100%; height: 100%; object-fit: cover; }
.simples-item p { margin: 0; font: 400 16px/24px var(--sistema); color: #333; }
.simples-pag { display: flex; justify-content: space-between; margin-top: 20px; }
.simples-pag .prox { margin-left: auto; }

/* ==========================================================================
   Autor
   ========================================================================== */
.autor-cabeca { display: grid; grid-template-columns: 113px 1fr; column-gap: 49px; max-width: 1146px; margin: 146px auto 56px; padding: 33px 33px 26px; background: #000; color: #fff; }
.autor-foto { width: 113px; height: 113px; border-radius: 100px; object-fit: cover; }
.autor-cabeca h1 { font: 600 50px/60px var(--roboto); color: #fff; margin: 8px 0 21px; }
.autor-bio { font: 400 18px/27px var(--roboto); }
.autor-redes { display: flex; gap: 10px; list-style: none; margin-top: 14px; }
.autor-redes a { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--verde); color: #000; }
.autor-corpo { display: grid; grid-template-columns: 803px 290px; column-gap: 68px; justify-content: center; margin-bottom: 70px; padding: 0 15px; }
.card-linha { display: grid; grid-template-columns: 305px 1fr; column-gap: 50px; align-items: start; }
.card-linha + .card-linha { margin-top: 47px; }
.card-linha-img { display: block; aspect-ratio: 305 / 244; overflow: hidden; }
.card-linha-img img { width: 100%; height: 100%; object-fit: cover; }
.card-linha h2 { font: 600 23px/27.6px var(--roboto); margin-bottom: 30px; }
.card-linha h2 a { color: var(--verde); }
.card-linha .meta { display: block; margin-bottom: 32px; font: 700 16px/20.8px var(--slab); color: #000; letter-spacing: -.6px; }
.card-linha p { margin: 0 0 32px; font: 400 18px/27px var(--roboto); color: var(--cinza); }
.card-linha .leia { color: #000; }
.autor-lateral > .divisor-grosso { height: 7px; margin: -14px 0 36px 105px; }
.lateral-grande { margin-top: 40px; }
.lateral-grande img { width: 100%; }
.lateral-grande h3 { margin: 10px 0 8px; font: 700 14px/1.3 var(--roboto); text-transform: uppercase; }
.lateral-grande h3 a { color: #000; }
.leia-preto { font: 700 14px var(--roboto); color: #000; }

/* ==========================================================================
   Post
   ========================================================================== */
.post { max-width: 970px; margin: 0 auto; padding: 0; font-family: var(--poppins); }
.post-cabeca h1 { font: 600 65px/78px var(--poppins); color: var(--azul-post); text-align: center; }
.post-info { display: flex; justify-content: center; list-style: none; margin-top: 25px; font: 300 16px/24px var(--poppins); color: var(--azul-post); }
.post-info li + li { margin-left: 16px; padding-left: 16px; border-left: 1px solid var(--azul-post); }
.post-info a { color: var(--azul-post); }
.post-imagem { margin: 116px 0 0; }
.post-imagem img { width: 100%; }
.post-imagem figcaption, .post-texto figcaption { font: 300 16px/24px var(--poppins); color: var(--azul-texto); }
.post-texto { margin-top: 50px; font: 300 16px/24px var(--poppins); color: var(--azul-texto); text-align: justify; overflow-wrap: break-word; }
.post-texto::after { content: ""; display: table; clear: both; }
.post-texto p { margin: 0 0 .9rem; }
.post-texto a { color: var(--verde); text-decoration: underline; }
.post-texto h2, .post-texto h3, .post-texto h4 { margin: 1.4em 0 .6em; font-weight: 600; color: var(--azul-post); text-align: left; }
.post-texto h2 { font-size: 1.6em; } .post-texto h3 { font-size: 1.35em; } .post-texto h4 { font-size: 1.15em; }
.post-texto ul, .post-texto ol { margin: 0 0 .9rem 1.4em; }
.post-texto blockquote { margin: 1.4em 0; padding: 4px 0 4px 20px; border-left: 4px solid var(--verde); font-style: italic; }
.post-texto figure { margin: 0 0 1em; }
.post-texto figure.esq { float: left; margin: 4px 24px 12px 0; max-width: 50%; }
.post-texto figure.dir { float: right; margin: 4px 0 12px 24px; max-width: 50%; }
.post-texto figure.centro { text-align: center; }
.post-texto figure.centro img { margin: 0 auto; }
.post-texto figcaption { text-align: left; }
.post-texto .video { position: relative; aspect-ratio: 16 / 9; margin: 0 0 1em; }
.post-texto .video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.post-texto video { width: 100%; }
.post-texto table { width: 100%; border-collapse: collapse; margin-bottom: 1em; }
.post-texto td, .post-texto th { border: 1px solid #ddd; padding: 6px 10px; }
.galeria { display: grid; grid-template-columns: repeat(var(--cols, 3), 1fr); gap: 8px; margin: 0 0 1em; }
.galeria img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.post-tags { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 24px 0 0; }
.post-tags a { display: block; padding: 4px 12px; border-radius: 999px; background: #f1f2f3; font: 400 13px/20px var(--poppins); color: var(--azul-texto); }
.post-tags a:hover { background: var(--verde); color: #fff; }
.post-views { display: flex; justify-content: flex-end; align-items: center; gap: 6px; margin-top: 19px; font: 300 16px/24px var(--poppins); color: var(--azul-texto); }
.post-vejatambem { display: block; margin-top: 21px; padding: 16px 20px; background: #eaeaea; border-left: 4px solid #2ecc71; font: 700 16px/24px var(--poppins); }
.post-vejatambem strong { color: #464646; margin-right: 4px; }
.post-vejatambem span { color: #27ae60; text-decoration: underline; }
.post-vejatambem:hover span { color: var(--verde); }
.post-autor { display: grid; grid-template-columns: 100px 1fr; column-gap: 25px; margin-top: 66px; }
.post-autor-foto img { width: 100px; height: 100px; border-radius: 500px; object-fit: cover; }
.post-autor h4 { margin: 8px 0 6px; font: 600 17px/20.4px var(--roboto); color: #000; }
.post-autor-bio { font: 400 18px/27px var(--roboto); color: #000; margin-bottom: 14px; }

.comentarios { margin-top: 58px; font-family: var(--sistema); }
.com-titulo { display: flex; align-items: baseline; gap: 16px; font: 500 32px/38.4px var(--sistema); color: #333; margin-bottom: 17px; }
.com-cancelar { border: 0; background: none; padding: 0; font-size: 16px; color: var(--rosa); text-decoration: underline; }
.com-lista, .com-filhos { list-style: none; }
.com-lista { margin-bottom: 40px; }
.com-filhos { margin-left: 50px; }
.com { display: grid; grid-template-columns: 40px 1fr; gap: 14px; padding: 20px 0; border-bottom: 1px solid #eee; }
.com-avatar { width: 40px; height: 40px; border-radius: 50%; background: #d9d9d9; color: #fff; display: grid; place-items: center; font-weight: 700; }
.com header { display: flex; flex-wrap: wrap; gap: 4px 6px; align-items: baseline; font-size: 14px; }
.com header strong a { color: var(--rosa); }
.com header time { margin-left: auto; font-size: 12px; color: #999; }
.com-texto { margin: 8px 0; font-size: 15px; line-height: 1.55; }
.com-responder { border: 0; background: none; padding: 0; font-size: 12px; color: var(--rosa); text-decoration: underline; }
.com-aviso { font-size: 16px; }
.com-aviso span, .com-form label span { color: #333; }
.com-form label { display: block; margin-bottom: 2px; font-size: 16px; line-height: 16px; }
.com-form textarea, .com-form input[type=text], .com-form input[type=email], .com-form input[type=url] { width: 100%; padding: 8px 16px; border: 1px solid #666; border-radius: 3px; font: 400 16px/1.5 var(--sistema); }
.com-form textarea { height: 210px; resize: vertical; }
.com-form input { height: 42px; }
.com-form p { margin-bottom: 20px; }
.com-lembrar { display: flex; align-items: center; gap: 6px; }
.com-lembrar label { display: inline; margin: 0; }
.com-enviar { padding: 8px 16px; min-width: 193px; height: 45px; border: 1px solid var(--rosa); border-radius: 3px; background: var(--verde); color: #fff; font-size: 16px; }
.com-enviar:hover { background: #1f8f28; }
.form-retorno { padding: 12px 16px; border-radius: 3px; font-size: 15px; }
.form-retorno.ok { background: #e8f7ea; color: #1b6e22; }
.form-retorno.erro { background: #fdecea; color: #a1261a; }

.post-navegacao { display: flex; justify-content: space-between; margin-top: 60px; padding-top: 30px; border-top: 1px solid var(--azul-post); }
.post-navegacao a { display: flex; align-items: center; gap: 15px; font: 400 16px/24px var(--poppins); color: var(--azul-post); text-transform: capitalize; }
.post-navegacao a span { text-decoration: underline; }
.post-navegacao .ic { color: #9aa0b1; }
.post-navegacao .virar { transform: rotate(180deg); }
.post-compartilhe { display: flex; align-items: center; gap: 20px; margin-top: 50px; font: 300 16px/24px var(--poppins); color: var(--azul-texto); }
.post-compartilhe a { color: #467ff7; line-height: 0; }
.post-compartilhe a:hover { color: var(--verde); }

.mais-postagens { max-width: 970px; margin: 173px auto 0; }
.mais-postagens h2 { font: 600 65px/78px var(--poppins); color: var(--azul-post); text-align: center; margin-bottom: 100px; }
.mais-postagens-grade { display: grid; grid-template-columns: 1fr 1fr; column-gap: 60px; }
.mais-postagens article { border-radius: 3px; overflow: hidden; }
.mp-img { display: block; aspect-ratio: 455 / 364; overflow: hidden; }
.mp-img img { width: 100%; height: 100%; object-fit: cover; }
.mais-postagens h3 { margin: 37px 0 7px; font: 600 22px/26.4px var(--poppins); }
.mais-postagens h3 a { color: var(--azul-post); }
.mais-postagens p { margin-bottom: 30px; font: 400 18px/27px var(--roboto); color: var(--cinza); }
.mp-leia { font: 400 16px/16px var(--poppins); color: #467ff7; text-decoration: underline; text-transform: capitalize; }

/* ==========================================================================
   Páginas institucionais
   ========================================================================== */
.pagina { max-width: 1140px; margin: 7px auto 20px; padding: 0 10px; }
.pagina-titulo { font: 500 40px/48px var(--sistema); color: #333; margin-bottom: 16px; }
.pagina-texto { font: 400 16px/24px var(--sistema); color: #333; text-align: left; margin-top: 0; }
.pagina-texto a { color: #008000; font-weight: 700; text-decoration: none; }
.pagina-texto h1 { font: 500 32px/1.2 var(--sistema); margin-bottom: 16px; }
.pagina-texto figure.esq { max-width: 363px; margin: 5px 20px 10px 0; }
.pagina-texto figcaption { font: italic 400 13px/22.4px var(--sistema); color: #333; }
.pagina-texto .botao { display: inline-block; padding: 12px 24px; border-radius: 3px; background: var(--verde); color: #fff; font-weight: 400; }
.pagina .post-views { font: 400 16px/24px var(--sistema); color: #333; margin-top: 0; }
.pagina .comentarios { margin-top: 30px; }

.contato { max-width: 1300px; margin: 69px auto 94px; padding: 0 15px; }
.contato-titulo { font: 600 47px/47px var(--roboto); color: #000; text-align: center; }
.contato-divisor { display: flex; align-items: center; justify-content: center; gap: 10px; margin: 18px 0 80px; color: var(--verde); }
.contato-divisor span { width: 40px; height: 1px; background: #999; }
.contato-grade { display: grid; grid-template-columns: 576px 564px; column-gap: 130px; justify-content: center; }
.contato-texto h2 { display: none; }
.contato-texto h5 { font: 600 17px/17px var(--roboto); color: #000; margin-bottom: 20px; }
.contato-texto p { font: 400 18px/27px var(--roboto); color: #000; max-width: 536px; }
.contato-texto a { color: #000; }
.contato-form { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 14px; }
.cf-cheio { grid-column: 1 / -1; }
.contato-form input, .contato-form textarea { width: 100%; padding: 8px 16px; border: 1px solid #69727d; border-radius: 10px; font: 400 16px/1.5 var(--roboto); color: #333; }
.contato-form input { height: 43px; }
.contato-form textarea { height: 113px; padding: 5px 14px; border-radius: 10px; resize: vertical; }
.cf-acoes { display: flex; justify-content: flex-end; }
.cf-acoes button { display: flex; align-items: center; gap: 8px; height: 40px; padding: 0 16px; border: 0; border-radius: 3px; background: var(--verde); color: #fff; font: 500 26px/26px var(--roboto); }
.cf-acoes button:hover { background: #1f8f28; }

.galeria-fotos { display: grid; grid-template-columns: repeat(auto-fill, minmax(100px, 1fr)); gap: 10px; max-width: 100%; }
.galeria-fotos a { display: block; aspect-ratio: 1; overflow: hidden; background: #eee; }
.galeria-fotos img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.galeria-fotos a:hover img { transform: scale(1.06); }
.visualizador { position: fixed; inset: 0; z-index: 300; display: flex; align-items: center; justify-content: center; background: rgba(0, 0, 0, .92); }
.visualizador img { max-width: 90vw; max-height: 88vh; }
.visualizador button { position: absolute; border: 0; background: none; color: #fff; font-size: 48px; line-height: 1; padding: 10px 16px; }
.vz-fechar { top: 10px; right: 10px; }
.vz-ant { left: 10px; } .vz-prox { right: 10px; }

/* ---------- 404 ---------- */
.pg-404 .topo { display: none; }
.erro404 { max-width: 420px; margin: 0 auto; padding: 45px 15px 60px; text-align: center; color: #fff; }
body.pg-404 { background: #000; }
.erro404 > a img { width: 340px; }
.erro404-busca { display: flex; margin: 50px 0 0; border-radius: 8px; overflow: hidden; background: #f1f2f3; }
.erro404-busca input { flex: 1; min-width: 0; border: 0; background: transparent; padding: 10px 16px; font: 400 24px var(--roboto); outline: 0; }
.erro404-busca button { width: 48px; border: 0; background: #fff; color: #000; }
.erro404 h1 { margin: 110px 0 15px; font: 600 91px/91px var(--roboto); color: #fff; }
.erro404 p { font: 400 18px/27px var(--roboto); }
.erro404-recentes { margin-top: 60px; text-align: left; }
.erro404-recentes h2 { font: 600 20px var(--roboto); color: #fff; margin-bottom: 16px; text-align: center; }
.erro404-recentes > div { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.erro404-recentes a { display: block; color: #fff; font: 500 13px/1.3 var(--roboto); }
.erro404-recentes img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; margin-bottom: 6px; }

/* ==========================================================================
   Rodapé
   ========================================================================== */
.rodape { background: #000; }
.rodape-linha { display: grid; grid-template-columns: 312px 565px 1fr; align-items: start; max-width: 1142px; margin: 0 auto; padding: 42px 0 44px; }
.rodape-logo img { width: 280px; }
.rodape-texto { margin: 8px 0 0; font: 600 13px/19.5px var(--roboto); color: #fff; text-align: center; }
.rodape-redes { display: flex; justify-content: flex-end; gap: 25px; list-style: none; margin-top: 15px; }
.rodape-redes a { display: grid; place-items: center; width: 21px; height: 21px; border-radius: 10%; color: #fff; }
.rodape-redes .r-facebook a { background: #3b5998; }
.rodape-redes .r-twitter a { background: #1da1f2; }
.rodape-redes .r-instagram a { background: #262626; }
.rodape-redes .r-youtube a { background: #cd201f; }
.rodape-redes .ic { width: 21px; height: 21px; }
.rodape-redes .r-instagram .ic { width: 18px; height: 18px; }
.rodape-base { height: 91px; }
.pg-404 .rodape-base { display: none; }

/* ---------- barra de cookies ---------- */
.cookies { position: fixed; left: 0; right: 0; bottom: 0; z-index: 150; display: grid; grid-template-columns: 1fr auto auto; align-items: center; column-gap: 50px;
  padding: 14px 25px; background: var(--verde-escuro); color: #fff; box-shadow: 0 -1px 10px rgba(172, 171, 171, .3); font-family: var(--sistema); }
.cookies-texto strong { display: block; margin-bottom: 17px; font: 500 16px/19.2px var(--sistema); }
.cookies-texto p { margin: 0; font-size: 14.6667px; line-height: 18px; }
.cookies-link { color: #fff; font-size: 14.6667px; line-height: 18px; margin-top: 36px; }
.cookies-link:hover { color: #fff; text-decoration: underline; }
.cookies-ok { margin-top: 29px; padding: 9px 12px; border: 0; border-radius: 0; background: #61a229; color: #fff; font: 400 13px/13px var(--sistema); }

/* ==========================================================================
   Tablet (≤ 1180px)
   ========================================================================== */
@media (max-width: 1180px) {
  .home-topo { grid-template-columns: 22% 24% 12% 1fr; column-gap: 2%; padding: 0 15px; }
  .home-grade { grid-template-columns: 1fr 260px; column-gap: 30px; padding: 0 15px; }
  .arquivo, .autor-corpo { grid-template-columns: 1fr 260px; column-gap: 40px; }
  .rodape-linha { grid-template-columns: 27% 50% 1fr; padding-left: 15px; padding-right: 15px; }
  .contato-grade { grid-template-columns: 1fr 1fr; column-gap: 50px; }
  .autor-cabeca { margin-left: 15px; margin-right: 15px; }
  .post, .mais-postagens { padding: 0 20px; }
  .post-cabeca h1, .mais-postagens h2 { font-size: 52px; line-height: 1.2; }
}

/* ==========================================================================
   Tablet estreito (≤ 1024px) — menu vira lateral
   ========================================================================== */
@media (max-width: 1024px) {
  .topo-linha { grid-template-columns: 42px 482px 33px; column-gap: 20px; justify-content: center; align-items: start; padding: 20px 0 20px 90px; }
  .topo-linha > .topo-busca-btn { margin-left: 99px; }
  .topo-menu-btn { display: grid; place-items: center; width: 42px; height: 42px; padding: 0; border: 1px solid rgba(0, 0, 0, .2); border-radius: 3px; background: var(--verde); color: #000; }
  .topo-logo { padding: 0; justify-self: center; }
  .topo-logo img { width: 482px; }
  .topo-redes { display: none; }
  .topo-busca { display: none; position: absolute; left: 10px; right: 10px; top: 100%; width: auto; margin: 0; z-index: 70; box-shadow: 0 6px 16px rgba(0, 0, 0, .3); }
  .busca-aberta .topo-busca { display: flex; }
  .topo-busca-btn { display: grid; place-items: center; width: 33px; height: 33px; padding: 0; border: 0; border-radius: 3px; background: rgba(0, 0, 0, .05); color: var(--verde); justify-self: end; }
  .menu { display: none; }

  .banners { margin-top: 24px; }
  .banners-contido { max-width: calc(100% - 200px); margin: 40px auto 0; }
  .home-topo { grid-template-columns: 31fr 42fr 21fr; column-gap: 29px; padding: 0 14px; }
  .home-col-b { display: grid; grid-template-columns: 1fr 1fr; column-gap: 29px; row-gap: 20px; align-items: start; }
  .card-preto + .card-preto { margin-top: 0; }
  .home-col-c { margin-left: 0; }
  .home-col-d { grid-column: 1 / -1; margin: 30px 0 0; display: grid; grid-template-columns: repeat(3, 1fr); column-gap: 20px; row-gap: 24px; }
  .home-col-d > h2 { grid-column: 1 / -1; margin-bottom: 0; }
  .card-lista + .card-lista { margin-top: 0; }
  .card-preto h3 { padding: 30px 18px 20px; }
  .home-grade { grid-template-columns: 1fr 220px; column-gap: 24px; margin-top: 60px; padding: 0 20px; }
  .home-grade > .divisor-grosso { margin: 0 0 40px 60px; width: auto; }
  .grade { grid-template-columns: repeat(2, 1fr); }
  .lateral-redes a { width: 50px !important; height: 50px; }
  .card-outras { grid-template-columns: 1fr 60px; column-gap: 10px; }
  .arquivo, .autor-corpo { grid-template-columns: 1fr 230px; column-gap: 30px; margin-top: 80px; }
  .arquivo .cards-1 { grid-template-columns: 1fr 1fr; column-gap: 20px; }
  .arquivo .cards-1 .card-caixa-img { aspect-ratio: 16 / 10; }
  .card-caixa-texto { padding: 25px 20px 0; }
  .card-caixa-meta { padding: 12px 20px; }
  .lateral-item { grid-template-columns: 70px 1fr; column-gap: 12px; }
  .card-linha { grid-template-columns: 220px 1fr; column-gap: 25px; }
}

/* entre celular e tablet: blocos do topo da home ocultos (como no original) */
@media (max-width: 767px) {
  .home-topo { display: none; }
  .home-grade, .arquivo, .autor-corpo { display: block; }
  .arquivo .cards-1 { grid-template-columns: 1fr; }
  .home-lateral { margin-top: 50px; }
  .lateral, .autor-lateral { margin-top: 60px; }
  .card-linha { grid-template-columns: 1fr; }
}

/* ==========================================================================
   Mobile (≤ 767px)
   ========================================================================== */
@media (max-width: 767px) {
  .topo-linha { padding: 20px 14px 20px; column-gap: 20px; grid-template-columns: 42px 1fr 33px; align-items: center; justify-content: stretch; }
  .topo-linha > .topo-busca-btn { margin-left: 0; }
  .topo-logo img { width: 239px; }
  .banners-contido { max-width: none; }
  .banners { margin: 24px 10px 0; }

  .home-grade { margin-top: 83px; padding: 0 15px; }
  .home-grade > .divisor-grosso { margin: 0 0 42px 105px; width: auto; }
  .grade { grid-template-columns: 1fr; row-gap: 50px; }
  .card-grade-img { width: 100%; aspect-ratio: 360 / 270; }
  .card-grade h3 { margin-top: 17px; }
  .divisor-curto { margin: 60px 0 60px; }
  .lateral-redes-titulo { font-size: 20px; }

  .banners-contido { margin: 30px 39px 0; }
  .arquivo { margin-top: 130px; padding: 0 15px; }
  .arquivo-titulo { margin-bottom: 52px; }
  h1.arquivo-titulo { font-size: 32px; line-height: 38.4px; }
  .cards-2 { grid-template-columns: 1fr; }
  .card-caixa-img, .cards-2 .card-caixa-img { aspect-ratio: 2 / 1; }

  .simples-titulo { font-size: 32px; line-height: 1.2; }
  .simples-item h2 { font-size: 24px; line-height: 1.25; }

  .autor-cabeca { grid-template-columns: 1fr; text-align: center; margin: 40px 15px 40px; padding: 25px 20px; }
  .autor-foto { margin: 0 auto 10px; }
  .autor-cabeca h1 { font-size: 34px; line-height: 1.2; margin: 0 0 12px; }
  .autor-redes { justify-content: center; }
  .card-linha { grid-template-columns: 1fr; }
  .card-linha h2 { margin: 16px 0 12px; font-size: 21px; }
  .card-linha .meta { margin-bottom: 14px; }
  .card-linha p { margin-bottom: 12px; }

  .post { padding: 0 19.5px; }
  .post-cabeca h1 { margin-top: 58px; font-size: 28px; line-height: 30.8px; }
  .post-info { margin-top: 25px; font-size: 14px; line-height: 21px; }
  .post-imagem { margin-top: 31px; }
  .post-texto { margin-top: 44px; }
  .post-texto figure.esq, .post-texto figure.dir { float: none; max-width: 100%; margin: 0 0 1em; }
  .post-autor { grid-template-columns: 1fr; text-align: center; }
  .post-autor-foto img { margin: 0 auto 10px; }
  .com-titulo { font-size: 26px; }
  .com-filhos { margin-left: 20px; }
  .mais-postagens { margin-top: 90px; padding: 0 24px; }
  .mais-postagens h2 { font-size: 36px; line-height: 1.2; margin-bottom: 40px; }
  .mais-postagens-grade { grid-template-columns: 1fr; row-gap: 50px; }

  .pagina { padding: 0 20px; }
  .pagina-titulo { font-size: 32px; line-height: 1.2; }
  .pagina-texto figure.esq { float: none; max-width: 100%; margin: 0 0 1em; }
  .contato { margin-top: 70px; padding: 0 20px; }
  .contato-divisor { margin-bottom: 70px; }
  .contato-grade { grid-template-columns: 1fr; row-gap: 40px; }
  .contato-texto p { max-width: 310px; }

  .rodape-linha { display: flex; flex-direction: column; align-items: center; gap: 14px; padding: 36px 15px 36px; text-align: center; }
  .rodape-logo img { width: 286px; }
  .rodape-texto { margin: 0; }
  .rodape-redes { justify-content: center; margin: 0; }
  .rodape-base { height: 40px; }

  .cookies { grid-template-columns: 1fr; row-gap: 12px; padding: 25px; }
  .cookies-texto strong { margin-bottom: 10px; }
  .cookies-link, .cookies-ok { margin: 0; justify-self: start; }
}
