/**
 * Convert a font size to a dynamic font size.
 * Fonts that participate in Dynamic Type should use
 * dynamic font sizes.
 * @param size - The initial font size including the unit (i.e. px or pt)
 * @param unit (optional) - The unit to convert to. Use this if you want to
 * convert to a unit other than $baselineUnit.
 */
/**
 * Convert a font size to a dynamic font size but impose
 * a maximum font size.
 * @param size - The initial font size including the unit (i.e. px or pt)
 * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
 * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
 * convert to a unit other than $baselineUnit.
 */
/**
 * Convert a font size to a dynamic font size but impose
 * a minimum font size.
 * @param size - The initial font size including the unit (i.e. px or pt)
 * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
 * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
 * convert to a unit other than $baselineUnit.
 */
/**
 * Convert a font size to a dynamic font size but impose
 * maximum and minimum font sizes.
 * @param size - The initial font size including the unit (i.e. px or pt)
 * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
 * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
 * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
 * convert to a unit other than $baselineUnit.
 */
/**
 * A heuristic that applies CSS to tablet
 * viewports.
 *
 * Usage:
 * @include tablet-viewport() {
 *   :host {
 *     background-color: green;
 *   }
 * }
 */
/**
   * A heuristic that applies CSS to mobile
   * viewports (i.e. phones, not tablets).
   *
   * Usage:
   * @include mobile-viewport() {
   *   :host {
   *     background-color: blue;
   *   }
   * }
   */
/**
 * Convert a font size to a dynamic font size.
 * Fonts that participate in Dynamic Type should use
 * dynamic font sizes.
 * @param size - The initial font size including the unit (i.e. px or pt)
 * @param unit (optional) - The unit to convert to. Use this if you want to
 * convert to a unit other than $baselineUnit.
 */
/**
 * Convert a font size to a dynamic font size but impose
 * a maximum font size.
 * @param size - The initial font size including the unit (i.e. px or pt)
 * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
 * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
 * convert to a unit other than $baselineUnit.
 */
/**
 * Convert a font size to a dynamic font size but impose
 * a minimum font size.
 * @param size - The initial font size including the unit (i.e. px or pt)
 * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
 * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
 * convert to a unit other than $baselineUnit.
 */
/**
 * Convert a font size to a dynamic font size but impose
 * maximum and minimum font sizes.
 * @param size - The initial font size including the unit (i.e. px or pt)
 * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
 * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
 * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
 * convert to a unit other than $baselineUnit.
 */
/**
 * A heuristic that applies CSS to tablet
 * viewports.
 *
 * Usage:
 * @include tablet-viewport() {
 *   :host {
 *     background-color: green;
 *   }
 * }
 */
/**
   * A heuristic that applies CSS to mobile
   * viewports (i.e. phones, not tablets).
   *
   * Usage:
   * @include mobile-viewport() {
   *   :host {
   *     background-color: blue;
   *   }
   * }
   */
/**
 * A heuristic that applies CSS to tablet
 * viewports.
 *
 * Usage:
 * @include tablet-viewport() {
 *   :host {
 *     background-color: green;
 *   }
 * }
 */
/**
   * A heuristic that applies CSS to mobile
   * viewports (i.e. phones, not tablets).
   *
   * Usage:
   * @include mobile-viewport() {
   *   :host {
   *     background-color: blue;
   *   }
   * }
   */
