/* ==== Flex Utilities ==== */
.hstack {
  display: flex;
  flex-direction: row;
  align-items: center;
  align-self: stretch;
}

.vstack {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  align-self: stretch;
}

.vstack>a {
  align-self: start;
}

a.hstack,
.btn.hstack {
  display: inline-flex;
}

@media (min-width: 768px) {
  .hstack-md {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    align-self: stretch !important;
  }

  .hstack-md.align-items-md-start {
    align-items: start !important;
  }

  .h-md-100 {
    height: 100% !important;
  }

  .w-md-auto {
    width: auto !important;
  }

  .w-lg-56 {
    width: 56px !important;
  }
}

@media (min-width: 992px) {
  .h-lg-100 {
    height: 100% !important;
  }

  .w-lg-auto {
    width: auto !important;
  }
}

@media (min-width:1200px) {
  .max-w-xl-600 {
    max-width: 600px !important;
  }
}

/* ==== Gap Utilities ==== */
.gap-4px {
  gap: 4px;
}

.gap-5px {
  gap: 5px;
}

.gap-8 {
  gap: 8px;
}

.gap-10 {
  gap: 10px;
}

.gap-12 {
  gap: 12px;
}

.gap-15 {
  gap: 15px;
}

.gap-16 {
  gap: 16px;
}

.gap-20 {
  gap: 20px;
}

.gap-24 {
  gap: 24px;
}

.gap-25 {
  gap: 25px;
}

.gap-28 {
  gap: 28px;
}

.gap-30 {
  gap: 30px;
}

.gap-32 {
  gap: 32px;
}

.gap-36 {
  gap: 36px;
}

.gap-40 {
  gap: 40px;
}

.gap-44 {
  gap: 44px;
}

.gap-48 {
  gap: 48px;
}

.gap-50 {
  gap: 50px;
}

.gap-52 {
  gap: 52px;
}

.gap-56 {
  gap: 56px;
}

.gap-60 {
  gap: 60px;
}

.gap-64 {
  gap: 64px;
}

/* Responsive Gap Utilities - SM */
@media (min-width: 576px) {
  .gap-sm-4px {
    gap: 4px;
  }

  .gap-sm-5px {
    gap: 5px;
  }

  .gap-sm-8 {
    gap: 8px;
  }

  .gap-sm-10 {
    gap: 10px;
  }

  .gap-sm-12 {
    gap: 12px;
  }

  .gap-sm-15 {
    gap: 15px;
  }

  .gap-sm-16 {
    gap: 16px;
  }

  .gap-sm-20 {
    gap: 20px;
  }

  .gap-sm-24 {
    gap: 24px;
  }

  .gap-sm-25 {
    gap: 25px;
  }

  .gap-sm-28 {
    gap: 28px;
  }

  .gap-sm-30 {
    gap: 30px;
  }

  .gap-sm-32 {
    gap: 32px;
  }

  .gap-sm-36 {
    gap: 36px;
  }

  .gap-sm-40 {
    gap: 40px;
  }

  .gap-sm-44 {
    gap: 44px;
  }

  .gap-sm-48 {
    gap: 48px;
  }

  .gap-sm-50 {
    gap: 50px;
  }

  .gap-sm-52 {
    gap: 52px;
  }

  .gap-sm-56 {
    gap: 56px;
  }

  .gap-sm-60 {
    gap: 60px;
  }

  .gap-sm-64 {
    gap: 64px;
  }
}

/* Responsive Gap Utilities - MD */
@media (min-width: 768px) {
  .gap-md-4px {
    gap: 4px;
  }

  .gap-md-5px {
    gap: 5px;
  }

  .gap-md-8 {
    gap: 8px;
  }

  .gap-md-10 {
    gap: 10px;
  }

  .gap-md-12 {
    gap: 12px;
  }

  .gap-md-15 {
    gap: 15px;
  }

  .gap-md-16 {
    gap: 16px;
  }

  .gap-md-20 {
    gap: 20px;
  }

  .gap-md-24 {
    gap: 24px;
  }

  .gap-md-25 {
    gap: 25px;
  }

  .gap-md-28 {
    gap: 28px;
  }

  .gap-md-30 {
    gap: 30px;
  }

  .gap-md-32 {
    gap: 32px;
  }

  .gap-md-36 {
    gap: 36px;
  }

  .gap-md-40 {
    gap: 40px;
  }

  .gap-md-44 {
    gap: 44px;
  }

  .gap-md-48 {
    gap: 48px;
  }

  .gap-md-50 {
    gap: 50px;
  }

  .gap-md-52 {
    gap: 52px;
  }

  .gap-md-56 {
    gap: 56px;
  }

  .gap-md-60 {
    gap: 60px;
  }

  .gap-md-64 {
    gap: 64px;
  }
}

/* Responsive Gap Utilities - LG */
@media (min-width: 992px) {
  .gap-lg-4px {
    gap: 4px;
  }

  .gap-lg-5px {
    gap: 5px;
  }

  .gap-lg-8 {
    gap: 8px;
  }

  .gap-lg-10 {
    gap: 10px;
  }

  .gap-lg-12 {
    gap: 12px;
  }

  .gap-lg-15 {
    gap: 15px;
  }

  .gap-lg-16 {
    gap: 16px;
  }

  .gap-lg-20 {
    gap: 20px;
  }

  .gap-lg-24 {
    gap: 24px;
  }

  .gap-lg-25 {
    gap: 25px;
  }

  .gap-lg-28 {
    gap: 28px;
  }

  .gap-lg-30 {
    gap: 30px;
  }

  .gap-lg-32 {
    gap: 32px;
  }

  .gap-lg-36 {
    gap: 36px;
  }

  .gap-lg-40 {
    gap: 40px;
  }

  .gap-lg-44 {
    gap: 44px;
  }

  .gap-lg-48 {
    gap: 48px;
  }

  .gap-lg-50 {
    gap: 50px;
  }

  .gap-lg-52 {
    gap: 52px;
  }

  .gap-lg-56 {
    gap: 56px;
  }

  .gap-lg-60 {
    gap: 60px;
  }

  .gap-lg-64 {
    gap: 64px;
  }
}

/* Responsive Gap Utilities - XL */
@media (min-width: 1200px) {
  .gap-xl-4px {
    gap: 4px;
  }

  .gap-xl-5px {
    gap: 5px;
  }

  .gap-xl-8 {
    gap: 8px;
  }

  .gap-xl-10 {
    gap: 10px;
  }

  .gap-xl-12 {
    gap: 12px;
  }

  .gap-xl-15 {
    gap: 15px;
  }

  .gap-xl-16 {
    gap: 16px;
  }

  .gap-xl-20 {
    gap: 20px;
  }

  .gap-xl-24 {
    gap: 24px;
  }

  .gap-xl-25 {
    gap: 25px;
  }

  .gap-xl-28 {
    gap: 28px;
  }

  .gap-xl-30 {
    gap: 30px;
  }

  .gap-xl-32 {
    gap: 32px;
  }

  .gap-xl-36 {
    gap: 36px;
  }

  .gap-xl-40 {
    gap: 40px;
  }

  .gap-xl-44 {
    gap: 44px;
  }

  .gap-xl-48 {
    gap: 48px;
  }

  .gap-xl-50 {
    gap: 50px;
  }

  .gap-xl-52 {
    gap: 52px;
  }

  .gap-xl-56 {
    gap: 56px;
  }

  .gap-xl-60 {
    gap: 60px;
  }

  .gap-xl-64 {
    gap: 64px;
  }
}

/* Row Gap Utilities - Ordered */
.row-gap-4px {
  row-gap: 4px;
}

.row-gap-5px {
  row-gap: 5px;
}

.row-gap-8 {
  row-gap: 8px;
}

