/* Justificación global: módulos y bloques (excluye héroes centrados y elementos .text-center) */
/* Reglas base dentro de secciones estándar */
main.content section:not(.module-bg) :where(p, li):not(.text-center) {
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
  overflow-wrap: anywhere;
}
main.content section:not(.module-bg) .section-header .lead {
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
  overflow-wrap: anywhere;
}
/* Cobertura adicional: párrafos y listas dentro de .container (no héroe) */
main.content .container:not(.page-hero) :where(p, li):not(.text-center) {
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
  overflow-wrap: anywhere;
}
/* Salvaguarda: no aplicar justificación dentro del héroe */
main.content .module-bg .page-hero :where(p, li) {
  text-align: inherit;
}

/* Justificación aplicada a tarjetas de marca y equipo */
.brand-card .card-body p,
.brand-card .card-body li,
.team-card .card-body p {
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
  overflow-wrap: anywhere;
}

/* Animaciones de entrada por scroll para secciones genéricas */
.reveal-animate .row { overflow: visible; }
.reveal-animate .brand-card,
.reveal-animate .team-card,
.reveal-animate .card {
  opacity: 0;
  transform: translateY(20px);
  transition: transform 600ms cubic-bezier(0.2, 0.7, 0.2, 1), opacity 600ms linear;
  transition-delay: var(--delay, 0ms);
  will-change: transform, opacity;
}
.reveal-animate .brand-card.no-anim,
.reveal-animate .team-card.no-anim,
.reveal-animate .card.no-anim { transition: none; }
.reveal-animate .brand-card[data-dir="left"],
.reveal-animate .team-card[data-dir="left"],
.reveal-animate .card[data-dir="left"] { transform: translateX(-60px); }
.reveal-animate .brand-card[data-dir="right"],
.reveal-animate .team-card[data-dir="right"],
.reveal-animate .card[data-dir="right"] { transform: translateX(60px); }
.reveal-animate .brand-card[data-dir="top"],
.reveal-animate .team-card[data-dir="top"],
.reveal-animate .card[data-dir="top"] { transform: translateY(-60px); }
.reveal-animate .brand-card[data-dir="bottom"],
.reveal-animate .team-card[data-dir="bottom"],
.reveal-animate .card[data-dir="bottom"] { transform: translateY(60px); }
.reveal-animate .brand-card.in,
.reveal-animate .team-card.in,
.reveal-animate .card.in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  .reveal-animate .brand-card,
  .reveal-animate .team-card,
  .reveal-animate .card { transition: none !important; transform: none !important; opacity: 1 !important; }
}