/* Ajustes compartilhados pelos três módulos, mantendo os componentes existentes. */
:root { --cor-primaria: #1F4D3A; --cor-secundaria: #0D2C3A; --cor-destaque: #D6A84F; }
body { font-family: Arial, Helvetica, sans-serif; }
button, input, select, textarea { font: inherit; }
button, a, input, select { touch-action: manipulation; }
button { cursor: pointer; }
:focus-visible { outline: 3px solid #B77A15; outline-offset: 4px; }
[id] { scroll-margin-top: 120px; }
main { display: block; }
img { max-width: 100%; }
.pular-conteudo { position: fixed; top: -100px; left: 1rem; z-index: 100001; padding: .8rem 1rem; border-radius: 8px; background: #fff; color: #1F4D3A; }
.pular-conteudo:focus { top: 1rem; }
.menu-toggle { display: none; min-height: 44px; padding: .6rem 1rem; border: 1px solid #fff; border-radius: 8px; background: #1F4D3A; color: #fff; }
.imagem-indisponivel { display: block; padding: 1rem; color: #0D2C3A; background: #F7F4EE; }
.adesao-rede { padding: 4rem 0; background: #F7F4EE; color: #0D2C3A; }
.adesao-rede h2 { margin-bottom: 1rem; }
.adesao-rede p { max-width: 760px; line-height: 1.8; margin-bottom: 1rem; }
.adesao-rede a { display: inline-block; color: #1F4D3A; text-decoration: underline; padding: .75rem 0; }
.profissional-hero { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; padding: 1.3rem; background: linear-gradient(transparent, rgba(0,0,0,.8)); color: white; }
.profissional-hero h3 { color: #fff; font-size: 1.45rem; margin: 0 0 .5rem; }
.profissional-local { color: #fff; }
.profissional-tipo { max-width: calc(100% - 2.4rem); white-space: normal; }
.profissionais-filtros { display: flex; flex-wrap: wrap; gap: .7rem; margin: 1.5rem 0; }
.filtro-profissional { border: 1px solid #1F4D3A; padding: .75rem 1rem; border-radius: 999px; background: #fff; color: #1F4D3A; }
.filtro-profissional.ativo { background: #1F4D3A; color: #fff; }
.profissionais-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); }
#lightbox[aria-hidden="true"] { visibility: hidden; }
.credencial-modal .credencial-container { max-height: 90dvh; overflow-y: auto; }
.galeria-grid button { padding: 0; border: 0; background: transparent; border-radius: 12px; overflow: hidden; }
@media (max-width: 768px) {
  .menu-toggle { display: inline-flex; align-items: center; justify-content: center; }
  #header .container, .header-content { flex-direction: row; flex-wrap: wrap; gap: .75rem; }
  #header .logo img, .viva-logo { max-width: 130px; height: auto; }
  .brand { gap: .75rem; flex-wrap: wrap; max-width: 65%; }
  .ecosystem-logo { font-size: .85rem; }
  .menu-controlado { display: none !important; width: 100%; position: static !important; padding: 1rem; background: #1F4D3A; border-radius: 12px; }
  .menu-controlado.active { display: flex !important; flex-direction: column; gap: .4rem; }
  .menu-controlado .nav-list { width: 100%; display: flex; flex-direction: column; gap: .4rem; }
  .menu-controlado a { display: block; padding: .75rem; color: #fff; }
  .hero-content { padding-top: 3rem; }
  .profissionais-grid { grid-template-columns: minmax(0, 1fr); }
  .profissional-acoes { flex-wrap: wrap; }
  .credencial-header { flex-wrap: wrap; gap: 1rem; }
  .credencial-acoes { flex-wrap: wrap; }
  .credencial-modal { padding: .5rem; }
  .hero-kicker { letter-spacing: .05em; }
  .perfil-galeria-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 160px), 1fr)); }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .splash-seal, .splash-text > * { opacity: 1 !important; transform: none !important; }
}

.ecosistema-button { max-width: 100%; white-space: normal; text-align: center; }

#menu-toggle { flex-direction: column; }
#menu-toggle span { flex-shrink: 0; }
@media (max-width: 768px) { .hero-actions { flex-direction: column; align-items: stretch; } .hero-actions a { width: 100%; text-align: center; } #nav.menu-controlado.active { max-height: none; } }
