/* ========================================
   RESET
======================================== */

*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

body {
  margin: 0;
  font-family: Arial, sans-serif;
  line-height: 1.5;
}

h1,
h2,
h3,
h4,
h5,
h6,
p {
  margin: 0;
}

ul,
ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

button,
input,
textarea,
select {
  font: inherit;
}

/* img {
  display: block;
  max-width: 100%;
  height: auto;
} */

a {
  color: inherit;
  text-decoration: none;
}

/* ========================================
   CONTAINER
======================================== */

.container-fluid {
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 12px;
  padding-left: 12px;
}

.container {
  width: 100%;
  margin-inline: auto;
  padding-inline: 12px;
}

@media (min-width: 576px) {
  .container {
    max-width: 540px;
  }
}

@media (min-width: 768px) {
  .container {
    max-width: 720px;
  }
}

@media (min-width: 992px) {
  .container {
    max-width: 960px;
  }
}

@media (min-width: 1200px) {
  .container {
    max-width: 1140px;
  }
}

@media (min-width: 1400px) {
  .container {
    max-width: 1480px;
  }
}

/* ========================================
   ROW
======================================== */

.row {
  display: flex;
  flex-wrap: wrap;
  margin-left: -12px;
  margin-right: -12px;
  row-gap: 16px;
}

/* ========================================
   COLUMNS
======================================== */

[class*="col-"] {
  box-sizing: border-box;
  padding-left: 12px;
  padding-right: 12px;
}

.col-1 {
  width: 8.333333%;
}

.col-2 {
  width: 16.666667%;
}

.col-3 {
  width: 25%;
}

.col-4 {
  width: 33.333333%;
}

.col-5 {
  width: 41.666667%;
}

.col-6 {
  width: 50%;
}

.col-7 {
  width: 58.333333%;
}

.col-8 {
  width: 66.666667%;
}

.col-9 {
  width: 75%;
}

.col-10 {
  width: 83.333333%;
}

.col-11 {
  width: 91.666667%;
}

.col-12 {
  width: 100%;
}

/* ========================================
   SM
======================================== */

@media (min-width: 576px) {
  .col-sm-1 {
    width: 8.333333%;
  }
  .col-sm-2 {
    width: 16.666667%;
  }
  .col-sm-3 {
    width: 25%;
  }
  .col-sm-4 {
    width: 33.333333%;
  }
  .col-sm-5 {
    width: 41.666667%;
  }
  .col-sm-6 {
    width: 50%;
  }
  .col-sm-7 {
    width: 58.333333%;
  }
  .col-sm-8 {
    width: 66.666667%;
  }
  .col-sm-9 {
    width: 75%;
  }
  .col-sm-10 {
    width: 83.333333%;
  }
  .col-sm-11 {
    width: 91.666667%;
  }
  .col-sm-12 {
    width: 100%;
  }
}

/* ========================================
   MD
======================================== */

@media (min-width: 768px) {
  .col-md-1 {
    width: 8.333333%;
  }
  .col-md-2 {
    width: 16.666667%;
  }
  .col-md-3 {
    width: 25%;
  }
  .col-md-4 {
    width: 33.333333%;
  }
  .col-md-5 {
    width: 41.666667%;
  }
  .col-md-6 {
    width: 50%;
  }
  .col-md-7 {
    width: 58.333333%;
  }
  .col-md-8 {
    width: 66.666667%;
  }
  .col-md-9 {
    width: 75%;
  }
  .col-md-10 {
    width: 83.333333%;
  }
  .col-md-11 {
    width: 91.666667%;
  }
  .col-md-12 {
    width: 100%;
  }
}

/* ========================================
   LG
======================================== */

@media (min-width: 992px) {
  .col-lg-1 {
    width: 8.333333%;
  }
  .col-lg-2 {
    width: 16.666667%;
  }
  .col-lg-3 {
    width: 25%;
  }
  .col-lg-4 {
    width: 33.333333%;
  }
  .col-lg-5 {
    width: 41.666667%;
  }
  .col-lg-6 {
    width: 50%;
  }
  .col-lg-7 {
    width: 58.333333%;
  }
  .col-lg-8 {
    width: 66.666667%;
  }
  .col-lg-9 {
    width: 75%;
  }
  .col-lg-10 {
    width: 83.333333%;
  }
  .col-lg-11 {
    width: 91.666667%;
  }
  .col-lg-12 {
    width: 100%;
  }
}

/* ========================================
   XL
======================================== */

