/* Layout Helpers */
.l-container { max-width: var(--site-max-width); margin-inline: auto; padding-inline: var(--space-4); }
.l-cluster { display: flex; flex-wrap: wrap; gap: var(--space-3); align-items: center; }
.l-grid-auto { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: var(--space-4); }

/* main height now managed by flex layout in base.css for sticky footer */
main { min-height: 0; }

/* Navigation height offset helper */
.has-fixed-nav { padding-top: var(--nav-height); }

/* Constrained wrapper to center page content and prevent edge-to-edge stretch */
.wrap { max-width: var(--site-max-width, 1200px); margin: 0 auto; padding: 0 var(--space-5,24px); width:100%; box-sizing: border-box; }
@media (max-width: 640px){ .wrap { padding: 0 var(--space-4,18px); } }
