/* ===== SGE PRO – página de módulos ===== */
.modulos-pagina { background: #f3f5f8; padding: 32px clamp(16px, 3vw, 32px) 56px; }
.modulos-cab { max-width: 1100px; margin: 0 auto 28px; }
.modulos-cab h1 { margin: 0; font-size: clamp(1.5rem, 3vw, 2rem); color: var(--texto); }
.modulos-cab p { margin: 4px 0 0; color: var(--texto-suave); }

.modulos-grade {
  max-width: 1100px; margin: 0 auto;
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px;
}

.modulo {
  position: relative; display: flex; flex-direction: column; align-items: stretch;
  text-decoration: none; color: inherit; background: #fff;
  border-radius: 6px; overflow: hidden;
  box-shadow: 0 2px 6px rgba(0,0,0,.14);
  transition: transform .15s ease, box-shadow .15s ease;
}
a.modulo:hover { transform: translateY(-3px); box-shadow: 0 8px 18px rgba(0,0,0,.18); }
a.modulo:focus-visible { outline: 3px solid var(--destaque); outline-offset: 3px; }

.modulo__icone { display: flex; align-items: center; justify-content: center; padding: 18px 18px 10px; background: #fff; }
.modulo__icone img { width: 100%; max-width: 170px; height: auto; aspect-ratio: 1; object-fit: contain; }

.modulo__rotulo {
  background: linear-gradient(180deg, #5b7299 0%, var(--verde) 100%);
  color: #fff; text-align: center; font-weight: 600; font-size: 1.05rem;
  padding: 10px 12px; min-height: 48px; display: flex; align-items: center; justify-content: center;
}
a.modulo:hover .modulo__rotulo { background: var(--verde-escuro); }
.modulo__desc { padding: 8px 12px 12px; text-align: center; font-size: .85rem; color: var(--texto-suave); }

.modulo--breve { cursor: default; }
.modulo--breve .modulo__icone img { opacity: .55; filter: grayscale(.4); }
.modulo--breve .modulo__rotulo { background: #8a96a8; }
.modulo__selo {
  position: absolute; top: 10px; right: 10px;
  background: #e8772e; color: #fff; font-size: .72rem; font-weight: 700;
  padding: 2px 8px; border-radius: 10px; letter-spacing: .02em;
}

@media (max-width: 900px) { .modulos-grade { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; } }
@media (max-width: 420px) { .modulo__rotulo { font-size: .95rem; } .modulo__desc { display: none; } }
@media (prefers-reduced-motion: reduce) { .modulo { transition: none; } a.modulo:hover { transform: none; } }
