/* ============================================================
   DYNEXA — 05 UTILITARIOS
   ============================================================ */

.mt-0 { margin-top: 0; }
.mt-2 { margin-top: var(--sp-2); }
.mt-3 { margin-top: var(--sp-3); }
.mt-4 { margin-top: var(--sp-4); }
.mt-5 { margin-top: var(--sp-5); }
.mt-6 { margin-top: var(--sp-6); }
.mt-7 { margin-top: var(--sp-7); }
.mt-8 { margin-top: var(--sp-8); }

.mb-4 { margin-bottom: var(--sp-4); }
.mb-5 { margin-bottom: var(--sp-5); }
.mb-6 { margin-bottom: var(--sp-6); }
.mb-7 { margin-bottom: var(--sp-7); }

.pt-7 { padding-top: var(--sp-7); }
.pb-7 { padding-bottom: var(--sp-7); }

.flow > * + * { margin-top: var(--sp-4); }
.flow-lg > * + * { margin-top: var(--sp-6); }

.stack   { display: flex; flex-direction: column; }
.row     { display: flex; align-items: center; }
.wrap    { flex-wrap: wrap; }
.gap-2 { gap: var(--sp-2); } .gap-3 { gap: var(--sp-3); }
.gap-4 { gap: var(--sp-4); } .gap-5 { gap: var(--sp-5); }
.gap-6 { gap: var(--sp-6); }

.measure    { max-width: 62ch; }
.measure-sm { max-width: 48ch; }

/* Colunas do grid editorial.
   Colapsam para largura total antes de o .grid mudar de contagem
   de colunas — caso contrario o span cria colunas implicitas. */
.col-7 { grid-column: span 7; }
.col-5 { grid-column: span 5; }
.col-6 { grid-column: span 6; }
.col-8 { grid-column: span 8; }
.col-4 { grid-column: span 4; }
@media (max-width: 1024px) {
  .col-7, .col-5, .col-6, .col-8, .col-4 { grid-column: 1 / -1; }
}

.text-muted  { color: var(--text-muted); }
.text-accent { color: var(--accent); }
.text-center { text-align: center; }

.border-top { border-top: 1px solid var(--rule); }
.on-dark .border-top { border-top-color: var(--rule-invert); }

.hide-mobile { }
@media (max-width: 720px) { .hide-mobile { display: none !important; } }

/* Utilidade de impressao — pareceres e propostas costumam ser impressos */
@media print {
  .header, .wa-float, .mobile-menu, .form-shell, .urgency { display: none !important; }
  body { background: #fff; color: #000; }
  body::before { display: none; }
  .section { padding-block: 1.5rem; }
  .hero { background: #fff; color: #000; padding-top: 0; }
  .hero__glow, .hero__grid { display: none; }
  .hero__title, h1, h2, h3 { color: #000 !important; }
  a[href^='http']::after { content: ' (' attr(href) ')'; font-size: .7em; color: #555; }
}