.row-gap-10 {
  row-gap: 10px;
}

.row-gap-12 {
  row-gap: 12px;
}

.row-gap-16 {
  row-gap: 16px;
}

.row-gap-20 {
  row-gap: 20px;
}

.row-gap-24 {
  row-gap: 24px;
}

.row-gap-25 {
  row-gap: 25px;
}

.row-gap-28 {
  row-gap: 28px;
}

.row-gap-30 {
  row-gap: 30px;
}

.row-gap-32 {
  row-gap: 32px;
}

.row-gap-36 {
  row-gap: 36px;
}

.row-gap-40 {
  row-gap: 40px;
}

.row-gap-44 {
  row-gap: 44px;
}

.row-gap-48 {
  row-gap: 48px;
}

.row-gap-50 {
  row-gap: 50px;
}

.row-gap-52 {
  row-gap: 52px;
}

.row-gap-56 {
  row-gap: 56px;
}

.row-gap-60 {
  row-gap: 60px;
}

.row-gap-64 {
  row-gap: 64px;
}

/* Responsive Row Gap Utilities - SM */
@media (min-width: 576px) {
  .row-gap-sm-4px {
    row-gap: 4px;
  }

  .row-gap-sm-5px {
    row-gap: 5px;
  }

  .row-gap-sm-8 {
    row-gap: 8px;
  }

  .row-gap-sm-10 {
    row-gap: 10px;
  }

  .row-gap-sm-12 {
    row-gap: 12px;
  }

  .row-gap-sm-16 {
    row-gap: 16px;
  }

  .row-gap-sm-20 {
    row-gap: 20px;
  }

  .row-gap-sm-24 {
    row-gap: 24px;
  }

  .row-gap-sm-25 {
    row-gap: 25px;
  }

  .row-gap-sm-28 {
    row-gap: 28px;
  }

  .row-gap-sm-30 {
    row-gap: 30px;
  }

  .row-gap-sm-32 {
    row-gap: 32px;
  }

  .row-gap-sm-36 {
    row-gap: 36px;
  }

  .row-gap-sm-40 {
    row-gap: 40px;
  }

  .row-gap-sm-44 {
    row-gap: 44px;
  }

  .row-gap-sm-48 {
    row-gap: 48px;
  }

  .row-gap-sm-50 {
    row-gap: 50px;
  }

  .row-gap-sm-52 {
    row-gap: 52px;
  }

  .row-gap-sm-56 {
    row-gap: 56px;
  }

  .row-gap-sm-60 {
    row-gap: 60px;
  }

  .row-gap-sm-64 {
    row-gap: 64px;
  }
}

/* Responsive Row Gap Utilities - MD */
@media (min-width: 768px) {
  .row-gap-md-4px {
    row-gap: 4px;
  }

  .row-gap-md-5px {
    row-gap: 5px;
  }

  .row-gap-md-8 {
    row-gap: 8px;
  }

  .row-gap-md-10 {
    row-gap: 10px;
  }

  .row-gap-md-12 {
    row-gap: 12px;
  }

  .row-gap-md-16 {
    row-gap: 16px;
  }

  .row-gap-md-20 {
    row-gap: 20px;
  }

  .row-gap-md-24 {
    row-gap: 24px;
  }

  .row-gap-md-25 {
    row-gap: 25px;
  }

  .row-gap-md-28 {
    row-gap: 28px;
  }

  .row-gap-md-30 {
    row-gap: 30px;
  }

  .row-gap-md-32 {
    row-gap: 32px;
  }

  .row-gap-md-36 {
    row-gap: 36px;
  }

  .row-gap-md-40 {
    row-gap: 40px;
  }

  .row-gap-md-44 {
    row-gap: 44px;
  }

  .row-gap-md-48 {
    row-gap: 48px;
  }

  .row-gap-md-50 {
    row-gap: 50px;
  }

  .row-gap-md-52 {
    row-gap: 52px;
  }

  .row-gap-md-56 {
    row-gap: 56px;
  }

  .row-gap-md-60 {
    row-gap: 60px;
  }

  .row-gap-md-64 {
    row-gap: 64px;
  }
}

/* Responsive Row Gap Utilities - LG */
@media (min-width: 992px) {
  .row-gap-lg-4px {
    row-gap: 4px;
  }

  .row-gap-lg-5px {
    row-gap: 5px;
  }

  .row-gap-lg-8 {
    row-gap: 8px;
  }

  .row-gap-lg-10 {
    row-gap: 10px;
  }

  .row-gap-lg-12 {
    row-gap: 12px;
  }

  .row-gap-lg-16 {
    row-gap: 16px;
  }

  .row-gap-lg-20 {
    row-gap: 20px;
  }

  .row-gap-lg-24 {
    row-gap: 24px;
  }

  .row-gap-lg-25 {
    row-gap: 25px;
  }

  .row-gap-lg-28 {
    row-gap: 28px;
  }

  .row-gap-lg-30 {
    row-gap: 30px;
  }

  .row-gap-lg-32 {
    row-gap: 32px;
  }

  .row-gap-lg-36 {
    row-gap: 36px;
  }

  .row-gap-lg-40 {
    row-gap: 40px;
  }

  .row-gap-lg-44 {
    row-gap: 44px;
  }

  .row-gap-lg-48 {
    row-gap: 48px;
  }

  .row-gap-lg-50 {
    row-gap: 50px;
  }

  .row-gap-lg-52 {
    row-gap: 52px;
  }

  .row-gap-lg-56 {
    row-gap: 56px;
  }

  .row-gap-lg-60 {
    row-gap: 60px;
  }

  .row-gap-lg-64 {
    row-gap: 64px;
  }
}

/* Responsive Row Gap Utilities - XL */
@media (min-width: 1200px) {
  .row-gap-xl-4px {
    row-gap: 4px;
  }

  .row-gap-xl-5px {
    row-gap: 5px;
  }

  .row-gap-xl-8 {
    row-gap: 8px;
  }

  .row-gap-xl-10 {
    row-gap: 10px;
  }

  .row-gap-xl-12 {
    row-gap: 12px;
  }

  .row-gap-xl-16 {
    row-gap: 16px;
  }

  .row-gap-xl-20 {
    row-gap: 20px;
  }

  .row-gap-xl-24 {
    row-gap: 24px;
  }

  .row-gap-xl-25 {
    row-gap: 25px;
  }

  .row-gap-xl-28 {
    row-gap: 28px;
  }

  .row-gap-xl-30 {
    row-gap: 30px;
  }

  .row-gap-xl-32 {
    row-gap: 32px;
  }

  .row-gap-xl-36 {
    row-gap: 36px;
  }

  .row-gap-xl-40 {
    row-gap: 40px;
  }

  .row-gap-xl-44 {
    row-gap: 44px;
  }

  .row-gap-xl-48 {
    row-gap: 48px;
  }

  .row-gap-xl-50 {
    row-gap: 50px;
  }

  .row-gap-xl-52 {
    row-gap: 52px;
  }

  .row-gap-xl-56 {
    row-gap: 56px;
  }

  .row-gap-xl-60 {
    row-gap: 60px;
  }

  .row-gap-xl-64 {
    row-gap: 64px;
  }
}

/* Column Gap Utilities - Ordered */
.col-gap-4px {
  column-gap: 4px;
}

.col-gap-5px {
  column-gap: 5px;
}

.col-gap-8 {
  column-gap: 8px;
}

.col-gap-10 {
  column-gap: 10px;
}

.col-gap-12 {
  column-gap: 12px;
}

.col-gap-15 {
  column-gap: 15px;
}

.col-gap-16 {
  column-gap: 16px;
}

.col-gap-20,
.col-gap-22 {
  column-gap: 20px;
}

.col-gap-24 {
  column-gap: 24px;
}

