/* assets/css/paginas-internas.css — Páginas internas: topo/breadcrumb, conteúdo, imagens e galeria, Em breve, Notícias, Busca, Veja também, CTA e detalhe da notícia. */

/* ---------------------------------------------------
   PÁGINAS INTERNAS — template genérico (topo com breadcrumb+título
   + bloco de conteúdo em prosa), usado pela primeira vez em
   quem-somos.php. Pensado pra ser reaproveitado por qualquer outra
   página interna (Nossa História, Estatuto, Jurídico etc.).
   --------------------------------------------------- */
.stieen-pagina-topo { background: var(--cor-pag-topo-fundo, var(--stieen-cinza-claro)); padding: 32px 0; }
.stieen-breadcrumb {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: calc(13px * var(--stieen-escala-fonte));
  color: var(--cor-pag-breadcrumb, var(--stieen-cinza-medio));
  margin-bottom: 12px;
}
.stieen-breadcrumb a { color: var(--cor-pag-breadcrumb, var(--stieen-cinza-medio)); }
.stieen-breadcrumb a:hover { color: var(--cor-pag-breadcrumb-hover, var(--stieen-vermelho)); }
.stieen-breadcrumb i { font-size: calc(10px * var(--stieen-escala-fonte)); color: var(--cor-pag-breadcrumb, var(--stieen-cinza-medio)); }
.stieen-breadcrumb-atual { color: var(--cor-pag-breadcrumb-atual, var(--stieen-vermelho)); font-weight: 600; }
.stieen-pagina-topo h1 { font-size: calc(36px * var(--stieen-escala-fonte)); text-transform: uppercase; color: var(--cor-pag-topo-titulo, var(--stieen-escuro)); }

.stieen-pagina-conteudo { padding: 48px 0 64px; }
.stieen-pagina-conteudo .stieen-container { max-width: 900px; }
.stieen-pagina-conteudo p { font-size: calc(16px * var(--stieen-escala-fonte)); line-height: 1.8; color: var(--cor-pag-texto, var(--stieen-cinza)); margin: 0 0 18px; }
.stieen-pagina-conteudo strong { color: var(--cor-pag-negrito, var(--stieen-escuro)); font-weight: 700; }
.stieen-pagina-conteudo h2 {
  font-size: calc(24px * var(--stieen-escala-fonte));
  text-transform: uppercase;
  color: var(--cor-pag-h2, var(--stieen-vermelho));
  margin: 36px 0 16px;
}
.stieen-pagina-conteudo h2:first-child { margin-top: 0; }

/* H3 não tinha NENHUMA regra própria aqui — caía no reset global
   "h1, h2, h3, h4 { margin: 0; }" (topo do site.css), então ficava
   colado tanto no texto de cima quanto no de baixo. O Luciano vinha
   compensando isso na unha, digitando uma linha em branco só ACIMA de
   alguns H3 (nunca embaixo), o que deixava o espaçamento desigual de
   um subtítulo pro outro — ver print temp/77.jpg, 2026-09-22. Agora o
   respiro vem sempre do CSS, igual ao H2 (mesma proporção, um degrau
   abaixo): nunca mais precisa de linha em branco manual no editor.
*/
.stieen-pagina-conteudo h3 {
  font-size: calc(19px * var(--stieen-escala-fonte));
  font-weight: 700;
  color: var(--cor-pag-h3, var(--stieen-escuro));
  margin: 28px 0 12px;
}
.stieen-pagina-conteudo h3:first-child { margin-top: 0; }

/* ===== Módulo de imagens das Páginas do Site (2026-09-22) =====
   Bloco gerado por renderImagensPaginaInstitucional() (ver
   includes/paginas_conteudo_utils.php), injetado ANTES do texto —
   os modelos "à direita" dependem do float vir primeiro no HTML pra
   o texto fluir do lado. Larguras seguem a mesma régua de 900px do
   texto corrido (.stieen-pagina-conteudo .stieen-container). */
.stieen-pagina-imagens { margin-bottom: 24px; }
.stieen-pagina-imagens picture,
.stieen-pagina-imagens img { display: block; width: 100%; height: auto; border-radius: 8px; }