@media (min-width: 1200px) {
  .col-xl-1 {
    width: 8.333333%;
  }
  .col-xl-2 {
    width: 16.666667%;
  }
  .col-xl-3 {
    width: 25%;
  }
  .col-xl-4 {
    width: 33.333333%;
  }
  .col-xl-5 {
    width: 41.666667%;
  }
  .col-xl-6 {
    width: 50%;
  }
  .col-xl-7 {
    width: 58.333333%;
  }
  .col-xl-8 {
    width: 66.666667%;
  }
  .col-xl-9 {
    width: 75%;
  }
  .col-xl-10 {
    width: 83.333333%;
  }
  .col-xl-11 {
    width: 91.666667%;
  }
  .col-xl-12 {
    width: 100%;
  }
}

/* ========================================
   DISPLAY
======================================== */

.d-none {
  display: none;
}

.d-block {
  display: block;
}

.d-flex {
  display: flex;
}

/* ========================================
   RESPONSIVE DISPLAY
======================================== */

@media (min-width: 576px) {
  .d-sm-none {
    display: none;
  }

  .d-sm-block {
    display: block;
  }

  .d-sm-flex {
    display: flex;
  }
}

@media (min-width: 768px) {
  .d-md-none {
    display: none;
  }

  .d-md-block {
    display: block;
  }

  .d-md-flex {
    display: flex;
  }
}

@media (min-width: 992px) {
  .d-lg-none {
    display: none;
  }

  .d-lg-block {
    display: block;
  }

  .d-lg-flex {
    display: flex;
  }
}

@media (min-width: 1200px) {
  .d-xl-none {
    display: none;
  }

  .d-xl-block {
    display: block;
  }

  .d-xl-flex {
    display: flex;
  }
}

/* ========================================
   FLEX DIRECTION
======================================== */

.flex-row {
  flex-direction: row;
}

.flex-column {
  flex-direction: column;
}

/* ========================================
   FLEX WRAP
======================================== */

.flex-wrap {
  flex-wrap: wrap;
}

.flex-nowrap {
  flex-wrap: nowrap;
}

/* ========================================
   JUSTIFY CONTENT
======================================== */

.justify-content-start {
  justify-content: flex-start;
}

.justify-content-center {
  justify-content: center;
}

.justify-content-end {
  justify-content: flex-end;
}

.justify-content-between {
  justify-content: space-between;
}

.justify-content-around {
  justify-content: space-around;
}

.justify-content-evenly {
  justify-content: space-evenly;
}

/* ========================================
   ALIGN ITEMS
======================================== */

.align-items-start {
  align-items: flex-start;
}

.align-items-center {
  align-items: center;
}

.align-items-end {
  align-items: flex-end;
}

.align-items-stretch {
  align-items: stretch;
}

.align-self-start {
  align-self: flex-start;
}

.align-self-center {
  align-self: center;
}

.align-self-end {
  align-self: flex-end;
}

/* ========================================
   GAP
======================================== */

.gap-1 {
  gap: 4px;
}

.gap-2 {
  gap: 8px;
}

.gap-3 {
  gap: 16px;
}

.gap-4 {
  gap: 24px;
}

.gap-5 {
  gap: 32px;
}

/* ========================================
   MARGIN
======================================== */

.m-0 {
  margin: 0;
}
.m-1 {
  margin: 4px;
}
.m-2 {
  margin: 8px;
}
.m-3 {
  margin: 16px;
}
.m-4 {
  margin: 24px;
}
.m-5 {
  margin: 32px;
}

.mt-0 {
  margin-top: 0;
}
.mt-1 {
  margin-top: 4px;
}
.mt-2 {
  margin-top: 8px;
}
.mt-3 {
  margin-top: 16px;
}
.mt-4 {
  margin-top: 24px;
}
.mt-5 {
  margin-top: 32px;
}

.mb-0 {
  margin-bottom: 0;
}
.mb-1 {
  margin-bottom: 4px;
}
.mb-2 {
  margin-bottom: 8px;
}
.mb-3 {
  margin-bottom: 16px;
}
.mb-4 {
  margin-bottom: 24px;
}
.mb-5 {
  margin-bottom: 32px;
}

.ms-0 {
  margin-left: 0;
}
.ms-1 {
  margin-left: 4px;
}
.ms-2 {
  margin-left: 8px;
}
.ms-3 {
  margin-left: 16px;
}
.ms-4 {
  margin-left: 24px;
}
.ms-5 {
  margin-left: 32px;
}

