/* v4 shared layouts; business pages retain their own content grids. */
.stack { display: grid; gap: var(--space-4); }
.row { display: flex; align-items: center; gap: var(--space-3); }
.between { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); }
.wrap { flex-wrap: wrap; }
.full { width: 100%; }
.shell { max-width: 1320px; margin: var(--space-8) auto; padding: 0 var(--space-8) var(--space-6); background: var(--shell); border: 1px solid var(--surface); border-radius: var(--radius-shell); box-shadow: var(--shadow-shell); }
.topbar { min-height: 60px; display: flex; align-items: center; justify-content: space-between; gap: var(--space-6); border-bottom: 1px solid var(--line); }
.page-heading { padding: var(--space-8) 0 var(--space-6); display: flex; justify-content: space-between; align-items: center; gap: var(--space-5); }
.page-heading p { margin-top: var(--space-2); color: var(--muted); }
.footer { display: flex; justify-content: space-between; gap: var(--space-4); padding-top: var(--space-8); color: var(--muted); font-size: var(--text-xs); }

@media (max-width: 1400px) { .shell { margin: var(--space-6); } }
@media (max-width: 760px) {
  .shell { margin: 10px; padding: 0 14px 20px; border-radius: var(--r-xl); }
  .topbar { min-height: 0; padding: 18px 0; gap: 16px; flex-wrap: wrap; }
  .topbar .nav { order: 3; width: 100%; justify-content: space-between; }
  .page-heading { align-items: flex-start; flex-direction: column; padding: 24px 0 20px; gap: 16px; }
  .footer { flex-wrap: wrap; }
}
