/* === Bootstrap 4 Utility Polyfills for Bootstrap 3.0.1 === */
/* Breakpoints (Bootstrap 3): xs <768, sm ≥768, md ≥992, lg ≥1200 */
/*
 * NOTE: This is only being used for infographics under /blog, to save time. Since working with the site's
 * default bootstrap version 3.0.3 was missing very useful classes from bootstrap v4
 */


.mx-auto {
  margin-left: auto !important;
  margin-right: auto !important;
  float: none !important; /* override Bootstrap 3 floats */
}

/* ---- Display utilities ---- */
.d-none{display:none!important;} .d-inline{display:inline!important;} .d-inline-block{display:inline-block!important;} .d-block{display:block!important;}
.d-flex{display:flex!important;} .d-inline-flex{display:inline-flex!important;}
@media (min-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-flex{display:flex!important;} .d-sm-inline-flex{display:inline-flex!important;}}
@media (min-width:992px){.d-md-none{display:none!important;} .d-md-inline{display:inline!important;} .d-md-inline-block{display:inline-block!important;} .d-md-block{display:block!important;} .d-md-flex{display:flex!important;} .d-md-inline-flex{display:inline-flex!important;}}
@media (min-width:1200px){.d-lg-none{display:none!important;} .d-lg-inline{display:inline!important;} .d-lg-inline-block{display:inline-block!important;} .d-lg-block{display:block!important;} .d-lg-flex{display:flex!important;} .d-lg-inline-flex{display:inline-flex!important;}}

/* ---- Flex utilities ---- */
.flex-row{flex-direction:row!important;} .flex-column{flex-direction:column!important;}
.flex-wrap{flex-wrap:wrap!important;} .flex-nowrap{flex-wrap:nowrap!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-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;}
.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;}
.order-0{order:0!important;} .order-1{order:1!important;} .order-2{order:2!important;} .order-3{order:3!important;} .order-4{order:4!important;} .order-5{order:5!important;}
.flex-grow-0{flex-grow:0!important;} .flex-grow-1{flex-grow:1!important;} .flex-shrink-0{flex-shrink:0!important;} .flex-shrink-1{flex-shrink:1!important;}

/* Responsive flex direction helpers */
@media (min-width:768px){.flex-sm-row{flex-direction:row!important;} .flex-sm-column{flex-direction:column!important;}}
@media (min-width:992px){.flex-md-row{flex-direction:row!important;} .flex-md-column{flex-direction:column!important;}}
@media (min-width:1200px){.flex-lg-row{flex-direction:row!important;} .flex-lg-column{flex-direction:column!important;}}