/* Modelo: banner no topo (também usado como topo dos modelos de galeria) */
.stieen-pagina-imagem-banner { max-height: 420px; object-fit: cover; }

/* Thumbs da galeria: quadro horizontal 4:3 IGUAL pra todas (a foto
   preenche o quadro com object-fit: cover), grade de colunas fixas
   com o mesmo espaçamento de 10px. O quadro é o próprio link do
   lightbox (.stieen-pagina-galeria-item). */
.stieen-pagina-galeria { display: grid; gap: 10px; margin-top: 10px; grid-template-columns: repeat(4, 1fr); }
.stieen-pagina-galeria-item {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border-radius: 8px;
  background: var(--stieen-cinza-borda);
}
.stieen-pagina-imagens .stieen-pagina-galeria-item picture,
.stieen-pagina-imagens .stieen-pagina-galeria-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0;
  transition: transform .25s ease;
}
.stieen-pagina-galeria-item:hover img { transform: scale(1.05); }

/* Lightbox (assets/js/galeria-lightbox.js) — link que abre a foto
   em tela cheia; reutilizável em qualquer imagem com data-lightbox-item */
.stieen-lightbox-item { display: block; cursor: zoom-in; }

/* Modelo: imagem à direita, texto ao lado (com ou sem galeria em coluna) */
.stieen-pagina-imagens--direita {
  float: right;
  width: 42%;
  margin: 0 0 20px 28px;
}
.stieen-pagina-imagens--direita .stieen-pagina-galeria { grid-template-columns: repeat(2, 1fr); }

/* Modelo: imagem centralizada — bloco só, sem float, largura contida
   (menor que o texto, pra parecer uma foto "dentro" da leitura e não
   um banner de largura total) */
.stieen-pagina-imagens--centralizada { max-width: 70%; margin-left: auto; margin-right: auto; }

/* Telas estreitas: nenhum modelo flutua — imagem sempre em cima,
   largura total, texto continua abaixo normalmente */
@media (max-width: 720px) {
  .stieen-pagina-galeria { grid-template-columns: repeat(3, 1fr); }
  .stieen-pagina-imagens--direita .stieen-pagina-galeria { grid-template-columns: repeat(2, 1fr); }
  .stieen-pagina-imagens--direita { float: none; width: 100%; margin: 0 0 20px; }
  .stieen-pagina-imagens--centralizada { max-width: 100%; }
}

@media (max-width: 480px) {
  .stieen-pagina-galeria { grid-template-columns: repeat(2, 1fr); }
}

/* Navegação do lightbox de galeria */
.stieen-galeria-lb-nav {
  position: fixed;
  top: 50%;
  transform: translateY(-50%);
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: none;
  background: var(--stieen-escuro-elevado);
  color: var(--stieen-branco);
  font-size: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 1;
}
.stieen-galeria-lb-nav:hover { background: var(--stieen-vermelho); }
.stieen-galeria-lb-anterior { left: 20px; }
.stieen-galeria-lb-proxima { right: 20px; }
.stieen-galeria-lb-contador {
  position: fixed;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  color: var(--stieen-branco);
  font-size: 14px;
  background: var(--stieen-escuro-elevado);
  padding: 6px 14px;
  border-radius: 20px;
}
@media (max-width: 480px) {
  .stieen-galeria-lb-anterior { left: 10px; }
  .stieen-galeria-lb-proxima { right: 10px; }
  .stieen-galeria-lb-nav { width: 40px; height: 40px; }
}

/* Link dentro do texto corrido (ex: telefone/e-mail da Atendimento,
   link pra outra página interna dentro do parágrafo) — faltava essa
   regra, então caía no azul/roxo padrão do navegador. Padrão do site:
   vermelho, cinza no hover (pedido do Luciano, 2026-09-11). */
.stieen-pagina-conteudo a { color: var(--cor-pag-links, var(--stieen-vermelho)); }
.stieen-pagina-conteudo a:hover { color: var(--cor-pag-links-hover, var(--stieen-cinza)); }