.col-gap-25 {
  column-gap: 25px;
}

.col-gap-28 {
  column-gap: 28px;
}

.col-gap-30 {
  column-gap: 30px;
}

.col-gap-32 {
  column-gap: 32px;
}

.col-gap-36 {
  column-gap: 36px;
}

.col-gap-40 {
  column-gap: 40px;
}

.col-gap-44 {
  column-gap: 44px;
}

.col-gap-48 {
  column-gap: 48px;
}

.col-gap-50 {
  column-gap: 50px;
}

.col-gap-52 {
  column-gap: 52px;
}

.col-gap-56 {
  column-gap: 56px;
}

.col-gap-60 {
  column-gap: 60px !important;
}

.col-gap-64 {
  column-gap: 64px !important;
}

/* Responsive Column Gap Utilities - SM */
@media (min-width: 576px) {
  .col-gap-sm-4px {
    column-gap: 4px;
  }

  .col-gap-sm-5px {
    column-gap: 10px;
  }

  .col-gap-sm-8 {
    column-gap: 8px;
  }

  .col-gap-sm-10 {
    column-gap: 10px;
  }

  .col-gap-sm-12 {
    column-gap: 12px;
  }

  .col-gap-sm-15 {
    column-gap: 15px;
  }

  .col-gap-sm-16 {
    column-gap: 16px;
  }

  .col-gap-sm-20 {
    column-gap: 20px;
  }

  .col-gap-sm-24 {
    column-gap: 24px;
  }

  .col-gap-sm-25 {
    column-gap: 25px;
  }

  .col-gap-sm-28 {
    column-gap: 28px;
  }

  .col-gap-sm-30 {
    column-gap: 30px;
  }

  .col-gap-sm-32 {
    column-gap: 32px;
  }

  .col-gap-sm-36 {
    column-gap: 36px;
  }

  .col-gap-sm-40 {
    column-gap: 40px;
  }

  .col-gap-sm-44 {
    column-gap: 44px;
  }

  .col-gap-sm-48 {
    column-gap: 48px;
  }

  .col-gap-sm-50 {
    column-gap: 50px;
  }

  .col-gap-sm-52 {
    column-gap: 52px;
  }

  .col-gap-sm-56 {
    column-gap: 56px;
  }

  .col-gap-sm-60 {
    column-gap: 60px;
  }

  .col-gap-sm-64 {
    column-gap: 64px;
  }
}

/* Responsive Column Gap Utilities - MD */
@media (min-width: 768px) {
  .col-gap-md-4px {
    column-gap: 4px;
  }

  .col-gap-md-5px {
    column-gap: 10px;
  }

  .col-gap-md-8 {
    column-gap: 8px;
  }

  .col-gap-md-10 {
    column-gap: 10px;
  }

  .col-gap-md-12 {
    column-gap: 12px;
  }

  .col-gap-md-15 {
    column-gap: 15px;
  }

  .col-gap-md-16 {
    column-gap: 16px;
  }

  .col-gap-md-20 {
    column-gap: 20px;
  }

  .col-gap-md-24 {
    column-gap: 24px;
  }

  .col-gap-md-25 {
    column-gap: 25px;
  }

  .col-gap-md-28 {
    column-gap: 28px;
  }

  .col-gap-md-30 {
    column-gap: 30px;
  }

  .col-gap-md-32 {
    column-gap: 32px;
  }

  .col-gap-md-36 {
    column-gap: 36px;
  }

  .col-gap-md-40 {
    column-gap: 40px;
  }

  .col-gap-md-44 {
    column-gap: 44px;
  }

  .col-gap-md-48 {
    column-gap: 48px;
  }

  .col-gap-md-50 {
    column-gap: 50px;
  }

  .col-gap-md-52 {
    column-gap: 52px;
  }

  .col-gap-md-56 {
    column-gap: 56px;
  }

  .col-gap-md-60 {
    column-gap: 60px;
  }

  .col-gap-md-64 {
    column-gap: 64px;
  }
}

/* Responsive Column Gap Utilities - LG */
@media (min-width: 992px) {
  .col-gap-lg-4px {
    column-gap: 4px;
  }

  .col-gap-lg-5px {
    column-gap: 10px;
  }

  .col-gap-lg-8 {
    column-gap: 8px;
  }

  .col-gap-lg-10 {
    column-gap: 10px;
  }

  .col-gap-lg-12 {
    column-gap: 12px;
  }

  .col-gap-lg-15 {
    column-gap: 15px;
  }

  .col-gap-lg-16 {
    column-gap: 16px;
  }

  .col-gap-lg-20 {
    column-gap: 20px;
  }

  .col-gap-lg-24 {
    column-gap: 24px;
  }

  .col-gap-lg-25 {
    column-gap: 25px;
  }

  .col-gap-lg-28 {
    column-gap: 28px;
  }

  .col-gap-lg-30 {
    column-gap: 30px;
  }

  .col-gap-lg-32 {
    column-gap: 32px;
  }

  .col-gap-lg-36 {
    column-gap: 36px;
  }

  .col-gap-lg-40 {
    column-gap: 40px;
  }

  .col-gap-lg-44 {
    column-gap: 44px;
  }

  .col-gap-lg-48 {
    column-gap: 48px;
  }

  .col-gap-lg-50 {
    column-gap: 50px;
  }

  .col-gap-lg-52 {
    column-gap: 52px;
  }

  .col-gap-lg-56 {
    column-gap: 56px;
  }

  .col-gap-lg-60 {
    column-gap: 60px;
  }

  .col-gap-lg-64 {
    column-gap: 64px;
  }
}

/* Responsive Column Gap Utilities - XL */
@media (min-width: 1200px) {
  .col-gap-xl-4px {
    column-gap: 4px;
  }

  .col-gap-xl-5px {
    column-gap: 10px;
  }

  .col-gap-xl-8 {
    column-gap: 8px;
  }

  .col-gap-xl-10 {
    column-gap: 10px;
  }

  .col-gap-xl-12 {
    column-gap: 12px;
  }

  .col-gap-xl-15 {
    column-gap: 15px;
  }

  .col-gap-xl-16 {
    column-gap: 16px;
  }

  .col-gap-xl-20 {
    column-gap: 20px;
  }

  .col-gap-xl-24 {
    column-gap: 24px;
  }

  .col-gap-xl-25 {
    column-gap: 25px;
  }

  .col-gap-xl-28 {
    column-gap: 28px;
  }

  .col-gap-xl-30 {
    column-gap: 30px;
  }

  .col-gap-xl-32 {
    column-gap: 32px;
  }

  .col-gap-xl-36 {
    column-gap: 36px;
  }

  .col-gap-xl-40 {
    column-gap: 40px;
  }

  .col-gap-xl-44 {
    column-gap: 44px;
  }

  .col-gap-xl-48 {
    column-gap: 48px;
  }

  .col-gap-xl-50 {
    column-gap: 50px;
  }

  .col-gap-xl-52 {
    column-gap: 52px;
  }

  .col-gap-xl-56 {
    column-gap: 56px;
  }

  .col-gap-xl-60 {
    column-gap: 60px;
  }

  .col-gap-xl-64 {
    column-gap: 64px;
  }
}

/* ==== Responsive grid ==== */
.grid {
  --grid-min: 200px;
  display: grid;
  gap: 20px;
  grid-template-columns: 1fr;
  /* Default: 1 column on mobile */
}

.grid-auto-rows {
  grid-auto-rows: 1fr;
  /* Make all grid rows equal height */
}

.grid-auto-fit {
  grid-template-columns: repeat(auto-fit, minmax(var(--grid-min), 1fr));
}

.grid-auto-fill {
  grid-template-columns: repeat(auto-fill, minmax(var(--grid-min), 1fr));
}

.grid-min-100 {
  --grid-min: 100px;
}

