/* Padronização de alinhamento e medida de texto — Safety2U
   Não altera cores/fontes. Exceção: seções CTA finais permanecem centralizadas. */

/* ---------- Base: esquerda, sem justificação ---------- */
main p,
main li,
main blockquote,
main h1,
main h2,
main h3,
main h4,
main .eyebrow,
main .text-lg.leading-relaxed,
main .text-base.leading-relaxed,
main .text-sm.leading-relaxed,
main .text-xs.leading-relaxed,
main .triad-caption,
main .deliverable-group-label,
main .seg-tile-title,
main .seg-tile-tag {
  text-align: left;
  text-align-last: auto;
  text-justify: none;
  hyphens: manual;
}

/* ---------- Hierarquia tipográfica (espaçamento, não tipografia) ---------- */
main header .eyebrow {
  margin-bottom: 0.5rem;
}

main header :is(h1, h2) {
  line-height: 1.15;
}

main header :is(h1, h2) + .text-lg,
main header :is(h1, h2) + .text-base,
main header :is(h1, h2) + p {
  margin-top: 1rem;
}

main section :is(h2, h3) + p,
main section :is(h2, h3) + .text-lg,
main section :is(h2, h3) + .text-base {
  margin-top: 0.85rem;
}

main p + p {
  margin-top: 0.85em;
}

/* Split reveal: folga para g/ç sem gap excessivo entre linhas */
[data-split-reveal] {
  line-height: 1.27;
}

[data-split-reveal] .overflow-hidden,
[data-split-reveal] .align-bottom,
[data-split-reveal] [style*="overflow:hidden"],
[data-split-reveal] [style*="overflow: hidden"] {
  padding-top: 0.05em;
  padding-bottom: 0.28em;
  vertical-align: baseline;
}

/* ---------- Medida confortável (~60–80 caracteres) ---------- */
main header > .text-lg.leading-relaxed,
main header > .text-base.leading-relaxed,
main header .text-lg.leading-relaxed.text-muted,
main header .text-lg.leading-relaxed.max-w-2xl,
main .text-lg.leading-relaxed.text-muted.max-w-2xl,
main .text-lg.leading-relaxed.max-w-2xl,
main p.text-lg.leading-relaxed.max-w-2xl,
main p.text-lg.leading-relaxed.text-muted,
main .text-lg.leading-relaxed.max-w-xl {
  max-width: 42rem;
  line-height: 1.65;
}

main p.text-base.leading-relaxed,
main .text-base.leading-relaxed.text-muted,
main p.text-sm.leading-relaxed.text-muted,
main .text-sm.leading-relaxed.text-muted {
  max-width: 40rem;
  line-height: 1.6;
}

/* Diferenciais: faixas editoriais — texto largo, sem coluna comprimida */
@media (min-width: 64rem) {
  main .eco-ed-row > .eco-ed-copy {
    grid-column: 4 / -1;
    width: 100%;
    max-width: none;
  }
}

main .eco-ed-row > .eco-ed-copy {
  width: 100%;
  max-width: none;
}

@media (max-width: 63.99rem) {
  main .eco-ed-row > .eco-ed-copy {
    padding-left: 0.25rem;
  }
}

main .eco-ed-row .text-base.leading-relaxed.text-muted,
main .eco-ed-row p.text-base.leading-relaxed,
main .eco-ed-row p.max-w-2xl {
  max-width: none !important;
  width: 100%;
}

main .eco-ed-row .text-gradient-electric.block {
  max-width: 100%;
  width: 100%;
  line-height: 1.2;
  padding-bottom: 0.12em;
  overflow: visible;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

/* ---------- Cards e blocos de conteúdo ---------- */
main .norm-card-body {
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  gap: 0.55rem;
  padding: 1.25rem 1.35rem 1.45rem;
}

main .norm-card-title,
main .norm-card-copy {
  text-align: center;
  width: 100%;
  margin: 0;
}

main .norm-card-copy {
  line-height: 1.55;
}

main .triad-caption {
  text-align: left !important;
  width: 100%;
  max-width: 100%;
  margin-inline: 0;
  font-size: clamp(0.98rem, 1.45vw, 1.12rem);
  line-height: 1.55;
}

main .deliverable-pillar-card,
main .deliverable-pillar-card p,
main .deliverable-pillar-card h3 {
  text-align: left;
  align-items: flex-start;
}

/* Pilares: texto à esquerda, harmônico com a coluna */
main #solution-pillars .pillar-copy,
main #solution-pillars .pillar-copy :is(p, h3, span) {
  text-align: left;
  align-items: flex-start;
}

/* Segmentos: eyebrow + bloco intermediário */
main .eyebrow.text-center {
  text-align: left !important;
}

main .flex.flex-col.items-center.py-6.text-center {
  align-items: flex-start !important;
  text-align: left !important;
}