[data-tema="escuro"] .stieen-pagina-topo { background: var(--stieen-escuro-card); }
[data-tema="escuro"] .stieen-pagina-topo h1 { color: var(--stieen-claro); }
[data-tema="escuro"] .stieen-pagina-conteudo p { color: var(--stieen-cinza-suave); }
[data-tema="escuro"] .stieen-pagina-conteudo strong { color: var(--stieen-claro); }
/* Vermelho padrão perde contraste em cima do fundo quase preto do
   modo escuro (mesmo motivo do --stieen-vermelho-vivo no rodapé) —
   usa a versão viva aqui também. */
[data-tema="escuro"] .stieen-pagina-conteudo a { color: var(--stieen-vermelho-vivo); }
[data-tema="escuro"] .stieen-pagina-conteudo a:hover { color: var(--stieen-claro); }

@media (max-width: 720px) {
  .stieen-pagina-topo h1 { font-size: calc(28px * var(--stieen-escala-fonte)); }
}

/* ---------------------------------------------------
   "EM BREVE" — placeholder pra páginas internas que ainda não têm
   NENHUM dado real (Documentos, Calendário, Galeria, Links Úteis —
   2026-09-11): nunca inventar item de lista/link/data falsa, só avisa
   que o conteúdo chega junto com o módulo do Painel Admin correspondente.
   Mora dentro de .stieen-pagina-conteudo (900px), mesma régua do texto.
   --------------------------------------------------- */
.stieen-pagina-em-breve {
  text-align: center;
  padding: 56px 24px;
  background: var(--stieen-cinza-claro);
  border-radius: 10px;
}
.stieen-pagina-em-breve i {
  font-size: 40px;
  color: var(--stieen-vermelho);
  margin-bottom: 16px;
  display: block;
}
.stieen-pagina-em-breve p {
  font-size: calc(16px * var(--stieen-escala-fonte));
  color: var(--stieen-cinza);
  max-width: 480px;
  margin: 0 auto;
}
[data-tema="escuro"] .stieen-pagina-em-breve { background: var(--stieen-escuro-card); }
[data-tema="escuro"] .stieen-pagina-em-breve p { color: var(--stieen-cinza-suave); }

/* ---------------------------------------------------
   NOTÍCIAS — página de listagem completa (assets/noticias.php,
   2026-09-11), diferente do bloco da home (.stieen-noticias, que é
   1 destaque + slider lateral). Aqui é grid simples, 3 colunas,
   direto da tabela `noticias` (dado real, não fake) — larguras
   1200px (é grid, não texto corrido, por isso NÃO usa a régua de
   900px de .stieen-pagina-conteudo).
   --------------------------------------------------- */