.grid-min-150 {
  --grid-min: 150px;
}

.grid-min-200 {
  --grid-min: 200px;
}

.grid-min-250 {
  --grid-min: 250px;
}

.grid-min-300 {
  --grid-min: 300px;
}

.grid-min-350 {
  --grid-min: 350px;
}

.grid-min-400 {
  --grid-min: 400px;
}

.grid-min-450 {
  --grid-min: 450px;
}

.grid-min-500 {
  --grid-min: 500px;
}

/* Minmax modifier classes that work with any grid */
.grid-minmax-200 {
  grid-template-columns: repeat(var(--grid-cols), minmax(200px, 1fr)) !important;
}

.grid-minmax-250 {
  grid-template-columns: repeat(var(--grid-cols), minmax(250px, 1fr)) !important;
}

.grid-minmax-300 {
  grid-template-columns: repeat(var(--grid-cols), minmax(300px, 1fr)) !important;
}

.grid-minmax-350 {
  grid-template-columns: repeat(var(--grid-cols), minmax(350px, 1fr)) !important;
}

@media (min-width: 768px) {
  .grid-md-2-cols {
    --grid-cols: 1;
    grid-template-columns: repeat(2, 1fr);
  }

  .grid-md-3-cols {
    --grid-cols: 3;
    grid-template-columns: repeat(3, 1fr);
  }

  .grid-md-4-cols {
    --grid-cols: 4;
    grid-template-columns: repeat(4, 1fr);
  }
}

@media (min-width: 992px) {
  .grid-lg-2-cols {
    --grid-cols: 2;
    grid-template-columns: repeat(2, 1fr);
  }

  .grid-lg-3-cols {
    --grid-cols: 3;
    grid-template-columns: repeat(3, 1fr);
  }

  .grid-lg-4-cols {
    --grid-cols: 4;
    grid-template-columns: repeat(4, 1fr);
  }

  .grid-lg-auto {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 20%), 1fr));
    /* Ensures at least 20% width (max 5 columns), adapts to 3-4 cards */
  }
}

@media (min-width: 1200px) {
  .grid-xl {
    display: grid;
    gap: 20px;
    grid-template-columns: 1fr;
  }

  .grid-xl-2-cols {
    --grid-cols: 2;
    grid-template-columns: repeat(2, 1fr);
  }

  .grid-xl-3-cols {
    --grid-cols: 3;
    grid-template-columns: repeat(3, 1fr);
  }

  .grid-xl-4-cols {
    --grid-cols: 4;
    grid-template-columns: repeat(4, 1fr);
  }

  .grid-minmax-200 {
    grid-template-columns: repeat(var(--grid-cols), minmax(210px, 1fr)) !important;
  }

  .grid-xl-auto {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 20%), 1fr));
    /* Ensures at least 20% width (max 5 columns), adapts to 3-4 cards */
  }
}

/* ==== Spacing ==== */
.-mt-10 {
  margin-top: -10px !important;
}

.-mt-20 {
  margin-top: -20px !important;
}

.-mt-30 {
  margin-top: -30px !important;
}

.-mt-40 {
  margin-top: -40px !important;
}

.-mt-50 {
  margin-top: -50px !important;
}

.-mt-60 {
  margin-top: -60px !important;
}

.-mt-70 {
  margin-top: -70px !important;
}

.-mt-80 {
  margin-top: -80px !important;
}

.-mt-90 {
  margin-top: -90px !important;
}

.-mt-100 {
  margin-top: -100px !important;
}

@media (min-width: 992px) {
  .-mt-lg-10 {
    margin-top: -10px !important;
  }

  .-mt-lg-20 {
    margin-top: -20px !important;
  }

  .-mt-lg-30 {
    margin-top: -30px !important;
  }

  .-mt-lg-40 {
    margin-top: -40px !important;
  }

  .-mt-lg-50 {
    margin-top: -50px !important;
  }

  .-mt-lg-60 {
    margin-top: -60px !important;
  }

  .-mt-lg-70 {
    margin-top: -70px !important;
  }

  .-mt-lg-80 {
    margin-top: -80px !important;
  }

  .-mt-lg-90 {
    margin-top: -90px !important;
  }

  .-mt-lg-100 {
    margin-top: -100px !important;
  }
}

@media (min-width: 992px) {
  .-mt-xl-10 {
    margin-top: -10px !important;
  }

  .-mt-xl-20 {
    margin-top: -20px !important;
  }

  .-mt-xl-30 {
    margin-top: -30px !important;
  }

  .-mt-xl-40 {
    margin-top: -40px !important;
  }

  .-mt-xl-50 {
    margin-top: -50px !important;
  }

  .-mt-xl-60 {
    margin-top: -60px !important;
  }

  .-mt-xl-70 {
    margin-top: -70px !important;
  }

  .-mt-xl-80 {
    margin-top: -80px !important;
  }

  .-mt-xl-90 {
    margin-top: -90px !important;
  }

  .-mt-xl-100 {
    margin-top: -100px !important;
  }
}

/* ==== Animation ==== */
.animate {
  animation-duration: 0.3s;
  -webkit-animation-duration: 0.3s;
  animation-fill-mode: both;
  -webkit-animation-fill-mode: both;
}

/* Burst Animation */
.faa-burst.animated,
.faa-burst.animated-hover:hover,
.faa-parent.animated-hover:hover>.faa-burst {
  -webkit-animation: burst 1s infinite linear;
  animation: burst 1s infinite linear;
}

@-webkit-keyframes burst {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }

  10% {
    -webkit-transform: scale(1.3);
    transform: scale(1.3);
  }

  20% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }

  30% {
    -webkit-transform: scale(1.3);
    transform: scale(1.3);
  }

  40% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }

  100% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }
}

@keyframes burst {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }

  10% {
    -webkit-transform: scale(1.3);
    transform: scale(1.3);
  }

  20% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }

  30% {
    -webkit-transform: scale(1.3);
    transform: scale(1.3);
  }

  40% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }

  100% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }
}

/* Burst Animation - only once */
.faa-burst-once {
  -webkit-animation: burst 1s linear 1;
  /* duration 1s, play once */
  animation: burst 1s linear 1;
}

@-webkit-keyframes burst {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }

  10% {
    -webkit-transform: scale(1.3);
    transform: scale(1.3);
  }

  20% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }

  30% {
    -webkit-transform: scale(1.3);
    transform: scale(1.3);
  }

  40% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }

  100% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }
}

@keyframes burst {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }

  10% {
    -webkit-transform: scale(1.3);
    transform: scale(1.3);
  }

  20% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }

  30% {
    -webkit-transform: scale(1.3);
    transform: scale(1.3);
  }

  40% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }

  100% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }
}

@keyframes slideIn {
  0% {
    transform: translateY(1rem);
    opacity: 0;
  }

  100% {
    transform: translateY(0rem);
    opacity: 1;
  }

  0% {
    transform: translateY(1rem);
    opacity: 0;
  }
}

@-webkit-keyframes slideIn {
  0% {
    -webkit-transform: transform;
    -webkit-opacity: 0;
  }

  100% {
    -webkit-transform: translateY(0);
    -webkit-opacity: 1;
  }

  0% {
    -webkit-transform: translateY(1rem);
    -webkit-opacity: 0;
  }
}

.slideIn {
  -webkit-animation-name: slideIn;
  animation-name: slideIn;
}

