/* Display */
.d-none {
  display: none !important;
}

.d-inline {
  display: inline !important;
}

.d-inline-block {
  display: inline-block !important;
}

.d-block {
  display: block !important;
}

.d-table {
  display: table !important;
}

.d-table-row {
  display: table-row !important;
}

.d-table-cell {
  display: table-cell !important;
}

.d-grid {
  display: grid !important;
}

.d-inline-grid {
  display: inline-grid !important;
}

@media (max-width: 992px) {
  .d-md-none {
    display: none !important;
  }

  .d-md-block {
    display: block !important;
  }
}

@media (max-width: 768px) {
  .d-sm-none {
    display: none !important;
  }

  .d-sm-inline {
    display: inline !important;
  }

  .d-sm-inline-block {
    display: inline-block !important;
  }

  .d-sm-block {
    display: block !important;
  }

  .d-sm-table {
    display: table !important;
  }

  .d-sm-table-row {
    display: table-row !important;
  }

  .d-sm-table-cell {
    display: table-cell !important;
  }

  .d-sm-grid {
    display: grid !important;
  }

  .d-sm-inline-grid {
    display: inline-grid !important;
  }
}

/* Grid */
.col-wide {
  grid-column: 1 / -1;
}

.col-2 {
  grid-template-columns: repeat(2, 1fr);
}

.col-3 {
  grid-template-columns: repeat(3, 1fr);
}

.col-4 {
  grid-template-columns: repeat(4, 1fr);
}

.col-5 {
  grid-template-columns: repeat(5, 1fr);
}

@media (max-width: 1024px) {
  .col-md-1 {
    grid-template-columns: 1fr !important;
  }

  .col-md-2 {
    grid-template-columns: repeat(2, 1fr) !important;
  }

  .col-md-3 {
    grid-template-columns: repeat(3, 1fr) !important;
  }

  .col-md-4 {
    grid-template-columns: repeat(4, 1fr) !important;
  }

  .gutter-md-20 {
    grid-gap: 20px;
  }
}

@media (max-width: 768px) {
  .col-sm-1 {
    grid-template-columns: 1fr !important;
  }

  .col-sm-2 {
    grid-template-columns: repeat(2, 1fr) !important;
  }

  .col-sm-3 {
    grid-template-columns: repeat(3, 1fr) !important;
  }

  .col-sm-4 {
    grid-template-columns: repeat(4, 1fr) !important;
  }

  .guttery-sm-20 {
    grid-gap: 20px 0;
  }
}

/* Order */
.order-sm-1,
.order-sm-2,
.order-sm-3,
.order-sm-4,
.order-sm-5,
.order-sm-6 {
  order: inherit;
}

@media (max-width: 768px) {
  .order-sm-1 {
    order: 1;
  }

  .order-sm-2 {
    order: 2;
  }

  .order-sm-3 {
    order: 3;
  }

  .order-sm-4 {
    order: 4;
  }

  .order-sm-5 {
    order: 5;
  }

  .order-sm-6 {
    order: 6;
  }
}

/* Justify & align */
.justify-content-start {
  justify-content: start !important;
}

.justify-content-end {
  justify-content: end !important;
}

.justify-content-center {
  justify-content: center !important;
}

.justify-content-stretch {
  justify-content: stretch !important;
}

.justify-content-between {
  justify-content: space-between !important;
}

.justify-content-around {
  justify-content: space-around !important;
}

.justify-content-evenly {
  justify-content: space-evenly !important;
}

.justify-items-start {
  justify-items: start !important;
}

.justify-items-end {
  justify-items: end !important;
}

.justify-items-center {
  justify-items: center !important;
}

.justify-items-stretch {
  justify-items: stretch !important;
}

.justify-self-start {
  justify-self: start !important;
}

.justify-self-end {
  justify-self: end !important;
}

.justify-self-center {
  justify-self: center !important;
}

.justify-self-stretch {
  justify-self: stretch !important;
}

.align-content-start {
  align-content: start !important;
}

.align-content-end {
  align-content: end !important;
}

.align-content-center {
  align-content: center !important;
}

.align-content-stretch {
  align-content: stretch !important;
}

.align-content-between {
  align-content: space-between !important;
}

.align-content-around {
  align-content: space-around !important;
}

.align-content-evenly {
  align-content: space-evenly !important;
}

.align-items-start {
  align-items: start !important;
}

.align-items-end {
  align-items: end !important;
}

.align-items-center {
  align-items: center !important;
}

.align-items-stretch {
  align-items: stretch !important;
}

.align-self-start {
  align-self: start !important;
}

.align-self-end {
  align-self: end !important;
}

.align-self-center {
  align-self: center !important;
}

.align-self-stretch {
  align-self: stretch !important;
}

/* Padding */
.p-0 {
  padding: 0 !important;
}

.pt-0,
.py-0 {
  padding-top: 0 !important;
}

.pr-0,
.px-0 {
  padding-right: 0 !important;
}

.pb-0,
.py-0 {
  padding-bottom: 0 !important;
}

.pl-0,
.px-0 {
  padding-left: 0 !important;
}

.p-15 {
  padding: 15px !important;
}

.pt-15,
.py-15 {
  padding-top: 15px !important;
}

.pr-15,
.px-15 {
  padding-right: 15px !important;
}

.pb-15,
.py-15 {
  padding-bottom: 15px !important;
}

.pl-15,
.px-15 {
  padding-left: 15px !important;
}