.stieen-noticias-pagina { padding: 8px 0 64px; }
.stieen-noticias-pagina-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.stieen-noticias-pagina-card {
  display: block;
  border: 1px solid var(--stieen-cinza-borda);
  border-radius: 10px;
  overflow: hidden;
  transition: border-color .2s;
}
.stieen-noticias-pagina-card:hover { border-color: var(--stieen-vermelho); }
.stieen-noticias-pagina-card img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; }
.stieen-noticias-pagina-card-conteudo { padding: 16px; }
.stieen-noticias-pagina-card .stieen-noticia-categoria { background: none; color: var(--stieen-vermelho); padding: 0; font-size: calc(14px * var(--stieen-escala-fonte)); margin-bottom: 6px; display: inline-block; }
.stieen-noticias-pagina-card h3 {
  font-size: calc(18px * var(--stieen-escala-fonte));
  color: var(--stieen-escuro);
  line-height: 1.3;
  margin: 0 0 8px;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.stieen-noticias-pagina-card p { font-size: calc(14px * var(--stieen-escala-fonte)); color: var(--stieen-cinza); margin: 0 0 8px; }
.stieen-noticias-pagina-card .stieen-noticia-data { color: var(--stieen-cinza-medio); font-size: calc(13px * var(--stieen-escala-fonte)); }

/* BUSCA — página de resultados (busca.php). Reaproveita
   .stieen-pagina-topo/.stieen-pagina-em-breve já existentes; só o
   miolo de resultados (lista de notícias + páginas encontradas) é
   novo. */
.stieen-busca-resultados { padding: 8px 0 64px; }
.stieen-busca-info { font-size: calc(16px * var(--stieen-escala-fonte)); color: var(--stieen-cinza); margin: 0 0 32px; }
.stieen-busca-secao { margin-bottom: 40px; }
.stieen-busca-secao h2 { font-size: calc(22px * var(--stieen-escala-fonte)); text-transform: uppercase; color: var(--stieen-escuro); margin: 0 0 16px; }
.stieen-busca-lista { display: flex; flex-direction: column; gap: 4px; }
.stieen-busca-item {
  display: block;
  padding: 16px;
  border: 1px solid var(--stieen-cinza-borda);
  border-radius: 8px;
  text-decoration: none;
}
.stieen-busca-item + .stieen-busca-item { margin-top: 10px; }
.stieen-busca-item:hover { border-color: var(--stieen-vermelho); }
.stieen-busca-item h3 { font-size: calc(18px * var(--stieen-escala-fonte)); color: var(--stieen-vermelho); margin: 0 0 6px; }
.stieen-busca-item p { font-size: calc(15px * var(--stieen-escala-fonte)); color: var(--stieen-cinza); margin: 0; }

[data-tema="escuro"] .stieen-noticias-pagina-card { background: var(--stieen-escuro-card); border-color: var(--stieen-borda-escura); }
[data-tema="escuro"] .stieen-noticias-pagina-card h3 { color: var(--stieen-claro); }
[data-tema="escuro"] .stieen-noticias-pagina-card p { color: var(--stieen-cinza-suave); }

@media (max-width: 980px) {
  .stieen-noticias-pagina-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .stieen-noticias-pagina-grid { grid-template-columns: 1fr; }
}

/* ---------------------------------------------------
   VEJA TAMBÉM — sugestão de outras páginas do dropdown "O Stieen"
   ao final do conteúdo (padrão "leia também" comum em páginas de
   notícia/institucionais). Links ainda em "#" — mesma regra do
   resto do site: trocar por link real só quando cada página existir.
   --------------------------------------------------- */
.stieen-veja-tambem { background: var(--cor-pag-veja-fundo, var(--stieen-cinza-claro)); padding: 40px 0; }
/* Régua de largura = a mesma do texto (.stieen-pagina-conteudo
   .stieen-container, 900px), não os 1200px da página inteira —
   pedido explícito do Luciano: os cards de sugestão acompanham a
   largura da coluna de leitura, não a largura total do site. */
.stieen-veja-tambem .stieen-container { max-width: 900px; }
.stieen-veja-tambem h2 {
  font-size: calc(20px * var(--stieen-escala-fonte));
  text-transform: uppercase;
  text-align: center;
  color: var(--cor-pag-veja-titulo, var(--stieen-escuro));
  margin-bottom: 20px;
}
/* Grid FIXO de 4 colunas (não flex-wrap) — pedido explícito: sempre
   4 por linha, um 5º item começa a linha de baixo pela ESQUERDA (não
   centralizado). O grid já faz isso naturalmente por padrão (auto-
   placement preenche da esquerda pra direita, de cima pra baixo). */
.stieen-veja-tambem-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.stieen-veja-tambem-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  background: var(--cor-pag-veja-card, var(--stieen-branco));
  border: 1px solid var(--stieen-cinza-borda);
  border-radius: 10px;
  padding: 24px 16px;
  text-align: center;
  transition: transform .2s, border-color .2s;
}
.stieen-veja-tambem-item:hover { transform: translateY(-4px); border-color: var(--stieen-vermelho); }
.stieen-veja-tambem-item i { font-size: calc(26px * var(--stieen-escala-fonte)); color: var(--cor-pag-veja-icones, var(--stieen-vermelho)); }
.stieen-veja-tambem-item span { font-size: calc(15px * var(--stieen-escala-fonte)); font-weight: 700; color: var(--cor-pag-veja-texto, var(--stieen-escuro)); }