@-webkit-keyframes slideInLeft {
  from {
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
    visibility: visible;
  }

  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes slideInLeft {
  from {
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
    visibility: visible;
  }

  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.slideInLeft {
  -webkit-animation-name: slideInLeft;
  animation-name: slideInLeft;
}

@keyframes heartPulse {
  0% {
    transform: scale(0.75, 0.75);
  }

  30% {
    transform: scale(1, 1);
  }
}

/* Adding rotate(0.05deg) makes the animation smoother and crisper on Firefox */
@keyframes pulseDot {
  0% {
    transform: scale(0.8) rotate(0.05deg);
  }

  50% {
    transform: scale(1) rotate(0.05deg);
  }

  100% {
    transform: scale(0.8) rotate(0.05deg);
  }
}

/* Adding rotate(0.05deg) makes the animation smoother and crisper on Firefox */
@keyframes pulseDotOpacity {
  0% {
    opacity: 0.7;
    transform: scale(0.8) rotate(0.05deg);
  }

  50% {
    opacity: 0.9;
    transform: scale(1) rotate(0.05deg);
  }

  100% {
    opacity: 0.7;
    transform: scale(0.8) rotate(0.05deg);
  }
}

/* ==== General styles ==== */
/* Colors */
.amex-blue {
  color: var(--amex-blue) !important;
}

.discover-orange {
  color: var(--discover-orange) !important;
}

.mastercard-red {
  color: var(--mastercard-red) !important;
}

.mastercard-orange {
  color: var(--mastercard-orange) !important;
}

.visa-blue {
  color: var(--visa-blue) !important;
}

/* Background colors */
.bg-blue {
  background-color: var(--blue) !important;
}

.bg-white,
.bg-color-white {
  background-color: #fff !important;
}

.bg-light-blue {
  background-color: var(--light-blue) !important;
}

.bg-light-blue-v2 {
  background-color: var(--primary-45) !important;
}

.bg-light-blue-v3 {
  background-color: var(--primary-45) !important;
}

.bg-primary-25,
.bg-light-blue-v4 {
  background-color: var(--primary-25) !important;
}

.bg-light-blue-v5 {
  background-color: var(--primary-100) !important;
}

.bg-light-blue-v6 {
  background-color: var(--primary-200) !important;
}

.bg-light-blue-v7 {
  background-color: var(--primary-25) !important;
}

.bg-light-blue-v8 {
  background-color: var(--light-blue-v8) !important;
}

.bg-light-gray {
  background-color: var(--light-gray) !important;
}

.bg-light-gray-v2 {
  background-color: var(--light-gray-v2) !important;
}

.bg-light-gray-v3 {
  background-color: var(--light-gray-v3) !important;
}

.bg-light-gray-v4 {
  background-color: var(--light-gray-v4) !important;
}

.bg-light-gray-10 {
  background-color: var(--light-gray-10) !important;
}

.bg-light-gray-20 {
  background-color: var(--light-gray-20) !important;
}

.bg-light-gray-30 {
  background-color: var(--light-gray-30) !important;
}

.bg-light-gray-40 {
  background-color: var(--light-gray-40) !important;
}

.bg-light-gray-50 {
  background-color: var(--light-gray-50) !important;
}

.bg-light-gray-60 {
  background-color: var(--light-gray60) !important;
}

.bg-light-gray-70 {
  background-color: var(--light-gray-70) !important;
}

.bg-light-gray-80 {
  background-color: var(--light-gray-80) !important;
}

.bg-light-gray-90 {
  background-color: var(--light-gray-90) !important;
}

.bg-light-gray-100 {
  background-color: var(--light-gray-100) !important;
}

.bg-white {
  background-color: #fff !important;
}

.blue {
  color: var(--blue) !important;
}

.light-blue {
  color: var(--light-blue) !important;
}

.blue-mouseover,
.text-primary-300 {
  color: var(--blue-mouseover) !important;
}

.dark {
  color: var(--dark) !important;
}

.gray-star {
  color: var(--gray-star) !important;
}

.light-gray {
  color: var(--light-gray) !important;
}

.light-gray-v2 {
  color: var(--light-gray-v2) !important;
}

.light-gray-v3 {
  color: var(--light-gray-v3) !important;
}

.green {
  color: var(--green) !important;
}

.orange {
  color: var(--orange) !important;
}

.purple {
  color: var(--purple) !important;
}

.red {
  color: var(--red) !important;
}

.text-danger {
  color: var(--text-danger) !important;
}

.facebook-color {
  color: var(--facebook-color) !important;
}

.google-blue {
  color: var(--google-blue) !important;
}

.google-green {
  color: var(--google-green) !important;
}

.google-red {
  color: var(--google-red) !important;
}

.google-yellow {
  color: var(--google-yellow) !important;
}

.google-gradient {
  background: #e34133;
  background: linear-gradient(to right,
      #e34133 0%,
      #f3b605 50%,
      #32a350 50%,
      #4081ec 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.yellow {
  color: var(--yellow) !important;
}

.yelp-color {
  color: var(--yelp-color) !important;
}

.white {
  color: #fff !important;
}

.zillow-color {
  color: var(--zillow-color) !important;
}

.text-opacity-10 {
  --bs-text-opacity: 0.1;
}

.text-opacity-20 {
  --bs-text-opacity: 0.2;
}

.text-opacity-30 {
  --bs-text-opacity: 0.3;
}

.text-opacity-40 {
  --bs-text-opacity: 0.4;
}

.text-opacity-50 {
  --bs-text-opacity: 0.5;
}

.text-opacity-60 {
  --bs-text-opacity: 0.6;
}

.text-opacity-70 {
  --bs-text-opacity: 0.7;
}

.text-opacity-80 {
  --bs-text-opacity: 0.8;
}

.text-opacity-90 {
  --bs-text-opacity: 0.9;
}

.text-opacity-100 {
  --bs-text-opacity: 1;
}

.text-hover-opacity-10 {
  --bs-text-hover-opacity: 0.1;
}

.text-hover-opacity-20 {
  --bs-text-hover-opacity: 0.2;
}

.text-hover-opacity-30 {
  --bs-text-hover-opacity: 0.3;
}

.text-hover-opacity-40 {
  --bs-text-hover-opacity: 0.4;
}

.text-hover-opacity-50 {
  --bs-text-hover-opacity: 0.5;
}

.text-hover-opacity-60 {
  --bs-text-hover-opacity: 0.6;
}

.text-hover-opacity-70 {
  --bs-text-hover-opacity: 0.7;
}

.text-hover-opacity-80 {
  --bs-text-hover-opacity: 0.8;
}

.text-hover-opacity-90 {
  --bs-text-hover-opacity: 0.9;
}

.text-hover-opacity-100 {
  --bs-text-hover-opacity: 1;
}

.text-body {
  color: rgba(var(--bs-text-body-rgb), var(--bs-text-opacity)) !important;
}

.text-hover-opacity-100:hover {
  color: rgba(var(--bs-text-body-rgb), var(--bs-text-hover-opacity)) !important;
}

.text-body.text-hover-opacity-100:hover {
  color: rgba(var(--bs-text-body-rgb), var(--bs-text-hover-opacity)) !important;
}

.text-hover-blue.text-hover-opacity-100:hover {
  color: rgba(var(--blue-mouseover-rgb),
      var(--bs-text-hover-opacity)) !important;
}

.text-primary {
  color: var(--primary) !important;
}

.text-white {
  color: #fff !important;
}

.border-1 {
  border: 1px solid var(--border-color);
}

.border-bottom,
.border-bottom-1 {
  border-bottom: 1px solid var(--border-color) !important;
}

.left-border-1 {
  border-left: 1px solid var(--border-color) !important;
}

.top-border-1,
.border-top-1 {
  border-top: 1px solid var(--border-color) !important;
}

@media (min-width:992px) {
  .top-border-lg-0 {
    border-top: none !important;
  }

  .left-border-lg-1 {
    border-left: 1px solid var(--border-color) !important;
  }
}

.card-border-color {
  color: var(--card-border-color) !important;
}

.shadow-xs {
  box-shadow: 0 .125rem 0.25rem rgba(0, 0, 0, .03125) !important;
}

.box-shadow-0,
.box-shadow-none,
.shadow-0,
.shadow-none {
  box-shadow: none !important;
}

.rounded-1pt5x {
  border-radius: 8px !important;
}

.rounded-2x {
  border-radius: 12px !important;
}

.rounded-3x {
  border-radius: 20px !important;
}

.rounded-4x {
  border-radius: 32px !important;
}

.rounded-5x {
  border-radius: 40px !important;
}

.fst-italic,
.font-style-italic {
  font-style: italic;
}

.fs-inherit {
  font-size: inherit !important;
}

.fw-lighter {
  font-weight: lighter !important;
}

.fw-300,
.fw-light,
.font-weight-300 {
  font-weight: 300 !important;
}

.fw-400,
.fw-normal,
.fst-normal,
.font-weight-400,
.font-weight-normal {
  font-weight: 400 !important;
}

.fw-500,
.fw-medium,
.font-weight-500,
.font-weight-medium {
  font-weight: 500 !important;
}

.fw-600,
.fw-semibold,
.font-weight-600,
.font-weight-semibold {
  font-weight: 600 !important;
}

.fw-bold {
  font-weight: bold !important;
}

.lh-1 {
  line-height: 1 !important;
}

.list-unstyled {
  padding-left: 0;
  list-style: none;
}

.list-style-upper-alpha {
  list-style: upper-alpha;
}

.list-style-upper-roman {
  list-style: upper-roman;
}

.opacity-10 {
  opacity: 0.1 !important;
}

.opacity-20 {
  opacity: 0.2 !important;
}

.opacity-30 {
  opacity: 0.3 !important;
}

.opacity-40 {
  opacity: 0.4 !important;
}

.opacity-50 {
  opacity: 0.5 !important;
}

.opacity-60 {
  opacity: 0.6 !important;
}

.opacity-70 {
  opacity: 0.7 !important;
}

.opacity-80 {
  opacity: 0.8 !important;
}

.opacity-90 {
  opacity: 0.9 !important;
}

.opacity-100 {
  opacity: 0 !important;
}

.position-relative {
  position: relative !important;
}

.position-absolute {
  position: absolute !important;
}

.z-n1 {
  z-index: -1 !important;
}

.z-0 {
  z-index: 0 !important;
}

.z-1 {
  z-index: 1 !important;
}

.z-2 {
  z-index: 2 !important;
}

.z-3 {
  z-index: 3 !important;
}

.z-4 {
  z-index: 4 !important;
}

.z-5 {
  z-index: 5 !important;
}

img.size-16 {
  width: 16px;
  height: auto;
}

img.size-20 {
  width: 20px;
  height: auto;
}

img.size-24 {
  width: 24px;
  height: auto;
}

img.size-28 {
  width: 28px;
  height: auto;
}

img.size-32 {
  width: 32px;
  height: auto;
}

/* ==== Components ==== */
/* Hamburger menu */
.hamburger {
  padding: 0;
  display: inline-block;
  cursor: pointer;
  transition-property: opacity, filter;
  transition-duration: 0.15s;
  transition-timing-function: linear;
  font: inherit;
  color: inherit;
  text-transform: none;
  background-color: transparent;
  border: 0;
  margin: 0;
  overflow: visible;
}

.hamburger:hover,
.hamburger.is-active:hover {
  opacity: 1;
}

.hamburger.is-active .hamburger-inner,
.hamburger.is-active .hamburger-inner::before,
.hamburger.is-active .hamburger-inner::after {
  background-color: var(--primary-45);
}

.hamburger-box {
  width: 26px;
  height: 18px;
  display: inline-block;
  position: relative;
}

.hamburger-inner {
  display: block;
  top: 50%;
  margin-top: -2px;
}

.hamburger-inner,
.hamburger-inner::before,
.hamburger-inner::after {
  width: 26px;
  height: 2px;
  background-color: var(--primary-800);
  border-radius: 2px;
  position: absolute;
  transition-property: transform;
  transition-duration: 0.15s;
  transition-timing-function: ease;
}

.hamburger-inner::before,
.hamburger-inner::after {
  content: "";
  display: block;
}

.hamburger-inner::before {
  top: -8px;
}

.hamburger-inner::after {
  bottom: -8px;
}

/* Slider Reverse */
.hamburger--slider .hamburger-inner {
  top: 2px;
}

.hamburger--slider .hamburger-inner::before {
  top: 8px;
  transition-property: transform, opacity;
  transition-timing-function: ease;
  transition-duration: 0.15s;
}

.hamburger--slider .hamburger-inner::after {
  top: 16px;
}

.hamburger--slider.is-active .hamburger-inner {
  transform: translate3d(0, 8px, 0) rotate(45deg);
}

.hamburger--slider.is-active .hamburger-inner::before {
  transform: rotate(-45deg) translate3d(-5.71429px, -6px, 0);
  opacity: 0;
}

.hamburger--slider.is-active .hamburger-inner::after {
  transform: translate3d(0, -16px, 0) rotate(-90deg);
}

/* Badge */
.badge {
  border-width: 1px;
  border-style: solid;
  border-radius: 50px;
  font-size: 12px;
  font-weight: 500;
}

.alert-blue,
.alert-primary,
.badge-blue,
.badge-primary {
  background-color: var(--alert-primary-background-color);
  border-color: var(--alert-primary-border-color);
  color: var(--alert-primary-text-color);
}

.alert-secondary,
.badge-secondary {
  background-color: var(--alert-secondary-background-color);
  border-color: var(--alert-secondary-border-color);
  color: var(--alert-secondary-text-color);
}

.alert-danger,
.badge-danger {
  background-color: var(--alert-danger-background-color);
  border-color: var(--alert-danger-border-color);
  color: var(--alert-danger-text-color);
}

.alert-dark,
.badge-dark {
  background-color: var(--alert-dark-background-color);
  border-color: var(--alert-dark-border-color);
  color: var(--alert-dark-text-color);
}

.alert-info,
.badge-info {
  background-color: var(--alert-info-background-color);
  border-color: var(--alert-info-border-color);
  color: var(--alert-info-text-color);
}

.alert-light,
.badge-light {
  background-color: var(--alert-light-background-color);
  border-color: var(--alert-light-border-color);
  color: var(--alert-light-text-color);
}

.alert-success,
.badge-success {
  background-color: var(--alert-success-background-color);
  border-color: var(--alert-success-border-color);
  color: var(--alert-success-text-color);
}

.alert-warning,
.badge-warning {
  background-color: var(--alert-warning-background-color);
  border-color: var(--alert-warning-border-color);
  color: var(--alert-warning-text-color);
}

.badge.upsize-1,
.badge.badge-2x {
  font-size: 90%;
  padding: 0.25rem 0.625rem;
}

.badge.upsize-2,
.badge.badge-3x {
  font-size: 100%;
  padding: 0.5rem 1rem;
}

.badge-primary.badge-indicator .indicator-icon {
  color: var(--alert-primary-indicator-color);
}

.badge-secondary.badge-indicator .indicator-icon {
  color: var(--alert-secondary-indicator-color);
}

.badge-success.badge-indicator .indicator-icon {
  color: var(--alert-success-indicator-color);
}

.badge-danger.badge-indicator .indicator-icon {
  color: var(--alert-danger-indicator-color);
}

.badge-warning.badge-indicator .indicator-icon {
  color: var(--alert-warning-indicator-color);
}

.badge-info.badge-indicator .indicator-icon {
  color: var(--alert-info-indicator-color);
}

.badge-light.badge-indicator .indicator-icon {
  color: var(--alert-light-indicator-color);
}

.badge-dark.badge-indicator .indicator-icon {
  color: var(--alert-dark-indicator-color);
}

.badge-indicator .indicator-icon {
  font-size: 85%;
  margin-left: 1px;
  margin-right: 5px;
}

.btn {
  border-radius: 12px;
  border-radius: 50px;
  color: var(--body-text-color);
  font-size: 16px;
  font-weight: 600;
  line-height: 22px;
  outline: none;
  padding: 0.75rem 2rem;
  transition: 0.3s;
}

/* ==== Plugins Overrides ==== */
.swiper-button-next,
.swiper-button-prev {
  color: var(--gray-600);
}

.swiper-pagination-bullet {
  background: var(--gray-200);
}

.swiper-pagination-bullet-active {
  background: var(--gray-400);
}

.swiper-pagination-bullet:hover,
.swiper-pagination-bullet-active:hover {
  background: var(--blue-mouseover);
}

/* ==== LocalImpact Custom ==== */
.btn-link {
  color: var(--primary);
}

.btn-sm {
  font-size: var(--button-font-size-sm);
  /* 4px x 16px */
  padding: 0.25rem 1rem;
}

.btn-md {
  font-size: var(--button-font-size-md);
  /* 8px x 24px */
  padding: 0.5rem 1.5rem;
}

.btn-lg {
  font-size: var(--button-font-size-lg);
}

@media (min-width: 992px) {
  .btn-sm {
    /* 4px x 16px */
    padding: 0.25rem 1rem;
  }

  .btn-md {
    /* 8px x 24px */
    padding: 0.5rem 1.5rem;
  }
}

.h1,
.h2,
.h3,
.h4,
.h5,
.h6,
h1,
h2,
h3,
h4,
h5,
h6 {
  color: var(--primary-800);
  font-weight: bold;
}

.h1,
h1 {
  font-weight: 800;
  font-size: 32px;
  /* Reduced from 42-48px */
  line-height: 120%;
  margin-bottom: 1.75rem;
}

.h2,
h2 {
  font-weight: 700;
  /* Bold */
  font-size: 28px;
  /* Reduced from 34-35px */
  line-height: 125%;
  margin-bottom: 1.5rem;
}

.h2-point-five {
  font-weight: 700;
  /* Bold */
  font-size: 28px;
  /* Reduced from 34-35px */
  line-height: 125%;
}

.h3,
h3 {
  font-weight: 600;
  /* SemiBold */
  font-size: 22px;
  /* Reduced from 25px */
  line-height: 130%;
}

.h3-point-five {
  font-weight: 600;
  /* SemiBold */
  font-size: 22px;
  /* Reduced from 25px */
  line-height: 130%;
}

.h4,
h4 {
  font-weight: 600;
  /* SemiBold */
  font-size: 18px;
  /* Reduced from 20px */
  line-height: 135%;
}

.h5,
h5 {
  font-weight: 500;
  /* Medium */
  font-size: 16px;
  /* Reduced from 18px */
  line-height: 135%;
}

.h6,
h6 {
  font-weight: 500;
  /* Medium */
  font-size: 14px;
  /* Reduced from 16px */
  line-height: 140%;
}

@media (min-width: 768px) {

  h1,
  .h1 {
    font-size: 38px;
  }

  /* 83% of desktop */
  h2,
  .h2,
  .h2-point-five {
    font-size: 30px;
  }

  /* 86% of desktop */
  h3,
  .h3,
  .h3-point-five {
    font-size: 24px;
  }

  /* 96% of desktop */
  h4,
  .h4 {
    font-size: 19px;
  }

  /* 95% of desktop */
  h5,
  .h5 {
    font-size: 17px;
  }

  /* 94% of desktop */
  h6,
  .h6 {
    font-size: 15px;
  }
}

@media (min-width: 992px) {

  h1,
  .h1 {
    font-size: 48px;
  }

  /* Average of 42-48px range */
  h2,
  .h2,
  .h2-point-five {
    font-size: 35px;
  }

  /* As specified */
  h3,
  .h3,
  .h3-point-five {
    font-size: 25px;
  }

  .display-3-point-five {
    font-size: 4rem;
    font-weight: 300;
    line-height: 1.2;
  }

  /* As specified */
  h4,
  .h4 {
    font-size: 20px;
  }

  /* As specified */
  h5,
  .h5 {
    font-size: 18px;
  }

  /* As specified */
  h6,
  .h6 {
    font-size: 16px;
  }
}

/* General CSS */
a,
a:hover {
  color: var(--blue);
}

.btn-primary {
  color: #fff;
  background-color: var(--blue);
  border-color: var(--blue);
}

.btn-primary.disabled,
.btn-primary:disabled,
.btn-primary.disabled:hover,
.btn-primary:disabled:hover {
  color: var(--gray-400);
  background-color: var(--gray-200);
  border-color: var(--gray-200);
}

.btn-primary:hover {
  background-color: var(--blue-mouseover);
  border-color: var(--blue-mouseover);
}

.btn-primary.focus,
.btn-primary:focus,
.btn-primary:not(:disabled):not(.disabled).active,
.btn-primary:not(:disabled):not(.disabled):active,
.show>.btn-primary.dropdown-toggle {
  background-color: var(--primary-600);
  border-color: var(--primary-600);
}

.btn-primary.focus,
.btn-primary:focus,
.btn-primary:not(:disabled):not(.disabled).active:focus,
.btn-primary:not(:disabled):not(.disabled):active:focus,
.show>.btn-primary.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgb(12 171 253 / 0);
}

.btn-secondary {
  color: var(--gray-600);
  background-color: var(--gray-100);
  border-color: var(--gray-100);
}

.btn-secondary:hover {
  color: var(--gray-600);
  background-color: var(--gray-200);
  border-color: var(--gray-200);
}

.btn-secondary.focus,
.btn-secondary:focus,
.btn-secondary:not(:disabled):not(.disabled).active,
.btn-secondary:not(:disabled):not(.disabled):active,
.show>.btn-secondary.dropdown-toggle {
  color: var(--gray-600);
  background-color: var(--gray-300);
  border-color: var(--gray-300);
}

.btn-secondary.focus,
.btn-secondary:focus,
.btn-secondary:not(:disabled):not(.disabled).active:focus,
.btn-secondary:not(:disabled):not(.disabled):active:focus,
.show>.btn-secondary.dropdown-toggle:focus {
  box-shadow: 0 0 0 0 rgb(159 159 159 / 0);
}

.btn-secondary.disabled,
.btn-secondary:disabled {
  color: var(--gray-600);
  background-color: var(--gray-100);
  border-color: var(--gray-100);
  opacity: 0.4;
}

.btn-secondary-white {
  background-color: #fff;
}

.btn-secondary-white:hover,
.btn-secondary-white.focus,
.btn-secondary-white:focus,
.btn-secondary-white:not(:disabled):not(.disabled).active,
.btn-secondary-white:not(:disabled):not(.disabled):active,
.show>.btn-secondary-white.dropdown-toggle {
  background-color: #fafafa;
}

.btn-outline-primary {
  color: var(--blue);
  background-color: transparent;
  border-color: var(--blue);
}

.btn-outline-primary-white {
  color: var(--blue);
  background-color: #fff !important;
  border-color: var(--blue) !important;
}

.btn-outline-primary-white-transparent {
  background-color: transparent !important;
  border-color: rgb(255 255 255/50%) !important;
}

.btn-outline-primary-white-transparent:hover {
  border-color: rgb(255 255 255/70%) !important;
}

.btn-outline-primary:hover {
  color: var(--primary-300);
  background-color: var(--primary-100);
  border-color: var(--primary-300);
}

.btn-outline-primary.focus,
.btn-outline-primary:focus,
.btn-outline-primary:not(:disabled):not(.disabled).active,
.btn-outline-primary:not(:disabled):not(.disabled):active,
.show>.btn-outline-primary.dropdown-toggle {
  color: var(--primary-600);
  background-color: var(--primary-200);
  border-color: var(--primary-600);
}

.btn-outline-primary-white:hover {
  color: var(--primary-300);
  background-color: var(--primary-100) !important;
  border-color: var(--primary-300) !important;
}

.btn-outline-primary-white.focus,
.btn-outline-primary-white:focus,
.btn-outline-primary-white:not(:disabled):not(.disabled).active,
.btn-outline-primary-white:not(:disabled):not(.disabled):active,
.show>.btn-outline-primary-white.dropdown-toggle {
  color: var(--primary-600);
  background-color: var(--primary-200) !important;
  border-color: var(--primary-600) !important;
}

.btn-outline-primary.focus,
.btn-outline-primary:focus,
.btn-outline-primary:not(:disabled):not(.disabled).active:focus,
.btn-outline-primary:not(:disabled):not(.disabled):active:focus,
.show>.btn-outline-primary.dropdown-toggle:focus,
.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,
.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,
.show>.btn-outline-secondary.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgb(12 171 253 / 0);
}

.btn-outline-primary.disabled,
.btn-outline-primary:disabled,
.btn-outline-primary-white.disabled,
.btn-outline-primary-white:disabled {
  color: var(--gray-400);
  background-color: #fff;
  border-color: var(--gray-400);
}

.btn-outline-secondary {
  color: var(--gray-500);
  background-color: transparent;
  border-color: var(--gray-300);
}

.btn-outline-secondary.border-black {
  border-color: var(--dark);
}

.btn-outline-secondary:hover {
  color: var(--gray-500);
  background-color: var(--gray-100);
  border-color: var(--gray-100);
}

.btn-outline-secondary:not(:disabled):not(.disabled).active,
.btn-outline-secondary:not(:disabled):not(.disabled):active,
.show>.btn-outline-secondary.dropdown-toggle {
  color: var(--gray-500);
  background-color: var(--gray-200);
  border-color: var(--gray-200);
}

.btn-outline-secondary.disabled:hover,
.btn-outline-secondary:disabled:hover {
  background-color: transparent;
  border-color: var(--gray-300);
}

.btn-outline-secondary.hover-0.focus,
.btn-outline-secondary.hover-0:focus,
.btn-outline-secondary.hover-0:hover,
.btn-outline-secondary.hover-0:not(:disabled):not(.disabled).active,
.btn-outline-secondary.hover-0:not(:disabled):not(.disabled):active {
  background-color: transparent;
  border-color: var(--gray-300);
}

.btn-outline-secondary.border-black.hover-0.focus,
.btn-outline-secondary.border-black.hover-0:focus,
.btn-outline-secondary.border-black.hover-0:hover,
.btn-outline-secondary.border-black.hover-0:not(:disabled):not(.disabled).active,
.btn-outline-secondary.border-black.hover-0:not(:disabled):not(.disabled):active {
  border-color: var(--dark);
}

.btn-light:not(:disabled):not(.disabled).active:focus,
.btn-light:not(:disabled):not(.disabled):active:focus,
.show>.btn-light.dropdown-toggle:focus {
  box-shadow: 0 0 0 0 rgb(216 217 219 / 50%);
}

.btn-danger {
  color: #fff;
  background-color: var(--red-700);
  border-color: var(--red-700);
}

.btn-danger.focus,
.btn-danger:focus,
.btn-danger:not(:disabled):not(.disabled):hover,
.btn-danger:not(:disabled):not(.disabled).active,
.btn-danger:not(:disabled):not(.disabled):active,
.show>.btn-danger.dropdown-toggle {
  background-color: var(--red-500);
  border-color: var(--red-500);
}

.btn-danger.focus,
.btn-danger:focus,
.btn-danger:not(:disabled):not(.disabled).active:focus,
.btn-danger:not(:disabled):not(.disabled):active:focus,
.show>.btn-danger.dropdown-toggle:focus,
.btn-outline-danger.focus,
.btn-outline-danger:focus,
.btn-outline-danger:not(:disabled):not(.disabled).active:focus,
.btn-outline-danger:not(:disabled):not(.disabled):active:focus,
.show>.btn-outline-danger.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgb(228 64 96 / 0);
}

