/**
 * @file
 * Grid system.
 */

@import "../base/media-queries.pcss.css";

.grid-full {
  display: grid;
  grid-template-rows: 1fr;
  grid-template-columns: repeat(var(--grid-col-count), minmax(0, 1fr));
  grid-column-gap: var(--grid-gap);

  /* .grid-full classes nested 3 or more deep go full width. */
  & .grid-full .grid-full {
    display: block;
  }
}

/*
  If the .grid-full is nested within the following, apply the appropriate number of columns.
    - .layout--content-narrow class.
    - Element that's inheriting the layout--content-narrow styles from its parent region.
*/
.layout--content-narrow .grid-full,
.layout--pass--content-narrow > * .grid-full {
  @media (--grid-md) {
    grid-template-columns: repeat(calc(var(--grid-col-count) - 2), minmax(0, 1fr));
  }

  @media (--lg) {
    grid-template-columns: repeat(calc(var(--grid-col-count) - 6), minmax(0, 1fr));
  }
}

/*
  If the .grid-full is nested within the following, apply the appropriate number of columns.
    - .layout--content-medium class.
    - Element that's inheriting the layout--content-medium styles from its parent region.
*/
.layout--content-medium .grid-full,
.layout--pass--content-medium > * .grid-full {
  @media (--grid-md) {
    grid-template-columns: repeat(calc(var(--grid-col-count) - 2), minmax(0, 1fr));
  }

  @media (--lg) {
    grid-template-columns: repeat(calc(var(--grid-col-count) - 4), minmax(0, 1fr));
  }
}
