/* Fluid page layout: follows the browser width at every screen size. */
:root { --page-gutter: clamp(12px, 2vw, 40px); }
*, *::before, *::after { box-sizing: border-box; }
html, body { width: 100%; margin: 0; }
.page-shell, .ecom-shell {
  width: 100%; max-width: none; margin-left: 0; margin-right: 0;
  padding-left: var(--page-gutter); padding-right: var(--page-gutter);
}
.site-header .nav {
  width: 100%; max-width: none; margin-left: 0; margin-right: 0;
  padding-left: var(--page-gutter); padding-right: var(--page-gutter);
}
.site-footer { padding-left: var(--page-gutter); padding-right: var(--page-gutter); }
.footer-grid, .copyright { width: 100%; max-width: none; }
.page-shell > *, .ecom-shell > *, .contact-grid > *, .location-panel > *,
.visit-grid > *, .product-grid > *, .ecom-product > *, .ecom-checkout-grid > * { min-width: 0; }
.contact-row, .location-detail, .info-card { overflow-wrap: anywhere; }
@media (min-width: 1600px) {
  #catalogProducts { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
@media (min-width: 2100px) {
  #catalogProducts { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}