[data-tema="escuro"] .stieen-veja-tambem { background: var(--stieen-escuro-card); }
[data-tema="escuro"] .stieen-veja-tambem h2 { color: var(--stieen-claro); }
[data-tema="escuro"] .stieen-veja-tambem-item { background: var(--stieen-escuro-elevado); border-color: var(--stieen-borda-escura); }
[data-tema="escuro"] .stieen-veja-tambem-item span { color: var(--stieen-claro); }

/* ---------------------------------------------------
   CTA sutil de fim de página interna — mais discreto que o
   .stieen-cta da home (sem logo, faixa mais baixa, só texto curto +
   botão), reaproveitando .stieen-cta-botao já existente pro botão
   ficar idêntico ao da home.
   --------------------------------------------------- */
.stieen-pagina-cta { background: var(--cor-pag-cta-fundo, var(--stieen-branco)); border-top: 1px solid var(--stieen-cinza-borda); padding: 40px 0; }
.stieen-pagina-cta-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
}
.stieen-pagina-cta-inner p {
  font-size: calc(18px * var(--stieen-escala-fonte));
  font-weight: 700;
  color: var(--cor-pag-cta-texto, var(--stieen-escuro));
  margin: 0;
}

[data-tema="escuro"] .stieen-pagina-cta { background: var(--stieen-escuro); border-color: var(--stieen-borda-escura); }
[data-tema="escuro"] .stieen-pagina-cta-inner p { color: var(--stieen-claro); }

@media (max-width: 720px) {
  /* 2 colunas no celular — 4 por linha ficaria minúsculo demais. */
  .stieen-veja-tambem-grid { grid-template-columns: repeat(2, 1fr); }
  .stieen-pagina-cta-inner { flex-direction: column; align-items: flex-start; }
}

/* ---------------------------------------------------
   NOTÍCIA — página de detalhe (noticia.php, 2026-09-18). Mesma régua
   de texto corrido já usada em .stieen-pagina-conteudo (900px),
   corpo da notícia vem do editor rico do Painel (H2/H3/lista/citação
   já estilizados aqui pra não ficarem "crus").
   --------------------------------------------------- */
.stieen-noticia-detalhe { padding: 8px 0 64px; }
.stieen-noticia-detalhe .stieen-container { max-width: 900px; }

.stieen-noticia-detalhe-capa {
  width: 100%;
  max-height: 460px;
  object-fit: cover;
  border-radius: 12px;
  margin-bottom: 28px;
}

.stieen-noticia-detalhe-resumo {
  font-size: calc(19px * var(--stieen-escala-fonte));
  color: var(--stieen-cinza);
  font-weight: 600;
  line-height: 1.5;
  margin: 0 0 24px;
}

.stieen-noticia-detalhe-corpo {
  font-size: calc(17px * var(--stieen-escala-fonte));
  line-height: 1.75;
  color: var(--stieen-escuro);
}
.stieen-noticia-detalhe-corpo p { margin: 0 0 18px; }
.stieen-noticia-detalhe-corpo h2 { font-size: calc(26px * var(--stieen-escala-fonte)); margin: 32px 0 14px; color: var(--stieen-escuro); }
.stieen-noticia-detalhe-corpo h3 { font-size: calc(21px * var(--stieen-escala-fonte)); margin: 26px 0 12px; color: var(--stieen-escuro); }
.stieen-noticia-detalhe-corpo ul, .stieen-noticia-detalhe-corpo ol { margin: 0 0 18px; padding-left: 24px; }
.stieen-noticia-detalhe-corpo li { margin-bottom: 8px; }
.stieen-noticia-detalhe-corpo blockquote {
  border-left: 4px solid var(--stieen-vermelho);
  margin: 24px 0;
  padding: 4px 0 4px 20px;
  font-style: italic;
  color: var(--stieen-cinza);
}
.stieen-noticia-detalhe-corpo a { color: var(--stieen-vermelho); text-decoration: underline; }

