/* ==========================================================================
   Layout Primitives
   Preserves the existing Webflow-derived 12-column layout system.
   ========================================================================== */

:root {
  --site--max-width: min(var(--site--width), 100vw);
  --container--main: calc(var(--site--max-width) - var(--site--margin) * 2);
  --container--full: calc(100% - 4rem);
  --container--small: calc(var(--column-width--plus-gutter) * (var(--site--column-count) - 4) - var(--site--gutter));
  --site--gutter-total: calc(var(--site--gutter) * (var(--site--column-count) - 1));
  --column-width--1: calc((var(--container--main) - var(--site--gutter-total)) / var(--site--column-count));
  --column-width--plus-gutter: calc(var(--column-width--1) + var(--site--gutter));
  --column-width--2: calc(var(--column-width--plus-gutter) * 2 - var(--site--gutter));
  --column-width--3: calc(var(--column-width--plus-gutter) * 3 - var(--site--gutter));
  --column-width--4: calc(var(--column-width--plus-gutter) * 4 - var(--site--gutter));
  --column-width--5: calc(var(--column-width--plus-gutter) * 5 - var(--site--gutter));
  --column-width--6: calc(var(--column-width--plus-gutter) * 6 - var(--site--gutter));
  --column-width--7: calc(var(--column-width--plus-gutter) * 7 - var(--site--gutter));
  --column-width--8: calc(var(--column-width--plus-gutter) * 8 - var(--site--gutter));
  --column-width--9: calc(var(--column-width--plus-gutter) * 9 - var(--site--gutter));
  --column-width--10: calc(var(--column-width--plus-gutter) * 10 - var(--site--gutter));
  --column-width--11: calc(var(--column-width--plus-gutter) * 11 - var(--site--gutter));
  --column-width--12: calc(var(--column-width--plus-gutter) * 12 - var(--site--gutter));
  --column-margin--1: calc(var(--column-width--plus-gutter) * 1);
  --column-margin--2: calc(var(--column-width--plus-gutter) * 2);
  --column-margin--3: calc(var(--column-width--plus-gutter) * 3);
  --column-margin--4: calc(var(--column-width--plus-gutter) * 4);
  --column-margin--5: calc(var(--column-width--plus-gutter) * 5);
  --column-margin--6: calc(var(--column-width--plus-gutter) * 6);
  --column-margin--7: calc(var(--column-width--plus-gutter) * 7);
  --column-margin--8: calc(var(--column-width--plus-gutter) * 8);
  --column-margin--9: calc(var(--column-width--plus-gutter) * 9);
  --column-margin--10: calc(var(--column-width--plus-gutter) * 10);
  --column-margin--11: calc(var(--column-width--plus-gutter) * 11);
  --column-margin--12: calc(var(--column-width--plus-gutter) * 12);
  --breakout-start: [full-start] minmax(0, 1fr) [content-start];
  --breakout-end: [content-end] minmax(0, 1fr) [full-end];
  --grid-breakout-single: var(--breakout-start) minmax(0, var(--container--main)) var(--breakout-end);
  --grid-breakout: var(--breakout-start) repeat(var(--site--column-count), minmax(0, var(--column-width--1))) var(--breakout-end);
  --grid-main: repeat(var(--site--column-count), minmax(0, 1fr));
  --grid-1: repeat(1, minmax(0, 1fr));
  --grid-2: repeat(2, minmax(0, 1fr));
  --grid-3: repeat(3, minmax(0, 1fr));
  --grid-4: repeat(4, minmax(0, 1fr));
  --grid-6: repeat(6, minmax(0, 1fr));
  --grid-12: repeat(12, minmax(0, 1fr));
  --align--flex-start: flex-start;
  --align--flex-center: center;
  --align--flex-end: flex-end;
  --align--text-left: left;
  --align--text-center: center;
  --align--text-right: right;
}

:is(.u-margin-trim, .u-rich-text) > :not(:not(.w-condition-invisible) ~ :not(.w-condition-invisible)) {
  margin-top: 0;
}

:is(.u-margin-trim, .u-rich-text) > :not(:has(~ :not(.w-condition-invisible))) {
  margin-bottom: 0;
}

:is([class*="u-text-style-"], h1, h2, h3, h4, h5, h6, p):not(.w-richtext, .u-text-trim-off)::before {
  content: "";
  display: table;
  margin-bottom: calc(-0.5lh + var(--_text-style---trim-top, 0px));
}

:is([class*="u-text-style-"], h1, h2, h3, h4, h5, h6, p):not(.w-richtext, .u-text-trim-off)::after {
  content: "";
  display: table;
  margin-bottom: calc(-0.5lh + var(--_text-style---trim-bottom, 0px));
}

.u-line-clamp-1 { display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }
.u-line-clamp-2 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.u-line-clamp-3 { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.u-line-clamp-4 { display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }

.u-embed-css,
.u-embed-js,
.u-hide-if-empty-cms:not(:has(.w-dyn-item)),
.u-hide-if-empty:empty {
  display: none !important;
}

[data-hide-if-empty-cms-child]:not(:has(.w-dyn-item)) {
  display: none !important;
}

@media (width < 56em) {
  .u-grid-desktop {
    grid-template-columns: 1fr !important;
  }

  .u-column-4,
  .u-column-8 {
    grid-column: span 1 !important;
  }

  .u-vflex-center-center.u-gap-row-8 {
    row-gap: var(--space-8);
  }

  .g_section_space {
    padding-top: var(--space-12) !important;
    padding-bottom: var(--space-12) !important;
  }
}
