/* ─────────────────────────────────────────────────────────────
   ULTIMATE BOOTSTRAP 5 UTILITY SHIM FOR SALIENT (2025)
   Text + Display + Flex + Spacing — the essentials only
   Paste once and forget
   ───────────────────────────────────────────────────────────── */

/* ── Text Alignment ───────────────────────────────────── */
.text-start { text-align: left !important; }
.text-center { text-align: center !important; }
.text-end { text-align: right !important; }
@media (min-width: 576px) { .text-sm-start { text-align: left !important; } .text-sm-center { text-align: center !important; } .text-sm-end { text-align: right !important; } }
@media (min-width: 768px) { .text-md-start { text-align: left !important; } .text-md-center { text-align: center !important; } .text-md-end { text-align: right !important; } }
@media (min-width: 992px) { .text-lg-start { text-align: left !important; } .text-lg-center { text-align: center !important; } .text-lg-end { text-align: right !important; } }

/* ── Display & Hide ───────────────────────────────────── */
.d-none { display: none !important; }
.d-block { display: block !important; }
.d-inline-block { display: inline-block !important; }

/* Responsive hide/show */
.d-sm-none { } .d-md-none { } .d-lg-none { }
@media (max-width: 575.98px) { .d-sm-none { display: none !important; } }
@media (min-width: 576px)   { .d-sm-none { display: none !important; } }
@media (max-width: 767.98px) { .d-md-none { display: none !important; } }
@media (min-width: 768px)   { .d-md-none { display: none !important; } }
@media (max-width: 991.98px) { .d-lg-none { display: none !important; } }
@media (min-width: 992px)   { .d-lg-none { display: none !important; } }

/* ── FLEX UTILITIES (the real workhorses) ─────────────── */
.d-flex              { display: flex !important; }
.d-inline-flex       { display: inline-flex !important; }
.flex-row            { flex-direction: row !important; }
.flex-column         { flex-direction: column !important; }
.flex-wrap           { flex-wrap: wrap !important; }
.flex-nowrap         { flex-wrap: nowrap !important; }
.flex-grow-1         { flex-grow: 1 !important; }
.flex-shrink-0       { flex-shrink: 0 !important; }

.justify-content-start    { justify-content: flex-start !important; }
.justify-content-end      { justify-content: flex-end !important; }
.justify-content-center   { justify-content: center !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; }

.align-items-start        { align-items: flex-start !important; }
.align-items-end          { align-items: flex-end !important; }
.align-items-center       { align-items: center !important; }
.align-items-baseline     { align-items: baseline !important; }
.align-items-stretch      { align-items: stretch !important; }

.align-content-start      { align-content: flex-start !important; }
.align-content-end        { align-content: flex-end !important; }
.align-content-center     { align-content: center !important; }
.align-content-between    { align-content: space-between !important; }
.align-content-around     { align-content: space-around !important; }
.align-content-stretch    { align-content: stretch !important; }

.align-self-start         { align-self: flex-start !important; }
.align-self-end           { align-self: flex-end !important; }
.align-self-center        { align-self: center !important; }
.align-self-baseline      { align-self: baseline !important; }
.align-self-stretch       { align-self: stretch !important; }

/* ── Spacing (Margin & Padding) ───────────────────────── */
.m-0 { margin: 0 !important; } .mt-0 { margin-top: 0 !important; } .mb-0 { margin-bottom: 0 !important; }
.mx-0 { margin-left: 0 !important; margin-right: 0 !important; } .my-0 { margin-top: 0 !important; margin-bottom: 0 !important; }
.m-1 { margin: .25rem !important; } .mt-1 { margin-top: .25rem !important; } .mb-1 { margin-bottom: .25rem !important; }
.m-2 { margin: .5rem !important; } .mt-2 { margin-top: .5rem !important; } .mb-2 { margin-bottom: .5rem !important; }
.m-3 { margin: 1rem !important; } .mt-3 { margin-top: 1rem !important; } .mb-3 { margin-bottom: 1rem !important; }
.m-4 { margin: 1.5rem !important; } .mt-4 { margin-top: 1.5rem !important; } .mb-4 { margin-bottom: 1.5rem !important; }
.m-5 { margin: 3rem !important; } .mt-5 { margin-top: 3rem !important; } .mb-5 { margin-bottom: 3rem !important; }
.mx-auto { margin-left: auto !important; margin-right: auto !important; }

.p-0 { padding: 0 !important; } .pt-0 { padding-top: 0 !important; } .pb-0 { padding-bottom: 0 !important; }
.px-0 { padding-left: 0 !important; padding-right: 0 !important; } .py-0 { padding-top: 0 !important; padding-bottom: 0 !important; }
.p-1 { padding: .25rem !important; } .pt-1 { padding-top: .25rem !important; } .py-1 { padding-top: .25rem !important; padding-bottom: .25rem !important; }
.p-2 { padding: .5rem !important; } .pt-2 { padding-top: .5rem !important; } .py-2 { padding-top: .5rem !important; padding-bottom: .5rem !important; }
.p-3 { padding: 1rem !important; } .pt-3 { padding-top: 1rem !important; } .py-3 { padding-top: 1rem !important; padding-bottom: 1rem !important; }
.p-4 { padding: 1.5rem !important; } .pt-4 { padding-top: 1.5rem !important; } .py-4 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; }
.p-5 { padding: 3rem !important; } .pt-5 { padding-top: 3rem !important; } .py-5 { padding-top: 3rem !important; padding-bottom: 3rem !important; }

.gap-0 { gap: 0 !important; }
.gap-1 { gap: .25rem !important; }
.gap-2 { gap: .5rem !important; }
.gap-3 { gap: 1rem !important; }
.gap-4 { gap: 1.5rem !important; }
.gap-5 { gap: 3rem !important; }

/* ── Quick helpers ────────────────────────────────────── */
.vh-100 { min-height: 100vh !important; }
.h-100  { height: 100% !important; }
.w-100  { width: 100% !important; }