.stieen-noticia-detalhe-galeria {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin: 28px 0;
}
.stieen-noticia-detalhe-galeria img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 8px; display: block; }

.stieen-noticia-detalhe-compartilhar {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 32px;
  padding-top: 24px;
  border-top: 1px solid var(--stieen-cinza-borda);
  font-size: calc(15px * var(--stieen-escala-fonte));
  color: var(--stieen-cinza);
}
.stieen-noticia-detalhe-compartilhar a,
.stieen-noticia-detalhe-compartilhar button {
  width: 36px; height: 36px;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 50%;
  background: var(--stieen-cinza-claro);
  color: var(--stieen-cinza);
  border: none;
  font-size: inherit;
  font-family: inherit;
  cursor: pointer;
}
.stieen-noticia-detalhe-compartilhar a:hover,
.stieen-noticia-detalhe-compartilhar button:hover { background: var(--stieen-vermelho); color: var(--stieen-branco); }

[data-tema="escuro"] .stieen-noticia-detalhe-resumo { color: var(--stieen-cinza-suave); }
[data-tema="escuro"] .stieen-noticia-detalhe-corpo { color: var(--stieen-claro); }
[data-tema="escuro"] .stieen-noticia-detalhe-corpo h2,
[data-tema="escuro"] .stieen-noticia-detalhe-corpo h3 { color: var(--stieen-claro); }
[data-tema="escuro"] .stieen-noticia-detalhe-compartilhar { border-color: var(--stieen-borda-escura); }
[data-tema="escuro"] .stieen-noticia-detalhe-compartilhar a,
[data-tema="escuro"] .stieen-noticia-detalhe-compartilhar button { background: var(--stieen-escuro-card); color: var(--stieen-cinza-suave); }

@media (max-width: 640px) {
  .stieen-noticia-detalhe-galeria { grid-template-columns: repeat(2, 1fr); }
  .stieen-noticia-detalhe-capa { max-height: 260px; }
}

/* ---------------------------------------------------
   FALE CONOSCO — formulário de contato (2026-09-27), dentro da
   régua de 900px de .stieen-pagina-conteudo. Mesmo vocabulário visual
   do popup de login (assets/css/login.css: honeypot, par
   label+input, alerta sucesso/erro), adaptado pra seção de página
   (não lightbox) e com grid de 2 colunas pros campos curtos.
   --------------------------------------------------- */
.stieen-contato-form-section { padding: 0 0 64px; }
.stieen-contato-form-section .stieen-container { max-width: 900px; }
.stieen-contato-form-section h2 {
  font-size: calc(24px * var(--stieen-escala-fonte));
  text-transform: uppercase;
  color: var(--stieen-vermelho);
  margin: 0 0 20px;
}

.stieen-contato-alerta {
  padding: 12px 14px;
  border-radius: 6px;
  font-size: calc(16px * var(--stieen-escala-fonte));
  font-weight: 600;
  margin-bottom: 20px;
}
.stieen-contato-alerta-sucesso { background: var(--stieen-sucesso-fundo); color: var(--stieen-sucesso); }
.stieen-contato-alerta-erro { background: var(--stieen-erro-fundo); color: var(--stieen-vermelho); }