main .flex.flex-col.items-center.py-6.text-center > * {
  text-align: left;
  margin-inline: 0;
}

/* Cards de processo (assessment / código) — não eco-nodes nem stats */
main li.group.flex.flex-col.items-center.text-center:not(.eco-node):not(.eco-node-link) {
  align-items: flex-start !important;
  text-align: left !important;
}

main li.group.flex.flex-col.items-center.text-center:not(.eco-node):not(.eco-node-link) :is(p, h3, h4) {
  text-align: left;
}

/* Intros centralizadas fora de CTA */
main .mx-auto.max-w-3xl.text-center,
main .mx-auto.max-w-4xl.text-center,
main .mx-auto.max-w-5xl.text-center {
  margin-left: 0 !important;
  margin-right: auto !important;
  text-align: left !important;
}

main .mx-auto.max-w-3xl.text-center > *,
main .mx-auto.max-w-4xl.text-center > *,
main .mx-auto.max-w-5xl.text-center > * {
  text-align: left;
}

/* Colegiado / sobre — legendas de arte */
main #colegiado .text-center {
  text-align: left !important;
}

/* Diferenciais: bloco "Proteção real" — centralizado */
main .relative.mt-16.flex.flex-col.items-center.text-center.lg\:mt-24 {
  align-items: center !important;
  text-align: center !important;
}

main .relative.mt-16.flex.flex-col.items-center.text-center.lg\:mt-24 > :is(h2, p) {
  text-align: center;
  max-width: 42rem;
  margin-inline: auto;
}

main .relative.mt-16.flex.flex-col.items-center.text-center.lg\:mt-24 > .relative.flex.items-center.justify-center {
  align-self: center;
}

/* ---------- Preservar composições visuais (não são blocos de prosa) ---------- */
/* Diferenciais: ícone sempre centralizado na faixa — sem parallax desalinhando */
main .eco-ed-icon {
  top: 50% !important;
  transform: translateY(-50%) !important;
}

main .eco-ed-row:hover .eco-ed-icon {
  transform: translateY(-50%) scale(1.04) !important;
}

@media (prefers-reduced-motion: reduce) {
  main .eco-ed-row:hover .eco-ed-icon {
    transform: translateY(-50%) !important;
  }
}

main .eco-node,
main .eco-node-link,
main .eco-node :is(p, span, h3, h4),
main .eco-node-link :is(p, span, h3, h4),
main [style*="--stat-color"].text-center,
main [style*="--stat-color"] :is(p, span, strong) {
  text-align: center !important;
}

main .eco-node,
main .eco-node-link,
main [style*="--stat-color"].text-center {
  align-items: center !important;
}

/* ---------- EXCEÇÃO: CTAs finais centralizados ---------- */
main [id$="-cta"] .text-center,
main #journey-cta .text-center,
main [id$="-cta"] :is(h1, h2, h3, p, .text-lg, .text-base),
main #journey-cta :is(h1, h2, h3, p, .text-lg, .text-base) {
  text-align: center !important;
}

main [id$="-cta"] .text-center,
main #journey-cta .text-center {
  margin-left: auto;
  margin-right: auto;
}

main [id$="-cta"] :is(.text-lg, p.text-lg, p.text-base),
main #journey-cta :is(.text-lg, p.text-lg, p.text-base) {
  margin-left: auto !important;
  margin-right: auto !important;
  max-width: 42rem;
}

main [id$="-cta"] .flex.justify-center,
main #journey-cta .flex.justify-center {
  justify-content: center;
}

main [id$="-cta"] .relative.mt-16.flex.flex-col.items-center,
main #journey-cta .relative.mt-16.flex.flex-col.items-center {
  align-items: center !important;
}

/* ---------- Footer: contato WhatsApp (região + número) ---------- */
.footer-contact-line {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.2rem;
  line-height: 1.35;
  word-break: normal;
  overflow-wrap: normal;
}

.footer-contact-line__region {
  display: block;
}

.footer-contact-line__phone {
  display: block;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.01em;
}

.footer-contact-line__phones {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.55rem;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.01em;
}

.footer-contact-line__phones a {
  color: inherit;
  transition: color 0.2s ease;
}

.footer-contact-line__phones a:hover {
  color: var(--color-electric, #2ea8ff);
}

.footer-contact-line__sep {
  opacity: 0.45;
  user-select: none;
}

/* ---------- Responsivo ---------- */
@media (max-width: 39.99rem) {
  main header > .text-lg.leading-relaxed,
  main .text-lg.leading-relaxed.text-muted.max-w-2xl,
  main .text-lg.leading-relaxed.max-w-2xl,
  main p.text-lg.leading-relaxed,
  main .text-base.leading-relaxed.text-muted,
  main p.text-sm.leading-relaxed.text-muted {
    max-width: 100%;
    line-height: 1.6;
  }

  main .norm-card-body {
    padding: 1.1rem 1.15rem 1.25rem;
  }
}