.btn-outline-danger {
  color: var(--alert-danger-text-color);
  background-color: var(--alert-danger-background-color);
  border-color: var(--alert-danger-text-color);
}

.btn-outline-danger.focus,
.btn-outline-danger:focus,
.btn-outline-danger:not(:disabled):not(.disabled):hover,
.btn-outline-danger:not(:disabled):not(.disabled).active,
.btn-outline-danger:not(:disabled):not(.disabled):active,
.show>.btn-outline-danger.dropdown-toggle {
  color: var(--red);
  background-color: var(--red-100);
  border-color: var(--red);
}

.btn-success {
  color: #fff;
  background-color: var(--green-600);
  border-color: var(--green-600);
}

.btn-success.focus,
.btn-success:focus,
.btn-success:not(:disabled):not(.disabled):hover,
.btn-success:not(:disabled):not(.disabled).active,
.btn-success:not(:disabled):not(.disabled):active,
.show>.btn-success.dropdown-toggle {
  background-color: var(--green-500);
  border-color: var(--green-500);
}

.btn-success.focus,
.btn-success:focus,
.btn-success:not(:disabled):not(.disabled).active:focus,
.btn-success:not(:disabled):not(.disabled):active:focus,
.show>.btn-success.dropdown-toggle:focus,
.btn-outline-success.focus,
.btn-outline-success:focus,
.btn-outline-success:not(:disabled):not(.disabled).active:focus,
.btn-outline-success:not(:disabled):not(.disabled):active:focus,
.show>.btn-outline-success.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgb(79 202 139 / 0);
}