.stieen-contato-honeypot { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.stieen-contato-form { display: flex; flex-direction: column; }
.stieen-contato-linha { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.stieen-contato-campo { display: flex; flex-direction: column; margin-top: 18px; }
.stieen-contato-campo:first-child { margin-top: 0; }
.stieen-contato-linha .stieen-contato-campo { margin-top: 0; }
.stieen-contato-campo label {
  font-size: calc(15px * var(--stieen-escala-fonte));
  font-weight: 600;
  color: var(--stieen-escuro);
  margin-bottom: 6px;
}
.stieen-contato-campo input,
.stieen-contato-campo select,
.stieen-contato-campo textarea {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--stieen-cinza-borda);
  border-radius: 6px;
  font-size: calc(16px * var(--stieen-escala-fonte));
  font-family: inherit;
  color: var(--stieen-escuro);
  background: var(--stieen-branco);
}
.stieen-contato-campo textarea { resize: vertical; min-height: 140px; }
.stieen-contato-campo input:focus,
.stieen-contato-campo select:focus,
.stieen-contato-campo textarea:focus { outline: none; border-color: var(--stieen-vermelho); }

.stieen-contato-telefone { display: flex; gap: 8px; }
.stieen-contato-telefone .stieen-contato-ddi { width: 64px; flex: none; text-align: center; }
.stieen-contato-telefone .stieen-contato-numero { flex: 1; }

.stieen-contato-botao {
  margin-top: 24px;
  display: inline-flex;
  align-self: flex-start;
  align-items: center;
  gap: 8px;
  background: var(--stieen-vermelho);
  color: var(--stieen-branco);
  border: none;
  border-radius: 6px;
  padding: 12px 28px;
  font-size: calc(16px * var(--stieen-escala-fonte));
  font-weight: 700;
  cursor: pointer;
}
.stieen-contato-botao:hover { background: var(--stieen-vermelho-escuro); }
.stieen-contato-botao:disabled { opacity: .7; cursor: default; }

[data-tema="escuro"] .stieen-contato-form-section h2 { color: var(--stieen-vermelho-vivo); }
[data-tema="escuro"] .stieen-contato-campo label { color: var(--stieen-claro); }
[data-tema="escuro"] .stieen-contato-campo input,
[data-tema="escuro"] .stieen-contato-campo select,
[data-tema="escuro"] .stieen-contato-campo textarea {
  background: var(--stieen-escuro-card);
  border-color: var(--stieen-borda-escura);
  color: var(--stieen-claro);
}

@media (max-width: 640px) {
  .stieen-contato-linha { grid-template-columns: 1fr; }
}

/* ---------------------------------------------------
   FALE CONOSCO — checkbox de consentimento LGPD (2026-09-27).
   Obrigatório marcar pra enviar, mas SEM asterisco/"campo
   obrigatório" no texto (pedido do Luciano): o aviso só aparece se a
   pessoa tentar enviar sem marcar, num balão flutuante com seta,
   ancorado no checkbox (.stieen-contato-lgpd-wrap = position:
   relative). Ver assets/js/contato-form.js.
   --------------------------------------------------- */
.stieen-contato-lgpd-wrap { position: relative; margin-top: 20px; }
.stieen-contato-lgpd {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  cursor: pointer;
}
.stieen-contato-lgpd input[type="checkbox"] {
  width: 18px;
  height: 18px;
  flex: none;
  margin-top: 3px;
  accent-color: var(--stieen-vermelho);
  cursor: pointer;
}
.stieen-contato-lgpd span {
  font-size: calc(14px * var(--stieen-escala-fonte));
  color: var(--stieen-cinza);
  line-height: 1.5;
}
.stieen-contato-lgpd span a { color: var(--stieen-vermelho); }
.stieen-contato-lgpd span a:hover { color: var(--stieen-cinza); }

.stieen-contato-balao-erro {
  position: absolute;
  bottom: calc(100% + 12px);
  left: 0;
  background: var(--stieen-erro-fundo);
  color: var(--stieen-vermelho);
  font-size: calc(14px * var(--stieen-escala-fonte));
  font-weight: 600;
  padding: 10px 14px;
  border-radius: 8px;
  max-width: 320px;
  box-shadow: 0 4px 14px var(--stieen-sombra);
  opacity: 0;
  transform: translateY(6px);
  pointer-events: none;
  transition: opacity .2s ease, transform .2s ease;
  z-index: 2;
}
.stieen-contato-balao-erro::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 9px;
  border: 7px solid transparent;
  border-top-color: var(--stieen-erro-fundo);
}
.stieen-contato-balao-erro.is-visivel { opacity: 1; transform: translateY(0); }

[data-tema="escuro"] .stieen-contato-lgpd span { color: var(--stieen-cinza-suave); }
[data-tema="escuro"] .stieen-contato-lgpd span a { color: var(--stieen-vermelho-vivo); }