.p-20 {
  padding: 20px !important;
}

.pt-20,
.py-20 {
  padding-top: 20px !important;
}

.pr-20,
.px-20 {
  padding-right: 20px !important;
}

.pb-20,
.py-20 {
  padding-bottom: 20px !important;
}

.pl-20,
.px-20 {
  padding-left: 20px !important;
}

.p-40 {
  padding: 40px !important;
}

.pt-40,
.py-40 {
  padding-top: 40px !important;
}

.pr-40,
.px-40 {
  padding-right: 40px !important;
}

.pb-40,
.py-40 {
  padding-bottom: 40px !important;
}

.pl-40,
.px-40 {
  padding-left: 40px !important;
}
.p-60 {
  padding: 60px !important;
}

.pt-60,
.py-60 {
  padding-top: 60px !important;
}

.pr-60,
.px-60 {
  padding-right: 60px !important;
}

.pb-60,
.py-60 {
  padding-bottom: 60px !important;
}

.pl-60,
.px-60 {
  padding-left: 60px !important;
}

.p-80 {
  padding: 80px !important;
}

.pt-80,
.py-80 {
  padding-top: 80px !important;
}

.pr-80,
.px-80 {
  padding-right: 80px !important;
}

.pb-80,
.py-80 {
  padding-bottom: 80px !important;
}

.pl-80,
.px-80 {
  padding-left: 80px !important;
}

.p-100 {
  padding: 100px !important;
}

.pt-100,
.py-100 {
  padding-top: 100px !important;
}

.pr-100,
.px-100 {
  padding-right: 100px !important;
}

.pb-100,
.py-100 {
  padding-bottom: 100px !important;
}

.pl-100,
.px-100 {
  padding-left: 100px !important;
}

@media (max-width: 992px) {
  .p-md-0 {
    padding: 0px !important;
  }

  .pt-md-0,
  .py-md-0 {
    padding-top: 0px !important;
  }

  .pr-md-0,
  .px-md-0 {
    padding-right: 0px !important;
  }

  .pb-md-0,
  .py-md-0 {
    padding-bottom: 0px !important;
  }

  .pl-md-0,
  .px-md-0 {
    padding-left: 0px !important;
  }
}

@media (max-width: 768px) {
  .p-sm-15 {
    padding: 15px !important;
  }

  .pt-sm-15,
  .py-sm-15 {
    padding-top: 15px !important;
  }

  .pr-sm-15,
  .px-sm-15 {
    padding-right: 15px !important;
  }

  .pb-sm-15,
  .py-sm-15 {
    padding-bottom: 15px !important;
  }

  .pl-sm-15,
  .px-sm-15 {
    padding-left: 15px !important;
  }

  .p-sm-50 {
    padding: 50px !important;
  }

  .pt-sm-50,
  .py-sm-50 {
    padding-top: 50px !important;
  }

  .pr-sm-50,
  .px-sm-50 {
    padding-right: 50px !important;
  }

  .pb-sm-50,
  .py-sm-50 {
    padding-bottom: 50px !important;
  }

  .pl-sm-50,
  .px-sm-50 {
    padding-left: 50px !important;
  }
}

/* Margin */
.m-0 {
  margin: 0 !important;
}

.mt-0,
.my-0 {
  margin-top: 0 !important;
}

.mr-0,
.mx-0 {
  margin-right: 0 !important;
}

.mb-0,
.my-0 {
  margin-bottom: 0 !important;
}

.ml-0,
.mx-0 {
  margin-left: 0 !important;
}

.m-auto {
  margin: auto !important;
}

.mt-auto,
.my-auto {
  margin-top: auto !important;
}

.mr-auto,
.mx-auto {
  margin-right: auto !important;
}

.mb-auto,
.my-auto {
  margin-bottom: auto !important;
}

.ml-auto,
.mx-auto {
  margin-left: auto !important;
}

/* Position */
.position-static {
  position: static !important;
}

.position-relative {
  position: relative !important;
}

.position-absolute {
  position: absolute !important;
}

.position-fixed {
  position: fixed !important;
}

.position-fixed-top {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  z-index: 1030;
}

.position-fixed-bottom {
  position: fixed;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1030;
}

/* Text */
.text-left {
  text-align: left !important;
}

.text-right {
  text-align: right !important;
}

.text-center {
  text-align: center !important;
}

.tt-up {
  text-transform: uppercase !important;
}

.tt-cap {
  text-transform: capitalize !important;
}

@media (max-width: 768px) {
  .text-sm-left {
    text-align: left !important;
  }

  .text-sm-right {
    text-align: right !important;
  }

  .text-sm-center {
    text-align: center !important;
  }
}

/* Background */
.bg-position-center {
  background-position: 50% 50% !important;
}

.bg-size-cover {
  background-size: cover !important;
}

.bg-attachment-fixed {
  background-attachment: fixed !important;
}

.bg-attachment-scroll {
  background-attachment: scroll !important;
}

@media (max-width: 768px) {
  .bg-sm-attachment-scroll {
    background-attachment: scroll !important;
  }
}

/* Sizing */
.w-100 {
  width: 100% !important;
}

.mw-100 {
  max-width: 100% !important;
}

.h-100 {
  height: 100% !important;
}

.mh-100 {
  max-height: 100% !important;
}

/* Remove if not needed
.fz-13 {
  font-size: 13px !important;
}

.fz-15 {
  font-size: 15px !important;
}*/