.me-0 {
  margin-right: 0;
}
.me-1 {
  margin-right: 4px;
}
.me-2 {
  margin-right: 8px;
}
.me-3 {
  margin-right: 16px;
}
.me-4 {
  margin-right: 24px;
}
.me-5 {
  margin-right: 32px;
}

.mx-0 {
  margin-left: 0;
  margin-right: 0;
}
.mx-1 {
  margin-left: 4px;
  margin-right: 4px;
}
.mx-2 {
  margin-left: 8px;
  margin-right: 8px;
}
.mx-3 {
  margin-left: 16px;
  margin-right: 16px;
}
.mx-4 {
  margin-left: 24px;
  margin-right: 24px;
}
.mx-5 {
  margin-left: 32px;
  margin-right: 32px;
}

.my-0 {
  margin-top: 0;
  margin-bottom: 0;
}
.my-1 {
  margin-top: 4px;
  margin-bottom: 4px;
}
.my-2 {
  margin-top: 8px;
  margin-bottom: 8px;
}
.my-3 {
  margin-top: 16px;
  margin-bottom: 16px;
}
.my-4 {
  margin-top: 24px;
  margin-bottom: 24px;
}
.my-5 {
  margin-top: 32px;
  margin-bottom: 32px;
}

/* ========================================
   PADDING
======================================== */

.p-0 {
  padding: 0;
}
.p-1 {
  padding: 4px;
}
.p-2 {
  padding: 8px;
}
.p-3 {
  padding: 16px;
}
.p-4 {
  padding: 24px;
}
.p-5 {
  padding: 32px;
}

.pt-0 {
  padding-top: 0;
}
.pt-1 {
  padding-top: 4px;
}
.pt-2 {
  padding-top: 8px;
}
.pt-3 {
  padding-top: 16px;
}
.pt-4 {
  padding-top: 24px;
}
.pt-5 {
  padding-top: 32px;
}

.pb-0 {
  padding-bottom: 0;
}
.pb-1 {
  padding-bottom: 4px;
}
.pb-2 {
  padding-bottom: 8px;
}
.pb-3 {
  padding-bottom: 16px;
}
.pb-4 {
  padding-bottom: 24px;
}
.pb-5 {
  padding-bottom: 32px;
}

.ps-0 {
  padding-left: 0;
}
.ps-1 {
  padding-left: 4px;
}
.ps-2 {
  padding-left: 8px;
}
.ps-3 {
  padding-left: 16px;
}
.ps-4 {
  padding-left: 24px;
}
.ps-5 {
  padding-left: 32px;
}

.pe-0 {
  padding-right: 0;
}
.pe-1 {
  padding-right: 4px;
}
.pe-2 {
  padding-right: 8px;
}
.pe-3 {
  padding-right: 16px;
}
.pe-4 {
  padding-right: 24px;
}
.pe-5 {
  padding-right: 32px;
}

.px-0 {
  padding-left: 0;
  padding-right: 0;
}
.px-1 {
  padding-left: 4px;
  padding-right: 4px;
}
.px-2 {
  padding-left: 8px;
  padding-right: 8px;
}
.px-3 {
  padding-left: 16px;
  padding-right: 16px;
}
.px-4 {
  padding-left: 24px;
  padding-right: 24px;
}
.px-5 {
  padding-left: 32px;
  padding-right: 32px;
}

.py-0 {
  padding-top: 0;
  padding-bottom: 0;
}
.py-1 {
  padding-top: 4px;
  padding-bottom: 4px;
}
.py-2 {
  padding-top: 8px;
  padding-bottom: 8px;
}
.py-3 {
  padding-top: 16px;
  padding-bottom: 16px;
}
.py-4 {
  padding-top: 24px;
  padding-bottom: 24px;
}
.py-5 {
  padding-top: 32px;
  padding-bottom: 32px;
}

/* ========================================
   ALIGNMENT
======================================== */

.text-center {
  text-align: center;
}

.text-start {
  text-align: left;
}

.mx-auto {
  margin-left: auto;
  margin-right: auto;
}

/* ========================================
   SIZE
======================================== */

.w-25 {
  width: 25%;
}

.w-50 {
  width: 50%;
}

.w-75 {
  width: 75%;
}

.w-100 {
  width: 100%;
}

.h-25 {
  height: 25%;
}

.h-50 {
  height: 50%;
}

.h-75 {
  height: 75%;
}

.h-100 {
  height: 100%;
}

.w-100vw {
  width: 100vw;
}

.h-100vh {
  height: 100vh;
}

/* ========================================
   OVERFLOW
======================================== */

.overflow-hidden {
  overflow: hidden;
}

.overflow-auto {
  overflow: auto;
}
