:root {
  --page-gutter: clamp(16px, 4vw, 60px);
  --container-max: 1800px;
  --gutter-0:  0px;
  --gutter-16: 16px;
  --gutter-24: 24px;
  --gutter-40: 40px;
  --gutter-60: 60px;
  --gutter-fluid-sm: clamp(8px, 1.5vw, 16px);
  --gutter-fluid-md: clamp(12px, 2vw, 32px);
  --gutter-fluid-lg: clamp(24px, 4vw, 64px);
  --gutter-fluid-axis: clamp(12px, 2vw, 40px);
  --col-pad-fluid-sm: clamp(8px, 1.5vw, 24px);
  --col-pad-fluid:    clamp(16px, 3vw, 60px);
  --col-pad-fluid-lg: clamp(24px, 4vw, 80px);
  --row-gap-x: var(--gutter-40);
  --row-gap-y: var(--gutter-40);
  --row-col-pad-x: var(--gutter-0);
  --space-0: 0;
  --space-8: 8px;
  --space-12: 12px;
  --space-16: 16px;
  --space-24: 24px;
  --space-40: clamp(24px, 3vw, 40px);
  --space-60: clamp(32px, 5vw, 60px);
  --space-80: clamp(40px, 7vw, 80px);
  --space-section: clamp(32px, 6vw, 96px);
--single-sm: 720px;
--single-md: 880px;
--single-lg: 1040px;
}
html {
  box-sizing: border-box;
}
*,
*::before,
*::after {
  box-sizing: inherit;
}
.container {
  margin-inline: auto;
  padding-inline: var(--page-gutter);
  max-width: var(--container-max);
}
.container-fluid {
  width: 100%;
  padding-inline: var(--page-gutter);
}
.bleed-x {
  margin-inline: calc(-1 * var(--page-gutter));
  padding-inline: 0;
}
.bleed-full {
  width: 100vw;
  margin-inline: calc(50% - 50vw);
}
.band {
  width: 100vw;
  margin-inline: calc(50% - 50vw);
  padding-inline: 0;
}
.band > * {
  box-sizing: border-box;
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--page-gutter);
}
.row > *.bleed-x {
  flex: 0 0 calc(100% + var(--page-gutter) * 2);
  padding-inline: 0;
}
.row {
  display: flex;
  flex-wrap: wrap;
  --gap-x: var(--row-gap-x);
  --gap-y: var(--row-gap-y);
  --col-pad-x: var(--row-col-pad-x);
  gap: var(--gap-y) var(--gap-x);
}
.row > * {
  flex: 0 1 100%;
  padding-inline: var(--col-pad-x);
  min-width: 0;
  box-sizing: border-box;
}
.row > * img,
.row > * svg,
.row > * video,
.row > * canvas,
.row > * iframe,
.row > * embed,
.row > * object {
  max-width: 100%;
}
.row > * img,
.row > * svg,
.row > * video {
  height: auto;
}
.row > * {
  overflow-wrap: break-word;
}
.row.trim {
  margin-inline: 0;
}
.col       { flex: 1 1 0; }
.col-auto  { flex: 0 0 auto; }
.col-1-1   { flex: 0 0 100%; }
.col-3-4   { flex: 0 0 calc(75%     - var(--gap-x, 0px) * 0.25);  }
.col-2-3   { flex: 0 0 calc(200% / 3 - var(--gap-x, 0px) / 3);     }
.col-3-5   { flex: 0 0 calc(60%     - var(--gap-x, 0px) * 0.4);   }
.col-1-2   { flex: 0 0 calc(50%     - var(--gap-x, 0px) * 0.5);   }
.col-2-5   { flex: 0 0 calc(40%     - var(--gap-x, 0px) * 0.6);   }
.col-1-3   { flex: 0 0 calc(100% / 3 - var(--gap-x, 0px) * 2 / 3); }
.col-30    { flex: 0 0 calc(30%     - var(--gap-x, 0px) * 0.7);   }
.col-1-4   { flex: 0 0 calc(25%     - var(--gap-x, 0px) * 0.75);  }
.col-20    { flex: 0 0 calc(20%     - var(--gap-x, 0px) * 0.8);   }
.single-sm,
.single-md,
.single-lg {
  max-width: var(--single-md);
  width: 100%;
}
.single-sm { max-width: var(--single-sm); }
.single-md { max-width: var(--single-md); }
.single-lg { max-width: var(--single-lg); }
.gap-0  { --gap-x: var(--gutter-0);  --gap-y: var(--gutter-0); }
.gap-16 { --gap-x: var(--gutter-16); --gap-y: var(--gutter-16); }
.gap-24 { --gap-x: var(--gutter-24); --gap-y: var(--gutter-24); }
.gap-40 { --gap-x: var(--gutter-40); --gap-y: var(--gutter-40); }
.gap-60 { --gap-x: var(--gutter-60); --gap-y: var(--gutter-60); }
.gap-fluid-sm {
  --gap-x: var(--gutter-fluid-sm);
  --gap-y: var(--gutter-fluid-sm);
}
.gap-fluid,
.gap-fluid-md {
  --gap-x: var(--gutter-fluid-md);
  --gap-y: var(--gutter-fluid-md);
}
.gap-fluid-lg {
  --gap-x: var(--gutter-fluid-lg);
  --gap-y: var(--gutter-fluid-lg);
}
.gap-x-0     { --gap-x: var(--gutter-0); }
.gap-x-16    { --gap-x: var(--gutter-16); }
.gap-x-24    { --gap-x: var(--gutter-24); }
.gap-x-40    { --gap-x: var(--gutter-40); }
.gap-x-60    { --gap-x: var(--gutter-60); }
.gap-x-fluid { --gap-x: var(--gutter-fluid-axis); }
.gap-y-0     { --gap-y: var(--gutter-0); }
.gap-y-16    { --gap-y: var(--gutter-16); }
.gap-y-24    { --gap-y: var(--gutter-24); }
.gap-y-40    { --gap-y: var(--gutter-40); }
.gap-y-60    { --gap-y: var(--gutter-60); }
.gap-y-fluid { --gap-y: var(--gutter-fluid-axis); }
.pxc-0  { --col-pad-x: var(--gutter-0); }
.pxc-16 { --col-pad-x: var(--gutter-16); }
.pxc-24 { --col-pad-x: var(--gutter-24); }
.pxc-40 { --col-pad-x: var(--gutter-40); }
.pxc-60 { --col-pad-x: var(--gutter-60); }
.pxc-fluid {
  --col-pad-x: var(--col-pad-fluid);
}
.pxc-fluid-sm {
  --col-pad-x: var(--col-pad-fluid-sm);
}
.pxc-fluid-lg {
  --col-pad-x: var(--col-pad-fluid-lg);
}
@media (max-width: 992px) {
  .row:not(.no-stack) > .col-1-3,
  .row:not(.no-stack) > .col-2-3,
  .row:not(.no-stack) > .col-3-4,
  .row:not(.no-stack) > .col-3-5,
  .row:not(.no-stack) > .col-2-5,
  .row:not(.no-stack) > .col-30,
  .row:not(.no-stack) > .col-20 {
    flex: 0 0 100%;
  }
}
@media (max-width: 992px) {
  .row:not(.no-stack):has(> .col-3-4):has(> .col-1-4) > .col-3-4,
  .row:not(.no-stack):has(> .col-3-4):has(> .col-1-4) > .col-1-4,
  .row:not(.no-stack):has(> .col-2-3):has(> .col-1-3) > .col-2-3,
  .row:not(.no-stack):has(> .col-2-3):has(> .col-1-3) > .col-1-3,
  .row:not(.no-stack):has(> .col-3-5):has(> .col-2-5) > .col-3-5,
  .row:not(.no-stack):has(> .col-3-5):has(> .col-2-5) > .col-2-5 {
    flex: 0 0 calc(50% - var(--gap-x, 0px) * 0.5);
  }
}
@media (max-width: 600px) {
  .row:not(.no-stack):has(> .col-3-4):has(> .col-1-4) > .col-3-4,
  .row:not(.no-stack):has(> .col-3-4):has(> .col-1-4) > .col-1-4,
  .row:not(.no-stack):has(> .col-2-3):has(> .col-1-3) > .col-2-3,
  .row:not(.no-stack):has(> .col-2-3):has(> .col-1-3) > .col-1-3,
  .row:not(.no-stack):has(> .col-3-5):has(> .col-2-5) > .col-3-5,
  .row:not(.no-stack):has(> .col-3-5):has(> .col-2-5) > .col-2-5 {
    flex: 0 0 100%;
  }
}
.row > * > :last-child,
.row > * > :last-child > :last-child {
  margin-bottom: 0;
}
.rte-tight > * + * {
  margin-top: 0.75em;
}
.rte-loose > * + * {
  margin-top: 1.5em;
}
.mb-0  { margin-bottom: var(--space-0); }
.mb-8  { margin-bottom: var(--space-8); }
.mb-12 { margin-bottom: var(--space-12); }
.mb-16 { margin-bottom: var(--space-16); }
.mb-24 { margin-bottom: var(--space-24); }
.mb-40 { margin-bottom: var(--space-40); }
.mb-60 { margin-bottom: var(--space-60); }
.mb-80 { margin-bottom: var(--space-80); }
.mt-0  { margin-top: var(--space-0); }
.mt-8  { margin-top: var(--space-8); }
.mt-12 { margin-top: var(--space-12); }
.mt-16 { margin-top: var(--space-16); }
.mt-24 { margin-top: var(--space-24); }
.mt-40 { margin-top: var(--space-40); }
.mt-60 { margin-top: var(--space-60); }
.mt-80 { margin-top: var(--space-80); }
.my-24 { margin-block: var(--space-24); }
.my-60 { margin-block: var(--space-60); }
.section-space { margin-block: var(--space-section); }
.section-space-top { margin-top: var(--space-section); }
.section-space-bottom { margin-bottom: var(--space-section); }
.center_text {
    text-align: center;
}
.center_element {
    margin-inline: auto;
}
.hor_center {
    justify-content: center;
}
.vert_center {
    align-items: center;
}
.vert_top {
    align-items: flex-start;
}
.vert_bottom {
    align-items: flex-end;
}
.align-left,
.align-left img {
    text-align: left;
    margin-inline: 0 auto;
}
.align-right,
.align-right img {
    text-align: right;
    margin-inline: auto 0;
}
@media (max-width: 768px) {
  :root {
    --row-gap-x: var(--gutter-24);
    --row-gap-y: var(--gutter-24);
  }
}
.mobile_col_reverse {
  flex-direction: row;
}
@media (max-width: 600px) {
  .mobile_col_reverse {
    flex-direction: column-reverse;
  }
}
@media (max-width: 480px) {
  :root {
    --row-gap-x: var(--gutter-16);
    --row-gap-y: var(--gutter-16);
  }
}
@media (max-width: 992px) {
  .row:not(.no-stack):not(:has(> .col-1-2)) > .col-1-4 {
    flex: 0 0 calc(50% - var(--gap-x, 0px) * 0.5);
  }
  .row:not(.no-stack):has(> .col-1-2) > .col-1-4,
  .row:not(.no-stack):has(> .col-1-4) > .col-1-2 { flex: 0 0 100%; }
}
@media (max-width: 600px) {
  .row:not(.no-stack) > .col-1-2,
  .row:not(.no-stack):not(:has(> .col-1-2)) > .col-1-4,
  .row:not(.no-stack) > .col-1-4,
  .row:not(.no-stack) > .col { flex: 0 0 100%; }
}