:host {
  /**
   * @prop --cpsl-grid-padding: Padding for the Grid
   * @prop --cpsl-grid-padding-xs: Padding for the Grid on xs screens
   * @prop --cpsl-grid-padding-sm: Padding for the Grid on sm screens
   * @prop --cpsl-grid-padding-md: Padding for the Grid on md screens
   * @prop --cpsl-grid-padding-lg: Padding for the Grid on lg screens
   * @prop --cpsl-grid-padding-xl: Padding for the Grid on xl screens
   *
   * @prop --cpsl-grid-width: Width of the fixed Grid
   * @prop --cpsl-grid-width-xs: Width of the fixed Grid on xs screens
   * @prop --cpsl-grid-width-sm: Width of the fixed Grid on sm screens
   * @prop --cpsl-grid-width-md: Width of the fixed Grid on md screens
   * @prop --cpsl-grid-width-lg: Width of the fixed Grid on lg screens
   * @prop --cpsl-grid-width-xl: Width of the fixed Grid on xl screens
   */
  -webkit-padding-start: var(--cpsl-grid-padding-xs, var(--cpsl-grid-padding, 0px));
  padding-inline-start: var(--cpsl-grid-padding-xs, var(--cpsl-grid-padding, 0px));
  -webkit-padding-end: var(--cpsl-grid-padding-xs, var(--cpsl-grid-padding, 0px));
  padding-inline-end: var(--cpsl-grid-padding-xs, var(--cpsl-grid-padding, 0px));
  padding-top: var(--cpsl-grid-padding-xs, var(--cpsl-grid-padding, 0px));
  padding-bottom: var(--cpsl-grid-padding-xs, var(--cpsl-grid-padding, 0px));
  -webkit-margin-start: auto;
  margin-inline-start: auto;
  -webkit-margin-end: auto;
  margin-inline-end: auto;
  display: block;
  flex: 1;
}
@media (min-width: 576px) {
  :host {
    -webkit-padding-start: var(--cpsl-grid-padding-sm, var(--cpsl-grid-padding, 0px));
    padding-inline-start: var(--cpsl-grid-padding-sm, var(--cpsl-grid-padding, 0px));
    -webkit-padding-end: var(--cpsl-grid-padding-sm, var(--cpsl-grid-padding, 0px));
    padding-inline-end: var(--cpsl-grid-padding-sm, var(--cpsl-grid-padding, 0px));
    padding-top: var(--cpsl-grid-padding-sm, var(--cpsl-grid-padding, 0px));
    padding-bottom: var(--cpsl-grid-padding-sm, var(--cpsl-grid-padding, 0px));
  }
}
@media (min-width: 768px) {
  :host {
    -webkit-padding-start: var(--cpsl-grid-padding-md, var(--cpsl-grid-padding, 0px));
    padding-inline-start: var(--cpsl-grid-padding-md, var(--cpsl-grid-padding, 0px));
    -webkit-padding-end: var(--cpsl-grid-padding-md, var(--cpsl-grid-padding, 0px));
    padding-inline-end: var(--cpsl-grid-padding-md, var(--cpsl-grid-padding, 0px));
    padding-top: var(--cpsl-grid-padding-md, var(--cpsl-grid-padding, 0px));
    padding-bottom: var(--cpsl-grid-padding-md, var(--cpsl-grid-padding, 0px));
  }
}
@media (min-width: 992px) {
  :host {
    -webkit-padding-start: var(--cpsl-grid-padding-lg, var(--cpsl-grid-padding, 0px));
    padding-inline-start: var(--cpsl-grid-padding-lg, var(--cpsl-grid-padding, 0px));
    -webkit-padding-end: var(--cpsl-grid-padding-lg, var(--cpsl-grid-padding, 0px));
    padding-inline-end: var(--cpsl-grid-padding-lg, var(--cpsl-grid-padding, 0px));
    padding-top: var(--cpsl-grid-padding-lg, var(--cpsl-grid-padding, 0px));
    padding-bottom: var(--cpsl-grid-padding-lg, var(--cpsl-grid-padding, 0px));
  }
}
@media (min-width: 1200px) {
  :host {
    -webkit-padding-start: var(--cpsl-grid-padding-xl, var(--cpsl-grid-padding, 0px));
    padding-inline-start: var(--cpsl-grid-padding-xl, var(--cpsl-grid-padding, 0px));
    -webkit-padding-end: var(--cpsl-grid-padding-xl, var(--cpsl-grid-padding, 0px));
    padding-inline-end: var(--cpsl-grid-padding-xl, var(--cpsl-grid-padding, 0px));
    padding-top: var(--cpsl-grid-padding-xl, var(--cpsl-grid-padding, 0px));
    padding-bottom: var(--cpsl-grid-padding-xl, var(--cpsl-grid-padding, 0px));
  }
}

:host(.grid-fixed) {
  width: var(--cpsl-grid-width-xs, var(--cpsl-grid-width, 100%));
  max-width: 100%;
}
@media (min-width: 576px) {
  :host(.grid-fixed) {
    width: var(--cpsl-grid-width-sm, var(--cpsl-grid-width, 540px));
  }
}
@media (min-width: 768px) {
  :host(.grid-fixed) {
    width: var(--cpsl-grid-width-md, var(--cpsl-grid-width, 720px));
  }
}
@media (min-width: 992px) {
  :host(.grid-fixed) {
    width: var(--cpsl-grid-width-lg, var(--cpsl-grid-width, 960px));
  }
}
@media (min-width: 1200px) {
  :host(.grid-fixed) {
    width: var(--cpsl-grid-width-xl, var(--cpsl-grid-width, 1140px));
  }
}

:host(.cpsl-no-padding) {
  --cpsl-grid-column-padding: 0;
  --cpsl-grid-column-padding-xs: 0;
  --cpsl-grid-column-padding-sm: 0;
  --cpsl-grid-column-padding-md: 0;
  --cpsl-grid-column-padding-lg: 0;
  --cpsl-grid-column-padding-xl: 0;
}