/* ---------------------------------------------------
   ESTATUTO — PDF incorporado direto na página (2026-09-27), dentro
   da régua de 900px de .stieen-pagina-conteudo. Visualizador nativo
   do navegador num <iframe> alto o bastante pra ler sem abrir em
   outra aba; o próprio navegador cuida do scroll/zoom entre páginas
   (mesmo princípio do lightbox do jornal, ver componentes.css).
   --------------------------------------------------- */
.stieen-pagina-pdf-section { padding: 0 0 64px; }
.stieen-pagina-pdf-section .stieen-container { max-width: 900px; }

.stieen-pagina-pdf-baixar {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: calc(15px * var(--stieen-escala-fonte));
  font-weight: 600;
  color: var(--stieen-vermelho);
  margin-bottom: 16px;
}
.stieen-pagina-pdf-baixar:hover { color: var(--stieen-cinza); }

.stieen-pagina-pdf-embed {
  width: 100%;
  height: 85vh;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid var(--stieen-cinza-borda);
}
.stieen-pagina-pdf-embed iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
  background: var(--stieen-branco);
}

[data-tema="escuro"] .stieen-pagina-pdf-baixar { color: var(--stieen-vermelho-vivo); }
[data-tema="escuro"] .stieen-pagina-pdf-embed { border-color: var(--stieen-borda-escura); }

@media (max-width: 720px) {
  .stieen-pagina-pdf-embed { height: 70vh; }
}


/* ===== Página Vídeos (videos.php) — grade de vídeos incorporados ===== */
.stieen-videos-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.stieen-videos-item {
  aspect-ratio: 9 / 16;
  border-radius: 10px;
  overflow: hidden;
  background: var(--stieen-cinza-claro);
}
.stieen-videos-item iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}
@media (max-width: 900px) { .stieen-videos-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .stieen-videos-grid { grid-template-columns: 1fr; } }


/* ===== Página Boletins (boletins.php) — destaque 4:5 + grade "anteriores" ===== */
.stieen-boletins-destaque { display: flex; flex-direction: column; align-items: center; margin-bottom: 48px; }
.stieen-boletins-destaque-link {
  display: block;
  width: 100%;
  max-width: 560px;
  aspect-ratio: 4 / 5;
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 8px 24px var(--stieen-sombra);
  cursor: zoom-in;
}
.stieen-boletins-destaque-link img { display: block; width: 100%; height: 100%; object-fit: contain; }
.stieen-boletins-destaque-legenda { margin: 14px 0 0; text-align: center; font-size: calc(14px * var(--stieen-escala-fonte)); }
.stieen-boletins-titulo { text-align: center; margin: 0 0 24px; }
.stieen-boletins-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 20px; }
.stieen-boletins-item-link, .stieen-jornal-item-link {
  display: block;
  aspect-ratio: 4 / 5;
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 2px 8px var(--stieen-sombra);
  cursor: zoom-in;
}
.stieen-boletins-item-link img, .stieen-jornal-item-link img { display: block; width: 100%; height: 100%; object-fit: contain; }
.stieen-boletins-item-data { display: block; margin-top: 8px; text-align: center; font-size: calc(14px * var(--stieen-escala-fonte)); color: var(--stieen-cinza); }
.stieen-boletins-mais { display: flex; justify-content: center; margin-top: 32px; }
@media (max-width: 900px) { .stieen-boletins-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 560px) { .stieen-boletins-grid { grid-template-columns: repeat(2, 1fr); gap: 14px; } }

/* ===== Página Jornal (jornal.php) — PDF da edição aberta + lista "Edições anteriores".
   Lista reaproveita as classes .stieen-boletins-* (grade, data, Carregar mais). ===== */
.stieen-jornal-item-link { cursor: pointer; }
.stieen-pagina-pdf-section--topo { padding-top: 48px; }
.stieen-jornal-barra { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.stieen-jornal-barra .stieen-pagina-pdf-baixar { margin-bottom: 0; }
.stieen-jornal-legenda { margin: 0; font-size: calc(15px * var(--stieen-escala-fonte)); font-weight: 600; }
