:root {
  --container-max-width: 100%;
  --container-narrow: 800px;
  --container-content: 1080px;
  --container-wide: 1440px;
  --container-padding-mobile: 16px;
  --container-padding-sm: 24px;
  --container-padding-md: 32px;
  --container-padding-lg: 48px;
  --container-padding-xl: 80px;
  --container-padding-2xl: 180px;
  --container-padding: var(--container-padding-mobile);
  --section-padding-mobile: 48px;
  --section-padding-tablet: 80px;
  --section-padding-desktop: 100px;
}

.container {
  width: 100%;
  max-width: var(--container-max-width);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--container-padding-mobile);
  padding-right: var(--container-padding-mobile);
  box-sizing: border-box;
}

.container--narrow {
  max-width: var(--container-narrow);
}

.container--content {
  max-width: var(--container-content);
}

.container--wide {
  max-width: var(--container-wide);
}

.container--full {
  max-width: 100%;
  padding-left: 0;
  padding-right: 0;
}

.block-container {
  width: 100%;
  max-width: 100%;
  margin: 0 auto;
  padding-left: var(--container-padding-mobile);
  padding-right: var(--container-padding-mobile);
  box-sizing: border-box;
}
@media (min-width: 576px) {
  .container,
  .block-container {
    padding-left: var(--container-padding-sm);
    padding-right: var(--container-padding-sm);
  }
}
@media (min-width: 768px) {
  .container,
  .block-container {
    padding-left: var(--container-padding-md);
    padding-right: var(--container-padding-md);
  }
}
@media (min-width: 1024px) {
  .container,
  .block-container {
    padding-left: var(--container-padding-lg);
    padding-right: var(--container-padding-lg);
  }
}
@media (min-width: 1280px) {
  .container,
  .block-container {
    padding-left: var(--container-padding-xl);
    padding-right: var(--container-padding-xl);
  }
}
@media (min-width: 1440px) {
  .container,
  .block-container {
    padding-left: var(--container-padding-2xl);
    padding-right: var(--container-padding-2xl);
  }
}

.section {
  padding-top: var(--section-padding-mobile);
  padding-bottom: var(--section-padding-mobile);
}

.section--sm {
  padding-top: calc(var(--section-padding-mobile) * 0.5);
  padding-bottom: calc(var(--section-padding-mobile) * 0.5);
}

.section--lg {
  padding-top: calc(var(--section-padding-mobile) * 1.5);
  padding-bottom: calc(var(--section-padding-mobile) * 1.5);
}

.section--none {
  padding-top: 0;
  padding-bottom: 0;
}

@media (min-width: 768px) {
  .section {
    padding-top: var(--section-padding-tablet);
    padding-bottom: var(--section-padding-tablet);
  }

  .section--sm {
    padding-top: calc(var(--section-padding-tablet) * 0.5);
    padding-bottom: calc(var(--section-padding-tablet) * 0.5);
  }

  .section--lg {
    padding-top: calc(var(--section-padding-tablet) * 1.5);
    padding-bottom: calc(var(--section-padding-tablet) * 1.5);
  }
}

@media (min-width: 1024px) {
  .section {
    padding-top: var(--section-padding-desktop);
    padding-bottom: var(--section-padding-desktop);
  }

  .section--sm {
    padding-top: calc(var(--section-padding-desktop) * 0.5);
    padding-bottom: calc(var(--section-padding-desktop) * 0.5);
  }

  .section--lg {
    padding-top: calc(var(--section-padding-desktop) * 1.5);
    padding-bottom: calc(var(--section-padding-desktop) * 1.5);
  }
}

.row {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
}

.row--center {
  align-items: center;
}

.row--between {
  justify-content: space-between;
}

.col {
  flex: 1;
  min-width: 0;
}

.col--auto {
  flex: 0 0 auto;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  overflow-x: hidden;
}

body {
  overflow-x: hidden;
  max-width: 100vw;
}