/* ---- Spacing utilities (scale: .25, .5, 1, 1.5, 3rem) ---- */
:root{--sp-1:.25rem; --sp-2:.5rem; --sp-3:1rem; --sp-4:1.5rem; --sp-5:3rem;}
.p-0{padding:0!important;} .p-1{padding:var(--sp-1)!important;} .p-2{padding:var(--sp-2)!important;} .p-3{padding:var(--sp-3)!important;} .p-4{padding:var(--sp-4)!important;} .p-5{padding:var(--sp-5)!important;}
.pt-0{padding-top:0!important;} .pt-1{padding-top:var(--sp-1)!important;} .pt-2{padding-top:var(--sp-2)!important;} .pt-3{padding-top:var(--sp-3)!important;} .pt-4{padding-top:var(--sp-4)!important;} .pt-5{padding-top:var(--sp-5)!important;}
.pr-0{padding-right:0!important;} .pr-1{padding-right:var(--sp-1)!important;} .pr-2{padding-right:var(--sp-2)!important;} .pr-3{padding-right:var(--sp-3)!important;} .pr-4{padding-right:var(--sp-4)!important;} .pr-5{padding-right:var(--sp-5)!important;}
.pb-0{padding-bottom:0!important;} .pb-1{padding-bottom:var(--sp-1)!important;} .pb-2{padding-bottom:var(--sp-2)!important;} .pb-3{padding-bottom:var(--sp-3)!important;} .pb-4{padding-bottom:var(--sp-4)!important;} .pb-5{padding-bottom:var(--sp-5)!important;}
.pl-0{padding-left:0!important;} .pl-1{padding-left:var(--sp-1)!important;} .pl-2{padding-left:var(--sp-2)!important;} .pl-3{padding-left:var(--sp-3)!important;} .pl-4{padding-left:var(--sp-4)!important;} .pl-5{padding-left:var(--sp-5)!important;}
.px-0{padding-left:0!important;padding-right:0!important;} .px-1{padding-left:var(--sp-1)!important;padding-right:var(--sp-1)!important;} .px-2{padding-left:var(--sp-2)!important;padding-right:var(--sp-2)!important;} .px-3{padding-left:var(--sp-3)!important;padding-right:var(--sp-3)!important;} .px-4{padding-left:var(--sp-4)!important;padding-right:var(--sp-4)!important;} .px-5{padding-left:var(--sp-5)!important;padding-right:var(--sp-5)!important;}
.py-0{padding-top:0!important;padding-bottom:0!important;} .py-1{padding-top:var(--sp-1)!important;padding-bottom:var(--sp-1)!important;} .py-2{padding-top:var(--sp-2)!important;padding-bottom:var(--sp-2)!important;} .py-3{padding-top:var(--sp-3)!important;padding-bottom:var(--sp-3)!important;} .py-4{padding-top:var(--sp-4)!important;padding-bottom:var(--sp-4)!important;} .py-5{padding-top:var(--sp-5)!important;padding-bottom:var(--sp-5)!important;}

.m-0{margin:0!important;} .m-1{margin:var(--sp-1)!important;} .m-2{margin:var(--sp-2)!important;} .m-3{margin:var(--sp-3)!important;} .m-4{margin:var(--sp-4)!important;} .m-5{margin:var(--sp-5)!important;}
.mt-0{margin-top:0!important;} .mt-1{margin-top:var(--sp-1)!important;} .mt-2{margin-top:var(--sp-2)!important;} .mt-3{margin-top:var(--sp-3)!important;} .mt-4{margin-top:var(--sp-4)!important;} .mt-5{margin-top:var(--sp-5)!important;}
.mr-0{margin-right:0!important;} .mr-1{margin-right:var(--sp-1)!important;} .mr-2{margin-right:var(--sp-2)!important;} .mr-3{margin-right:var(--sp-3)!important;} .mr-4{margin-right:var(--sp-4)!important;} .mr-5{margin-right:var(--sp-5)!important;}
.mb-0{margin-bottom:0!important;} .mb-1{margin-bottom:var(--sp-1)!important;} .mb-2{margin-bottom:var(--sp-2)!important;} .mb-3{margin-bottom:var(--sp-3)!important;} .mb-4{margin-bottom:var(--sp-4)!important;} .mb-5{margin-bottom:var(--sp-5)!important;}
.ml-0{margin-left:0!important;} .ml-1{margin-left:var(--sp-1)!important;} .ml-2{margin-left:var(--sp-2)!important;} .ml-3{margin-left:var(--sp-3)!important;} .ml-4{margin-left:var(--sp-4)!important;} .ml-5{margin-left:var(--sp-5)!important;}
.mx-0{margin-left:0!important;margin-right:0!important;} .mx-1{margin-left:var(--sp-1)!important;margin-right:var(--sp-1)!important;} .mx-2{margin-left:var(--sp-2)!important;margin-right:var(--sp-2)!important;} .mx-3{margin-left:var(--sp-3)!important;margin-right:var(--sp-3)!important;} .mx-4{margin-left:var(--sp-4)!important;margin-right:var(--sp-4)!important;} .mx-5{margin-left:var(--sp-5)!important;margin-right:var(--sp-5)!important;}
.my-0{margin-top:0!important;margin-bottom:0!important;} .my-1{margin-top:var(--sp-1)!important;margin-bottom:var(--sp-1)!important;} .my-2{margin-top:var(--sp-2)!important;margin-bottom:var(--sp-2)!important;} .my-3{margin-top:var(--sp-3)!important;margin-bottom:var(--sp-3)!important;} .my-4{margin-top:var(--sp-4)!important;margin-bottom:var(--sp-4)!important;} .my-5{margin-top:var(--sp-5)!important;margin-bottom:var(--sp-5)!important;}
.ml-auto{margin-left:auto!important;} .mr-auto{margin-right:auto!important;} .mx-auto{margin-left:auto!important;margin-right:auto!important;}