.btn-outline-success {
  color: var(--green-600);
  background-color: var(--alert-success-background-color);
  border-color: var(--green-600);
}

.btn-outline-success.focus,
.btn-outline-success:focus,
.btn-outline-success:not(:disabled):not(.disabled):hover,
.btn-outline-success:not(:disabled):not(.disabled).active,
.btn-outline-success:not(:disabled):not(.disabled):active,
.show>.btn-outline-success.dropdown-toggle {
  color: var(--green-500);
  background-color: var(--green-100);
  border-color: var(--green-600);
}

.btn-danger.disabled,
.btn-danger:disabled,
.btn-outline-danger.disabled,
.btn-outline-danger:disabled,
.btn-success.disabled,
.btn-success:disabled,
.btn-outline-success.disabled,
.btn-outline-success:disabled {
  opacity: .3;
}

button.btn.disabled,
fieldset:disabled button.btn {
  pointer-events: none;
}

/* Card */
.card,
.list-group-item {
  border: 1px solid var(--card-border-color);
  border-radius: var(--border-radius);
}

/* Form */
form label {
  font-size: 14px;
  margin-bottom: 8px;
}

.control-label {
  font-weight: 600;
}

.form-control {
  border-color: var(--input-border-color);
  border-radius: var(--input-border-radius);
}

.helper-text {
  color: var(--text-muted);
  font-size: 80%;
  margin-top: 4px;
}

.progress-thin {
  height: 0.5rem;
  /* 8px */
}

.progress-sm {
  height: 0.6125rem;
  /* 10px */
}

.progress-md {
  height: 1rem;
  /* 16px */
}

.progress-lg {
  height: 1.5rem;
  /* 24px */
}

.progress-xl {
  height: 2rem;
  /* 32px */
}

.modal .close .fa-xmark,
.modal .close .fa-xmark.fa-sm,
.modal .close .fa-close.fa-sm {
  font-size: 12px;
}

/* General CSS Responsive */
@media (min-width:768px) {}

@media (min-width:992px) {}

@media (min-width:1200px) {}