/* ---- Sizing ---- */
.w-100{width:100%!important;} .h-100{height:100%!important;} .min-vh-100{min-height:100vh!important;}


/* ---- Borders & Radius ---- */
.border{border:1px solid #dee2e6!important;} .border-0{border:0!important;}
.border-top{border-top:1px solid #dee2e6!important;} .border-right{border-right:1px solid #dee2e6!important;} .border-bottom{border-bottom:1px solid #dee2e6!important;} .border-left{border-left:1px solid #dee2e6!important;}
.rounded{border-radius:.25rem!important;} .rounded-sm{border-radius:.2rem!important;} .rounded-lg{border-radius:.3rem!important;} .rounded-circle{border-radius:50%!important;}

/* ---- Text & background colors ---- */
.text-primary{color:#007bff!important;} .text-secondary{color:#6c757d!important;} .text-success{color:#28a745!important;} .text-danger{color:#dc3545!important;} .text-warning{color:#ffc107!important;} .text-info{color:#17a2b8!important;} .text-light{color:#f8f9fa!important;} .text-dark{color:#343a40!important;} .text-white{color:#fff!important;} .text-muted{color:#6c757d!important;}
.bg-primary{background-color:#007bff!important;} .bg-secondary{background-color:#6c757d!important;} .bg-success{background-color:#28a745!important;} .bg-danger{background-color:#dc3545!important;} .bg-warning{background-color:#ffc107!important;} .bg-info{background-color:#17a2b8!important;} .bg-light{background-color:#f8f9fa!important;} .bg-dark{background-color:#343a40!important;} .bg-white{background-color:#fff!important;}

/* ---- Images ---- */
.img-fluid{max-width:100%;height:auto;}

/* ---- Helpers ---- */
.text-nowrap{white-space:nowrap!important;} .text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

/* ---- Gutters (Bootstrap 4 .no-gutters polyfill) ---- */
.row.no-gutters{margin-right:0;margin-left:0;} .row.no-gutters>[class^="col-"], .row.no-gutters>[class*=" col-"]{padding-right:0;padding-left:0;}

/* Responsive auto margins to mimic Bootstrap 4/5 behavior */
@media (min-width:768px){ /* sm */
  .ml-sm-auto{margin-left:auto!important; float:none!important;}
  .mr-sm-auto{margin-right:auto!important; float:none!important;}
  .mx-sm-auto{margin-left:auto!important; margin-right:auto!important; float:none!important;}
}
@media (min-width:992px){ /* md */
  .ml-md-auto{margin-left:auto!important; float:none!important;}
  .mr-md-auto{margin-right:auto!important; float:none!important;}
  .mx-md-auto{margin-left:auto!important; margin-right:auto!important; float:none!important;}
}
@media (min-width:1200px){ /* lg */
  .ml-lg-auto{margin-left:auto!important; float:none!important;}
  .mr-lg-auto{margin-right:auto!important; float:none!important;}
  .mx-lg-auto{margin-left:auto!important; margin-right:auto!important; float:none!important;}
}

/* Flex row at md+ that keeps BS3 stacking on mobile but aligns columns to equal height on desktop */
@media (min-width: 992px){
  .flex-row-md-stretch{display:flex!important; align-items:stretch!important;}
  .flex-row-md-stretch > [class^="col-"],
  .flex-row-md-stretch > [class*=" col-"]{float:none!important; display:flex;}
}

/* Resets for Linxup Bootstrap */
h1, h2, h3, h4 {
  margin-top: 0px;
  margin-bottom: 0px;
}

